[
  {
    "path": ".gitignore",
    "content": "dist*\n*.hi\n*.o\n.hsenv*\ncabal-dev/\n.stack-work/\n.cabal-sandbox\ncabal.sandbox.config\n.DS_Store\n*.dyn_o\n*.dyn_hi\napp/*.cpp\nsrc/**/*.cpp\nsrc/**/*.c\n*.so\n.ghc*\n#*\n.#*\n\ndoc/build/\n\n# osvr_server\nlighthousedb.json\nlhr-*/\n\n# emacs TAG file\nTAGS\n"
  },
  {
    "path": ".gitmodules",
    "content": "[submodule \"godot_headers\"]\n\tpath = godot_headers\n\turl = https://github.com/GodotNativeTools/godot_headers/\n[submodule \"haskell-src-exts-qq\"]\n\tpath = haskell-src-exts-qq\n\turl = https://github.com/KaneTW/haskell-src-exts-qq\n[submodule \"haskell-src-exts-sc\"]\n\tpath = haskell-src-exts-sc\n\turl = https://github.com/achirkin/haskell-src-exts-sc\n"
  },
  {
    "path": ".hlint.yaml",
    "content": "- ignore: { name: \"Use camelCase\" }\n- ignore: { name: \"Use newtype instead of data\" }\n"
  },
  {
    "path": ".travis.yml",
    "content": "# https://docs.haskellstack.org/en/stable/travis_ci/\n\nsudo: false\ndist: bionic\nlanguage: generic\naddons:\n  apt:\n    update: true\n\ncache:\n  directories:\n  - $HOME/.stack\n  - $TRAVIS_BUILD_DIR/.stack-work\n\nbefore_install:\n  - mkdir -p ~/.local/bin\n  - export PATH=$HOME/.local/bin:$PATH\n  - travis_retry curl -L https://get.haskellstack.org/stable/linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'\n\ninstall:\n  - git submodule update --init --recursive\n  - stack build\n  - stack test\n"
  },
  {
    "path": ".vscode/tasks.json",
    "content": "\n{\n  // Automatically created by phoityne-vscode extension.\n\n  \"version\": \"2.0.0\",\n  \"presentation\": {\n    \"reveal\": \"always\",\n    \"panel\": \"new\"\n  },\n  \"tasks\": [\n    {\n      // F7\n      \"group\": {\n        \"kind\": \"build\",\n        \"isDefault\": true\n      },\n      \"label\": \"haskell build\",\n      \"type\": \"shell\",\n      //\"command\": \"cabal configure && cabal build\"\n      \"command\": \"stack build\"\n    },\n    {\n      // F6\n      \"group\": \"build\",\n      \"type\": \"shell\",\n      \"label\": \"haskell clean & build\",\n      //\"command\": \"cabal clean && cabal configure && cabal build\"\n      \"command\": \"stack clean && stack build\"\n      //\"command\": \"stack clean ; stack build\"  // for powershell\n    },\n    {\n      // F8\n      \"group\": {\n        \"kind\": \"test\",\n        \"isDefault\": true\n      },\n      \"type\": \"shell\",\n      \"label\": \"haskell test\",\n      //\"command\": \"cabal test\"\n      \"command\": \"stack test\"\n    },\n    {\n      // F6\n      \"isBackground\": true,\n      \"type\": \"shell\",\n      \"label\": \"haskell watch\",\n      \"command\": \"stack build --test --no-run-tests --file-watch\"\n    }\n  ]\n}\n"
  },
  {
    "path": "LICENSE",
    "content": "Copyright David Kraeutmann (c) 2018\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of David Kraeutmann nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
  },
  {
    "path": "README.md",
    "content": "# godot-haskell\n\n[![Build Status](https://travis-ci.org/SimulaVR/godot-haskell.svg?branch=master)](https://travis-ci.org/SimulaVR/godot-haskell)\n\nHaskell bindings for the Godot game engine.\n\n* Low-level (GDNative) in Godot.Gdnative\n* Nativescript (binding classes/methods/etc) in Godot.Nativescript\n* High-level (classes generated from the API ) in Godot.Api\n* Access methods through Godot.Core\n\n## Getting started with the examples\n\nThe easiest way to get started is to have a look at the demos included in the\n[examples](https://github.com/SimulaVR/godot-haskell/tree/master/examples)\ndirectory. First check out [\"Dodge the\nCreeps!\"](https://github.com/SimulaVR/godot-haskell/tree/master/examples/dodge-the-creeps),\nyour first game from the [Godot\ndocumentation](https://docs.godotengine.org/en/3.1/getting_started/step_by_step/your_first_game.html). Following\nalong with the documentation and the code should make everything understandable.\n\nTo build:\n```bash\ngit clone --recursive https://github.com/SimulaVR/godot-haskell\nstack install godot-haskell:exe:godot-haskell-project-generator\ncd godot-haskell/examples/dodge-the-creeps\nmake\n```\n\nTo make changes to the game, in two different terminals:\n```bash\nmake stack-watch\nmake project-watch\n```\n\nThe first command will constantly build Haskell code and copy the shared library\ninto the Godot project, demo. The second command will constantly scan the Godot\nproject and build Haskell code out of it.\n\nLoad up the game by importing `game/project.godot` into the editor, which you\ncan do from the commandline with `godot game/project.godot`. To run the game in\nthe editor press F5, stop it with F8.\n\n### Understanding the examples\n\nThere are two parts to every project. `examples/dodge-the-creeps/game` which is\nthe Godot project and `examples/dodge-the-creeps/src` which are the Haskell\nsources. When you run `cd examples/dodge-the-creeps && make stack` to build the\ndemo, it builds the project locally with `stack build` and then does a `cp` to\ncopy the resulting shared library into the right place in\n`examples/dodge-the-creeps/game`. This way Godot will pick it up. If you just do\na `stack build` without copying, your shared library will never update and Godot\nwill run the old code.\n\nYou must regenerate `examples/dodge-the-creeps/src/Project` any time you modify\nthe Godot project. This directory contains the Godot project mirrored into\nHaskell, just like @Servant@ provides you with API safety by declaring APIs in\nHaskell. When you change the name of a node in Godot, this will update a Haskell\nclass instance, which will lead to a type error in your project. You can do this\nwith `stack exec godot-haskell-parse-game game src` which will watch your\nproject for changes.\n\n## Known issues & inconveniences\n\n* Script variables only appear in the editor when you reload it.\n* No type safety for call and call_deferred.\n* Every time you add a new node which needs a native script you need to manually\n  select the library. It's tedious right now. This is the procedure for adding a\n  new node backed by Haskell code: create the node, right click it, attach a\n  script, select nativescript, the script will open in the editor, in the\n  inspector find the Library subheading under NativeScript, click [empty], pick\n  Load, the file picker will open, open lib, and select libmyproject.dnlib or\n  whatever you've renamed the library to. That's it. Don't edit the empty file\n  that's been opened. Now in Haskell, you can create a class with the same name\n  as the Godot one and that inherits from the same type. See the demo. There is\n  a ticket in Godot to automate this process :(\n\n## Setting up your own project.\n\nIt's best to start with one of the existing examples, make a copy, and rename\nthe project. If you want to start another project use the stack template\n`template/godot-haskell.hsroots` Alternatively, fetch it directly from git:\n\n```bash\nstack new myproject https://raw.githubusercontent.com/SimulaVR/godot-haskell/master/template/godot-haskell.hsfiles\n```\n\n## Changing Godot versions\n\nYou will need to regenerate the bindings if you switch Godot versions. At\npresent, these are generated for the version that corresponds to the\ngodot_headers submodule included here. This was 3.1 at the time of writing.\n\nTo regenerate bindings:\n\n* Replace godot_headers with a version that corresponds to your\n  install. Instructions are included there, but that generally means either\n  checking out the corresponding files or rebuilding Godot.\n* Check out a copy of the godot repo and make sure you're on the commit\n  corresponding to your version of godot. You don't need to build this, but you\n  probably will anyway. We need it because documentation files are not included\n  in the api.json file found in godot_headers.\n* Summarize the documentation xml files into a json file:\n\n```bash\n# Prerequisite\nsudo apt-get install jq libcurl4-gnutls-dev # Or equivalent on you OS/Distro\ncabal install xml-to-json\n\n# Generate the JSON\nxml-to-json godot-install-directory/doc/classes/*.xml | jq -n '[inputs]' &> godot_doc_classes.json\n```\n\n* Build the bindings themselves:\n\n```bash\ncd classgen\nstack build\nrm ../src/Godot/Core/* ../src/Godot/Tools/*\nstack exec godot-haskell-classgen -- ../godot_headers/api.json ../godot_doc_classes.json ../\n```\n\nThat's it! The rest of the bindings are fairly lightweight with few\ndependencies, so you shouldn't see much breakage in the rest of the package.\n\nIf you want to get an idea of what the Haskell libraries are doing, set the\nenvironment variable `HS_GODOT_DEBUG`.\n\n## Questions\n\nThe primary method of contact is the SimulaVR [Discord server](https://discord.gg/V2NgzZt).\nMirrors are available at [![Gitter](https://badges.gitter.im/SimulaVR/Simula.svg)](https://gitter.im/SimulaVR/Simula?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) and in the SimulaVR channel at Matrix.\n\n## Docs\n\nMost of the API is documented but the lowest-level bindings, like GDNative\nfunctions don't have documentation. They are quite intuitive to use though.\n"
  },
  {
    "path": "Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "cbits/util.h",
    "content": "#ifndef GODOT_HASKELL_UTIL_H__\n#define GODOT_HASKELL_UTIL_H__\n\n#include <gdnative/gdnative.h>\n\n#endif /* GODOT_HASKELL_UTIL_H__ */\n"
  },
  {
    "path": "classgen/README.md",
    "content": "Generate bindings to the Godot API.\n\nSee the godot-haskell README.md for instructions on use\n"
  },
  {
    "path": "classgen/app-classgen/Main.hs",
    "content": "import Classgen.Module\nimport Classgen.Spec\nimport Control.Lens\nimport Control.Monad.State\nimport Data.Maybe (mapMaybe)\nimport Data.Aeson\nimport qualified Data.ByteString.Lazy as BL\nimport qualified Data.HashMap.Strict as HM\nimport Language.Haskell.Exts\nimport Language.Haskell.Exts.SimpleComments\nimport System.Directory\nimport System.Environment\nimport System.Exit\nimport System.FilePath\nimport Control.Applicative\nimport qualified Classgen.Docs as D\nimport qualified Data.HashMap.Strict as H\nimport qualified Data.Text as T\n\nmain :: IO ()\nmain = do\n  args <- getArgs\n  when (length args /= 3) $ do\n    putStrLn \"See the godot-haskell README.md for instructions\"\n    putStrLn \"godot-haskell-classgen <api.json> <godot_doc_classes.json> <godot-haskell-root>\"\n    exitFailure\n  api <- BL.readFile (args !! 0)\n  let decodeErr x = either error id (eitherDecode x)\n  let (Just classes) = decodeErr api :: Maybe GodotClasses\n  doc <- BL.readFile (args !! 1)\n  let (Just docs) = decodeErr doc :: Maybe D.GodotDocs\n  let godotHaskellRootDir = args !! 2\n  let docTable = D.toTable docs\n  let state = execState (mapM_ (\\cls -> addClass cls (H.lookup (cls ^. Classgen.Spec.name) docTable\n                                                     <|> (T.stripPrefix \"Godot_\" (cls ^. Classgen.Spec.name)\n                                                          >>= \\r -> H.lookup r docTable)\n                                                     <|> (T.stripPrefix \"Godot\" (cls ^. Classgen.Spec.name)\n                                                          >>= \\r -> H.lookup r docTable)\n                                                     <|> (T.stripPrefix \"_\"  (cls ^. Classgen.Spec.name)\n                                                          >>= \\r -> H.lookup r docTable)\n                                                     <|> (H.lookup  (\"_\" <> (cls ^. Classgen.Spec.name)) docTable)\n                                                    ) classes) classes)\n                        (ClassgenState mempty mempty mempty)\n  writeModule godotHaskellRootDir $ godotApiTypes (state ^. tyDecls)\n  mapM_ (writeModule godotHaskellRootDir) (HM.elems (state ^. modules))\n  where\n    godotApiTypes decls   = Module Nothing (Just\n                                            $ ModuleHead Nothing (ModuleName Nothing \"Godot.Api.Types\") Nothing\n                                            $ Just (classExports decls))\n                            [LanguagePragma Nothing [Ident Nothing \"DerivingStrategies\"\n                                                    ,Ident Nothing \"GeneralizedNewtypeDeriving\"\n                                                    ,Ident Nothing \"TypeFamilies\"\n                                                    ,Ident Nothing \"TemplateHaskell\"]]\n                            classImports\n                            (decls ++ mapMaybe fromNewtypeDerivingBase decls)\n    classExports decls   = ExportSpecList Nothing $ tcHasBaseClass : mapMaybe fromNewtypeOnly decls\n    tcHasBaseClass       = fmap (\\_ -> Nothing) $ EThingWith () (EWildcard () 0) (UnQual () (Ident () \"HasBaseClass\")) []\n    fromNewtypeOnly decl = case decl of\n       DataDecl _ (NewType _) _ (DHead _ (Ident Nothing ntName)) _ _ ->\n         Just $ EThingWith Nothing (EWildcard Nothing 0) (UnQual Nothing (Ident Nothing ntName)) []\n       _ ->\n         Nothing\n    fromNewtypeDerivingBase decl = case decl of\n       DataDecl _ (NewType _) _ (DHead _ (Ident Nothing ntName)) _ _ ->\n         Just $ SpliceDecl Nothing (App Nothing (Var Nothing (UnQual Nothing (Ident Nothing \"deriveBase\")))\n                                                 (TypQuote Nothing (UnQual Nothing (Ident Nothing ntName))))\n       _ ->\n         Nothing\n    classImports = map (\\n -> ImportDecl Nothing (ModuleName Nothing n) False False False Nothing Nothing Nothing)\n      [ \"Data.Coerce\", \"Foreign.C\", \"Godot.Internal.Dispatch\", \"Godot.Gdnative.Internal\"]\n\nwriteModule :: FilePath -> Module (Maybe CodeComment) -> IO ()\nwriteModule godotHaskellRootDir mdl@(Module _ (Just (ModuleHead _ (ModuleName Nothing name) _ _)) _ _ _) = do\n  let filepath = godotHaskellRootDir </> \"src/\" ++ map replaceDot name ++ \".hs\"\n  -- let out = prettyPrint mdl\n  let out = uncurry exactPrint (ppWithComments mdl)\n  createDirectoryIfMissing True (takeDirectory filepath)\n  writeFile filepath out\n  where\n    replaceDot '.' = '/'\n    replaceDot c = c\n"
  },
  {
    "path": "classgen/default.nix",
    "content": "{ mkDerivation, aeson, base, bytestring, c2hs, casing, containers\n, directory, filepath, hpack\n, lens, mtl, template-haskell, text, unordered-containers\n, vector , stdenv, syb, callPackage, haskell, haskellPackages, fetchFromGitHub\n}:\n  let haskell-src-exts-custom = haskell.lib.dontCheck (haskellPackages.callPackage\n        ({ mkDerivation, array, base, containers, directory, filepath\n        , ghc-prim, happy, mtl, pretty, pretty-show, smallcheck, stdenv\n        , tasty, tasty-golden, tasty-smallcheck\n        }:\n        mkDerivation {\n          pname = \"haskell-src-exts\";\n          version = \"1.23.0\";\n          sha256 = \"09048bhv7ajfsnjlzaz445yb65n2pc4l3yn7nmmrnkdy1f0gn2cm\";\n          libraryHaskellDepends = [ array base ghc-prim pretty ];\n          libraryToolDepends = [ happy ];\n          testHaskellDepends = [\n            base containers directory filepath mtl pretty-show smallcheck tasty\n            tasty-golden tasty-smallcheck\n          ];\n          doCheck = false;\n          description = \"Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer\";\n          license = stdenv.lib.licenses.bsd3;\n          hydraPlatforms = stdenv.lib.platforms.none;\n       }) {});\n\n      haskell-src-exts-qq = haskellPackages.callPackage (\n        { mkDerivation, base, hspec, stdenv, syb, template-haskell\n        }:\n        mkDerivation {\n          pname = \"haskell-src-exts-qq\";\n          version = \"0.8\";\n          src = fetchFromGitHub {\n            owner = \"KaneTW\";\n            repo = \"haskell-src-exts-qq\";\n            rev = \"a2d9071c9d6a627a253edfaaa64b6b67c9da3534\";\n            sha256 = \"1cvk90zi16m3nnz52gxim9b8sm17356jrp756y95is6ky13l2h60\";\n          };\n          libraryHaskellDepends = [\n            base haskell-src-exts-custom haskell-src-meta-custom syb template-haskell\n          ];\n          testHaskellDepends = [ base haskell-src-exts-custom hspec ];\n          description = \"A quasiquoter for haskell-src-exts\";\n          license = stdenv.lib.licenses.bsd3;\n          }) { };\n\n  haskell-src-meta-custom = haskell.lib.dontCheck (haskellPackages.callPackage\n        ({ mkDerivation, base, HUnit, pretty, stdenv, syb\n        , template-haskell, test-framework, test-framework-hunit\n        , th-orphans\n        }:\n        mkDerivation {\n          pname = \"haskell-src-meta\";\n          version = \"0.8.5\";\n          sha256 = \"1csqp3n7330rhia9msyw34z7qwwj64gdy5qlv8w4jbm49dap24ik\";\n          revision = \"1\";\n          editedCabalFile = \"00znr8mrlbyn0n1bw4c82rv82pq5ngkk7kw9cgk13pghf93hwwv7\";\n          libraryHaskellDepends = [\n            base haskell-src-exts-custom pretty syb template-haskell th-orphans\n          ];\n          description = \"Parse source to template-haskell abstract syntax\";\n          license = stdenv.lib.licenses.bsd3;\n        }) {});\nin \nmkDerivation {\n  pname = \"godot-haskell-classgen\";\n  version = \"0.1.0.0\";\n  src = ./.;\n  isLibrary = true;\n  isExecutable = true;\n  libraryHaskellDepends = [\n    aeson base bytestring casing containers\n    haskell-src-exts-qq lens mtl template-haskell text\n    unordered-containers vector\n  ];\n  libraryToolDepends = [ c2hs hpack ];\n  executableHaskellDepends = [\n    aeson base bytestring casing containers directory filepath\n    lens mtl template-haskell text\n    unordered-containers vector\n  ];\n  executableToolDepends = [ c2hs ];\n  prePatch = \"hpack\";\n  homepage = \"https://github.com/KaneTW/godot-haskell#readme\";\n  license = stdenv.lib.licenses.bsd3;\n}\n"
  },
  {
    "path": "classgen/godot-haskell-classgen.cabal",
    "content": "cabal-version: 1.12\n\n-- This file has been generated from package.yaml by hpack version 0.31.1.\n--\n-- see: https://github.com/sol/hpack\n--\n-- hash: 35a149339951f4c097aab1ae9ef0e3952109a1273b725ce775c4483b80c67fb6\n\nname:           godot-haskell-classgen\nversion:        0.1.0.0\ncategory:       Web\nhomepage:       https://github.com/KaneTW/godot-haskell#readme\nbug-reports:    https://github.com/KaneTW/godot-haskell/issues\nauthor:         David Kraeutmann\nmaintainer:     kane@kane.cx\ncopyright:      2018 David Kraeutmann\nlicense:        BSD3\nbuild-type:     Simple\nextra-source-files:\n    README.md\n\nsource-repository head\n  type: git\n  location: https://github.com/KaneTW/godot-haskell\n\nlibrary\n  exposed-modules:\n      Classgen.Docs\n      Classgen.Module\n      Classgen.Spec\n      Classgen.Utils\n  other-modules:\n      Paths_godot_haskell_classgen\n  hs-source-dirs:\n      src-classgen\n  default-extensions: FlexibleContexts FlexibleInstances ScopedTypeVariables TypeApplications StandaloneDeriving DerivingStrategies DefaultSignatures MultiParamTypeClasses FunctionalDependencies TypeFamilies TemplateHaskell TypeOperators TypeInType QuasiQuotes OverloadedStrings PatternSynonyms GeneralizedNewtypeDeriving\n  include-dirs:\n      godot_headers\n      cbits\n  build-tools:\n      c2hs\n  build-depends:\n      aeson\n    , base\n    , bytestring\n    , casing\n    , containers\n    , haskell-src-exts\n    , haskell-src-exts-qq\n    , haskell-src-exts-sc\n    , lens\n    , mtl\n    , template-haskell\n    , text\n    , unordered-containers\n    , vector\n  default-language: Haskell2010\n\nexecutable godot-haskell-classgen\n  main-is: Main.hs\n  other-modules:\n      Paths_godot_haskell_classgen\n  hs-source-dirs:\n      app-classgen\n  default-extensions: FlexibleContexts FlexibleInstances ScopedTypeVariables TypeApplications StandaloneDeriving DerivingStrategies DefaultSignatures MultiParamTypeClasses FunctionalDependencies TypeFamilies TemplateHaskell TypeOperators TypeInType QuasiQuotes OverloadedStrings PatternSynonyms GeneralizedNewtypeDeriving\n  include-dirs:\n      godot_headers\n      cbits\n  build-tools:\n      c2hs\n  build-depends:\n      aeson\n    , base\n    , bytestring\n    , casing\n    , containers\n    , directory\n    , filepath\n    , godot-haskell-classgen\n    , haskell-src-exts\n    , haskell-src-exts-sc\n    , lens\n    , mtl\n    , template-haskell\n    , text\n    , unordered-containers\n    , vector\n  default-language: Haskell2010\n"
  },
  {
    "path": "classgen/package.yaml",
    "content": "name: godot-haskell-classgen\nversion: '0.1.0.0'\ncategory: Web\nauthor: David Kraeutmann\nmaintainer: kane@kane.cx\ncopyright: 2018 David Kraeutmann\nlicense: BSD3\ngithub: KaneTW/godot-haskell\nextra-source-files:\n- README.md\n\ndependencies:\n- base\n- aeson\n- bytestring\n- template-haskell\n- lens\n- text\n- casing\n- vector\n- containers\n- unordered-containers\n- mtl\n\nbuild-tools:\n- c2hs\n\ninclude-dirs:\n- godot_headers\n- cbits\n\ndefault-extensions:\n- FlexibleContexts\n- FlexibleInstances\n- ScopedTypeVariables\n- TypeApplications\n- StandaloneDeriving\n- DerivingStrategies\n- DefaultSignatures\n- MultiParamTypeClasses\n- FunctionalDependencies\n- TypeFamilies\n- TemplateHaskell\n- TypeOperators\n- TypeInType\n- QuasiQuotes\n- OverloadedStrings\n- PatternSynonyms\n- GeneralizedNewtypeDeriving\n\nlibrary:\n  source-dirs: src-classgen\n  dependencies:\n  - haskell-src-exts\n  - haskell-src-exts-qq\n  - haskell-src-exts-sc\n\nexecutables:\n  godot-haskell-classgen:\n    main: Main.hs\n    source-dirs: app-classgen\n    dependencies:\n      - godot-haskell-classgen\n      - haskell-src-exts\n      - haskell-src-exts-sc\n      - directory\n      - filepath\n\n"
  },
  {
    "path": "classgen/release.nix",
    "content": "let\n  pkgs = import <nixpkgs> { };\nin\n  pkgs.haskellPackages.callPackage ./default.nix { }\n"
  },
  {
    "path": "classgen/src-classgen/Classgen/Docs.hs",
    "content": "{-# LANGUAGE TemplateHaskell, GeneralizedNewtypeDeriving, OverloadedStrings #-}\n{-# OPTIONS_GHC -Wno-orphans #-}\nmodule Classgen.Docs where\n\nimport Control.Applicative\nimport Control.Lens\n\nimport Data.Aeson\nimport Data.Aeson.TH\nimport Data.Monoid\nimport Data.Text (Text)\nimport qualified Data.Text as T\nimport Data.Vector (Vector)\nimport qualified Data.Vector as V\nimport Data.HashMap.Strict (HashMap)\nimport qualified Data.Set as S\nimport qualified Data.ByteString.Lazy as BL\nimport qualified Data.HashMap.Strict as H\n\nimport Text.Casing\nimport Classgen.Utils\n\n-- | One of the two values that has been parsed from JSON\ndata AlternativeJSON a b\n  = FirstJSON a\n  | SecondJSON b\n  deriving (Eq, Ord, Show)\n\ninstance (FromJSON a, FromJSON b) => FromJSON (AlternativeJSON a b) where\n  parseJSON v = FirstJSON <$> parseJSON v <|> SecondJSON <$> parseJSON v\n\nalternative1 :: AlternativeJSON a b -> a -> a\nalternative1 (FirstJSON a) _ = a\nalternative1 _             a = a\n\nalt1 :: AlternativeJSON a b -> Maybe a\nalt1 (FirstJSON a) = Just a\nalt1 _ = Nothing\n\ntype GodotDocTable = HashMap Text GodotDocClass\n\ntype GodotDocs = Vector GodotDoc\n\nnewtype Ref a = Ref Text\n  deriving (Show, Eq, FromJSON, ToJSON)\n\ndata GPrimType = VoidType | BoolType | IntType | FloatType\n  deriving (Show, Eq)\n\ninstance FromJSON GPrimType where\n  parseJSON = withText \"primitive type\" $ \\t ->\n    case t of\n      \"void\" -> pure VoidType\n      \"bool\" -> pure BoolType\n      \"int\" -> pure IntType\n      \"float\" -> pure FloatType\n      _ -> fail $ \"Unknown type\" <> T.unpack t\n\ndata GType\n  = PrimitiveType !GPrimType\n  | CoreType !Text\n  | CustomType !Text\n  | EnumType !Text\n  deriving (Show, Eq)\n\nisCoreType t = t `S.member` S.fromList \n      [ \"AABB\",\n        \"Array\",\n        \"Basis\",\n        \"Color\",\n        \"Dictionary\",\n        \"GodotError\",\n        \"NodePath\",\n        \"Plane\",\n        \"PoolByteArray\",\n        \"PoolIntArray\",\n        \"PoolRealArray\",\n        \"PoolStringArray\",\n        \"PoolVector2Array\",\n        \"PoolVector3Array\",\n        \"PoolColorArray\",\n        \"Object\",\n        \"Quat\",\n        \"Rect2\",\n        \"RID\",\n        \"String\",\n        \"Transform\",\n        \"Transform2D\",\n        \"Variant\",\n        \"Vector2\",\n        \"Vector3\" ]\n\ninstance FromJSON GType where\n  parseJSON v = PrimitiveType <$> parseJSON v\n                <|> withText \"type\" (\\t ->\n                  if isCoreType t\n                    then pure $ CoreType t\n                    else if \"enum.\" `T.isPrefixOf` t\n                         then pure $ EnumType t\n                         else pure $ CustomType t) v\n\ndata GodotDoc = GodotDoc {\n  _gdClass :: !GodotDocClass\n  } deriving (Show, Eq)\n\ninstance FromJSON GodotDoc where\n  parseJSON (Object x) = GodotDoc <$> x .: \"class\"\n  parseJSON _ = fail \"Expected an Object\"\n\ndata OptionalArray a = OptionalArray { unOption :: Vector a }\n  deriving (Show, Eq)\n\ninstance FromJSON a => FromJSON (OptionalArray a) where\n  parseJSON x@(Array _) = OptionalArray <$> parseJSON x\n  parseJSON x = OptionalArray . V.singleton <$> parseJSON x\n\ndata GodotDocClass = GodotDocClass\n  { _gdName :: !Text\n  , _gdVersion :: !Text\n  , _gdBrief_description :: !(AlternativeJSON Text Object)\n  , _gdDescription ::  !(AlternativeJSON Text Object)\n  , _gdCategory :: !(Maybe Text)\n  , _gdInherits :: !(Maybe Text)\n  , _gdMembers :: !(Maybe (HashMap Text (OptionalArray GodotProperty)))\n  , _gdConstants :: !(HashMap Text (OptionalArray GodotConstant))\n  , _gdSignals :: !(Maybe (HashMap Text (OptionalArray GodotSignal)))\n  , _gdMethods :: !(HashMap Text (OptionalArray GodotMethod))\n  } deriving (Show, Eq)\n\ndata GodotProperty = GodotProperty\n  { _gpName :: !Text\n  , _gcType :: !GType\n  , _gcGetter :: !Text\n  , _gcSetter :: !Text\n  , _gcValue :: !(Maybe Text)\n  } deriving (Show, Eq)\n\ndata GodotConstant = GodotConstant\n  { _goName :: !Text\n  , _goValue :: !Text\n  , _goEnum :: !(Maybe Text)\n  } deriving (Show, Eq)\n\ndata GodotSignal = GodotSignal\n  { _gsName :: !Text\n  , _gsDescription :: !(AlternativeJSON Text Object)\n  , _gsArgument :: !(Maybe (OptionalArray GodotArgument))\n  } deriving (Show, Eq)\n\ndata GodotArgument = GodotArgument\n  { _gaName :: !Text\n  , _gaType :: !GType\n  , _gaIndex :: !Text\n  , _gaDefault_ :: !(Maybe Text)\n  } deriving (Show, Eq)\n\ninstance FromJSON GodotArgument where\n  parseJSON (Object x) = GodotArgument <$> x .: \"name\" <*> x .: \"type\" <*> x .: \"index\" <*> x .:? \"default\"\n  parseJSON _ = fail \"Expected an Object\"\n\ndata GodotMethod = GodotMethod\n  { _gmName :: !Text\n  , _gmDescription :: !(AlternativeJSON Text Object)\n  , _gmReturn :: !(Maybe (HashMap Text GType))\n  , _gmArgument :: !(Maybe (OptionalArray GodotArgument))\n  } deriving (Show, Eq)\n\nmakeLensesWith fixedTypeFields ''GodotDoc\nmakeLensesWith fixedTypeFields ''GodotDocClass\nmakeLensesWith fixedTypeFields ''GodotProperty\nmakeLensesWith fixedTypeFields ''GodotSignal\nmakeLensesWith fixedTypeFields ''GodotArgument\nmakeLensesWith fixedTypeFields ''GodotMethod\n\ntoTable :: GodotDocs -> GodotDocTable\ntoTable = V.foldl' (\\hm d -> H.insert (d ^. class' . name) (d ^. class') hm) H.empty \n\nmakePrisms ''GType\nmakePrisms ''GPrimType\n\nconcat <$> mapM (deriveFromJSON defaultOptions { fieldLabelModifier = quietSnake . drop 3, omitNothingFields = True })\n  [ ''GodotDocClass\n  , ''GodotProperty\n  , ''GodotConstant\n  , ''GodotSignal\n  , ''GodotMethod ]\n\nconvertDoc = T.replace \"]\" \"@\" . T.replace \"[\" \"@\"\n           . T.replace \"[/code]\" \"@\" . T.replace \"[code]\" \"@\"\n           . T.replace \"[/codeblock]\" \"\\n@\\n\" . T.replace \"[codeblock]\" \"\\n@\\n\"\n           . T.replace \"[b]\" \"__\" . T.replace \"[/b]\" \"__\"\n           . T.replace \"[constant \" \"@\"\n           . T.replace \"[member \" \"@\"\n"
  },
  {
    "path": "classgen/src-classgen/Classgen/Module.hs",
    "content": "{-# LANGUAGE NoMonoLocalBinds, NoMonomorphismRestriction #-}\nmodule Classgen.Module where\n\nimport Control.Lens hiding (index)\nimport Control.Applicative\nimport Control.Monad.State\nimport Data.HashMap.Strict (HashMap)\nimport qualified Data.HashMap.Strict as HM\nimport qualified Data.Vector as V\nimport Data.Text (Text)\nimport qualified Data.Text as T\nimport Data.Set (Set)\nimport qualified Data.Set as S\nimport qualified Language.Haskell.Exts as HS\nimport Language.Haskell.Exts.QQ\nimport Language.Haskell.Exts.SimpleComments\nimport Text.Casing\nimport Classgen.Spec\nimport qualified Classgen.Docs as D\nimport Data.Maybe\nimport Data.List\n\n--TODO add singleton functions\n\ndata ClassgenState = ClassgenState\n  { _csModules :: !(HashMap Text (HS.Module (Maybe CodeComment)))\n  , _csMethods :: !(HashMap Text (Set Text))\n  , _csTyDecls :: !([HS.Decl (Maybe CodeComment)])\n  } deriving (Show, Eq) \n\nmakeLensesWith abbreviatedFields ''ClassgenState\n\nnoComments l = fmap (\\_ -> Nothing) l\n\naddClass :: MonadState ClassgenState m => GodotClass -> Maybe D.GodotDocClass -> GodotClasses -> m ()\naddClass cls mdoc allClasses = do\n  methods <- mkMethods cls mdoc\n  properties <- mkProperties cls mdoc\n  signals <- mkSignals cls mdoc\n  let dataType = if isCoreType (cls ^. name) then [] else mkDataType cls mdoc\n  tyDecls <>= dataType\n  let classDecls = nub $ (noComments <$> (mkConstants cls ++ mkEnums cls))\n                 ++ signals ++ properties ++ methods\n  modules %= HM.insert (mangleClass $ cls ^. name) (HS.Module Nothing\n                                      (Just $ classModuleHead classDecls)\n                                      [HS.LanguagePragma Nothing [HS.Ident Nothing \"DerivingStrategies\"\n                                                                 ,HS.Ident Nothing \"GeneralizedNewtypeDeriving\"\n                                                                 ,HS.Ident Nothing \"TypeFamilies\"\n                                                                 ,HS.Ident Nothing \"TypeOperators\"\n                                                                 ,HS.Ident Nothing \"FlexibleContexts\"\n                                                                 ,HS.Ident Nothing \"DataKinds\"\n                                                                 ,HS.Ident Nothing \"MultiParamTypeClasses\"]]\n                                      (noComments <$> classImports)\n                                      classDecls)\n  where\n    classImports = map (\\n -> HS.ImportDecl () (HS.ModuleName () n) False False False Nothing Nothing Nothing)\n      ([ \"Data.Coerce\", \"Foreign.C\", \"Godot.Internal.Dispatch\"\n       , \"qualified Data.Vector as V\"\n       , \"Linear(V2(..),V3(..),M22)\", \"Data.Colour(withOpacity)\", \"Data.Colour.SRGB(sRGB)\"\n       , \"System.IO.Unsafe\", \"Godot.Gdnative.Internal\", \"Godot.Api.Types\"\n       ] <> maybe [] (:[]) parentModuleImport)\n    classModuleHead decls = HS.ModuleHead Nothing classModuleName Nothing $ Just (classExports decls)\n    classModuleName = noComments $ HS.ModuleName () $ \"Godot.\" ++ (pascal $ T.unpack (cls ^. apiType))\n      ++ \".\" ++ (T.unpack $ mangleClass $ cls ^. name)\n    parentModuleImport = case (cls ^. baseClass, V.find (\\x -> cls ^. baseClass == x ^. name) allClasses) of\n                         (\"\", Nothing) -> Nothing\n                         (_, Nothing) -> error \"Can't find base class\"\n                         (_, Just baseCls) -> Just $ \"Godot.\" ++ (pascal $ T.unpack (baseCls ^. apiType))\n                                                  ++ \".\" ++ (T.unpack $ mangleClass $ baseCls ^. name)\n                                                  ++ \"()\"\n    classExports decls = HS.ExportSpecList Nothing $\n      mapMaybe (\\decl -> case decl of\n                   HS.TypeSig _ [name] (HS.TyCon _ (HS.Qual _ _ (HS.Ident _ \"MethodBind\"))) ->\n                     Nothing\n                   HS.TypeSig _ [name] (HS.TyCon _ (HS.UnQual _ (HS.Ident _ \"MethodBind\"))) ->\n                     Nothing\n                   HS.TypeSig _ [name] _ ->\n                     Just $ HS.EVar Nothing (HS.Qual Nothing classModuleName name)\n                   _ -> Nothing)\n      decls\n\nmkProperties :: MonadState ClassgenState m => GodotClass -> Maybe D.GodotDocClass -> m [HS.Decl (Maybe CodeComment)]\nmkProperties cls mdoc = concat <$> mapM mkProperty (V.toList $ cls ^. properties)\n  where\n    mkProperty prop = do\n      get <- mkGetter prop\n      set <- mkSetter prop\n      inst <- mkProp prop\n      return (get ++ set ++ [inst])\n    indexArg prop = if prop ^. index == -1 then\n                 V.empty else\n                 V.singleton (GodotArgument \"param\" (PrimitiveType IntType) Nothing)\n    mkGetter prop             = mkMethod cls (GodotMethod (prop ^. getter)\n                                              (gty prop) False False True False False False False\n                                              (indexArg prop))\n                                             (methodDoc (prop ^. getter) mdoc)\n    mkSetter prop | T.null (prop ^. setter) = return []\n                  | otherwise = mkMethod cls (GodotMethod (prop ^. setter)\n                                              (PrimitiveType VoidType) False False False False False False False\n                                              (indexArg prop <> V.singleton (GodotArgument (prop ^. name) (gty prop) Nothing)))\n                                             (methodDoc (prop ^. setter) mdoc)\n    gty prop = case (cls ^. name,prop ^. name) of\n                              -- NB These are bugs in api.json\n                              (\"VisualScriptPropertySet\",\"type_cache\") -> CoreType \"Dictionary\" -- has int\n                              (\"PhysicsDirectBodyState\",\"transform\") -> CoreType \"Transform\" -- has transform2d\n                              (\"JSONParseResult\",\"error\") -> PrimitiveType IntType -- has Object\n                              (\"InputEventKey\", \"echo\") -> PrimitiveType BoolType -- has int\n                              (\"GeometryInstance\", \"lod_max_distance\") -> PrimitiveType FloatType -- has int\n                              (\"GeometryInstance\", \"lod_max_hysteresis\") -> PrimitiveType FloatType -- has int\n                              (\"GeometryInstance\", \"lod_min_distance\") -> PrimitiveType FloatType -- has int\n                              (\"GeometryInstance\", \"lod_min_hysteresis\") -> PrimitiveType FloatType -- has int\n                              (\"Control\", \"margin_bottom\") -> PrimitiveType FloatType -- has int\n                              (\"Control\", \"margin_top\") -> PrimitiveType FloatType -- has int\n                              (\"Control\", \"margin_left\") -> PrimitiveType FloatType -- has int\n                              (\"Control\", \"margin_right\") -> PrimitiveType FloatType -- has int\n                              (\"Curve3D\", \"_data\") -> CoreType \"Dictionary\" -- has int\n                              (\"Curve2D\", \"_data\") -> CoreType \"Dictionary\" -- has int\n                              (\"Curve\", \"_data\") -> CoreType \"Array\" -- has int\n                              (\"Polygon2D\", \"bones\") -> CoreType \"Array\" -- has Bool\n                              (\"RichTextLabel\", \"custom_effects\") -> CoreType \"Array\" -- has 17/17:RichTextEffect\n                              (\"AudioEffectPitchShift\", \"oversampling\") -> PrimitiveType IntType -- has float\n                              (\"Area2D\", \"priority\") -> PrimitiveType FloatType -- has int\n                              (\"Area\", \"priority\") -> PrimitiveType FloatType -- has int\n                              -- NB These seem to be too specific or generic in api.json\n                              (\"ARVRServer\", \"primary_interface\") -> CustomType \"ARVRInterface\" -- has Object\n                              (\"AnimationTree\", \"tree_root\") -> CustomType \"AnimationNode\" -- has AnimationRootNode\n                              (\"Camera2D\", \"custom_viewport\") -> CustomType \"Node\" -- has Viewport\n                              (\"CanvasLayer\", \"custom_viewport\") -> CustomType \"Node\" -- has Viewport\n                              (\"ConvexPolygonShape\", \"points\") -> CustomType \"PoolVector3Array\" -- has Array\n                              (\"ParticlesMaterial\",\"angle_curve\") -> CoreType \"Texture\" -- has CurveTexture\n                              (\"ParticlesMaterial\",\"angular_velocity_curve\") -> CoreType \"Texture\" -- has CurveTexture\n                              (\"ParticlesMaterial\",\"anim_offset_curve\") -> CoreType \"Texture\" -- has CurveTexture\n                              (\"ParticlesMaterial\",\"anim_speed_curve\") -> CoreType \"Texture\" -- has CurveTexture\n                              (\"ParticlesMaterial\",\"damping_curve\") -> CoreType \"Texture\" -- has CurveTexture\n                              (\"ParticlesMaterial\",\"hue_variation_curve\") -> CoreType \"Texture\" -- has CurveTexture\n                              (\"ParticlesMaterial\",\"linear_accel_curve\") -> CoreType \"Texture\" -- has CurveTexture\n                              (\"ParticlesMaterial\",\"orbit_velocity_curve\") -> CoreType \"Texture\" -- has CurveTexture\n                              (\"ParticlesMaterial\",\"radial_accel_curve\") -> CoreType \"Texture\" -- has CurveTexture\n                              (\"ParticlesMaterial\",\"scale_curve\") -> CoreType \"Texture\" -- has CurveTexture\n                              (\"ParticlesMaterial\",\"tangential_accel_curve\") -> CoreType \"Texture\" -- has CurveTexture\n                              (\"ParticlesMaterial\",\"color_ramp\") -> CoreType \"Texture\" -- has GradientTexture\n                              (\"SceneTree\",\"root\") -> CoreType \"Viewport\" -- has Node\n                              _ -> prop ^. type'\n    mkProp prop = do\n      pure $ noComments [dec|instance NodeProperty ((cty)) ((n)) ((ty)) ((ro)) where nodeProperty = ( $get , $set , Nothing) |]\n      where cty = clsTy cls\n            n = promotedString $ T.unpack $ prop ^. name\n            ty = toHsType $ gty prop\n            ro = if T.null (prop ^. setter) then\n                   HS.TyPromoted () $ HS.PromotedCon () True $ HS.UnQual () $ HS.Ident () \"True\" else\n                   HS.TyPromoted () $ HS.PromotedCon () True $ HS.UnQual () $ HS.Ident () \"False\"\n            setname = toMethodName (prop ^. setter)\n            getname = toMethodName (prop ^. getter)\n            i :: String = show $ ((prop ^. index)::Int)\n            get = if prop ^. index == -1 then\n                    [hs|__getname__|] else\n                    [hs|wrapIndexedGetter __i__ __getname__|]\n            set = if prop ^. index == -1 || T.null (prop ^. setter) then\n                    if T.null (prop ^. setter) then\n                      [hs|()|] else\n                      [hs|wrapDroppingSetter __setname__|]\n                        else\n                    [hs|wrapIndexedSetter __i__ __setname__|]\n\ngodotObjectTy :: HS.Type ()\ngodotObjectTy = HS.TyCon () $ HS.UnQual () $ HS.Ident () \"Object\"\n\nsigCon :: HS.Exp ()\nsigCon = HS.Con () $ HS.Qual () (HS.ModuleName () $ \"Godot.Internal.Dispatch\") $ HS.Ident () \"Signal\"\n\nsigTy :: HS.Type ()\nsigTy = HS.TyCon () $ HS.Qual () (HS.ModuleName () $ \"Godot.Internal.Dispatch\") $ HS.Ident () \"Signal\"\n\nclsAsName :: GodotClass -> HS.Name ()\nclsAsName cls = HS.Ident () (T.unpack $ mangleClass $ cls ^. name)\n\nclsTy :: GodotClass -> HS.Type ()\nclsTy = HS.TyCon () . HS.UnQual ()  . clsAsName\n\nnameToTyCon = HS.TyCon () . HS.UnQual () . HS.Ident () . T.unpack\n\nbaseClsTy :: GodotClass -> HS.Type ()\nbaseClsTy cls = nameToTyCon (cls ^. baseClass)\n\nintTy = HS.TyCon () . HS.UnQual () $ HS.name \"Int\"\n\npromotedString s = HS.TyPromoted () (HS.PromotedString () s s)\n\npromotedList l = HS.TyPromoted () (HS.PromotedList () True l)\n\nmkDataType cls mdoc =\n  [ HS.DataDecl (case mdoc of\n                   Nothing -> Nothing\n                   Just d -> case d ^. D.brief_description of\n                              D.FirstJSON x -> preComment (T.unpack $\n                                                          D.convertDoc $\n                                                          x <> \"\\n\" <> let desc = D.alternative1 (d ^. D.description) \"\"\n                                                                       in case T.stripPrefix x desc of\n                                                                            Nothing -> T.strip desc\n                                                                            Just r -> r)\n                              _ -> Nothing) (HS.NewType Nothing) Nothing \n    (noComments $ HS.DHead () $ clsAsName cls)\n    [noComments $ HS.QualConDecl () Nothing Nothing $ HS.ConDecl () (clsAsName cls) [godotObjectTy]]\n    [noComments $ HS.Deriving () (Just $ HS.DerivNewtype ()) [asVariantRule]]\n  ] ++ if T.null (cls ^. baseClass) then [] else\n  [ noComments\n    $ [dec| instance HasBaseClass ((cty)) where\n        type BaseClass ((cty)) = ((bty))\n        super = coerce |] ]\n  where\n    asVariantRule = HS.IRule () Nothing Nothing $ HS.IHCon () (HS.UnQual () $ HS.Ident () \"AsVariant\")\n    cty = clsTy cls\n    bty = baseClsTy cls\n\nmkSignals :: MonadState ClassgenState m => GodotClass -> Maybe D.GodotDocClass -> m [HS.Decl (Maybe CodeComment)]\nmkSignals cls mdoc = return $ concatMap mkSignal (V.toList $ cls ^. signals)\n  where\n    signalDoc :: Text -> Maybe D.GodotDocClass -> Maybe CodeComment\n    signalDoc name mdoc = do\n      doc <- mdoc\n      sigs <- D._gdSignals doc\n      ss <- D.unOption <$> HM.lookup (T.pack \"signal\") sigs\n      sdoc <- V.find (\\e -> e ^. D.name == name) ss\n      d <- D.alt1 $ sdoc ^. D.description\n      preComment (T.unpack $ D.convertDoc d)\n    argToHsType (GodotArgument _ ty _) = toHsType ty\n    mkSignal sig \n      = let sigStr = T.unpack (sig ^. name)\n            sigName = HS.Ident () (\"sig_\" ++ sigStr)\n        in [ HS.TypeSig (signalDoc (sig ^. name) mdoc) [noComments $ sigName] (noComments $ HS.TyApp () sigTy (clsTy cls))\n           , noComments $ HS.PatBind () (HS.PVar () sigName) (\n               HS.UnGuardedRhs () $ HS.App () sigCon $ HS.Lit () $ HS.String () sigStr sigStr\n           ) Nothing\n           , let cty = clsTy cls\n                 args = promotedList $ map argToHsType $ V.toList $ sig ^. arguments\n                 st = promotedString sigStr\n             in noComments [dec|instance NodeSignal ((cty)) ((st)) ((args))|]\n           ]\n\nmkConstants :: GodotClass -> [HS.Decl ()]\nmkConstants cls = concatMap mkConstant (HM.toList $ cls ^. constants)\n  where\n    mkConstant (cname, cval)\n      = let constName = HS.Ident () $ T.unpack (\"_\" <> cname)\n        in [ HS.TypeSig ()  [constName] intTy\n           , HS.FunBind () [HS.Match ()\n                            constName\n                            []\n                            (HS.UnGuardedRhs () (HS.Lit () (HS.Int () (fromIntegral cval) (show cval))))\n                            Nothing]\n           ]\n\nmkEnums cls = [] -- TODO Not sure what to do about these\n\nmethodDoc :: Text -> Maybe D.GodotDocClass -> Maybe CodeComment\nmethodDoc name mdoc = do\n  doc <- mdoc\n  (do\n      ms <- D.unOption <$> HM.lookup (T.pack \"method\") (D._gdMethods doc)\n      docm <- V.find (\\e -> e ^. D.name == name) ms\n      d <- D.alt1 $ docm ^. D.description \n      preComment (T.unpack $ D.convertDoc d))\n    <|> (do\n            mems <- D.unOption <$> (HM.lookup (T.pack \"member\") =<< D._gdMembers doc)\n            doc <- V.find (\\e -> e ^. D.getter == name || e ^. D.setter == name) mems\n            d <- doc ^. D.value\n            preComment (T.unpack $ D.convertDoc d))\n\nmkMethods :: MonadState ClassgenState m => GodotClass -> Maybe D.GodotDocClass -> m [HS.Decl (Maybe CodeComment)]\nmkMethods cls mdoc =\n  concat <$> mapM (\\m -> mkMethod cls m (methodDoc (m ^. name) mdoc))\n             (V.toList $ cls ^. methods)\n\nmkMethod :: MonadState ClassgenState m => GodotClass -> GodotMethod -> Maybe CodeComment -> m [HS.Decl (Maybe CodeComment)]\nmkMethod cls method doc = do\n  mtds <- use methods\n  if (method ^. name) `S.member` (HM.lookupDefault mempty (cls ^. name) mtds)\n    then return []\n    else do\n    methods %= HM.insertWith S.union (mangleClass $ cls ^. name) (S.singleton $ method ^. name)\n    when (T.null $ method ^. name) $ error (show cls ++ \"\\n\" ++ show method)\n    return $ \n        [ noComments $ HS.InlineSig () False Nothing (HS.UnQual () clsMethodBindName)\n        , HS.TypeSig doc [noComments $ clsMethodBindName]\n                         (noComments $ HS.TyCon () (HS.UnQual () (HS.Ident () \"MethodBind\")))\n        , noComments $ HS.PatBind () (HS.PVar () clsMethodBindName) clsMethodBindRhs Nothing\n        , HS.TypeSig doc [HS.Ident Nothing $ methodName]\n          (noComments [ty|(((clsName)) :< cls, Object :< cls) => cls -> ((methodSig))|])\n        , noComments $ HS.FunBind () [HS.Match () (HS.Ident () $ methodName)\n                        ((HS.PVar () (HS.Ident () \"cls\") : map (HS.PVar ()) argNames)\n                         ++ if method ^. hasVarargs then\n                            [HS.PVar () (HS.Ident () \"varargs\")] else\n                            [])\n                        runMethodRhs Nothing]\n        , let cty = clsTy cls\n              name = promotedString rawMethodName\n              args = promotedList $ V.toList methodArgs\n              ret = toHsType $ method ^. returnType\n              mname = classModuleName <> \".\" <> methodName\n          in noComments $\n            [dec|instance NodeMethod ((cty)) ((name)) ((args)) (IO ((ret)) ) where nodeMethod = __mname__ |]\n        ]\n  where\n    clsName = HS.TyCon () (HS.UnQual () (clsAsName cls))\n    clsMethodBindName = HS.Ident () $ \"bind\" ++ (T.unpack $ mangleClass (cls ^. name)) ++ \"_\" ++ methodName\n    clsMethodBindVar = HS.Var () $ HS.UnQual () clsMethodBindName\n    clsMethodBindRhs = HS.UnGuardedRhs ()\n      [hs| unsafePerformIO $ withCString $(HS.strE (T.unpack $ cls ^. name)) $\n         \\clsNamePtr -> withCString $(HS.strE rawMethodName) $\n         \\methodNamePtr -> godot_method_bind_get_method clsNamePtr methodNamePtr |]\n    classModuleName = \"Godot.\" ++ (pascal $ T.unpack (cls ^. apiType)) ++ \".\" ++ (T.unpack $ mangleClass $ cls ^. name)\n    runMethodRhs = HS.UnGuardedRhs () $ HS.App () (\n      HS.App ()\n        (HS.Var () (HS.UnQual () (HS.Ident () \"withVariantArray\")))\n        (let a = HS.List () $ zipWith (\\a an -> wrapDefault a an) (V.toList $ method ^. arguments) argNames\n        in if method ^. hasVarargs then\n            [hs|$a ++ varargs|] else\n            a))\n      [hs|\n        \\(arrPtr, len) -> godot_method_bind_call $(clsMethodBindVar) (upcast cls) arrPtr len >>=\n        \\(err, res) -> throwIfErr err >> fromGodotVariant res |]\n\n    wrapDefault (GodotArgument _ ty Nothing) v = mkToVariant v\n    wrapDefault (GodotArgument _ ty (Just d)) v = mkDefault ty d (HS.Var () $ HS.UnQual () v)\n\n    mkDefault :: GType -> Text -> HS.Exp () -> HS.Exp ()\n    mkDefault (PrimitiveType IntType) d v = [hs|maybe (VariantInt (__dt__)) toVariant $v |]\n      where dt = T.unpack d\n    mkDefault (PrimitiveType FloatType) d v = [hs|maybe (VariantReal (__dt__)) toVariant $v |]\n      where dt = T.unpack d\n    mkDefault (PrimitiveType BoolType) d v = [hs|maybe (VariantBool __dt__) toVariant $v |]\n      where dt = T.unpack d\n    mkDefault (CoreType \"Color\") \"1,1,1,1\" v = [hs|defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) $v |]\n    mkDefault (CoreType \"Rect2\") \"(0, 0, 0, 0)\" v = [hs|defaultedVariant VariantRect2 (V2 (V2 0 0) (V2 0 0)) $v |]\n    mkDefault (CoreType \"PoolStringArray\") \"[]\" v = [hs|defaultedVariant VariantPoolStringArray V.empty $v |]\n    mkDefault (CoreType \"Dictionary\") \"{}\" v = [hs|defaultedVariant VariantDictionary V.empty $v |]\n    mkDefault (CoreType \"PoolVector2Array\") \"[]\" v = [hs|defaultedVariant VariantPoolVector2Array V.empty $v |]\n    mkDefault (CoreType \"PoolVector3Array\") \"[]\" v = [hs|defaultedVariant VariantPoolVector3Array V.empty $v |]\n    mkDefault (CoreType \"PoolIntArray\") \"[]\" v = [hs|defaultedVariant VariantPoolIntArray V.empty $v |]\n    mkDefault (CoreType \"PoolRealArray\") \"[]\" v = [hs|defaultedVariant VariantPoolRealArray V.empty $v |]\n    mkDefault (CoreType \"PoolColorArray\") \"[PoolColorArray]\" v = [hs|defaultedVariant VariantPoolColorArray V.empty $v |]\n    mkDefault (CoreType \"Array\") \"[]\" v = [hs|defaultedVariant VariantArray V.empty $v |]\n    mkDefault (CoreType \"Vector2\") \"(-1, -1)\" v = [hs|defaultedVariant VariantVector2 (V2 (-1) (-1)) $v |]\n    mkDefault (CoreType \"Vector2\") \"(0, 0)\" v = [hs|defaultedVariant VariantVector2 (V2 0 0) $v |]\n    mkDefault (CoreType \"Vector3\") \"(0, 0, 0)\" v = [hs|defaultedVariant VariantVector3 (V3 0 0 0) $v |]\n    mkDefault (CoreType \"Transform2D\") \"((1, 0), (0, 1), (0, 0))\" v = [hs|defaultedVariant VariantTransform2d (TF2d (V2 1 0) (V2 0 1) (V2 0 0)) $v |]\n    mkDefault (CoreType \"Transform\") \"1, 0, 0, 0, 1, 0, 0, 0, 1 - 0, 0, 0\" v = [hs|defaultedVariant VariantTransform (TF (V3 (V3 1 0 0) (V3 0 1 0) (V3 0 0 1)) (V3 0 0 0)) $v |]\n    -- TODO Is this right?\n    mkDefault (CoreType \"RID\") \"[RID]\" v = [hs|maybe VariantNil toVariant $v |]\n    mkDefault (CoreType \"String\") d v = [hs|defaultedVariant VariantString __dt__ $v  |]\n      where dt = \"\\\"\" <> T.unpack d <> \"\\\"\"\n    mkDefault _ \"Null\"          v = [hs|maybe VariantNil toVariant $v |]\n    mkDefault _ \"0\"             v = [hs|maybe (VariantInt 0) toVariant $v |]\n    mkDefault _ \"1\"             v = [hs|maybe (VariantInt 1) toVariant $v |]\n    mkDefault _ \"[Object:null]\" v = [hs|maybe VariantNil toVariant $v |]\n    mkDefault t d _ = error $ \"Don't know how to make defaults for this type (\" ++ show t ++ \") for value (\" ++ show d ++ \")\"\n\n    mkToVariant = HS.App () (HS.Var () (HS.UnQual () (HS.Ident () \"toVariant\"))) . HS.Var () . HS.UnQual ()\n\n    argNames = map (HS.Ident () . (\"arg\" ++) . show) [1..length (method ^. arguments)]\n\n    methodSig = foldr (HS.TyFun ()) (HS.TyApp () [ty|IO|] (toHsType $ method ^. returnType)) methodArgs\n    methodArgs = let args = fmap argToHsType (method ^. arguments)\n                 in if method ^. hasVarargs then\n                      args `V.snoc` [ty|[Variant 'GodotTy]|] else\n                      args\n\n    argToHsType (GodotArgument _ ty (Just _)) =\n      HS.TyApp () (HS.TyCon () $ HS.UnQual () $ HS.Ident () \"Maybe\") $ toHsType ty\n    argToHsType (GodotArgument _ ty _) = toHsType ty\n\n    rawMethodName = T.unpack $ method ^. name\n    methodName = toMethodName (method ^. name)\n\ntoMethodName name = T.unpack (case name of\n                             \"case\" -> \"case'\"\n                             \"class\" -> \"class'\"\n                             \"data\" -> \"data'\"\n                             \"default\" -> \"default'\"\n                             \"deriving\" -> \"deriving'\"\n                             \"do\" -> \"do'\"\n                             \"else\" -> \"else'\"\n                             \"forall\" -> \"forall'\"\n                             \"if\" -> \"if'\"\n                             \"import\" -> \"import'\"\n                             \"in\" -> \"in'\"\n                             \"infix\" -> \"infix'\"\n                             \"infixl\" -> \"infixl'\"\n                             \"infixr\" -> \"infixr'\"\n                             \"instance\" -> \"instance'\"\n                             \"let\" -> \"let'\"\n                             \"module\" -> \"module'\"\n                             \"newtype\" -> \"newtype'\"\n                             \"of\" -> \"of'\"\n                             \"qualified\" -> \"qualified'\"\n                             \"then\" -> \"then'\"\n                             \"type\" -> \"type'\"\n                             \"where\" -> \"where'\"\n                             \"foreign\" -> \"foreign'\"\n                             \"ccall\" -> \"ccall'\"\n                             \"as\" -> \"as'\"\n                             \"safe\" -> \"safe'\"\n                             \"unsafe\" -> \"unsafe'\"\n                             x -> x)\n\nmangleClass \"String\" = \"GodotString\"\nmangleClass \"Variant\" = \"GodotVariant\"\nmangleClass c = case T.stripPrefix \"_\" c of\n                  Nothing -> c\n                  Just x -> x\n\ntoHsType :: GType -> HS.Type ()\ntoHsType (PrimitiveType VoidType) = [ty| () |]\ntoHsType (PrimitiveType BoolType) = [ty| Bool |]\ntoHsType (PrimitiveType IntType) = [ty| Int |]\ntoHsType (PrimitiveType FloatType) = [ty| Float |]\ntoHsType (CoreType ty) = nameToTyCon $ renameType ty\n  where\n    renameType \"RID\" = \"Rid\"\n    renameType \"Transform2D\" = \"Transform2d\"\n    renameType \"AABB\" = \"Aabb\"\n    renameType \"String\" = \"GodotString\"\n    renameType \"Variant\" = \"GodotVariant\"\n    renameType x = mangleClass x\n-- NB: Are these bugs in api.json? Why is the type different from anywhere else?\ntoHsType (CustomType \"SpatialMaterial,ShaderMaterial\")    = nameToTyCon \"Material\"\ntoHsType (CustomType \"ShaderMaterial,CanvasItemMaterial\") = nameToTyCon \"Material\"\ntoHsType (CustomType \"ShaderMaterial,SpatialMaterial\")    = nameToTyCon \"Material\"\ntoHsType (CustomType \"ShaderMaterial,ParticlesMaterial\")  = nameToTyCon \"Material\"\ntoHsType (CustomType ty) = nameToTyCon ty\ntoHsType (EnumType _) = [ty| Int |]\n"
  },
  {
    "path": "classgen/src-classgen/Classgen/Spec.hs",
    "content": "{-# LANGUAGE TemplateHaskell, GeneralizedNewtypeDeriving, OverloadedStrings #-}\n{-# OPTIONS_GHC -Wno-orphans #-}\nmodule Classgen.Spec where\n\nimport Control.Applicative\nimport Control.Lens\n\nimport Data.Aeson\nimport Data.Aeson.TH\nimport Data.Monoid\nimport Data.Text (Text)\nimport qualified Data.Text as T\nimport Data.Vector (Vector)\nimport Data.HashMap.Strict (HashMap)\nimport qualified Data.Set as S\n\nimport Text.Casing\nimport Classgen.Utils\n\ntype GodotClasses = Vector GodotClass\n\nnewtype Ref a = Ref Text\n  deriving (Show, Eq, FromJSON, ToJSON)\n\ndata GPrimType = VoidType | BoolType | IntType | FloatType\n  deriving (Show, Eq)\n\ninstance FromJSON GPrimType where\n  parseJSON = withText \"primitive type\" $ \\t ->\n    case t of\n      \"void\" -> pure VoidType\n      \"bool\" -> pure BoolType\n      \"int\" -> pure IntType\n      \"float\" -> pure FloatType\n      _ -> fail $ \"Unknown type\" <> T.unpack t\n\ndata GType\n  = PrimitiveType !GPrimType\n  | CoreType !Text\n  | CustomType !Text\n  | EnumType !Text\n  deriving (Show, Eq)\n\nisCoreType t = t `S.member` S.fromList \n      [ \"AABB\",\n        \"Array\",\n        \"Basis\",\n        \"Color\",\n        \"Dictionary\",\n        \"GodotError\",\n        \"NodePath\",\n        \"Plane\",\n        \"PoolByteArray\",\n        \"PoolIntArray\",\n        \"PoolRealArray\",\n        \"PoolStringArray\",\n        \"PoolVector2Array\",\n        \"PoolVector3Array\",\n        \"PoolColorArray\",\n        \"Object\",\n        \"Quat\",\n        \"Rect2\",\n        \"RID\",\n        \"String\",\n        \"Transform\",\n        \"Transform2D\",\n        \"Variant\",\n        \"Vector2\",\n        \"Vector3\" ]\n\ninstance FromJSON GType where\n  parseJSON v = PrimitiveType <$> parseJSON v\n                <|> withText \"type\" (\\t ->\n                  if isCoreType t\n                    then pure $ CoreType t\n                    else if \"enum.\" `T.isPrefixOf` t\n                         then pure $ EnumType t\n                         else pure $ CustomType t) v\n\ndata GodotClass = GodotClass\n  { _gcName :: !Text\n  , _gcBaseClass :: !Text\n  , _gcApiType :: !Text\n  , _gcSingleton ::  !Bool\n  , _gcInstanciable :: !Bool\n  , _gcIsReference :: !Bool\n  , _gcConstants :: !(HashMap Text Int)\n  , _gcProperties:: !(Vector GodotProperty)\n  , _gcSignals :: !(Vector GodotSignal)\n  , _gcMethods :: !(Vector GodotMethod)\n  , _gcEnums :: !(Vector GodotEnum)\n  } deriving (Show, Eq)\n\ndata GodotProperty = GodotProperty\n  { _gpName :: !Text\n  , _gcType :: !GType\n  , _gcGetter :: !Text\n  , _gcSetter :: !Text\n  , _gcIndex :: !Int\n  } deriving (Show, Eq)\n\ndata GodotSignal = GodotSignal\n  { _gsName :: !Text\n  , _gsArguments :: !(Vector GodotArgument)\n  } deriving (Show, Eq)\n\ndata GodotArgument = GodotArgument\n  { _gaName :: !Text\n  , _gaType :: !GType\n  , _gaDefaultValue :: !(Maybe Text)\n  } deriving (Show, Eq)\n\ninstance FromJSON GodotArgument where\n  parseJSON = withObject \"argument\" $ \\v ->\n    do\n      hasDefault <- v .:? \"has_default_value\"\n      maybeDefault <- case hasDefault of\n        Just False -> pure Nothing\n        _ -> Just <$> v .: \"default_value\"\n      GodotArgument \n        <$> v .: \"name\"\n        <*> v .: \"type\"\n        <*> pure maybeDefault\n\ndata GodotMethod = GodotMethod\n  { _gmName :: !Text\n  , _gmReturnType :: !GType\n  , _gmIsEditor :: !Bool\n  , _gmIsNoscript :: !Bool\n  , _gmIsConst :: !Bool\n  , _gmIsReverse :: !Bool\n  , _gmIsVirtual :: !Bool\n  , _gmHasVarargs :: !Bool\n  , _gmIsFromScript :: !Bool\n  , _gmArguments :: !(Vector GodotArgument)\n  } deriving (Show, Eq)\n\ndata GodotEnum = GodotEnum\n  { _geName :: !GType\n  , _geValues :: !(HashMap Text Int)\n  } deriving (Show, Eq)\n\nmakeLensesWith fixedTypeFields ''GodotClass\nmakeLensesWith fixedTypeFields ''GodotProperty\nmakeLensesWith fixedTypeFields ''GodotSignal\nmakeLensesWith fixedTypeFields ''GodotArgument\nmakeLensesWith fixedTypeFields ''GodotMethod\nmakeLensesWith fixedTypeFields ''GodotEnum\n\nmakePrisms ''GType\nmakePrisms ''GPrimType\n\nconcat <$> mapM (deriveFromJSON defaultOptions { fieldLabelModifier = quietSnake . drop 3 })\n  [ ''GodotClass\n  , ''GodotProperty\n  , ''GodotSignal\n  , ''GodotMethod\n  , ''GodotEnum ]\n"
  },
  {
    "path": "classgen/src-classgen/Classgen/Utils.hs",
    "content": "module Classgen.Utils where\n\nimport Control.Lens\nimport Language.Haskell.TH\n\nfixedTypeFields :: LensRules\nfixedTypeFields = defaultFieldRules & lensField .~ (\\tyn fs f -> map fixDefName $ abbreviatedNamer tyn fs f)\n    where\n      fixDefName (TopName n) = TopName (fixName n)\n      fixDefName (MethodName c n) = MethodName c (fixName n)\n  \n      fixName n = mkName $ case nameBase n of\n        \"type\" -> \"type'\"\n        \"id\" -> \"id'\"\n        \"class\" -> \"class'\"\n        s -> s\n"
  },
  {
    "path": "classgen/stack.yaml",
    "content": "# This file was automatically generated by 'stack init'\n#\n# Some commonly used options have been documented as comments in this file.\n# For advanced use and comprehensive documentation of the format, please see:\n# https://docs.haskellstack.org/en/stable/yaml_configuration/\n\n# Resolver to choose a 'specific' stackage snapshot or a compiler version.\n# A snapshot resolver dictates the compiler version and the set of packages\n# to be used for project dependencies. For example:\n#\n# resolver: lts-3.5\n# resolver: nightly-2015-09-21\n# resolver: ghc-7.10.2\n# resolver: ghcjs-0.1.0_ghc-7.10.2\n# resolver:\n#  name: custom-snapshot\n#  location: \"./custom-snapshot.yaml\"\n# resolver: lts-11.2\nresolver: lts-15.4\n\n# User packages to be built.\n# Various formats can be used as shown in the example below.\n#\n# packages:\n# - some-directory\n# - https://example.com/foo/bar/baz-0.0.2.tar.gz\n# - location:\n#    git: https://github.com/commercialhaskell/stack.git\n#    commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a\n# - location: https://github.com/commercialhaskell/stack/commit/e7b331f14bcffb8367cd58fbfc8b40ec7642100a\n#   extra-dep: true\n#  subdirs:\n#  - auto-update\n#  - wai\n#\n# A package marked 'extra-dep: true' will only be built if demanded by a\n# non-dependency (i.e. a user package), and its test suites and benchmarks\n# will not be run. This is useful for tweaking upstream packages.\npackages:\n- .\n- ../haskell-src-exts-qq\n- ../haskell-src-exts-sc\n\n# Dependency packages to be pulled from upstream that are not in the resolver\n# (e.g., acme-missiles-0.3)\nextra-deps: []\n\n# Override default flag values for local packages and extra-deps\n# flags: {}\n\n# Extra package databases containing global packages\n# extra-package-dbs: []\n\n# Control whether we use the GHC we find on the path\n# system-ghc: true\n#\n# Require a specific version of stack, using version ranges\n# require-stack-version: -any # Default\nrequire-stack-version: \">=1.7\"\n#\n# Override the architecture used by stack, especially useful on Windows\n# arch: i386\n# arch: x86_64\n#\n# Extra directories used by stack for building\n# extra-include-dirs: [/path/to/dir]\n# extra-lib-dirs: [/path/to/dir]\n#\n# Allow a newer minor version of GHC than the snapshot specifies\n# compiler-check: newer-minor\n"
  },
  {
    "path": "default.nix",
    "content": "{ mkDerivation, aeson, ansi-wl-pprint, base, bytestring, c2hs\n, casing, colour, containers, hpack, lens, linear, mtl, parsec\n, parsers, stdenv, stm, template-haskell, text\n, unordered-containers, vector, rsync, api-json ? null, lib, haskellPackages\n}:\nlet godot-haskell-classgen = haskellPackages.callPackage ./classgen/default.nix { };\n    modifyGodotApi = lib.optionalString (api-json != null) ''\ncd classgen\necho \"Running godot-haskell-classgen on path \" ${api-json}\ngodot-haskell-classgen ${api-json}\ncd ..\ncp -r src src.bak\nrsync -a classgen/src/ src/\n''; in\n\nmkDerivation {\n  pname = \"godot-haskell\";\n  version = \"3.1.0.0\";\n  src = ./.;\n\n  libraryHaskellDepends = [\n    aeson ansi-wl-pprint base bytestring casing colour containers lens\n    linear mtl parsec parsers stm template-haskell text\n    unordered-containers vector\n  ];\n  libraryToolDepends = [ c2hs hpack rsync godot-haskell-classgen];\n  doHaddock = false;\n  preConfigure = ''\n  hpack\n  ${modifyGodotApi}\n  '';\n  homepage = \"https://github.com/KaneTW/godot-haskell#readme\";\n  description = \"Haskell bindings for the Godot game engine API\";\n  license = stdenv.lib.licenses.bsd3;\n}"
  },
  {
    "path": "examples/dodge-the-creeps/.gitignore",
    "content": "dist*\n*.hi\n*.o\n.stack-work/\n.stack-work-devel/\n*~\n\\#*\n*.import\nresult\n\n\n"
  },
  {
    "path": "examples/dodge-the-creeps/ChangeLog.md",
    "content": "# Empty\n\n\n"
  },
  {
    "path": "examples/dodge-the-creeps/LICENSE",
    "content": "BSD 3-Clause License\n\nCopyright (c) Andrei Barbu 2019\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n"
  },
  {
    "path": "examples/dodge-the-creeps/Makefile",
    "content": "NAME = myproject\nSTACKLIBFILE = $(shell stack path --local-install-root)/lib/lib$(NAME).so\nGODOTPROJECT = $(shell stack path --project-root)/game\n\nall: stack\nnix:\n\tnix-build shell.nix\n\tcp result/lib/ghc-*/lib$(NAME).so $(GODOTPROJECT)/lib\nstack:\n\tstack build --fast --force-dirty\n\tcp $(STACKLIBFILE) $(GODOTPROJECT)/lib\nstack-nix:\n\tstack --nix clean $(NAME)\n\tstack --nix build\n\tcp $(shell stack --nix path --local-install-root)/lib/lib$(NAME).so $(GODOTPROJECT)/lib\nstack-run:\n\tstack build\n\tcp $(STACKLIBFILE) $(GODOTPROJECT)/lib\n\tgodot -e --path ./game\nstack-watch:\n\tstack build --file-watch --fast --exec \"cp $(STACKLIBFILE) $(GODOTPROJECT)/lib\"\nproject-watch:\n\tstack exec godot-haskell-project-generator game src\nupdatelib:\n\tcp $(STACKLIBFILE) $(GODOTPROJECT)/lib\n"
  },
  {
    "path": "examples/dodge-the-creeps/README.md",
    "content": "The official Godot demo from the manual: Dodge the Creeps.\n\nRun with `make stack` then `godot game/project.godot` and press F5 to start, F8 to end.\n\nRequires Godot 3.1\n"
  },
  {
    "path": "examples/dodge-the-creeps/Support.hs",
    "content": "{-# LANGUAGE FlexibleContexts, FunctionalDependencies, MultiParamTypeClasses, OverloadedLabels, UndecidableInstances,\n  OverloadedStrings, TemplateHaskell, TypeApplications, TypeFamilies, DataKinds, TypeOperators, FlexibleInstances #-}\n\nmodule Generated.Support where\nimport Godot\nimport GHC.TypeLits\n\nclass SceneNode (scene :: Symbol) (s :: Symbol) where\n  type SceneNodeType scene s :: *\n  type SceneNodeName scene s :: Symbol\n\nclass NodeInScheme (scene :: Symbol) (s :: Symbol) n | scene s -> n, n -> scene s\n"
  },
  {
    "path": "examples/dodge-the-creeps/ffi/cbits/flib.c",
    "content": "#include \"HsFFI.h\"\n\nstatic void flib_init() __attribute__((constructor));\nstatic void flib_init() {\n  static char *argv[] = { \"libGodotHaskellPlugin.so\", 0 }, **argv_ = argv;\n  static int argc = 1;\n  hs_init(&argc, &argv_);\n}\n\nstatic void flib_fini() __attribute__((destructor));\nstatic void flib_fini() {\n  hs_exit();\n}\n"
  },
  {
    "path": "examples/dodge-the-creeps/ffi/flib/FLib.hs",
    "content": "{-# LANGUAGE ForeignFunctionInterface #-}\nmodule FLib where\n\nimport qualified Foreign\nimport           Foreign(nullPtr, Ptr,newForeignPtr_,castPtr)\nimport qualified Godot.Gdnative.Internal       as FFI\nimport           Godot.Gdnative\nimport           Godot.Nativescript\nimport           Lib\nimport qualified Data.Text as T\nimport qualified Data.Text.IO as T\n\ngodot_nativescript_init :: GdnativeHandle -> IO ()\ngodot_nativescript_init desc = do\n  defaultExports desc\n  exports desc\n  putStrLn \"Haskell NativeScript lib initialized\"\n\nforeign export ccall godot_nativescript_init :: GdnativeHandle -> IO ()\n\n\ngodot_gdnative_init :: FFI.GdnativeInitOptionsPtr -> IO ()\ngodot_gdnative_init opts = do\n  Foreign.peek opts >>= FFI.initApiStructs\n\nforeign export ccall godot_gdnative_init :: FFI.GdnativeInitOptionsPtr -> IO ()\n\n\ngodot_gdnative_terminate :: FFI.GdnativeTerminateOptionsPtr -> IO ()\ngodot_gdnative_terminate handle = pure ()\n\nforeign export ccall godot_gdnative_terminate :: FFI.GdnativeTerminateOptionsPtr -> IO ()\n"
  },
  {
    "path": "examples/dodge-the-creeps/game/HUD.gdns",
    "content": "[gd_resource type=\"NativeScript\" load_steps=2 format=2]\n\n[ext_resource path=\"res://lib/libmyproject.gdnlib\" type=\"GDNativeLibrary\" id=1]\n\n[resource]\nresource_name = \"HUD\"\nclass_name = \"HUD\"\nlibrary = ExtResource( 1 )\n"
  },
  {
    "path": "examples/dodge-the-creeps/game/HUD.tres",
    "content": "[gd_resource type=\"DynamicFont\" load_steps=2 format=2]\n\n[ext_resource path=\"res://dodge_assets/fonts/Xolonium-Regular.ttf\" type=\"DynamicFontData\" id=1]\n\n[resource]\nsize = 64\nfont_data = ExtResource( 1 )\n"
  },
  {
    "path": "examples/dodge-the-creeps/game/HUD.tscn",
    "content": "[gd_scene load_steps=5 format=2]\n\n[ext_resource path=\"res://HUD.gdns\" type=\"Script\" id=1]\n[ext_resource path=\"res://HUD.tres\" type=\"DynamicFont\" id=2]\n\n[sub_resource type=\"InputEventAction\" id=1]\naction = \"ui_select\"\n\n[sub_resource type=\"ShortCut\" id=2]\nshortcut = SubResource( 1 )\n\n[node name=\"HUD\" type=\"CanvasLayer\"]\nscript = ExtResource( 1 )\n\n[node name=\"ScoreLabel\" type=\"Label\" parent=\".\"]\nanchor_right = 1.0\nmargin_bottom = 78.0\ncustom_fonts/font = ExtResource( 2 )\ntext = \"0\"\nalign = 1\n__meta__ = {\n\"_edit_use_anchors_\": false\n}\n\n[node name=\"MessageLabel\" type=\"Label\" parent=\".\"]\nanchor_top = 0.5\nanchor_right = 1.0\nanchor_bottom = 0.5\nmargin_top = -79.5\nmargin_bottom = 79.5\ncustom_fonts/font = ExtResource( 2 )\ntext = \"Dodge\nthe Creeps!\"\nalign = 1\n\n[node name=\"StartButton\" type=\"Button\" parent=\".\"]\nanchor_left = 0.5\nanchor_top = 1.0\nanchor_right = 0.5\nanchor_bottom = 1.0\nmargin_left = -90.0\nmargin_top = -200.0\nmargin_right = 90.0\nmargin_bottom = -100.0\ncustom_fonts/font = ExtResource( 2 )\nshortcut = SubResource( 2 )\ntext = \"Start\"\n__meta__ = {\n\"_edit_use_anchors_\": false\n}\n\n[node name=\"MessageTimer\" type=\"Timer\" parent=\".\"]\nwait_time = 2.0\none_shot = true\n[connection signal=\"pressed\" from=\"StartButton\" to=\".\" method=\"_on_StartButton_pressed\"]\n[connection signal=\"timeout\" from=\"MessageTimer\" to=\".\" method=\"_on_MessageTimer_timeout\"]\n"
  },
  {
    "path": "examples/dodge-the-creeps/game/Main.gdns",
    "content": "[gd_resource type=\"NativeScript\" load_steps=2 format=2]\n\n[ext_resource path=\"res://lib/libmyproject.gdnlib\" type=\"GDNativeLibrary\" id=1]\n\n[resource]\nclass_name = \"Main\"\nlibrary = ExtResource( 1 )\n"
  },
  {
    "path": "examples/dodge-the-creeps/game/Main.tscn",
    "content": "[gd_scene load_steps=6 format=2]\n\n[ext_resource path=\"res://Main.gdns\" type=\"Script\" id=1]\n[ext_resource path=\"res://Mob.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://Player.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://HUD.tscn\" type=\"PackedScene\" id=4]\n\n[sub_resource type=\"Curve2D\" id=1]\n_data = {\n\"points\": PoolVector2Array( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, 480, 720, 0, 0, 0, 0, 0, 720, 0, 0, 0, 0, 0, 0 )\n}\n\n[node name=\"Main\" type=\"Node\"]\nscript = ExtResource( 1 )\nPackedScene = ExtResource( 2 )\n\n[node name=\"ColorRect\" type=\"ColorRect\" parent=\".\"]\nmargin_right = 480.0\nmargin_bottom = 720.0\ncolor = Color( 0.229564, 0.339542, 0.394531, 1 )\n__meta__ = {\n\"_edit_use_anchors_\": false\n}\n\n[node name=\"Player\" parent=\".\" instance=ExtResource( 3 )]\n\n[node name=\"MobTimer\" type=\"Timer\" parent=\".\"]\nwait_time = 0.5\n\n[node name=\"ScoreTimer\" type=\"Timer\" parent=\".\"]\n\n[node name=\"StartTimer\" type=\"Timer\" parent=\".\"]\nwait_time = 2.0\none_shot = true\n\n[node name=\"StartPosition\" type=\"Position2D\" parent=\".\"]\nposition = Vector2( 240, 450 )\n\n[node name=\"MobPath\" type=\"Path2D\" parent=\".\"]\ncurve = SubResource( 1 )\n\n[node name=\"MobSpawnLocation\" type=\"PathFollow2D\" parent=\"MobPath\"]\n\n[node name=\"HUD\" parent=\".\" instance=ExtResource( 4 )]\n[connection signal=\"hit\" from=\"Player\" to=\".\" method=\"game_over\"]\n[connection signal=\"timeout\" from=\"MobTimer\" to=\".\" method=\"_on_MobTimer_timeout\"]\n[connection signal=\"timeout\" from=\"ScoreTimer\" to=\".\" method=\"_on_ScoreTimer_timeout\"]\n[connection signal=\"timeout\" from=\"StartTimer\" to=\".\" method=\"_on_StartTimer_timeout\"]\n[connection signal=\"start_game\" from=\"HUD\" to=\".\" method=\"new_game\"]\n"
  },
  {
    "path": "examples/dodge-the-creeps/game/Mob.gdns",
    "content": "[gd_resource type=\"NativeScript\" load_steps=2 format=2]\n\n[ext_resource path=\"res://lib/libmyproject.gdnlib\" type=\"GDNativeLibrary\" id=1]\n\n[resource]\nresource_name = \"Mob\"\nclass_name = \"Mob\"\nlibrary = ExtResource( 1 )\n"
  },
  {
    "path": "examples/dodge-the-creeps/game/Mob.tscn",
    "content": "[gd_scene load_steps=10 format=2]\n\n[ext_resource path=\"res://Mob.gdns\" type=\"Script\" id=1]\n[ext_resource path=\"res://dodge_assets/art/enemyFlyingAlt_1.png\" type=\"Texture\" id=2]\n[ext_resource path=\"res://dodge_assets/art/enemyFlyingAlt_2.png\" type=\"Texture\" id=3]\n[ext_resource path=\"res://dodge_assets/art/enemyWalking_1.png\" type=\"Texture\" id=4]\n[ext_resource path=\"res://dodge_assets/art/enemyWalking_2.png\" type=\"Texture\" id=5]\n[ext_resource path=\"res://dodge_assets/art/enemySwimming_1.png\" type=\"Texture\" id=6]\n[ext_resource path=\"res://dodge_assets/art/enemySwimming_2.png\" type=\"Texture\" id=7]\n\n[sub_resource type=\"SpriteFrames\" id=1]\nanimations = [ {\n\"frames\": [ ExtResource( 2 ), ExtResource( 3 ) ],\n\"loop\": true,\n\"name\": \"fly\",\n\"speed\": 3.0\n}, {\n\"frames\": [ ExtResource( 4 ), ExtResource( 5 ) ],\n\"loop\": true,\n\"name\": \"walk\",\n\"speed\": 4.0\n}, {\n\"frames\": [ ExtResource( 6 ), ExtResource( 7 ) ],\n\"loop\": true,\n\"name\": \"swim\",\n\"speed\": 4.0\n} ]\n\n[sub_resource type=\"CapsuleShape2D\" id=2]\nradius = 36.0297\nheight = 27.5338\n\n[node name=\"Mob\" type=\"RigidBody2D\"]\ncollision_mask = 0\ngravity_scale = 0.0\nscript = ExtResource( 1 )\n__meta__ = {\n\"_edit_group_\": true\n}\n\n[node name=\"AnimatedSprite\" type=\"AnimatedSprite\" parent=\".\"]\nscale = Vector2( 0.75, 0.75 )\nframes = SubResource( 1 )\nanimation = \"swim\"\nframe = 1\nplaying = true\n\n[node name=\"CollisionShape2D\" type=\"CollisionShape2D\" parent=\".\"]\nrotation = 1.5708\nshape = SubResource( 2 )\n\n[node name=\"VisibilityNotifier2D\" type=\"VisibilityNotifier2D\" parent=\".\"]\n[connection signal=\"screen_exited\" from=\"VisibilityNotifier2D\" to=\".\" method=\"_on_VisibilityNotifier2D_screen_exited\"]\n"
  },
  {
    "path": "examples/dodge-the-creeps/game/Player.gdns",
    "content": "[gd_resource type=\"NativeScript\" load_steps=2 format=2]\n\n[ext_resource path=\"res://lib/libmyproject.gdnlib\" type=\"GDNativeLibrary\" id=1]\n\n[resource]\nresource_name = \"Player\"\nclass_name = \"Player\"\nlibrary = ExtResource( 1 )\n"
  },
  {
    "path": "examples/dodge-the-creeps/game/Player.tscn",
    "content": "[gd_scene load_steps=8 format=2]\n\n[ext_resource path=\"res://Player.gdns\" type=\"Script\" id=1]\n[ext_resource path=\"res://dodge_assets/art/playerGrey_walk1.png\" type=\"Texture\" id=2]\n[ext_resource path=\"res://dodge_assets/art/playerGrey_walk2.png\" type=\"Texture\" id=3]\n[ext_resource path=\"res://dodge_assets/art/playerGrey_up1.png\" type=\"Texture\" id=4]\n[ext_resource path=\"res://dodge_assets/art/playerGrey_up2.png\" type=\"Texture\" id=5]\n\n[sub_resource type=\"SpriteFrames\" id=1]\nanimations = [ {\n\"frames\": [ ExtResource( 2 ), ExtResource( 3 ) ],\n\"loop\": true,\n\"name\": \"right\",\n\"speed\": 5.0\n}, {\n\"frames\": [ ExtResource( 4 ), ExtResource( 5 ) ],\n\"loop\": true,\n\"name\": \"up\",\n\"speed\": 5.0\n} ]\n\n[sub_resource type=\"CapsuleShape2D\" id=2]\nradius = 26.892\nheight = 15.9045\n\n[node name=\"Player\" type=\"Area2D\"]\nscript = ExtResource( 1 )\n__meta__ = {\n\"_edit_group_\": true\n}\n\n[node name=\"AnimatedSprite\" type=\"AnimatedSprite\" parent=\".\"]\nposition = Vector2( 0, -1 )\nscale = Vector2( 0.5, 0.5 )\nframes = SubResource( 1 )\nanimation = \"up\"\n\n[node name=\"CollisionShape2D\" type=\"CollisionShape2D\" parent=\".\"]\nshape = SubResource( 2 )\n[connection signal=\"body_entered\" from=\".\" to=\".\" method=\"_on_Player_body_entered\"]\n"
  },
  {
    "path": "examples/dodge-the-creeps/game/dodge_assets/fonts/FONTLOG.txt",
    "content": "Please distribute this file along with the Xolonium fonts when possible.\n\n\nSource\n\n\tFind the sourcefiles of Xolonium at\n\t<gitlab.com/sev/xolonium>\n\n\nCredits\n\n\tXolonium is created with FontForge <fontforge.org>,\n\tInkscape <inkscape.org>, Python <python.org>, and\n\tFontTools <github.com/fonttools>.\n\n\tIt originated as a custom font for the open-source\n\tgame Xonotic <xonotic.org>. With many thanks to the\n\tXonotic community for your support.\n\n\nSupported OpenType features\n\n\tcase  Provides case sensitive placement of punctuation,\n\t      brackets, and math symbols for uppercase text.\n\tfrac  Replaces number/number sequences with diagonal fractions.\n\t      Numbers that touch a slash should not exceed 10 digits.\n\tkern  Provides kerning for Latin, Greek, and Cyrillic scripts.\n\tlocl  Dutch: Replaces j with a stressed version if it follows í.\n\t      Sami: Replaces n-form Eng with the preferred N-form version.\n\t      Romanian and Moldovan: Replaces ŞşŢţ with the preferred ȘșȚț.\n\tpnum  Replaces monospaced digits with proportional versions.\n\tsinf  Replaces digits with scientific inferiors below the baseline.\n\tsubs  Replaces digits with subscript versions on the baseline.\n\tsups  Replaces digits with superscript versions.\n\tzero  Replaces zero with a slashed version.\n\n\nSupported glyph sets\n\n\tAdobe Latin 3\n\tOpenType W1G\n\tISO 8859-1   Western European\n\tISO 8859-2   Central European\n\tISO 8859-3   South European\n\tISO 8859-4   North European\n\tISO 8859-5   Cyrillic\n\tISO 8859-7   Greek\n\tISO 8859-9   Turkish\n\tISO 8859-10  Nordic\n\tISO 8859-13  Baltic Rim\n\tISO 8859-14  Celtic\n\tISO 8859-15  Western European\n\tISO 8859-16  South-Eastern European\n\n\nAvailable glyphs\n\n\t !\"#$%&'()*+,-./0123456789:;<=>?\n\t@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\n\t`abcdefghijklmnopqrstuvwxyz{|}~\n\n\t ¡¢£¤¥¦§¨©ª«¬ ®¯°±²³´µ¶·¸¹º»¼½¾¿\n\tÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß\n\tàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\n\tĀāĂăĄąĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğ\n\tĠġĢģĤĥĦħĨĩĪīĬĭĮįİıĲĳĴĵĶķĸĹĺĻļĽľ\n\tĿŀŁłŃńŅņŇňŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞş\n\tŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽž\n\tƒǺǻǼǽǾǿȘșȚțȷ\n\n\tˆˇˉ˘˙˚˛˜˝\n\n\tͺ;΄΅Ά·ΈΉΊΌΎΏΐ\n\tΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰ\n\tαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ\n\n\tЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОП\n\tРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп\n\tрстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџ\n\tѢѣѲѳѴѵҐґҒғҔҕҖҗҘҙҚқҜҝҞҟҠҡҢңҤҥҦҧҨҩ\n\tҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽӀӁӂӇӈӋӌӏӐӑӒӓ\n\tӔӕӖӗӘәӜӝӞӟӠӡӢӣӤӥӦӧӨөӮӯӰӱӲӳӴӵӶӷӸӹ\n\tԤԥ\n\n\tḂḃḊḋḞḟṀṁṖṗṠṡṪṫẀẁẂẃẄẅẞỲỳ\n\n\t     ‒–—―‘’‚‛“”„‟†‡•…‰′″‹›‽‾⁄\n\t⁰⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎\n\t₤₦₩₫€₯₱₹₺₽₿\n\t℅ℓ№℗™Ω℮\n\t⅛⅜⅝⅞\n\t←↑→↓\n\t∂∆∏∑−∕∙√∞∟∫≈≠≤≥\n\t⌖\n\t■▬▮▰▲▶▼◀◆◊●◢◣◤◥\n\t☄★☠☢☣⚙⚛⚠⚡⛔\n\t❇❈❌❤❰❱❲❳\n\tﬀﬁﬂﬃﬄ\n\t🌌🌍🌎🌏👽💣🔥🔫\n\t😁😃😄😆😇😈😉😊😎😐😒😕😘\n\t😛😝😞😟😠😣😭😮😲😴😵\n\t🚀\n\n\nDebugging glyphs\n\n\t  U+EFFD  Font version\n\t  U+F000  Font hinting indicator\n\n\nChangelog\n\n\tXolonium 4.1  2016-11-22  Severin Meyer  <sev.ch@web.de>\n\t\tReverted frac OpenType feature to a more stable implementation\n\n\tXolonium 4.0  2016-10-08  Severin Meyer  <sev.ch@web.de>\n\t\tDecreased width of most glyphs\n\t\tThinner vertical stems in Xolonium-Regular\n\t\tThicker horizontal stems in Xolonium-Bold\n\t\tRevised diagonal stems\n\t\tLowered middle bars\n\t\tRevised diacritical bars\n\t\tAdded glyphs:\n\t\t\tӏẞ₿\n\t\t\tU+2007 U+2008 U+2009 U+200A U+202F\n\t\t\tU+EFFD U+F000\n\t\tRevised glyphs:\n\t\t\t$&,JKQRXkwxy~¢¤ßǻ˜ζκλμξφЖУжћѴѵ∕₱₺₦₩€ℓ№≈ﬀﬃﬄ\n\t\t\t❤🌍🌎🌏😁😄😇😈😉😊😘😭😮😴🚀\n\t\tRemoved uncommon glyphs:\n\t\t\tŉſʼҌҍҎҏҾҿӃӄӇӈӚӛӪӫӬӭ\n\t\t\tU+0312 U+0313 U+0326\n\t\tSimplified OpenType features pnum, zero, and case\n\t\tRemoved OpenType feature dlig\n\t\tRevised vertical metrics\n\t\tMerged outlines of composite glyphs in otf version\n\t\tAdded ttf version with custom outlines and instructions\n\t\tAdded woff and woff2 version\n\n\tXolonium 3.1  2015-06-10  Severin Meyer  <sev.ch@web.de>\n\t\tAdded currency glyphs:\n\t\t\t₦₩₫₱₹₺₽\n\t\tRevised glyph:\n\t\t\t₯\n\t\tRelicensed public release under the SIL Open Font License 1.1\n\n\tXolonium 3.0  2015-05-04  Severin Meyer  <sev.ch@web.de>\n\t\tDecreased width of glyphs\n\t\tDecreased descender height\n\t\tIncreased height of super/subscript glyphs\n\t\tRevised width of dashes, underscore, and overscore\n\t\tSharper bends with more circular proportions\n\t\tDecreased stroke thickness of mathematical glyphs\n\t\tRevised diacritical marks\n\t\tRevised diacritical bars\n\t\tRevised Cyrillic hooks\n\t\tRevised glyphs:\n\t\t\tGQRYjmuwßŊŒſƒǻﬀﬁﬃﬄ\n\t\t\tΞΨΩδζιξπςστυφω\n\t\t\tЉЄДЛУЭЯбдлэяєљђєћѢѣҨҩҼҽӃӄӘә\n\t\t\t#$&'()*,/69?@[]{}~¡£¤¥§©®¿\n\t\t\t‹›₤€₯ℓ№℗℮←↑→↓∂∏∑∞≈▰☄❈❰❱❲❳😝\n\t\tRaised vertical position of mathematical glyphs\n\t\tUnified advance width of numeral and monetary glyphs\n\t\tUnified advance width of mathematical glyphs\n\t\tRevised bearings\n\t\tRewrote kern feature\n\t\tBolder Xolonium-Bold with improved proportions\n\t\tUpdated glyph names to conform to the AGLFN 1.7\n\t\tRevised hints and PS Private Dictionary\n\t\tAdded glyphs:\n\t\t\tӶӷԤԥ\n\t\tAdded OpenType features:\n\t\t\tcase frac liga locl pnum sinf subs sups zero\n\n\tXolonium 2.4  2014-12-23  Severin Meyer  <sev.ch@web.de>\n\t\tAdded dingbats:\n\t\t\t⛔💣🔥\n\t\tRevised size and design of emoticons\n\t\tRevised dingbats:\n\t\t\t⌖☄☠☣⚙⚛⚠⚡❇❈🌌🌍🌎🌏🔫\n\t\tRemoved dingbat:\n\t\t\t💥\n\n\tXolonium 2.3  2014-08-14  Severin Meyer  <sev.ch@web.de>\n\t\tBugfixed ε and έ, thanks to bowzee for the feedback\n\n\tXolonium 2.2  2014-03-01  Severin Meyer  <sev.ch@web.de>\n\t\tAdded dingbats:\n\t\t\t⌖◆●❌💥\n\t\tRevised dingbats:\n\t\t\t•←↑→↓◊☄★☠☣⚙⚛⚠⚡❇❈❤🌌🌍🌎🌏👽🔫🚀\n\t\tRemoved dingbats:\n\t\t\t♻✪💡📡🔋🔧🔭\n\n\tXolonium 2.1  2013-10-20  Severin Meyer  <sev.ch@web.de>\n\t\tAdded dingbats:\n\t\t\t←↑→↓❰❱❲❳■▬▮▰▲▶▼◀◢◣◤◥\n\t\t\t☄★☠☢☣♻⚙⚛⚠⚡✪❇❈❤\n\t\t\t🌌🌍🌎🌏👽💡📡🔋🔧🔫🔭🚀\n\t\t\t😁😃😄😆😇😈😉😊😎😐😒😕\n\t\t\t😘😛😝😞😟😠😣😭😮😲😴😵\n\n\tXolonium 2.0.1  2013-07-12  Severin Meyer  <sev.ch@web.de>\n\t\tReorganised and simplified files\n\n\tXolonium 2.0  2012-08-11  Severin Meyer  <sev.ch@web.de>\n\t\tRevised bends\n\t\tRevised thickness of uppercase diagonal stems\n\t\tRevised diacritical marks\n\t\tRevised hints and PS Private Dictionary\n\t\tRevised glyphs:\n\t\t\t*1469@DPRly{}§©®¶ÐÞƒΘΞαεζνξνυЄЉЊ\n\t\t\tЏБЗЛУЧЪЫЬЭЯбзлчъыьэяєљњџ•€∂∙√∞∫≠\n\t\tCompleted glyph sets:\n\t\t\tAdobe Latin 3\n\t\t\tOpenType World Glyph Set 1 (W1G)\n\t\t\tGhostscript Standard (ghostscript-fonts-std-8.11)\n\t\tAdded OpenType kern feature\n\t\tAdded Xolonium-Bold\n\n\tXolonium 1.2  2011-02-12  Severin Meyer  <sev.ch@web.de>\n\t\tRevised glyphs:\n\t\t\tD·Ðı\n\t\tCompleted glyph sets:\n\t\t\tISO 8859-7 (Greek)\n\t\t\tUnicode Latin Extended-A block\n\t\tAdded glyphs:\n\t\t\t†‡•…‰⁄™∂∑−√∞≠≤≥\n\n\tXolonium 1.1  2011-01-17  Severin Meyer  <sev.ch@web.de>\n\t\tRevised placement of cedilla and ogonek in accented glyphs\n\t\tRevised glyphs:\n\t\t\t,;DKTjkvwxy¥§Ð˛€\n\t\tCompleted glyph sets:\n\t\t\tISO 8859-2  (Central European)\n\t\t\tISO 8859-3  (South European, Esperanto)\n\t\t\tISO 8859-4  (North European)\n\t\t\tISO 8859-5  (Cyrillic)\n\t\t\tISO 8859-9  (Turkish)\n\t\t\tISO 8859-10 (Nordic)\n\t\t\tISO 8859-13 (Baltic Rim)\n\t\t\tISO 8859-14 (Celtic)\n\t\t\tISO 8859-16 (South-Eastern European)\n\t\tAdded glyphs:\n\t\t\tȷʼ̒ ЀЍѐѝ‒–—‘’‚‛“”„‟‹›\n\n\tXolonium 1.0  2011-01-04  Severin Meyer  <sev.ch@web.de>\n\t\tCompleted glyph sets:\n\t\t\tISO 8859-1  (Western European)\n\t\t\tISO 8859-15 (Western European)\n\t\tAdded glyphs:\n\t\t\tĄĆĘŁŃŚŹŻąćęłńśźżıˆˇ˙˚˛˜\n"
  },
  {
    "path": "examples/dodge-the-creeps/game/dodge_assets/fonts/LICENSE.txt",
    "content": "Copyright 2011-2016 Severin Meyer <sev.ch@web.de>,\r\nwith Reserved Font Name Xolonium.\r\n\r\nThis Font Software is licensed under the SIL Open Font License,\r\nVersion 1.1. This license is copied below, and is also available\r\nwith a FAQ at <http://scripts.sil.org/OFL>\r\n\r\n\r\n-----------------------------------------------------------\r\nSIL OPEN FONT LICENSE Version 1.1 - 26 February 2007\r\n-----------------------------------------------------------\r\n\r\nPREAMBLE\r\nThe goals of the Open Font License (OFL) are to stimulate worldwide\r\ndevelopment of collaborative font projects, to support the font creation\r\nefforts of academic and linguistic communities, and to provide a free and\r\nopen framework in which fonts may be shared and improved in partnership\r\nwith others.\r\n\r\nThe OFL allows the licensed fonts to be used, studied, modified and\r\nredistributed freely as long as they are not sold by themselves. The\r\nfonts, including any derivative works, can be bundled, embedded,\r\nredistributed and/or sold with any software provided that any reserved\r\nnames are not used by derivative works. The fonts and derivatives,\r\nhowever, cannot be released under any other type of license. The\r\nrequirement for fonts to remain under this license does not apply\r\nto any document created using the fonts or their derivatives.\r\n\r\nDEFINITIONS\r\n\"Font Software\" refers to the set of files released by the Copyright\r\nHolder(s) under this license and clearly marked as such. This may\r\ninclude source files, build scripts and documentation.\r\n\r\n\"Reserved Font Name\" refers to any names specified as such after the\r\ncopyright statement(s).\r\n\r\n\"Original Version\" refers to the collection of Font Software components as\r\ndistributed by the Copyright Holder(s).\r\n\r\n\"Modified Version\" refers to any derivative made by adding to, deleting,\r\nor substituting -- in part or in whole -- any of the components of the\r\nOriginal Version, by changing formats or by porting the Font Software to a\r\nnew environment.\r\n\r\n\"Author\" refers to any designer, engineer, programmer, technical\r\nwriter or other person who contributed to the Font Software.\r\n\r\nPERMISSION & CONDITIONS\r\nPermission is hereby granted, free of charge, to any person obtaining\r\na copy of the Font Software, to use, study, copy, merge, embed, modify,\r\nredistribute, and sell modified and unmodified copies of the Font\r\nSoftware, subject to the following conditions:\r\n\r\n1) Neither the Font Software nor any of its individual components,\r\nin Original or Modified Versions, may be sold by itself.\r\n\r\n2) Original or Modified Versions of the Font Software may be bundled,\r\nredistributed and/or sold with any software, provided that each copy\r\ncontains the above copyright notice and this license. These can be\r\nincluded either as stand-alone text files, human-readable headers or\r\nin the appropriate machine-readable metadata fields within text or\r\nbinary files as long as those fields can be easily viewed by the user.\r\n\r\n3) No Modified Version of the Font Software may use the Reserved Font\r\nName(s) unless explicit written permission is granted by the corresponding\r\nCopyright Holder. This restriction only applies to the primary font name as\r\npresented to the users.\r\n\r\n4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\r\nSoftware shall not be used to promote, endorse or advertise any\r\nModified Version, except to acknowledge the contribution(s) of the\r\nCopyright Holder(s) and the Author(s) or with their explicit written\r\npermission.\r\n\r\n5) The Font Software, modified or unmodified, in part or in whole,\r\nmust be distributed entirely under this license, and must not be\r\ndistributed under any other license. The requirement for fonts to\r\nremain under this license does not apply to any document created\r\nusing the Font Software.\r\n\r\nTERMINATION\r\nThis license becomes null and void if any of the above conditions are\r\nnot met.\r\n\r\nDISCLAIMER\r\nTHE FONT SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\r\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\r\nOF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\r\nCOPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\nINCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\r\nDAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\r\nFROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\r\nOTHER DEALINGS IN THE FONT SOFTWARE.\r\n"
  },
  {
    "path": "examples/dodge-the-creeps/game/lib/libmyproject.gdnlib",
    "content": "[general]\n\nsingleton=false\nload_once=true\nsymbol_prefix=\"godot_\"\nreloadable=false\n\n[entry]\n\nX11.64=\"res://lib/libmyproject.so\"\n"
  },
  {
    "path": "examples/dodge-the-creeps/game/project.godot",
    "content": "; Engine configuration file.\n; It's best edited using the editor UI and not directly,\n; since the parameters that go here are not all obvious.\n;\n; Format:\n;   [section] ; section goes between []\n;   param=value ; assign values to parameters\n\nconfig_version=4\n\n_global_script_classes=[  ]\n_global_script_class_icons={\n\n}\n\n[application]\n\nconfig/name=\"myproject\"\nrun/main_scene=\"res://Main.tscn\"\n\n[audio]\n\ndefault_bus_layout=\"\"\n\n[display]\n\nwindow/size/width=480\nwindow/size/height=720\n\n[gdnative]\n\nsingletons=[  ]\n"
  },
  {
    "path": "examples/dodge-the-creeps/godot-haskell.nix",
    "content": "{ fetchFromGitHub, mkDerivation, aeson, ansi-wl-pprint, base, bytestring, c2hs\n, casing, colour, containers, hpack, lens, linear, mtl, parsec\n, parsers, stdenv, stm, template-haskell, text\n, unordered-containers, vector\n}:\nmkDerivation {\n  pname = \"godot-haskell\";\n  version = \"3.1.0.0\";\n  src = fetchFromGitHub {\n    owner = \"SimulaVR\";\n    repo = \"godot-haskell\";\n    rev = \"b423d4f2fa5a6a3dcfffb82bb36be571adb29d34\"; # godot-haskell rev\n    # Use nix-prefetch-git to get the hash\n    sha256 = \"0jh2j5rr90dqdxvcipygwnhhj7j2dj4zvm6gbdpg106ll60pyqrp\";\n    fetchSubmodules = true;\n  };\n  libraryHaskellDepends = [\n    aeson ansi-wl-pprint base bytestring casing colour containers lens\n    linear mtl parsec parsers stm template-haskell text\n    unordered-containers vector\n  ];\n  libraryToolDepends = [ c2hs hpack ];\n  doHaddock = false;\n  preConfigure = \"hpack\";\n  homepage = \"https://github.com/KaneTW/godot-haskell#readme\";\n  description = \"Haskell bindings for the Godot game engine API\";\n  license = stdenv.lib.licenses.bsd3;\n}\n\n\n"
  },
  {
    "path": "examples/dodge-the-creeps/hie.yaml",
    "content": "cradle:\n  stack:\n    - path: \"./src\"\n      component: \"myproject:lib\"\n\n    - path: \"./game\"\n      component: \"myproject:lib\"\n"
  },
  {
    "path": "examples/dodge-the-creeps/myproject.cabal",
    "content": "cabal-version: 1.12\n\n-- This file has been generated from package.yaml by hpack version 0.33.0.\n--\n-- see: https://github.com/sol/hpack\n--\n-- hash: 98269f1144e3857ceb0d2b7a1ec2c981a99768d91b04e6febe2406912eda49b8\n\nname:           myproject\nversion:        0.0.0.0\ndescription:    Please see the README on Github at <https://github.com/SimulaVR/godot-haskell/tree/master/demo#readme>\nhomepage:       https://github.com/SimulaVR/godot-haskell#readme\nbug-reports:    https://github.com/SimulaVR/godot-haskell/issues\nauthor:         Andrei Barbu\nmaintainer:     andrei@0xab.com\ncopyright:      Andrei Barbu 2019, 2021\nlicense:        BSD3\nlicense-file:   LICENSE\nbuild-type:     Simple\nextra-source-files:\n    ChangeLog.md\n    README.md\nforeign-library myproject\n  type: native-shared\n  other-modules: FLib\n  hs-source-dirs: ffi/flib\n  c-sources: ffi/cbits/flib.c\n  build-depends:\n      base >= 4.12 && <5\n    , godot-haskell\n    , myproject\n    , text\n  default-language: Haskell2010\n\nsource-repository head\n  type: git\n  location: https://github.com/SimulaVR/godot-haskell\n\nlibrary\n  exposed-modules:\n      Lib\n  other-modules:\n      Game.HUD\n      Game.Main\n      Game.Mob\n      Game.Player\n      Project.Requirements\n      Project.Scenes\n      Project.Scenes.HUD\n      Project.Scenes.Main\n      Project.Scenes.Mob\n      Project.Scenes.Player\n      Project.Support\n      Paths_myproject\n  hs-source-dirs:\n      src\n      game\n  default-extensions: FlexibleContexts MultiParamTypeClasses OverloadedStrings TemplateHaskell TypeApplications TypeFamilies DataKinds FlexibleInstances ScopedTypeVariables AllowAmbiguousTypes TupleSections FunctionalDependencies\n  ghc-options: -Wall -Wno-orphans -O0\n  build-depends:\n      base >=4.12 && <5\n    , containers\n    , extra\n    , godot-haskell\n    , lens\n    , linear\n    , random\n    , strict-concurrency\n    , template-haskell\n    , text\n    , th-abstraction\n    , vector\n  default-language: Haskell2010\n"
  },
  {
    "path": "examples/dodge-the-creeps/package.yaml",
    "content": "name: myproject\nversion: '0.0.0.0'\ndescription: Please see the README on Github at <https://github.com/SimulaVR/godot-haskell/tree/master/demo#readme>\nauthor: Andrei Barbu\nmaintainer: andrei@0xab.com\ncopyright: Andrei Barbu 2019, 2021\nlicense: BSD3\ngithub: SimulaVR/godot-haskell\nextra-source-files:\n  - ChangeLog.md\n  - README.md\ndependencies:\n  - base >=4.12 && <5\n  - godot-haskell\n  - linear\n  - random\n  - text\n  - vector\n  - strict-concurrency\n  - lens\n  - template-haskell\n  - th-abstraction\n  - containers\n  - extra\nlibrary:\n  source-dirs:\n    - src\n    - game\n  default-extensions:\n    - FlexibleContexts\n    - MultiParamTypeClasses\n    - OverloadedStrings\n    - TemplateHaskell\n    - TypeApplications\n    - TypeFamilies\n    - DataKinds\n    - FlexibleInstances\n    - ScopedTypeVariables\n    - AllowAmbiguousTypes\n    - TupleSections\n    - FunctionalDependencies\n  exposed-modules:\n    - Lib\n  ghc-options: -Wall -Wno-orphans -O0\n\nverbatim: |\n  foreign-library myproject\n    type: native-shared\n    other-modules: FLib\n    hs-source-dirs: ffi/flib\n    c-sources: ffi/cbits/flib.c\n    build-depends:\n        base >= 4.12 && <5\n      , godot-haskell\n      , myproject\n      , text\n    default-language: Haskell2010\n"
  },
  {
    "path": "examples/dodge-the-creeps/pinned-nixpkgs.nix",
    "content": "{}:\n\nlet\n  # 19.03-beta (25 feb)\n  rev = \"0c0954781e257b8b0dc49341795a2fe7d96945a3\"; # pinned-nixpkgs rev\n  pkgs = import (builtins.fetchTarball {\n      url = \"https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz\";\n    }) {};\nin\n  pkgs\n\n\n"
  },
  {
    "path": "examples/dodge-the-creeps/shell.nix",
    "content": "{ nixpkgs ? import ./pinned-nixpkgs.nix {}\n, compiler ? \"default\"\n, doBenchmark ? false }:\n\n\nlet\n\n  inherit (nixpkgs) pkgs;\n\n  haskellPackages = if compiler == \"default\"\n                       then pkgs.haskellPackages\n                       else pkgs.haskell.packages.${compiler};\n\n  f = { mkDerivation, stdenv, base, godot-haskell, linear, text , vector, stm }:\n    mkDerivation {\n      pname = \"myproject\";\n      version = \"3.1.0.0\";\n      src = ./.;\n      libraryHaskellDepends = [\n        base godot-haskell linear text vector stm\n      ];\n      libraryToolDepends = [];\n      homepage = \"https://github.com/abarbu/myproject#readme\";\n      license = stdenv.lib.licenses.bsd3;\n    };\n\n  variant = if doBenchmark then pkgs.haskell.lib.doBenchmark else pkgs.lib.id;\n\n  drv = variant (haskellPackages.callPackage f {\n      godot-haskell = haskellPackages.callPackage ./godot-haskell.nix {fetchFromGitHub = pkgs.fetchFromGitHub;};\n    });\n\nin\n\n  if pkgs.lib.inNixShell then drv.env else drv\n\n\n"
  },
  {
    "path": "examples/dodge-the-creeps/src/Game/HUD.hs",
    "content": "module Game.HUD where\nimport Control.Lens\nimport Control.Monad\nimport qualified Data.Text as T\nimport Godot\nimport Godot.Core.CanvasItem as CanvasItem\nimport Godot.Core.Label as Label\nimport Godot.Core.Timer as Timer\nimport Project.Support\nimport Project.Scenes.HUD()\n\ndata HUD = HUD { _hBase :: CanvasLayer }\n\ninstance NodeInit HUD where\n  init = pure . HUD\ninstance NodeMethod HUD \"_on_MessageTimer_timeout\" '[] (IO ()) where\n  nodeMethod self = getNode' @\"MessageLabel\" self >>= CanvasItem.hide\ninstance NodeMethod HUD \"_on_StartButton_pressed\" '[] (IO ()) where\n  nodeMethod self = do\n    getNode' @\"StartButton\" self >>= CanvasItem.hide\n    emit_signal' @\"start_game\" self []\ninstance NodeMethod HUD \"show_message\" '[GodotString] (IO ()) where\n  nodeMethod = show_message\ninstance NodeMethod HUD \"show_game_over\" '[] (IO ()) where\n  nodeMethod = show_game_over\ninstance NodeMethod HUD \"update_score\" '[Int] (IO ()) where\n  nodeMethod = update_score\ninstance NodeSignal HUD \"start_game\" '[]\n\nshow_message :: HUD -> GodotString -> IO ()\nshow_message self text = do\n  messageLabel <- getNode' @\"MessageLabel\" self \n  set_text messageLabel text\n  CanvasItem.show messageLabel\n  getNode' @\"MessageTimer\" self >>= (`Timer.start` Nothing)\n\nshow_game_over :: HUD -> IO ()\nshow_game_over self = do\n  show_message self =<< toLowLevel \"Game Over\"\n  await' @\"MessageTimer\" @\"timeout\" self $ \\self' -> do\n    messageLabel <- getNode' @\"MessageLabel\" self'\n    set_text messageLabel =<< toLowLevel \"Dodge the\\nCreeps!\"\n    CanvasItem.show messageLabel\n    getNode' @\"StartButton\" self' >>= CanvasItem.show\n  pure ()\n\nupdate_score :: HUD -> Int -> IO ()\nupdate_score self score = do\n  set_text\n    <$> getNode' @\"ScoreLabel\" self \n    <*> toLowLevel (T.pack $ Prelude.show score)\n    &   join\n\nsetupNode ''HUD \"HUD\" \"HUD\"\nderiveBase ''HUD\n"
  },
  {
    "path": "examples/dodge-the-creeps/src/Game/Main.hs",
    "content": "module Game.Main where\nimport Control.Lens\nimport Control.Monad\nimport Foreign.C.Types\nimport Godot\nimport Godot.Core.Node as Node\nimport Godot.Core.Node2D as Node2D\nimport Godot.Core.Object as Object\nimport Godot.Core.PackedScene as PackedScene\nimport Godot.Core.PathFollow2D as PathFollow2D\nimport Godot.Core.RigidBody2D as RigidBody2D\nimport Godot.Core.Timer as Timer\nimport Godot.Gdnative\nimport Linear.V2\nimport System.Random\nimport Project.Support\nimport Project.Scenes.Main()\nimport Game.HUD\nimport Game.Mob\nimport Game.Player()\n\ndata Main = Main\n  { _base     :: Node\n  , _score    :: MVar Int\n  , _mobScene :: MVar PackedScene\n  }\nmakeFieldsNoPrefix ''Main\n\ninstance NodeInit Main where\n  init b = Main b <$> newMVar 0 <*> newEmptyMVar\n\ninstance NodeMethod Main \"_on_MobTimer_timeout\" '[] (IO ()) where\n  nodeMethod = on_MobTimer_timeout\ninstance NodeMethod Main \"_on_StartTimer_timeout\" '[] (IO ()) where\n  nodeMethod = on_StartTimer_timeout\ninstance NodeMethod Main \"_on_ScoreTimer_timeout\" '[] (IO ()) where\n  nodeMethod = on_ScoreTimer_timeout\ninstance NodeMethod Main \"game_over\" '[] (IO ()) where\n  nodeMethod = game_over\ninstance NodeMethod Main \"new_game\" '[] (IO ()) where\n  nodeMethod = new_game\n\ninstance NodeProperty Main \"PackedScene\" PackedScene 'False where\n  nodeProperty = createMVarProperty' \"PackedScene\" _mobScene (Left VariantTypeObject)\n\ngame_over :: Main -> IO ()\ngame_over self = do\n  getNode' @\"ScoreTimer\"  self  >>= Timer.stop\n  getNode' @\"MobTimer\"    self  >>= Timer.stop\n  getNodeNativeScript' @\"HUD\" self >>= show_game_over & void\n\nnew_game :: Main -> IO ()\nnew_game self = do\n  void $ swapMVar (self ^. score) 0\n  position <- getNode' @\"StartPosition\" self >>= get_position\n  void $ call\n    <$> getNodeNativeScript' @\"Player\" self \n    <*> toLowLevel \"_start\"\n    <*> pure [toVariant position]\n    &   join\n  getNode' @\"StartTimer\" self >>= start `flip` Nothing\n  hud <- getNodeNativeScript' @\"HUD\" self\n  update_score hud 0\n  show_message hud =<< toLowLevel \"Get Ready!\"\n\non_StartTimer_timeout :: Main -> IO ()\non_StartTimer_timeout self = do\n  getNode' @\"MobTimer\" self  >>= start `flip` Nothing\n  getNode' @\"ScoreTimer\" self  >>= start `flip` Nothing\n\non_ScoreTimer_timeout :: Main -> IO ()\non_ScoreTimer_timeout self = do\n  modifyMVar_ (self ^. score) (pure . (+) 1)\n  update_score\n    <$> getNodeNativeScript' @\"HUD\" self\n    <*> readMVar (self ^. score)\n    &   join\n\non_MobTimer_timeout :: Main -> IO ()\non_MobTimer_timeout self@(Main _ _ mobScene_) = do\n  -- Choose a random location on Path2D.\n  mobSpawnLoc <- getNode' @\"MobPath/MobSpawnLocation\" self \n  PathFollow2D.set_offset mobSpawnLoc . fromInteger =<< randomIO\n  -- Create a Mob instance and add it to the scene.\n  mob :: Mob <- readMVar mobScene_\n            >>= (`PackedScene.instance'` Just 0)\n            >>= (asNativeScript . upcast)\n            >>= maybe (error \"Couldn't cast mob to NativeScript\") pure\n  add_child self (upcast mob) (Just False)\n  -- Set the mob's direction perpendicular to the path direction.\n  direction <- get_rotation mobSpawnLoc <&> (+ pi / 2)\n  -- Set the mob's position to a random location.\n  Node2D.set_position mob =<< get_position mobSpawnLoc\n  -- Add some randomness to the direction.\n  direction' <- (direction +) <$> randomRIO ((-pi) / 4, pi / 4)\n  set_rotation mob direction'\n  -- Set the velocity' (speed & direction).\n  liftM2 (,) (readMVar $ _mMinSpeed mob) (readMVar $ _mMaxSpeed mob)\n    >>= randomRIO\n    >>= (\\x -> toLowLevel (V2 x 0))\n    >>= (`godot_vector2_rotated` CFloat direction')\n    >>= set_linear_velocity mob\n\nsetupNode ''Main \"Main\" \"Main\"\nderiveBase ''Main\n"
  },
  {
    "path": "examples/dodge-the-creeps/src/Game/Mob.hs",
    "content": "module Game.Mob where\nimport Godot\nimport Godot.Core.AnimatedSprite as AnimatedSprite\nimport Godot.Core.Node as Node\nimport System.Random\nimport Project.Support\nimport Project.Scenes.Mob()\n\ndata Mob = Mob\n  { _mBase :: RigidBody2D\n  , _mMinSpeed :: MVar Float\n  , _mMaxSpeed :: MVar Float\n  , _mMobTypes :: MVar [Text]\n  }\n\ninstance NodeInit Mob where\n  init base = Mob base <$> newMVar 150 <*> newMVar 250 <*> newMVar [\"walk\", \"swim\", \"fly\"]\ninstance NodeMethod Mob \"_ready\" '[] (IO ()) where\n  nodeMethod self = do\n        let randElem xs = (xs !!) <$> randomRIO (0, length xs - 1)\n        randAnim <- readMVar (_mMobTypes self) >>= randElem >>= toLowLevel\n        getNode' @\"AnimatedSprite\" self >>= (`set_animation` randAnim)\ninstance NodeMethod Mob \"_on_VisibilityNotifier2D_screen_exited\" '[] (IO ()) where\n  nodeMethod = queue_free\n\nsetupNode ''Mob \"Mob\" \"Mob\"\nderiveBase ''Mob\n"
  },
  {
    "path": "examples/dodge-the-creeps/src/Game/Player.hs",
    "content": "module Game.Player where\nimport Control.Lens\nimport Control.Monad\nimport Godot\nimport Godot.Core.AnimatedSprite as AnimatedSprite\nimport Godot.Core.CanvasItem as CanvasItem\nimport Godot.Core.CollisionShape2D as CollisionShape2D\nimport Godot.Core.Input as Input\nimport Godot.Core.Node2D as Node2D\nimport Godot.Core.Object as Object\nimport Godot.Gdnative\nimport Linear.Metric (normalize)\nimport Linear.V2\nimport Linear.Vector\nimport Project.Support\nimport Project.Scenes.Player()\n\ndata Player = Player\n  { _pBase :: Area2D\n  , _pSpeed :: MVar Float\n  , _pScreenSize :: MVar (V2 Float)\n  }\n\ninstance NodeInit Player where\n  init base = Player base <$> newMVar 400 <*> newMVar zero\n\ninstance NodeMethod Player \"_ready\" '[] (IO ()) where\n  nodeMethod = player_ready\ninstance NodeMethod Player \"_process\" '[Float] (IO ()) where\n  nodeMethod = player_process\ninstance NodeMethod Player \"_start\" '[Vector2] (IO ()) where\n  nodeMethod = player_start\ninstance NodeMethod Player \"_on_Player_body_entered\" '[Node] (IO ()) where\n  nodeMethod self _body = do\n    hide self -- Player disappears after being hit.\n    emit_signal' @\"hit\" self []\n    getNode' @\"CollisionShape2D\" self  >>= \\cSh -> do\n      disable <- toLowLevel \"set_disabled\"\n      call_deferred cSh disable [VariantBool True]\n\ninstance NodeProperty Player \"Player\" Float 'False where\n  nodeProperty = createMVarProperty' \"Player\" _pSpeed (Right 400)\n\ninstance NodeSignal Player \"hit\" '[]\n\nplayer_ready :: Player -> IO ()\nplayer_ready self = do\n  screenRect <- get_viewport_rect self >>= fromLowLevel\n  void $ swapMVar (_pScreenSize self) (screenRect ^. _y)\n  hide self\n\nplayer_start :: Player -> Vector2 -> IO ()\nplayer_start self pos = do\n  set_position self pos\n  CanvasItem.show self\n  getNode' @\"CollisionShape2D\" self >>= (`set_disabled` False)\n\nplayer_process :: Player -> Float -> IO ()\nplayer_process self delta = do\n  animSprite              <- getNode' @\"AnimatedSprite\" self \n  screenSize              <- get_viewport_rect self >>= fromLowLevel <&> (^. _y)\n  [left, right, up, down] <- do\n    Just inp <- getSingleton @Input\n    let isActionPressed = is_action_pressed inp <=< toLowLevel\n    mapM isActionPressed [\"ui_left\", \"ui_right\", \"ui_up\", \"ui_down\"]\n  let velocity =\n        let bVal b v = if b then v else 0\n        in  V2 (bVal left (-1) + bVal right 1) (bVal up (-1) + bVal down 1)\n  if velocity /= zero\n    then do\n      speed <- readMVar (_pSpeed self)\n      pos   <- get_position self >>= fromLowLevel\n      let velocity' = normalize velocity ^* speed\n          pos'      = pos + velocity' ^* delta\n          clamp v a b = max a (min b v)\n          newPos =\n            let posX = clamp (pos' ^. _x) 0 (screenSize ^. _x)\n                posY = clamp (pos' ^. _y) 0 (screenSize ^. _y)\n            in  V2 posX posY\n      set_position self =<< toLowLevel newPos\n      animationName <- toLowLevel \"\"\n      play animSprite (Just animationName) Nothing\n      if velocity' ^. _x /= 0\n        then do\n          set_animation animSprite =<< toLowLevel \"right\"\n          -- official demo sets flip_v to false but this is better\n          set_flip_v animSprite (velocity' ^. _y > 0)\n          set_flip_h animSprite (velocity' ^. _x < 0)\n        else when (velocity' ^. _y /= 0) $ do\n          set_animation animSprite =<< toLowLevel \"up\"\n          set_flip_v animSprite (velocity' ^. _y > 0)\n    else stop animSprite\n\nsetupNode ''Player \"Player\" \"Player\"\nderiveBase ''Player\n"
  },
  {
    "path": "examples/dodge-the-creeps/src/Lib.hs",
    "content": "module Lib (exports) where\nimport Godot\nimport Game.Mob\nimport Game.Main\nimport Game.Player\nimport Game.HUD\nimport Project.Support\nimport Project.Requirements\n\nexports :: GdnativeHandle -> IO ()\nexports = registerAll' @Nodes @'[HUD, Main, Mob, Player]\n"
  },
  {
    "path": "examples/dodge-the-creeps/src/Project/Requirements.hs",
    "content": "-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\n\nmodule Project.Requirements where\nimport Project.Support\n\ntype Nodes = '[OneResourceNode \"HUD\" \"HUD\", OneResourceNode \"Main\" \"Main\", OneResourceNode \"Mob\" \"Mob\", OneResourceNode \"Player\" \"Player\"]\n"
  },
  {
    "path": "examples/dodge-the-creeps/src/Project/Scenes/HUD.hs",
    "content": "-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\n\n{-# LANGUAGE FlexibleContexts, FunctionalDependencies, MultiParamTypeClasses,\n  UndecidableInstances, OverloadedStrings, TemplateHaskell, TypeApplications,\n  TypeFamilies, DataKinds, TypeOperators, FlexibleInstances, RankNTypes,\n  AllowAmbiguousTypes, ScopedTypeVariables, DerivingStrategies,\n  GeneralizedNewtypeDeriving, LambdaCase #-}\n\nmodule Project.Scenes.HUD where\nimport Project.Support\nimport Godot\nimport GHC.TypeLits\n\nimport Godot.Core.CanvasLayer()\nimport Godot.Core.Label()\nimport Godot.Core.Timer()\nimport Godot.Core.Button()\n\ninstance SceneResourcePath \"HUD\" where\n  sceneResourcePath = \"res://HUD.tscn\"\n\n\ninstance SceneRoot \"HUD\" where\n  type SceneRootNode \"HUD\" = \"HUD\"\n\n\ninstance SceneNode        \"HUD\" \"HUD\" where\n  type SceneNodeType      \"HUD\" \"HUD\" = CanvasLayer\n  type SceneNodeName      \"HUD\" \"HUD\" = \"HUD\"\n  type SceneNodeIsHaskell \"HUD\" \"HUD\" = 'Just '(\"HUD\", \"HUD\")\n\n\ninstance SceneNode        \"HUD\" \"MessageLabel\" where\n  type SceneNodeType      \"HUD\" \"MessageLabel\" = Label\n  type SceneNodeName      \"HUD\" \"MessageLabel\" = \"MessageLabel\"\n  type SceneNodeIsHaskell \"HUD\" \"MessageLabel\" = 'Nothing\n\n\ninstance SceneNode        \"HUD\" \"MessageTimer\" where\n  type SceneNodeType      \"HUD\" \"MessageTimer\" = Timer\n  type SceneNodeName      \"HUD\" \"MessageTimer\" = \"MessageTimer\"\n  type SceneNodeIsHaskell \"HUD\" \"MessageTimer\" = 'Nothing\n\n\ninstance SceneNode        \"HUD\" \"ScoreLabel\" where\n  type SceneNodeType      \"HUD\" \"ScoreLabel\" = Label\n  type SceneNodeName      \"HUD\" \"ScoreLabel\" = \"ScoreLabel\"\n  type SceneNodeIsHaskell \"HUD\" \"ScoreLabel\" = 'Nothing\n\n\ninstance SceneNode        \"HUD\" \"StartButton\" where\n  type SceneNodeType      \"HUD\" \"StartButton\" = Button\n  type SceneNodeName      \"HUD\" \"StartButton\" = \"StartButton\"\n  type SceneNodeIsHaskell \"HUD\" \"StartButton\" = 'Nothing\n\n\ninstance SceneConnection \"HUD\" \"MessageTimer\" \"timeout\" \"HUD\" \"_on_MessageTimer_timeout\"\n\n\ninstance SceneConnection \"HUD\" \"StartButton\" \"pressed\" \"HUD\" \"_on_StartButton_pressed\"\n\n"
  },
  {
    "path": "examples/dodge-the-creeps/src/Project/Scenes/Main.hs",
    "content": "-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\n\n{-# LANGUAGE FlexibleContexts, FunctionalDependencies, MultiParamTypeClasses,\n  UndecidableInstances, OverloadedStrings, TemplateHaskell, TypeApplications,\n  TypeFamilies, DataKinds, TypeOperators, FlexibleInstances, RankNTypes,\n  AllowAmbiguousTypes, ScopedTypeVariables, DerivingStrategies,\n  GeneralizedNewtypeDeriving, LambdaCase #-}\n\nmodule Project.Scenes.Main where\nimport Project.Support\nimport Godot\nimport GHC.TypeLits\n\nimport Godot.Core.ColorRect()\nimport Godot.Core.PackedScene()\nimport Godot.Core.Node()\nimport Godot.Core.Path2D()\nimport Godot.Core.PathFollow2D()\nimport Godot.Core.Timer()\nimport Godot.Core.Position2D()\n\ninstance SceneResourcePath \"Main\" where\n  sceneResourcePath = \"res://Main.tscn\"\n\n\ninstance SceneRoot \"Main\" where\n  type SceneRootNode \"Main\" = \"Main\"\n\n\ninstance SceneNode        \"Main\" \"ColorRect\" where\n  type SceneNodeType      \"Main\" \"ColorRect\" = ColorRect\n  type SceneNodeName      \"Main\" \"ColorRect\" = \"ColorRect\"\n  type SceneNodeIsHaskell \"Main\" \"ColorRect\" = 'Nothing\n\n\ninstance SceneNode        \"Main\" \"HUD\" where\n  type SceneNodeType      \"Main\" \"HUD\" = PackedScene' \"HUD\"\n  type SceneNodeName      \"Main\" \"HUD\" = \"HUD\"\n  type SceneNodeIsHaskell \"Main\" \"HUD\" = 'Just '(\"HUD\", \"HUD\")\n\n\ninstance SceneNode        \"Main\" \"Main\" where\n  type SceneNodeType      \"Main\" \"Main\" = Node\n  type SceneNodeName      \"Main\" \"Main\" = \"Main\"\n  type SceneNodeIsHaskell \"Main\" \"Main\" = 'Just '(\"Main\", \"Main\")\n\n\ninstance SceneNode        \"Main\" \"MobPath\" where\n  type SceneNodeType      \"Main\" \"MobPath\" = Path2D\n  type SceneNodeName      \"Main\" \"MobPath\" = \"MobPath\"\n  type SceneNodeIsHaskell \"Main\" \"MobPath\" = 'Nothing\n\n\ninstance SceneNode        \"Main\" \"MobPath/MobSpawnLocation\" where\n  type SceneNodeType      \"Main\" \"MobPath/MobSpawnLocation\" = PathFollow2D\n  type SceneNodeName      \"Main\" \"MobPath/MobSpawnLocation\" = \"MobSpawnLocation\"\n  type SceneNodeIsHaskell \"Main\" \"MobPath/MobSpawnLocation\" = 'Nothing\n\n\ninstance SceneNode        \"Main\" \"MobTimer\" where\n  type SceneNodeType      \"Main\" \"MobTimer\" = Timer\n  type SceneNodeName      \"Main\" \"MobTimer\" = \"MobTimer\"\n  type SceneNodeIsHaskell \"Main\" \"MobTimer\" = 'Nothing\n\n\ninstance SceneNode        \"Main\" \"Player\" where\n  type SceneNodeType      \"Main\" \"Player\" = PackedScene' \"Player\"\n  type SceneNodeName      \"Main\" \"Player\" = \"Player\"\n  type SceneNodeIsHaskell \"Main\" \"Player\" = 'Just '(\"Player\", \"Player\")\n\n\ninstance SceneNode        \"Main\" \"ScoreTimer\" where\n  type SceneNodeType      \"Main\" \"ScoreTimer\" = Timer\n  type SceneNodeName      \"Main\" \"ScoreTimer\" = \"ScoreTimer\"\n  type SceneNodeIsHaskell \"Main\" \"ScoreTimer\" = 'Nothing\n\n\ninstance SceneNode        \"Main\" \"StartPosition\" where\n  type SceneNodeType      \"Main\" \"StartPosition\" = Position2D\n  type SceneNodeName      \"Main\" \"StartPosition\" = \"StartPosition\"\n  type SceneNodeIsHaskell \"Main\" \"StartPosition\" = 'Nothing\n\n\ninstance SceneNode        \"Main\" \"StartTimer\" where\n  type SceneNodeType      \"Main\" \"StartTimer\" = Timer\n  type SceneNodeName      \"Main\" \"StartTimer\" = \"StartTimer\"\n  type SceneNodeIsHaskell \"Main\" \"StartTimer\" = 'Nothing\n\n\ninstance SceneConnection \"Main\" \"HUD\" \"start_game\" \"Main\" \"new_game\"\n\n\ninstance SceneConnection \"Main\" \"StartTimer\" \"timeout\" \"Main\" \"_on_StartTimer_timeout\"\n\n\ninstance SceneConnection \"Main\" \"ScoreTimer\" \"timeout\" \"Main\" \"_on_ScoreTimer_timeout\"\n\n\ninstance SceneConnection \"Main\" \"MobTimer\" \"timeout\" \"Main\" \"_on_MobTimer_timeout\"\n\n\ninstance SceneConnection \"Main\" \"Player\" \"hit\" \"Main\" \"game_over\"\n\n"
  },
  {
    "path": "examples/dodge-the-creeps/src/Project/Scenes/Mob.hs",
    "content": "-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\n\n{-# LANGUAGE FlexibleContexts, FunctionalDependencies, MultiParamTypeClasses,\n  UndecidableInstances, OverloadedStrings, TemplateHaskell, TypeApplications,\n  TypeFamilies, DataKinds, TypeOperators, FlexibleInstances, RankNTypes,\n  AllowAmbiguousTypes, ScopedTypeVariables, DerivingStrategies,\n  GeneralizedNewtypeDeriving, LambdaCase #-}\n\nmodule Project.Scenes.Mob where\nimport Project.Support\nimport Godot\nimport GHC.TypeLits\n\nimport Godot.Core.AnimatedSprite()\nimport Godot.Core.CollisionShape2D()\nimport Godot.Core.RigidBody2D()\nimport Godot.Core.VisibilityNotifier2D()\n\ninstance SceneResourcePath \"Mob\" where\n  sceneResourcePath = \"res://Mob.tscn\"\n\n\ninstance SceneRoot \"Mob\" where\n  type SceneRootNode \"Mob\" = \"Mob\"\n\n\ninstance SceneNode        \"Mob\" \"AnimatedSprite\" where\n  type SceneNodeType      \"Mob\" \"AnimatedSprite\" = AnimatedSprite\n  type SceneNodeName      \"Mob\" \"AnimatedSprite\" = \"AnimatedSprite\"\n  type SceneNodeIsHaskell \"Mob\" \"AnimatedSprite\" = 'Nothing\n\n\ninstance SceneNode        \"Mob\" \"CollisionShape2D\" where\n  type SceneNodeType      \"Mob\" \"CollisionShape2D\" = CollisionShape2D\n  type SceneNodeName      \"Mob\" \"CollisionShape2D\" = \"CollisionShape2D\"\n  type SceneNodeIsHaskell \"Mob\" \"CollisionShape2D\" = 'Nothing\n\n\ninstance SceneNode        \"Mob\" \"Mob\" where\n  type SceneNodeType      \"Mob\" \"Mob\" = RigidBody2D\n  type SceneNodeName      \"Mob\" \"Mob\" = \"Mob\"\n  type SceneNodeIsHaskell \"Mob\" \"Mob\" = 'Just '(\"Mob\", \"Mob\")\n\n\ninstance SceneNode        \"Mob\" \"VisibilityNotifier2D\" where\n  type SceneNodeType      \"Mob\" \"VisibilityNotifier2D\" = VisibilityNotifier2D\n  type SceneNodeName      \"Mob\" \"VisibilityNotifier2D\" = \"VisibilityNotifier2D\"\n  type SceneNodeIsHaskell \"Mob\" \"VisibilityNotifier2D\" = 'Nothing\n\n\ninstance SceneConnection \"Mob\" \"VisibilityNotifier2D\" \"screen_exited\" \"Mob\" \"_on_VisibilityNotifier2D_screen_exited\"\n\n"
  },
  {
    "path": "examples/dodge-the-creeps/src/Project/Scenes/Player.hs",
    "content": "-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\n\n{-# LANGUAGE FlexibleContexts, FunctionalDependencies, MultiParamTypeClasses,\n  UndecidableInstances, OverloadedStrings, TemplateHaskell, TypeApplications,\n  TypeFamilies, DataKinds, TypeOperators, FlexibleInstances, RankNTypes,\n  AllowAmbiguousTypes, ScopedTypeVariables, DerivingStrategies,\n  GeneralizedNewtypeDeriving, LambdaCase #-}\n\nmodule Project.Scenes.Player where\nimport Project.Support\nimport Godot\nimport GHC.TypeLits\n\nimport Godot.Core.AnimatedSprite()\nimport Godot.Core.CollisionShape2D()\nimport Godot.Core.Area2D()\n\ninstance SceneResourcePath \"Player\" where\n  sceneResourcePath = \"res://Player.tscn\"\n\n\ninstance SceneRoot \"Player\" where\n  type SceneRootNode \"Player\" = \"Player\"\n\n\ninstance SceneNode        \"Player\" \"AnimatedSprite\" where\n  type SceneNodeType      \"Player\" \"AnimatedSprite\" = AnimatedSprite\n  type SceneNodeName      \"Player\" \"AnimatedSprite\" = \"AnimatedSprite\"\n  type SceneNodeIsHaskell \"Player\" \"AnimatedSprite\" = 'Nothing\n\n\ninstance SceneNode        \"Player\" \"CollisionShape2D\" where\n  type SceneNodeType      \"Player\" \"CollisionShape2D\" = CollisionShape2D\n  type SceneNodeName      \"Player\" \"CollisionShape2D\" = \"CollisionShape2D\"\n  type SceneNodeIsHaskell \"Player\" \"CollisionShape2D\" = 'Nothing\n\n\ninstance SceneNode        \"Player\" \"Player\" where\n  type SceneNodeType      \"Player\" \"Player\" = Area2D\n  type SceneNodeName      \"Player\" \"Player\" = \"Player\"\n  type SceneNodeIsHaskell \"Player\" \"Player\" = 'Just '(\"Player\", \"Player\")\n\n\ninstance SceneConnection \"Player\" \"Player\" \"body_entered\" \"Player\" \"_on_Player_body_entered\"\n\n"
  },
  {
    "path": "examples/dodge-the-creeps/src/Project/Scenes.hs",
    "content": "-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\n\nmodule Project.Scenes (module M) where\nimport qualified Project.Scenes.HUD as M\nimport qualified Project.Scenes.Main as M\nimport qualified Project.Scenes.Mob as M\nimport qualified Project.Scenes.Player as M\n\n"
  },
  {
    "path": "examples/dodge-the-creeps/src/Project/Support.hs",
    "content": "-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\n\n{-# LANGUAGE FlexibleContexts, FunctionalDependencies, MultiParamTypeClasses,\n  UndecidableInstances, OverloadedStrings, TemplateHaskell, TypeApplications,\n  TypeFamilies, DataKinds, TypeOperators, FlexibleInstances, RankNTypes,\n  AllowAmbiguousTypes, ScopedTypeVariables, DerivingStrategies,\n  GeneralizedNewtypeDeriving, LambdaCase #-}\n\n{-# OPTIONS_GHC -Wno-name-shadowing #-}\n\nmodule Project.Support where\nimport Godot.Core.Object\nimport Godot.Internal.Dispatch\nimport Godot.Gdnative.Internal.Types\nimport Data.Typeable\nimport qualified Data.Text as T\nimport qualified Data.Map as M\nimport Language.Haskell.TH\nimport Language.Haskell.TH.Datatype\nimport Control.Lens\nimport Control.Monad\nimport Godot\nimport Godot.Gdnative\nimport GHC.TypeLits\nimport Data.List\nimport Data.Maybe\nimport Data.Coerce\nimport Godot.Core.ResourceLoader\nimport Godot.Core.PackedScene\n\n-- * Helper to keep Haskell types in sync with the Godot project.\nnewtype PackedScene' (scene :: Symbol) = PackedScene' PackedScene\n                        deriving newtype AsVariant\ninstance HasBaseClass (PackedScene' scene) where\n        type BaseClass (PackedScene' scene) = PackedScene\n        super = coerce\nderiveBase ''PackedScene'\n\n-- | Use this to register all of your classes, it makes sure that you don't\n-- forget a class that Godot needs.\n-- \n-- exports :: GdnativeHandle -> IO ()\n-- exports desc = registerAll' @Nodes @'[HUD, Main, Mob, Player] desc\nregisterAll' :: forall (res :: [*]) (ns :: [*]). ImplementedInHaskell res ns => GdnativeHandle -> IO ()\nregisterAll' = fill @res @ns\n\n-- | A safe version of getNode; gives you back the Godot object\n-- getNode' @\"MobPath/MobSpawnLocation\" self\ngetNode' :: forall label b cls scene name. (Object :< cls, Node :< cls,\n                                      Node :< b,\n                                      NodeInScene scene name cls,\n                                      SceneNode scene label,\n                                      SceneNodeType scene label ~ b,\n                                      KnownSymbol label)\n         => cls -> IO b\ngetNode' o = getNode @(SceneNodeType scene label) o (T.pack $ symbolVal (Proxy @label))\n\n-- | A safe version of getNodeNativeScript; gives you back the Haskell object\n-- getNodeNativeScript' @\"HUD\" self\ngetNodeNativeScript' :: forall label b cls scene name scene' label'.\n                        (NativeScript b, Node :< cls, Object :< cls, NodeInScene scene name cls,\n                         SceneNodeIsHaskell scene label ~ 'Just '(scene', label'),\n                         NodeInScene scene' label' b,\n                         KnownSymbol label)\n                     => cls -> IO b\ngetNodeNativeScript' cls = getNodeNativeScript @b cls (T.pack $ symbolVal (Proxy @label))\n\n-- | A safe version of emit_signal; will error at compile time if the signal doesn't exist\n-- emit_signal' @\"hit\" self []\n-- TODO We don't check arguments yet!\nemit_signal' :: forall label args cls.\n               (Object :< cls, Object :< cls, NodeSignal cls label args, KnownSymbol label)\n             => cls -> [Variant 'GodotTy] -> IO ()\nemit_signal' cls args = do\n  name <- toLowLevel (T.pack $ symbolVal (Proxy @label))\n  emit_signal cls name args\n\n-- | A safe version of await; will error at compile time if the signal and nodes don't exist\n-- await' @\"MessageTimer\" @\"timeout\" self $ \\self' -> pure ()\nawait' :: forall (label :: Symbol) (signal :: Symbol) a b cls scene name.\n         (NodeInScene scene name cls, NativeScript cls, KnownSymbol label, KnownSymbol signal,\n          SceneNode scene label, Node :< cls, AsVariant a, Node :< SceneNodeType scene label,\n          NodeSignal b signal '[], SceneNodeType scene label ~ b)\n       => cls -> (cls -> IO a) -> IO ()\nawait' o f = do\n  n <- getNode' @label o\n  await o n (T.pack $ symbolVal (Proxy @signal)) f\n\n-- | Preload a scene so you can instantiate it later.\n-- Use this when the scene is known ahead of time. Store scenes in as @PackedScene' \"SceneName\"@\npreloadScene :: forall scene. (KnownSymbol scene, SceneResourcePath scene) => IO (PackedScene' scene)\npreloadScene = do\n  Just r <- getSingleton @ResourceLoader\n  path <- toLowLevel $ sceneResourcePath @scene\n  PackedScene' <$> (tryCast' =<< load r path Nothing Nothing)\n\n-- | Create an instance of a scene from a @PackedScene' \"SceneName\"@\n-- Makes sure that you are getting the type of the scene root.\nsceneInstance :: forall scene o. (Node :< o, Typeable o, AsVariant o, SceneNodeType scene (SceneRootNode scene) ~ o) => PackedScene' scene -> IO o\nsceneInstance e = tryCast' =<< instance' e Nothing\n\n-- | Combines nodeMethod with getNode' to call functions in a type-safe way\n-- Provides no additional safety compared to using the two separately, but does clean up code a bit.\n-- For example: fn @\"MyNode\" @\"hide\" self\nfn :: forall (node :: Symbol) (func :: Symbol) scene name cls args ret b.\n         (Object :< cls, Node :< cls,\n           Node :< SceneNodeType scene node,\n           NodeInScene scene name cls, SceneNode scene node,\n           NodeMethodSuper (SceneNodeType scene node) func args ret,\n           ListToFun args ret ~ IO b, KnownSymbol node) => cls -> IO b\nfn self = nodeMethod' @_ @func =<< getNode' @node self\n\n-- | Get the file path to the scene\nclass SceneResourcePath (scene :: Symbol) where\n  sceneResourcePath :: forall scene. T.Text\n\n-- * Internal helpers: You won't use these\n\n-- | The root node of a scene\nclass SceneRoot (scene :: Symbol) where\n  type SceneRootNode scene :: Symbol\n\n-- | A node in the scene, we know its type and its name, @s@ is the path relate\n-- to the scene\nclass (Typeable (SceneNodeType scene s),\n       AsVariant (SceneNodeType scene s),\n       Object :< SceneNodeType scene s) => SceneNode (scene :: Symbol) (s :: Symbol) where\n  type SceneNodeType scene s :: *\n  type SceneNodeName scene s :: Symbol\n  type SceneNodeIsHaskell scene s :: Maybe (Symbol, Symbol)\n\n-- | You declare this for your types. You offer up a haskell type, @n@, for the\n-- node. This class verifies that your base class is correct.\nclass (HasBaseClass n, BaseClass n ~ SceneNodeType scene s) =>\n      NodeInScene (scene :: Symbol) (s :: Symbol) n | scene s -> n, n -> scene s\n\n-- | A connection between nodes in a scene. @from@ and @to@ are paths.\n-- It connects @signal@ in @from@ to @method@ in @to@.\nclass SceneConnection (scene :: Symbol) (from :: Symbol) (signal :: Symbol) (to :: Symbol) (method :: Symbol)\n\n-- | Internal, just for convenience\ndata OneResourceNode (resource :: Symbol) (name :: Symbol)\n\n-- | Internal. Don't touch this and don't make instances of it. It's the\n-- workhorse for making sure that you are implementing all of the classes that\n-- Godot needs, nothing more and nothing less.\nclass ImplementedInHaskell (a :: [*]) (b :: [*]) where\n  fill :: GdnativeHandle -> IO ()\n\ninstance ImplementedInHaskell '[] '[] where\n  fill _ = pure ()\n\nregisterOne :: forall ty. (NativeScript ty, AsVariant (BaseClass ty)) => GdnativeHandle -> IO ()\nregisterOne desc = registerClass $ RegClass desc $ classInit @ty\n\ninstance (NodeInScene scene name n,\n          NativeScript n, AsVariant (BaseClass n),\n          ImplementedInHaskell t t',\n          SceneNodeIsHaskell scene name ~ 'Just '(resource, name))\n          => ImplementedInHaskell (OneResourceNode resource name ': t) (n ': t') where\n  fill handle = do\n    registerOne @n handle\n    fill @t @t' handle\n\n-- | Create a signal\n-- TODO args ~ '[] is temproary, we need signeltons to reflect this into a runtime value\nsignal' :: forall cls label args.\n          (NodeSignal cls label args, KnownSymbol label, args ~ '[])\n        => (Text, [SignalArgument])\nsignal' = signal (T.pack $ symbolVal (Proxy @label)) []\n\ncreateMVarProperty' :: (Typeable ty, AsVariant ty) => Text\n                    -> (node -> MVar ty)\n                    -- ^ We typically can't do IO (for initialisation) when calling this, in\n                    -- which case we need to annotate the type without providing a value.\n                    -> Either VariantType ty\n                    -> (node -> IO ty\n                      ,node -> ty -> IO ()\n                      ,Maybe (Object -> node -> IO GodotVariant\n                             ,Object -> node -> GodotVariant -> IO ()\n                             ,PropertyAttributes))\ncreateMVarProperty' name fieldName tyOrVal =\n  (readMVar . fieldName,\n   \\c t -> propertySetter p undefined c =<< toGodotVariant t,\n   Just (propertyGetter p, propertySetter p, propertyAttrs p))\n  where p = createMVarProperty name fieldName tyOrVal\n\nappsT :: Type -> [Type] -> Type\nappsT t [] = t\nappsT t (x:xs) = appsT (AppT t x) xs\n\n-- | Verify that the signal connects to an endpoint that exists and has the right type.\nwitnessConnection :: forall (scene :: Symbol) (from :: Symbol) (signal :: Symbol) (to :: Symbol) (method :: Symbol) parent sigTy hTy.\n                    (SceneNode scene to,\n                      NodeSignal parent signal sigTy,\n                      -- TODO This the check unsound, but SceneNodeType isn't right for this constraint. What is?\n                      -- The warning produced because 'from' is not used is a reminder of this issue.\n                      -- parent :< SceneNodeType scene from,\n                      NodeMethod hTy method sigTy (IO ()),\n                      NodeInScene scene to hTy) => ()\nwitnessConnection = ()\n\n-- | Sets up a class\nclass NodeInit n where\n  init :: BaseClass n -> IO n\n\n-- | You never implement this. It's a helper so that we can have a more\n-- polymorphic call to nodeMethod which will work when the method is implemneted\n-- for any parent of the current node.\nclass NodeMethodSuper node (name :: Symbol) (args :: [*]) (ret :: *) | node name -> args, node name -> ret where\n  nodeMethod' :: node -> ListToFun args ret\n\n-- | An instance that supports calling nodeMethod' on your parents This can lead\n-- to infinite loops in the type checker on error, so we isolate it in\n-- NodeMethodSuper instead of NodeMethod.\ninstance {-# OVERLAPPABLE #-} (NodeMethod (BaseClass node) name arg ret, HasBaseClass node)\n    => NodeMethodSuper node name arg ret where\n  nodeMethod' = nodeMethod' @node @name @arg @ret\n\nmkProperty' :: forall node (name :: Symbol) ty. (NodeProperty node name ty 'False, KnownSymbol name) => ClassProperty node\nmkProperty' = ClassProperty (T.pack $ symbolVal (Proxy @name)) a s g\n  where (_,_,Just (g,s,a)) = nodeProperty @node @name @ty @'False\n\n-- | You should use this as:\n--   setupNode ''Ty\n--   deriveBase ''Ty\n-- This will instantiate everything that your Object needs\nsetupNode :: Name -> String -> String -> Q [Dec]\nsetupNode ty scene sceneNode = do\n  -- Collect information about all scenes\n  tree         <- map unTree . classInstances <$> reify ''(:<)\n  sceneRoots   <- M.fromList . map unSceneRootNode . familyInstances <$> reify ''SceneRootNode\n  sceneNodes   <- map unSceneNodeType . familyInstances <$> reify ''SceneNodeType\n  haskellNodes <- map unNodeInScene . classInstances <$> reify ''NodeInScene\n  allSignals   <- map unNodeSignal . classInstances <$> reify ''NodeSignal\n  -- Collect information about our node\n  rdt <- reifyDatatype ty\n  let base = case datatypeCons rdt of\n                    (c:_) -> case (constructorFields c, constructorVariant c) of\n                              (ConT baseTy:_, RecordConstructor (baseFn:_)) -> Just (baseTy, baseFn)\n                              _ -> Nothing\n                    _ -> Nothing\n  --\n  methods    <- filter (\\i -> i^._1 == ty) . mapMaybe unNodeMethod . classInstances <$> reify ''NodeMethod\n  properties <- filter (\\i -> i^._1 == ty) . mapMaybe unNodeProperty . classInstances <$> reify ''NodeProperty\n  let signals = filter (\\i -> i^._1 == ty) allSignals\n  connections <- filter (\\i -> i^._1 == scene && i^._4 == sceneNode) . map unConnect . classInstances <$> reify ''SceneConnection\n  -- Helpers\n  let parentsOf cls = map snd $ filter (\\(c,_) -> cls == c) tree\n  let nodeToType :: String -> String -> Name\n      nodeToType scene node = case (hty, ty ^. _4) of\n                                (Just t, _) -> t\n                                (_, Nothing) -> ty ^. _3\n                                (_, Just scene') -> case M.lookup scene' sceneRoots of\n                                                Nothing -> error $ \"Looking up the root of a scene that is lacking one. This is a bug. \" ++ show (scene', scene, node)\n                                                Just node' -> nodeToType scene' node'\n        where ty  = fromJust $ find (\\n -> n^._1 == scene && n^._2 == node) sceneNodes\n              hty = (^._3) <$> find (\\n -> n^._1 == scene && n^._2 == node) haskellNodes\n  let resolveSignalActualClass scene from signal =\n        case mapMaybe (\\p -> (p,) <$> find (\\s -> s^._2 == signal && s^._1 == p) allSignals) $ parentsOf (nodeToType scene from) of\n          -- The root issue is that the signal might not yet exist.\n          -- If witnessConnection was not unsound, this would not be needed as the error would happen later.\n           [] -> error $ \"Class \" ++ show from ++ \" used in scene \" ++ show scene ++ \" is lacking a signal named \" ++ show signal ++ \"\\n\" ++ show (nodeToType scene from) ++ \"\\n\" ++ show (parentsOf (nodeToType scene from))\n           (h:_) -> h ^. _1\n\n  -- Debug\n  when False $ runIO $ do\n    putStrLn \"Regenerating ..\"\n    print rdt\n    putStrLn \"\\nScene roots:\"\n    print sceneRoots\n    putStrLn \"\\nScene nodes types:\"\n    mapM_ print sceneNodes\n    putStrLn \"\\nMethods:\"\n    mapM_ print methods\n    putStrLn \"\\nProperties:\"\n    mapM_ print properties\n    putStrLn \"\\nSignals:\"\n    mapM_ print allSignals\n    mapM_ print signals\n    putStrLn \"\\nConnections:\"\n    mapM_ print connections\n    putStrLn \"\\nHaskell nodes:\"\n    mapM_ print haskellNodes\n\n  -- Generate code\n  bi <- case base of\n    Just (baseTy, baseFn) ->\n      [d|instance HasBaseClass $(pure $ PromotedT ty) where\n          type BaseClass $(pure $ PromotedT ty) = $(pure $ PromotedT baseTy)\n          super = $(pure $ VarE baseFn)|]\n    _ -> error \"setupNode can only handle records whose first field is the Godot base class. You can still interface with Godot, but you will need to set things up manually.\"\n  nis <- [d|instance NodeInScene $(pure $ LitT $ StrTyLit scene) $(pure $ LitT $ StrTyLit sceneNode) $(pure $ PromotedT ty)|]\n  ns <- [d|instance NativeScript $(pure $ PromotedT ty) where\n            classInit = Project.Support.init\n            classMethods = $(ListE <$> mapM (\\(t,n,argTy,_) ->\n                     let m = case nrArguments argTy of\n                                  0 -> [e|method0|]\n                                  1 -> [e|method1|]\n                                  2 -> [e|method2|]\n                                  3 -> [e|method3|]\n                                  4 -> [e|method4|]\n                                  5 -> [e|method5|]\n                                  n -> error $ \"More arguments than we currently impelement, look for 'method5' for more info \" ++ show  n\n                     in [e|$m $(pure $ LitE $ StringL n) (nodeMethod @ $(pure $ PromotedT t) @ $(pure $ LitT $ StrTyLit n))|]) methods)\n            classProperties = $(ListE <$> mapM (\\(name,prop,_,_) -> [e|mkProperty' @ $(pure $ PromotedT name) @ $(pure $ LitT $ StrTyLit prop) |]) properties)\n            classSignals = $(ListE <$> mapM (\\(ty,name,_) -> [e|signal' @ $(pure $ PromotedT ty) @ $(pure $ LitT $ StrTyLit name)|]) signals)|]\n  let cn = mkName $ \"witness_connections_\" ++ nameBase ty\n  ws <- (:) <$> (cn `sigD` [t| [()] |]) <*>\n       [d|$(varP cn) =\n             $(ListE <$> mapM (\\(scene,from,signal,to,method) ->\n                    [e|witnessConnection\n                        @ $(pure $ LitT $ StrTyLit scene)  @ $(pure $ LitT $ StrTyLit from)\n                        @ $(pure $ LitT $ StrTyLit signal) @ $(pure $ LitT $ StrTyLit to)\n                        @ $(pure $ LitT $ StrTyLit method)\n                        @ $(pure $ PromotedT $ resolveSignalActualClass scene from signal)\n                    |]) connections)|]\n  pure $ bi <> nis <> ns <> ws\n\n  where\n      unTree (InstanceD Nothing [] (AppT (AppT _ parent) child) []) = (unName child, unName parent)\n      unTree p = error $ \"I don't understand this parent \" ++ show p\n      unName (ConT x) = x\n      unName (AppT (ConT x) _) = x\n      unName x = error $ \"I don't know how to extract the name of this type: \" ++ show x\n      unSceneRootNode (TySynInstD (TySynEqn Nothing (AppT _ (LitT (StrTyLit scene))) (LitT (StrTyLit node)))) = (scene,node)\n      unSceneRootNode x = error $ \"Don't know how unpack this SceneRootNode: \" ++ show x\n      unSceneNodeType (TySynInstD (TySynEqn Nothing (AppT (AppT _ (LitT (StrTyLit scene))) (LitT (StrTyLit node))) ty))\n        = (scene,node,unName ty, unpackScene ty)\n      unSceneNodeType x = error $ \"Don't know how unpack this SceneNodeType: \" ++ show x\n      unpackScene (ConT _) = Nothing\n      unpackScene (AppT (ConT _) (LitT (StrTyLit scene))) = Just scene\n      unpackScene x = error $ \"Don't know how unpack this Scene: \" ++ show x\n      unNodeMethod (InstanceD Nothing [] (AppT (AppT (AppT (AppT (ConT _) (ConT cls)) (LitT (StrTyLit name))) arg) ret) []) \n        = Just (cls, name, arg, ret)\n      unNodeMethod _ = Nothing\n      unNodeProperty (InstanceD Nothing [] (AppT (AppT (AppT (AppT (ConT _) (ConT cls)) (LitT (StrTyLit name))) arg) ret) []) \n        = Just (cls, name, arg, ret)\n      unNodeProperty x = error $ show x\n      unNodeInScene (InstanceD Nothing [] (AppT (AppT (AppT (ConT _) (LitT (StrTyLit scene))) (LitT (StrTyLit node))) (ConT hty)) [])\n        = (scene, node, hty)\n      unNodeInScene x = error $ show x\n      unNodeSignal (InstanceD Nothing [] (AppT (AppT (AppT (ConT _) (ConT cls)) (LitT (StrTyLit name))) arg) []) = (cls, name, arg)\n      unNodeSignal _ = error \"Bad signal\"\n      unConnect (InstanceD Nothing [] (AppT (AppT (AppT (AppT (AppT _ (LitT (StrTyLit scene))) (LitT (StrTyLit from))) (LitT (StrTyLit signal))) (LitT (StrTyLit to))) (LitT (StrTyLit method))) []) = (scene, from, signal, to, method)\n      unConnect x = error $ \"Bad signal\" ++ show x\n      nrArguments :: Type -> Int\n      nrArguments (AppT _ r) = 1 + nrArguments r\n      nrArguments (SigT PromotedNilT (AppT ListT StarT)) = 0\n      nrArguments _ = error \"Can't compute # of arguments\"\n      classInstances :: Info -> [InstanceDec]\n      classInstances (ClassI _ is) = is\n      classInstances _ = error \"Bad class\"\n      familyInstances :: Info -> [InstanceDec]\n      familyInstances (FamilyI _ is) = is\n      familyInstances _ = error \"Bad class\"\n"
  },
  {
    "path": "examples/dodge-the-creeps/stack-shell.nix",
    "content": "{ nixpkgs ? import ./pinned-nixpkgs.nix {}\n, ghc\n}:\n\nwith nixpkgs;\n\nhaskell.lib.buildStackProject {\n  inherit ghc;\n  name = \"myproject\";\n  buildInputs = [];\n}\n\n\n"
  },
  {
    "path": "examples/dodge-the-creeps/stack.yaml",
    "content": "resolver: nightly-2021-02-06\n\npackages:\n- .\n\nextra-deps:\n- ../../\n\nrequire-stack-version: \">=1.8\"\n\nnix:\n  enable: false\n  pure: true\n  packages: []\n  shell-file: stack-shell.nix\n  nix-shell-options: []\n  path: []\n  add-gc-roots: false\n\n\n"
  },
  {
    "path": "examples/rss-reader/.gitignore",
    "content": "dist*\n*.hi\n*.o\n.stack-work/\n.stack-work-devel/\n*~\n\\#*\n*.import\nresult\n\n\n"
  },
  {
    "path": "examples/rss-reader/ChangeLog.md",
    "content": "# Empty\n\n\n"
  },
  {
    "path": "examples/rss-reader/LICENSE",
    "content": "BSD 3-Clause License\n\nCopyright (c) Andrei Barbu 2019\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n"
  },
  {
    "path": "examples/rss-reader/Makefile",
    "content": "NAME = myproject\nSTACKLIBFILE = $(shell stack path --local-install-root)/lib/lib$(NAME).so\nGODOTPROJECT = $(shell stack path --project-root)/game\nall: stack\nnix:\n\tnix-build shell.nix\n\tcp result/lib/ghc-*/lib$(NAME).so $(GODOTPROJECT)/lib\nstack:\n\tstack build --fast --force-dirty\n\tcp $(STACKLIBFILE) $(GODOTPROJECT)/lib\nstack-nix:\n\tstack --nix clean $(NAME)\n\tstack --nix build\n\tcp $(shell stack --nix path --local-install-root)/lib/lib$(NAME).so $(GODOTPROJECT)/lib\nstack-run:\n\tstack build\n\tcp $(STACKLIBFILE) $(GODOTPROJECT)/lib\n\tgodot -e --path ./game\nstack-watch:\n\tstack build --file-watch --fast --exec \"cp $(STACKLIBFILE) $(GODOTPROJECT)/lib\"\nproject-watch:\n\tstack exec godot-haskell-project-generator game src\nupdatelib:\n\tcp $(STACKLIBFILE) $(GODOTPROJECT)/lib\n"
  },
  {
    "path": "examples/rss-reader/README.md",
    "content": "The official Godot demo from the manual: Dodge the Creeps.\n\nRun with `make stack` then `godot game/project.godot` and press F5 to start, F8 to end.\n\nRequires Godot 3.1\n"
  },
  {
    "path": "examples/rss-reader/Support.hs",
    "content": "{-# LANGUAGE FlexibleContexts, FunctionalDependencies, MultiParamTypeClasses, OverloadedLabels, UndecidableInstances,\n  OverloadedStrings, TemplateHaskell, TypeApplications, TypeFamilies, DataKinds, TypeOperators, FlexibleInstances #-}\n\nmodule Generated.Support where\nimport Godot\nimport GHC.TypeLits\n\nclass SceneNode (scene :: Symbol) (s :: Symbol) where\n  type SceneNodeType scene s :: *\n  type SceneNodeName scene s :: Symbol\n\nclass NodeInScheme (scene :: Symbol) (s :: Symbol) n | scene s -> n, n -> scene s\n"
  },
  {
    "path": "examples/rss-reader/ffi/cbits/flib.c",
    "content": "#include \"HsFFI.h\"\n\nstatic void flib_init() __attribute__((constructor));\nstatic void flib_init() {\n  static char *argv[] = { \"libGodotHaskellPlugin.so\", 0 }, **argv_ = argv;\n  static int argc = 1;\n  hs_init(&argc, &argv_);\n}\n\nstatic void flib_fini() __attribute__((destructor));\nstatic void flib_fini() {\n  hs_exit();\n}\n"
  },
  {
    "path": "examples/rss-reader/ffi/flib/FLib.hs",
    "content": "{-# LANGUAGE ForeignFunctionInterface #-}\nmodule FLib where\n\nimport qualified Foreign\nimport           Foreign(nullPtr, Ptr,newForeignPtr_,castPtr)\nimport qualified Godot.Gdnative.Internal       as FFI\nimport           Godot.Gdnative\nimport           Godot.Nativescript\nimport           Lib\nimport qualified Data.Text as T\nimport qualified Data.Text.IO as T\n\ngodot_nativescript_init :: GdnativeHandle -> IO ()\ngodot_nativescript_init desc = do\n  defaultExports desc\n  exports desc\n  putStrLn \"Haskell NativeScript lib initialized\"\n\nforeign export ccall godot_nativescript_init :: GdnativeHandle -> IO ()\n\n\ngodot_gdnative_init :: FFI.GdnativeInitOptionsPtr -> IO ()\ngodot_gdnative_init opts = do\n  Foreign.peek opts >>= FFI.initApiStructs\n\nforeign export ccall godot_gdnative_init :: FFI.GdnativeInitOptionsPtr -> IO ()\n\n\ngodot_gdnative_terminate :: FFI.GdnativeTerminateOptionsPtr -> IO ()\ngodot_gdnative_terminate handle = pure ()\n\nforeign export ccall godot_gdnative_terminate :: FFI.GdnativeTerminateOptionsPtr -> IO ()\n"
  },
  {
    "path": "examples/rss-reader/game/Rss_reader.gdns",
    "content": "[gd_resource type=\"NativeScript\" load_steps=2 format=2]\n\n[ext_resource path=\"res://lib/libmyproject.gdnlib\" type=\"GDNativeLibrary\" id=1]\n\n[resource]\nresource_name = \"RSSReader\"\nclass_name = \"RSSReader\"\nlibrary = ExtResource( 1 )\n"
  },
  {
    "path": "examples/rss-reader/game/Rss_reader.tscn",
    "content": "[gd_scene load_steps=2 format=2]\n\n[ext_resource path=\"res://Rss_reader.gdns\" type=\"Script\" id=1]\n\n[node name=\"RSSReader\" type=\"Control\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nmargin_right = 1102.0\nmargin_bottom = 168.0\nscript = ExtResource( 1 )\n__meta__ = {\n\"_edit_use_anchors_\": false\n}\n\n[node name=\"OpenButton\" type=\"Button\" parent=\".\"]\nmargin_left = 34.48\nmargin_top = 65.522\nmargin_right = 179.48\nmargin_bottom = 106.522\ntext = \"Open\"\n__meta__ = {\n\"_edit_use_anchors_\": false\n}\n\n[node name=\"TextEdit\" type=\"TextEdit\" parent=\".\"]\nvisible = false\nmargin_left = 20.9119\nmargin_top = 575.146\nmargin_right = 585.912\nmargin_bottom = 868.146\n__meta__ = {\n\"_edit_use_anchors_\": false\n}\n\n[node name=\"HTTPRequest\" type=\"HTTPRequest\" parent=\".\"]\n\n[node name=\"ItemList\" type=\"ItemList\" parent=\".\"]\nmargin_left = 25.0\nmargin_top = 137.0\nmargin_right = 850.0\nmargin_bottom = 490.0\n__meta__ = {\n\"_edit_use_anchors_\": false\n}\n\n[node name=\"DescriptionField\" type=\"TextEdit\" parent=\".\"]\nmargin_left = 882.0\nmargin_top = 137.0\nmargin_right = 1555.0\nmargin_bottom = 489.0\nreadonly = true\nwrap_enabled = true\n\n[node name=\"LinkButton\" type=\"LinkButton\" parent=\".\"]\nmargin_left = 29.8409\nmargin_top = 496.385\nmargin_right = 1289.84\nmargin_bottom = 554.385\n__meta__ = {\n\"_edit_use_anchors_\": false\n}\n\n[node name=\"SettingsButton\" type=\"Button\" parent=\".\"]\nmargin_left = 1416.23\nmargin_top = 67.6134\nmargin_right = 1549.23\nmargin_bottom = 108.613\ntext = \"Settings\"\n__meta__ = {\n\"_edit_use_anchors_\": false\n}\n\n[node name=\"SettingsDialog\" type=\"WindowDialog\" parent=\".\"]\nmargin_left = 352.0\nmargin_top = 256.0\nmargin_right = 1340.0\nmargin_bottom = 538.0\n__meta__ = {\n\"_edit_use_anchors_\": false\n}\n\n[node name=\"RSSURLText\" type=\"LineEdit\" parent=\"SettingsDialog\"]\nmargin_left = 136.409\nmargin_top = 89.8409\nmargin_right = 847.409\nmargin_bottom = 131.841\n__meta__ = {\n\"_edit_use_anchors_\": false\n}\n\n[node name=\"Label\" type=\"Label\" parent=\"SettingsDialog\"]\nmargin_left = 135.431\nmargin_top = 42.4543\nmargin_right = 436.431\nmargin_bottom = 80.4543\ntext = \"The RSS feed URL \"\n\n[node name=\"Button\" type=\"Button\" parent=\"SettingsDialog\"]\nmargin_left = 134.283\nmargin_top = 161.682\nmargin_right = 200.283\nmargin_bottom = 196.682\ntext = \"Clear\"\n\n[node name=\"SaveButton\" type=\"Button\" parent=\"SettingsDialog\"]\nmargin_left = 784.273\nmargin_top = 159.841\nmargin_right = 845.273\nmargin_bottom = 197.841\ntext = \"Save\"\n__meta__ = {\n\"_edit_use_anchors_\": false\n}\n[connection signal=\"ready\" from=\".\" to=\".\" method=\"_on_RSSReader_ready\"]\n[connection signal=\"pressed\" from=\"OpenButton\" to=\".\" method=\"_on_OpenButton_pressed\"]\n[connection signal=\"request_completed\" from=\"HTTPRequest\" to=\".\" method=\"_on_HTTPRequest_request_completed\"]\n[connection signal=\"item_selected\" from=\"ItemList\" to=\".\" method=\"_on_ItemList_item_selected\"]\n[connection signal=\"pressed\" from=\"LinkButton\" to=\".\" method=\"_on_LinkButton_pressed\"]\n[connection signal=\"pressed\" from=\"SettingsButton\" to=\".\" method=\"_on_SettingsButton_pressed\"]\n[connection signal=\"pressed\" from=\"SettingsDialog/Button\" to=\".\" method=\"_on_Settings_Clear_Button_pressed\"]\n[connection signal=\"pressed\" from=\"SettingsDialog/SaveButton\" to=\".\" method=\"_on_SaveButton_pressed\"]\n"
  },
  {
    "path": "examples/rss-reader/game/export_presets.cfg",
    "content": "[preset.0]\n\nname=\"Linux/X11\"\nplatform=\"Linux/X11\"\nrunnable=true\ncustom_features=\"\"\nexport_filter=\"all_resources\"\ninclude_filter=\"\"\nexclude_filter=\"\"\nexport_path=\"../../../../../../../tmp/rssreader.x86_64\"\npatch_list=PoolStringArray(  )\nscript_export_mode=1\nscript_encryption_key=\"\"\n\n[preset.0.options]\n\ntexture_format/bptc=false\ntexture_format/s3tc=true\ntexture_format/etc=false\ntexture_format/etc2=false\ntexture_format/no_bptc_fallbacks=true\nbinary_format/64_bits=true\nbinary_format/embed_pck=false\ncustom_template/release=\"\"\ncustom_template/debug=\"\"\n"
  },
  {
    "path": "examples/rss-reader/game/lib/libmyproject.gdnlib",
    "content": "[general]\n\nsingleton=false\nload_once=true\nsymbol_prefix=\"godot_\"\nreloadable=false\n\n[entry]\n\nX11.64=\"res://lib/libmyproject.so\"\n"
  },
  {
    "path": "examples/rss-reader/game/project.godot",
    "content": "; Engine configuration file.\n; It's best edited using the editor UI and not directly,\n; since the parameters that go here are not all obvious.\n;\n; Format:\n;   [section] ; section goes between []\n;   param=value ; assign values to parameters\n\nconfig_version=4\n\n_global_script_classes=[  ]\n_global_script_class_icons={\n\n}\n\n[application]\n\nconfig/name=\"rss-reader\"\nrun/main_scene=\"res://Rss_reader.tscn\"\n\n[audio]\n\ndefault_bus_layout=\"\"\n\n[display]\n\nwindow/size/width=480\nwindow/size/height=720\nwindow/dpi/allow_hidpi=true\n\n[gdnative]\n\nsingletons=[  ]\n\n[gui]\n\ntheme/use_hidpi=true\n"
  },
  {
    "path": "examples/rss-reader/godot-haskell.nix",
    "content": "{ fetchFromGitHub, mkDerivation, aeson, ansi-wl-pprint, base, bytestring, c2hs\n, casing, colour, containers, hpack, lens, linear, mtl, parsec\n, parsers, stdenv, stm, template-haskell, text\n, unordered-containers, vector\n}:\nmkDerivation {\n  pname = \"godot-haskell\";\n  version = \"3.1.0.0\";\n  src = fetchFromGitHub {\n    owner = \"SimulaVR\";\n    repo = \"godot-haskell\";\n    rev = \"b423d4f2fa5a6a3dcfffb82bb36be571adb29d34\"; # godot-haskell rev\n    # Use nix-prefetch-git to get the hash\n    sha256 = \"0jh2j5rr90dqdxvcipygwnhhj7j2dj4zvm6gbdpg106ll60pyqrp\";\n    fetchSubmodules = true;\n  };\n  libraryHaskellDepends = [\n    aeson ansi-wl-pprint base bytestring casing colour containers lens\n    linear mtl parsec parsers stm template-haskell text\n    unordered-containers vector\n  ];\n  libraryToolDepends = [ c2hs hpack ];\n  doHaddock = false;\n  preConfigure = \"hpack\";\n  homepage = \"https://github.com/KaneTW/godot-haskell#readme\";\n  description = \"Haskell bindings for the Godot game engine API\";\n  license = stdenv.lib.licenses.bsd3;\n}\n\n\n"
  },
  {
    "path": "examples/rss-reader/hie.yaml",
    "content": "cradle:\n  stack:\n    - path: \"./src\"\n      component: \"myproject:lib\"\n\n    - path: \"./game\"\n      component: \"myproject:lib\"\n"
  },
  {
    "path": "examples/rss-reader/myproject.cabal",
    "content": "cabal-version: 1.12\n\n-- This file has been generated from package.yaml by hpack version 0.33.0.\n--\n-- see: https://github.com/sol/hpack\n--\n-- hash: b6a0d2a1fc09513a3765e90723389dc19ec4879f3963404979d2a68731de6d6e\n\nname:           myproject\nversion:        0.0.0.0\ndescription:    Please see the README on Github at <https://github.com/SimulaVR/godot-haskell/tree/master/demo#readme>\nhomepage:       https://github.com/SimulaVR/godot-haskell#readme\nbug-reports:    https://github.com/SimulaVR/godot-haskell/issues\nauthor:         Andrei Barbu\nmaintainer:     andrei@0xab.com\ncopyright:      Andrei Barbu 2019, 2021\nlicense:        BSD3\nlicense-file:   LICENSE\nbuild-type:     Simple\nextra-source-files:\n    ChangeLog.md\n    README.md\nforeign-library myproject\n  type: native-shared\n  other-modules: FLib\n  hs-source-dirs: ffi/flib\n  c-sources: ffi/cbits/flib.c\n  build-depends:\n      base >= 4.12 && <5\n    , godot-haskell\n    , myproject\n    , text\n  default-language: Haskell2010\n\nsource-repository head\n  type: git\n  location: https://github.com/SimulaVR/godot-haskell\n\nlibrary\n  exposed-modules:\n      Lib\n  other-modules:\n      Game.RSSReader\n      Project.Requirements\n      Project.Scenes\n      Project.Scenes.Rss_reader\n      Project.Support\n      Paths_myproject\n  hs-source-dirs:\n      src\n      game\n  default-extensions: FlexibleContexts MultiParamTypeClasses OverloadedStrings TemplateHaskell TypeApplications TypeFamilies DataKinds FlexibleInstances ScopedTypeVariables AllowAmbiguousTypes TypeOperators TupleSections\n  ghc-options: -Wall -Wno-orphans -O0\n  build-depends:\n      aeson\n    , base >=4.12 && <5\n    , containers\n    , directory\n    , extra\n    , godot-haskell\n    , lens\n    , linear\n    , monad-loops\n    , random\n    , strict-concurrency\n    , template-haskell\n    , text\n    , th-abstraction\n    , vector\n    , xeno\n  default-language: Haskell2010\n"
  },
  {
    "path": "examples/rss-reader/package.yaml",
    "content": "name: myproject\nversion: '0.0.0.0'\ndescription: Please see the README on Github at <https://github.com/SimulaVR/godot-haskell/tree/master/demo#readme>\nauthor: Andrei Barbu\nmaintainer: andrei@0xab.com\ncopyright: Andrei Barbu 2019, 2021\nlicense: BSD3\ngithub: SimulaVR/godot-haskell\nextra-source-files:\n  - ChangeLog.md\n  - README.md\ndependencies:\n  - base >=4.12 && <5\n  - godot-haskell\n  - linear\n  - random\n  - text\n  - vector\n  - strict-concurrency\n  - lens\n  - template-haskell\n  - th-abstraction\n  - containers\n  - extra\n  - monad-loops\n  - xeno\n  - aeson\n  - directory\nlibrary:\n  source-dirs:\n    - src\n    - game\n  default-extensions:\n    - FlexibleContexts\n    - MultiParamTypeClasses\n    - OverloadedStrings\n    - TemplateHaskell\n    - TypeApplications\n    - TypeFamilies\n    - DataKinds\n    - FlexibleInstances\n    - ScopedTypeVariables\n    - AllowAmbiguousTypes\n    - TypeOperators\n    - TupleSections\n  exposed-modules:\n    - Lib\n  ghc-options: -Wall -Wno-orphans -O0\n\nverbatim: |\n  foreign-library myproject\n    type: native-shared\n    other-modules: FLib\n    hs-source-dirs: ffi/flib\n    c-sources: ffi/cbits/flib.c\n    build-depends:\n        base >= 4.12 && <5\n      , godot-haskell\n      , myproject\n      , text\n    default-language: Haskell2010\n"
  },
  {
    "path": "examples/rss-reader/pinned-nixpkgs.nix",
    "content": "{}:\n\nlet\n  # 19.03-beta (25 feb)\n  rev = \"0c0954781e257b8b0dc49341795a2fe7d96945a3\"; # pinned-nixpkgs rev\n  pkgs = import (builtins.fetchTarball {\n      url = \"https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz\";\n    }) {};\nin\n  pkgs\n\n\n"
  },
  {
    "path": "examples/rss-reader/shell.nix",
    "content": "{ nixpkgs ? import ./pinned-nixpkgs.nix {}\n, compiler ? \"default\"\n, doBenchmark ? false }:\n\n\nlet\n\n  inherit (nixpkgs) pkgs;\n\n  haskellPackages = if compiler == \"default\"\n                       then pkgs.haskellPackages\n                       else pkgs.haskell.packages.${compiler};\n\n  f = { mkDerivation, stdenv, base, godot-haskell, linear, text , vector, stm }:\n    mkDerivation {\n      pname = \"myproject\";\n      version = \"3.1.0.0\";\n      src = ./.;\n      libraryHaskellDepends = [\n        base godot-haskell linear text vector stm\n      ];\n      libraryToolDepends = [];\n      homepage = \"https://github.com/abarbu/myproject#readme\";\n      license = stdenv.lib.licenses.bsd3;\n    };\n\n  variant = if doBenchmark then pkgs.haskell.lib.doBenchmark else pkgs.lib.id;\n\n  drv = variant (haskellPackages.callPackage f {\n      godot-haskell = haskellPackages.callPackage ./godot-haskell.nix {fetchFromGitHub = pkgs.fetchFromGitHub;};\n    });\n\nin\n\n  if pkgs.lib.inNixShell then drv.env else drv\n\n\n"
  },
  {
    "path": "examples/rss-reader/src/Game/RSSReader.hs",
    "content": "{-# LANGUAGE LambdaCase, FunctionalDependencies, DeriveGeneric, UndecidableInstances, ConstraintKinds #-}\nmodule Game.RSSReader where\nimport Control.Lens\nimport Control.Monad\nimport Foreign.Ptr\nimport Godot\nimport Godot.Core.HTTPClient as HTTPClient\nimport Godot.Core.OS as OS\nimport Godot.Core.ItemList as ItemList\nimport Godot.Core.HTTPRequest as HTTPRequest\nimport Godot.Core.TextEdit as TextEdit\nimport Godot.Core.LineEdit as LineEdit\nimport Godot.Core.LinkButton as LinkButton\nimport Godot.Core.Popup as Popup\nimport Godot.Gdnative\nimport Project.Scenes.Rss_reader()\nimport Project.Support\nimport qualified Xeno.DOM.Robust as X\nimport qualified Data.Text as T\nimport qualified Data.Text.Encoding as T\nimport Data.List\nimport Data.Maybe\nimport Data.Typeable\nimport GHC.Generics\nimport qualified Data.Aeson as A\nimport System.Directory\nimport qualified Godot.Core.CanvasItem as CanvasItem\n\ndata Settings = Settings { _url :: Text }\n   deriving (Generic, Show)\ninstance A.FromJSON Settings\ninstance A.ToJSON Settings\nmakeFieldsNoPrefix ''Settings\n\ndata Story = Story { _storyTitle :: T.Text\n                   , _storyDescription :: Maybe T.Text\n                   , _storyLink :: T.Text }\n  deriving Show\nmakeFields ''Story\n\ndata RSSReader = RSSReader\n  { _base :: Control\n  , _feed :: MVar [Story]\n  }\nmakeFieldsNoPrefix ''RSSReader\n\ninstance NodeInit RSSReader where\n  init base = RSSReader base <$> newMVar []\n\ninstance NodeMethod RSSReader \"_on_OpenButton_pressed\" '[] (IO ()) where\n  nodeMethod = populateEdit\n\ninstance NodeMethod RSSReader \"populateEdit\" '[] (IO ()) where\n  nodeMethod = populateEdit\n\ninstance NodeMethod RSSReader \"_on_HTTPRequest_request_completed\" [Int, Int, PoolStringArray, PoolByteArray] (IO ()) where\n  nodeMethod self _ _ _ body = do\n    t <- getNode' @\"TextEdit\" self\n    sz <- godot_pool_byte_array_size body\n    s <- (\\x -> godot_string_chars_to_utf8_with_len (castPtr x) sz) =<< godot_pool_byte_array_read_access_ptr =<< godot_pool_byte_array_read body\n    TextEdit.set_text t s\n    contents <- T.encodeUtf8 <$> fromLowLevel s\n    let stories = parseXML contents\n    lst <- getNode' @\"ItemList\" self\n    void $ swapMVar (self ^. feed) stories\n    mapM_ (\\s -> ItemList.add_item lst <$> toLowLevel (s ^. title) <*> pure Nothing <*> pure (Just True) & join) stories\n\ninstance NodeMethod RSSReader \"_on_ItemList_item_selected\" '[Int] (IO ()) where\n  nodeMethod self n = do\n    f <- readMVar (self ^. feed)\n    TextEdit.set_text <$> getNode' @\"DescriptionField\" self\n                      <*> toLowLevel (fromMaybe \"\" $ (f !! n) ^. description)\n                      & join\n    LinkButton.set_text <$> getNode' @\"LinkButton\" self\n                        <*> toLowLevel ((f !! n) ^. link)\n                        & join\n    pure ()\n\ninstance NodeMethod RSSReader \"_on_LinkButton_pressed\" '[] (IO ()) where\n  nodeMethod self = do\n    (Just os) <- getSingleton @OS\n    void $ OS.shell_open os =<< LinkButton.get_text =<< getNode' @\"LinkButton\" self\n\ninstance NodeMethod RSSReader \"_on_SettingsButton_pressed\" '[] (IO ()) where\n  nodeMethod self = do\n    d <- getNode' @\"SettingsDialog\" self\n    Popup.popup d Nothing\n\ninstance NodeMethod RSSReader \"_on_Settings_Clear_Button_pressed\" '[] (IO ()) where\n  nodeMethod self = LineEdit.set_text <$> getNode' @\"SettingsDialog/RSSURLText\" self\n                                      <*> toLowLevel \"\"\n                                       & join\n\ninstance NodeMethod RSSReader \"_on_RSSReader_ready\" '[] (IO ()) where\n  nodeMethod self = loadData self\n\ninstance NodeMethod RSSReader \"_on_SaveButton_pressed\" '[] (IO ()) where\n  nodeMethod self = do\n      saveData self\n      CanvasItem.hide =<< getNode' @\"SettingsDialog\" self\n      pure ()\n\nclearFields (self :: RSSReader) = do\n  void $ swapMVar (self ^. feed) []\n  ItemList.clear =<< getNode' @\"ItemList\" self\n  TextEdit.set_text <$> getNode' @\"DescriptionField\" self <*> toLowLevel \"\" & join\n  LinkButton.set_text <$> getNode' @\"LinkButton\" self <*> toLowLevel \"\" & join\n  pure ()\n\nsaveData self = do\n  putStrLn \"Saving data\"\n  (Just os) <- getSingleton @OS\n  d <- fromLowLevel =<< OS.get_user_data_dir os\n  t <- fromLowLevel =<< LineEdit.get_text =<< getNode' @\"SettingsDialog/RSSURLText\" self\n  A.encodeFile (T.unpack d <> \"/save_config.json\") (Settings t)\n\nloadData self = do\n  putStrLn \"Loading data\"\n  (Just os) <- getSingleton @OS\n  d <- fromLowLevel =<< OS.get_user_data_dir os\n  e <- doesFileExist (T.unpack d <> \"/save_config.json\")\n  when e $ do\n    r <- A.decodeFileStrict' (T.unpack d <> \"/save_config.json\")\n    case r of\n      Nothing -> pure ()\n      Just (s :: Settings) -> do\n        LineEdit.set_text <$> getNode' @\"SettingsDialog/RSSURLText\" self\n          <*> toLowLevel (s ^. url)\n          & join\n\nparseXML x = case X.parse x of\n            Right xml -> do\n              case X.children xml of\n                [chan] -> do\n                  mapMaybe unItem $ X.children chan\n                _ -> error \"Unknown RSS\"\n            Left a -> []\n  where head' (h:_) = Just h\n        head' _ = Nothing\n        byName name nodes = head' . nodeData =<< find (\\e -> X.name e == name) nodes\n        nodeData = mapMaybe (\\case\n                                X.Text t -> Just t\n                                X.CData t -> Just t\n                                _ -> Nothing) . X.contents\n        unItem item = let nodes = X.children item\n                      in do\n                         t <- byName \"title\" nodes\n                         l <- byName \"link\" nodes\n                         pure $ Story (T.decodeUtf8 t) (T.decodeUtf8 <$> byName \"description\" nodes) (T.decodeUtf8 l)\n\nnothing :: (Object :< a, Typeable a, AsVariant a) => IO a\nnothing = fromJust <$> tryCast (Object nullPtr)\n\npopulateEdit :: RSSReader -> IO ()\npopulateEdit self = do\n  url <- LineEdit.get_text =<< getNode' @\"SettingsDialog/RSSURLText\" self\n  void $ HTTPRequest.request <$> getNode' @\"HTTPRequest\" self\n                             <*> pure url\n                             <*> (Just <$> godot_pool_string_array_new)\n                             <*> pure (Just True)\n                             <*> pure (Just HTTPClient._METHOD_GET)\n                             <*> pure Nothing\n                             & join\n\nsetupNode ''RSSReader \"Rss_reader\" \"RSSReader\"\nderiveBase ''RSSReader\n"
  },
  {
    "path": "examples/rss-reader/src/Game/q",
    "content": "{-# LANGUAGE LambdaCase, FunctionalDependencies, DeriveGeneric, UndecidableInstances, ConstraintKinds #-}\nmodule Game.RSSReader where\nimport Control.Lens\nimport Control.Monad\nimport Foreign.Ptr\nimport Godot\nimport Godot.Core.HTTPClient as HTTPClient\nimport Godot.Core.OS as OS\nimport Godot.Core.ItemList as ItemList\nimport Godot.Core.HTTPRequest as HTTPRequest\nimport Godot.Core.TextEdit as TextEdit\nimport Godot.Core.LineEdit as LineEdit\nimport Godot.Core.LinkButton as LinkButton\nimport Godot.Core.Popup as Popup\nimport Godot.Gdnative\nimport Project.Scenes.Rss_reader()\nimport Project.Support\nimport qualified Xeno.DOM.Robust as X\nimport qualified Data.Text as T\nimport qualified Data.Text.Encoding as T\nimport Data.List\nimport Data.Maybe\nimport Data.Typeable\nimport GHC.Generics\nimport qualified Data.Aeson as A\nimport System.Directory\nimport qualified Godot.Core.CanvasItem as CanvasItem\n\ndata Settings = Settings { _url :: Text }\n   deriving (Generic, Show)\ninstance A.FromJSON Settings\ninstance A.ToJSON Settings\nmakeFieldsNoPrefix ''Settings\n\ndata Story = Story { _storyTitle :: T.Text\n                   , _storyDescription :: Maybe T.Text\n                   , _storyLink :: T.Text }\n  deriving Show\nmakeFields ''Story\n\ndata RSSReader = RSSReader\n  { _base :: Control\n  , _feed :: MVar [Story]\n  }\nmakeFieldsNoPrefix ''RSSReader\n\ninstance NodeInit RSSReader where\n  init base = RSSReader base <$> newMVar []\n\ninstance NodeMethod RSSReader \"_on_OpenButton_pressed\" '[] (IO ()) where\n  nodeMethod = populateEdit\n\ninstance NodeMethod RSSReader \"populateEdit\" '[] (IO ()) where\n  nodeMethod = populateEdit\n\ninstance NodeMethod RSSReader \"_on_HTTPRequest_request_completed\" [Int, Int, PoolStringArray, PoolByteArray] (IO ()) where\n  nodeMethod self _ _ _ body = do\n    t <- getNode' @\"TextEdit\" self\n    sz <- godot_pool_byte_array_size body\n    s <- (\\x -> godot_string_chars_to_utf8_with_len (castPtr x) sz) =<< godot_pool_byte_array_read_access_ptr =<< godot_pool_byte_array_read body\n    TextEdit.set_text t s\n    contents <- T.encodeUtf8 <$> fromLowLevel s\n    let stories = parseXML contents\n    lst <- getNode' @\"ItemList\" self\n    void $ swapMVar (self ^. feed) stories\n    mapM_ (\\s -> ItemList.add_item lst <$> toLowLevel (s ^. title) <*> pure Nothing <*> pure (Just True) & join) stories\n\ninstance NodeMethod RSSReader \"_on_ItemList_item_selected\" '[Int] (IO ()) where\n  nodeMethod = on_ItemList_item_selected\n\ninstance NodeMethod RSSReader \"_on_LinkButton_pressed\" '[] (IO ()) where\n  nodeMethod = on_LinkButton_pressed\n\ninstance NodeMethod RSSReader \"_on_SettingsButton_pressed\" '[] (IO ()) where\n  nodeMethod = on_SettingsButton_pressed\n\ninstance NodeMethod RSSReader \"_on_Settings_Clear_Button_pressed\" '[] (IO ()) where\n  nodeMethod = on_Settings_Clear_Button_pressed\n\ninstance NodeMethod RSSReader \"_on_RSSReader_ready\" '[] (IO ()) where\n  nodeMethod = on_RSSReader_ready\n\ninstance NodeMethod RSSReader \"_on_SaveButton_pressed\" '[] (IO ()) where\n  nodeMethod = on_SaveButton_pressed\n\non_RSSReader_ready self = do\n  loadData self\n\non_SaveButton_pressed (self :: RSSReader) = do\n  saveData self\n  CanvasItem.hide =<< getNode' @\"SettingsDialog\" self\n  pure ()\n\nclearFields (self :: RSSReader) = do\n  void $ swapMVar (self ^. feed) []\n  ItemList.clear =<< getNode' @\"ItemList\" self\n  TextEdit.set_text <$> getNode' @\"DescriptionField\" self <*> toLowLevel \"\" & join\n  LinkButton.set_text <$> getNode' @\"LinkButton\" self <*> toLowLevel \"\" & join\n  pure ()\n\nsaveData self = do\n  putStrLn \"Saving data\"\n  (Just os) <- getSingleton @OS\n  d <- fromLowLevel =<< OS.get_user_data_dir os\n  t <- fromLowLevel =<< LineEdit.get_text =<< getNode' @\"SettingsDialog/RSSURLText\" self\n  A.encodeFile (T.unpack d <> \"/save_config.json\") (Settings t)\n\nloadData self = do\n  putStrLn \"Loading data\"\n  (Just os) <- getSingleton @OS\n  d <- fromLowLevel =<< OS.get_user_data_dir os\n  e <- doesFileExist (T.unpack d <> \"/save_config.json\")\n  when e $ do\n    r <- A.decodeFileStrict' (T.unpack d <> \"/save_config.json\")\n    case r of\n      Nothing -> pure ()\n      Just (s :: Settings) -> do\n        LineEdit.set_text <$> getNode' @\"SettingsDialog/RSSURLText\" self\n          <*> toLowLevel (s ^. url)\n          & join\n\non_Settings_Clear_Button_pressed :: RSSReader -> IO ()\non_Settings_Clear_Button_pressed self = do\n  LineEdit.set_text <$> getNode' @\"SettingsDialog/RSSURLText\" self\n                    <*> toLowLevel \"\"\n                    & join\n\non_SettingsButton_pressed :: RSSReader -> IO ()\non_SettingsButton_pressed self = do\n  d <- getNode' @\"SettingsDialog\" self\n  Popup.popup d Nothing\n\non_LinkButton_pressed :: RSSReader -> IO ()\non_LinkButton_pressed self = do\n  (Just os) <- getSingleton @OS\n  void $ OS.shell_open os =<< LinkButton.get_text =<< getNode' @\"LinkButton\" self\n\non_ItemList_item_selected :: RSSReader -> Int -> IO ()\non_ItemList_item_selected self n = do\n  f <- readMVar (self ^. feed)\n  TextEdit.set_text <$> getNode' @\"DescriptionField\" self\n                    <*> toLowLevel (fromMaybe \"\" $ (f !! n) ^. description)\n                    & join\n  LinkButton.set_text <$> getNode' @\"LinkButton\" self\n                      <*> toLowLevel ((f !! n) ^. link)\n                      & join\n  pure ()\n\nparseXML x = case X.parse x of\n            Right xml -> do\n              case X.children xml of\n                [chan] -> do\n                  mapMaybe unItem $ X.children chan\n                _ -> error \"Unknown RSS\"\n            Left a -> []\n  where head' (h:_) = Just h\n        head' _ = Nothing\n        byName name nodes = head' . nodeData =<< find (\\e -> X.name e == name) nodes\n        nodeData = mapMaybe (\\case\n                                X.Text t -> Just t\n                                X.CData t -> Just t\n                                _ -> Nothing) . X.contents\n        unItem item = let nodes = X.children item\n                      in do\n                         t <- byName \"title\" nodes\n                         l <- byName \"link\" nodes\n                         pure $ Story (T.decodeUtf8 t) (T.decodeUtf8 <$> byName \"description\" nodes) (T.decodeUtf8 l)\n\nnothing :: (Object :< a, Typeable a, AsVariant a) => IO a\nnothing = fromJust <$> tryCast (Object nullPtr)\n\non_HTTPRequest_request_completed :: RSSReader -> Int -> Int -> PoolStringArray -> PoolByteArray -> IO ()\non_HTTPRequest_request_completed self _ _ _ body = do\n  t <- getNode' @\"TextEdit\" self\n  sz <- godot_pool_byte_array_size body\n  s <- (\\x -> godot_string_chars_to_utf8_with_len (castPtr x) sz) =<< godot_pool_byte_array_read_access_ptr =<< godot_pool_byte_array_read body\n  TextEdit.set_text t s\n  contents <- T.encodeUtf8 <$> fromLowLevel s\n  let stories = parseXML contents\n  lst <- getNode' @\"ItemList\" self\n  void $ swapMVar (self ^. feed) stories\n  mapM_ (\\s -> ItemList.add_item lst <$> toLowLevel (s ^. title) <*> pure Nothing <*> pure (Just True) & join) stories\n\npopulateEdit :: RSSReader -> IO ()\npopulateEdit self = do\n  url <- LineEdit.get_text =<< getNode' @\"SettingsDialog/RSSURLText\" self\n  void $ HTTPRequest.request <$> getNode' @\"HTTPRequest\" self\n                             <*> pure url\n                             <*> (Just <$> godot_pool_string_array_new)\n                             <*> pure (Just True)\n                             <*> pure (Just HTTPClient._METHOD_GET)\n                             <*> pure Nothing\n                             & join\n\nsetupNode ''RSSReader \"Rss_reader\" \"RSSReader\"\nderiveBase ''RSSReader\n"
  },
  {
    "path": "examples/rss-reader/src/Lib.hs",
    "content": "module Lib (exports) where\nimport Godot\nimport Project.Support\nimport Project.Requirements\nimport Game.RSSReader\n\nexports :: GdnativeHandle -> IO ()\nexports = registerAll' @Nodes @'[RSSReader]\n"
  },
  {
    "path": "examples/rss-reader/src/Project/Requirements.hs",
    "content": "-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\n\nmodule Project.Requirements where\nimport Project.Support\n\ntype Nodes = '[OneResourceNode \"Rss_reader\" \"RSSReader\"]\n"
  },
  {
    "path": "examples/rss-reader/src/Project/Scenes/Rss_reader.hs",
    "content": "-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\n\n{-# LANGUAGE FlexibleContexts, FunctionalDependencies, MultiParamTypeClasses,\n  UndecidableInstances, OverloadedStrings, TemplateHaskell, TypeApplications,\n  TypeFamilies, DataKinds, TypeOperators, FlexibleInstances, RankNTypes,\n  AllowAmbiguousTypes, ScopedTypeVariables, DerivingStrategies,\n  GeneralizedNewtypeDeriving, LambdaCase #-}\n\nmodule Project.Scenes.Rss_reader where\nimport Project.Support\nimport Godot\nimport GHC.TypeLits\n\nimport Godot.Core.Button()\nimport Godot.Core.TextEdit()\nimport Godot.Core.HTTPRequest()\nimport Godot.Core.ItemList()\nimport Godot.Core.Label()\nimport Godot.Core.LinkButton()\nimport Godot.Core.Control()\nimport Godot.Core.LineEdit()\nimport Godot.Core.WindowDialog()\n\ninstance SceneResourcePath \"Rss_reader\" where\n  sceneResourcePath = \"res://Rss_reader.tscn\"\n\n\ninstance SceneRoot \"Rss_reader\" where\n  type SceneRootNode \"Rss_reader\" = \"RSSReader\"\n\n\ninstance SceneNode        \"Rss_reader\" \"SettingsDialog/Button\" where\n  type SceneNodeType      \"Rss_reader\" \"SettingsDialog/Button\" = Button\n  type SceneNodeName      \"Rss_reader\" \"SettingsDialog/Button\" = \"Button\"\n  type SceneNodeIsHaskell \"Rss_reader\" \"SettingsDialog/Button\" = 'Nothing\n\n\ninstance SceneNode        \"Rss_reader\" \"DescriptionField\" where\n  type SceneNodeType      \"Rss_reader\" \"DescriptionField\" = TextEdit\n  type SceneNodeName      \"Rss_reader\" \"DescriptionField\" = \"DescriptionField\"\n  type SceneNodeIsHaskell \"Rss_reader\" \"DescriptionField\" = 'Nothing\n\n\ninstance SceneNode        \"Rss_reader\" \"HTTPRequest\" where\n  type SceneNodeType      \"Rss_reader\" \"HTTPRequest\" = HTTPRequest\n  type SceneNodeName      \"Rss_reader\" \"HTTPRequest\" = \"HTTPRequest\"\n  type SceneNodeIsHaskell \"Rss_reader\" \"HTTPRequest\" = 'Nothing\n\n\ninstance SceneNode        \"Rss_reader\" \"ItemList\" where\n  type SceneNodeType      \"Rss_reader\" \"ItemList\" = ItemList\n  type SceneNodeName      \"Rss_reader\" \"ItemList\" = \"ItemList\"\n  type SceneNodeIsHaskell \"Rss_reader\" \"ItemList\" = 'Nothing\n\n\ninstance SceneNode        \"Rss_reader\" \"SettingsDialog/Label\" where\n  type SceneNodeType      \"Rss_reader\" \"SettingsDialog/Label\" = Label\n  type SceneNodeName      \"Rss_reader\" \"SettingsDialog/Label\" = \"Label\"\n  type SceneNodeIsHaskell \"Rss_reader\" \"SettingsDialog/Label\" = 'Nothing\n\n\ninstance SceneNode        \"Rss_reader\" \"LinkButton\" where\n  type SceneNodeType      \"Rss_reader\" \"LinkButton\" = LinkButton\n  type SceneNodeName      \"Rss_reader\" \"LinkButton\" = \"LinkButton\"\n  type SceneNodeIsHaskell \"Rss_reader\" \"LinkButton\" = 'Nothing\n\n\ninstance SceneNode        \"Rss_reader\" \"OpenButton\" where\n  type SceneNodeType      \"Rss_reader\" \"OpenButton\" = Button\n  type SceneNodeName      \"Rss_reader\" \"OpenButton\" = \"OpenButton\"\n  type SceneNodeIsHaskell \"Rss_reader\" \"OpenButton\" = 'Nothing\n\n\ninstance SceneNode        \"Rss_reader\" \"RSSReader\" where\n  type SceneNodeType      \"Rss_reader\" \"RSSReader\" = Control\n  type SceneNodeName      \"Rss_reader\" \"RSSReader\" = \"RSSReader\"\n  type SceneNodeIsHaskell \"Rss_reader\" \"RSSReader\" = 'Just '(\"Rss_reader\", \"RSSReader\")\n\n\ninstance SceneNode        \"Rss_reader\" \"SettingsDialog/RSSURLText\" where\n  type SceneNodeType      \"Rss_reader\" \"SettingsDialog/RSSURLText\" = LineEdit\n  type SceneNodeName      \"Rss_reader\" \"SettingsDialog/RSSURLText\" = \"RSSURLText\"\n  type SceneNodeIsHaskell \"Rss_reader\" \"SettingsDialog/RSSURLText\" = 'Nothing\n\n\ninstance SceneNode        \"Rss_reader\" \"SettingsDialog/SaveButton\" where\n  type SceneNodeType      \"Rss_reader\" \"SettingsDialog/SaveButton\" = Button\n  type SceneNodeName      \"Rss_reader\" \"SettingsDialog/SaveButton\" = \"SaveButton\"\n  type SceneNodeIsHaskell \"Rss_reader\" \"SettingsDialog/SaveButton\" = 'Nothing\n\n\ninstance SceneNode        \"Rss_reader\" \"SettingsButton\" where\n  type SceneNodeType      \"Rss_reader\" \"SettingsButton\" = Button\n  type SceneNodeName      \"Rss_reader\" \"SettingsButton\" = \"SettingsButton\"\n  type SceneNodeIsHaskell \"Rss_reader\" \"SettingsButton\" = 'Nothing\n\n\ninstance SceneNode        \"Rss_reader\" \"SettingsDialog\" where\n  type SceneNodeType      \"Rss_reader\" \"SettingsDialog\" = WindowDialog\n  type SceneNodeName      \"Rss_reader\" \"SettingsDialog\" = \"SettingsDialog\"\n  type SceneNodeIsHaskell \"Rss_reader\" \"SettingsDialog\" = 'Nothing\n\n\ninstance SceneNode        \"Rss_reader\" \"TextEdit\" where\n  type SceneNodeType      \"Rss_reader\" \"TextEdit\" = TextEdit\n  type SceneNodeName      \"Rss_reader\" \"TextEdit\" = \"TextEdit\"\n  type SceneNodeIsHaskell \"Rss_reader\" \"TextEdit\" = 'Nothing\n\n\ninstance SceneConnection \"Rss_reader\" \"SettingsDialog/SaveButton\" \"pressed\" \"RSSReader\" \"_on_SaveButton_pressed\"\n\n\ninstance SceneConnection \"Rss_reader\" \"SettingsDialog/Button\" \"pressed\" \"RSSReader\" \"_on_Settings_Clear_Button_pressed\"\n\n\ninstance SceneConnection \"Rss_reader\" \"SettingsButton\" \"pressed\" \"RSSReader\" \"_on_SettingsButton_pressed\"\n\n\ninstance SceneConnection \"Rss_reader\" \"LinkButton\" \"pressed\" \"RSSReader\" \"_on_LinkButton_pressed\"\n\n\ninstance SceneConnection \"Rss_reader\" \"ItemList\" \"item_selected\" \"RSSReader\" \"_on_ItemList_item_selected\"\n\n\ninstance SceneConnection \"Rss_reader\" \"HTTPRequest\" \"request_completed\" \"RSSReader\" \"_on_HTTPRequest_request_completed\"\n\n\ninstance SceneConnection \"Rss_reader\" \"OpenButton\" \"pressed\" \"RSSReader\" \"_on_OpenButton_pressed\"\n\n\ninstance SceneConnection \"Rss_reader\" \"RSSReader\" \"ready\" \"RSSReader\" \"_on_RSSReader_ready\"\n\n"
  },
  {
    "path": "examples/rss-reader/src/Project/Scenes.hs",
    "content": "-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\n\nmodule Project.Scenes (module M) where\nimport qualified Project.Scenes.Rss_reader as M\n\n"
  },
  {
    "path": "examples/rss-reader/src/Project/Support.hs",
    "content": "-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\n\n{-# LANGUAGE FlexibleContexts, FunctionalDependencies, MultiParamTypeClasses,\n  UndecidableInstances, OverloadedStrings, TemplateHaskell, TypeApplications,\n  TypeFamilies, DataKinds, TypeOperators, FlexibleInstances, RankNTypes,\n  AllowAmbiguousTypes, ScopedTypeVariables, DerivingStrategies,\n  GeneralizedNewtypeDeriving, LambdaCase #-}\n\n{-# OPTIONS_GHC -Wno-name-shadowing #-}\n\nmodule Project.Support where\nimport Godot.Core.Object\nimport Godot.Internal.Dispatch\nimport Godot.Gdnative.Internal.Types\nimport Data.Typeable\nimport qualified Data.Text as T\nimport qualified Data.Map as M\nimport Language.Haskell.TH\nimport Language.Haskell.TH.Datatype\nimport Control.Lens\nimport Control.Monad\nimport Godot\nimport Godot.Gdnative\nimport GHC.TypeLits\nimport Data.List\nimport Data.Maybe\nimport Data.Coerce\nimport Godot.Core.ResourceLoader\nimport Godot.Core.PackedScene\n\n-- * Helper to keep Haskell types in sync with the Godot project.\nnewtype PackedScene' (scene :: Symbol) = PackedScene' PackedScene\n                        deriving newtype AsVariant\ninstance HasBaseClass (PackedScene' scene) where\n        type BaseClass (PackedScene' scene) = PackedScene\n        super = coerce\nderiveBase ''PackedScene'\n\n-- | Use this to register all of your classes, it makes sure that you don't\n-- forget a class that Godot needs.\n-- \n-- exports :: GdnativeHandle -> IO ()\n-- exports desc = registerAll' @Nodes @'[HUD, Main, Mob, Player] desc\nregisterAll' :: forall (res :: [*]) (ns :: [*]). ImplementedInHaskell res ns => GdnativeHandle -> IO ()\nregisterAll' = fill @res @ns\n\n-- | A safe version of getNode; gives you back the Godot object\n-- getNode' @\"MobPath/MobSpawnLocation\" self\ngetNode' :: forall label b cls scene name. (Object :< cls, Node :< cls,\n                                      Node :< b,\n                                      NodeInScene scene name cls,\n                                      SceneNode scene label,\n                                      SceneNodeType scene label ~ b,\n                                      KnownSymbol label)\n         => cls -> IO b\ngetNode' o = getNode @(SceneNodeType scene label) o (T.pack $ symbolVal (Proxy @label))\n\n-- | A safe version of getNodeNativeScript; gives you back the Haskell object\n-- getNodeNativeScript' @\"HUD\" self\ngetNodeNativeScript' :: forall label b cls scene name scene' label'.\n                        (NativeScript b, Node :< cls, Object :< cls, NodeInScene scene name cls,\n                         SceneNodeIsHaskell scene label ~ 'Just '(scene', label'),\n                         NodeInScene scene' label' b,\n                         KnownSymbol label)\n                     => cls -> IO b\ngetNodeNativeScript' cls = getNodeNativeScript @b cls (T.pack $ symbolVal (Proxy @label))\n\n-- | A safe version of emit_signal; will error at compile time if the signal doesn't exist\n-- emit_signal' @\"hit\" self []\n-- TODO We don't check arguments yet!\nemit_signal' :: forall label args cls.\n               (Object :< cls, Object :< cls, NodeSignal cls label args, KnownSymbol label)\n             => cls -> [Variant 'GodotTy] -> IO ()\nemit_signal' cls args = do\n  name <- toLowLevel (T.pack $ symbolVal (Proxy @label))\n  emit_signal cls name args\n\n-- | A safe version of await; will error at compile time if the signal and nodes don't exist\n-- await' @\"MessageTimer\" @\"timeout\" self $ \\self' -> pure ()\nawait' :: forall (label :: Symbol) (signal :: Symbol) a b cls scene name.\n         (NodeInScene scene name cls, NativeScript cls, KnownSymbol label, KnownSymbol signal,\n          SceneNode scene label, Node :< cls, AsVariant a, Node :< SceneNodeType scene label,\n          NodeSignal b signal '[], SceneNodeType scene label ~ b)\n       => cls -> (cls -> IO a) -> IO ()\nawait' o f = do\n  n <- getNode' @label o\n  await o n (T.pack $ symbolVal (Proxy @signal)) f\n\n-- | Preload a scene so you can instantiate it later.\n-- Use this when the scene is known ahead of time. Store scenes in as @PackedScene' \"SceneName\"@\npreloadScene :: forall scene. (KnownSymbol scene, SceneResourcePath scene) => IO (PackedScene' scene)\npreloadScene = do\n  Just r <- getSingleton @ResourceLoader\n  path <- toLowLevel $ sceneResourcePath @scene\n  PackedScene' <$> (tryCast' =<< load r path Nothing Nothing)\n\n-- | Create an instance of a scene from a @PackedScene' \"SceneName\"@\n-- Makes sure that you are getting the type of the scene root.\nsceneInstance :: forall scene o. (Node :< o, Typeable o, AsVariant o, SceneNodeType scene (SceneRootNode scene) ~ o) => PackedScene' scene -> IO o\nsceneInstance e = tryCast' =<< instance' e Nothing\n\n-- | Combines nodeMethod with getNode' to call functions in a type-safe way\n-- Provides no additional safety compared to using the two separately, but does clean up code a bit.\n-- For example: fn @\"MyNode\" @\"hide\" self\nfn :: forall (node :: Symbol) (func :: Symbol) scene name cls args ret b.\n         (Object :< cls, Node :< cls,\n           Node :< SceneNodeType scene node,\n           NodeInScene scene name cls, SceneNode scene node,\n           NodeMethodSuper (SceneNodeType scene node) func args ret,\n           ListToFun args ret ~ IO b, KnownSymbol node) => cls -> IO b\nfn self = nodeMethod' @_ @func =<< getNode' @node self\n\n-- | Get the file path to the scene\nclass SceneResourcePath (scene :: Symbol) where\n  sceneResourcePath :: forall scene. T.Text\n\n-- * Internal helpers: You won't use these\n\n-- | The root node of a scene\nclass SceneRoot (scene :: Symbol) where\n  type SceneRootNode scene :: Symbol\n\n-- | A node in the scene, we know its type and its name, @s@ is the path relate\n-- to the scene\nclass (Typeable (SceneNodeType scene s),\n       AsVariant (SceneNodeType scene s),\n       Object :< SceneNodeType scene s) => SceneNode (scene :: Symbol) (s :: Symbol) where\n  type SceneNodeType scene s :: *\n  type SceneNodeName scene s :: Symbol\n  type SceneNodeIsHaskell scene s :: Maybe (Symbol, Symbol)\n\n-- | You declare this for your types. You offer up a haskell type, @n@, for the\n-- node. This class verifies that your base class is correct.\nclass (HasBaseClass n, BaseClass n ~ SceneNodeType scene s) =>\n      NodeInScene (scene :: Symbol) (s :: Symbol) n | scene s -> n, n -> scene s\n\n-- | A connection between nodes in a scene. @from@ and @to@ are paths.\n-- It connects @signal@ in @from@ to @method@ in @to@.\nclass SceneConnection (scene :: Symbol) (from :: Symbol) (signal :: Symbol) (to :: Symbol) (method :: Symbol)\n\n-- | Internal, just for convenience\ndata OneResourceNode (resource :: Symbol) (name :: Symbol)\n\n-- | Internal. Don't touch this and don't make instances of it. It's the\n-- workhorse for making sure that you are implementing all of the classes that\n-- Godot needs, nothing more and nothing less.\nclass ImplementedInHaskell (a :: [*]) (b :: [*]) where\n  fill :: GdnativeHandle -> IO ()\n\ninstance ImplementedInHaskell '[] '[] where\n  fill _ = pure ()\n\nregisterOne :: forall ty. (NativeScript ty, AsVariant (BaseClass ty)) => GdnativeHandle -> IO ()\nregisterOne desc = registerClass $ RegClass desc $ classInit @ty\n\ninstance (NodeInScene scene name n,\n          NativeScript n, AsVariant (BaseClass n),\n          ImplementedInHaskell t t',\n          SceneNodeIsHaskell scene name ~ 'Just '(resource, name))\n          => ImplementedInHaskell (OneResourceNode resource name ': t) (n ': t') where\n  fill handle = do\n    registerOne @n handle\n    fill @t @t' handle\n\n-- | Create a signal\n-- TODO args ~ '[] is temproary, we need signeltons to reflect this into a runtime value\nsignal' :: forall cls label args.\n          (NodeSignal cls label args, KnownSymbol label, args ~ '[])\n        => (Text, [SignalArgument])\nsignal' = signal (T.pack $ symbolVal (Proxy @label)) []\n\ncreateMVarProperty' :: (Typeable ty, AsVariant ty) => Text\n                    -> (node -> MVar ty)\n                    -- ^ We typically can't do IO (for initialisation) when calling this, in\n                    -- which case we need to annotate the type without providing a value.\n                    -> Either VariantType ty\n                    -> (node -> IO ty\n                      ,node -> ty -> IO ()\n                      ,Maybe (Object -> node -> IO GodotVariant\n                             ,Object -> node -> GodotVariant -> IO ()\n                             ,PropertyAttributes))\ncreateMVarProperty' name fieldName tyOrVal =\n  (readMVar . fieldName,\n   \\c t -> propertySetter p undefined c =<< toGodotVariant t,\n   Just (propertyGetter p, propertySetter p, propertyAttrs p))\n  where p = createMVarProperty name fieldName tyOrVal\n\nappsT :: Type -> [Type] -> Type\nappsT t [] = t\nappsT t (x:xs) = appsT (AppT t x) xs\n\n-- | Verify that the signal connects to an endpoint that exists and has the right type.\nwitnessConnection :: forall (scene :: Symbol) (from :: Symbol) (signal :: Symbol) (to :: Symbol) (method :: Symbol) parent sigTy hTy.\n                    (SceneNode scene to,\n                      NodeSignal parent signal sigTy,\n                      -- TODO This the check unsound, but SceneNodeType isn't right for this constraint. What is?\n                      -- The warning produced because 'from' is not used is a reminder of this issue.\n                      -- parent :< SceneNodeType scene from,\n                      NodeMethod hTy method sigTy (IO ()),\n                      NodeInScene scene to hTy) => ()\nwitnessConnection = ()\n\n-- | Sets up a class\nclass NodeInit n where\n  init :: BaseClass n -> IO n\n\n-- | You never implement this. It's a helper so that we can have a more\n-- polymorphic call to nodeMethod which will work when the method is implemneted\n-- for any parent of the current node.\nclass NodeMethodSuper node (name :: Symbol) (args :: [*]) (ret :: *) | node name -> args, node name -> ret where\n  nodeMethod' :: node -> ListToFun args ret\n\n-- | An instance that supports calling nodeMethod' on your parents This can lead\n-- to infinite loops in the type checker on error, so we isolate it in\n-- NodeMethodSuper instead of NodeMethod.\ninstance {-# OVERLAPPABLE #-} (NodeMethod (BaseClass node) name arg ret, HasBaseClass node)\n    => NodeMethodSuper node name arg ret where\n  nodeMethod' = nodeMethod' @node @name @arg @ret\n\nmkProperty' :: forall node (name :: Symbol) ty. (NodeProperty node name ty 'False, KnownSymbol name) => ClassProperty node\nmkProperty' = ClassProperty (T.pack $ symbolVal (Proxy @name)) a s g\n  where (_,_,Just (g,s,a)) = nodeProperty @node @name @ty @'False\n\n-- | You should use this as:\n--   setupNode ''Ty\n--   deriveBase ''Ty\n-- This will instantiate everything that your Object needs\nsetupNode :: Name -> String -> String -> Q [Dec]\nsetupNode ty scene sceneNode = do\n  -- Collect information about all scenes\n  tree         <- map unTree . classInstances <$> reify ''(:<)\n  sceneRoots   <- M.fromList . map unSceneRootNode . familyInstances <$> reify ''SceneRootNode\n  sceneNodes   <- map unSceneNodeType . familyInstances <$> reify ''SceneNodeType\n  haskellNodes <- map unNodeInScene . classInstances <$> reify ''NodeInScene\n  allSignals   <- map unNodeSignal . classInstances <$> reify ''NodeSignal\n  -- Collect information about our node\n  rdt <- reifyDatatype ty\n  let base = case datatypeCons rdt of\n                    (c:_) -> case (constructorFields c, constructorVariant c) of\n                              (ConT baseTy:_, RecordConstructor (baseFn:_)) -> Just (baseTy, baseFn)\n                              _ -> Nothing\n                    _ -> Nothing\n  --\n  methods    <- filter (\\i -> i^._1 == ty) . mapMaybe unNodeMethod . classInstances <$> reify ''NodeMethod\n  properties <- filter (\\i -> i^._1 == ty) . mapMaybe unNodeProperty . classInstances <$> reify ''NodeProperty\n  let signals = filter (\\i -> i^._1 == ty) allSignals\n  connections <- filter (\\i -> i^._1 == scene && i^._4 == sceneNode) . map unConnect . classInstances <$> reify ''SceneConnection\n  -- Helpers\n  let parentsOf cls = map snd $ filter (\\(c,_) -> cls == c) tree\n  let nodeToType :: String -> String -> Name\n      nodeToType scene node = case (hty, ty ^. _4) of\n                                (Just t, _) -> t\n                                (_, Nothing) -> ty ^. _3\n                                (_, Just scene') -> case M.lookup scene' sceneRoots of\n                                                Nothing -> error $ \"Looking up the root of a scene that is lacking one. This is a bug. \" ++ show (scene', scene, node)\n                                                Just node' -> nodeToType scene' node'\n        where ty  = fromJust $ find (\\n -> n^._1 == scene && n^._2 == node) sceneNodes\n              hty = (^._3) <$> find (\\n -> n^._1 == scene && n^._2 == node) haskellNodes\n  let resolveSignalActualClass scene from signal =\n        case mapMaybe (\\p -> (p,) <$> find (\\s -> s^._2 == signal && s^._1 == p) allSignals) $ parentsOf (nodeToType scene from) of\n          -- The root issue is that the signal might not yet exist.\n          -- If witnessConnection was not unsound, this would not be needed as the error would happen later.\n           [] -> error $ \"Class \" ++ show from ++ \" used in scene \" ++ show scene ++ \" is lacking a signal named \" ++ show signal ++ \"\\n\" ++ show (nodeToType scene from) ++ \"\\n\" ++ show (parentsOf (nodeToType scene from))\n           (h:_) -> h ^. _1\n\n  -- Debug\n  when False $ runIO $ do\n    putStrLn \"Regenerating ..\"\n    print rdt\n    putStrLn \"\\nScene roots:\"\n    print sceneRoots\n    putStrLn \"\\nScene nodes types:\"\n    mapM_ print sceneNodes\n    putStrLn \"\\nMethods:\"\n    mapM_ print methods\n    putStrLn \"\\nProperties:\"\n    mapM_ print properties\n    putStrLn \"\\nSignals:\"\n    mapM_ print allSignals\n    mapM_ print signals\n    putStrLn \"\\nConnections:\"\n    mapM_ print connections\n    putStrLn \"\\nHaskell nodes:\"\n    mapM_ print haskellNodes\n\n  -- Generate code\n  bi <- case base of\n    Just (baseTy, baseFn) ->\n      [d|instance HasBaseClass $(pure $ PromotedT ty) where\n          type BaseClass $(pure $ PromotedT ty) = $(pure $ PromotedT baseTy)\n          super = $(pure $ VarE baseFn)|]\n    _ -> error \"setupNode can only handle records whose first field is the Godot base class. You can still interface with Godot, but you will need to set things up manually.\"\n  nis <- [d|instance NodeInScene $(pure $ LitT $ StrTyLit scene) $(pure $ LitT $ StrTyLit sceneNode) $(pure $ PromotedT ty)|]\n  ns <- [d|instance NativeScript $(pure $ PromotedT ty) where\n            classInit = Project.Support.init\n            classMethods = $(ListE <$> mapM (\\(t,n,argTy,_) ->\n                     let m = case nrArguments argTy of\n                                  0 -> [e|method0|]\n                                  1 -> [e|method1|]\n                                  2 -> [e|method2|]\n                                  3 -> [e|method3|]\n                                  4 -> [e|method4|]\n                                  5 -> [e|method5|]\n                                  n -> error $ \"More arguments than we currently impelement, look for 'method5' for more info \" ++ show  n\n                     in [e|$m $(pure $ LitE $ StringL n) (nodeMethod @ $(pure $ PromotedT t) @ $(pure $ LitT $ StrTyLit n))|]) methods)\n            classProperties = $(ListE <$> mapM (\\(name,prop,_,_) -> [e|mkProperty' @ $(pure $ PromotedT name) @ $(pure $ LitT $ StrTyLit prop) |]) properties)\n            classSignals = $(ListE <$> mapM (\\(ty,name,_) -> [e|signal' @ $(pure $ PromotedT ty) @ $(pure $ LitT $ StrTyLit name)|]) signals)|]\n  let cn = mkName $ \"witness_connections_\" ++ nameBase ty\n  ws <- (:) <$> (cn `sigD` [t| [()] |]) <*>\n       [d|$(varP cn) =\n             $(ListE <$> mapM (\\(scene,from,signal,to,method) ->\n                    [e|witnessConnection\n                        @ $(pure $ LitT $ StrTyLit scene)  @ $(pure $ LitT $ StrTyLit from)\n                        @ $(pure $ LitT $ StrTyLit signal) @ $(pure $ LitT $ StrTyLit to)\n                        @ $(pure $ LitT $ StrTyLit method)\n                        @ $(pure $ PromotedT $ resolveSignalActualClass scene from signal)\n                    |]) connections)|]\n  pure $ bi <> nis <> ns <> ws\n\n  where\n      unTree (InstanceD Nothing [] (AppT (AppT _ parent) child) []) = (unName child, unName parent)\n      unTree p = error $ \"I don't understand this parent \" ++ show p\n      unName (ConT x) = x\n      unName (AppT (ConT x) _) = x\n      unName x = error $ \"I don't know how to extract the name of this type: \" ++ show x\n      unSceneRootNode (TySynInstD (TySynEqn Nothing (AppT _ (LitT (StrTyLit scene))) (LitT (StrTyLit node)))) = (scene,node)\n      unSceneRootNode x = error $ \"Don't know how unpack this SceneRootNode: \" ++ show x\n      unSceneNodeType (TySynInstD (TySynEqn Nothing (AppT (AppT _ (LitT (StrTyLit scene))) (LitT (StrTyLit node))) ty))\n        = (scene,node,unName ty, unpackScene ty)\n      unSceneNodeType x = error $ \"Don't know how unpack this SceneNodeType: \" ++ show x\n      unpackScene (ConT _) = Nothing\n      unpackScene (AppT (ConT _) (LitT (StrTyLit scene))) = Just scene\n      unpackScene x = error $ \"Don't know how unpack this Scene: \" ++ show x\n      unNodeMethod (InstanceD Nothing [] (AppT (AppT (AppT (AppT (ConT _) (ConT cls)) (LitT (StrTyLit name))) arg) ret) []) \n        = Just (cls, name, arg, ret)\n      unNodeMethod _ = Nothing\n      unNodeProperty (InstanceD Nothing [] (AppT (AppT (AppT (AppT (ConT _) (ConT cls)) (LitT (StrTyLit name))) arg) ret) []) \n        = Just (cls, name, arg, ret)\n      unNodeProperty x = error $ show x\n      unNodeInScene (InstanceD Nothing [] (AppT (AppT (AppT (ConT _) (LitT (StrTyLit scene))) (LitT (StrTyLit node))) (ConT hty)) [])\n        = (scene, node, hty)\n      unNodeInScene x = error $ show x\n      unNodeSignal (InstanceD Nothing [] (AppT (AppT (AppT (ConT _) (ConT cls)) (LitT (StrTyLit name))) arg) []) = (cls, name, arg)\n      unNodeSignal _ = error \"Bad signal\"\n      unConnect (InstanceD Nothing [] (AppT (AppT (AppT (AppT (AppT _ (LitT (StrTyLit scene))) (LitT (StrTyLit from))) (LitT (StrTyLit signal))) (LitT (StrTyLit to))) (LitT (StrTyLit method))) []) = (scene, from, signal, to, method)\n      unConnect x = error $ \"Bad signal\" ++ show x\n      nrArguments :: Type -> Int\n      nrArguments (AppT _ r) = 1 + nrArguments r\n      nrArguments (SigT PromotedNilT (AppT ListT StarT)) = 0\n      nrArguments _ = error \"Can't compute # of arguments\"\n      classInstances :: Info -> [InstanceDec]\n      classInstances (ClassI _ is) = is\n      classInstances _ = error \"Bad class\"\n      familyInstances :: Info -> [InstanceDec]\n      familyInstances (FamilyI _ is) = is\n      familyInstances _ = error \"Bad class\"\n"
  },
  {
    "path": "examples/rss-reader/stack-shell.nix",
    "content": "{ nixpkgs ? import ./pinned-nixpkgs.nix {}\n, ghc\n}:\n\nwith nixpkgs;\n\nhaskell.lib.buildStackProject {\n  inherit ghc;\n  name = \"myproject\";\n  buildInputs = [];\n}\n\n\n"
  },
  {
    "path": "examples/rss-reader/stack.yaml",
    "content": "resolver: nightly-2021-02-06\n\npackages:\n- .\n\nextra-deps:\n- ../../\n\nrequire-stack-version: \">=1.8\"\n\nnix:\n  enable: false\n  pure: true\n  packages: []\n  shell-file: stack-shell.nix\n  nix-shell-options: []\n  path: []\n  add-gc-roots: false\n\n\n"
  },
  {
    "path": "examples/top-down-ten-minutes/.gitignore",
    "content": "dist*\n*.hi\n*.o\n.stack-work/\n.stack-work-devel/\n*~\n\\#*\n*.import\nresult\n\n\n"
  },
  {
    "path": "examples/top-down-ten-minutes/ChangeLog.md",
    "content": "# Empty\n\n\n"
  },
  {
    "path": "examples/top-down-ten-minutes/LICENSE",
    "content": "BSD 3-Clause License\n\nCopyright (c) Andrei Barbu 2019\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n"
  },
  {
    "path": "examples/top-down-ten-minutes/Makefile",
    "content": "NAME = top-down-ten-minutes\nSTACKLIBFILE = $(shell stack path --local-install-root)/lib/lib$(NAME).so\nGODOTPROJECT = $(shell stack path --project-root)/game\nall: stack\nnix:\n\tnix-build shell.nix\n\tcp result/lib/ghc-*/lib$(NAME).so $(GODOTPROJECT)/lib\nstack:\n\tstack build --fast --force-dirty\n\tcp $(STACKLIBFILE) $(GODOTPROJECT)/lib\nstack-nix:\n\tstack --nix clean $(NAME)\n\tstack --nix build\n\tcp $(shell stack --nix path --local-install-root)/lib/lib$(NAME).so $(GODOTPROJECT)/lib\nstack-run:\n\tstack build\n\tcp $(STACKLIBFILE) $(GODOTPROJECT)/lib\n\tgodot -e --path ./game\nstack-watch:\n\tstack build --file-watch --fast --exec \"cp $(STACKLIBFILE) $(GODOTPROJECT)/lib\"\nproject-watch:\n\tstack exec godot-haskell-project-generator game src\nupdatelib:\n\tcp $(STACKLIBFILE) $(GODOTPROJECT)/lib\n"
  },
  {
    "path": "examples/top-down-ten-minutes/README.md",
    "content": "The official Godot demo from the manual: Dodge the Creeps.\n\nRun with `make stack` then `godot game/project.godot` and press F5 to start, F8 to end.\n\nRequires Godot 3.1\n"
  },
  {
    "path": "examples/top-down-ten-minutes/ffi/cbits/flib.c",
    "content": "#include \"HsFFI.h\"\n\nstatic void flib_init() __attribute__((constructor));\nstatic void flib_init() {\n  static char *argv[] = { \"libGodotHaskellPlugin.so\", 0 }, **argv_ = argv;\n  static int argc = 1;\n  hs_init(&argc, &argv_);\n}\n\nstatic void flib_fini() __attribute__((destructor));\nstatic void flib_fini() {\n  hs_exit();\n}\n"
  },
  {
    "path": "examples/top-down-ten-minutes/ffi/flib/FLib.hs",
    "content": "{-# LANGUAGE ForeignFunctionInterface #-}\nmodule FLib where\n\nimport qualified Foreign\nimport           Foreign(nullPtr, Ptr,newForeignPtr_,castPtr)\nimport qualified Godot.Gdnative.Internal       as FFI\nimport           Godot.Gdnative\nimport           Godot.Nativescript\nimport           Lib\nimport qualified Data.Text as T\nimport qualified Data.Text.IO as T\n\ngodot_nativescript_init :: GdnativeHandle -> IO ()\ngodot_nativescript_init desc = do\n  defaultExports desc\n  exports desc\n  putStrLn \"Haskell NativeScript lib initialized\"\n\nforeign export ccall godot_nativescript_init :: GdnativeHandle -> IO ()\n\n\ngodot_gdnative_init :: FFI.GdnativeInitOptionsPtr -> IO ()\ngodot_gdnative_init opts = do\n  Foreign.peek opts >>= FFI.initApiStructs\n\nforeign export ccall godot_gdnative_init :: FFI.GdnativeInitOptionsPtr -> IO ()\n\n\ngodot_gdnative_terminate :: FFI.GdnativeTerminateOptionsPtr -> IO ()\ngodot_gdnative_terminate handle = pure ()\n\nforeign export ccall godot_gdnative_terminate :: FFI.GdnativeTerminateOptionsPtr -> IO ()\n"
  },
  {
    "path": "examples/top-down-ten-minutes/game/Bullet.gdns",
    "content": "[gd_resource type=\"NativeScript\" load_steps=2 format=2]\n\n[ext_resource path=\"res://lib/libtop-down-ten-minutes.gdnlib\" type=\"GDNativeLibrary\" id=1]\n\n[resource]\nresource_name = \"Bullet\"\nclass_name = \"Bullet\"\nlibrary = ExtResource( 1 )\n"
  },
  {
    "path": "examples/top-down-ten-minutes/game/Bullet.tscn",
    "content": "[gd_scene load_steps=5 format=2]\n\n[ext_resource path=\"res://Player.png\" type=\"Texture\" id=1]\n[ext_resource path=\"res://Bullet.gdns\" type=\"Script\" id=2]\n\n[sub_resource type=\"RectangleShape2D\" id=1]\nextents = Vector2( 4, 1.6 )\n\n[sub_resource type=\"Animation\" id=2]\nresource_name = \"fadeout\"\nlength = 0.4\ntracks/0/type = \"value\"\ntracks/0/path = NodePath(\"Sprite:modulate\")\ntracks/0/interp = 1\ntracks/0/loop_wrap = true\ntracks/0/imported = false\ntracks/0/enabled = true\ntracks/0/keys = {\n\"times\": PoolRealArray( 0, 0.3 ),\n\"transitions\": PoolRealArray( 1, 1 ),\n\"update\": 0,\n\"values\": [ Color( 1, 1, 1, 1 ), Color( 0.45098, 0.447059, 0.447059, 0 ) ]\n}\n\n[node name=\"Bullet\" type=\"RigidBody2D\"]\ncollision_layer = 8\ncontinuous_cd = 1\ncontacts_reported = 1\ncontact_monitor = true\nscript = ExtResource( 2 )\n\n[node name=\"CollisionShape2D\" type=\"CollisionShape2D\" parent=\".\"]\nshape = SubResource( 1 )\n\n[node name=\"Sprite\" type=\"Sprite\" parent=\".\"]\nscale = Vector2( 0.5, 0.2 )\ntexture = ExtResource( 1 )\n\n[node name=\"AnimationPlayer\" type=\"AnimationPlayer\" parent=\".\"]\nanims/fadeout = SubResource( 2 )\n[connection signal=\"body_entered\" from=\".\" to=\".\" method=\"_on_Bullet_body_entered\"]\n[connection signal=\"animation_finished\" from=\"AnimationPlayer\" to=\".\" method=\"_on_AnimationPlayer_animation_finished\"]\n"
  },
  {
    "path": "examples/top-down-ten-minutes/game/Enemy.gdns",
    "content": "[gd_resource type=\"NativeScript\" load_steps=2 format=2]\n\n[ext_resource path=\"res://lib/libtop-down-ten-minutes.gdnlib\" type=\"GDNativeLibrary\" id=1]\n\n[resource]\nresource_name = \"Enemy\"\nclass_name = \"Enemy\"\nlibrary = ExtResource( 1 )\n"
  },
  {
    "path": "examples/top-down-ten-minutes/game/Enemy.tscn",
    "content": "[gd_scene load_steps=5 format=2]\n\n[ext_resource path=\"res://Player.png\" type=\"Texture\" id=1]\n[ext_resource path=\"res://Enemy.gdns\" type=\"Script\" id=2]\n\n[sub_resource type=\"RectangleShape2D\" id=1]\nextents = Vector2( 6.4, 6.4 )\n\n[sub_resource type=\"RectangleShape2D\" id=2]\nextents = Vector2( 7.3, 7.3 )\n\n[node name=\"Enemy\" type=\"KinematicBody2D\"]\ncollision_layer = 4\ncollision_mask = 15\nscript = ExtResource( 2 )\n\n[node name=\"CollisionShape2D\" type=\"CollisionShape2D\" parent=\".\"]\nshape = SubResource( 1 )\n\n[node name=\"Sprite\" type=\"Sprite\" parent=\".\"]\nmodulate = Color( 0.709804, 0.180392, 0.180392, 1 )\nscale = Vector2( 0.8, 0.8 )\ntexture = ExtResource( 1 )\n\n[node name=\"Area2D\" type=\"Area2D\" parent=\".\"]\npriority = 1.0\ncollision_layer = 0\ncollision_mask = 8\n\n[node name=\"CollisionShape2D\" type=\"CollisionShape2D\" parent=\"Area2D\"]\nshape = SubResource( 2 )\n[connection signal=\"body_entered\" from=\"Area2D\" to=\".\" method=\"_on_Area2D_body_entered\"]\n"
  },
  {
    "path": "examples/top-down-ten-minutes/game/Explosion.tscn",
    "content": "[gd_scene load_steps=4 format=2]\n\n[sub_resource type=\"Curve\" id=1]\n_data = [ Vector2( 0, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ]\n\n[sub_resource type=\"CurveTexture\" id=2]\ncurve = SubResource( 1 )\n\n[sub_resource type=\"ParticlesMaterial\" id=3]\nemission_shape = 1\nemission_sphere_radius = 1.0\nflag_disable_z = true\nspread = 180.0\ngravity = Vector3( 0, 0, 0 )\ninitial_velocity = 60.0\ninitial_velocity_random = 0.75\norbit_velocity = 0.0\norbit_velocity_random = 0.0\ntangential_accel = 20.0\ntangential_accel_random = 0.3\nscale = 5.0\nscale_random = 0.4\nscale_curve = SubResource( 2 )\ncolor = Color( 0.866667, 0.160784, 0.160784, 1 )\n\n[node name=\"Particles2D\" type=\"Particles2D\"]\nscale = Vector2( 2, 2 )\nemitting = false\namount = 30\nlifetime = 0.3\none_shot = true\nexplosiveness = 1.0\nrandomness = 0.5\nprocess_material = SubResource( 3 )\n"
  },
  {
    "path": "examples/top-down-ten-minutes/game/Player.gdns",
    "content": "[gd_resource type=\"NativeScript\" load_steps=2 format=2]\n\n[ext_resource path=\"res://lib/libtop-down-ten-minutes.gdnlib\" type=\"GDNativeLibrary\" id=1]\n\n[resource]\nresource_name = \"Player\"\nclass_name = \"Player\"\nlibrary = ExtResource( 1 )\n"
  },
  {
    "path": "examples/top-down-ten-minutes/game/lib/libtop-down-ten-minutes.gdnlib",
    "content": "[general]\n\nsingleton=false\nload_once=false\nsymbol_prefix=\"godot_\"\nreloadable=true\n\n[entry]\n\nX11.64=\"res://lib/libtop-down-ten-minutes.so\"\n\n[dependencies]\n\nX11.64=[  ]\n"
  },
  {
    "path": "examples/top-down-ten-minutes/game/project.godot",
    "content": "; Engine configuration file.\n; It's best edited using the editor UI and not directly,\n; since the parameters that go here are not all obvious.\n;\n; Format:\n;   [section] ; section goes between []\n;   param=value ; assign values to parameters\n\nconfig_version=4\n\n_global_script_classes=[  ]\n_global_script_class_icons={\n\n}\n\n[application]\n\nconfig/name=\"Top Down Ten Minutes\"\nrun/main_scene=\"res://world.tscn\"\n\n[audio]\n\ndefault_bus_layout=\"\"\n\n[display]\n\nwindow/dpi/allow_hidpi=true\n\n[gdnative]\n\nsingletons=[  ]\n\n[input]\n\nright={\n\"deadzone\": 0.5,\n\"events\": [ Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":68,\"unicode\":0,\"echo\":false,\"script\":null)\n ]\n}\nleft={\n\"deadzone\": 0.5,\n\"events\": [ Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":65,\"unicode\":0,\"echo\":false,\"script\":null)\n ]\n}\nup={\n\"deadzone\": 0.5,\n\"events\": [ Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":87,\"unicode\":0,\"echo\":false,\"script\":null)\n ]\n}\ndown={\n\"deadzone\": 0.5,\n\"events\": [ Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":83,\"unicode\":0,\"echo\":false,\"script\":null)\n ]\n}\nLMB={\n\"deadzone\": 0.5,\n\"events\": [ Object(InputEventMouseButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"button_mask\":0,\"position\":Vector2( 0, 0 ),\"global_position\":Vector2( 0, 0 ),\"factor\":1.0,\"button_index\":1,\"pressed\":false,\"doubleclick\":false,\"script\":null)\n ]\n}\n\n[layer_names]\n\n2d_physics/layer_1=\"World\"\n2d_physics/layer_2=\"Player\"\n2d_physics/layer_3=\"Enemies\"\n2d_physics/layer_4=\"Bullets\"\n"
  },
  {
    "path": "examples/top-down-ten-minutes/game/wall.tres",
    "content": "[gd_resource type=\"TileSet\" load_steps=4 format=2]\n\n[ext_resource path=\"res://Player.png\" type=\"Texture\" id=1]\n\n[sub_resource type=\"OccluderPolygon2D\" id=1]\npolygon = PoolVector2Array( -7.97656, -8.02344, -7.96094, 8.03125, 7.98438, 7.97735, 7.98438, 7.97735, 7.99219, -8.01562 )\n\n[sub_resource type=\"RectangleShape2D\" id=2]\nextents = Vector2( 8, 8 )\n\n[resource]\n0/name = \"Sprite\"\n0/texture = ExtResource( 1 )\n0/tex_offset = Vector2( 0, 0 )\n0/modulate = Color( 0, 0, 0, 1 )\n0/region = Rect2( 0, 0, 16, 16 )\n0/tile_mode = 0\n0/occluder_offset = Vector2( 8, 8 )\n0/occluder = SubResource( 1 )\n0/navigation_offset = Vector2( 8, 8 )\n0/shape_offset = Vector2( 8, 8 )\n0/shape_transform = Transform2D( 1, 0, 0, 1, 8, 8 )\n0/shape = SubResource( 2 )\n0/shape_one_way = false\n0/shape_one_way_margin = 1.0\n0/shapes = [ {\n\"autotile_coord\": Vector2( 0, 0 ),\n\"one_way\": false,\n\"one_way_margin\": 1.0,\n\"shape\": SubResource( 2 ),\n\"shape_transform\": Transform2D( 1, 0, 0, 1, 8, 8 )\n} ]\n0/z_index = 0\n"
  },
  {
    "path": "examples/top-down-ten-minutes/game/world.tscn",
    "content": "[gd_scene load_steps=8 format=2]\n\n[ext_resource path=\"res://Player.png\" type=\"Texture\" id=1]\n[ext_resource path=\"res://Player.gdns\" type=\"Script\" id=2]\n[ext_resource path=\"res://Enemy.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://wall.tres\" type=\"TileSet\" id=4]\n[ext_resource path=\"res://spotlight.png\" type=\"Texture\" id=5]\n\n[sub_resource type=\"RectangleShape2D\" id=1]\nextents = Vector2( 8, 8 )\n\n[sub_resource type=\"RectangleShape2D\" id=2]\nextents = Vector2( 9, 9 )\n\n[node name=\"world\" type=\"Node2D\"]\n\n[node name=\"Player\" type=\"KinematicBody2D\" parent=\".\"]\nposition = Vector2( 330.5, 194.5 )\ncollision_layer = 2\ncollision_mask = 5\nscript = ExtResource( 2 )\n\n[node name=\"CollisionShape2D\" type=\"CollisionShape2D\" parent=\"Player\"]\nshape = SubResource( 1 )\n\n[node name=\"Sprite\" type=\"Sprite\" parent=\"Player\"]\ntexture = ExtResource( 1 )\n\n[node name=\"Area2D\" type=\"Area2D\" parent=\"Player\"]\ncollision_layer = 2\ncollision_mask = 4\n\n[node name=\"CollisionShape2D\" type=\"CollisionShape2D\" parent=\"Player/Area2D\"]\nshape = SubResource( 2 )\n\n[node name=\"Camera2D\" type=\"Camera2D\" parent=\"Player\"]\ncurrent = true\nzoom = Vector2( 0.6, 0.6 )\nsmoothing_enabled = true\n\n[node name=\"Light2D\" type=\"Light2D\" parent=\"Player\"]\ntexture = ExtResource( 5 )\ntexture_scale = 0.5\ncolor = Color( 1, 0.83, 0.83, 1 )\nenergy = 1.17\nshadow_enabled = true\nshadow_filter = 5\n\n[node name=\"Enemy1\" parent=\".\" instance=ExtResource( 3 )]\nposition = Vector2( 0, 3 )\n\n[node name=\"Enemy2\" parent=\".\" instance=ExtResource( 3 )]\nposition = Vector2( 508.258, 9.2363 )\n\n[node name=\"Enemy3\" parent=\".\" instance=ExtResource( 3 )]\nposition = Vector2( 755.478, 365.833 )\n\n[node name=\"Enemy4\" parent=\".\" instance=ExtResource( 3 )]\nposition = Vector2( 264.783, 538.139 )\n\n[node name=\"Enemy5\" parent=\".\" instance=ExtResource( 3 )]\nposition = Vector2( -97.8076, 440 )\n\n[node name=\"Enemy6\" parent=\".\" instance=ExtResource( 3 )]\nposition = Vector2( 545.715, 259.454 )\n\n[node name=\"Enemy7\" parent=\".\" instance=ExtResource( 3 )]\nposition = Vector2( 800.427, -84.4079 )\n\n[node name=\"Enemy8\" parent=\".\" instance=ExtResource( 3 )]\nposition = Vector2( 827.367, 126.615 )\n\n[node name=\"Enemy9\" parent=\".\" instance=ExtResource( 3 )]\nposition = Vector2( 315.524, 688.968 )\n\n[node name=\"Enemy10\" parent=\".\" instance=ExtResource( 3 )]\nposition = Vector2( -108.767, 152.432 )\n\n[node name=\"Sprite\" type=\"Sprite\" parent=\".\"]\nmodulate = Color( 0.26, 0.0728, 0.0728, 1 )\nposition = Vector2( 2306.69, 771.311 )\nscale = Vector2( 509.45, 336.746 )\nz_index = -1\ntexture = ExtResource( 1 )\n\n[node name=\"TileMap\" type=\"TileMap\" parent=\".\"]\ntile_set = ExtResource( 4 )\ncell_size = Vector2( 16, 16 )\ncell_custom_transform = Transform2D( 0, 0, 0, 0, 0, 0 )\nformat = 1\ntile_data = PoolIntArray( -720887, -1073741824, 0, -720886, -1073741824, 0, -720885, -1073741824, 0, -720884, -1073741824, 0, -720883, -1073741824, 0, -720882, -1073741824, 0, -720881, -1073741824, 0, -720880, -1073741824, 0, -720879, -1073741824, 0, -720878, -1073741824, 0, -720877, -1073741824, 0, -720876, -1073741824, 0, -720875, -1073741824, 0, -720874, -1073741824, 0, -720873, -1073741824, 0, -720872, -1073741824, 0, -720871, -1073741824, 0, -720870, -1073741824, 0, -720869, -1073741824, 0, -720868, -1073741824, 0, -720867, -1073741824, 0, -720866, -1073741824, 0, -720865, -1073741824, 0, -720864, -1073741824, 0, -720863, -1073741824, 0, -720862, -1073741824, 0, -720861, -1073741824, 0, -720860, -1073741824, 0, -720859, -1073741824, 0, -720858, -1073741824, 0, -720857, -1073741824, 0, -720856, -1073741824, 0, -720855, -1073741824, 0, -720854, -1073741824, 0, -720853, -1073741824, 0, -720852, -1073741824, 0, -720851, -1073741824, 0, -720850, -1073741824, 0, -720849, -1073741824, 0, -720848, -1073741824, 0, -720847, -1073741824, 0, -720846, -1073741824, 0, -720845, -1073741824, 0, -720844, -1073741824, 0, -720843, -1073741824, 0, -720842, -1073741824, 0, -720841, -1073741824, 0, -655358, -1073741824, 0, -655357, -1073741824, 0, -655356, -1073741824, 0, -655355, -1073741824, 0, -655354, -1073741824, 0, -655353, -1073741824, 0, -655352, -1073741824, 0, -655351, -1073741824, 0, -655305, -1073741824, 0, -589822, -1073741824, 0, -589769, -1073741824, 0, -458759, -1073741824, 0, -458758, -1073741824, 0, -458757, -1073741824, 0, -458756, -1073741824, 0, -458755, -1073741824, 0, -458754, -1073741824, 0, -458753, -1073741824, 0, -524286, -1073741824, 0, -524261, -1073741824, 0, -524260, -1073741824, 0, -524259, -1073741824, 0, -524258, -1073741824, 0, -524257, -1073741824, 0, -524256, -1073741824, 0, -524233, -1073741824, 0, -524232, -1073741824, 0, -393223, -1073741824, 0, -393217, -1073741824, 0, -458752, -1073741824, 0, -458751, -1073741824, 0, -458750, -1073741824, 0, -458720, -1073741824, 0, -458716, -1073741824, 0, -458715, -1073741824, 0, -458710, -1073741824, 0, -458709, -1073741824, 0, -458696, -1073741824, 0, -327687, -1073741824, 0, -393214, -1073741824, 0, -393213, -1073741824, 0, -393184, -1073741824, 0, -393160, -1073741824, 0, -262151, -1073741824, 0, -327677, -1073741824, 0, -327676, -1073741824, 0, -327664, -1073741824, 0, -327663, -1073741824, 0, -327660, -1073741824, 0, -327659, -1073741824, 0, -327648, -1073741824, 0, -327635, -1073741824, 0, -327634, -1073741824, 0, -327633, -1073741824, 0, -327632, -1073741824, 0, -327624, -1073741824, 0, -196615, -1073741824, 0, -262140, -1073741824, 0, -262139, -1073741824, 0, -262127, -1073741824, 0, -262126, -1073741824, 0, -262125, -1073741824, 0, -262124, -1073741824, 0, -262116, -1073741824, 0, -262115, -1073741824, 0, -262114, -1073741824, 0, -262113, -1073741824, 0, -262112, -1073741824, 0, -262096, -1073741824, 0, -262095, -1073741824, 0, -262088, -1073741824, 0, -131079, -1073741824, 0, -196603, -1073741824, 0, -196590, -1073741824, 0, -196589, -1073741824, 0, -196559, -1073741824, 0, -196552, -1073741824, 0, -65543, -1073741824, 0, -131067, -1073741824, 0, -131066, -1073741824, 0, -131055, -1073741824, 0, -131054, -1073741824, 0, -131053, -1073741824, 0, -131052, -1073741824, 0, -131036, -1073741824, 0, -131035, -1073741824, 0, -131034, -1073741824, 0, -131033, -1073741824, 0, -131032, -1073741824, 0, -131023, -1073741824, 0, -131016, -1073741824, 0, -7, -1073741824, 0, -65530, -1073741824, 0, -65529, -1073741824, 0, -65519, -1073741824, 0, -65518, -1073741824, 0, -65517, -1073741824, 0, -65516, -1073741824, 0, -65500, -1073741824, 0, -65480, -1073741824, 0, 65529, -1073741824, 0, 7, -1073741824, 0, 17, -1073741824, 0, 18, -1073741824, 0, 19, -1073741824, 0, 20, -1073741824, 0, 36, -1073741824, 0, 56, -1073741824, 0, 131065, -1073741824, 0, 65553, -1073741824, 0, 65554, -1073741824, 0, 65555, -1073741824, 0, 65556, -1073741824, 0, 65572, -1073741824, 0, 65573, -1073741824, 0, 65574, -1073741824, 0, 65575, -1073741824, 0, 65576, -1073741824, 0, 65582, -1073741824, 0, 65585, -1073741824, 0, 65592, -1073741824, 0, 196601, -1073741824, 0, 131073, -1073741824, 0, 131118, -1073741824, 0, 131119, -1073741824, 0, 131121, -1073741824, 0, 131128, -1073741824, 0, 262137, -1073741824, 0, 196609, -1073741824, 0, 196655, -1073741824, 0, 196656, -1073741824, 0, 196657, -1073741824, 0, 196664, -1073741824, 0, 327673, -1073741824, 0, 262145, -1073741824, 0, 262200, -1073741824, 0, 393209, -1073741824, 0, 327681, -1073741824, 0, 327714, -1073741824, 0, 327715, -1073741824, 0, 327716, -1073741824, 0, 327717, -1073741824, 0, 327718, -1073741824, 0, 327719, -1073741824, 0, 327720, -1073741824, 0, 327721, -1073741824, 0, 327722, -1073741824, 0, 327736, -1073741824, 0, 458742, -1073741824, 0, 458743, -1073741824, 0, 458744, -1073741824, 0, 458745, -1073741824, 0, 458746, -1073741824, 0, 458749, -1073741824, 0, 458750, -1073741824, 0, 458751, -1073741824, 0, 393216, -1073741824, 0, 393217, -1073741824, 0, 393218, -1073741824, 0, 393219, -1073741824, 0, 393220, -1073741824, 0, 393221, -1073741824, 0, 393222, -1073741824, 0, 393223, -1073741824, 0, 393224, -1073741824, 0, 393225, -1073741824, 0, 393232, -1073741824, 0, 393233, -1073741824, 0, 393234, -1073741824, 0, 393236, -1073741824, 0, 393243, -1073741824, 0, 393258, -1073741824, 0, 393272, -1073741824, 0, 524278, -1073741824, 0, 458767, -1073741824, 0, 458768, -1073741824, 0, 458770, -1073741824, 0, 458771, -1073741824, 0, 458772, -1073741824, 0, 458779, -1073741824, 0, 458794, -1073741824, 0, 458808, -1073741824, 0, 589814, -1073741824, 0, 524315, -1073741824, 0, 524330, -1073741824, 0, 524344, -1073741824, 0, 655350, -1073741824, 0, 655359, -1073741824, 0, 589851, -1073741824, 0, 589866, -1073741824, 0, 589880, -1073741824, 0, 720885, -1073741824, 0, 720886, -1073741824, 0, 720895, -1073741824, 0, 655360, -1073741824, 0, 655387, -1073741824, 0, 655402, -1073741824, 0, 655416, -1073741824, 0, 786421, -1073741824, 0, 720896, -1073741824, 0, 720897, -1073741824, 0, 720911, -1073741824, 0, 720912, -1073741824, 0, 720913, -1073741824, 0, 720914, -1073741824, 0, 720915, -1073741824, 0, 720916, -1073741824, 0, 720923, -1073741824, 0, 720938, -1073741824, 0, 720952, -1073741824, 0, 851957, -1073741824, 0, 786433, -1073741824, 0, 786434, -1073741824, 0, 786459, -1073741824, 0, 786474, -1073741824, 0, 786488, -1073741824, 0, 917493, -1073741824, 0, 851995, -1073741824, 0, 851999, -1073741824, 0, 852000, -1073741824, 0, 852003, -1073741824, 0, 852004, -1073741824, 0, 852010, -1073741824, 0, 852013, -1073741824, 0, 852014, -1073741824, 0, 852015, -1073741824, 0, 852016, -1073741824, 0, 852017, -1073741824, 0, 852024, -1073741824, 0, 983029, -1073741824, 0, 917531, -1073741824, 0, 917535, -1073741824, 0, 917536, -1073741824, 0, 917539, -1073741824, 0, 917540, -1073741824, 0, 917546, -1073741824, 0, 917551, -1073741824, 0, 917559, -1073741824, 0, 917560, -1073741824, 0, 1048565, -1073741824, 0, 983047, -1073741824, 0, 983055, -1073741824, 0, 983056, -1073741824, 0, 983057, -1073741824, 0, 983058, -1073741824, 0, 983059, -1073741824, 0, 983060, -1073741824, 0, 983067, -1073741824, 0, 983082, -1073741824, 0, 983087, -1073741824, 0, 983095, -1073741824, 0, 1114100, -1073741824, 0, 1114101, -1073741824, 0, 1048580, -1073741824, 0, 1048581, -1073741824, 0, 1048582, -1073741824, 0, 1048583, -1073741824, 0, 1048603, -1073741824, 0, 1048618, -1073741824, 0, 1048623, -1073741824, 0, 1048631, -1073741824, 0, 1179636, -1073741824, 0, 1179644, -1073741824, 0, 1179645, -1073741824, 0, 1114115, -1073741824, 0, 1114116, -1073741824, 0, 1114139, -1073741824, 0, 1114144, -1073741824, 0, 1114147, -1073741824, 0, 1114154, -1073741824, 0, 1114159, -1073741824, 0, 1114167, -1073741824, 0, 1245172, -1073741824, 0, 1245181, -1073741824, 0, 1245182, -1073741824, 0, 1179650, -1073741824, 0, 1179651, -1073741824, 0, 1179675, -1073741824, 0, 1179680, -1073741824, 0, 1179681, -1073741824, 0, 1179682, -1073741824, 0, 1179683, -1073741824, 0, 1179687, -1073741824, 0, 1179688, -1073741824, 0, 1179689, -1073741824, 0, 1179690, -1073741824, 0, 1179695, -1073741824, 0, 1179703, -1073741824, 0, 1310708, -1073741824, 0, 1310718, -1073741824, 0, 1310719, -1073741824, 0, 1245186, -1073741824, 0, 1245199, -1073741824, 0, 1245200, -1073741824, 0, 1245202, -1073741824, 0, 1245203, -1073741824, 0, 1245204, -1073741824, 0, 1245211, -1073741824, 0, 1245226, -1073741824, 0, 1245239, -1073741824, 0, 1376243, -1073741824, 0, 1376244, -1073741824, 0, 1376255, -1073741824, 0, 1310721, -1073741824, 0, 1310722, -1073741824, 0, 1310736, -1073741824, 0, 1310737, -1073741824, 0, 1310738, -1073741824, 0, 1310740, -1073741824, 0, 1310747, -1073741824, 0, 1310762, -1073741824, 0, 1310775, -1073741824, 0, 1441779, -1073741824, 0, 1441791, -1073741824, 0, 1376256, -1073741824, 0, 1376257, -1073741824, 0, 1376283, -1073741824, 0, 1376298, -1073741824, 0, 1376311, -1073741824, 0, 1507315, -1073741824, 0, 1441792, -1073741824, 0, 1441819, -1073741824, 0, 1441824, -1073741824, 0, 1441834, -1073741824, 0, 1441846, -1073741824, 0, 1441847, -1073741824, 0, 1572851, -1073741824, 0, 1507328, -1073741824, 0, 1507355, -1073741824, 0, 1507360, -1073741824, 0, 1507370, -1073741824, 0, 1507381, -1073741824, 0, 1507382, -1073741824, 0, 1638387, -1073741824, 0, 1638392, -1073741824, 0, 1638393, -1073741824, 0, 1638394, -1073741824, 0, 1572864, -1073741824, 0, 1572896, -1073741824, 0, 1572906, -1073741824, 0, 1572916, -1073741824, 0, 1572917, -1073741824, 0, 1703923, -1073741824, 0, 1638400, -1073741824, 0, 1638436, -1073741824, 0, 1638437, -1073741824, 0, 1638438, -1073741824, 0, 1638439, -1073741824, 0, 1638440, -1073741824, 0, 1638441, -1073741824, 0, 1638442, -1073741824, 0, 1638452, -1073741824, 0, 1769459, -1073741824, 0, 1769471, -1073741824, 0, 1703936, -1073741824, 0, 1703987, -1073741824, 0, 1703988, -1073741824, 0, 1834995, -1073741824, 0, 1835007, -1073741824, 0, 1769484, -1073741824, 0, 1769485, -1073741824, 0, 1769522, -1073741824, 0, 1769523, -1073741824, 0, 1900531, -1073741824, 0, 1900542, -1073741824, 0, 1900543, -1073741824, 0, 1835021, -1073741824, 0, 1835022, -1073741824, 0, 1835023, -1073741824, 0, 1835024, -1073741824, 0, 1835025, -1073741824, 0, 1835026, -1073741824, 0, 1835027, -1073741824, 0, 1835028, -1073741824, 0, 1835029, -1073741824, 0, 1835030, -1073741824, 0, 1835058, -1073741824, 0, 1966066, -1073741824, 0, 1966067, -1073741824, 0, 1966077, -1073741824, 0, 1966078, -1073741824, 0, 1900593, -1073741824, 0, 1900594, -1073741824, 0, 2031602, -1073741824, 0, 2031612, -1073741824, 0, 2031613, -1073741824, 0, 1966128, -1073741824, 0, 1966129, -1073741824, 0, 2097138, -1073741824, 0, 2097148, -1073741824, 0, 2031661, -1073741824, 0, 2031662, -1073741824, 0, 2031663, -1073741824, 0, 2031664, -1073741824, 0, 2162674, -1073741824, 0, 2097196, -1073741824, 0, 2097197, -1073741824, 0, 2228210, -1073741824, 0, 2162730, -1073741824, 0, 2162731, -1073741824, 0, 2162732, -1073741824, 0, 2293746, -1073741824, 0, 2228265, -1073741824, 0, 2228266, -1073741824, 0, 2359282, -1073741824, 0, 2293772, -1073741824, 0, 2293773, -1073741824, 0, 2293774, -1073741824, 0, 2293775, -1073741824, 0, 2293784, -1073741824, 0, 2293785, -1073741824, 0, 2293786, -1073741824, 0, 2293787, -1073741824, 0, 2293800, -1073741824, 0, 2293801, -1073741824, 0, 2424818, -1073741824, 0, 2359305, -1073741824, 0, 2359306, -1073741824, 0, 2359307, -1073741824, 0, 2359308, -1073741824, 0, 2359311, -1073741824, 0, 2359312, -1073741824, 0, 2359319, -1073741824, 0, 2359320, -1073741824, 0, 2359323, -1073741824, 0, 2359324, -1073741824, 0, 2359335, -1073741824, 0, 2359336, -1073741824, 0, 2490354, -1073741824, 0, 2424840, -1073741824, 0, 2424841, -1073741824, 0, 2424848, -1073741824, 0, 2424854, -1073741824, 0, 2424855, -1073741824, 0, 2424860, -1073741824, 0, 2424870, -1073741824, 0, 2424871, -1073741824, 0, 2555890, -1073741824, 0, 2490373, -1073741824, 0, 2490374, -1073741824, 0, 2490375, -1073741824, 0, 2490376, -1073741824, 0, 2490384, -1073741824, 0, 2490385, -1073741824, 0, 2490386, -1073741824, 0, 2490389, -1073741824, 0, 2490390, -1073741824, 0, 2490396, -1073741824, 0, 2490397, -1073741824, 0, 2490404, -1073741824, 0, 2490405, -1073741824, 0, 2490406, -1073741824, 0, 2621426, -1073741824, 0, 2555908, -1073741824, 0, 2555909, -1073741824, 0, 2555922, -1073741824, 0, 2555923, -1073741824, 0, 2555924, -1073741824, 0, 2555925, -1073741824, 0, 2555933, -1073741824, 0, 2555934, -1073741824, 0, 2555940, -1073741824, 0, 2686962, -1073741824, 0, 2621443, -1073741824, 0, 2621444, -1073741824, 0, 2621475, -1073741824, 0, 2621476, -1073741824, 0, 2752498, -1073741824, 0, 2687011, -1073741824, 0, 2818034, -1073741824, 0, 2818035, -1073741824, 0, 2818036, -1073741824, 0, 2818037, -1073741824, 0, 2752539, -1073741824, 0, 2752546, -1073741824, 0, 2752547, -1073741824, 0, 2883573, -1073741824, 0, 2883574, -1073741824, 0, 2883575, -1073741824, 0, 2883576, -1073741824, 0, 2883577, -1073741824, 0, 2883578, -1073741824, 0, 2883579, -1073741824, 0, 2818061, -1073741824, 0, 2818075, -1073741824, 0, 2818082, -1073741824, 0, 2949115, -1073741824, 0, 2949116, -1073741824, 0, 2949117, -1073741824, 0, 2949118, -1073741824, 0, 2949119, -1073741824, 0, 2883584, -1073741824, 0, 2883597, -1073741824, 0, 2883611, -1073741824, 0, 2883612, -1073741824, 0, 2883618, -1073741824, 0, 2949120, -1073741824, 0, 2949121, -1073741824, 0, 2949122, -1073741824, 0, 2949123, -1073741824, 0, 2949124, -1073741824, 0, 2949125, -1073741824, 0, 2949126, -1073741824, 0, 2949127, -1073741824, 0, 2949128, -1073741824, 0, 2949129, -1073741824, 0, 2949130, -1073741824, 0, 2949131, -1073741824, 0, 2949132, -1073741824, 0, 2949133, -1073741824, 0, 2949134, -1073741824, 0, 2949135, -1073741824, 0, 2949136, -1073741824, 0, 2949137, -1073741824, 0, 2949138, -1073741824, 0, 2949139, -1073741824, 0, 2949140, -1073741824, 0, 2949148, -1073741824, 0, 2949151, -1073741824, 0, 2949152, -1073741824, 0, 2949153, -1073741824, 0, 2949154, -1073741824, 0, 3014676, -1073741824, 0, 3014677, -1073741824, 0, 3014678, -1073741824, 0, 3014679, -1073741824, 0, 3014680, -1073741824, 0, 3014684, -1073741824, 0, 3014687, -1073741824, 0, 3080216, -1073741824, 0, 3080217, -1073741824, 0, 3080218, -1073741824, 0, 3080219, -1073741824, 0, 3080220, -1073741824, 0, 3080221, -1073741824, 0, 3080222, -1073741824, 0, 3080223, -1073741824, 0 )\n[connection signal=\"body_entered\" from=\"Player/Area2D\" to=\"Player\" method=\"_on_Area2D_body_entered\"]\n"
  },
  {
    "path": "examples/top-down-ten-minutes/godot-haskell.nix",
    "content": "{ fetchFromGitHub, mkDerivation, aeson, ansi-wl-pprint, base, bytestring, c2hs\n, casing, colour, containers, hpack, lens, linear, mtl, parsec\n, parsers, stdenv, stm, template-haskell, text\n, unordered-containers, vector\n}:\nmkDerivation {\n  pname = \"godot-haskell\";\n  version = \"3.1.0.0\";\n  src = fetchFromGitHub {\n    owner = \"SimulaVR\";\n    repo = \"godot-haskell\";\n    rev = \"b423d4f2fa5a6a3dcfffb82bb36be571adb29d34\"; # godot-haskell rev\n    # Use nix-prefetch-git to get the hash\n    sha256 = \"0jh2j5rr90dqdxvcipygwnhhj7j2dj4zvm6gbdpg106ll60pyqrp\";\n    fetchSubmodules = true;\n  };\n  libraryHaskellDepends = [\n    aeson ansi-wl-pprint base bytestring casing colour containers lens\n    linear mtl parsec parsers stm template-haskell text\n    unordered-containers vector\n  ];\n  libraryToolDepends = [ c2hs hpack ];\n  doHaddock = false;\n  preConfigure = \"hpack\";\n  homepage = \"https://github.com/KaneTW/godot-haskell#readme\";\n  description = \"Haskell bindings for the Godot game engine API\";\n  license = stdenv.lib.licenses.bsd3;\n}\n\n\n"
  },
  {
    "path": "examples/top-down-ten-minutes/hie.yaml",
    "content": "cradle:\n  stack:\n    - path: \"./src\"\n      component: \"top-down-ten-minutes:lib\"\n\n    - path: \"./game\"\n      component: \"top-down-ten-minutes:lib\"\n"
  },
  {
    "path": "examples/top-down-ten-minutes/package.yaml",
    "content": "name: top-down-ten-minutes\nversion: '0.0.0.0'\ndescription: Please see the README on Github at <https://github.com/SimulaVR/godot-haskell/tree/master/demo#readme>\nauthor: Andrei Barbu\nmaintainer: andrei@0xab.com\ncopyright: Andrei Barbu 2019, 2021\nlicense: BSD3\ngithub: SimulaVR/godot-haskell\nextra-source-files:\n  - ChangeLog.md\n  - README.md\ndependencies:\n  - base >=4.12 && <5\n  - godot-haskell\n  - linear\n  - random\n  - text\n  - vector\n  - strict-concurrency\n  - lens\n  - template-haskell\n  - th-abstraction\n  - containers\n  - extra\n  - mono-traversable\nlibrary:\n  source-dirs:\n    - src\n    - game\n  default-extensions:\n    - FlexibleContexts\n    - MultiParamTypeClasses\n    - OverloadedStrings\n    - TemplateHaskell\n    - TypeApplications\n    - TypeFamilies\n    - DataKinds\n    - FlexibleInstances\n    - ScopedTypeVariables\n    - AllowAmbiguousTypes\n    - TupleSections\n    - FunctionalDependencies\n    - LambdaCase\n    - TypeOperators\n  exposed-modules:\n    - Lib\n  ghc-options: -Wall -Wno-orphans -O0 -Wno-name-shadowing\n\nverbatim: |\n  foreign-library top-down-ten-minutes\n    type: native-shared\n    other-modules: FLib\n    hs-source-dirs: ffi/flib\n    c-sources: ffi/cbits/flib.c\n    build-depends:\n        base >= 4.12 && <5\n      , godot-haskell\n      , top-down-ten-minutes\n      , text\n    default-language: Haskell2010\n"
  },
  {
    "path": "examples/top-down-ten-minutes/pinned-nixpkgs.nix",
    "content": "{}:\n\nlet\n  # 19.03-beta (25 feb)\n  rev = \"0c0954781e257b8b0dc49341795a2fe7d96945a3\"; # pinned-nixpkgs rev\n  pkgs = import (builtins.fetchTarball {\n      url = \"https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz\";\n    }) {};\nin\n  pkgs\n\n\n"
  },
  {
    "path": "examples/top-down-ten-minutes/shell.nix",
    "content": "{ nixpkgs ? import ./pinned-nixpkgs.nix {}\n, compiler ? \"default\"\n, doBenchmark ? false }:\n\n\nlet\n\n  inherit (nixpkgs) pkgs;\n\n  haskellPackages = if compiler == \"default\"\n                       then pkgs.haskellPackages\n                       else pkgs.haskell.packages.${compiler};\n\n  f = { mkDerivation, stdenv, base, godot-haskell, linear, text , vector, stm }:\n    mkDerivation {\n      pname = \"top-down-ten-minutes\";\n      version = \"3.1.0.0\";\n      src = ./.;\n      libraryHaskellDepends = [\n        base godot-haskell linear text vector stm\n      ];\n      libraryToolDepends = [];\n      homepage = \"https://github.com/abarbu/top-down-ten-minutes#readme\";\n      license = stdenv.lib.licenses.bsd3;\n    };\n\n  variant = if doBenchmark then pkgs.haskell.lib.doBenchmark else pkgs.lib.id;\n\n  drv = variant (haskellPackages.callPackage f {\n      godot-haskell = haskellPackages.callPackage ./godot-haskell.nix {fetchFromGitHub = pkgs.fetchFromGitHub;};\n    });\n\nin\n\n  if pkgs.lib.inNixShell then drv.env else drv\n\n\n"
  },
  {
    "path": "examples/top-down-ten-minutes/src/Game/World.hs",
    "content": "{-# LANGUAGE LambdaCase, TypeOperators #-}\n{-# OPTIONS_GHC -Wno-name-shadowing #-}\nmodule Game.World where\nimport Control.Lens\nimport Control.Monad\nimport Control.Monad.Extra\nimport Godot\nimport Godot.Core.Node as Node\nimport qualified Godot.Core.AnimationPlayer as A\nimport Godot.Core.Input as Input\nimport Godot.Core.KinematicBody2D\nimport Godot.Core.Node2D\nimport Godot.Core.Particles2D\nimport Godot.Core.Object\nimport Godot.Core.PathFollow2D\nimport Godot.Core.RigidBody2D\nimport Godot.Core.Timer as Timer\nimport Godot.Core.CanvasItem\nimport Godot.Core.SceneTree\nimport Godot.Gdnative\nimport Linear.V2\nimport System.Random\nimport Project.Support\nimport Project.Scenes.World()\nimport Project.Scenes.Bullet()\nimport Project.Scenes.Enemy()\nimport Project.Scenes.Explosion()\nimport Data.String\nimport System.IO.Unsafe\nimport qualified Data.Text as T\nimport Data.Coerce\nimport Data.Maybe\nimport Data.Typeable\n\ninstance IsString GodotString where\n  fromString = unsafePerformIO . toLowLevel . T.pack\n\ndata Player = Player\n  { _base     :: KinematicBody2D\n  , _movespeed :: Float\n  , _bulletspeed :: Float\n  , _bullet :: MVar (PackedScene' \"Bullet\")\n  }\n\ndata Enemy = Enemy\n  { _ebase     :: KinematicBody2D\n  , _motion    :: Vector2\n  , _explosion :: MVar (PackedScene' \"Explosion\")\n  }\n\ndata Bullet = Bullet\n  { _bbase     :: RigidBody2D\n  }\n\nmakeFieldsNoPrefix ''Player\nmakeFieldsNoPrefix ''Enemy\nmakeFieldsNoPrefix ''Bullet\n\n-- * Player\n\ninstance NodeInit Player where\n  init b = do\n    Player b 500 500 <$> newEmptyMVar\ninstance NodeInit Enemy where\n  init b = Enemy b <$> godot_vector2_new 0 0 <*> newEmptyMVar\ninstance NodeInit Bullet where\n  init b = pure $ Bullet b\n\ninstance NodeMethod Player \"_ready\" '[] (IO ()) where\n  nodeMethod self = putMVar (self ^. bullet) =<< preloadScene\n\ninstance NodeMethod Player \"_physics_process\" '[Float] (IO ()) where\n  nodeMethod self _ = do\n    Just inp <- getSingleton @Input\n    action <- sum <$> mapM (\\(c,v) -> (v *). fromIntegral . fromEnum <$>\n                                  (is_action_pressed inp =<< toLowLevel c))\n             [(\"left\", V2 (-1) 0) ,(\"right\", V2 1 0) ,(\"up\", V2 0 (-1)) ,(\"down\", V2 0 1)]\n    motion <- godot_vector2_normalized =<< toLowLevel action\n    motion <- godot_vector2_operator_multiply_scalar motion $ realToFrac (self ^. movespeed)\n    void $ move_and_slide self motion Nothing Nothing Nothing Nothing Nothing\n    look_at self =<< get_global_mouse_position self\n    whenM (is_action_just_pressed inp =<< toLowLevel \"LMB\") $ fire self\n\ninstance NodeMethod Player \"_on_Area2D_body_entered\" '[Node] (IO ()) where\n  nodeMethod self body = do\n    n <- fromLowLevel =<< get_name body\n    when (\"Enemy\" `T.isInfixOf` n) $ kill self\n\nfire :: Player -> IO ()\nfire self = do\n    b <- sceneInstance =<< readMVar (self ^. bullet)\n    set_position b =<< get_global_position self\n    set_rotation_degrees b =<< get_rotation_degrees self\n    apply_impulse b <$> toLowLevel (V2 0 0)\n                    <*> (godot_vector2_rotated\n                          <$> toLowLevel (V2 (self^.bulletspeed) 0)\n                          <*> (realToFrac <$> get_rotation self)\n                           & join)\n                     & join\n    call_deferred  <$> (get_root =<< get_tree self)\n                   <*> toLowLevel \"add_child\"\n                   <*> pure [toVariant b]\n                    & join\n\n-- * Enemy\n\ninstance NodeMethod Enemy \"_ready\" '[] (IO ()) where\n  nodeMethod self = putMVar (self ^. explosion) =<< preloadScene\n\ninstance NodeMethod Enemy \"_on_Area2D_body_entered\" '[Node] (IO ()) where\n  nodeMethod self body = do\n    n <- fromLowLevel =<< get_name body\n    when (\"Bullet\" `T.isInfixOf` n) $ do\n      ex <- sceneInstance =<< readMVar (self ^. explosion)\n      set_position ex =<< get_position self\n      set_emitting ex True\n      call_deferred  <$> (get_root =<< get_tree self)\n                     <*> toLowLevel \"add_child\"\n                     <*> pure [toVariant ex]\n                      & join\n      queue_free self\n\nkill :: Player -> IO ()\nkill self = void . reload_current_scene =<< get_tree self\n\ninstance NodeMethod Enemy \"_physics_process\" '[Float] (IO ()) where\n  nodeMethod self _ = do\n    pl <- get_node <$> get_parent self <*> toLowLevel \"Player\" & join\n    pp <- get_position =<< tryCast' @Node2D pl\n    ps <- get_position self\n    set_position self =<< godot_vector2_operator_add ps\n                      =<< (godot_vector2_operator_divide_scalar <$> godot_vector2_operator_subtract pp ps\n                                                              <*> pure 50 & join)\n    look_at self pp\n    void $ move_and_collide self (self ^. motion) Nothing Nothing Nothing\n\n-- * Bullet\n\ninstance NodeMethod Bullet \"_on_Bullet_body_entered\" '[Node] (IO ()) where\n  nodeMethod self _ = do\n    n <- getNode' @\"AnimationPlayer\" self\n    A.play n (Just \"fadeout\") Nothing Nothing Nothing\n\ninstance NodeMethod Bullet \"_on_AnimationPlayer_animation_finished\" '[GodotString] (IO ()) where\n  nodeMethod self _ = queue_free self\n\nsetupNode ''Player \"World\" \"Player\"\nderiveBase ''Player\n\nsetupNode ''Enemy \"Enemy\" \"Enemy\"\nderiveBase ''Enemy\n\nsetupNode ''Bullet \"Bullet\" \"Bullet\"\nderiveBase ''Bullet\n"
  },
  {
    "path": "examples/top-down-ten-minutes/src/Lib.hs",
    "content": "module Lib (exports) where\nimport Godot\nimport Project.Support\nimport Project.Requirements\nimport Game.World\n\nexports :: GdnativeHandle -> IO ()\nexports = registerAll' @Nodes @'[Bullet,Enemy,Player]\n"
  },
  {
    "path": "examples/top-down-ten-minutes/src/Project/Requirements.hs",
    "content": "-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\n\nmodule Project.Requirements where\nimport Project.Support\n\ntype Nodes = '[OneResourceNode \"Bullet\" \"Bullet\", OneResourceNode \"Enemy\" \"Enemy\", OneResourceNode \"Player\" \"Player\"]\n"
  },
  {
    "path": "examples/top-down-ten-minutes/src/Project/Scenes/Bullet.hs",
    "content": "-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\n\n{-# LANGUAGE FlexibleContexts, FunctionalDependencies, MultiParamTypeClasses,\n  UndecidableInstances, OverloadedStrings, TemplateHaskell, TypeApplications,\n  TypeFamilies, DataKinds, TypeOperators, FlexibleInstances, RankNTypes,\n  AllowAmbiguousTypes, ScopedTypeVariables, DerivingStrategies,\n  GeneralizedNewtypeDeriving, LambdaCase #-}\n\nmodule Project.Scenes.Bullet where\nimport Project.Support\nimport Godot\nimport GHC.TypeLits\n\nimport Godot.Core.AnimationPlayer()\nimport Godot.Core.RigidBody2D()\nimport Godot.Core.CollisionShape2D()\nimport Godot.Core.Sprite()\n\ninstance SceneResourcePath \"Bullet\" where\n  sceneResourcePath = \"res://Bullet.tscn\"\n\n\ninstance SceneRoot \"Bullet\" where\n  type SceneRootNode \"Bullet\" = \"Bullet\"\n\n\ninstance SceneNode        \"Bullet\" \"AnimationPlayer\" where\n  type SceneNodeType      \"Bullet\" \"AnimationPlayer\" = AnimationPlayer\n  type SceneNodeName      \"Bullet\" \"AnimationPlayer\" = \"AnimationPlayer\"\n  type SceneNodeIsHaskell \"Bullet\" \"AnimationPlayer\" = 'Nothing\n\n\ninstance SceneNode        \"Bullet\" \"Bullet\" where\n  type SceneNodeType      \"Bullet\" \"Bullet\" = RigidBody2D\n  type SceneNodeName      \"Bullet\" \"Bullet\" = \"Bullet\"\n  type SceneNodeIsHaskell \"Bullet\" \"Bullet\" = 'Just '(\"Bullet\", \"Bullet\")\n\n\ninstance SceneNode        \"Bullet\" \"CollisionShape2D\" where\n  type SceneNodeType      \"Bullet\" \"CollisionShape2D\" = CollisionShape2D\n  type SceneNodeName      \"Bullet\" \"CollisionShape2D\" = \"CollisionShape2D\"\n  type SceneNodeIsHaskell \"Bullet\" \"CollisionShape2D\" = 'Nothing\n\n\ninstance SceneNode        \"Bullet\" \"Sprite\" where\n  type SceneNodeType      \"Bullet\" \"Sprite\" = Sprite\n  type SceneNodeName      \"Bullet\" \"Sprite\" = \"Sprite\"\n  type SceneNodeIsHaskell \"Bullet\" \"Sprite\" = 'Nothing\n\n\ninstance SceneConnection \"Bullet\" \"AnimationPlayer\" \"animation_finished\" \"Bullet\" \"_on_AnimationPlayer_animation_finished\"\n\n\ninstance SceneConnection \"Bullet\" \"Bullet\" \"body_entered\" \"Bullet\" \"_on_Bullet_body_entered\"\n\n"
  },
  {
    "path": "examples/top-down-ten-minutes/src/Project/Scenes/Enemy.hs",
    "content": "-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\n\n{-# LANGUAGE FlexibleContexts, FunctionalDependencies, MultiParamTypeClasses,\n  UndecidableInstances, OverloadedStrings, TemplateHaskell, TypeApplications,\n  TypeFamilies, DataKinds, TypeOperators, FlexibleInstances, RankNTypes,\n  AllowAmbiguousTypes, ScopedTypeVariables, DerivingStrategies,\n  GeneralizedNewtypeDeriving, LambdaCase #-}\n\nmodule Project.Scenes.Enemy where\nimport Project.Support\nimport Godot\nimport GHC.TypeLits\n\nimport Godot.Core.Area2D()\nimport Godot.Core.CollisionShape2D()\nimport Godot.Core.KinematicBody2D()\nimport Godot.Core.Sprite()\n\ninstance SceneResourcePath \"Enemy\" where\n  sceneResourcePath = \"res://Enemy.tscn\"\n\n\ninstance SceneRoot \"Enemy\" where\n  type SceneRootNode \"Enemy\" = \"Enemy\"\n\n\ninstance SceneNode        \"Enemy\" \"Area2D\" where\n  type SceneNodeType      \"Enemy\" \"Area2D\" = Area2D\n  type SceneNodeName      \"Enemy\" \"Area2D\" = \"Area2D\"\n  type SceneNodeIsHaskell \"Enemy\" \"Area2D\" = 'Nothing\n\n\ninstance SceneNode        \"Enemy\" \"Area2D/CollisionShape2D\" where\n  type SceneNodeType      \"Enemy\" \"Area2D/CollisionShape2D\" = CollisionShape2D\n  type SceneNodeName      \"Enemy\" \"Area2D/CollisionShape2D\" = \"CollisionShape2D\"\n  type SceneNodeIsHaskell \"Enemy\" \"Area2D/CollisionShape2D\" = 'Nothing\n\n\ninstance SceneNode        \"Enemy\" \"Enemy\" where\n  type SceneNodeType      \"Enemy\" \"Enemy\" = KinematicBody2D\n  type SceneNodeName      \"Enemy\" \"Enemy\" = \"Enemy\"\n  type SceneNodeIsHaskell \"Enemy\" \"Enemy\" = 'Just '(\"Enemy\", \"Enemy\")\n\n\ninstance SceneNode        \"Enemy\" \"Sprite\" where\n  type SceneNodeType      \"Enemy\" \"Sprite\" = Sprite\n  type SceneNodeName      \"Enemy\" \"Sprite\" = \"Sprite\"\n  type SceneNodeIsHaskell \"Enemy\" \"Sprite\" = 'Nothing\n\n\ninstance SceneConnection \"Enemy\" \"Area2D\" \"body_entered\" \"Enemy\" \"_on_Area2D_body_entered\"\n\n"
  },
  {
    "path": "examples/top-down-ten-minutes/src/Project/Scenes/Explosion.hs",
    "content": "-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\n\n{-# LANGUAGE FlexibleContexts, FunctionalDependencies, MultiParamTypeClasses,\n  UndecidableInstances, OverloadedStrings, TemplateHaskell, TypeApplications,\n  TypeFamilies, DataKinds, TypeOperators, FlexibleInstances, RankNTypes,\n  AllowAmbiguousTypes, ScopedTypeVariables, DerivingStrategies,\n  GeneralizedNewtypeDeriving, LambdaCase #-}\n\nmodule Project.Scenes.Explosion where\nimport Project.Support\nimport Godot\nimport GHC.TypeLits\n\nimport Godot.Core.Particles2D()\n\ninstance SceneResourcePath \"Explosion\" where\n  sceneResourcePath = \"res://Explosion.tscn\"\n\n\ninstance SceneRoot \"Explosion\" where\n  type SceneRootNode \"Explosion\" = \"Particles2D\"\n\n\ninstance SceneNode        \"Explosion\" \"Particles2D\" where\n  type SceneNodeType      \"Explosion\" \"Particles2D\" = Particles2D\n  type SceneNodeName      \"Explosion\" \"Particles2D\" = \"Particles2D\"\n  type SceneNodeIsHaskell \"Explosion\" \"Particles2D\" = 'Nothing\n\n"
  },
  {
    "path": "examples/top-down-ten-minutes/src/Project/Scenes/World.hs",
    "content": "-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\n\n{-# LANGUAGE FlexibleContexts, FunctionalDependencies, MultiParamTypeClasses,\n  UndecidableInstances, OverloadedStrings, TemplateHaskell, TypeApplications,\n  TypeFamilies, DataKinds, TypeOperators, FlexibleInstances, RankNTypes,\n  AllowAmbiguousTypes, ScopedTypeVariables, DerivingStrategies,\n  GeneralizedNewtypeDeriving, LambdaCase #-}\n\nmodule Project.Scenes.World where\nimport Project.Support\nimport Godot\nimport GHC.TypeLits\n\nimport Godot.Core.Area2D()\nimport Godot.Core.Camera2D()\nimport Godot.Core.CollisionShape2D()\nimport Godot.Core.PackedScene()\nimport Godot.Core.Light2D()\nimport Godot.Core.KinematicBody2D()\nimport Godot.Core.Sprite()\nimport Godot.Core.TileMap()\nimport Godot.Core.Node2D()\n\ninstance SceneResourcePath \"World\" where\n  sceneResourcePath = \"res://world.tscn\"\n\n\ninstance SceneRoot \"World\" where\n  type SceneRootNode \"World\" = \"world\"\n\n\ninstance SceneNode        \"World\" \"Player/Area2D\" where\n  type SceneNodeType      \"World\" \"Player/Area2D\" = Area2D\n  type SceneNodeName      \"World\" \"Player/Area2D\" = \"Area2D\"\n  type SceneNodeIsHaskell \"World\" \"Player/Area2D\" = 'Nothing\n\n\ninstance SceneNode        \"World\" \"Player/Camera2D\" where\n  type SceneNodeType      \"World\" \"Player/Camera2D\" = Camera2D\n  type SceneNodeName      \"World\" \"Player/Camera2D\" = \"Camera2D\"\n  type SceneNodeIsHaskell \"World\" \"Player/Camera2D\" = 'Nothing\n\n\ninstance SceneNode        \"World\" \"Player/Area2D/CollisionShape2D\" where\n  type SceneNodeType      \"World\" \"Player/Area2D/CollisionShape2D\" = CollisionShape2D\n  type SceneNodeName      \"World\" \"Player/Area2D/CollisionShape2D\" = \"CollisionShape2D\"\n  type SceneNodeIsHaskell \"World\" \"Player/Area2D/CollisionShape2D\" = 'Nothing\n\n\ninstance SceneNode        \"World\" \"Enemy1\" where\n  type SceneNodeType      \"World\" \"Enemy1\" = PackedScene' \"Enemy\"\n  type SceneNodeName      \"World\" \"Enemy1\" = \"Enemy1\"\n  type SceneNodeIsHaskell \"World\" \"Enemy1\" = 'Just '(\"Enemy\", \"Enemy\")\n\n\ninstance SceneNode        \"World\" \"Enemy10\" where\n  type SceneNodeType      \"World\" \"Enemy10\" = PackedScene' \"Enemy\"\n  type SceneNodeName      \"World\" \"Enemy10\" = \"Enemy10\"\n  type SceneNodeIsHaskell \"World\" \"Enemy10\" = 'Just '(\"Enemy\", \"Enemy\")\n\n\ninstance SceneNode        \"World\" \"Enemy2\" where\n  type SceneNodeType      \"World\" \"Enemy2\" = PackedScene' \"Enemy\"\n  type SceneNodeName      \"World\" \"Enemy2\" = \"Enemy2\"\n  type SceneNodeIsHaskell \"World\" \"Enemy2\" = 'Just '(\"Enemy\", \"Enemy\")\n\n\ninstance SceneNode        \"World\" \"Enemy3\" where\n  type SceneNodeType      \"World\" \"Enemy3\" = PackedScene' \"Enemy\"\n  type SceneNodeName      \"World\" \"Enemy3\" = \"Enemy3\"\n  type SceneNodeIsHaskell \"World\" \"Enemy3\" = 'Just '(\"Enemy\", \"Enemy\")\n\n\ninstance SceneNode        \"World\" \"Enemy4\" where\n  type SceneNodeType      \"World\" \"Enemy4\" = PackedScene' \"Enemy\"\n  type SceneNodeName      \"World\" \"Enemy4\" = \"Enemy4\"\n  type SceneNodeIsHaskell \"World\" \"Enemy4\" = 'Just '(\"Enemy\", \"Enemy\")\n\n\ninstance SceneNode        \"World\" \"Enemy5\" where\n  type SceneNodeType      \"World\" \"Enemy5\" = PackedScene' \"Enemy\"\n  type SceneNodeName      \"World\" \"Enemy5\" = \"Enemy5\"\n  type SceneNodeIsHaskell \"World\" \"Enemy5\" = 'Just '(\"Enemy\", \"Enemy\")\n\n\ninstance SceneNode        \"World\" \"Enemy6\" where\n  type SceneNodeType      \"World\" \"Enemy6\" = PackedScene' \"Enemy\"\n  type SceneNodeName      \"World\" \"Enemy6\" = \"Enemy6\"\n  type SceneNodeIsHaskell \"World\" \"Enemy6\" = 'Just '(\"Enemy\", \"Enemy\")\n\n\ninstance SceneNode        \"World\" \"Enemy7\" where\n  type SceneNodeType      \"World\" \"Enemy7\" = PackedScene' \"Enemy\"\n  type SceneNodeName      \"World\" \"Enemy7\" = \"Enemy7\"\n  type SceneNodeIsHaskell \"World\" \"Enemy7\" = 'Just '(\"Enemy\", \"Enemy\")\n\n\ninstance SceneNode        \"World\" \"Enemy8\" where\n  type SceneNodeType      \"World\" \"Enemy8\" = PackedScene' \"Enemy\"\n  type SceneNodeName      \"World\" \"Enemy8\" = \"Enemy8\"\n  type SceneNodeIsHaskell \"World\" \"Enemy8\" = 'Just '(\"Enemy\", \"Enemy\")\n\n\ninstance SceneNode        \"World\" \"Enemy9\" where\n  type SceneNodeType      \"World\" \"Enemy9\" = PackedScene' \"Enemy\"\n  type SceneNodeName      \"World\" \"Enemy9\" = \"Enemy9\"\n  type SceneNodeIsHaskell \"World\" \"Enemy9\" = 'Just '(\"Enemy\", \"Enemy\")\n\n\ninstance SceneNode        \"World\" \"Player/Light2D\" where\n  type SceneNodeType      \"World\" \"Player/Light2D\" = Light2D\n  type SceneNodeName      \"World\" \"Player/Light2D\" = \"Light2D\"\n  type SceneNodeIsHaskell \"World\" \"Player/Light2D\" = 'Nothing\n\n\ninstance SceneNode        \"World\" \"Player\" where\n  type SceneNodeType      \"World\" \"Player\" = KinematicBody2D\n  type SceneNodeName      \"World\" \"Player\" = \"Player\"\n  type SceneNodeIsHaskell \"World\" \"Player\" = 'Just '(\"Player\", \"Player\")\n\n\ninstance SceneNode        \"World\" \"Sprite\" where\n  type SceneNodeType      \"World\" \"Sprite\" = Sprite\n  type SceneNodeName      \"World\" \"Sprite\" = \"Sprite\"\n  type SceneNodeIsHaskell \"World\" \"Sprite\" = 'Nothing\n\n\ninstance SceneNode        \"World\" \"TileMap\" where\n  type SceneNodeType      \"World\" \"TileMap\" = TileMap\n  type SceneNodeName      \"World\" \"TileMap\" = \"TileMap\"\n  type SceneNodeIsHaskell \"World\" \"TileMap\" = 'Nothing\n\n\ninstance SceneNode        \"World\" \"world\" where\n  type SceneNodeType      \"World\" \"world\" = Node2D\n  type SceneNodeName      \"World\" \"world\" = \"world\"\n  type SceneNodeIsHaskell \"World\" \"world\" = 'Nothing\n\n\ninstance SceneConnection \"World\" \"Player/Area2D\" \"body_entered\" \"Player\" \"_on_Area2D_body_entered\"\n\n"
  },
  {
    "path": "examples/top-down-ten-minutes/src/Project/Scenes.hs",
    "content": "-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\n\nmodule Project.Scenes (module M) where\nimport qualified Project.Scenes.Bullet as M\nimport qualified Project.Scenes.Enemy as M\nimport qualified Project.Scenes.Explosion as M\nimport qualified Project.Scenes.World as M\n\n"
  },
  {
    "path": "examples/top-down-ten-minutes/src/Project/Support.hs",
    "content": "-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\n\n{-# LANGUAGE FlexibleContexts, FunctionalDependencies, MultiParamTypeClasses,\n  UndecidableInstances, OverloadedStrings, TemplateHaskell, TypeApplications,\n  TypeFamilies, DataKinds, TypeOperators, FlexibleInstances, RankNTypes,\n  AllowAmbiguousTypes, ScopedTypeVariables, DerivingStrategies,\n  GeneralizedNewtypeDeriving, LambdaCase #-}\n\n{-# OPTIONS_GHC -Wno-name-shadowing #-}\n\nmodule Project.Support where\nimport Godot.Core.Object\nimport Godot.Internal.Dispatch\nimport Godot.Gdnative.Internal.Types\nimport Data.Typeable\nimport qualified Data.Text as T\nimport qualified Data.Map as M\nimport Language.Haskell.TH\nimport Language.Haskell.TH.Datatype\nimport Control.Lens\nimport Control.Monad\nimport Godot\nimport Godot.Gdnative\nimport GHC.TypeLits\nimport Data.List\nimport Data.Maybe\nimport Data.Coerce\nimport Godot.Core.ResourceLoader\nimport Godot.Core.PackedScene\n\n-- * Helper to keep Haskell types in sync with the Godot project.\nnewtype PackedScene' (scene :: Symbol) = PackedScene' PackedScene\n                        deriving newtype AsVariant\ninstance HasBaseClass (PackedScene' scene) where\n        type BaseClass (PackedScene' scene) = PackedScene\n        super = coerce\nderiveBase ''PackedScene'\n\n-- | Use this to register all of your classes, it makes sure that you don't\n-- forget a class that Godot needs.\n-- \n-- exports :: GdnativeHandle -> IO ()\n-- exports desc = registerAll' @Nodes @'[HUD, Main, Mob, Player] desc\nregisterAll' :: forall (res :: [*]) (ns :: [*]). ImplementedInHaskell res ns => GdnativeHandle -> IO ()\nregisterAll' = fill @res @ns\n\n-- | A safe version of getNode; gives you back the Godot object\n-- getNode' @\"MobPath/MobSpawnLocation\" self\ngetNode' :: forall label b cls scene name. (Object :< cls, Node :< cls,\n                                      Node :< b,\n                                      NodeInScene scene name cls,\n                                      SceneNode scene label,\n                                      SceneNodeType scene label ~ b,\n                                      KnownSymbol label)\n         => cls -> IO b\ngetNode' o = getNode @(SceneNodeType scene label) o (T.pack $ symbolVal (Proxy @label))\n\n-- | A safe version of getNodeNativeScript; gives you back the Haskell object\n-- getNodeNativeScript' @\"HUD\" self\ngetNodeNativeScript' :: forall label b cls scene name scene' label'.\n                        (NativeScript b, Node :< cls, Object :< cls, NodeInScene scene name cls,\n                         SceneNodeIsHaskell scene label ~ 'Just '(scene', label'),\n                         NodeInScene scene' label' b,\n                         KnownSymbol label)\n                     => cls -> IO b\ngetNodeNativeScript' cls = getNodeNativeScript @b cls (T.pack $ symbolVal (Proxy @label))\n\n-- | A safe version of emit_signal; will error at compile time if the signal doesn't exist\n-- emit_signal' @\"hit\" self []\n-- TODO We don't check arguments yet!\nemit_signal' :: forall label args cls.\n               (Object :< cls, Object :< cls, NodeSignal cls label args, KnownSymbol label)\n             => cls -> [Variant 'GodotTy] -> IO ()\nemit_signal' cls args = do\n  name <- toLowLevel (T.pack $ symbolVal (Proxy @label))\n  emit_signal cls name args\n\n-- | A safe version of await; will error at compile time if the signal and nodes don't exist\n-- await' @\"MessageTimer\" @\"timeout\" self $ \\self' -> pure ()\nawait' :: forall (label :: Symbol) (signal :: Symbol) a b cls scene name.\n         (NodeInScene scene name cls, NativeScript cls, KnownSymbol label, KnownSymbol signal,\n          SceneNode scene label, Node :< cls, AsVariant a, Node :< SceneNodeType scene label,\n          NodeSignal b signal '[], SceneNodeType scene label ~ b)\n       => cls -> (cls -> IO a) -> IO ()\nawait' o f = do\n  n <- getNode' @label o\n  await o n (T.pack $ symbolVal (Proxy @signal)) f\n\n-- | Preload a scene so you can instantiate it later.\n-- Use this when the scene is known ahead of time. Store scenes in as @PackedScene' \"SceneName\"@\npreloadScene :: forall scene. (KnownSymbol scene, SceneResourcePath scene) => IO (PackedScene' scene)\npreloadScene = do\n  Just r <- getSingleton @ResourceLoader\n  path <- toLowLevel $ sceneResourcePath @scene\n  PackedScene' <$> (tryCast' =<< load r path Nothing Nothing)\n\n-- | Create an instance of a scene from a @PackedScene' \"SceneName\"@\n-- Makes sure that you are getting the type of the scene root.\nsceneInstance :: forall scene o. (Node :< o, Typeable o, AsVariant o, SceneNodeType scene (SceneRootNode scene) ~ o) => PackedScene' scene -> IO o\nsceneInstance e = tryCast' =<< instance' e Nothing\n\n-- | Combines nodeMethod with getNode' to call functions in a type-safe way\n-- Provides no additional safety compared to using the two separately, but does clean up code a bit.\n-- For example: fn @\"MyNode\" @\"hide\" self\nfn :: forall (node :: Symbol) (func :: Symbol) scene name cls args ret b.\n         (Object :< cls, Node :< cls,\n           Node :< SceneNodeType scene node,\n           NodeInScene scene name cls, SceneNode scene node,\n           NodeMethodSuper (SceneNodeType scene node) func args ret,\n           ListToFun args ret ~ IO b, KnownSymbol node) => cls -> IO b\nfn self = nodeMethod' @_ @func =<< getNode' @node self\n\n-- | Get the file path to the scene\nclass SceneResourcePath (scene :: Symbol) where\n  sceneResourcePath :: forall scene. T.Text\n\n-- * Internal helpers: You won't use these\n\n-- | The root node of a scene\nclass SceneRoot (scene :: Symbol) where\n  type SceneRootNode scene :: Symbol\n\n-- | A node in the scene, we know its type and its name, @s@ is the path relate\n-- to the scene\nclass (Typeable (SceneNodeType scene s),\n       AsVariant (SceneNodeType scene s),\n       Object :< SceneNodeType scene s) => SceneNode (scene :: Symbol) (s :: Symbol) where\n  type SceneNodeType scene s :: *\n  type SceneNodeName scene s :: Symbol\n  type SceneNodeIsHaskell scene s :: Maybe (Symbol, Symbol)\n\n-- | You declare this for your types. You offer up a haskell type, @n@, for the\n-- node. This class verifies that your base class is correct.\nclass (HasBaseClass n, BaseClass n ~ SceneNodeType scene s) =>\n      NodeInScene (scene :: Symbol) (s :: Symbol) n | scene s -> n, n -> scene s\n\n-- | A connection between nodes in a scene. @from@ and @to@ are paths.\n-- It connects @signal@ in @from@ to @method@ in @to@.\nclass SceneConnection (scene :: Symbol) (from :: Symbol) (signal :: Symbol) (to :: Symbol) (method :: Symbol)\n\n-- | Internal, just for convenience\ndata OneResourceNode (resource :: Symbol) (name :: Symbol)\n\n-- | Internal. Don't touch this and don't make instances of it. It's the\n-- workhorse for making sure that you are implementing all of the classes that\n-- Godot needs, nothing more and nothing less.\nclass ImplementedInHaskell (a :: [*]) (b :: [*]) where\n  fill :: GdnativeHandle -> IO ()\n\ninstance ImplementedInHaskell '[] '[] where\n  fill _ = pure ()\n\nregisterOne :: forall ty. (NativeScript ty, AsVariant (BaseClass ty)) => GdnativeHandle -> IO ()\nregisterOne desc = registerClass $ RegClass desc $ classInit @ty\n\ninstance (NodeInScene scene name n,\n          NativeScript n, AsVariant (BaseClass n),\n          ImplementedInHaskell t t',\n          SceneNodeIsHaskell scene name ~ 'Just '(resource, name))\n          => ImplementedInHaskell (OneResourceNode resource name ': t) (n ': t') where\n  fill handle = do\n    registerOne @n handle\n    fill @t @t' handle\n\n-- | Create a signal\n-- TODO args ~ '[] is temproary, we need signeltons to reflect this into a runtime value\nsignal' :: forall cls label args.\n          (NodeSignal cls label args, KnownSymbol label, args ~ '[])\n        => (Text, [SignalArgument])\nsignal' = signal (T.pack $ symbolVal (Proxy @label)) []\n\ncreateMVarProperty' :: (Typeable ty, AsVariant ty) => Text\n                    -> (node -> MVar ty)\n                    -- ^ We typically can't do IO (for initialisation) when calling this, in\n                    -- which case we need to annotate the type without providing a value.\n                    -> Either VariantType ty\n                    -> (node -> IO ty\n                      ,node -> ty -> IO ()\n                      ,Maybe (Object -> node -> IO GodotVariant\n                             ,Object -> node -> GodotVariant -> IO ()\n                             ,PropertyAttributes))\ncreateMVarProperty' name fieldName tyOrVal =\n  (readMVar . fieldName,\n   \\c t -> propertySetter p undefined c =<< toGodotVariant t,\n   Just (propertyGetter p, propertySetter p, propertyAttrs p))\n  where p = createMVarProperty name fieldName tyOrVal\n\nappsT :: Type -> [Type] -> Type\nappsT t [] = t\nappsT t (x:xs) = appsT (AppT t x) xs\n\n-- | Verify that the signal connects to an endpoint that exists and has the right type.\nwitnessConnection :: forall (scene :: Symbol) (from :: Symbol) (signal :: Symbol) (to :: Symbol) (method :: Symbol) parent sigTy hTy.\n                    (SceneNode scene to,\n                      NodeSignal parent signal sigTy,\n                      -- TODO This the check unsound, but SceneNodeType isn't right for this constraint. What is?\n                      -- The warning produced because 'from' is not used is a reminder of this issue.\n                      -- parent :< SceneNodeType scene from,\n                      NodeMethod hTy method sigTy (IO ()),\n                      NodeInScene scene to hTy) => ()\nwitnessConnection = ()\n\n-- | Sets up a class\nclass NodeInit n where\n  init :: BaseClass n -> IO n\n\n-- | You never implement this. It's a helper so that we can have a more\n-- polymorphic call to nodeMethod which will work when the method is implemneted\n-- for any parent of the current node.\nclass NodeMethodSuper node (name :: Symbol) (args :: [*]) (ret :: *) | node name -> args, node name -> ret where\n  nodeMethod' :: node -> ListToFun args ret\n\n-- | An instance that supports calling nodeMethod' on your parents This can lead\n-- to infinite loops in the type checker on error, so we isolate it in\n-- NodeMethodSuper instead of NodeMethod.\ninstance {-# OVERLAPPABLE #-} (NodeMethod (BaseClass node) name arg ret, HasBaseClass node)\n    => NodeMethodSuper node name arg ret where\n  nodeMethod' = nodeMethod' @node @name @arg @ret\n\nmkProperty' :: forall node (name :: Symbol) ty. (NodeProperty node name ty 'False, KnownSymbol name) => ClassProperty node\nmkProperty' = ClassProperty (T.pack $ symbolVal (Proxy @name)) a s g\n  where (_,_,Just (g,s,a)) = nodeProperty @node @name @ty @'False\n\n-- | You should use this as:\n--   setupNode ''Ty\n--   deriveBase ''Ty\n-- This will instantiate everything that your Object needs\nsetupNode :: Name -> String -> String -> Q [Dec]\nsetupNode ty scene sceneNode = do\n  -- Collect information about all scenes\n  tree         <- map unTree . classInstances <$> reify ''(:<)\n  sceneRoots   <- M.fromList . map unSceneRootNode . familyInstances <$> reify ''SceneRootNode\n  sceneNodes   <- map unSceneNodeType . familyInstances <$> reify ''SceneNodeType\n  haskellNodes <- map unNodeInScene . classInstances <$> reify ''NodeInScene\n  allSignals   <- map unNodeSignal . classInstances <$> reify ''NodeSignal\n  -- Collect information about our node\n  rdt <- reifyDatatype ty\n  let base = case datatypeCons rdt of\n                    (c:_) -> case (constructorFields c, constructorVariant c) of\n                              (ConT baseTy:_, RecordConstructor (baseFn:_)) -> Just (baseTy, baseFn)\n                              _ -> Nothing\n                    _ -> Nothing\n  --\n  methods    <- filter (\\i -> i^._1 == ty) . mapMaybe unNodeMethod . classInstances <$> reify ''NodeMethod\n  properties <- filter (\\i -> i^._1 == ty) . mapMaybe unNodeProperty . classInstances <$> reify ''NodeProperty\n  let signals = filter (\\i -> i^._1 == ty) allSignals\n  connections <- filter (\\i -> i^._1 == scene && i^._4 == sceneNode) . map unConnect . classInstances <$> reify ''SceneConnection\n  -- Helpers\n  let parentsOf cls = map snd $ filter (\\(c,_) -> cls == c) tree\n  let nodeToType :: String -> String -> Name\n      nodeToType scene node = case (hty, ty ^. _4) of\n                                (Just t, _) -> t\n                                (_, Nothing) -> ty ^. _3\n                                (_, Just scene') -> case M.lookup scene' sceneRoots of\n                                                Nothing -> error $ \"Looking up the root of a scene that is lacking one. This is a bug. \" ++ show (scene', scene, node)\n                                                Just node' -> nodeToType scene' node'\n        where ty  = fromJust $ find (\\n -> n^._1 == scene && n^._2 == node) sceneNodes\n              hty = (^._3) <$> find (\\n -> n^._1 == scene && n^._2 == node) haskellNodes\n  let resolveSignalActualClass scene from signal =\n        case mapMaybe (\\p -> (p,) <$> find (\\s -> s^._2 == signal && s^._1 == p) allSignals) $ parentsOf (nodeToType scene from) of\n          -- The root issue is that the signal might not yet exist.\n          -- If witnessConnection was not unsound, this would not be needed as the error would happen later.\n           [] -> error $ \"Class \" ++ show from ++ \" used in scene \" ++ show scene ++ \" is lacking a signal named \" ++ show signal ++ \"\\n\" ++ show (nodeToType scene from) ++ \"\\n\" ++ show (parentsOf (nodeToType scene from))\n           (h:_) -> h ^. _1\n\n  -- Debug\n  when False $ runIO $ do\n    putStrLn \"Regenerating ..\"\n    print rdt\n    putStrLn \"\\nScene roots:\"\n    print sceneRoots\n    putStrLn \"\\nScene nodes types:\"\n    mapM_ print sceneNodes\n    putStrLn \"\\nMethods:\"\n    mapM_ print methods\n    putStrLn \"\\nProperties:\"\n    mapM_ print properties\n    putStrLn \"\\nSignals:\"\n    mapM_ print allSignals\n    mapM_ print signals\n    putStrLn \"\\nConnections:\"\n    mapM_ print connections\n    putStrLn \"\\nHaskell nodes:\"\n    mapM_ print haskellNodes\n\n  -- Generate code\n  bi <- case base of\n    Just (baseTy, baseFn) ->\n      [d|instance HasBaseClass $(pure $ PromotedT ty) where\n          type BaseClass $(pure $ PromotedT ty) = $(pure $ PromotedT baseTy)\n          super = $(pure $ VarE baseFn)|]\n    _ -> error \"setupNode can only handle records whose first field is the Godot base class. You can still interface with Godot, but you will need to set things up manually.\"\n  nis <- [d|instance NodeInScene $(pure $ LitT $ StrTyLit scene) $(pure $ LitT $ StrTyLit sceneNode) $(pure $ PromotedT ty)|]\n  ns <- [d|instance NativeScript $(pure $ PromotedT ty) where\n            classInit = Project.Support.init\n            classMethods = $(ListE <$> mapM (\\(t,n,argTy,_) ->\n                     let m = case nrArguments argTy of\n                                  0 -> [e|method0|]\n                                  1 -> [e|method1|]\n                                  2 -> [e|method2|]\n                                  3 -> [e|method3|]\n                                  4 -> [e|method4|]\n                                  5 -> [e|method5|]\n                                  n -> error $ \"More arguments than we currently impelement, look for 'method5' for more info \" ++ show  n\n                     in [e|$m $(pure $ LitE $ StringL n) (nodeMethod @ $(pure $ PromotedT t) @ $(pure $ LitT $ StrTyLit n))|]) methods)\n            classProperties = $(ListE <$> mapM (\\(name,prop,_,_) -> [e|mkProperty' @ $(pure $ PromotedT name) @ $(pure $ LitT $ StrTyLit prop) |]) properties)\n            classSignals = $(ListE <$> mapM (\\(ty,name,_) -> [e|signal' @ $(pure $ PromotedT ty) @ $(pure $ LitT $ StrTyLit name)|]) signals)|]\n  let cn = mkName $ \"witness_connections_\" ++ nameBase ty\n  ws <- (:) <$> (cn `sigD` [t| [()] |]) <*>\n       [d|$(varP cn) =\n             $(ListE <$> mapM (\\(scene,from,signal,to,method) ->\n                    [e|witnessConnection\n                        @ $(pure $ LitT $ StrTyLit scene)  @ $(pure $ LitT $ StrTyLit from)\n                        @ $(pure $ LitT $ StrTyLit signal) @ $(pure $ LitT $ StrTyLit to)\n                        @ $(pure $ LitT $ StrTyLit method)\n                        @ $(pure $ PromotedT $ resolveSignalActualClass scene from signal)\n                    |]) connections)|]\n  pure $ bi <> nis <> ns <> ws\n\n  where\n      unTree (InstanceD Nothing [] (AppT (AppT _ parent) child) []) = (unName child, unName parent)\n      unTree p = error $ \"I don't understand this parent \" ++ show p\n      unName (ConT x) = x\n      unName (AppT (ConT x) _) = x\n      unName x = error $ \"I don't know how to extract the name of this type: \" ++ show x\n      unSceneRootNode (TySynInstD (TySynEqn Nothing (AppT _ (LitT (StrTyLit scene))) (LitT (StrTyLit node)))) = (scene,node)\n      unSceneRootNode x = error $ \"Don't know how unpack this SceneRootNode: \" ++ show x\n      unSceneNodeType (TySynInstD (TySynEqn Nothing (AppT (AppT _ (LitT (StrTyLit scene))) (LitT (StrTyLit node))) ty))\n        = (scene,node,unName ty, unpackScene ty)\n      unSceneNodeType x = error $ \"Don't know how unpack this SceneNodeType: \" ++ show x\n      unpackScene (ConT _) = Nothing\n      unpackScene (AppT (ConT _) (LitT (StrTyLit scene))) = Just scene\n      unpackScene x = error $ \"Don't know how unpack this Scene: \" ++ show x\n      unNodeMethod (InstanceD Nothing [] (AppT (AppT (AppT (AppT (ConT _) (ConT cls)) (LitT (StrTyLit name))) arg) ret) []) \n        = Just (cls, name, arg, ret)\n      unNodeMethod _ = Nothing\n      unNodeProperty (InstanceD Nothing [] (AppT (AppT (AppT (AppT (ConT _) (ConT cls)) (LitT (StrTyLit name))) arg) ret) []) \n        = Just (cls, name, arg, ret)\n      unNodeProperty x = error $ show x\n      unNodeInScene (InstanceD Nothing [] (AppT (AppT (AppT (ConT _) (LitT (StrTyLit scene))) (LitT (StrTyLit node))) (ConT hty)) [])\n        = (scene, node, hty)\n      unNodeInScene x = error $ show x\n      unNodeSignal (InstanceD Nothing [] (AppT (AppT (AppT (ConT _) (ConT cls)) (LitT (StrTyLit name))) arg) []) = (cls, name, arg)\n      unNodeSignal _ = error \"Bad signal\"\n      unConnect (InstanceD Nothing [] (AppT (AppT (AppT (AppT (AppT _ (LitT (StrTyLit scene))) (LitT (StrTyLit from))) (LitT (StrTyLit signal))) (LitT (StrTyLit to))) (LitT (StrTyLit method))) []) = (scene, from, signal, to, method)\n      unConnect x = error $ \"Bad signal\" ++ show x\n      nrArguments :: Type -> Int\n      nrArguments (AppT _ r) = 1 + nrArguments r\n      nrArguments (SigT PromotedNilT (AppT ListT StarT)) = 0\n      nrArguments _ = error \"Can't compute # of arguments\"\n      classInstances :: Info -> [InstanceDec]\n      classInstances (ClassI _ is) = is\n      classInstances _ = error \"Bad class\"\n      familyInstances :: Info -> [InstanceDec]\n      familyInstances (FamilyI _ is) = is\n      familyInstances _ = error \"Bad class\"\n"
  },
  {
    "path": "examples/top-down-ten-minutes/stack-shell.nix",
    "content": "{ nixpkgs ? import ./pinned-nixpkgs.nix {}\n, ghc\n}:\n\nwith nixpkgs;\n\nhaskell.lib.buildStackProject {\n  inherit ghc;\n  name = \"top-down-ten-minutes\";\n  buildInputs = [];\n}\n\n\n"
  },
  {
    "path": "examples/top-down-ten-minutes/stack.yaml",
    "content": "resolver: nightly-2021-02-06\n\npackages:\n- .\n\nextra-deps:\n- ../../\n\nrequire-stack-version: \">=1.8\"\n\nnix:\n  enable: false\n  pure: true\n  packages: []\n  shell-file: stack-shell.nix\n  nix-shell-options: []\n  path: []\n  add-gc-roots: false\n\n\n"
  },
  {
    "path": "examples/top-down-ten-minutes/top-down-ten-minutes.cabal",
    "content": "cabal-version: 1.12\n\n-- This file has been generated from package.yaml by hpack version 0.33.0.\n--\n-- see: https://github.com/sol/hpack\n--\n-- hash: 10ec9e894d9fdb50a0b9d9dcb3b406e33d320e82e151cfe5d0ef335c059e3aad\n\nname:           top-down-ten-minutes\nversion:        0.0.0.0\ndescription:    Please see the README on Github at <https://github.com/SimulaVR/godot-haskell/tree/master/demo#readme>\nhomepage:       https://github.com/SimulaVR/godot-haskell#readme\nbug-reports:    https://github.com/SimulaVR/godot-haskell/issues\nauthor:         Andrei Barbu\nmaintainer:     andrei@0xab.com\ncopyright:      Andrei Barbu 2019, 2021\nlicense:        BSD3\nlicense-file:   LICENSE\nbuild-type:     Simple\nextra-source-files:\n    ChangeLog.md\n    README.md\nforeign-library top-down-ten-minutes\n  type: native-shared\n  other-modules: FLib\n  hs-source-dirs: ffi/flib\n  c-sources: ffi/cbits/flib.c\n  build-depends:\n      base >= 4.12 && <5\n    , godot-haskell\n    , top-down-ten-minutes\n    , text\n  default-language: Haskell2010\n\nsource-repository head\n  type: git\n  location: https://github.com/SimulaVR/godot-haskell\n\nlibrary\n  exposed-modules:\n      Lib\n  other-modules:\n      Game.World\n      Project.Requirements\n      Project.Scenes\n      Project.Scenes.Bullet\n      Project.Scenes.Enemy\n      Project.Scenes.Explosion\n      Project.Scenes.World\n      Project.Support\n      Paths_top_down_ten_minutes\n  hs-source-dirs:\n      src\n      game\n  default-extensions: FlexibleContexts MultiParamTypeClasses OverloadedStrings TemplateHaskell TypeApplications TypeFamilies DataKinds FlexibleInstances ScopedTypeVariables AllowAmbiguousTypes TupleSections FunctionalDependencies LambdaCase TypeOperators\n  ghc-options: -Wall -Wno-orphans -O0 -Wno-name-shadowing\n  build-depends:\n      base >=4.12 && <5\n    , containers\n    , extra\n    , godot-haskell\n    , lens\n    , linear\n    , mono-traversable\n    , random\n    , strict-concurrency\n    , template-haskell\n    , text\n    , th-abstraction\n    , vector\n  default-language: Haskell2010\n"
  },
  {
    "path": "godot-haskell.cabal",
    "content": "cabal-version: 2.0\n\n-- This file has been generated from package.yaml by hpack version 0.33.0.\n--\n-- see: https://github.com/sol/hpack\n--\n-- hash: 9eee1b834a7b311c2aaf343d7472f4478f3d5840413d415e779ebfd822966642\n\nname:           godot-haskell\nversion:        3.1.0.0\nsynopsis:       Haskell bindings for the Godot game engine API\ndescription:    This package contains Haskell bindings for GDNative and the Godot API. For details and examples, see README.md\ncategory:       Web\nhomepage:       https://github.com/KaneTW/godot-haskell#readme\nbug-reports:    https://github.com/KaneTW/godot-haskell/issues\nauthor:         David Kraeutmann\nmaintainer:     kane@kane.cx\ncopyright:      2018 David Kraeutmann\nlicense:        BSD3\nlicense-file:   LICENSE\nbuild-type:     Simple\nextra-source-files:\n    README.md\n    cbits/util.h\n    godot_headers/android/godot_android.h\n    godot_headers/arvr/godot_arvr.h\n    godot_headers/gdnative/aabb.h\n    godot_headers/gdnative/array.h\n    godot_headers/gdnative/basis.h\n    godot_headers/gdnative/color.h\n    godot_headers/gdnative/dictionary.h\n    godot_headers/gdnative/gdnative.h\n    godot_headers/gdnative/node_path.h\n    godot_headers/gdnative/plane.h\n    godot_headers/gdnative/pool_arrays.h\n    godot_headers/gdnative/quat.h\n    godot_headers/gdnative/rect2.h\n    godot_headers/gdnative/rid.h\n    godot_headers/gdnative/string.h\n    godot_headers/gdnative/string_name.h\n    godot_headers/gdnative/transform.h\n    godot_headers/gdnative/transform2d.h\n    godot_headers/gdnative/variant.h\n    godot_headers/gdnative/vector2.h\n    godot_headers/gdnative/vector3.h\n    godot_headers/gdnative_api_struct.gen.h\n    godot_headers/nativescript/godot_nativescript.h\n    godot_headers/net/godot_net.h\n    godot_headers/net/godot_webrtc.h\n    godot_headers/pluginscript/godot_pluginscript.h\n    godot_headers/videodecoder/godot_videodecoder.h\n    godot_headers/api.json\n    godot_headers/gdnative_api.json\n\nsource-repository head\n  type: git\n  location: https://github.com/KaneTW/godot-haskell\n\nlibrary\n  exposed-modules:\n      Godot\n      Godot.Api\n      Godot.Api.Types\n      Godot.Core.AcceptDialog\n      Godot.Core.AnimatedSprite\n      Godot.Core.AnimatedSprite3D\n      Godot.Core.AnimatedTexture\n      Godot.Core.Animation\n      Godot.Core.AnimationNode\n      Godot.Core.AnimationNodeAdd2\n      Godot.Core.AnimationNodeAdd3\n      Godot.Core.AnimationNodeAnimation\n      Godot.Core.AnimationNodeBlend2\n      Godot.Core.AnimationNodeBlend3\n      Godot.Core.AnimationNodeBlendSpace1D\n      Godot.Core.AnimationNodeBlendSpace2D\n      Godot.Core.AnimationNodeBlendTree\n      Godot.Core.AnimationNodeOneShot\n      Godot.Core.AnimationNodeOutput\n      Godot.Core.AnimationNodeStateMachine\n      Godot.Core.AnimationNodeStateMachinePlayback\n      Godot.Core.AnimationNodeStateMachineTransition\n      Godot.Core.AnimationNodeTimeScale\n      Godot.Core.AnimationNodeTimeSeek\n      Godot.Core.AnimationNodeTransition\n      Godot.Core.AnimationPlayer\n      Godot.Core.AnimationRootNode\n      Godot.Core.AnimationTree\n      Godot.Core.AnimationTreePlayer\n      Godot.Core.Area\n      Godot.Core.Area2D\n      Godot.Core.ArrayMesh\n      Godot.Core.ARVRAnchor\n      Godot.Core.ARVRCamera\n      Godot.Core.ARVRController\n      Godot.Core.ARVRInterface\n      Godot.Core.ARVRInterfaceGDNative\n      Godot.Core.ARVROrigin\n      Godot.Core.ARVRPositionalTracker\n      Godot.Core.ARVRServer\n      Godot.Core.AStar\n      Godot.Core.AStar2D\n      Godot.Core.AtlasTexture\n      Godot.Core.AudioBusLayout\n      Godot.Core.AudioEffect\n      Godot.Core.AudioEffectAmplify\n      Godot.Core.AudioEffectBandLimitFilter\n      Godot.Core.AudioEffectBandPassFilter\n      Godot.Core.AudioEffectChorus\n      Godot.Core.AudioEffectCompressor\n      Godot.Core.AudioEffectDelay\n      Godot.Core.AudioEffectDistortion\n      Godot.Core.AudioEffectEQ\n      Godot.Core.AudioEffectEQ10\n      Godot.Core.AudioEffectEQ21\n      Godot.Core.AudioEffectEQ6\n      Godot.Core.AudioEffectFilter\n      Godot.Core.AudioEffectHighPassFilter\n      Godot.Core.AudioEffectHighShelfFilter\n      Godot.Core.AudioEffectInstance\n      Godot.Core.AudioEffectLimiter\n      Godot.Core.AudioEffectLowPassFilter\n      Godot.Core.AudioEffectLowShelfFilter\n      Godot.Core.AudioEffectNotchFilter\n      Godot.Core.AudioEffectPanner\n      Godot.Core.AudioEffectPhaser\n      Godot.Core.AudioEffectPitchShift\n      Godot.Core.AudioEffectRecord\n      Godot.Core.AudioEffectReverb\n      Godot.Core.AudioEffectSpectrumAnalyzer\n      Godot.Core.AudioEffectSpectrumAnalyzerInstance\n      Godot.Core.AudioEffectStereoEnhance\n      Godot.Core.AudioServer\n      Godot.Core.AudioStream\n      Godot.Core.AudioStreamGenerator\n      Godot.Core.AudioStreamGeneratorPlayback\n      Godot.Core.AudioStreamMicrophone\n      Godot.Core.AudioStreamOGGVorbis\n      Godot.Core.AudioStreamPlayback\n      Godot.Core.AudioStreamPlaybackResampled\n      Godot.Core.AudioStreamPlayer\n      Godot.Core.AudioStreamPlayer2D\n      Godot.Core.AudioStreamPlayer3D\n      Godot.Core.AudioStreamRandomPitch\n      Godot.Core.AudioStreamSample\n      Godot.Core.BackBufferCopy\n      Godot.Core.BakedLightmap\n      Godot.Core.BakedLightmapData\n      Godot.Core.BaseButton\n      Godot.Core.BitMap\n      Godot.Core.BitmapFont\n      Godot.Core.Bone2D\n      Godot.Core.BoneAttachment\n      Godot.Core.BoxContainer\n      Godot.Core.BoxShape\n      Godot.Core.BulletPhysicsDirectBodyState\n      Godot.Core.BulletPhysicsServer\n      Godot.Core.Button\n      Godot.Core.ButtonGroup\n      Godot.Core.Camera\n      Godot.Core.Camera2D\n      Godot.Core.CameraFeed\n      Godot.Core.CameraServer\n      Godot.Core.CameraTexture\n      Godot.Core.CanvasItem\n      Godot.Core.CanvasItemMaterial\n      Godot.Core.CanvasLayer\n      Godot.Core.CanvasModulate\n      Godot.Core.CapsuleMesh\n      Godot.Core.CapsuleShape\n      Godot.Core.CapsuleShape2D\n      Godot.Core.CenterContainer\n      Godot.Core.CharFXTransform\n      Godot.Core.CheckBox\n      Godot.Core.CheckButton\n      Godot.Core.CircleShape2D\n      Godot.Core.ClassDB\n      Godot.Core.ClippedCamera\n      Godot.Core.CollisionObject\n      Godot.Core.CollisionObject2D\n      Godot.Core.CollisionPolygon\n      Godot.Core.CollisionPolygon2D\n      Godot.Core.CollisionShape\n      Godot.Core.CollisionShape2D\n      Godot.Core.ColorPicker\n      Godot.Core.ColorPickerButton\n      Godot.Core.ColorRect\n      Godot.Core.ConcavePolygonShape\n      Godot.Core.ConcavePolygonShape2D\n      Godot.Core.ConeTwistJoint\n      Godot.Core.ConfigFile\n      Godot.Core.ConfirmationDialog\n      Godot.Core.Container\n      Godot.Core.Control\n      Godot.Core.ConvexPolygonShape\n      Godot.Core.ConvexPolygonShape2D\n      Godot.Core.CPUParticles\n      Godot.Core.CPUParticles2D\n      Godot.Core.Crypto\n      Godot.Core.CryptoKey\n      Godot.Core.CSGBox\n      Godot.Core.CSGCombiner\n      Godot.Core.CSGCylinder\n      Godot.Core.CSGMesh\n      Godot.Core.CSGPolygon\n      Godot.Core.CSGPrimitive\n      Godot.Core.CSGShape\n      Godot.Core.CSGSphere\n      Godot.Core.CSGTorus\n      Godot.Core.CubeMap\n      Godot.Core.CubeMesh\n      Godot.Core.Curve\n      Godot.Core.Curve2D\n      Godot.Core.Curve3D\n      Godot.Core.CurveTexture\n      Godot.Core.CylinderMesh\n      Godot.Core.CylinderShape\n      Godot.Core.DampedSpringJoint2D\n      Godot.Core.DirectionalLight\n      Godot.Core.Directory\n      Godot.Core.DynamicFont\n      Godot.Core.DynamicFontData\n      Godot.Core.EncodedObjectAsID\n      Godot.Core.Engine\n      Godot.Core.Environment\n      Godot.Core.Expression\n      Godot.Core.File\n      Godot.Core.FileDialog\n      Godot.Core.Font\n      Godot.Core.FuncRef\n      Godot.Core.GDNative\n      Godot.Core.GDNativeLibrary\n      Godot.Core.GDScript\n      Godot.Core.GDScriptFunctionState\n      Godot.Core.Generic6DOFJoint\n      Godot.Core.Geometry\n      Godot.Core.GeometryInstance\n      Godot.Core.GIProbe\n      Godot.Core.GIProbeData\n      Godot.Core.GlobalConstants\n      Godot.Core.Gradient\n      Godot.Core.GradientTexture\n      Godot.Core.GraphEdit\n      Godot.Core.GraphNode\n      Godot.Core.GridContainer\n      Godot.Core.GridMap\n      Godot.Core.GrooveJoint2D\n      Godot.Core.HashingContext\n      Godot.Core.HBoxContainer\n      Godot.Core.HeightMapShape\n      Godot.Core.HingeJoint\n      Godot.Core.HScrollBar\n      Godot.Core.HSeparator\n      Godot.Core.HSlider\n      Godot.Core.HSplitContainer\n      Godot.Core.HTTPClient\n      Godot.Core.HTTPRequest\n      Godot.Core.Image\n      Godot.Core.ImageTexture\n      Godot.Core.ImmediateGeometry\n      Godot.Core.Input\n      Godot.Core.InputDefault\n      Godot.Core.InputEvent\n      Godot.Core.InputEventAction\n      Godot.Core.InputEventGesture\n      Godot.Core.InputEventJoypadButton\n      Godot.Core.InputEventJoypadMotion\n      Godot.Core.InputEventKey\n      Godot.Core.InputEventMagnifyGesture\n      Godot.Core.InputEventMIDI\n      Godot.Core.InputEventMouse\n      Godot.Core.InputEventMouseButton\n      Godot.Core.InputEventMouseMotion\n      Godot.Core.InputEventPanGesture\n      Godot.Core.InputEventScreenDrag\n      Godot.Core.InputEventScreenTouch\n      Godot.Core.InputEventWithModifiers\n      Godot.Core.InputMap\n      Godot.Core.InstancePlaceholder\n      Godot.Core.InterpolatedCamera\n      Godot.Core.IP\n      Godot.Core.IP_Unix\n      Godot.Core.ItemList\n      Godot.Core.JavaClass\n      Godot.Core.JavaClassWrapper\n      Godot.Core.JavaScript\n      Godot.Core.Joint\n      Godot.Core.Joint2D\n      Godot.Core.JSON\n      Godot.Core.JSONParseResult\n      Godot.Core.JSONRPC\n      Godot.Core.KinematicBody\n      Godot.Core.KinematicBody2D\n      Godot.Core.KinematicCollision\n      Godot.Core.KinematicCollision2D\n      Godot.Core.Label\n      Godot.Core.LargeTexture\n      Godot.Core.Light\n      Godot.Core.Light2D\n      Godot.Core.LightOccluder2D\n      Godot.Core.Line2D\n      Godot.Core.LineEdit\n      Godot.Core.LineShape2D\n      Godot.Core.LinkButton\n      Godot.Core.Listener\n      Godot.Core.MainLoop\n      Godot.Core.MarginContainer\n      Godot.Core.Marshalls\n      Godot.Core.Material\n      Godot.Core.MenuButton\n      Godot.Core.Mesh\n      Godot.Core.MeshDataTool\n      Godot.Core.MeshInstance\n      Godot.Core.MeshInstance2D\n      Godot.Core.MeshLibrary\n      Godot.Core.MeshTexture\n      Godot.Core.MobileVRInterface\n      Godot.Core.MultiMesh\n      Godot.Core.MultiMeshInstance\n      Godot.Core.MultiMeshInstance2D\n      Godot.Core.MultiplayerAPI\n      Godot.Core.MultiplayerPeerGDNative\n      Godot.Core.Mutex\n      Godot.Core.NativeScript\n      Godot.Core.Navigation\n      Godot.Core.Navigation2D\n      Godot.Core.NavigationMesh\n      Godot.Core.NavigationMeshInstance\n      Godot.Core.NavigationPolygon\n      Godot.Core.NavigationPolygonInstance\n      Godot.Core.NetworkedMultiplayerENet\n      Godot.Core.NetworkedMultiplayerPeer\n      Godot.Core.NinePatchRect\n      Godot.Core.Node\n      Godot.Core.Node2D\n      Godot.Core.NoiseTexture\n      Godot.Core.Object\n      Godot.Core.OccluderPolygon2D\n      Godot.Core.OmniLight\n      Godot.Core.OpenSimplexNoise\n      Godot.Core.OptionButton\n      Godot.Core.OS\n      Godot.Core.PackedDataContainer\n      Godot.Core.PackedDataContainerRef\n      Godot.Core.PackedScene\n      Godot.Core.PacketPeer\n      Godot.Core.PacketPeerGDNative\n      Godot.Core.PacketPeerStream\n      Godot.Core.PacketPeerUDP\n      Godot.Core.Panel\n      Godot.Core.PanelContainer\n      Godot.Core.PanoramaSky\n      Godot.Core.ParallaxBackground\n      Godot.Core.ParallaxLayer\n      Godot.Core.Particles\n      Godot.Core.Particles2D\n      Godot.Core.ParticlesMaterial\n      Godot.Core.Path\n      Godot.Core.Path2D\n      Godot.Core.PathFollow\n      Godot.Core.PathFollow2D\n      Godot.Core.PCKPacker\n      Godot.Core.Performance\n      Godot.Core.PHashTranslation\n      Godot.Core.PhysicalBone\n      Godot.Core.Physics2DDirectBodyState\n      Godot.Core.Physics2DDirectBodyStateSW\n      Godot.Core.Physics2DDirectSpaceState\n      Godot.Core.Physics2DServer\n      Godot.Core.Physics2DServerSW\n      Godot.Core.Physics2DShapeQueryParameters\n      Godot.Core.Physics2DShapeQueryResult\n      Godot.Core.Physics2DTestMotionResult\n      Godot.Core.PhysicsBody\n      Godot.Core.PhysicsBody2D\n      Godot.Core.PhysicsDirectBodyState\n      Godot.Core.PhysicsDirectSpaceState\n      Godot.Core.PhysicsMaterial\n      Godot.Core.PhysicsServer\n      Godot.Core.PhysicsShapeQueryParameters\n      Godot.Core.PhysicsShapeQueryResult\n      Godot.Core.PinJoint\n      Godot.Core.PinJoint2D\n      Godot.Core.PlaneMesh\n      Godot.Core.PlaneShape\n      Godot.Core.PluginScript\n      Godot.Core.PointMesh\n      Godot.Core.Polygon2D\n      Godot.Core.PolygonPathFinder\n      Godot.Core.Popup\n      Godot.Core.PopupDialog\n      Godot.Core.PopupMenu\n      Godot.Core.PopupPanel\n      Godot.Core.Position2D\n      Godot.Core.Position3D\n      Godot.Core.PrimitiveMesh\n      Godot.Core.PrismMesh\n      Godot.Core.ProceduralSky\n      Godot.Core.ProgressBar\n      Godot.Core.ProjectSettings\n      Godot.Core.ProximityGroup\n      Godot.Core.ProxyTexture\n      Godot.Core.QuadMesh\n      Godot.Core.RandomNumberGenerator\n      Godot.Core.Range\n      Godot.Core.RayCast\n      Godot.Core.RayCast2D\n      Godot.Core.RayShape\n      Godot.Core.RayShape2D\n      Godot.Core.RectangleShape2D\n      Godot.Core.Reference\n      Godot.Core.ReferenceRect\n      Godot.Core.ReflectionProbe\n      Godot.Core.RegEx\n      Godot.Core.RegExMatch\n      Godot.Core.RemoteTransform\n      Godot.Core.RemoteTransform2D\n      Godot.Core.Resource\n      Godot.Core.ResourceFormatLoader\n      Godot.Core.ResourceFormatLoaderCrypto\n      Godot.Core.ResourceFormatSaver\n      Godot.Core.ResourceFormatSaverCrypto\n      Godot.Core.ResourceImporter\n      Godot.Core.ResourceInteractiveLoader\n      Godot.Core.ResourceLoader\n      Godot.Core.ResourcePreloader\n      Godot.Core.ResourceSaver\n      Godot.Core.RichTextEffect\n      Godot.Core.RichTextLabel\n      Godot.Core.RigidBody\n      Godot.Core.RigidBody2D\n      Godot.Core.RootMotionView\n      Godot.Core.SceneState\n      Godot.Core.SceneTree\n      Godot.Core.SceneTreeTimer\n      Godot.Core.Script\n      Godot.Core.ScrollBar\n      Godot.Core.ScrollContainer\n      Godot.Core.SegmentShape2D\n      Godot.Core.Semaphore\n      Godot.Core.Separator\n      Godot.Core.Shader\n      Godot.Core.ShaderMaterial\n      Godot.Core.Shape\n      Godot.Core.Shape2D\n      Godot.Core.ShortCut\n      Godot.Core.Skeleton\n      Godot.Core.Skeleton2D\n      Godot.Core.SkeletonIK\n      Godot.Core.Skin\n      Godot.Core.SkinReference\n      Godot.Core.Sky\n      Godot.Core.Slider\n      Godot.Core.SliderJoint\n      Godot.Core.SoftBody\n      Godot.Core.Spatial\n      Godot.Core.SpatialGizmo\n      Godot.Core.SpatialMaterial\n      Godot.Core.SpatialVelocityTracker\n      Godot.Core.SphereMesh\n      Godot.Core.SphereShape\n      Godot.Core.SpinBox\n      Godot.Core.SplitContainer\n      Godot.Core.SpotLight\n      Godot.Core.SpringArm\n      Godot.Core.Sprite\n      Godot.Core.Sprite3D\n      Godot.Core.SpriteBase3D\n      Godot.Core.SpriteFrames\n      Godot.Core.StaticBody\n      Godot.Core.StaticBody2D\n      Godot.Core.StreamPeer\n      Godot.Core.StreamPeerBuffer\n      Godot.Core.StreamPeerGDNative\n      Godot.Core.StreamPeerSSL\n      Godot.Core.StreamPeerTCP\n      Godot.Core.StreamTexture\n      Godot.Core.StyleBox\n      Godot.Core.StyleBoxEmpty\n      Godot.Core.StyleBoxFlat\n      Godot.Core.StyleBoxLine\n      Godot.Core.StyleBoxTexture\n      Godot.Core.SurfaceTool\n      Godot.Core.TabContainer\n      Godot.Core.Tabs\n      Godot.Core.TCP_Server\n      Godot.Core.TextEdit\n      Godot.Core.TextFile\n      Godot.Core.Texture\n      Godot.Core.Texture3D\n      Godot.Core.TextureArray\n      Godot.Core.TextureButton\n      Godot.Core.TextureLayered\n      Godot.Core.TextureProgress\n      Godot.Core.TextureRect\n      Godot.Core.Theme\n      Godot.Core.Thread\n      Godot.Core.TileMap\n      Godot.Core.TileSet\n      Godot.Core.Timer\n      Godot.Core.ToolButton\n      Godot.Core.TouchScreenButton\n      Godot.Core.Translation\n      Godot.Core.TranslationServer\n      Godot.Core.Tree\n      Godot.Core.TreeItem\n      Godot.Core.TriangleMesh\n      Godot.Core.Tween\n      Godot.Core.UndoRedo\n      Godot.Core.UPNP\n      Godot.Core.UPNPDevice\n      Godot.Core.VBoxContainer\n      Godot.Core.VehicleBody\n      Godot.Core.VehicleWheel\n      Godot.Core.VideoPlayer\n      Godot.Core.VideoStream\n      Godot.Core.VideoStreamGDNative\n      Godot.Core.VideoStreamTheora\n      Godot.Core.VideoStreamWebm\n      Godot.Core.Viewport\n      Godot.Core.ViewportContainer\n      Godot.Core.ViewportTexture\n      Godot.Core.VisibilityEnabler\n      Godot.Core.VisibilityEnabler2D\n      Godot.Core.VisibilityNotifier\n      Godot.Core.VisibilityNotifier2D\n      Godot.Core.VisualInstance\n      Godot.Core.VisualScript\n      Godot.Core.VisualScriptBasicTypeConstant\n      Godot.Core.VisualScriptBuiltinFunc\n      Godot.Core.VisualScriptClassConstant\n      Godot.Core.VisualScriptComment\n      Godot.Core.VisualScriptComposeArray\n      Godot.Core.VisualScriptCondition\n      Godot.Core.VisualScriptConstant\n      Godot.Core.VisualScriptConstructor\n      Godot.Core.VisualScriptCustomNode\n      Godot.Core.VisualScriptDeconstruct\n      Godot.Core.VisualScriptEmitSignal\n      Godot.Core.VisualScriptEngineSingleton\n      Godot.Core.VisualScriptExpression\n      Godot.Core.VisualScriptFunction\n      Godot.Core.VisualScriptFunctionCall\n      Godot.Core.VisualScriptFunctionState\n      Godot.Core.VisualScriptGlobalConstant\n      Godot.Core.VisualScriptIndexGet\n      Godot.Core.VisualScriptIndexSet\n      Godot.Core.VisualScriptInputAction\n      Godot.Core.VisualScriptIterator\n      Godot.Core.VisualScriptLists\n      Godot.Core.VisualScriptLocalVar\n      Godot.Core.VisualScriptLocalVarSet\n      Godot.Core.VisualScriptMathConstant\n      Godot.Core.VisualScriptNode\n      Godot.Core.VisualScriptOperator\n      Godot.Core.VisualScriptPreload\n      Godot.Core.VisualScriptPropertyGet\n      Godot.Core.VisualScriptPropertySet\n      Godot.Core.VisualScriptResourcePath\n      Godot.Core.VisualScriptReturn\n      Godot.Core.VisualScriptSceneNode\n      Godot.Core.VisualScriptSceneTree\n      Godot.Core.VisualScriptSelect\n      Godot.Core.VisualScriptSelf\n      Godot.Core.VisualScriptSequence\n      Godot.Core.VisualScriptSubCall\n      Godot.Core.VisualScriptSwitch\n      Godot.Core.VisualScriptTypeCast\n      Godot.Core.VisualScriptVariableGet\n      Godot.Core.VisualScriptVariableSet\n      Godot.Core.VisualScriptWhile\n      Godot.Core.VisualScriptYield\n      Godot.Core.VisualScriptYieldSignal\n      Godot.Core.VisualServer\n      Godot.Core.VisualShader\n      Godot.Core.VisualShaderNode\n      Godot.Core.VisualShaderNodeBooleanConstant\n      Godot.Core.VisualShaderNodeBooleanUniform\n      Godot.Core.VisualShaderNodeColorConstant\n      Godot.Core.VisualShaderNodeColorFunc\n      Godot.Core.VisualShaderNodeColorOp\n      Godot.Core.VisualShaderNodeColorUniform\n      Godot.Core.VisualShaderNodeCompare\n      Godot.Core.VisualShaderNodeCubeMap\n      Godot.Core.VisualShaderNodeCubeMapUniform\n      Godot.Core.VisualShaderNodeCustom\n      Godot.Core.VisualShaderNodeDeterminant\n      Godot.Core.VisualShaderNodeDotProduct\n      Godot.Core.VisualShaderNodeExpression\n      Godot.Core.VisualShaderNodeFaceForward\n      Godot.Core.VisualShaderNodeFresnel\n      Godot.Core.VisualShaderNodeGlobalExpression\n      Godot.Core.VisualShaderNodeGroupBase\n      Godot.Core.VisualShaderNodeIf\n      Godot.Core.VisualShaderNodeInput\n      Godot.Core.VisualShaderNodeIs\n      Godot.Core.VisualShaderNodeOuterProduct\n      Godot.Core.VisualShaderNodeOutput\n      Godot.Core.VisualShaderNodeScalarClamp\n      Godot.Core.VisualShaderNodeScalarConstant\n      Godot.Core.VisualShaderNodeScalarDerivativeFunc\n      Godot.Core.VisualShaderNodeScalarFunc\n      Godot.Core.VisualShaderNodeScalarInterp\n      Godot.Core.VisualShaderNodeScalarOp\n      Godot.Core.VisualShaderNodeScalarSmoothStep\n      Godot.Core.VisualShaderNodeScalarSwitch\n      Godot.Core.VisualShaderNodeScalarUniform\n      Godot.Core.VisualShaderNodeSwitch\n      Godot.Core.VisualShaderNodeTexture\n      Godot.Core.VisualShaderNodeTextureUniform\n      Godot.Core.VisualShaderNodeTextureUniformTriplanar\n      Godot.Core.VisualShaderNodeTransformCompose\n      Godot.Core.VisualShaderNodeTransformConstant\n      Godot.Core.VisualShaderNodeTransformDecompose\n      Godot.Core.VisualShaderNodeTransformFunc\n      Godot.Core.VisualShaderNodeTransformMult\n      Godot.Core.VisualShaderNodeTransformUniform\n      Godot.Core.VisualShaderNodeTransformVecMult\n      Godot.Core.VisualShaderNodeUniform\n      Godot.Core.VisualShaderNodeVec3Constant\n      Godot.Core.VisualShaderNodeVec3Uniform\n      Godot.Core.VisualShaderNodeVectorClamp\n      Godot.Core.VisualShaderNodeVectorCompose\n      Godot.Core.VisualShaderNodeVectorDecompose\n      Godot.Core.VisualShaderNodeVectorDerivativeFunc\n      Godot.Core.VisualShaderNodeVectorDistance\n      Godot.Core.VisualShaderNodeVectorFunc\n      Godot.Core.VisualShaderNodeVectorInterp\n      Godot.Core.VisualShaderNodeVectorLen\n      Godot.Core.VisualShaderNodeVectorOp\n      Godot.Core.VisualShaderNodeVectorRefract\n      Godot.Core.VisualShaderNodeVectorScalarMix\n      Godot.Core.VisualShaderNodeVectorScalarSmoothStep\n      Godot.Core.VisualShaderNodeVectorScalarStep\n      Godot.Core.VisualShaderNodeVectorSmoothStep\n      Godot.Core.VScrollBar\n      Godot.Core.VSeparator\n      Godot.Core.VSlider\n      Godot.Core.VSplitContainer\n      Godot.Core.WeakRef\n      Godot.Core.WebRTCDataChannel\n      Godot.Core.WebRTCDataChannelGDNative\n      Godot.Core.WebRTCMultiplayer\n      Godot.Core.WebRTCPeerConnection\n      Godot.Core.WebRTCPeerConnectionGDNative\n      Godot.Core.WebSocketClient\n      Godot.Core.WebSocketMultiplayerPeer\n      Godot.Core.WebSocketPeer\n      Godot.Core.WebSocketServer\n      Godot.Core.WindowDialog\n      Godot.Core.World\n      Godot.Core.World2D\n      Godot.Core.WorldEnvironment\n      Godot.Core.X509Certificate\n      Godot.Core.XMLParser\n      Godot.Core.YSort\n      Godot.Gdnative\n      Godot.Gdnative.Internal\n      Godot.Gdnative.Internal.Api\n      Godot.Gdnative.Internal.Gdnative\n      Godot.Gdnative.Internal.TH\n      Godot.Gdnative.Internal.Types\n      Godot.Internal.Dispatch\n      Godot.Nativescript\n      Godot.Tools.AnimationTrackEditPlugin\n      Godot.Tools.EditorExportPlugin\n      Godot.Tools.EditorFeatureProfile\n      Godot.Tools.EditorFileDialog\n      Godot.Tools.EditorFileSystem\n      Godot.Tools.EditorFileSystemDirectory\n      Godot.Tools.EditorImportPlugin\n      Godot.Tools.EditorInspector\n      Godot.Tools.EditorInspectorPlugin\n      Godot.Tools.EditorInterface\n      Godot.Tools.EditorNavigationMeshGenerator\n      Godot.Tools.EditorPlugin\n      Godot.Tools.EditorProperty\n      Godot.Tools.EditorResourceConversionPlugin\n      Godot.Tools.EditorResourcePreview\n      Godot.Tools.EditorResourcePreviewGenerator\n      Godot.Tools.EditorSceneImporter\n      Godot.Tools.EditorSceneImporterAssimp\n      Godot.Tools.EditorScenePostImport\n      Godot.Tools.EditorScript\n      Godot.Tools.EditorSelection\n      Godot.Tools.EditorSettings\n      Godot.Tools.EditorSpatialGizmo\n      Godot.Tools.EditorSpatialGizmoPlugin\n      Godot.Tools.EditorSpinSlider\n      Godot.Tools.EditorVCSInterface\n      Godot.Tools.ScriptCreateDialog\n      Godot.Tools.ScriptEditor\n      Godot.Tools.VisualScriptEditor\n  other-modules:\n      Paths_godot_haskell\n  hs-source-dirs:\n      src\n  default-extensions: FlexibleContexts FlexibleInstances ScopedTypeVariables TypeApplications StandaloneDeriving DerivingStrategies DefaultSignatures MultiParamTypeClasses FunctionalDependencies TypeFamilies TemplateHaskell TypeOperators TypeInType QuasiQuotes OverloadedStrings PatternSynonyms GeneralizedNewtypeDeriving\n  ghc-options: -O0\n  include-dirs:\n      godot_headers\n      cbits\n  build-tools:\n      c2hs\n  build-depends:\n      aeson\n    , base\n    , bytestring\n    , casing\n    , colour\n    , containers\n    , extra\n    , generate\n    , lens\n    , linear\n    , mtl\n    , stm\n    , template-haskell\n    , text\n    , th-abstraction\n    , unordered-containers\n    , vector\n  default-language: Haskell2010\n\nlibrary generate\n  exposed-modules:\n      Generate\n      Spec\n      Types\n      Types.Internal\n  other-modules:\n      Paths_godot_haskell\n  hs-source-dirs:\n      src-generate\n  default-extensions: FlexibleContexts FlexibleInstances ScopedTypeVariables TypeApplications StandaloneDeriving DerivingStrategies DefaultSignatures MultiParamTypeClasses FunctionalDependencies TypeFamilies TemplateHaskell TypeOperators TypeInType QuasiQuotes OverloadedStrings PatternSynonyms GeneralizedNewtypeDeriving\n  ghc-options: -O0\n  build-depends:\n      aeson\n    , ansi-wl-pprint\n    , base\n    , bytestring\n    , casing\n    , containers\n    , extra\n    , lens\n    , mtl\n    , parsec\n    , parsers\n    , stm\n    , template-haskell\n    , text\n    , th-abstraction\n    , unordered-containers\n    , vector\n  default-language: Haskell2010\n\nexecutable godot-haskell-project-generator\n  main-is: Main.hs\n  other-modules:\n      Paths_godot_haskell\n  hs-source-dirs:\n      project-generator\n  default-extensions: FlexibleContexts FlexibleInstances ScopedTypeVariables TypeApplications StandaloneDeriving DerivingStrategies DefaultSignatures MultiParamTypeClasses FunctionalDependencies TypeFamilies TemplateHaskell TypeOperators TypeInType QuasiQuotes OverloadedStrings PatternSynonyms GeneralizedNewtypeDeriving\n  ghc-options: -O0\n  build-depends:\n      aeson\n    , base\n    , bytestring\n    , casing\n    , containers\n    , directory\n    , extra\n    , filepath\n    , fsnotify\n    , interpolate\n    , lens\n    , mtl\n    , stm\n    , template-haskell\n    , text\n    , th-abstraction\n    , unordered-containers\n    , vector\n  default-language: Haskell2010\n"
  },
  {
    "path": "hie.yaml",
    "content": "cradle:\n  stack:\n    - path: \"./src\"\n      component: \"godot-haskell:lib\"\n\n    - path: \"./src-generate\"\n      component: \"godot-haskell:lib:generate\"\n\n    - path: \"./project-generator/Main.hs\"\n      component: \"godot-haskell:exe:godot-haskell-project-generator\"\n"
  },
  {
    "path": "nix/pinned/all-hies.json",
    "content": "{\n  \"url\": \"https://github.com/Infinisil/all-hies.git\",\n  \"rev\": \"d98bdbff3ebdab408a12a9b7890d4cf400180839\",\n  \"date\": \"2020-02-17T18:53:14+01:00\",\n  \"sha256\": \"1lr4dw10f37fp68b6ig065dgrl8h1v4xmigy5ncljdz74k0jvhg4\",\n  \"fetchSubmodules\": true,\n  \"deepClone\": false,\n  \"leaveDotGit\": false\n}\n"
  },
  {
    "path": "nix/pinned/default.nix",
    "content": "{ fetchFromGitHub, lib }:\n\nlet\n  fetch = owner: repo: jsonFile: fetchFromGitHub {\n    inherit owner repo;\n    inherit (lib.importJSON jsonFile) rev sha256;\n  };\n\nin {\n  nixpkgs = import (fetch \"NixOS\" \"nix-channels\" ./nixpkgs.json) {};\n  hie = { ghc, useSystem ? true, useLatest ? false, versions ? [] }:\n    import ./hie.nix {\n      inherit fetchFromGitHub lib ghc useSystem useLatest versions;\n    };\n}\n"
  },
  {
    "path": "nix/pinned/hie.nix",
    "content": "{ fetchFromGitHub, lib, ghc, useSystem ? true, useLatest ? false, versions ? [] }:\n\nlet\n  fetch = owner: repo: jsonFile: fetchFromGitHub {\n    inherit owner repo;\n    inherit (lib.importJSON jsonFile) rev sha256;\n  };\n  all-hies = import (fetch \"Infinisil\" \"all-hies\" ./all-hies.json) {};\n  ghcVersionList = builtins.splitVersion ghc.version;\n  ghcVersionToString = builtins.foldl' (x: y: x + y) \"\" ghcVersionList;\n  ghcVersionKey = \"ghc${ghcVersionToString}\";\n  versionList = versions\n    ++ (if useSystem then [ ghcVersionKey ] else [])\n    ++ (if useLatest then [ lib.last (lib.attrValues versions) ] else []);\n  selector = p:\n    builtins.foldl'\n      (a: b: a // b)\n      {}\n      (map (v: { ${v} = p.${v}; }) versionList);\nin all-hies.selection { selector = selector; }\n"
  },
  {
    "path": "nix/pinned/nixpkgs.json",
    "content": "{\n  \"url\": \"https://github.com/nixos/nixpkgs-channels.git\",\n  \"rev\": \"ce9f1aaa39ee2a5b76a9c9580c859a74de65ead5\",\n  \"date\": \"2020-02-27T20:22:41+01:00\",\n  \"sha256\": \"1s2b9rvpyamiagvpl5cggdb2nmx4f7lpylipd397wz8f0wngygpi\",\n  \"fetchSubmodules\": false,\n  \"deepClone\": false,\n  \"leaveDotGit\": false\n}\n"
  },
  {
    "path": "nix/spacemacs-hie.nix",
    "content": "{ pkgs, hsPkgs }:\nlet\n  pinned = import ./pinned { inherit (pkgs) fetchFromGitHub lib; };\n  hie = pinned.hie { inherit (hsPkgs) ghc; };\n\n  emacsPkgs = (with pkgs; [\n    emacs\n    emacs-all-the-icons-fonts\n    dejavu_fonts\n    material-design-icons\n    # nerdfonts\n    source-code-pro\n    weather-icons\n  ]);\n\nin emacsPkgs ++ [\n  hie\n] ++ (with hsPkgs; [\n  apply-refact\n  brittany\n  cabal-install\n  Cabal_3_0_0_0\n  # Cabal_2_4_1_0\n  hasktags\n  hlint\n  hoogle\n])\n"
  },
  {
    "path": "nixpkgs-version.json",
    "content": "{\n  \"url\": \"https://github.com/nixos/nixpkgs-channels.git\",\n  \"rev\": \"c8db7a8a16ee9d54103cade6e766509e1d1c8d7b\",\n  \"date\": \"2020-01-11T14:34:27-05:00\",\n  \"sha256\": \"1b3h4mwpi10blzpvgsc0191k4shaw3nw0qd2p82hygbr8vv4g9dv\",\n  \"fetchSubmodules\": false\n}\n"
  },
  {
    "path": "package.yaml",
    "content": "name: godot-haskell\nsynopsis: Haskell bindings for the Godot game engine API\ndescription: This package contains Haskell bindings for GDNative and the Godot API. For details and examples, see README.md\nversion: '3.1.0.0'\ncategory: Web\nauthor: David Kraeutmann\nmaintainer: kane@kane.cx\ncopyright: 2018 David Kraeutmann\nlicense: BSD3\ngithub: KaneTW/godot-haskell\nextra-source-files:\n- README.md\n- cbits/*\n- godot_headers/**/*.h\n- godot_headers/**/*.json\n\ndependencies:\n- base\n- aeson\n- bytestring\n- template-haskell\n- th-abstraction\n- lens\n- text\n- casing\n- vector\n- containers\n- unordered-containers\n- mtl\n- stm\n- extra\n\ndefault-extensions:\n- FlexibleContexts\n- FlexibleInstances\n- ScopedTypeVariables\n- TypeApplications\n- StandaloneDeriving\n- DerivingStrategies\n- DefaultSignatures\n- MultiParamTypeClasses\n- FunctionalDependencies\n- TypeFamilies\n- TemplateHaskell\n- TypeOperators\n- TypeInType\n- QuasiQuotes\n- OverloadedStrings\n- PatternSynonyms\n- GeneralizedNewtypeDeriving\n\nexecutables:\n  godot-haskell-project-generator:\n    main: Main.hs\n    source-dirs: project-generator\n    dependencies:\n      - fsnotify\n      - directory\n      - filepath\n      - interpolate\n      - lens\n\nlibrary:\n  source-dirs: src\n  build-tools:\n  - c2hs\n  include-dirs:\n  - godot_headers\n  - cbits\n  dependencies:\n  - generate\n  - linear\n  - colour\n\ninternal-libraries:\n  generate:\n    source-dirs: src-generate\n    dependencies:\n    - parsec\n    - parsers\n    - mtl\n    - ansi-wl-pprint\n\nghc-options:\n  - -O0\n"
  },
  {
    "path": "pinned-nixpkgs.nix",
    "content": "{}:\nlet hostPkgs = import <nixpkgs> {};\n    pinnedVersion = hostPkgs.lib.importJSON ./nixpkgs-version.json;\n    pinnedPkgs = hostPkgs.fetchFromGitHub {\n        owner = \"NixOS\";\n        repo = \"nixpkgs-channels\";\n        inherit (pinnedVersion) rev sha256;\n    };\n\nin import pinnedPkgs {}\n"
  },
  {
    "path": "project-generator/Main.hs",
    "content": "{-# LANGUAGE DerivingStrategies #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE FunctionalDependencies #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE MultiWayIf #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE QuasiQuotes #-}\n{-# LANGUAGE RankNTypes #-}\n{-# LANGUAGE TemplateHaskell #-}\n{-# LANGUAGE TupleSections #-}\n\nmodule Main where\n\nimport Control.Concurrent (threadDelay)\nimport Control.Lens hiding (from, to)\nimport Control.Lens.TH\nimport Control.Monad\nimport Data.Char\nimport Data.List\nimport qualified Data.Map as M\nimport Data.Maybe\nimport Data.String.Interpolate\nimport qualified Data.Text as T\nimport qualified Data.Text.IO as T\nimport Debug.Trace\nimport qualified Language.Haskell.TH.Syntax as TH\nimport System.Directory\nimport System.Environment\nimport System.FSNotify\nimport System.FilePath\nimport Prelude hiding (id)\n\nnewtype Id = Id {unId :: T.Text}\n  deriving (Eq, Ord)\n  deriving newtype (Show)\n\nnewtype Name = Name {unName :: T.Text}\n  deriving (Eq, Ord)\n  deriving newtype (Show)\n\nnewtype Method = Method {unMethod :: T.Text}\n  deriving (Eq, Ord)\n  deriving newtype (Show)\n\nnewtype Signal = Signal {unSignal :: T.Text}\n  deriving (Eq, Ord)\n  deriving newtype (Show)\n\nnewtype Ty = Ty {unTy :: T.Text}\n  deriving (Eq, Ord)\n  deriving newtype (Show)\n\nnewtype NodePath = NodePath {unNodePath :: T.Text}\n  deriving (Eq, Ord)\n  deriving newtype (Show)\n\ndata Resource = Resource\n  { _resourceTy :: Ty,\n    _resourcePath :: T.Text\n  }\n  deriving (Show)\n\nmakeFields ''Resource\n\ndata TscnNode = TscnNode\n  { _tscnNodeTy :: Ty,\n    _tscnNodeParent :: Maybe NodePath,\n    _tscnNodeInstanceof :: Maybe Id,\n    _tscnNodeScript :: Maybe Id\n  }\n  deriving (Show)\n\nmakeFields ''TscnNode\n\ndata TscnConnection = TscnConnection\n  { _tscnConnectionSignal :: Signal,\n    _tscnConnectionFrom :: NodePath,\n    _tscnConnectionTo :: NodePath,\n    _tscnConnectionMethod :: Method\n  }\n  deriving (Show)\n\nmakeFields ''TscnConnection\n\ndata Tscn = Tscn\n  { _tscnSceneName :: Name,\n    _tscnResources :: M.Map Id Resource,\n    _tscnNodes :: M.Map Name TscnNode,\n    _tscnConnections :: [TscnConnection],\n    _tscnRootNode :: Maybe Name,\n    _tscnFilepath :: FilePath\n  }\n  deriving (Show)\n\nmakeFields ''Tscn\n\ndata Gdns = Gdns\n  { _gdnsExtResources :: M.Map Id Resource,\n    _gdnsResources :: M.Map Name Id\n  }\n  deriving (Show)\n\nmakeFields ''Gdns\n\nallByExtension :: String -> FilePath -> IO [String]\nallByExtension ext dir = do\n  b <- doesDirectoryExist dir\n  if b\n    then do\n      l <- map (dir </>) <$> listDirectory dir\n      tscns <- filterM (\\f -> (&& isSuffixOf ext f) <$> doesFileExist f) l\n      dirs <- filterM doesDirectoryExist l\n      (tscns ++) . concat <$> mapM (allByExtension ext) dirs\n    else pure []\n\nmangle (h : t) = toUpper h : t\n\ncreateAndWriteFile :: FilePath -> T.Text -> IO ()\ncreateAndWriteFile path content = do\n  createDirectoryIfMissing True $ takeDirectory path\n  T.writeFile path (\"-- | This file is AUTOGENERATED by godot-haskell-project-generator. DO NOT EDIT\\n\\n\" <> content)\n\nsupport =\n  [i|\n{-# OPTIONS_GHC -Wno-name-shadowing #-}\n\nmodule Project.Support where\n\nimport           Control.Lens\nimport           Control.Monad\n\nimport           Data.Coerce\nimport           Data.List\nimport qualified Data.Map                      as M\nimport           Data.Maybe\nimport qualified Data.Text                     as T\nimport           Data.Typeable\n\nimport           GHC.TypeLits\n\nimport           Godot\nimport           Godot.Core.Object\nimport           Godot.Core.PackedScene\nimport           Godot.Core.ResourceLoader\nimport           Godot.Gdnative\nimport           Godot.Gdnative.Internal.Types\nimport           Godot.Internal.Dispatch       as D\n\nimport           Language.Haskell.TH\nimport           Language.Haskell.TH.Datatype\n\n-- * Helper to keep Haskell types in sync with the Godot project.\nnewtype PackedScene' (scene :: Symbol) = PackedScene' PackedScene\n  deriving newtype AsVariant\n\ninstance HasBaseClass (PackedScene' scene) where\n  type BaseClass (PackedScene' scene) = PackedScene\n\n  super = coerce\n\nderiveBase ''PackedScene'\n\n-- | Use this to register all of your classes, it makes sure that you don't\n-- forget a class that Godot needs.\n--\n-- exports :: GdnativeHandle -> IO ()\n-- exports desc = registerAll' @Nodes @'[HUD, Main, Mob, Player] desc\nregisterAll'\n  :: forall (res :: [*]) (ns :: [*]). ImplementedInHaskell res ns => GdnativeHandle -> IO ()\nregisterAll' = fill @res @ns\n\n-- | A safe version of getNode; gives you back the Godot object\n-- getNode' @\"MobPath/MobSpawnLocation\" self\ngetNode' :: forall label b cls scene name.\n         ( Object :< cls\n         , Node :< cls\n         , Node :< b\n         , NodeInScene scene name cls\n         , SceneNode scene label\n         , SceneNodeType scene label ~ b\n         , KnownSymbol label)\n         => cls\n         -> IO b\ngetNode' o = getNode @(SceneNodeType scene label) o (T.pack $ symbolVal (Proxy @label))\n\n-- | A safe version of getNodeNativeScript; gives you back the Haskell object\n-- getNodeNativeScript' @\"HUD\" self\ngetNodeNativeScript'\n  :: forall label b cls scene name scene' label'.\n  ( NativeScript b\n  , Node :< cls\n  , Object :< cls\n  , NodeInScene scene name cls\n  , SceneNodeIsHaskell scene label ~ 'Just '(scene', label')\n  , NodeInScene scene' label' b\n  , KnownSymbol label)\n  => cls\n  -> IO b\ngetNodeNativeScript' cls = getNodeNativeScript @b cls (T.pack $ symbolVal (Proxy @label))\n\n-- | A safe version of emit_signal; will error at compile time if the signal doesn't exist\n-- emit_signal' @\"hit\" self []\n-- TODO We don't check arguments yet!\nemit_signal' :: forall label args cls.\n             (Object :< cls, Object :< cls, NodeSignal cls label args, KnownSymbol label)\n             => cls\n             -> [Variant 'GodotTy]\n             -> IO ()\nemit_signal' cls args = do\n  name <- toLowLevel (T.pack $ symbolVal (Proxy @label))\n  emit_signal cls name args\n\n-- | A safe version of await; will error at compile time if the signal and nodes don't exist\n-- await' @\"MessageTimer\" @\"timeout\" self $ \\\\self' -> pure ()\nawait' :: forall (label :: Symbol) (signal :: Symbol) a b cls scene name.\n       ( NodeInScene scene name cls\n       , NativeScript cls\n       , KnownSymbol label\n       , KnownSymbol signal\n       , SceneNode scene label\n       , Node :< cls\n       , AsVariant a\n       , Node :< SceneNodeType scene label\n       , NodeSignal b signal '[]\n       , SceneNodeType scene label ~ b)\n       => cls\n       -> (cls -> IO a)\n       -> IO ()\nawait' o f = do\n  n <- getNode' @label o\n  await o n (T.pack $ symbolVal (Proxy @signal)) f\n\n-- | Preload a scene so you can instantiate it later.\n-- Use this when the scene is known ahead of time. Store scenes in as @PackedScene' \"SceneName\"@\npreloadScene\n  :: forall scene. (KnownSymbol scene, SceneResourcePath scene) => IO (PackedScene' scene)\npreloadScene = do\n  Just r <- getSingleton @ResourceLoader\n  path <- toLowLevel $ sceneResourcePath @scene\n  PackedScene' <$> (tryCast' =<< load r path Nothing Nothing)\n\n-- | Create an instance of a scene from a @PackedScene' \"SceneName\"@\n-- Makes sure that you are getting the type of the scene root.\nsceneInstance :: forall scene o.\n              (Node :< o, Typeable o, AsVariant o, SceneNodeType scene (SceneRootNode scene) ~ o)\n              => PackedScene' scene\n              -> IO o\nsceneInstance e = tryCast' =<< instance' e Nothing\n\n-- | Combines nodeMethod with getNode' to call functions in a type-safe way\n-- Provides no additional safety compared to using the two separately, but does clean up code a bit.\n-- For example: fn @\"MyNode\" @\"hide\" self\nfn :: forall (node :: Symbol) (func :: Symbol) scene name cls args ret b.\n   ( Object :< cls\n   , Node :< cls\n   , Node :< SceneNodeType scene node\n   , NodeInScene scene name cls\n   , SceneNode scene node\n   , NodeMethodSuper (SceneNodeType scene node) func args ret\n   , ListToFun args ret ~ IO b\n   , KnownSymbol node)\n   => cls\n   -> IO b\nfn self = nodeMethod' @_ @func =<< getNode' @node self\n\n-- | Get the file path to the scene\nclass SceneResourcePath (scene :: Symbol) where\n  sceneResourcePath :: forall scene. T.Text\n\n-- * Internal helpers: You won't use these\n-- | The root node of a scene\nclass SceneRoot (scene :: Symbol) where\n  type SceneRootNode scene :: Symbol\n\n-- | A node in the scene, we know its type and its name, @s@ is the path relate\n-- to the scene\nclass ( Typeable (SceneNodeType scene s)\n      , AsVariant (SceneNodeType scene s)\n      , Object :< SceneNodeType scene s) => SceneNode (scene :: Symbol) (s :: Symbol) where\n  type SceneNodeType scene s :: *\n\n  type SceneNodeName scene s :: Symbol\n\n  type SceneNodeIsHaskell scene s :: Maybe (Symbol, Symbol)\n\n-- | You declare this for your types. You offer up a haskell type, @n@, for the\n-- node. This class verifies that your base class is correct.\nclass (HasBaseClass n, BaseClass n ~ SceneNodeType scene s)\n  => NodeInScene (scene :: Symbol) (s :: Symbol) n | scene s -> n, n -> scene s\n\n-- | A connection between nodes in a scene. @from@ and @to@ are paths.\n-- It connects @signal@ in @from@ to @method@ in @to@.\nclass SceneConnection (scene\n                       :: Symbol) (from\n                                   :: Symbol) (signal :: Symbol) (to :: Symbol) (method :: Symbol)\n\n-- | Internal, just for convenience\ndata OneResourceNode (resource :: Symbol) (name :: Symbol)\n\n-- | Internal. Don't touch this and don't make instances of it. It's the\n-- workhorse for making sure that you are implementing all of the classes that\n-- Godot needs, nothing more and nothing less.\nclass ImplementedInHaskell (a :: [*]) (b :: [*]) where\n  fill :: GdnativeHandle -> IO ()\n\ninstance ImplementedInHaskell '[] '[] where\n  fill _ = pure ()\n\nregisterOne :: forall ty. (NativeScript ty, AsVariant (BaseClass ty)) => GdnativeHandle -> IO ()\nregisterOne desc = registerClass $ RegClass desc $ classInit @ty\n\ninstance ( NodeInScene scene name n\n         , NativeScript n\n         , AsVariant (BaseClass n)\n         , ImplementedInHaskell t t'\n         , SceneNodeIsHaskell scene name ~ 'Just '(resource, name))\n  => ImplementedInHaskell (OneResourceNode resource name ': t) (n ': t') where\n  fill handle = do\n    registerOne @n handle\n    fill @t @t' handle\n\n-- | Create a signal\n-- TODO args ~ '[] is temproary, we need signeltons to reflect this into a runtime value\nsignal' :: forall cls label args.\n        (NodeSignal cls label args, KnownSymbol label, args ~ '[])\n        => (Text, [SignalArgument])\nsignal' = signal (T.pack $ symbolVal (Proxy @label)) []\n\ncreateMVarProperty'\n  :: (Typeable ty, AsVariant ty)\n  => Text\n  -> (node -> MVar ty)\n  -- ^ We typically can't do IO (for initialisation) when calling this, in\n  -- which case we need to annotate the type without providing a value.\n  -> Either VariantType ty\n  -> ( node\n       -> IO ty\n     , node\n       -> ty\n       -> IO ()\n     , Maybe ( Object\n               -> node\n               -> IO GodotVariant\n             , Object\n               -> node\n               -> GodotVariant\n               -> IO ()\n             , PropertyAttributes))\ncreateMVarProperty' name fieldName tyOrVal = (readMVar . fieldName, \\\\c t -> propertySetter p\n  undefined c\n  =<< toGodotVariant t, Just (propertyGetter p, propertySetter p, propertyAttrs p))\n  where\n    p = createMVarProperty name fieldName tyOrVal\n\nappsT :: Type -> [Type] -> Type\nappsT t []     = t\nappsT t (x:xs) = appsT (AppT t x) xs\n\n-- | Verify that the signal connects to an endpoint that exists and has the right type.\nwitnessConnection\n  :: forall (scene\n             :: Symbol) (from\n                         :: Symbol) (signal\n                                     :: Symbol) (to :: Symbol) (method :: Symbol) parent sigTy hTy.\n  ( SceneNode scene to\n  , NodeSignal parent signal sigTy\n    -- TODO This the check unsound, but SceneNodeType isn't right for this constraint. What is?\n    -- The warning produced because 'from' is not used is a reminder of this issue.\n    -- parent :< SceneNodeType scene from,\n  , NodeMethod hTy method sigTy (IO ())\n  , NodeInScene scene to hTy)\n  => ()\nwitnessConnection = ()\n\n-- | Sets up a class\nclass NodeInit n where\n  init :: BaseClass n -> IO n\n\n-- | You never implement this. It's a helper so that we can have a more\n-- polymorphic call to nodeMethod which will work when the method is implemneted\n-- for any parent of the current node.\nclass NodeMethodSuper node (name :: Symbol) (args :: [*]) (ret :: *)\n  | node name -> args, node name -> ret where\n  nodeMethod' :: node -> ListToFun args ret\n\n-- | An instance that supports calling nodeMethod' on your parents This can lead\n-- to infinite loops in the type checker on error, so we isolate it in\n-- NodeMethodSuper instead of NodeMethod.\ninstance {-# OVERLAPPABLE #-}(NodeMethod (BaseClass node) name arg ret, HasBaseClass node)\n  => NodeMethodSuper node name arg ret where\n  nodeMethod' = nodeMethod' @node @name @arg @ret\n\nmkProperty' :: forall node (name :: Symbol) ty.\n            (NodeProperty node name ty 'False, KnownSymbol name)\n            => ClassProperty node\nmkProperty' = ClassProperty (T.pack $ symbolVal (Proxy @name)) a s g\n  where (_,_,Just (g,s,a)) = nodeProperty @node @name @ty @'False\n\nderiveHasBase :: Name -> Q [Dec]\nderiveHasBase ty = do\n  rdt <- reifyDatatype ty\n  let base = case datatypeCons rdt of\n        (c:_) -> case (constructorFields c, constructorVariant c) of\n          (ConT baseTy:_, RecordConstructor (baseFn:_)) -> Just (baseTy, baseFn)\n          _ -> Nothing\n        _     -> Nothing\n  case base of\n    Just (baseTy, baseFn) ->\n      [d|instance HasBaseClass $(pure $ PromotedT ty) where\n          type BaseClass $(pure $ PromotedT ty) = $(pure $ PromotedT baseTy)\n          super = $(pure $ VarE baseFn)#{end}\n    _ -> error \"setupNode can only handle records whose first field is the Godot base class. You can still interface with Godot, but you will need to set things up manually.\"\n\n-- | You should use this as:\n--   deriveHasBase ''Ty\n--   setupNode ''Ty \"sceneName\" \"nodePath\"\n-- This will instantiate everything that your Object needs\nsetupNode :: Name -> String -> String -> Q [Dec]\nsetupNode ty scene sceneNode = do\n  -- Collect information about all scenes\n  tree <- map unTree . classInstances <$> reify ''(:<)\n  sceneRoots <- M.fromList . map unSceneRootNode . familyInstances <$> reify ''SceneRootNode\n  sceneNodes <- map unSceneNodeType . familyInstances <$> reify ''SceneNodeType\n  haskellNodes <- map unNodeInScene . classInstances <$> reify ''NodeInScene\n  allSignals <- map unNodeSignal . classInstances <$> reify ''NodeSignal\n  -- Collect information about our node\n  rdt <- reifyDatatype ty\n  --\n  methods <- filter (\\\\i -> i ^. _1 == ty) . mapMaybe unNodeMethod . classInstances\n    <$> reify ''NodeMethod\n  properties <- filter (\\\\i -> i ^. _1 == ty) . mapMaybe unNodeProperty . classInstances\n    <$> reify ''NodeProperty\n  let signals = filter (\\\\i -> i ^. _1 == ty) allSignals\n  connections\n    <- filter (\\\\i -> i ^. _1 == scene && i ^. _4 == sceneNode) . map unConnect . classInstances\n    <$> reify ''SceneConnection\n  -- Helpers\n  let parentsOf cls = map snd $ filter (\\\\(c, _) -> cls == c) tree\n  let nodeToType :: String -> String -> Name\n      nodeToType scene node = case (hty, ty ^. _4) of\n        (Just t, _)      -> t\n        (_, Nothing)     -> ty ^. _3\n        (_, Just scene') -> case M.lookup scene' sceneRoots of\n          Nothing    -> error\n            $ \"Looking up the root of a scene that is lacking one. This is a bug. \"\n            ++ show (scene', scene, node)\n          Just node' -> nodeToType scene' node'\n        where\n          ty  = fromJust $ find (\\\\n -> n ^. _1 == scene && n ^. _2 == node) sceneNodes\n\n          hty = (^. _3) <$> find (\\\\n -> n ^. _1 == scene && n ^. _2 == node) haskellNodes\n  let resolveSignalActualClass scene from signal =\n        case mapMaybe (\\\\p -> (p, ) <$> find (\\\\s -> s ^. _2 == signal && s ^. _1 == p) allSignals)\n        $ parentsOf (nodeToType scene from) of\n          -- The root issue is that the signal might not yet exist.\n          -- If witnessConnection was not unsound, this would not be needed as the error would happen later.\n          []    -> error\n            $ \"Class \"\n            ++ show from\n            ++ \" used in scene \"\n            ++ show scene\n            ++ \" is lacking a signal named \"\n            ++ show signal\n            ++ \"\\\\n\"\n            ++ show (nodeToType scene from)\n            ++ \"\\\\n\"\n            ++ show (parentsOf (nodeToType scene from))\n          (h:_) -> h ^. _1\n\n  -- Debug\n  when False $ runIO $ do\n    putStrLn \"Regenerating ..\"\n    print rdt\n    putStrLn \"\\\\nScene roots:\"\n    print sceneRoots\n    putStrLn \"\\\\nScene nodes types:\"\n    mapM_ print sceneNodes\n    putStrLn \"\\\\nMethods:\"\n    mapM_ print methods\n    putStrLn \"\\\\nProperties:\"\n    mapM_ print properties\n    putStrLn \"\\\\nSignals:\"\n    mapM_ print allSignals\n    mapM_ print signals\n    putStrLn \"\\\\nConnections:\"\n    mapM_ print connections\n    putStrLn \"\\\\nHaskell nodes:\"\n    mapM_ print haskellNodes\n\n  -- Generate code\n  inh <- deriveBase ty\n  nis <- [d|instance NodeInScene $(pure $ LitT $ StrTyLit scene) $(pure $ LitT $ StrTyLit sceneNode) $(pure $ PromotedT ty)#{end}\n  ns <- [d|instance NativeScript $(pure $ PromotedT ty) where\n             classInit       = Project.Support.init\n\n             classMethods    =\n               $(ListE\n               <$> mapM\n               (\\\\(t, n, argTy, _)\n                -> let m = case nrArguments argTy of\n                         0 -> [e|method0#{end}\n                         1 -> [e|method1#{end}\n                         2 -> [e|method2#{end}\n                         3 -> [e|method3#{end}\n                         4 -> [e|method4#{end}\n                         5 -> [e|method5#{end}\n                         n -> error\n                           $ \"More arguments than we currently impelement, look for 'method5' for more info \"\n                           ++ show n\n                   in [e|$m $(pure $ LitE $ StringL n)\n                      (nodeMethod @($(pure $ PromotedT t)) @($(pure $ LitT $ StrTyLit n)))#{end})\n               methods)\n\n             classProperties =\n               $(ListE\n               <$> mapM (\\\\(name, prop, _, _) -> [e|mkProperty' @($(pure $ PromotedT name))\n                                                @($(pure $ LitT $ StrTyLit prop))#{end}) properties)\n\n             classSignals    =\n               $(ListE <$> mapM (\\\\(ty, name, _) -> [e|signal' @($(pure $ PromotedT ty))\n                                                   @($(pure $ LitT $ StrTyLit name))#{end}) signals)#{end}\n  let cn = mkName $ \"witness_connections_\" ++ nameBase ty\n  ws <- (:) <$> (cn `sigD` [t| [()] #{end}) <*>\n       [d|$(varP cn) =\n             $(ListE <$> mapM (\\\\(scene,from,signal,to,method) ->\n                    [e|witnessConnection\n                        @($(pure $ LitT $ StrTyLit scene))  @($(pure $ LitT $ StrTyLit from))\n                        @($(pure $ LitT $ StrTyLit signal)) @($(pure $ LitT $ StrTyLit to))\n                        @($(pure $ LitT $ StrTyLit method))\n                        @($(pure $ PromotedT $ resolveSignalActualClass scene from signal))\n                    #{end}) connections)#{end}\n  pure $ inh <> nis <> ns <> ws\n  where\n    unTree (InstanceD Nothing [] (AppT (AppT _ parent) child) []) = (unName child, unName parent)\n    unTree p = error $ \"I don't understand this parent \" ++ show p\n\n    unName (ConT x) = x\n    unName (AppT (ConT x) _) = x\n    unName x = error $ \"I don't know how to extract the name of this type: \" ++ show x\n\n    unSceneRootNode (TySynInstD (TySynEqn Nothing (AppT _ (LitT (StrTyLit scene)))\n                                 (LitT (StrTyLit node)))) = (scene, node)\n    unSceneRootNode x = error $ \"Don't know how unpack this SceneRootNode: \" ++ show x\n\n    unSceneNodeType (TySynInstD (TySynEqn Nothing (AppT (AppT _ (LitT (StrTyLit scene)))\n                                                   (LitT (StrTyLit node))) ty)) =\n      (scene, node, unName ty, unpackScene ty)\n    unSceneNodeType x = error $ \"Don't know how unpack this SceneNodeType: \" ++ show x\n\n    unpackScene (ConT _) = Nothing\n    unpackScene (AppT (ConT _) (LitT (StrTyLit scene))) = Just scene\n    unpackScene x = error $ \"Don't know how unpack this Scene: \" ++ show x\n\n    unNodeMethod (InstanceD Nothing []\n                  (AppT (AppT (AppT (AppT (ConT _) (ConT cls)) (LitT (StrTyLit name))) arg) ret) []) =\n      Just (cls, name, arg, ret)\n    unNodeMethod _ = Nothing\n\n    unNodeProperty (InstanceD Nothing []\n                    (AppT (AppT (AppT (AppT (ConT _) (ConT cls)) (LitT (StrTyLit name))) arg) ret)\n                    []) = Just (cls, name, arg, ret)\n    unNodeProperty x = error $ show x\n\n    unNodeInScene (InstanceD Nothing [] (AppT (AppT (AppT (ConT _) (LitT (StrTyLit scene)))\n                                               (LitT (StrTyLit node))) (ConT hty)) []) =\n      (scene, node, hty)\n    unNodeInScene x = error $ show x\n\n    unNodeSignal\n      (InstanceD Nothing [] (AppT (AppT (AppT (ConT _) (ConT cls)) (LitT (StrTyLit name))) arg) []) =\n      (cls, name, arg)\n    unNodeSignal _ = error \"Bad signal\"\n\n    unConnect\n      (InstanceD Nothing []\n       (AppT (AppT (AppT (AppT (AppT _ (LitT (StrTyLit scene))) (LitT (StrTyLit from)))\n                    (LitT (StrTyLit signal))) (LitT (StrTyLit to))) (LitT (StrTyLit method))) []) =\n      (scene, from, signal, to, method)\n    unConnect x = error $ \"Bad signal\" ++ show x\n\n    nrArguments :: Type -> Int\n    nrArguments (AppT _ r) = 1 + nrArguments r\n    nrArguments (SigT PromotedNilT (AppT ListT StarT)) = 0\n    nrArguments _ = error \"Can't compute # of arguments\"\n\n    classInstances :: Info -> [InstanceDec]\n    classInstances (ClassI _ is) = is\n    classInstances _ = error \"Bad class\"\n\n    familyInstances :: Info -> [InstanceDec]\n    familyInstances (FamilyI _ is) = is\n    familyInstances _ = error \"Bad class\"\n\n|]\n  where\n    end = \"|]\"\n\nlanguage =\n  [i|{-# LANGUAGE FlexibleContexts, FunctionalDependencies, MultiParamTypeClasses,\n  UndecidableInstances, OverloadedStrings, TemplateHaskell, TypeApplications,\n  TypeFamilies, TupleSections, DataKinds, TypeOperators, FlexibleInstances, RankNTypes,\n  AllowAmbiguousTypes, ScopedTypeVariables, DerivingStrategies,\n  GeneralizedNewtypeDeriving, LambdaCase, ImplicitPrelude #-}\n|]\n\nmkModule qualifiedName =\n  T.pack\n    [i|module Project.Scenes.#{qualifiedName} where\nimport Prelude\nimport Project.Support\nimport Godot\nimport GHC.TypeLits\n|]\n\nmkSceneRoot scene (Just name) =\n  T.pack\n    [i|\ninstance SceneRoot \"#{mangle $ T.unpack $ unName scene}\" where\n  type SceneRootNode \"#{mangle $ T.unpack $ unName scene}\" = \"#{unName name}\"\n|]\n\nmkScenePath scene filepath =\n  T.pack\n    [i|\ninstance SceneResourcePath \"#{mangle $ T.unpack $ unName scene}\" where\n  sceneResourcePath = \"res://#{filepath}\"\n|]\n\nmkSceneNode scene name path ty ty' isHaskell =\n  ( T.pack [i|import Godot.Core.#{ty}()|],\n    T.pack\n      [i|\ninstance SceneNode        \"#{scene}\" \"#{path}\" where\n  type SceneNodeType      \"#{scene}\" \"#{path}\" = #{ty'}\n  type SceneNodeName      \"#{scene}\" \"#{path}\" = \"#{name'}\"\n  type SceneNodeIsHaskell \"#{scene}\" \"#{path}\" = #{hsNode}\n|]\n  )\n  where\n    name' = T.pack name\n    hsNode = case isHaskell of\n      Nothing -> \"'Nothing\"\n      Just (Name s, Name n) -> \"'Just '(\\\"\" <> s <> \"\\\", \\\"\" <> n <> \"\\\")\"\n\nmkSceneConnection scene from signal to method =\n  T.pack\n    [i|\ninstance SceneConnection \"#{scene}\" \"#{from}\" \"#{signal}\" \"#{to}\" \"#{method}\"\n|]\n\nafter x = T.drop (T.length x) . snd . T.breakOn x\n\nrowType = Ty . T.takeWhile (/= '\\\"') . after \"type=\\\"\"\n\nrowPath = T.takeWhile (/= '\\\"') . after \"path=\\\"res://\"\n\nrowName = Name . T.takeWhile (/= '\\\"') . after \"name=\\\"\"\n\nrowParent t =\n  NodePath\n    <$> if T.isInfixOf \" parent=\\\"\" t\n      then Just $ T.takeWhile (/= '\\\"') $ after \"parent=\\\"\" t\n      else Nothing\n\nrowId = Id . T.takeWhile isNumber . after \"id=\"\n\nrowInstance t =\n  Id\n    <$> if T.isInfixOf \" instance=ExtResource( \" t\n      then Just $ T.takeWhile isNumber $ after \" instance=ExtResource( \" t\n      else Nothing\n\nresClassName = Name . T.takeWhile (/= '\\\"') . after \"class_name = \\\"\"\n\nresScript = Id . T.takeWhile isNumber . after \"script = ExtResource( \"\n\nresLibrary = Id . T.takeWhile isNumber . after \"library = ExtResource( \"\n\nrowSignal = Signal . T.takeWhile (/= '\\\"') . after \"signal=\\\"\"\n\nrowMethod = Method . T.takeWhile (/= '\\\"') . after \"method=\\\"\"\n\nrowFrom current = resolve current . NodePath . T.takeWhile (/= '\\\"') . after \"from=\\\"\"\n\nrowTo current = resolve current . NodePath . T.takeWhile (/= '\\\"') . after \"to=\\\"\"\n\nresolve :: Maybe Name -> NodePath -> NodePath\nresolve (Just (Name n)) (NodePath \".\") = NodePath n\nresolve _ (NodePath \".\") = error \"Relative node path without a current node\"\nresolve _ p = p\n\nreadTscn fn relFile = do\n  b <- doesFileExist fn\n  let tscnName = Name $ T.pack $ takeBaseName fn\n  if b\n    then do\n      f <- T.lines <$> T.readFile fn\n      case f of\n        [] -> error $ \"Empty .tscn file: \" ++ fn\n        (h : l) -> do\n          if T.isPrefixOf \"[gd_scene \" h\n            then\n              pure $\n                fillRoot $\n                  foldl'\n                    ( \\(s, current, root) t ->\n                        if\n                            | T.isPrefixOf \"[ext_resource \" t ->\n                              ( s & resources . at (rowId t) ?~ Resource (rowType t) (rowPath t),\n                                current,\n                                root\n                              )\n                            | T.isPrefixOf \"[node \" t ->\n                              ( s & nodes . at (rowName t) ?~ TscnNode (rowType t) (rowParent t) (rowInstance t) Nothing,\n                                Just $ rowName t,\n                                case rowParent t of\n                                  Nothing -> Just $ rowName t\n                                  _ -> root\n                              )\n                            | T.isPrefixOf \"[connection \" t ->\n                              ( s & connections %~ (TscnConnection (rowSignal t) (rowFrom root t) (rowTo root t) (rowMethod t) :),\n                                current,\n                                root\n                              )\n                            | T.isPrefixOf \"script = ExtResource( \" t ->\n                              case current of\n                                Just name -> (s & nodes . ix name . script ?~ resScript t, current, root)\n                            | otherwise -> (s, current, root)\n                    )\n                    (Tscn tscnName M.empty M.empty [] Nothing relFile, Nothing, Nothing)\n                    l\n            else pure $ Tscn tscnName M.empty M.empty [] Nothing relFile\n    else pure $ Tscn tscnName M.empty M.empty [] Nothing relFile\n  where\n    fillRoot (tscn, _, root) = tscn & rootNode .~ root\n\nreadGdns fn = do\n  b <- doesFileExist fn\n  if b\n    then do\n      f <- T.lines <$> T.readFile fn\n      case f of\n        [] -> error $ \"Empty .gdns file: \" ++ fn\n        (h : l) -> do\n          if T.isPrefixOf \"[gd_resource type=\\\"NativeScript\\\" \" h\n            then\n              pure $\n                fst $\n                  foldl'\n                    ( \\(s, current) t ->\n                        if\n                            | T.isPrefixOf \"[ext_resource \" t ->\n                              (s & extResources . at (rowId t) ?~ Resource (rowType t) (rowPath t), current)\n                            | T.isPrefixOf \"[\" t -> (s, Nothing) -- Reset on any new heading\n                            | T.isPrefixOf \"class_name =\" t -> (s, Just $ resClassName t)\n                            | T.isPrefixOf \"library = \" t ->\n                              ( s & resources . at (fromJust current) ?~ resLibrary t,\n                                current\n                              )\n                            | otherwise -> (s, current)\n                    )\n                    (Gdns M.empty M.empty, Nothing)\n                    l\n            else pure $ Gdns M.empty M.empty\n    else pure $ Gdns M.empty M.empty\n\nmain :: IO ()\nmain = do\n  args <- getArgs\n  case args of\n    [inDir, outDir] -> do\n      let regenerate = do\n            putStrLn \"Regenerating ...\"\n            gdnsFiles <- allByExtension \".gdns\" inDir\n            tscnFiles <- allByExtension \".tscn\" inDir\n            mapM_ putStrLn gdnsFiles\n            mapM_ putStrLn tscnFiles\n            b <- doesDirectoryExist (outDir </> \"Project\")\n            when b $ removeDirectoryRecursive (outDir </> \"Project\")\n            createDirectoryIfMissing True (outDir </> \"Project\" </> \"Scenes\")\n            outputSupport outDir\n            ---\n            tscns <-\n              fmap M.fromList $\n                forM tscnFiles $ \\f ->\n                  let relFile = makeRelative inDir f\n                   in (T.pack relFile,) <$> readTscn f relFile\n            gdnss <-\n              fmap M.fromList $\n                forM gdnsFiles $ \\f ->\n                  (T.pack $ makeRelative inDir f,) <$> readGdns f\n            ---\n            forM_ (M.toList tscns) $ \\(fn, t) ->\n              outputTscn (segmentsName inDir fn) (moduleName inDir fn) outDir t tscns gdnss\n            outputCombined inDir outDir tscns\n            outputGdnss inDir outDir gdnss\n            putStrLn \"Generated!\"\n            putStrLn \"Watching ... ctrl+c to stop\"\n      regenerate\n      withManager $ \\mgr -> do\n        watchDir\n          mgr\n          inDir\n          ( \\e ->\n              let ext = takeExtension (eventPath e)\n               in ext == \".gdns\" || ext == \".tscn\"\n          )\n          ( \\a -> do\n              regenerate\n              print a\n          )\n        forever $ threadDelay 1000000\n    _ -> error \"Usage: godot-haskell-project-generator <godot-project-directory> <haskell-src-directory>\"\n\nsegmentsName :: FilePath -> T.Text -> [[Char]]\nsegmentsName inDir tscnFilepath =\n  map mangle $ filter (/= \".\") $ splitPath $ takeDirectory $ T.unpack tscnFilepath\n\nmoduleName :: FilePath -> T.Text -> [Char]\nmoduleName inDir tscnFilepath =\n  mangle $ takeBaseName $ T.unpack tscnFilepath\n\noutputTscn :: [FilePath] -> FilePath -> FilePath -> Tscn -> M.Map T.Text Tscn -> M.Map T.Text Gdns -> IO ()\noutputTscn segmentsTscnName sceneName outDir tscn tscns gdnss = do\n  createAndWriteFile (normalise $ outDir </> \"Project\" </> \"Scenes\" </> joinPath segmentsTscnName </> sceneName <> \".hs\") $\n    T.unlines\n      ( [T.pack language, mkModule (toNamespace $ segmentsTscnName <> [sceneName])]\n          ++ nub (map fst sceneNodes)\n          ++ [ mkScenePath (_tscnSceneName tscn) (tscn ^. filepath),\n               mkSceneRoot (_tscnSceneName tscn) (tscn ^. rootNode)\n             ]\n          ++ map snd sceneNodes\n          ++ map\n            ( \\conn ->\n                mkSceneConnection sceneName (conn ^. from) (conn ^. signal) (conn ^. to) (conn ^. method)\n            )\n            (tscn ^. connections)\n      )\n  where\n    sceneNodes =\n      flip mapMaybe (M.toList $ tscn ^. nodes) $ \\(name, node) -> do\n        ty <- case (node ^. ty, node ^. instanceof) of\n          (Ty \"\", Just i) -> case M.lookup i (tscn ^. resources) of\n            Just r -> Just $ r ^. ty\n            Nothing -> error $ \"Can't look up type of \" ++ show (name, node)\n          -- This happens for nodes from editable scenes\n          (Ty \"\", Nothing) -> Nothing\n          (t, _) -> Just t\n\n        return $\n          mkSceneNode\n            sceneName\n            (T.unpack $ unName name)\n            ( case node ^. parent of\n                Nothing -> unName name\n                Just (NodePath \".\") -> unName name\n                Just (NodePath p') -> p' <> \"/\" <> unName name\n            )\n            ty\n            (annotatePackedScene node ty)\n            (isHaskellNode name node tscn tscns gdnss)\n\n    annotatePackedScene node (Ty \"PackedScene\") =\n      Ty $\n        \"PackedScene' \\\"\"\n          <> unName\n            ( fromJust $ do\n                i <- node ^. instanceof\n                r <- M.lookup i (tscn ^. resources)\n                t <- M.lookup (r ^. path) tscns\n                t ^. rootNode\n            )\n          <> \"\\\"\"\n    annotatePackedScene node ty = ty\n\nisHaskellNode :: Name -> TscnNode -> Tscn -> M.Map T.Text Tscn -> M.Map T.Text Gdns -> Maybe (Name, Name)\nisHaskellNode name node tscn tscns gdnss =\n  case ((\\f -> tscn ^? resources . at f . _Just . path) =<< (node ^. script), node ^. instanceof) of\n    (Just p, _) -> case gdnss ^. at p of\n      Just g ->\n        if isHaskellGdns name g\n          then Just (Name $ T.pack $ dropExtension $ T.unpack p, name)\n          else Nothing\n      Nothing -> Nothing\n    (_, Just i) ->\n      let t = tscns ^. at (tscn ^. resources . at i . _Just . path)\n       in case (t, rootNodeTscn (fromJust t)) of\n            (Just t', Just (n, r)) -> isHaskellNode n r t' tscns gdnss\n            _ -> Nothing\n    _ -> Nothing\n\nisHaskellGdns :: Name -> Gdns -> Bool\nisHaskellGdns n gdns =\n  maybe False (\\f -> maybe False isHaskellResource (gdns ^. extResources . at f)) (gdns ^. resources . at n)\n\nisHaskellResource :: Resource -> Bool\nisHaskellResource r = T.isSuffixOf \".gdnlib\" $ r ^. path\n\nrootNodeTscn :: Tscn -> Maybe (Name, TscnNode)\nrootNodeTscn tscn = find (\\(name, node) -> isNothing (node ^. parent)) $ M.toList $ tscn ^. nodes\n\noutputCombined inDir outDir tscns =\n  createAndWriteFile (outDir </> \"Project\" </> \"Scenes.hs\") $\n    T.pack\n      [i|module Project.Scenes #{exports} where\n#{imports}\n|]\n  where\n    imports =\n      unlines $\n        map\n          ( \\(fn, t) ->\n              let f = toNamespace $ segmentsName inDir fn <> [moduleName inDir fn]\n               in [i|import qualified Project.Scenes.#{f} as M|]\n          )\n          $ M.toList tscns\n    exports = if null imports then \"\" else \"(module M)\"\n\noutputSupport dir = createAndWriteFile (dir </> \"Project\" </> \"Support.hs\") (T.pack $ language ++ support)\n\nmkRequirementsModule inDir gdnss =\n  T.pack\n    [i|{-# LANGUAGE DataKinds #-}\n\nmodule Project.Requirements where\nimport Project.Support\n\ntype Nodes = '[#{reqs}]\n|]\n  where\n    reqs = intercalate \", \" $ map one $ sort $ concatMap (mkRequirement inDir) gdnss\n    one (resource, name) = [i|OneResourceNode \"#{resource}\" \"#{name}\"|]\n\noutputGdnss :: FilePath -> FilePath -> M.Map T.Text Gdns -> IO ()\noutputGdnss inDir dir gdnss = createAndWriteFile (dir </> \"Project\" </> \"Requirements.hs\") $ mkRequirementsModule inDir $ M.toList gdnss\n\nmkRequirement :: FilePath -> (T.Text, Gdns) -> [(String, T.Text)]\nmkRequirement inDir (fn, gdns) =\n  mapMaybe\n    ( \\(n, i) ->\n        case M.lookup i (gdns ^. extResources) of\n          Just r ->\n            if T.isInfixOf \".gdnlib\" (r ^. path) && unTy (r ^. ty) == \"GDNativeLibrary\"\n              then Just (moduleName inDir fn, unName n)\n              else Nothing\n          _ -> Nothing\n    )\n    $ M.toList $ gdns ^. resources\n\ntoNamespace :: [FilePath] -> String\ntoNamespace = intercalate \".\" . fmap dropTrailingPathSeparator\n"
  },
  {
    "path": "release.nix",
    "content": "let\n  pkgs = import <nixpkgs> { };\nin\n  pkgs.haskellPackages.callPackage ./default.nix { api-json = null; }\n"
  },
  {
    "path": "shell-spacemacs-hie.nix",
    "content": "let\n  pinned = import ./nix/pinned {\n    inherit (import <nixpkgs> {})\n      fetchFromGitHub\n      lib;\n };\n\n  hsPkgs = pinned.nixpkgs.haskell.packages.\"ghc864\";\nin\n  hsPkgs.developPackage {\n    root = ./.;\n    modifier = drv: pinned.nixpkgs.haskell.lib.addBuildTools drv\n       (import ./nix/spacemacs-hie.nix {\n         pkgs = pinned.nixpkgs;\n         inherit hsPkgs;\n       });\n  }\n"
  },
  {
    "path": "shell.nix",
    "content": "{ nixpkgs ? import ./pinned-nixpkgs.nix {}\n, compiler ? \"default\"\n, doBenchmark ? false }:\n\nlet\n  inherit (nixpkgs) pkgs;\n\n  haskellPackages = if compiler == \"default\"\n                       then pkgs.haskellPackages\n                       else pkgs.haskell.packages.${compiler};\n\n  variant = if doBenchmark then pkgs.haskell.lib.doBenchmark else pkgs.lib.id;\n\n  drv = variant (haskellPackages.callPackage ./. {});\n\nin\n\n  if pkgs.lib.inNixShell then drv.env else drv\n"
  },
  {
    "path": "src/Godot/Api/Types.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TemplateHaskell #-}\nmodule Godot.Api.Types\n       (HasBaseClass(..), GlobalConstants(..), ARVRAnchor(..),\n        ARVRCamera(..), ARVRController(..), ARVRInterface(..),\n        ARVRInterfaceGDNative(..), ARVROrigin(..),\n        ARVRPositionalTracker(..), ARVRServer(..), AStar(..), AStar2D(..),\n        AcceptDialog(..), AnimatedSprite(..), AnimatedSprite3D(..),\n        AnimatedTexture(..), Animation(..), AnimationNode(..),\n        AnimationNodeAdd2(..), AnimationNodeAdd3(..),\n        AnimationNodeAnimation(..), AnimationNodeBlend2(..),\n        AnimationNodeBlend3(..), AnimationNodeBlendSpace1D(..),\n        AnimationNodeBlendSpace2D(..), AnimationNodeBlendTree(..),\n        AnimationNodeOneShot(..), AnimationNodeOutput(..),\n        AnimationNodeStateMachine(..),\n        AnimationNodeStateMachinePlayback(..),\n        AnimationNodeStateMachineTransition(..),\n        AnimationNodeTimeScale(..), AnimationNodeTimeSeek(..),\n        AnimationNodeTransition(..), AnimationPlayer(..),\n        AnimationRootNode(..), AnimationTrackEditPlugin(..),\n        AnimationTree(..), AnimationTreePlayer(..), Area(..), Area2D(..),\n        ArrayMesh(..), AtlasTexture(..), AudioBusLayout(..),\n        AudioEffect(..), AudioEffectAmplify(..),\n        AudioEffectBandLimitFilter(..), AudioEffectBandPassFilter(..),\n        AudioEffectChorus(..), AudioEffectCompressor(..),\n        AudioEffectDelay(..), AudioEffectDistortion(..), AudioEffectEQ(..),\n        AudioEffectEQ10(..), AudioEffectEQ21(..), AudioEffectEQ6(..),\n        AudioEffectFilter(..), AudioEffectHighPassFilter(..),\n        AudioEffectHighShelfFilter(..), AudioEffectInstance(..),\n        AudioEffectLimiter(..), AudioEffectLowPassFilter(..),\n        AudioEffectLowShelfFilter(..), AudioEffectNotchFilter(..),\n        AudioEffectPanner(..), AudioEffectPhaser(..),\n        AudioEffectPitchShift(..), AudioEffectRecord(..),\n        AudioEffectReverb(..), AudioEffectSpectrumAnalyzer(..),\n        AudioEffectSpectrumAnalyzerInstance(..),\n        AudioEffectStereoEnhance(..), AudioServer(..), AudioStream(..),\n        AudioStreamGenerator(..), AudioStreamGeneratorPlayback(..),\n        AudioStreamMicrophone(..), AudioStreamOGGVorbis(..),\n        AudioStreamPlayback(..), AudioStreamPlaybackResampled(..),\n        AudioStreamPlayer(..), AudioStreamPlayer2D(..),\n        AudioStreamPlayer3D(..), AudioStreamRandomPitch(..),\n        AudioStreamSample(..), BackBufferCopy(..), BakedLightmap(..),\n        BakedLightmapData(..), BaseButton(..), BitMap(..), BitmapFont(..),\n        Bone2D(..), BoneAttachment(..), BoxContainer(..), BoxShape(..),\n        BulletPhysicsDirectBodyState(..), BulletPhysicsServer(..),\n        Button(..), ButtonGroup(..), CPUParticles(..), CPUParticles2D(..),\n        CSGBox(..), CSGCombiner(..), CSGCylinder(..), CSGMesh(..),\n        CSGPolygon(..), CSGPrimitive(..), CSGShape(..), CSGSphere(..),\n        CSGTorus(..), Camera(..), Camera2D(..), CameraFeed(..),\n        CameraServer(..), CameraTexture(..), CanvasItem(..),\n        CanvasItemMaterial(..), CanvasLayer(..), CanvasModulate(..),\n        CapsuleMesh(..), CapsuleShape(..), CapsuleShape2D(..),\n        CenterContainer(..), CharFXTransform(..), CheckBox(..),\n        CheckButton(..), CircleShape2D(..), ClippedCamera(..),\n        CollisionObject(..), CollisionObject2D(..), CollisionPolygon(..),\n        CollisionPolygon2D(..), CollisionShape(..), CollisionShape2D(..),\n        ColorPicker(..), ColorPickerButton(..), ColorRect(..),\n        ConcavePolygonShape(..), ConcavePolygonShape2D(..),\n        ConeTwistJoint(..), ConfigFile(..), ConfirmationDialog(..),\n        Container(..), Control(..), ConvexPolygonShape(..),\n        ConvexPolygonShape2D(..), Crypto(..), CryptoKey(..), CubeMap(..),\n        CubeMesh(..), Curve(..), Curve2D(..), Curve3D(..),\n        CurveTexture(..), CylinderMesh(..), CylinderShape(..),\n        DampedSpringJoint2D(..), DirectionalLight(..), DynamicFont(..),\n        DynamicFontData(..), EditorExportPlugin(..),\n        EditorFeatureProfile(..), EditorFileDialog(..),\n        EditorFileSystem(..), EditorFileSystemDirectory(..),\n        EditorImportPlugin(..), EditorInspector(..),\n        EditorInspectorPlugin(..), EditorInterface(..),\n        EditorNavigationMeshGenerator(..), EditorPlugin(..),\n        EditorProperty(..), EditorResourceConversionPlugin(..),\n        EditorResourcePreview(..), EditorResourcePreviewGenerator(..),\n        EditorSceneImporter(..), EditorSceneImporterAssimp(..),\n        EditorScenePostImport(..), EditorScript(..), EditorSelection(..),\n        EditorSettings(..), EditorSpatialGizmo(..),\n        EditorSpatialGizmoPlugin(..), EditorSpinSlider(..),\n        EditorVCSInterface(..), EncodedObjectAsID(..), Environment(..),\n        Expression(..), FileDialog(..), Font(..), FuncRef(..),\n        GDNative(..), GDNativeLibrary(..), GDScript(..),\n        GDScriptFunctionState(..), GIProbe(..), GIProbeData(..),\n        Generic6DOFJoint(..), GeometryInstance(..), Gradient(..),\n        GradientTexture(..), GraphEdit(..), GraphNode(..),\n        GridContainer(..), GridMap(..), GrooveJoint2D(..),\n        HBoxContainer(..), HScrollBar(..), HSeparator(..), HSlider(..),\n        HSplitContainer(..), HTTPClient(..), HTTPRequest(..),\n        HashingContext(..), HeightMapShape(..), HingeJoint(..), IP(..),\n        IP_Unix(..), Image(..), ImageTexture(..), ImmediateGeometry(..),\n        Input(..), InputDefault(..), InputEvent(..), InputEventAction(..),\n        InputEventGesture(..), InputEventJoypadButton(..),\n        InputEventJoypadMotion(..), InputEventKey(..), InputEventMIDI(..),\n        InputEventMagnifyGesture(..), InputEventMouse(..),\n        InputEventMouseButton(..), InputEventMouseMotion(..),\n        InputEventPanGesture(..), InputEventScreenDrag(..),\n        InputEventScreenTouch(..), InputEventWithModifiers(..),\n        InputMap(..), InstancePlaceholder(..), InterpolatedCamera(..),\n        ItemList(..), JSONParseResult(..), JSONRPC(..), JavaClass(..),\n        JavaClassWrapper(..), JavaScript(..), Joint(..), Joint2D(..),\n        KinematicBody(..), KinematicBody2D(..), KinematicCollision(..),\n        KinematicCollision2D(..), Label(..), LargeTexture(..), Light(..),\n        Light2D(..), LightOccluder2D(..), Line2D(..), LineEdit(..),\n        LineShape2D(..), LinkButton(..), Listener(..), MainLoop(..),\n        MarginContainer(..), Material(..), MenuButton(..), Mesh(..),\n        MeshDataTool(..), MeshInstance(..), MeshInstance2D(..),\n        MeshLibrary(..), MeshTexture(..), MobileVRInterface(..),\n        MultiMesh(..), MultiMeshInstance(..), MultiMeshInstance2D(..),\n        MultiplayerAPI(..), MultiplayerPeerGDNative(..), NativeScript(..),\n        Navigation(..), Navigation2D(..), NavigationMesh(..),\n        NavigationMeshInstance(..), NavigationPolygon(..),\n        NavigationPolygonInstance(..), NetworkedMultiplayerENet(..),\n        NetworkedMultiplayerPeer(..), NinePatchRect(..), Node(..),\n        Node2D(..), NoiseTexture(..), OccluderPolygon2D(..), OmniLight(..),\n        OpenSimplexNoise(..), OptionButton(..), PCKPacker(..),\n        PHashTranslation(..), PackedDataContainer(..),\n        PackedDataContainerRef(..), PackedScene(..), PacketPeer(..),\n        PacketPeerGDNative(..), PacketPeerStream(..), PacketPeerUDP(..),\n        Panel(..), PanelContainer(..), PanoramaSky(..),\n        ParallaxBackground(..), ParallaxLayer(..), Particles(..),\n        Particles2D(..), ParticlesMaterial(..), Path(..), Path2D(..),\n        PathFollow(..), PathFollow2D(..), Performance(..),\n        PhysicalBone(..), Physics2DDirectBodyState(..),\n        Physics2DDirectBodyStateSW(..), Physics2DDirectSpaceState(..),\n        Physics2DServer(..), Physics2DServerSW(..),\n        Physics2DShapeQueryParameters(..), Physics2DShapeQueryResult(..),\n        Physics2DTestMotionResult(..), PhysicsBody(..), PhysicsBody2D(..),\n        PhysicsDirectBodyState(..), PhysicsDirectSpaceState(..),\n        PhysicsMaterial(..), PhysicsServer(..),\n        PhysicsShapeQueryParameters(..), PhysicsShapeQueryResult(..),\n        PinJoint(..), PinJoint2D(..), PlaneMesh(..), PlaneShape(..),\n        PluginScript(..), PointMesh(..), Polygon2D(..),\n        PolygonPathFinder(..), Popup(..), PopupDialog(..), PopupMenu(..),\n        PopupPanel(..), Position2D(..), Position3D(..), PrimitiveMesh(..),\n        PrismMesh(..), ProceduralSky(..), ProgressBar(..),\n        ProjectSettings(..), ProximityGroup(..), ProxyTexture(..),\n        QuadMesh(..), RandomNumberGenerator(..), Range(..), RayCast(..),\n        RayCast2D(..), RayShape(..), RayShape2D(..), RectangleShape2D(..),\n        Reference(..), ReferenceRect(..), ReflectionProbe(..), RegEx(..),\n        RegExMatch(..), RemoteTransform(..), RemoteTransform2D(..),\n        Resource(..), ResourceFormatLoader(..),\n        ResourceFormatLoaderCrypto(..), ResourceFormatSaver(..),\n        ResourceFormatSaverCrypto(..), ResourceImporter(..),\n        ResourceInteractiveLoader(..), ResourcePreloader(..),\n        RichTextEffect(..), RichTextLabel(..), RigidBody(..),\n        RigidBody2D(..), RootMotionView(..), SceneState(..), SceneTree(..),\n        SceneTreeTimer(..), Script(..), ScriptCreateDialog(..),\n        ScriptEditor(..), ScrollBar(..), ScrollContainer(..),\n        SegmentShape2D(..), Separator(..), Shader(..), ShaderMaterial(..),\n        Shape(..), Shape2D(..), ShortCut(..), Skeleton(..), Skeleton2D(..),\n        SkeletonIK(..), Skin(..), SkinReference(..), Sky(..), Slider(..),\n        SliderJoint(..), SoftBody(..), Spatial(..), SpatialGizmo(..),\n        SpatialMaterial(..), SpatialVelocityTracker(..), SphereMesh(..),\n        SphereShape(..), SpinBox(..), SplitContainer(..), SpotLight(..),\n        SpringArm(..), Sprite(..), Sprite3D(..), SpriteBase3D(..),\n        SpriteFrames(..), StaticBody(..), StaticBody2D(..), StreamPeer(..),\n        StreamPeerBuffer(..), StreamPeerGDNative(..), StreamPeerSSL(..),\n        StreamPeerTCP(..), StreamTexture(..), StyleBox(..),\n        StyleBoxEmpty(..), StyleBoxFlat(..), StyleBoxLine(..),\n        StyleBoxTexture(..), SurfaceTool(..), TCP_Server(..),\n        TabContainer(..), Tabs(..), TextEdit(..), TextFile(..),\n        Texture(..), Texture3D(..), TextureArray(..), TextureButton(..),\n        TextureLayered(..), TextureProgress(..), TextureRect(..),\n        Theme(..), TileMap(..), TileSet(..), Timer(..), ToolButton(..),\n        TouchScreenButton(..), Translation(..), TranslationServer(..),\n        Tree(..), TreeItem(..), TriangleMesh(..), Tween(..), UPNP(..),\n        UPNPDevice(..), UndoRedo(..), VBoxContainer(..), VScrollBar(..),\n        VSeparator(..), VSlider(..), VSplitContainer(..), VehicleBody(..),\n        VehicleWheel(..), VideoPlayer(..), VideoStream(..),\n        VideoStreamGDNative(..), VideoStreamTheora(..),\n        VideoStreamWebm(..), Viewport(..), ViewportContainer(..),\n        ViewportTexture(..), VisibilityEnabler(..),\n        VisibilityEnabler2D(..), VisibilityNotifier(..),\n        VisibilityNotifier2D(..), VisualInstance(..), VisualScript(..),\n        VisualScriptBasicTypeConstant(..), VisualScriptBuiltinFunc(..),\n        VisualScriptClassConstant(..), VisualScriptComment(..),\n        VisualScriptComposeArray(..), VisualScriptCondition(..),\n        VisualScriptConstant(..), VisualScriptConstructor(..),\n        VisualScriptCustomNode(..), VisualScriptDeconstruct(..),\n        VisualScriptEmitSignal(..), VisualScriptEngineSingleton(..),\n        VisualScriptExpression(..), VisualScriptFunction(..),\n        VisualScriptFunctionCall(..), VisualScriptFunctionState(..),\n        VisualScriptGlobalConstant(..), VisualScriptIndexGet(..),\n        VisualScriptIndexSet(..), VisualScriptInputAction(..),\n        VisualScriptIterator(..), VisualScriptLists(..),\n        VisualScriptLocalVar(..), VisualScriptLocalVarSet(..),\n        VisualScriptMathConstant(..), VisualScriptNode(..),\n        VisualScriptOperator(..), VisualScriptPreload(..),\n        VisualScriptPropertyGet(..), VisualScriptPropertySet(..),\n        VisualScriptResourcePath(..), VisualScriptReturn(..),\n        VisualScriptSceneNode(..), VisualScriptSceneTree(..),\n        VisualScriptSelect(..), VisualScriptSelf(..),\n        VisualScriptSequence(..), VisualScriptSubCall(..),\n        VisualScriptSwitch(..), VisualScriptTypeCast(..),\n        VisualScriptVariableGet(..), VisualScriptVariableSet(..),\n        VisualScriptWhile(..), VisualScriptYield(..),\n        VisualScriptYieldSignal(..), VisualServer(..), VisualShader(..),\n        VisualShaderNode(..), VisualShaderNodeBooleanConstant(..),\n        VisualShaderNodeBooleanUniform(..),\n        VisualShaderNodeColorConstant(..), VisualShaderNodeColorFunc(..),\n        VisualShaderNodeColorOp(..), VisualShaderNodeColorUniform(..),\n        VisualShaderNodeCompare(..), VisualShaderNodeCubeMap(..),\n        VisualShaderNodeCubeMapUniform(..), VisualShaderNodeCustom(..),\n        VisualShaderNodeDeterminant(..), VisualShaderNodeDotProduct(..),\n        VisualShaderNodeExpression(..), VisualShaderNodeFaceForward(..),\n        VisualShaderNodeFresnel(..), VisualShaderNodeGlobalExpression(..),\n        VisualShaderNodeGroupBase(..), VisualShaderNodeIf(..),\n        VisualShaderNodeInput(..), VisualShaderNodeIs(..),\n        VisualShaderNodeOuterProduct(..), VisualShaderNodeOutput(..),\n        VisualShaderNodeScalarClamp(..),\n        VisualShaderNodeScalarConstant(..),\n        VisualShaderNodeScalarDerivativeFunc(..),\n        VisualShaderNodeScalarFunc(..), VisualShaderNodeScalarInterp(..),\n        VisualShaderNodeScalarOp(..), VisualShaderNodeScalarSmoothStep(..),\n        VisualShaderNodeScalarSwitch(..),\n        VisualShaderNodeScalarUniform(..), VisualShaderNodeSwitch(..),\n        VisualShaderNodeTexture(..), VisualShaderNodeTextureUniform(..),\n        VisualShaderNodeTextureUniformTriplanar(..),\n        VisualShaderNodeTransformCompose(..),\n        VisualShaderNodeTransformConstant(..),\n        VisualShaderNodeTransformDecompose(..),\n        VisualShaderNodeTransformFunc(..),\n        VisualShaderNodeTransformMult(..),\n        VisualShaderNodeTransformUniform(..),\n        VisualShaderNodeTransformVecMult(..), VisualShaderNodeUniform(..),\n        VisualShaderNodeVec3Constant(..), VisualShaderNodeVec3Uniform(..),\n        VisualShaderNodeVectorClamp(..), VisualShaderNodeVectorCompose(..),\n        VisualShaderNodeVectorDecompose(..),\n        VisualShaderNodeVectorDerivativeFunc(..),\n        VisualShaderNodeVectorDistance(..), VisualShaderNodeVectorFunc(..),\n        VisualShaderNodeVectorInterp(..), VisualShaderNodeVectorLen(..),\n        VisualShaderNodeVectorOp(..), VisualShaderNodeVectorRefract(..),\n        VisualShaderNodeVectorScalarMix(..),\n        VisualShaderNodeVectorScalarSmoothStep(..),\n        VisualShaderNodeVectorScalarStep(..),\n        VisualShaderNodeVectorSmoothStep(..), WeakRef(..),\n        WebRTCDataChannel(..), WebRTCDataChannelGDNative(..),\n        WebRTCMultiplayer(..), WebRTCPeerConnection(..),\n        WebRTCPeerConnectionGDNative(..), WebSocketClient(..),\n        WebSocketMultiplayerPeer(..), WebSocketPeer(..),\n        WebSocketServer(..), WindowDialog(..), World(..), World2D(..),\n        WorldEnvironment(..), X509Certificate(..), XMLParser(..),\n        YSort(..), ClassDB(..), Directory(..), Engine(..), File(..),\n        Geometry(..), JSON(..), Marshalls(..), Mutex(..), OS(..),\n        ResourceLoader(..), ResourceSaver(..), Semaphore(..), Thread(..),\n        VisualScriptEditor(..))\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport Godot.Gdnative.Internal\n\nnewtype GlobalConstants = GlobalConstants Object\n                            deriving newtype AsVariant\n\n-- | An anchor point in AR space.\n--   The @ARVRAnchor@ point is a spatial node that maps a real world location identified by the AR platform to a position within the game world. For example, as long as plane detection in ARKit is on, ARKit will identify and update the position of planes (tables, floors, etc) and create anchors for them.\n--   \t\tThis node is mapped to one of the anchors through its unique ID. When you receive a signal that a new anchor is available, you should add this node to your scene for that anchor. You can predefine nodes and set the ID; the nodes will simply remain on 0,0,0 until a plane is recognized.\n--   \t\tKeep in mind that, as long as plane detection is enabled, the size, placing and orientation of an anchor will be updated as the detection logic learns more about the real world out there especially if only part of the surface is in view.\nnewtype ARVRAnchor = ARVRAnchor Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass ARVRAnchor where\n        type BaseClass ARVRAnchor = Spatial\n        super = coerce\n\n-- | A camera node with a few overrules for AR/VR applied, such as location tracking.\n--   This is a helper spatial node for our camera; note that, if stereoscopic rendering is applicable (VR-HMD), most of the camera properties are ignored, as the HMD information overrides them. The only properties that can be trusted are the near and far planes.\n--   \t\tThe position and orientation of this node is automatically updated by the ARVR Server to represent the location of the HMD if such tracking is available and can thus be used by game logic. Note that, in contrast to the ARVR Controller, the render thread has access to the most up-to-date tracking data of the HMD and the location of the ARVRCamera can lag a few milliseconds behind what is used for rendering as a result.\nnewtype ARVRCamera = ARVRCamera Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass ARVRCamera where\n        type BaseClass ARVRCamera = Camera\n        super = coerce\n\n-- | A spatial node representing a spatially-tracked controller.\n--   This is a helper spatial node that is linked to the tracking of controllers. It also offers several handy passthroughs to the state of buttons and such on the controllers.\n--   \t\tControllers are linked by their ID. You can create controller nodes before the controllers are available. If your game always uses two controllers (one for each hand), you can predefine the controllers with ID 1 and 2; they will become active as soon as the controllers are identified. If you expect additional controllers to be used, you should react to the signals and add ARVRController nodes to your scene.\n--   \t\tThe position of the controller node is automatically updated by the @ARVRServer@. This makes this node ideal to add child nodes to visualize the controller.\nnewtype ARVRController = ARVRController Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass ARVRController where\n        type BaseClass ARVRController = Spatial\n        super = coerce\n\n-- | Base class for an AR/VR interface implementation.\n--   This class needs to be implemented to make an AR or VR platform available to Godot and these should be implemented as C++ modules or GDNative modules (note that for GDNative the subclass ARVRScriptInterface should be used). Part of the interface is exposed to GDScript so you can detect, enable and configure an AR or VR platform.\n--   \t\tInterfaces should be written in such a way that simply enabling them will give us a working setup. You can query the available interfaces through @ARVRServer@.\nnewtype ARVRInterface = ARVRInterface Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass ARVRInterface where\n        type BaseClass ARVRInterface = Reference\n        super = coerce\n\nnewtype ARVRInterfaceGDNative = ARVRInterfaceGDNative Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass ARVRInterfaceGDNative where\n        type BaseClass ARVRInterfaceGDNative = ARVRInterface\n        super = coerce\n\n-- | The origin point in AR/VR.\n--   This is a special node within the AR/VR system that maps the physical location of the center of our tracking space to the virtual location within our game world.\n--   \t\tThere should be only one of these nodes in your scene and you must have one. All the ARVRCamera, ARVRController and ARVRAnchor nodes should be direct children of this node for spatial tracking to work correctly.\n--   \t\tIt is the position of this node that you update when your character needs to move through your game world while we're not moving in the real world. Movement in the real world is always in relation to this origin point.\n--   \t\tFor example, if your character is driving a car, the ARVROrigin node should be a child node of this car. Or, if you're implementing a teleport system to move your character, you should change the position of this node.\nnewtype ARVROrigin = ARVROrigin Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass ARVROrigin where\n        type BaseClass ARVROrigin = Spatial\n        super = coerce\n\n-- | A tracked object.\n--   An instance of this object represents a device that is tracked, such as a controller or anchor point. HMDs aren't represented here as they are handled internally.\n--   \t\tAs controllers are turned on and the AR/VR interface detects them, instances of this object are automatically added to this list of active tracking objects accessible through the @ARVRServer@.\n--   \t\tThe @ARVRController@ and @ARVRAnchor@ both consume objects of this type and should be used in your project. The positional trackers are just under-the-hood objects that make this all work. These are mostly exposed so that GDNative-based interfaces can interact with them.\nnewtype ARVRPositionalTracker = ARVRPositionalTracker Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass ARVRPositionalTracker where\n        type BaseClass ARVRPositionalTracker = Object\n        super = coerce\n\n-- | Server for AR and VR features.\n--   The AR/VR server is the heart of our Advanced and Virtual Reality solution and handles all the processing.\nnewtype ARVRServer = ARVRServer Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass ARVRServer where\n        type BaseClass ARVRServer = Object\n        super = coerce\n\n-- | An implementation of A* to find shortest paths among connected points in space.\n--   A* (A star) is a computer algorithm that is widely used in pathfinding and graph traversal, the process of plotting short paths among vertices (points), passing through a given set of edges (segments). It enjoys widespread use due to its performance and accuracy. Godot's A* implementation uses points in three-dimensional space and Euclidean distances by default.\n--   \t\tYou must add points manually with @method add_point@ and create segments manually with @method connect_points@. Then you can test if there is a path between two points with the @method are_points_connected@ function, get a path containing indices by @method get_id_path@, or one containing actual coordinates with @method get_point_path@.\n--   \t\tIt is also possible to use non-Euclidean distances. To do so, create a class that extends @AStar@ and override methods @method _compute_cost@ and @method _estimate_cost@. Both take two indices and return a length, as is shown in the following example.\n--   \t\t\n--   @\n--   \n--   \t\tclass MyAStar:\n--   \t\t    extends AStar\n--   \n--   \t\t    func _compute_cost(u, v):\n--   \t\t        return abs(u - v)\n--   \n--   \t\t    func _estimate_cost(u, v):\n--   \t\t        return min(0, abs(u - v) - 1)\n--   \t\t\n--   @\n--   \n--   \t\t@method _estimate_cost@ should return a lower bound of the distance, i.e. @_estimate_cost(u, v) <= _compute_cost(u, v)@. This serves as a hint to the algorithm because the custom @_compute_cost@ might be computation-heavy. If this is not the case, make @method _estimate_cost@ return the same value as @method _compute_cost@ to provide the algorithm with the most accurate information.\nnewtype AStar = AStar Object\n                  deriving newtype AsVariant\n\ninstance HasBaseClass AStar where\n        type BaseClass AStar = Reference\n        super = coerce\n\n-- | AStar class representation that uses 2D vectors as edges.\n--   This is a wrapper for the @AStar@ class which uses 2D vectors instead of 3D vectors.\nnewtype AStar2D = AStar2D Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass AStar2D where\n        type BaseClass AStar2D = Reference\n        super = coerce\n\n-- | Base dialog for user notification.\n--   This dialog is useful for small notifications to the user about an event. It can only be accepted or closed, with the same result.\nnewtype AcceptDialog = AcceptDialog Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass AcceptDialog where\n        type BaseClass AcceptDialog = WindowDialog\n        super = coerce\n\n-- | Sprite node that can use multiple textures for animation.\n--   Animations are created using a @SpriteFrames@ resource, which can be configured in the editor via the SpriteFrames panel.\n--   \t\t__Note:__ You can associate a set of normal maps by creating additional @SpriteFrames@ resources with a @_normal@ suffix. For example, having 2 @SpriteFrames@ resources @run@ and @run_normal@ will make it so the @run@ animation uses the normal map.\nnewtype AnimatedSprite = AnimatedSprite Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass AnimatedSprite where\n        type BaseClass AnimatedSprite = Node2D\n        super = coerce\n\n-- | 2D sprite node in 3D world, that can use multiple 2D textures for animation.\n--   Animations are created using a @SpriteFrames@ resource, which can be configured in the editor via the SpriteFrames panel.\nnewtype AnimatedSprite3D = AnimatedSprite3D Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass AnimatedSprite3D where\n        type BaseClass AnimatedSprite3D = SpriteBase3D\n        super = coerce\n\n-- | Proxy texture for simple frame-based animations.\n--   @AnimatedTexture@ is a resource format for frame-based animations, where multiple textures can be chained automatically with a predefined delay for each frame. Unlike @AnimationPlayer@ or @AnimatedSprite@, it isn't a @Node@, but has the advantage of being usable anywhere a @Texture@ resource can be used, e.g. in a @TileSet@.\n--   \t\tThe playback of the animation is controlled by the @fps@ property as well as each frame's optional delay (see @method set_frame_delay@). The animation loops, i.e. it will restart at frame 0 automatically after playing the last frame.\n--   \t\t@AnimatedTexture@ currently requires all frame textures to have the same size, otherwise the bigger ones will be cropped to match the smallest one.\n--   \t\t__Note:__ AnimatedTexture doesn't support using @AtlasTexture@s. Each frame needs to be a separate @Texture@.\nnewtype AnimatedTexture = AnimatedTexture Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass AnimatedTexture where\n        type BaseClass AnimatedTexture = Texture\n        super = coerce\n\n-- | Contains data used to animate everything in the engine.\n--   An Animation resource contains data used to animate everything in the engine. Animations are divided into tracks, and each track must be linked to a node. The state of that node can be changed through time, by adding timed keys (events) to the track.\n--   \t\t\n--   @\n--   \n--   \t\t# This creates an animation that makes the node \"Enemy\" move to the right by\n--   \t\t# 100 pixels in 0.5 seconds.\n--   \t\tvar animation = Animation.new()\n--   \t\tvar track_index = animation.add_track(Animation.TYPE_VALUE)\n--   \t\tanimation.track_set_path(track_index, \"Enemy:position:x\")\n--   \t\tanimation.track_insert_key(track_index, 0.0, 0)\n--   \t\tanimation.track_insert_key(track_index, 0.5, 100)\n--   \t\t\n--   @\n--   \n--   \t\tAnimations are just data containers, and must be added to nodes such as an @AnimationPlayer@ or @AnimationTreePlayer@ to be played back. Animation tracks have different types, each with its own set of dedicated methods. Check @enum TrackType@ to see available types.\nnewtype Animation = Animation Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass Animation where\n        type BaseClass Animation = Resource\n        super = coerce\n\n-- | Base resource for @AnimationTree@ nodes.\n--    In general, it's not used directly, but you can create custom ones with custom blending formulas.\n--   \tInherit this when creating nodes mainly for use in @AnimationNodeBlendTree@, otherwise @AnimationRootNode@ should be used instead.\nnewtype AnimationNode = AnimationNode Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass AnimationNode where\n        type BaseClass AnimationNode = Resource\n        super = coerce\n\n-- | Blends two animations additively inside of an @AnimationNodeBlendTree@.\n--   A resource to add to an @AnimationNodeBlendTree@. Blends two animations additively based on an amount value in the @@0.0, 1.0@@ range.\nnewtype AnimationNodeAdd2 = AnimationNodeAdd2 Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass AnimationNodeAdd2 where\n        type BaseClass AnimationNodeAdd2 = AnimationNode\n        super = coerce\n\n-- | Blends two of three animations additively inside of an @AnimationNodeBlendTree@.\n--   A resource to add to an @AnimationNodeBlendTree@. Blends two animations together additively out of three based on a value in the @@-1.0, 1.0@@ range.\n--   \t\tThis node has three inputs:\n--   \t\t- The base animation to add to\n--   \t\t- A -add animation to blend with when the blend amount is in the @@-1.0, 0.0@@ range.\n--   \t\t- A +add animation to blend with when the blend amount is in the @@0.0, 1.0@@ range\nnewtype AnimationNodeAdd3 = AnimationNodeAdd3 Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass AnimationNodeAdd3 where\n        type BaseClass AnimationNodeAdd3 = AnimationNode\n        super = coerce\n\n-- | Input animation to use in an @AnimationNodeBlendTree@.\n--   A resource to add to an @AnimationNodeBlendTree@. Only features one output set using the @animation@ property. Use it as an input for @AnimationNode@ that blend animations together.\nnewtype AnimationNodeAnimation = AnimationNodeAnimation Object\n                                   deriving newtype AsVariant\n\ninstance HasBaseClass AnimationNodeAnimation where\n        type BaseClass AnimationNodeAnimation = AnimationRootNode\n        super = coerce\n\n-- | Blends two animations linearly inside of an @AnimationNodeBlendTree@.\n--   A resource to add to an @AnimationNodeBlendTree@. Blends two animations linearly based on an amount value in the @@0.0, 1.0@@ range.\nnewtype AnimationNodeBlend2 = AnimationNodeBlend2 Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass AnimationNodeBlend2 where\n        type BaseClass AnimationNodeBlend2 = AnimationNode\n        super = coerce\n\n-- | Blends two of three animations linearly inside of an @AnimationNodeBlendTree@.\n--   A resource to add to an @AnimationNodeBlendTree@. Blends two animations together linearly out of three based on a value in the @@-1.0, 1.0@@ range.\n--   \t\tThis node has three inputs:\n--   \t\t- The base animation\n--   \t\t- A -blend animation to blend with when the blend amount is in the @@-1.0, 0.0@@ range.\n--   \t\t- A +blend animation to blend with when the blend amount is in the @@0.0, 1.0@@ range\nnewtype AnimationNodeBlend3 = AnimationNodeBlend3 Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass AnimationNodeBlend3 where\n        type BaseClass AnimationNodeBlend3 = AnimationNode\n        super = coerce\n\n-- | Blends linearly between two of any number of @AnimationNode@ of any type placed on a virtual axis.\n--   A resource to add to an @AnimationNodeBlendTree@.\n--   \t\tThis is a virtual axis on which you can add any type of @AnimationNode@ using @method add_blend_point@.\n--   \t\tOutputs the linear blend of the two @AnimationNode@s closest to the node's current value.\n--   \t\tYou can set the extents of the axis using the @min_space@ and @max_space@.\nnewtype AnimationNodeBlendSpace1D = AnimationNodeBlendSpace1D Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass AnimationNodeBlendSpace1D where\n        type BaseClass AnimationNodeBlendSpace1D = AnimationRootNode\n        super = coerce\n\n-- | Blends linearly between three @AnimationNode@ of any type placed in a 2D space.\n--   A resource to add to an @AnimationNodeBlendTree@.\n--   \t\tThis node allows you to blend linearly between three animations using a @Vector2@ weight.\n--   \t\tYou can add vertices to the blend space with @method add_blend_point@ and automatically triangulate it by setting @auto_triangles@ to @true@. Otherwise, use @method add_triangle@ and @method remove_triangle@ to create up the blend space by hand.\nnewtype AnimationNodeBlendSpace2D = AnimationNodeBlendSpace2D Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass AnimationNodeBlendSpace2D where\n        type BaseClass AnimationNodeBlendSpace2D = AnimationRootNode\n        super = coerce\n\n-- | @AnimationTree@ node resource that contains many blend type nodes.\n--   This node may contain a sub-tree of any other blend type nodes, such as mix, blend2, blend3, one shot, etc. This is one of the most commonly used roots.\nnewtype AnimationNodeBlendTree = AnimationNodeBlendTree Object\n                                   deriving newtype AsVariant\n\ninstance HasBaseClass AnimationNodeBlendTree where\n        type BaseClass AnimationNodeBlendTree = AnimationRootNode\n        super = coerce\n\n-- | Plays an animation once in @AnimationNodeBlendTree@.\n--   A resource to add to an @AnimationNodeBlendTree@. This node will execute a sub-animation and return once it finishes. Blend times for fading in and out can be customized, as well as filters.\nnewtype AnimationNodeOneShot = AnimationNodeOneShot Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass AnimationNodeOneShot where\n        type BaseClass AnimationNodeOneShot = AnimationNode\n        super = coerce\n\n-- | Generic output node to be added to @AnimationNodeBlendTree@.\nnewtype AnimationNodeOutput = AnimationNodeOutput Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass AnimationNodeOutput where\n        type BaseClass AnimationNodeOutput = AnimationNode\n        super = coerce\n\n-- | State machine for control of animations.\n--   Contains multiple nodes representing animation states, connected in a graph. Node transitions can be configured to happen automatically or via code, using a shortest-path algorithm. Retrieve the @AnimationNodeStateMachinePlayback@ object from the @AnimationTree@ node to control it programmatically.\n--   \t\t__Example:__\n--   \t\t\n--   @\n--   \n--   \t\tvar state_machine = $AnimationTree.get(\"parameters/playback\")\n--   \t\tstate_machine.travel(\"some_state\")\n--   \t\t\n--   @\nnewtype AnimationNodeStateMachine = AnimationNodeStateMachine Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass AnimationNodeStateMachine where\n        type BaseClass AnimationNodeStateMachine = AnimationRootNode\n        super = coerce\n\n-- | Playback control for @AnimationNodeStateMachine@.\n--   Allows control of @AnimationTree@ state machines created with @AnimationNodeStateMachine@. Retrieve with @$AnimationTree.get(\"parameters/playback\")@.\n--   \t\t__Example:__\n--   \t\t\n--   @\n--   \n--   \t\tvar state_machine = $AnimationTree.get(\"parameters/playback\")\n--   \t\tstate_machine.travel(\"some_state\")\n--   \t\t\n--   @\nnewtype AnimationNodeStateMachinePlayback = AnimationNodeStateMachinePlayback Object\n                                              deriving newtype AsVariant\n\ninstance HasBaseClass AnimationNodeStateMachinePlayback where\n        type BaseClass AnimationNodeStateMachinePlayback = Resource\n        super = coerce\n\nnewtype AnimationNodeStateMachineTransition = AnimationNodeStateMachineTransition Object\n                                                deriving newtype AsVariant\n\ninstance HasBaseClass AnimationNodeStateMachineTransition where\n        type BaseClass AnimationNodeStateMachineTransition = Resource\n        super = coerce\n\n-- | A time-scaling animation node to be used with @AnimationTree@.\n--   Allows scaling the speed of the animation (or reversing it) in any children nodes. Setting it to 0 will pause the animation.\nnewtype AnimationNodeTimeScale = AnimationNodeTimeScale Object\n                                   deriving newtype AsVariant\n\ninstance HasBaseClass AnimationNodeTimeScale where\n        type BaseClass AnimationNodeTimeScale = AnimationNode\n        super = coerce\n\n-- | A time-seeking animation node to be used with @AnimationTree@.\n--   This node can be used to cause a seek command to happen to any sub-children of the graph. After setting the time, this value returns to -1.\nnewtype AnimationNodeTimeSeek = AnimationNodeTimeSeek Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass AnimationNodeTimeSeek where\n        type BaseClass AnimationNodeTimeSeek = AnimationNode\n        super = coerce\n\n-- | A generic animation transition node for @AnimationTree@.\n--   Simple state machine for cases which don't require a more advanced @AnimationNodeStateMachine@. Animations can be connected to the inputs and transition times can be specified.\nnewtype AnimationNodeTransition = AnimationNodeTransition Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass AnimationNodeTransition where\n        type BaseClass AnimationNodeTransition = AnimationNode\n        super = coerce\n\n-- | Container and player of @Animation@ resources.\n--   An animation player is used for general-purpose playback of @Animation@ resources. It contains a dictionary of animations (referenced by name) and custom blend times between their transitions. Additionally, animations can be played and blended in different channels.\n--   \t\t@AnimationPlayer@ is more suited than @Tween@ for animations where you know the final values in advance. For example, fading a screen in and out is more easily done with an @AnimationPlayer@ node thanks to the animation tools provided by the editor. That particular example can also be implemented with a @Tween@ node, but it requires doing everything by code.\n--   \t\tUpdating the target properties of animations occurs at process time.\nnewtype AnimationPlayer = AnimationPlayer Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass AnimationPlayer where\n        type BaseClass AnimationPlayer = Node\n        super = coerce\n\nnewtype AnimationRootNode = AnimationRootNode Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass AnimationRootNode where\n        type BaseClass AnimationRootNode = AnimationNode\n        super = coerce\n\nnewtype AnimationTrackEditPlugin = AnimationTrackEditPlugin Object\n                                     deriving newtype AsVariant\n\ninstance HasBaseClass AnimationTrackEditPlugin where\n        type BaseClass AnimationTrackEditPlugin = Reference\n        super = coerce\n\n-- | A node to be used for advanced animation transitions in an @AnimationPlayer@.\n--   Note: When linked with an @AnimationPlayer@, several properties and methods of the corresponding @AnimationPlayer@ will not function as expected. Playback and transitions should be handled using only the @AnimationTree@ and its constituent @AnimationNode@(s). The @AnimationPlayer@ node should be used solely for adding, deleting, and editing animations.\nnewtype AnimationTree = AnimationTree Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass AnimationTree where\n        type BaseClass AnimationTree = Node\n        super = coerce\n\n-- | @i@Deprecated.@/i@ Animation player that uses a node graph for blending animations. Superseded by @AnimationTree@.\n--   @i@Deprecated.@/i@ A node graph tool for blending multiple animations bound to an @AnimationPlayer@. Especially useful for animating characters or other skeleton-based rigs. It can combine several animations to form a desired pose.\n--   \t\tIt takes @Animation@s from an @AnimationPlayer@ node and mixes them depending on the graph.\n--   \t\tSee @AnimationTree@ for a more full-featured replacement of this node.\nnewtype AnimationTreePlayer = AnimationTreePlayer Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass AnimationTreePlayer where\n        type BaseClass AnimationTreePlayer = Node\n        super = coerce\n\n-- | General-purpose area node for detection and 3D physics influence.\n--   3D area that detects @CollisionObject@ nodes overlapping, entering, or exiting. Can also alter or override local physics parameters (gravity, damping).\nnewtype Area = Area Object\n                 deriving newtype AsVariant\n\ninstance HasBaseClass Area where\n        type BaseClass Area = CollisionObject\n        super = coerce\n\n-- | 2D area for detection and 2D physics influence.\n--   2D area that detects @CollisionObject2D@ nodes overlapping, entering, or exiting. Can also alter or override local physics parameters (gravity, damping).\nnewtype Area2D = Area2D Object\n                   deriving newtype AsVariant\n\ninstance HasBaseClass Area2D where\n        type BaseClass Area2D = CollisionObject2D\n        super = coerce\n\n-- | @Mesh@ type that provides utility for constructing a surface from arrays.\n--   The @ArrayMesh@ is used to construct a @Mesh@ by specifying the attributes as arrays.\n--   \t\tThe most basic example is the creation of a single triangle:\n--   \t\t\n--   @\n--   \n--   \t\tvar vertices = PoolVector3Array()\n--   \t\tvertices.push_back(Vector3(0, 1, 0))\n--   \t\tvertices.push_back(Vector3(1, 0, 0))\n--   \t\tvertices.push_back(Vector3(0, 0, 1))\n--   \t\t# Initialize the ArrayMesh.\n--   \t\tvar arr_mesh = ArrayMesh.new()\n--   \t\tvar arrays = @@\n--   \t\tarrays.resize(ArrayMesh.ARRAY_MAX)\n--   \t\tarrays@ArrayMesh.ARRAY_VERTEX@ = vertices\n--   \t\t# Create the Mesh.\n--   \t\tarr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)\n--   \t\tvar m = MeshInstance.new()\n--   \t\tm.mesh = arr_mesh\n--   \t\t\n--   @\n--   \n--   \t\tThe @MeshInstance@ is ready to be added to the @SceneTree@ to be shown.\n--   \t\tSee also @ImmediateGeometry@, @MeshDataTool@ and @SurfaceTool@ for procedural geometry generation.\n--   \t\t__Note:__ Godot uses clockwise @url=https://learnopengl.com/Advanced-OpenGL/Face-culling@winding order@/url@ for front faces of triangle primitive modes.\nnewtype ArrayMesh = ArrayMesh Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass ArrayMesh where\n        type BaseClass ArrayMesh = Mesh\n        super = coerce\n\n-- | Packs multiple small textures in a single, bigger one. Helps to optimize video memory costs and render calls.\n--   @Texture@ resource aimed at managing big textures files that pack multiple smaller textures. Consists of a @Texture@, a margin that defines the border width, and a region that defines the actual area of the AtlasTexture.\nnewtype AtlasTexture = AtlasTexture Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass AtlasTexture where\n        type BaseClass AtlasTexture = Texture\n        super = coerce\n\n-- | Stores information about the audio buses.\n--   Stores position, muting, solo, bypass, effects, effect position, volume, and the connections between buses. See @AudioServer@ for usage.\nnewtype AudioBusLayout = AudioBusLayout Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass AudioBusLayout where\n        type BaseClass AudioBusLayout = Resource\n        super = coerce\n\n-- | Audio effect for audio.\n--   Base resource for audio bus. Applies an audio effect on the bus that the resource is applied on.\nnewtype AudioEffect = AudioEffect Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffect where\n        type BaseClass AudioEffect = Resource\n        super = coerce\n\n-- | Adds an amplifying audio effect to an audio bus.\n--   \t\tIncreases or decreases the volume of the selected audio bus.\n--   Increases or decreases the volume being routed through the audio bus.\nnewtype AudioEffectAmplify = AudioEffectAmplify Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectAmplify where\n        type BaseClass AudioEffectAmplify = AudioEffect\n        super = coerce\n\n-- | Adds a band limit filter to the audio bus.\n--   Limits the frequencies in a range around the @AudioEffectFilter.cutoff_hz@ and allows frequencies outside of this range to pass.\nnewtype AudioEffectBandLimitFilter = AudioEffectBandLimitFilter Object\n                                       deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectBandLimitFilter where\n        type BaseClass AudioEffectBandLimitFilter = AudioEffectFilter\n        super = coerce\n\n-- | Adds a band pass filter to the audio bus.\n--   Attenuates the frequencies inside of a range around the @AudioEffectFilter.cutoff_hz@ and cuts frequencies outside of this band.\nnewtype AudioEffectBandPassFilter = AudioEffectBandPassFilter Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectBandPassFilter where\n        type BaseClass AudioEffectBandPassFilter = AudioEffectFilter\n        super = coerce\n\n-- | Adds a chorus audio effect.\n--    The effect applies a filter with voices to duplicate the audio source and manipulate it through the filter.\nnewtype AudioEffectChorus = AudioEffectChorus Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectChorus where\n        type BaseClass AudioEffectChorus = AudioEffect\n        super = coerce\n\n-- | Adds a compressor audio effect to an audio bus.\n--   \t\tReduces sounds that exceed a certain threshold level, smooths out the dynamics and increases the overall volume.\n--   Dynamic range compressor reduces the level of the sound when the amplitude goes over a certain threshold in Decibels. One of the main uses of a compressor is to increase the dynamic range by clipping as little as possible (when sound goes over 0dB).\n--   \t\tCompressor has many uses in the mix:\n--   \t\t- In the Master bus to compress the whole output (although an @AudioEffectLimiter@ is probably better).\n--   \t\t- In voice channels to ensure they sound as balanced as possible.\n--   \t\t- Sidechained. This can reduce the sound level sidechained with another audio bus for threshold detection. This technique is common in video game mixing to the level of music and SFX while voices are being heard.\n--   \t\t- Accentuates transients by using a wider attack, making effects sound more punchy.\nnewtype AudioEffectCompressor = AudioEffectCompressor Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectCompressor where\n        type BaseClass AudioEffectCompressor = AudioEffect\n        super = coerce\n\n-- | Adds a delay audio effect to an audio bus. Plays input signal back after a period of time.\n--   \t\tTwo tap delay and feedback options.\n--   Plays input signal back after a period of time. The delayed signal may be played back multiple times to create the sound of a repeating, decaying echo. Delay effects range from a subtle echo effect to a pronounced blending of previous sounds with new sounds.\nnewtype AudioEffectDelay = AudioEffectDelay Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectDelay where\n        type BaseClass AudioEffectDelay = AudioEffect\n        super = coerce\n\n-- | Adds a distortion audio effect to an Audio bus.\n--   \t\tModify the sound to make it distorted.\n--   Different types are available: clip, tan, lo-fi (bit crushing), overdrive, or waveshape.\n--   \t\tBy distorting the waveform the frequency content change, which will often make the sound \"crunchy\" or \"abrasive\". For games, it can simulate sound coming from some saturated device or speaker very efficiently.\nnewtype AudioEffectDistortion = AudioEffectDistortion Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectDistortion where\n        type BaseClass AudioEffectDistortion = AudioEffect\n        super = coerce\n\n-- | Base class for audio equalizers. Gives you control over frequencies.\n--   \t\tUse it to create a custom equalizer if @AudioEffectEQ6@, @AudioEffectEQ10@ or @AudioEffectEQ21@ don't fit your needs.\n--   AudioEffectEQ gives you control over frequencies. Use it to compensate for existing deficiencies in audio. AudioEffectEQs are useful on the Master bus to completely master a mix and give it more character. They are also useful when a game is run on a mobile device, to adjust the mix to that kind of speakers (it can be added but disabled when headphones are plugged).\nnewtype AudioEffectEQ = AudioEffectEQ Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectEQ where\n        type BaseClass AudioEffectEQ = AudioEffect\n        super = coerce\n\n-- | Adds a 10-band equalizer audio effect to an Audio bus. Gives you control over frequencies from 31 Hz to 16000 Hz.\n--   \t\tEach frequency can be modulated between -60/+24 dB.\n--   Frequency bands:\n--   \t\tBand 1: 31 Hz\n--   \t\tBand 2: 62 Hz\n--   \t\tBand 3: 125 Hz\n--   \t\tBand 4: 250 Hz\n--   \t\tBand 5: 500 Hz\n--   \t\tBand 6: 1000 Hz\n--   \t\tBand 7: 2000 Hz\n--   \t\tBand 8: 4000 Hz\n--   \t\tBand 9: 8000 Hz\n--   \t\tBand 10: 16000 Hz\n--   \t\tSee also @AudioEffectEQ@, @AudioEffectEQ6@, @AudioEffectEQ21@.\nnewtype AudioEffectEQ10 = AudioEffectEQ10 Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectEQ10 where\n        type BaseClass AudioEffectEQ10 = AudioEffectEQ\n        super = coerce\n\n-- | Adds a 21-band equalizer audio effect to an Audio bus. Gives you control over frequencies from 22 Hz to 22000 Hz.\n--   \t\tEach frequency can be modulated between -60/+24 dB.\n--   Frequency bands:\n--   \t\tBand 1: 22 Hz\n--   \t\tBand 2: 32 Hz\n--   \t\tBand 3: 44 Hz\n--   \t\tBand 4: 63 Hz\n--   \t\tBand 5: 90 Hz\n--   \t\tBand 6: 125 Hz\n--   \t\tBand 7: 175 Hz\n--   \t\tBand 8: 250 Hz\n--   \t\tBand 9: 350 Hz\n--   \t\tBand 10: 500 Hz\n--   \t\tBand 11: 700 Hz\n--   \t\tBand 12: 1000 Hz\n--   \t\tBand 13: 1400 Hz\n--   \t\tBand 14: 2000 Hz\n--   \t\tBand 15: 2800 Hz\n--   \t\tBand 16: 4000 Hz\n--   \t\tBand 17: 5600 Hz\n--   \t\tBand 18: 8000 Hz\n--   \t\tBand 19: 11000 Hz\n--   \t\tBand 20: 16000 Hz\n--   \t\tBand 21: 22000 Hz\n--   \t\tSee also @AudioEffectEQ@, @AudioEffectEQ6@, @AudioEffectEQ10@.\nnewtype AudioEffectEQ21 = AudioEffectEQ21 Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectEQ21 where\n        type BaseClass AudioEffectEQ21 = AudioEffectEQ\n        super = coerce\n\n-- | Adds a 6-band equalizer audio effect to an Audio bus. Gives you control over frequencies from 32 Hz to 10000 Hz.\n--   \t\tEach frequency can be modulated between -60/+24 dB.\n--   Frequency bands:\n--   \t\tBand 1: 32 Hz\n--   \t\tBand 2: 100 Hz\n--   \t\tBand 3: 320 Hz\n--   \t\tBand 4: 1000 Hz\n--   \t\tBand 5: 3200 Hz\n--   \t\tBand 6: 10000 Hz\n--   \t\tSee also @AudioEffectEQ@, @AudioEffectEQ10@, @AudioEffectEQ21@.\nnewtype AudioEffectEQ6 = AudioEffectEQ6 Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectEQ6 where\n        type BaseClass AudioEffectEQ6 = AudioEffectEQ\n        super = coerce\n\n-- | Adds a filter to the audio bus.\n--   Allows frequencies other than the @cutoff_hz@ to pass.\nnewtype AudioEffectFilter = AudioEffectFilter Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectFilter where\n        type BaseClass AudioEffectFilter = AudioEffect\n        super = coerce\n\n-- | Adds a high-pass filter to the Audio Bus.\n--   Cuts frequencies lower than the @AudioEffectFilter.cutoff_hz@ and allows higher frequencies to pass.\nnewtype AudioEffectHighPassFilter = AudioEffectHighPassFilter Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectHighPassFilter where\n        type BaseClass AudioEffectHighPassFilter = AudioEffectFilter\n        super = coerce\n\nnewtype AudioEffectHighShelfFilter = AudioEffectHighShelfFilter Object\n                                       deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectHighShelfFilter where\n        type BaseClass AudioEffectHighShelfFilter = AudioEffectFilter\n        super = coerce\n\nnewtype AudioEffectInstance = AudioEffectInstance Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectInstance where\n        type BaseClass AudioEffectInstance = Reference\n        super = coerce\n\n-- | Adds a soft-clip limiter audio effect to an Audio bus.\n--   A limiter is similar to a compressor, but it's less flexible and designed to disallow sound going over a given dB threshold. Adding one in the Master bus is always recommended to reduce the effects of clipping.\n--   \t\tSoft clipping starts to reduce the peaks a little below the threshold level and progressively increases its effect as the input level increases such that the threshold is never exceeded.\nnewtype AudioEffectLimiter = AudioEffectLimiter Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectLimiter where\n        type BaseClass AudioEffectLimiter = AudioEffect\n        super = coerce\n\n-- | Adds a low-pass filter to the Audio bus.\n--   Cuts frequencies higher than the @AudioEffectFilter.cutoff_hz@ and allows lower frequencies to pass.\nnewtype AudioEffectLowPassFilter = AudioEffectLowPassFilter Object\n                                     deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectLowPassFilter where\n        type BaseClass AudioEffectLowPassFilter = AudioEffectFilter\n        super = coerce\n\nnewtype AudioEffectLowShelfFilter = AudioEffectLowShelfFilter Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectLowShelfFilter where\n        type BaseClass AudioEffectLowShelfFilter = AudioEffectFilter\n        super = coerce\n\n-- | Adds a notch filter to the Audio bus.\n--   Attenuates frequencies in a narrow band around the @AudioEffectFilter.cutoff_hz@ and cuts frequencies outside of this range.\nnewtype AudioEffectNotchFilter = AudioEffectNotchFilter Object\n                                   deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectNotchFilter where\n        type BaseClass AudioEffectNotchFilter = AudioEffectFilter\n        super = coerce\n\n-- | Adds a panner audio effect to an Audio bus. Pans sound left or right.\n--   Determines how much of an audio signal is sent to the left and right buses.\nnewtype AudioEffectPanner = AudioEffectPanner Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectPanner where\n        type BaseClass AudioEffectPanner = AudioEffect\n        super = coerce\n\n-- | Adds a phaser audio effect to an Audio bus.\n--   \t\tCombines the original signal with a copy that is slightly out of phase with the original.\n--   Combines phase-shifted signals with the original signal. The movement of the phase-shifted signals is controlled using a low-frequency oscillator.\nnewtype AudioEffectPhaser = AudioEffectPhaser Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectPhaser where\n        type BaseClass AudioEffectPhaser = AudioEffect\n        super = coerce\n\n-- | Adds a pitch-shifting audio effect to an Audio bus.\n--   \t\tRaises or lowers the pitch of original sound.\n--   Allows modulation of pitch independently of tempo. All frequencies can be increased/decreased with minimal effect on transients.\nnewtype AudioEffectPitchShift = AudioEffectPitchShift Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectPitchShift where\n        type BaseClass AudioEffectPitchShift = AudioEffect\n        super = coerce\n\n-- | Audio effect used for recording sound from a microphone.\n--   Allows the user to record sound from a microphone. It sets and gets the format in which the audio file will be recorded (8-bit, 16-bit, or compressed). It checks whether or not the recording is active, and if it is, records the sound. It then returns the recorded sample.\nnewtype AudioEffectRecord = AudioEffectRecord Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectRecord where\n        type BaseClass AudioEffectRecord = AudioEffect\n        super = coerce\n\n-- | Adds a reverberation audio effect to an Audio bus.\n--   \t\tSimulates the sound of acoustic environments such as rooms, concert halls, caverns, or an open spaces.\n--   Simulates rooms of different sizes. Its parameters can be adjusted to simulate the sound of a specific room.\nnewtype AudioEffectReverb = AudioEffectReverb Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectReverb where\n        type BaseClass AudioEffectReverb = AudioEffect\n        super = coerce\n\nnewtype AudioEffectSpectrumAnalyzer = AudioEffectSpectrumAnalyzer Object\n                                        deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectSpectrumAnalyzer where\n        type BaseClass AudioEffectSpectrumAnalyzer = AudioEffect\n        super = coerce\n\nnewtype AudioEffectSpectrumAnalyzerInstance = AudioEffectSpectrumAnalyzerInstance Object\n                                                deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectSpectrumAnalyzerInstance where\n        type BaseClass AudioEffectSpectrumAnalyzerInstance =\n             AudioEffectInstance\n        super = coerce\n\nnewtype AudioEffectStereoEnhance = AudioEffectStereoEnhance Object\n                                     deriving newtype AsVariant\n\ninstance HasBaseClass AudioEffectStereoEnhance where\n        type BaseClass AudioEffectStereoEnhance = AudioEffect\n        super = coerce\n\n-- | Server interface for low-level audio access.\n--   @AudioServer@ is a low-level server interface for audio access. It is in charge of creating sample data (playable audio) as well as its playback via a voice interface.\nnewtype AudioServer = AudioServer Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass AudioServer where\n        type BaseClass AudioServer = Object\n        super = coerce\n\n-- | Base class for audio streams.\n--    Audio streams are used for sound effects and music playback, and support WAV (via @AudioStreamSample@) and OGG (via @AudioStreamOGGVorbis@) file formats.\nnewtype AudioStream = AudioStream Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass AudioStream where\n        type BaseClass AudioStream = Resource\n        super = coerce\n\nnewtype AudioStreamGenerator = AudioStreamGenerator Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass AudioStreamGenerator where\n        type BaseClass AudioStreamGenerator = AudioStream\n        super = coerce\n\nnewtype AudioStreamGeneratorPlayback = AudioStreamGeneratorPlayback Object\n                                         deriving newtype AsVariant\n\ninstance HasBaseClass AudioStreamGeneratorPlayback where\n        type BaseClass AudioStreamGeneratorPlayback =\n             AudioStreamPlaybackResampled\n        super = coerce\n\nnewtype AudioStreamMicrophone = AudioStreamMicrophone Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass AudioStreamMicrophone where\n        type BaseClass AudioStreamMicrophone = AudioStream\n        super = coerce\n\nnewtype AudioStreamOGGVorbis = AudioStreamOGGVorbis Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass AudioStreamOGGVorbis where\n        type BaseClass AudioStreamOGGVorbis = AudioStream\n        super = coerce\n\n-- | Meta class for playing back audio.\n--   Can play, loop, pause a scroll through audio. See @AudioStream@ and @AudioStreamOGGVorbis@ for usage.\nnewtype AudioStreamPlayback = AudioStreamPlayback Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass AudioStreamPlayback where\n        type BaseClass AudioStreamPlayback = Reference\n        super = coerce\n\nnewtype AudioStreamPlaybackResampled = AudioStreamPlaybackResampled Object\n                                         deriving newtype AsVariant\n\ninstance HasBaseClass AudioStreamPlaybackResampled where\n        type BaseClass AudioStreamPlaybackResampled = AudioStreamPlayback\n        super = coerce\n\n-- | Plays back audio non-positionally.\n--   Plays an audio stream non-positionally.\nnewtype AudioStreamPlayer = AudioStreamPlayer Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass AudioStreamPlayer where\n        type BaseClass AudioStreamPlayer = Node\n        super = coerce\n\n-- | Plays audio in 2D.\n--   Plays audio that dampens with distance from screen center.\nnewtype AudioStreamPlayer2D = AudioStreamPlayer2D Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass AudioStreamPlayer2D where\n        type BaseClass AudioStreamPlayer2D = Node2D\n        super = coerce\n\n-- | Plays 3D sound in 3D space.\n--   Plays a sound effect with directed sound effects, dampens with distance if needed, generates effect of hearable position in space.\n--   \t\tBy default, audio is heard from the camera position. This can be changed by adding a @Listener@ node to the scene and enabling it by calling @method Listener.make_current@ on it.\nnewtype AudioStreamPlayer3D = AudioStreamPlayer3D Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass AudioStreamPlayer3D where\n        type BaseClass AudioStreamPlayer3D = Spatial\n        super = coerce\n\n-- | Plays audio with random pitch shifting.\n--   Randomly varies pitch on each start.\nnewtype AudioStreamRandomPitch = AudioStreamRandomPitch Object\n                                   deriving newtype AsVariant\n\ninstance HasBaseClass AudioStreamRandomPitch where\n        type BaseClass AudioStreamRandomPitch = AudioStream\n        super = coerce\n\n-- | Stores audio data loaded from WAV files.\n--   AudioStreamSample stores sound samples loaded from WAV files. To play the stored sound, use an @AudioStreamPlayer@ (for non-positional audio) or @AudioStreamPlayer2D@/@AudioStreamPlayer3D@ (for positional audio). The sound can be looped.\n--   \t\tThis class can also be used to store dynamically-generated PCM audio data.\nnewtype AudioStreamSample = AudioStreamSample Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass AudioStreamSample where\n        type BaseClass AudioStreamSample = AudioStream\n        super = coerce\n\n-- | Copies a region of the screen (or the whole screen) to a buffer so it can be accessed in your shader scripts through the @texture(SCREEN_TEXTURE, ...)@ function.\n--   Node for back-buffering the currently-displayed screen. The region defined in the BackBufferCopy node is bufferized with the content of the screen it covers, or the entire screen according to the copy mode set. Use the @texture(SCREEN_TEXTURE, ...)@ function in your shader scripts to access the buffer.\n--   \t\t__Note:__ Since this node inherits from @Node2D@ (and not @Control@), anchors and margins won't apply to child @Control@-derived nodes. This can be problematic when resizing the window. To avoid this, add @Control@-derived nodes as @i@siblings@/i@ to the BackBufferCopy node instead of adding them as children.\nnewtype BackBufferCopy = BackBufferCopy Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass BackBufferCopy where\n        type BaseClass BackBufferCopy = Node2D\n        super = coerce\n\n-- | Prerendered indirect light map for a scene.\n--   Baked lightmaps are an alternative workflow for adding indirect (or baked) lighting to a scene. Unlike the @GIProbe@ approach, baked lightmaps work fine on low-end PCs and mobile devices as they consume almost no resources in run-time.\n--   \t\t__Note:__ This node has many known bugs and will be @url=https://godotengine.org/article/godot-40-will-get-new-modernized-lightmapper@rewritten for Godot 4.0@/url@. See @url=https://github.com/godotengine/godot/issues/30929@GitHub issue #30929@/url@.\nnewtype BakedLightmap = BakedLightmap Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass BakedLightmap where\n        type BaseClass BakedLightmap = VisualInstance\n        super = coerce\n\nnewtype BakedLightmapData = BakedLightmapData Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass BakedLightmapData where\n        type BaseClass BakedLightmapData = Resource\n        super = coerce\n\n-- | Base class for different kinds of buttons.\n--   BaseButton is the abstract base class for buttons, so it shouldn't be used directly (it doesn't display anything). Other types of buttons inherit from it.\nnewtype BaseButton = BaseButton Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass BaseButton where\n        type BaseClass BaseButton = Control\n        super = coerce\n\n-- | Boolean matrix.\n--   A two-dimensional array of boolean values, can be used to efficiently store a binary matrix (every matrix element takes only one bit) and query the values using natural cartesian coordinates.\nnewtype BitMap = BitMap Object\n                   deriving newtype AsVariant\n\ninstance HasBaseClass BitMap where\n        type BaseClass BitMap = Resource\n        super = coerce\n\n-- | Renders text using fonts under the @url=https://www.angelcode.com/products/bmfont/@BMFont@/url@ format.\n--   \t\tHandles files with the @.fnt@ extension.\n--   Renders text using @*.fnt@ fonts containing texture atlases. Supports distance fields. For using vector font files like TTF directly, see @DynamicFont@.\nnewtype BitmapFont = BitmapFont Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass BitmapFont where\n        type BaseClass BitmapFont = Font\n        super = coerce\n\n-- | Joint used with @Skeleton2D@ to control and animate other nodes.\n--   Use a hierarchy of @Bone2D@ bound to a @Skeleton2D@ to control, and animate other @Node2D@ nodes.\n--   \t\tYou can use @Bone2D@ and @Skeleton2D@ nodes to animate 2D meshes created with the Polygon 2D UV editor.\n--   \t\tEach bone has a @rest@ transform that you can reset to with @method apply_rest@. These rest poses are relative to the bone's parent.\n--   \t\tIf in the editor, you can set the rest pose of an entire skeleton using a menu option, from the code, you need to iterate over the bones to set their individual rest poses.\nnewtype Bone2D = Bone2D Object\n                   deriving newtype AsVariant\n\ninstance HasBaseClass Bone2D where\n        type BaseClass Bone2D = Node2D\n        super = coerce\n\n-- | A node that will attach to a bone.\n--   This node must be the child of a @Skeleton@ node. You can then select a bone for this node to attach to. The BoneAttachment node will copy the transform of the selected bone.\nnewtype BoneAttachment = BoneAttachment Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass BoneAttachment where\n        type BaseClass BoneAttachment = Spatial\n        super = coerce\n\n-- | Base class for box containers.\n--   Arranges child controls vertically or horizontally, and rearranges the controls automatically when their minimum size changes.\nnewtype BoxContainer = BoxContainer Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass BoxContainer where\n        type BaseClass BoxContainer = Container\n        super = coerce\n\n-- | Box shape resource.\n--   3D box shape that can be a child of a @PhysicsBody@ or @Area@.\nnewtype BoxShape = BoxShape Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass BoxShape where\n        type BaseClass BoxShape = Shape\n        super = coerce\n\nnewtype BulletPhysicsDirectBodyState = BulletPhysicsDirectBodyState Object\n                                         deriving newtype AsVariant\n\ninstance HasBaseClass BulletPhysicsDirectBodyState where\n        type BaseClass BulletPhysicsDirectBodyState =\n             PhysicsDirectBodyState\n        super = coerce\n\nnewtype BulletPhysicsServer = BulletPhysicsServer Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass BulletPhysicsServer where\n        type BaseClass BulletPhysicsServer = PhysicsServer\n        super = coerce\n\n-- | Standard themed Button.\n--   Button is the standard themed button. It can contain text and an icon, and will display them according to the current @Theme@.\n--   \t\t__Example of creating a button and assigning an action when pressed by code:__\n--   \t\t\n--   @\n--   \n--   \t\tfunc _ready():\n--   \t\t    var button = Button.new()\n--   \t\t    button.text = \"Click me\"\n--   \t\t    button.connect(\"pressed\", self, \"_button_pressed\")\n--   \t\t    add_child(button)\n--   \n--   \t\tfunc _button_pressed():\n--   \t\t    print(\"Hello world!\")\n--   \t\t\n--   @\n--   \n--   \t\tButtons (like all Control nodes) can also be created in the editor, but some situations may require creating them from code.\nnewtype Button = Button Object\n                   deriving newtype AsVariant\n\ninstance HasBaseClass Button where\n        type BaseClass Button = BaseButton\n        super = coerce\n\n-- | Group of Buttons.\n--   Group of @Button@. All direct and indirect children buttons become radios. Only one allows being pressed.\n--   \t\t@BaseButton.toggle_mode@ should be @true@.\nnewtype ButtonGroup = ButtonGroup Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass ButtonGroup where\n        type BaseClass ButtonGroup = Resource\n        super = coerce\n\n-- | CPU-based 3D particle emitter.\n--   CPU-based 3D particle node used to create a variety of particle systems and effects.\n--   \t\tSee also @Particles@, which provides the same functionality with hardware acceleration, but may not run on older devices.\nnewtype CPUParticles = CPUParticles Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass CPUParticles where\n        type BaseClass CPUParticles = GeometryInstance\n        super = coerce\n\n-- | CPU-based 2D particle emitter.\n--   CPU-based 2D particle node used to create a variety of particle systems and effects.\n--   \t\tSee also @Particles2D@, which provides the same functionality with hardware acceleration, but may not run on older devices.\nnewtype CPUParticles2D = CPUParticles2D Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass CPUParticles2D where\n        type BaseClass CPUParticles2D = Node2D\n        super = coerce\n\nnewtype CSGBox = CSGBox Object\n                   deriving newtype AsVariant\n\ninstance HasBaseClass CSGBox where\n        type BaseClass CSGBox = CSGPrimitive\n        super = coerce\n\nnewtype CSGCombiner = CSGCombiner Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass CSGCombiner where\n        type BaseClass CSGCombiner = CSGShape\n        super = coerce\n\nnewtype CSGCylinder = CSGCylinder Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass CSGCylinder where\n        type BaseClass CSGCylinder = CSGPrimitive\n        super = coerce\n\nnewtype CSGMesh = CSGMesh Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass CSGMesh where\n        type BaseClass CSGMesh = CSGPrimitive\n        super = coerce\n\nnewtype CSGPolygon = CSGPolygon Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass CSGPolygon where\n        type BaseClass CSGPolygon = CSGPrimitive\n        super = coerce\n\nnewtype CSGPrimitive = CSGPrimitive Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass CSGPrimitive where\n        type BaseClass CSGPrimitive = CSGShape\n        super = coerce\n\nnewtype CSGShape = CSGShape Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass CSGShape where\n        type BaseClass CSGShape = GeometryInstance\n        super = coerce\n\nnewtype CSGSphere = CSGSphere Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass CSGSphere where\n        type BaseClass CSGSphere = CSGPrimitive\n        super = coerce\n\nnewtype CSGTorus = CSGTorus Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass CSGTorus where\n        type BaseClass CSGTorus = CSGPrimitive\n        super = coerce\n\n-- | Camera node, displays from a point of view.\n--   Camera is a special node that displays what is visible from its current location. Cameras register themselves in the nearest @Viewport@ node (when ascending the tree). Only one camera can be active per viewport. If no viewport is available ascending the tree, the camera will register in the global viewport. In other words, a camera just provides 3D display capabilities to a @Viewport@, and, without one, a scene registered in that @Viewport@ (or higher viewports) can't be displayed.\nnewtype Camera = Camera Object\n                   deriving newtype AsVariant\n\ninstance HasBaseClass Camera where\n        type BaseClass Camera = Spatial\n        super = coerce\n\n-- | Camera node for 2D scenes.\n--    It forces the screen (current layer) to scroll following this node. This makes it easier (and faster) to program scrollable scenes than manually changing the position of @CanvasItem@-based nodes.\n--   \t\tThis node is intended to be a simple helper to get things going quickly and it may happen that more functionality is desired to change how the camera works. To make your own custom camera node, inherit from @Node2D@ and change the transform of the canvas by setting @Viewport.canvas_transform@ in @Viewport@ (you can obtain the current @Viewport@ by using @method Node.get_viewport@).\n--   \t\tNote that the @Camera2D@ node's @position@ doesn't represent the actual position of the screen, which may differ due to applied smoothing or limits. You can use @method get_camera_screen_center@ to get the real position.\nnewtype Camera2D = Camera2D Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass Camera2D where\n        type BaseClass Camera2D = Node2D\n        super = coerce\n\n-- | A camera feed gives you access to a single physical camera attached to your device.\n--    When enabled, Godot will start capturing frames from the camera which can then be used.\n--   \t\t__Note:__ Many cameras will return YCbCr images which are split into two textures and need to be combined in a shader. Godot does this automatically for you if you set the environment to show the camera image in the background.\nnewtype CameraFeed = CameraFeed Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass CameraFeed where\n        type BaseClass CameraFeed = Reference\n        super = coerce\n\n-- | Server keeping track of different cameras accessible in Godot.\n--   The @CameraServer@ keeps track of different cameras accessible in Godot. These are external cameras such as webcams or the cameras on your phone.\n--   \t\tIt is notably used to provide AR modules with a video feed from the camera.\nnewtype CameraServer = CameraServer Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass CameraServer where\n        type BaseClass CameraServer = Object\n        super = coerce\n\n-- | Texture provided by a @CameraFeed@.\n--   This texture gives access to the camera texture provided by a @CameraFeed@.\n--   \t\t__Note:__ Many cameras supply YCbCr images which need to be converted in a shader.\nnewtype CameraTexture = CameraTexture Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass CameraTexture where\n        type BaseClass CameraTexture = Texture\n        super = coerce\n\n-- | Base class of anything 2D.\n--    Canvas items are laid out in a tree; children inherit and extend their parent's transform. @CanvasItem@ is extended by @Control@ for anything GUI-related, and by @Node2D@ for anything related to the 2D engine.\n--   \t\tAny @CanvasItem@ can draw. For this, @method update@ must be called, then @NOTIFICATION_DRAW@ will be received on idle time to request redraw. Because of this, canvas items don't need to be redrawn on every frame, improving the performance significantly. Several functions for drawing on the @CanvasItem@ are provided (see @draw_*@ functions). However, they can only be used inside the @method Object._notification@, signal or @method _draw@ virtual functions.\n--   \t\tCanvas items are drawn in tree order. By default, children are on top of their parents so a root @CanvasItem@ will be drawn behind everything. This behavior can be changed on a per-item basis.\n--   \t\tA @CanvasItem@ can also be hidden, which will also hide its children. It provides many ways to change parameters such as modulation (for itself and its children) and self modulation (only for itself), as well as its blend mode.\n--   \t\tUltimately, a transform notification can be requested, which will notify the node that its global position changed in case the parent tree changed.\n--   \t\t__Note:__ Unless otherwise specified, all methods that have angle parameters must have angles specified as @i@radians@/i@. To convert degrees to radians, use @method @GDScript.deg2rad@.\nnewtype CanvasItem = CanvasItem Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass CanvasItem where\n        type BaseClass CanvasItem = Node\n        super = coerce\n\n-- | A material for @CanvasItem@s.\n--   @CanvasItemMaterial@s provide a means of modifying the textures associated with a CanvasItem. They specialize in describing blend and lighting behaviors for textures. Use a @ShaderMaterial@ to more fully customize a material's interactions with a @CanvasItem@.\nnewtype CanvasItemMaterial = CanvasItemMaterial Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass CanvasItemMaterial where\n        type BaseClass CanvasItemMaterial = Material\n        super = coerce\n\n-- | Canvas drawing layer.\n--    @CanvasItem@ nodes that are direct or indirect children of a @CanvasLayer@ will be drawn in that layer. The layer is a numeric index that defines the draw order. The default 2D scene renders with index 0, so a @CanvasLayer@ with index -1 will be drawn below, and one with index 1 will be drawn above. This is very useful for HUDs (in layer 1+ or above), or backgrounds (in layer -1 or below).\nnewtype CanvasLayer = CanvasLayer Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass CanvasLayer where\n        type BaseClass CanvasLayer = Node\n        super = coerce\n\n-- | Tint the entire canvas.\n--   @CanvasModulate@ tints the canvas elements using its assigned @color@.\nnewtype CanvasModulate = CanvasModulate Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass CanvasModulate where\n        type BaseClass CanvasModulate = Node2D\n        super = coerce\n\n-- | Class representing a capsule-shaped @PrimitiveMesh@.\nnewtype CapsuleMesh = CapsuleMesh Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass CapsuleMesh where\n        type BaseClass CapsuleMesh = PrimitiveMesh\n        super = coerce\n\n-- | Capsule shape for collisions.\nnewtype CapsuleShape = CapsuleShape Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass CapsuleShape where\n        type BaseClass CapsuleShape = Shape\n        super = coerce\n\n-- | Capsule shape for 2D collisions.\nnewtype CapsuleShape2D = CapsuleShape2D Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass CapsuleShape2D where\n        type BaseClass CapsuleShape2D = Shape2D\n        super = coerce\n\n-- | Keeps children controls centered.\n--   CenterContainer keeps children controls centered. This container keeps all children to their minimum size, in the center.\nnewtype CenterContainer = CenterContainer Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass CenterContainer where\n        type BaseClass CenterContainer = Container\n        super = coerce\n\n-- | Controls how an individual character will be displayed in a @RichTextEffect@.\n--   By setting various properties on this object, you can control how individual characters will be displayed in a @RichTextEffect@.\nnewtype CharFXTransform = CharFXTransform Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass CharFXTransform where\n        type BaseClass CharFXTransform = Reference\n        super = coerce\n\n-- | Binary choice user interface widget. See also @CheckButton@.\n--   A checkbox allows the user to make a binary choice (choosing only one of two possible options). It's similar to @CheckButton@ in functionality, but it has a different apperance. To follow established UX patterns, it's recommended to use CheckBox when toggling it has __no__ immediate effect on something. For instance, it should be used when toggling it will only do something once a confirmation button is pressed.\nnewtype CheckBox = CheckBox Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass CheckBox where\n        type BaseClass CheckBox = Button\n        super = coerce\n\n-- | Checkable button. See also @CheckBox@.\n--   CheckButton is a toggle button displayed as a check field. It's similar to @CheckBox@ in functionality, but it has a different apperance. To follow established UX patterns, it's recommended to use CheckButton when toggling it has an __immediate__ effect on something. For instance, it should be used if toggling it enables/disables a setting without requiring the user to press a confirmation button.\nnewtype CheckButton = CheckButton Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass CheckButton where\n        type BaseClass CheckButton = Button\n        super = coerce\n\n-- | Circular shape for 2D collisions.\n--    This shape is useful for modeling balls or small characters and its collision detection with everything else is very fast.\nnewtype CircleShape2D = CircleShape2D Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass CircleShape2D where\n        type BaseClass CircleShape2D = Shape2D\n        super = coerce\n\n-- | A @Camera@ that includes collision.\n--   This node extends @Camera@ to add collisions with @Area@ and/or @PhysicsBody@ nodes. The camera cannot move through colliding objects.\nnewtype ClippedCamera = ClippedCamera Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass ClippedCamera where\n        type BaseClass ClippedCamera = Camera\n        super = coerce\n\n-- | Base node for collision objects.\n--   CollisionObject is the base class for physics objects. It can hold any number of collision @Shape@s. Each shape must be assigned to a @i@shape owner@/i@. The CollisionObject can have any number of shape owners. Shape owners are not nodes and do not appear in the editor, but are accessible through code using the @shape_owner_*@ methods.\nnewtype CollisionObject = CollisionObject Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass CollisionObject where\n        type BaseClass CollisionObject = Spatial\n        super = coerce\n\n-- | Base node for 2D collision objects.\n--   CollisionObject2D is the base class for 2D physics objects. It can hold any number of 2D collision @Shape2D@s. Each shape must be assigned to a @i@shape owner@/i@. The CollisionObject2D can have any number of shape owners. Shape owners are not nodes and do not appear in the editor, but are accessible through code using the @shape_owner_*@ methods.\nnewtype CollisionObject2D = CollisionObject2D Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass CollisionObject2D where\n        type BaseClass CollisionObject2D = Node2D\n        super = coerce\n\n-- | Editor-only class for defining a collision polygon in 3D space.\n--   Allows editing a collision polygon's vertices on a selected plane. Can also set a depth perpendicular to that plane. This class is only available in the editor. It will not appear in the scene tree at run-time. Creates a @Shape@ for gameplay. Properties modified during gameplay will have no effect.\nnewtype CollisionPolygon = CollisionPolygon Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass CollisionPolygon where\n        type BaseClass CollisionPolygon = Spatial\n        super = coerce\n\n-- | Defines a 2D collision polygon.\n--   Provides a 2D collision polygon to a @CollisionObject2D@ parent. Polygons can be drawn in the editor or specified by a list of vertices.\nnewtype CollisionPolygon2D = CollisionPolygon2D Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass CollisionPolygon2D where\n        type BaseClass CollisionPolygon2D = Node2D\n        super = coerce\n\n-- | Node that represents collision shape data in 3D space.\n--   Editor facility for creating and editing collision shapes in 3D space. You can use this node to represent all sorts of collision shapes, for example, add this to an @Area@ to give it a detection shape, or add it to a @PhysicsBody@ to create a solid object. __IMPORTANT__: this is an Editor-only helper to create shapes, use @method CollisionObject.shape_owner_get_shape@ to get the actual shape.\nnewtype CollisionShape = CollisionShape Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass CollisionShape where\n        type BaseClass CollisionShape = Spatial\n        super = coerce\n\n-- | Node that represents collision shape data in 2D space.\n--   Editor facility for creating and editing collision shapes in 2D space. You can use this node to represent all sorts of collision shapes, for example, add this to an @Area2D@ to give it a detection shape, or add it to a @PhysicsBody2D@ to create a solid object. __IMPORTANT__: this is an Editor-only helper to create shapes, use @method CollisionObject2D.shape_owner_get_shape@ to get the actual shape.\nnewtype CollisionShape2D = CollisionShape2D Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass CollisionShape2D where\n        type BaseClass CollisionShape2D = Node2D\n        super = coerce\n\n-- | Color picker control.\n--   @Control@ node displaying a color picker widget. It's useful for selecting a color from an RGB/RGBA colorspace.\nnewtype ColorPicker = ColorPicker Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass ColorPicker where\n        type BaseClass ColorPicker = BoxContainer\n        super = coerce\n\n-- | Button that pops out a @ColorPicker@.\n--   Encapsulates a @ColorPicker@ making it accessible by pressing a button. Pressing the button will toggle the @ColorPicker@ visibility.\nnewtype ColorPickerButton = ColorPickerButton Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass ColorPickerButton where\n        type BaseClass ColorPickerButton = Button\n        super = coerce\n\n-- | Colored rectangle.\n--   Displays a colored rectangle.\nnewtype ColorRect = ColorRect Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass ColorRect where\n        type BaseClass ColorRect = Control\n        super = coerce\n\n-- | Concave polygon shape.\n--   Concave polygon shape resource, which can be set into a @PhysicsBody@ or area. This shape is created by feeding a list of triangles.\n--   \t\tNote: when used for collision, @ConcavePolygonShape@ is intended to work with static @PhysicsBody@ nodes like @StaticBody@ and will not work with @KinematicBody@ or @RigidBody@ with a mode other than Static.\nnewtype ConcavePolygonShape = ConcavePolygonShape Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass ConcavePolygonShape where\n        type BaseClass ConcavePolygonShape = Shape\n        super = coerce\n\n-- | Concave polygon 2D shape resource for physics.\n--    It is made out of segments and is optimal for complex polygonal concave collisions. However, it is not advised to use for @RigidBody2D@ nodes. A CollisionPolygon2D in convex decomposition mode (solids) or several convex objects are advised for that instead. Otherwise, a concave polygon 2D shape is better for static collisions.\n--   \t\tThe main difference between a @ConvexPolygonShape2D@ and a @ConcavePolygonShape2D@ is that a concave polygon assumes it is concave and uses a more complex method of collision detection, and a convex one forces itself to be convex in order to speed up collision detection.\nnewtype ConcavePolygonShape2D = ConcavePolygonShape2D Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass ConcavePolygonShape2D where\n        type BaseClass ConcavePolygonShape2D = Shape2D\n        super = coerce\n\n-- | A twist joint between two 3D bodies.\n--   The joint can rotate the bodies across an axis defined by the local x-axes of the @Joint@.\n--   \t\tThe twist axis is initiated as the X axis of the @Joint@.\n--   \t\tOnce the Bodies swing, the twist axis is calculated as the middle of the x-axes of the Joint in the local space of the two Bodies.\nnewtype ConeTwistJoint = ConeTwistJoint Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass ConeTwistJoint where\n        type BaseClass ConeTwistJoint = Joint\n        super = coerce\n\n-- | Helper class to handle INI-style files.\n--   This helper class can be used to store @Variant@ values on the filesystem using INI-style formatting. The stored values are identified by a section and a key:\n--   \t\t\n--   @\n--   \n--   \t\t@section@\n--   \t\tsome_key=42\n--   \t\tstring_example=\"Hello World!\"\n--   \t\ta_vector=Vector3( 1, 0, 2 )\n--   \t\t\n--   @\n--   \n--   \t\tThe stored data can be saved to or parsed from a file, though ConfigFile objects can also be used directly without accessing the filesystem.\n--   \t\tThe following example shows how to parse an INI-style file from the system, read its contents and store new values in it:\n--   \t\t\n--   @\n--   \n--   \t\tvar config = ConfigFile.new()\n--   \t\tvar err = config.load(\"user://settings.cfg\")\n--   \t\tif err == OK: # If not, something went wrong with the file loading\n--   \t\t    # Look for the display/width pair, and default to 1024 if missing\n--   \t\t    var screen_width = config.get_value(\"display\", \"width\", 1024)\n--   \t\t    # Store a variable if and only if it hasn't been defined yet\n--   \t\t    if not config.has_section_key(\"audio\", \"mute\"):\n--   \t\t        config.set_value(\"audio\", \"mute\", false)\n--   \t\t    # Save the changes by overwriting the previous file\n--   \t\t    config.save(\"user://settings.cfg\")\n--   \t\t\n--   @\n--   \n--   \t\tKeep in mind that section and property names can't contain spaces. Anything after a space will be ignored on save and on load.\n--   \t\tConfigFiles can also contain manually written comment lines starting with a semicolon (@;@). Those lines will be ignored when parsing the file. Note that comments will be lost when saving the ConfigFile. This can still be useful for dedicated server configuration files, which are typically never overwritten without explicit user action.\nnewtype ConfigFile = ConfigFile Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass ConfigFile where\n        type BaseClass ConfigFile = Reference\n        super = coerce\n\n-- | Dialog for confirmation of actions.\n--    This dialog inherits from @AcceptDialog@, but has by default an OK and Cancel button (in host OS order).\n--   \t\tTo get cancel action, you can use:\n--   \t\t\n--   @\n--   \n--   \t\tget_cancel().connect(\"pressed\", self, \"cancelled\")\n--   \t\t\n--   @\n--   .\nnewtype ConfirmationDialog = ConfirmationDialog Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass ConfirmationDialog where\n        type BaseClass ConfirmationDialog = AcceptDialog\n        super = coerce\n\n-- | Base node for containers.\n--    A @Container@ contains other controls and automatically arranges them in a certain way.\n--   \t\tA Control can inherit this to create custom container classes.\nnewtype Container = Container Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass Container where\n        type BaseClass Container = Control\n        super = coerce\n\n-- | All user interface nodes inherit from Control. A control's anchors and margins adapt its position and size relative to its parent.\n--   Base class for all UI-related nodes. @Control@ features a bounding rectangle that defines its extents, an anchor position relative to its parent control or the current viewport, and margins that represent an offset to the anchor. The margins update automatically when the node, any of its parents, or the screen size change.\n--   \t\tFor more information on Godot's UI system, anchors, margins, and containers, see the related tutorials in the manual. To build flexible UIs, you'll need a mix of UI elements that inherit from @Control@ and @Container@ nodes.\n--   \t\t__User Interface nodes and input__\n--   \t\tGodot sends input events to the scene's root node first, by calling @method Node._input@. @method Node._input@ forwards the event down the node tree to the nodes under the mouse cursor, or on keyboard focus. To do so, it calls @method MainLoop._input_event@. Call @method accept_event@ so no other node receives the event. Once you accepted an input, it becomes handled so @method Node._unhandled_input@ will not process it.\n--   \t\tOnly one @Control@ node can be in keyboard focus. Only the node in focus will receive keyboard events. To get the focus, call @method grab_focus@. @Control@ nodes lose focus when another node grabs it, or if you hide the node in focus.\n--   \t\tSets @mouse_filter@ to @MOUSE_FILTER_IGNORE@ to tell a @Control@ node to ignore mouse or touch events. You'll need it if you place an icon on top of a button.\n--   \t\t@Theme@ resources change the Control's appearance. If you change the @Theme@ on a @Control@ node, it affects all of its children. To override some of the theme's parameters, call one of the @add_*_override@ methods, like @method add_font_override@. You can override the theme with the inspector.\n--   \t\t__Note:__ Theme items are @i@not@/i@ @Object@ properties. This means you can't access their values using @method Object.get@ and @method Object.set@. Instead, use @method get_color@, @method get_constant@, @method get_font@, @method get_icon@, @method get_stylebox@, and the @add_*_override@ methods provided by this class.\nnewtype Control = Control Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass Control where\n        type BaseClass Control = CanvasItem\n        super = coerce\n\n-- | Convex polygon shape for 3D physics.\n--   Convex polygon shape resource, which can be added to a @PhysicsBody@ or area.\nnewtype ConvexPolygonShape = ConvexPolygonShape Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass ConvexPolygonShape where\n        type BaseClass ConvexPolygonShape = Shape\n        super = coerce\n\n-- | Convex polygon shape for 2D physics.\n--    A convex polygon, whatever its shape, is internally decomposed into as many convex polygons as needed to ensure all collision checks against it are always done on convex polygons (which are faster to check).\n--   \t\tThe main difference between a @ConvexPolygonShape2D@ and a @ConcavePolygonShape2D@ is that a concave polygon assumes it is concave and uses a more complex method of collision detection, and a convex one forces itself to be convex in order to speed up collision detection.\nnewtype ConvexPolygonShape2D = ConvexPolygonShape2D Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass ConvexPolygonShape2D where\n        type BaseClass ConvexPolygonShape2D = Shape2D\n        super = coerce\n\n-- | Access to advanced cryptographic functionalities.\n--   The Crypto class allows you to access some more advanced cryptographic functionalities in Godot.\n--   \t\tFor now, this includes generating cryptographically secure random bytes, and RSA keys and self-signed X509 certificates generation. More functionalities are planned for future releases.\n--   \t\t\n--   @\n--   \n--   \t\textends Node\n--   \n--   \t\tvar crypto = Crypto.new()\n--   \t\tvar key = CryptoKey.new()\n--   \t\tvar cert = X509Certificate.new()\n--   \n--   \t\tfunc _ready():\n--   \t\t    # Generate new RSA key.\n--   \t\t    key = crypto.generate_rsa(4096)\n--   \t\t    # Generate new self-signed certificate with the given key.\n--   \t\t    cert = crypto.generate_self_signed_certificate(key, \"CN=mydomain.com,O=My Game Company,C=IT\")\n--   \t\t    # Save key and certificate in the user folder.\n--   \t\t    key.save(\"user://generated.key\")\n--   \t\t    cert.save(\"user://generated.crt\")\n--   \t\t\n--   @\n--   \n--   \t\t__Note:__ Not available in HTML5 exports.\nnewtype Crypto = Crypto Object\n                   deriving newtype AsVariant\n\ninstance HasBaseClass Crypto where\n        type BaseClass Crypto = Reference\n        super = coerce\n\n-- | A cryptographic key (RSA).\n--   The CryptoKey class represents a cryptographic key. Keys can be loaded and saved like any other @Resource@.\n--   \t\tThey can be used to generate a self-signed @X509Certificate@ via @method Crypto.generate_self_signed_certificate@ and as private key in @method StreamPeerSSL.accept_stream@ along with the appropriate certificate.\n--   \t\t__Note:__ Not available in HTML5 exports.\nnewtype CryptoKey = CryptoKey Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass CryptoKey where\n        type BaseClass CryptoKey = Resource\n        super = coerce\n\n-- | A CubeMap is a 6-sided 3D texture.\n--   A 6-sided 3D texture typically used for faking reflections. It can be used to make an object look as if it's reflecting its surroundings. This usually delivers much better performance than other reflection methods.\nnewtype CubeMap = CubeMap Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass CubeMap where\n        type BaseClass CubeMap = Resource\n        super = coerce\n\n-- | Generate an axis-aligned cuboid @PrimitiveMesh@.\n--   \n--   \t\tThe cube's UV layout is arranged in a 3×2 layout that allows texturing each face individually. To apply the same texture on all faces, change the material's UV property to @Vector3(3, 2, 1)@.\nnewtype CubeMesh = CubeMesh Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass CubeMesh where\n        type BaseClass CubeMesh = PrimitiveMesh\n        super = coerce\n\n-- | A mathematic curve.\n--   A curve that can be saved and re-used for other objects. By default, it ranges between @0@ and @1@ on the Y axis and positions points relative to the @0.5@ Y position.\nnewtype Curve = Curve Object\n                  deriving newtype AsVariant\n\ninstance HasBaseClass Curve where\n        type BaseClass Curve = Resource\n        super = coerce\n\n-- | Describes a Bézier curve in 2D space.\n--   This class describes a Bézier curve in 2D space. It is mainly used to give a shape to a @Path2D@, but can be manually sampled for other purposes.\n--   \t\tIt keeps a cache of precalculated points along the curve, to speed up further calculations.\nnewtype Curve2D = Curve2D Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass Curve2D where\n        type BaseClass Curve2D = Resource\n        super = coerce\n\n-- | Describes a Bézier curve in 3D space.\n--   This class describes a Bézier curve in 3D space. It is mainly used to give a shape to a @Path@, but can be manually sampled for other purposes.\n--   \t\tIt keeps a cache of precalculated points along the curve, to speed up further calculations.\nnewtype Curve3D = Curve3D Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass Curve3D where\n        type BaseClass Curve3D = Resource\n        super = coerce\n\n-- | A texture that shows a curve.\n--   Renders a given @Curve@ provided to it. Simplifies the task of drawing curves and/or saving them as image files.\nnewtype CurveTexture = CurveTexture Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass CurveTexture where\n        type BaseClass CurveTexture = Texture\n        super = coerce\n\n-- | Class representing a cylindrical @PrimitiveMesh@.\n--    This class can be used to create cones by setting either the @top_radius@ or @bottom_radius@ properties to 0.0.\nnewtype CylinderMesh = CylinderMesh Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass CylinderMesh where\n        type BaseClass CylinderMesh = PrimitiveMesh\n        super = coerce\n\n-- | Cylinder shape for collisions.\nnewtype CylinderShape = CylinderShape Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass CylinderShape where\n        type BaseClass CylinderShape = Shape\n        super = coerce\n\n-- | Damped spring constraint for 2D physics.\n--    This resembles a spring joint that always wants to go back to a given length.\nnewtype DampedSpringJoint2D = DampedSpringJoint2D Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass DampedSpringJoint2D where\n        type BaseClass DampedSpringJoint2D = Joint2D\n        super = coerce\n\n-- | Directional light from a distance, as from the Sun.\n--   A directional light is a type of @Light@ node that models an infinite number of parallel rays covering the entire scene. It is used for lights with strong intensity that are located far away from the scene to model sunlight or moonlight. The worldspace location of the DirectionalLight transform (origin) is ignored. Only the basis is used to determine light direction.\nnewtype DirectionalLight = DirectionalLight Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass DirectionalLight where\n        type BaseClass DirectionalLight = Light\n        super = coerce\n\n-- | DynamicFont renders vector font files at runtime.\n--   DynamicFont renders vector font files (such as TTF or OTF) dynamically at runtime instead of using a prerendered texture atlas like @BitmapFont@. This trades the faster loading time of @BitmapFont@s for the ability to change font parameters like size and spacing during runtime. @DynamicFontData@ is used for referencing the font file paths. DynamicFont also supports defining one or more fallback fonts, which will be used when displaying a character not supported by the main font.\n--   \t\tDynamicFont uses the @url=https://www.freetype.org/@FreeType@/url@ library for rasterization.\n--   \t\t\n--   @\n--   \n--   \t\tvar dynamic_font = DynamicFont.new()\n--   \t\tdynamic_font.font_data = load(\"res://BarlowCondensed-Bold.ttf\")\n--   \t\tdynamic_font.size = 64\n--   \t\t$\"Label\".set(\"custom_fonts/font\", dynamic_font)\n--   \t\t\n--   @\n--   \n--   \t\t__Note:__ DynamicFont doesn't support features such as kerning, right-to-left typesetting, ligatures, text shaping, variable fonts and optional font features yet. If you wish to \"bake\" an optional font feature into a TTF font file, you can use @url=https://fontforge.org/@FontForge@/url@ to do so. In FontForge, use __File > Generate Fonts__, click __Options__, choose the desired features then generate the font.\nnewtype DynamicFont = DynamicFont Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass DynamicFont where\n        type BaseClass DynamicFont = Font\n        super = coerce\n\n-- | Used with @DynamicFont@ to describe the location of a font file.\n--   Used with @DynamicFont@ to describe the location of a vector font file for dynamic rendering at runtime.\nnewtype DynamicFontData = DynamicFontData Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass DynamicFontData where\n        type BaseClass DynamicFontData = Resource\n        super = coerce\n\n-- | A script that is executed when exporting projects.\nnewtype EditorExportPlugin = EditorExportPlugin Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass EditorExportPlugin where\n        type BaseClass EditorExportPlugin = Reference\n        super = coerce\n\n-- | An editor feature profile which can be used to disable specific features.\n--   An editor feature profile can be used to disable specific features of the Godot editor. When disabled, the features won't appear in the editor, which makes the editor less cluttered. This is useful in education settings to reduce confusion or when working in a team. For example, artists and level designers could use a feature profile that disables the script editor to avoid accidentally making changes to files they aren't supposed to edit.\n--   \t\tTo manage editor feature profiles visually, use __Editor > Manage Feature Profiles...__ at the top of the editor window.\nnewtype EditorFeatureProfile = EditorFeatureProfile Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass EditorFeatureProfile where\n        type BaseClass EditorFeatureProfile = Reference\n        super = coerce\n\n-- | A modified version of @FileDialog@ used by the editor.\nnewtype EditorFileDialog = EditorFileDialog Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass EditorFileDialog where\n        type BaseClass EditorFileDialog = ConfirmationDialog\n        super = coerce\n\n-- | Resource filesystem, as the editor sees it.\n--   This object holds information of all resources in the filesystem, their types, etc.\n--   \t\t__Note:__ This class shouldn't be instantiated directly. Instead, access the singleton using @method EditorInterface.get_resource_filesystem@.\nnewtype EditorFileSystem = EditorFileSystem Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass EditorFileSystem where\n        type BaseClass EditorFileSystem = Node\n        super = coerce\n\n-- | A directory for the resource filesystem.\n--   A more generalized, low-level variation of the directory concept.\nnewtype EditorFileSystemDirectory = EditorFileSystemDirectory Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass EditorFileSystemDirectory where\n        type BaseClass EditorFileSystemDirectory = Object\n        super = coerce\n\n-- | Registers a custom resource importer in the editor. Use the class to parse any file and import it as a new resource type.\n--   EditorImportPlugins provide a way to extend the editor's resource import functionality. Use them to import resources from custom files or to provide alternatives to the editor's existing importers. Register your @EditorPlugin@ with @method EditorPlugin.add_import_plugin@.\n--   \t\tEditorImportPlugins work by associating with specific file extensions and a resource type. See @method get_recognized_extensions@ and @method get_resource_type@. They may optionally specify some import presets that affect the import process. EditorImportPlugins are responsible for creating the resources and saving them in the @.import@ directory.\n--   \t\tBelow is an example EditorImportPlugin that imports a @Mesh@ from a file with the extension \".special\" or \".spec\":\n--   \t\t\n--   @\n--   \n--   \t\ttool\n--   \t\textends EditorImportPlugin\n--   \n--   \t\tfunc get_importer_name():\n--   \t\t    return \"my.special.plugin\"\n--   \n--   \t\tfunc get_visible_name():\n--   \t\t    return \"Special Mesh Importer\"\n--   \n--   \t\tfunc get_recognized_extensions():\n--   \t\t    return @\"special\", \"spec\"@\n--   \n--   \t\tfunc get_save_extension():\n--   \t\t    return \"mesh\"\n--   \n--   \t\tfunc get_resource_type():\n--   \t\t    return \"Mesh\"\n--   \n--   \t\tfunc get_preset_count():\n--   \t\t    return 1\n--   \n--   \t\tfunc get_preset_name(i):\n--   \t\t    return \"Default\"\n--   \n--   \t\tfunc get_import_options(i):\n--   \t\t    return @{\"name\": \"my_option\", \"default_value\": false}@\n--   \n--   \t\tfunc import(source_file, save_path, options, platform_variants, gen_files):\n--   \t\t    var file = File.new()\n--   \t\t    if file.open(source_file, File.READ) != OK:\n--   \t\t        return FAILED\n--   \n--   \t\t    var mesh = Mesh.new()\n--   \t\t    # Fill the Mesh with data read in \"file\", left as an exercise to the reader\n--   \n--   \t\t    var filename = save_path + \".\" + get_save_extension()\n--   \t\t    ResourceSaver.save(filename, mesh)\n--   \t\t    return OK\n--   \t\t\n--   @\nnewtype EditorImportPlugin = EditorImportPlugin Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass EditorImportPlugin where\n        type BaseClass EditorImportPlugin = ResourceImporter\n        super = coerce\n\n-- | A tab used to edit properties of the selected node.\n--   The editor inspector is by default located on the right-hand side of the editor. It's used to edit the properties of the selected node. For example, you can select a node such as @Sprite@ then edit its transform through the inspector tool. The editor inspector is an essential tool in the game development workflow.\n--   \t\t__Note:__ This class shouldn't be instantiated directly. Instead, access the singleton using @method EditorInterface.get_inspector@.\nnewtype EditorInspector = EditorInspector Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass EditorInspector where\n        type BaseClass EditorInspector = ScrollContainer\n        super = coerce\n\n-- | Plugin for adding custom property editors on inspector.\n--   This plugins allows adding custom property editors to @EditorInspector@.\n--   \t\tPlugins are registered via @method EditorPlugin.add_inspector_plugin@.\n--   \t\tWhen an object is edited, the @method can_handle@ function is called and must return @true@ if the object type is supported.\n--   \t\tIf supported, the function @method parse_begin@ will be called, allowing to place custom controls at the beginning of the class.\n--   \t\tSubsequently, the @method parse_category@ and @method parse_property@ are called for every category and property. They offer the ability to add custom controls to the inspector too.\n--   \t\tFinally @method parse_end@ will be called.\n--   \t\tOn each of these calls, the \"add\" functions can be called.\nnewtype EditorInspectorPlugin = EditorInspectorPlugin Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass EditorInspectorPlugin where\n        type BaseClass EditorInspectorPlugin = Reference\n        super = coerce\n\n-- | Godot editor's interface.\n--   EditorInterface gives you control over Godot editor's window. It allows customizing the window, saving and (re-)loading scenes, rendering mesh previews, inspecting and editing resources and objects, and provides access to @EditorSettings@, @EditorFileSystem@, @EditorResourcePreview@, @ScriptEditor@, the editor viewport, and information about scenes.\n--   \t\t__Note:__ This class shouldn't be instantiated directly. Instead, access the singleton using @method EditorPlugin.get_editor_interface@.\nnewtype EditorInterface = EditorInterface Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass EditorInterface where\n        type BaseClass EditorInterface = Node\n        super = coerce\n\nnewtype EditorNavigationMeshGenerator = EditorNavigationMeshGenerator Object\n                                          deriving newtype AsVariant\n\ninstance HasBaseClass EditorNavigationMeshGenerator where\n        type BaseClass EditorNavigationMeshGenerator = Object\n        super = coerce\n\n-- | Used by the editor to extend its functionality.\n--   Plugins are used by the editor to extend functionality. The most common types of plugins are those which edit a given node or resource type, import plugins and export plugins. See also @EditorScript@ to add functions to the editor.\nnewtype EditorPlugin = EditorPlugin Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass EditorPlugin where\n        type BaseClass EditorPlugin = Node\n        super = coerce\n\n-- | Custom control to edit properties for adding into the inspector.\n--   This control allows property editing for one or multiple properties into @EditorInspector@. It is added via @EditorInspectorPlugin@.\nnewtype EditorProperty = EditorProperty Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass EditorProperty where\n        type BaseClass EditorProperty = Container\n        super = coerce\n\nnewtype EditorResourceConversionPlugin = EditorResourceConversionPlugin Object\n                                           deriving newtype AsVariant\n\ninstance HasBaseClass EditorResourceConversionPlugin where\n        type BaseClass EditorResourceConversionPlugin = Reference\n        super = coerce\n\n-- | Helper to generate previews of resources or files.\n--   This object is used to generate previews for resources of files.\n--   \t\t__Note:__ This class shouldn't be instantiated directly. Instead, access the singleton using @method EditorInterface.get_resource_previewer@.\nnewtype EditorResourcePreview = EditorResourcePreview Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass EditorResourcePreview where\n        type BaseClass EditorResourcePreview = Node\n        super = coerce\n\n-- | Custom generator of previews.\n--   Custom code to generate previews. Please check @file_dialog/thumbnail_size@ in @EditorSettings@ to find out the right size to do previews at.\nnewtype EditorResourcePreviewGenerator = EditorResourcePreviewGenerator Object\n                                           deriving newtype AsVariant\n\ninstance HasBaseClass EditorResourcePreviewGenerator where\n        type BaseClass EditorResourcePreviewGenerator = Reference\n        super = coerce\n\n-- | Imports scenes from third-parties' 3D files.\nnewtype EditorSceneImporter = EditorSceneImporter Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass EditorSceneImporter where\n        type BaseClass EditorSceneImporter = Reference\n        super = coerce\n\n-- | FBX 3D asset importer based on @url=http://assimp.org/@Assimp@/url@.\n--   This is an FBX 3D asset importer based on @url=http://assimp.org/@Assimp@/url@. It currently has many known limitations and works best with static meshes. Most animated meshes won't import correctly.\n--   \t\tIf exporting a FBX scene from Autodesk Maya, use these FBX export settings:\n--   \t\t\n--   @\n--   \n--   \t\t- Smoothing Groups\n--   \t\t- Smooth Mesh\n--   \t\t- Triangluate (for meshes with blend shapes)\n--   \t\t- Bake Animation\n--   \t\t- Resample All\n--   \t\t- Deformed Models\n--   \t\t- Skins\n--   \t\t- Blend Shapes\n--   \t\t- Curve Filters\n--   \t\t- Constant Key Reducer\n--   \t\t- Auto Tangents Only\n--   \t\t- *Do not check* Constraints (as it will break the file)\n--   \t\t- Can check Embed Media (embeds textures into the exported FBX file)\n--   \t\t  - Note that when importing embedded media, the texture and mesh will be a single immutable file.\n--   \t\t  - You will have to re-export then re-import the FBX if the texture has changed.\n--   \t\t- Units: Centimeters\n--   \t\t- Up Axis: Y\n--   \t\t- Binary format in FBX 2017\n--   \t\t\n--   @\nnewtype EditorSceneImporterAssimp = EditorSceneImporterAssimp Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass EditorSceneImporterAssimp where\n        type BaseClass EditorSceneImporterAssimp = EditorSceneImporter\n        super = coerce\n\n-- | Post-processes scenes after import.\n--   Imported scenes can be automatically modified right after import by setting their __Custom Script__ Import property to a @tool@ script that inherits from this class.\n--   \t\tThe @method post_import@ callback receives the imported scene's root node and returns the modified version of the scene. Usage example:\n--   \t\t\n--   @\n--   \n--   \t\ttool # Needed so it runs in editor\n--   \t\textends EditorScenePostImport\n--   \n--   \t\t# This sample changes all node names\n--   \n--   \t\t# Called right after the scene is imported and gets the root node\n--   \t\tfunc post_import(scene):\n--   \t\t    # Change all node names to \"modified_@oldnodename@\"\n--   \t\t    iterate(scene)\n--   \t\t    return scene # Remember to return the imported scene\n--   \n--   \t\tfunc iterate(node):\n--   \t\t    if node != null:\n--   \t\t        node.name = \"modified_\" + node.name\n--   \t\t        for child in node.get_children():\n--   \t\t            iterate(child)\n--   \t\t\n--   @\nnewtype EditorScenePostImport = EditorScenePostImport Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass EditorScenePostImport where\n        type BaseClass EditorScenePostImport = Reference\n        super = coerce\n\n-- | Base script that can be used to add extension functions to the editor.\n--   Scripts extending this class and implementing its @method _run@ method can be executed from the Script Editor's __File > Run__ menu option (or by pressing @Ctrl+Shift+X@) while the editor is running. This is useful for adding custom in-editor functionality to Godot. For more complex additions, consider using @EditorPlugin@s instead.\n--   \t\t__Note:__ Extending scripts need to have @tool@ mode enabled.\n--   \t\t__Example script:__\n--   \t\t\n--   @\n--   \n--   \t\ttool\n--   \t\textends EditorScript\n--   \n--   \t\tfunc _run():\n--   \t\t    print(\"Hello from the Godot Editor!\")\n--   \t\t\n--   @\n--   \n--   \t\t__Note:__ The script is run in the Editor context, which means the output is visible in the console window started with the Editor (stdout) instead of the usual Godot __Output__ dock.\nnewtype EditorScript = EditorScript Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass EditorScript where\n        type BaseClass EditorScript = Reference\n        super = coerce\n\n-- | Manages the SceneTree selection in the editor.\n--   This object manages the SceneTree selection in the editor.\n--   \t\t__Note:__ This class shouldn't be instantiated directly. Instead, access the singleton using @method EditorInterface.get_selection@.\nnewtype EditorSelection = EditorSelection Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass EditorSelection where\n        type BaseClass EditorSelection = Object\n        super = coerce\n\n-- | Object that holds the project-independent editor settings.\n--    These settings are generally visible in the __Editor > Editor Settings__ menu.\n--   \t\tProperty names use slash delimiters to distinguish sections. Setting values can be of any @Variant@ type. It's recommended to use @snake_case@ for editor settings to be consistent with the Godot editor itself.\n--   \t\tAccessing the settings can be done using the following methods, such as:\n--   \t\t\n--   @\n--   \n--   \t\t# `settings.set(\"some/property\", value)` also works as this class overrides `_set()` internally.\n--   \t\tsettings.set_setting(\"some/property\",value)\n--   \n--   \t\t# `settings.get(\"some/property\", value)` also works as this class overrides `_get()` internally.\n--   \t\tsettings.get_setting(\"some/property\")\n--   \n--   \t\tvar list_of_settings = settings.get_property_list()\n--   \t\t\n--   @\n--   \n--   \t\t__Note:__ This class shouldn't be instantiated directly. Instead, access the singleton using @method EditorInterface.get_editor_settings@.\nnewtype EditorSettings = EditorSettings Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass EditorSettings where\n        type BaseClass EditorSettings = Resource\n        super = coerce\n\n-- | Custom gizmo for editing Spatial objects.\n--   Custom gizmo that is used for providing custom visualization and editing (handles) for 3D Spatial objects. See @EditorSpatialGizmoPlugin@ for more information.\nnewtype EditorSpatialGizmo = EditorSpatialGizmo Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass EditorSpatialGizmo where\n        type BaseClass EditorSpatialGizmo = SpatialGizmo\n        super = coerce\n\n-- | Used by the editor to define Spatial gizmo types.\n--   EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are two main ways to do so: extending @EditorSpatialGizmoPlugin@ for the simpler gizmos, or creating a new @EditorSpatialGizmo@ type. See the tutorial in the documentation for more info.\nnewtype EditorSpatialGizmoPlugin = EditorSpatialGizmoPlugin Object\n                                     deriving newtype AsVariant\n\ninstance HasBaseClass EditorSpatialGizmoPlugin where\n        type BaseClass EditorSpatialGizmoPlugin = Resource\n        super = coerce\n\nnewtype EditorSpinSlider = EditorSpinSlider Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass EditorSpinSlider where\n        type BaseClass EditorSpinSlider = Range\n        super = coerce\n\n-- | Version Control System (VCS) interface which reads and writes to the local VCS in use.\n--   Used by the editor to display VCS extracted information in the editor. The implementation of this API is included in VCS addons, which are essentially GDNative plugins that need to be put into the project folder. These VCS addons are scripts which are attached (on demand) to the object instance of @EditorVCSInterface@. All the functions listed below, instead of performing the task themselves, they call the internally defined functions in the VCS addons to provide a plug-n-play experience.\nnewtype EditorVCSInterface = EditorVCSInterface Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass EditorVCSInterface where\n        type BaseClass EditorVCSInterface = Object\n        super = coerce\n\n-- | Holds a reference to an @Object@'s instance ID.\n--   Utility class which holds a reference to the internal identifier of an @Object@ instance, as given by @method Object.get_instance_id@. This ID can then be used to retrieve the object instance with @method @GDScript.instance_from_id@.\n--   \t\tThis class is used internally by the editor inspector and script debugger, but can also be used in plugins to pass and display objects as their IDs.\nnewtype EncodedObjectAsID = EncodedObjectAsID Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass EncodedObjectAsID where\n        type BaseClass EncodedObjectAsID = Reference\n        super = coerce\n\n-- | Resource for environment nodes (like @WorldEnvironment@) that define multiple rendering options.\n--   Resource for environment nodes (like @WorldEnvironment@) that define multiple environment operations (such as background @Sky@ or @Color@, ambient light, fog, depth-of-field...). These parameters affect the final render of the scene. The order of these operations is:\n--   \t\t- Depth of Field Blur\n--   \t\t- Glow\n--   \t\t- Tonemap (Auto Exposure)\n--   \t\t- Adjustments\n--   \t\tThese effects will only apply when the @Viewport@'s intended usage is \"3D\" or \"3D Without Effects\". This can be configured for the root Viewport with @ProjectSettings.rendering/quality/intended_usage/framebuffer_allocation@, or for specific Viewports via the @Viewport.usage@ property.\nnewtype Environment = Environment Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass Environment where\n        type BaseClass Environment = Resource\n        super = coerce\n\n-- | A class that stores an expression you can execute.\n--   An expression can be made of any arithmetic operation, built-in math function call, method call of a passed instance, or built-in type construction call.\n--   \t\tAn example expression text using the built-in math functions could be @sqrt(pow(3,2) + pow(4,2))@.\n--   \t\tIn the following example we use a @LineEdit@ node to write our expression and show the result.\n--   \t\t\n--   @\n--   \n--   \t\tonready var expression = Expression.new()\n--   \n--   \t\tfunc _ready():\n--   \t\t    $LineEdit.connect(\"text_entered\", self, \"_on_text_entered\")\n--   \n--   \t\tfunc _on_text_entered(command):\n--   \t\t    var error = expression.parse(command, @@)\n--   \t\t    if error != OK:\n--   \t\t        print(expression.get_error_text())\n--   \t\t        return\n--   \t\t    var result = expression.execute(@@, null, true)\n--   \t\t    if not expression.has_execute_failed():\n--   \t\t        $LineEdit.text = str(result)\n--   \t\t\n--   @\nnewtype Expression = Expression Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass Expression where\n        type BaseClass Expression = Reference\n        super = coerce\n\n-- | Dialog for selecting files or directories in the filesystem.\n--   FileDialog is a preset dialog used to choose files and directories in the filesystem. It supports filter masks. The FileDialog automatically sets its window title according to the @mode@. If you want to use a custom title, disable this by setting @mode_overrides_title@ to @false@.\nnewtype FileDialog = FileDialog Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass FileDialog where\n        type BaseClass FileDialog = ConfirmationDialog\n        super = coerce\n\n-- | Internationalized font and text drawing support.\n--   Font contains a Unicode-compatible character set, as well as the ability to draw it with variable width, ascent, descent and kerning. For creating fonts from TTF files (or other font formats), see the editor support for fonts.\n--   \t\t__Note:__ If a DynamicFont doesn't contain a character used in a string, the character in question will be replaced with codepoint @0xfffd@ if it's available in the DynamicFont. If this replacement character isn't available in the DynamicFont, the character will be hidden without displaying any replacement character in the string.\n--   \t\t__Note:__ If a BitmapFont doesn't contain a character used in a string, the character in question will be hidden without displaying any replacement character in the string.\nnewtype Font = Font Object\n                 deriving newtype AsVariant\n\ninstance HasBaseClass Font where\n        type BaseClass Font = Resource\n        super = coerce\n\n-- | Reference to a function in an object.\n--   In GDScript, functions are not @i@first-class objects@/i@. This means it is impossible to store them directly as variables, return them from another function, or pass them as arguments.\n--   \t\tHowever, by creating a @FuncRef@ using the @method @GDScript.funcref@ function, a reference to a function in a given object can be created, passed around and called.\nnewtype FuncRef = FuncRef Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass FuncRef where\n        type BaseClass FuncRef = Reference\n        super = coerce\n\nnewtype GDNative = GDNative Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass GDNative where\n        type BaseClass GDNative = Reference\n        super = coerce\n\nnewtype GDNativeLibrary = GDNativeLibrary Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass GDNativeLibrary where\n        type BaseClass GDNativeLibrary = Resource\n        super = coerce\n\nnewtype GDScript = GDScript Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass GDScript where\n        type BaseClass GDScript = Script\n        super = coerce\n\nnewtype GDScriptFunctionState = GDScriptFunctionState Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass GDScriptFunctionState where\n        type BaseClass GDScriptFunctionState = Reference\n        super = coerce\n\n-- | Real-time global illumination (GI) probe.\n--   @GIProbe@s are used to provide high-quality real-time indirect light to scenes. They precompute the effect of objects that emit light and the effect of static geometry to simulate the behavior of complex light in real-time. @GIProbe@s need to be baked before using, however, once baked, dynamic objects will receive light from them. Further, lights can be fully dynamic or baked.\n--   \t\tHaving @GIProbe@s in a scene can be expensive, the quality of the probe can be turned down in exchange for better performance in the @ProjectSettings@ using @ProjectSettings.rendering/quality/voxel_cone_tracing/high_quality@.\nnewtype GIProbe = GIProbe Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass GIProbe where\n        type BaseClass GIProbe = VisualInstance\n        super = coerce\n\nnewtype GIProbeData = GIProbeData Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass GIProbeData where\n        type BaseClass GIProbeData = Resource\n        super = coerce\n\n-- | The generic 6-degrees-of-freedom joint can implement a variety of joint types by locking certain axes' rotation or translation.\n--   The first 3 DOF axes are linear axes, which represent translation of Bodies, and the latter 3 DOF axes represent the angular motion. Each axis can be either locked, or limited.\nnewtype Generic6DOFJoint = Generic6DOFJoint Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass Generic6DOFJoint where\n        type BaseClass Generic6DOFJoint = Joint\n        super = coerce\n\n-- | Base node for geometry-based visual instances.\n--    Shares some common functionality like visibility and custom materials.\nnewtype GeometryInstance = GeometryInstance Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass GeometryInstance where\n        type BaseClass GeometryInstance = VisualInstance\n        super = coerce\n\n-- | A color interpolator resource which can be used to generate colors between user-defined color points.\n--   Given a set of colors, this resource will interpolate them in order. This means that if you have color 1, color 2 and color 3, the ramp will interpolate from color 1 to color 2 and from color 2 to color 3. The ramp will initially have 2 colors (black and white), one (black) at ramp lower offset 0 and the other (white) at the ramp higher offset 1.\nnewtype Gradient = Gradient Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass Gradient where\n        type BaseClass Gradient = Resource\n        super = coerce\n\n-- | Gradient-filled texture.\n--   GradientTexture uses a @Gradient@ to fill the texture data. The gradient will be filled from left to right using colors obtained from the gradient. This means the texture does not necessarily represent an exact copy of the gradient, but instead an interpolation of samples obtained from the gradient at fixed steps (see @width@).\nnewtype GradientTexture = GradientTexture Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass GradientTexture where\n        type BaseClass GradientTexture = Texture\n        super = coerce\n\n-- | GraphEdit is an area capable of showing various GraphNodes. It manages connection events between them.\n--   GraphEdit manages the showing of GraphNodes it contains, as well as connections and disconnections between them. Signals are sent for each of these two events. Disconnection between GraphNode slots is disabled by default.\n--   \t\tIt is greatly advised to enable low-processor usage mode (see @OS.low_processor_usage_mode@) when using GraphEdits.\nnewtype GraphEdit = GraphEdit Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass GraphEdit where\n        type BaseClass GraphEdit = Control\n        super = coerce\n\n-- | A GraphNode is a container with potentially several input and output slots allowing connections between GraphNodes. Slots can have different, incompatible types.\n--   A GraphNode is a container. Each GraphNode can have several input and output slots, sometimes referred to as ports, allowing connections between GraphNodes. To add a slot to GraphNode, add any @Control@-derived child node to it.\n--   \t\tAfter adding at least one child to GraphNode new sections will be automatically created in the Inspector called 'Slot'. When 'Slot' is expanded you will see list with index number for each slot. You can click on each of them to expand further.\n--   \t\tIn the Inspector you can enable (show) or disable (hide) slots. By default all slots are disabled so you may not see any slots on your GraphNode initially. You can assign a type to each slot. Only slots of the same type will be able to connect to each other. You can also assign colors to slots. A tuple of input and output slots is defined for each GUI element included in the GraphNode. Input connections are on the left and output connections are on the right side of GraphNode. Only enabled slots are counted as connections.\nnewtype GraphNode = GraphNode Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass GraphNode where\n        type BaseClass GraphNode = Container\n        super = coerce\n\n-- | Grid container used to arrange Control-derived children in a grid like layout.\n--   GridContainer will arrange its Control-derived children in a grid like structure, the grid columns are specified using the @columns@ property and the number of rows will be equal to the number of children in the container divided by the number of columns. For example, if the container has 5 children, and 2 columns, there will be 3 rows in the container.\n--   \t\tNotice that grid layout will preserve the columns and rows for every size of the container, and that empty columns will be expanded automatically.\n--   \t\t__Note:__ GridContainer only works with child nodes inheriting from Control. It won't rearrange child nodes inheriting from Node2D.\nnewtype GridContainer = GridContainer Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass GridContainer where\n        type BaseClass GridContainer = Container\n        super = coerce\n\nnewtype GridMap = GridMap Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass GridMap where\n        type BaseClass GridMap = Spatial\n        super = coerce\n\n-- | Groove constraint for 2D physics.\n--    This is useful for making a body \"slide\" through a segment placed in another.\nnewtype GrooveJoint2D = GrooveJoint2D Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass GrooveJoint2D where\n        type BaseClass GrooveJoint2D = Joint2D\n        super = coerce\n\n-- | Horizontal box container.\n--    See @BoxContainer@.\nnewtype HBoxContainer = HBoxContainer Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass HBoxContainer where\n        type BaseClass HBoxContainer = BoxContainer\n        super = coerce\n\n-- | Horizontal scroll bar.\n--   Horizontal version of @ScrollBar@, which goes from left (min) to right (max).\nnewtype HScrollBar = HScrollBar Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass HScrollBar where\n        type BaseClass HScrollBar = ScrollBar\n        super = coerce\n\n-- | Horizontal separator.\n--    See @Separator@. Even though it looks horizontal, it is used to separate objects vertically.\nnewtype HSeparator = HSeparator Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass HSeparator where\n        type BaseClass HSeparator = Separator\n        super = coerce\n\n-- | Horizontal slider.\n--    See @Slider@. This one goes from left (min) to right (max).\n--   \t\t__Note:__ The @signal Range.changed@ and @signal Range.value_changed@ signals are part of the @Range@ class which this class inherits from.\nnewtype HSlider = HSlider Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass HSlider where\n        type BaseClass HSlider = Slider\n        super = coerce\n\n-- | Horizontal split container.\n--    See @SplitContainer@. This goes from left to right.\nnewtype HSplitContainer = HSplitContainer Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass HSplitContainer where\n        type BaseClass HSplitContainer = SplitContainer\n        super = coerce\n\n-- | Low-level hyper-text transfer protocol client.\n--   Hyper-text transfer protocol client (sometimes called \"User Agent\"). Used to make HTTP requests to download web content, upload files and other data or to communicate with various services, among other use cases. __See the @HTTPRequest@ node for an higher-level alternative.__\n--   \t\t__Note:__ This client only needs to connect to a host once (see @method connect_to_host@) to send multiple requests. Because of this, methods that take URLs usually take just the part after the host instead of the full URL, as the client is already connected to a host. See @method request@ for a full example and to get started.\n--   \t\tA @HTTPClient@ should be reused between multiple requests or to connect to different hosts instead of creating one client per request. Supports SSL and SSL server certificate verification. HTTP status codes in the 2xx range indicate success, 3xx redirection (i.e. \"try again, but over here\"), 4xx something was wrong with the request, and 5xx something went wrong on the server's side.\n--   \t\tFor more information on HTTP, see https://developer.mozilla.org/en-US/docs/Web/HTTP (or read RFC 2616 to get it straight from the source: https://tools.ietf.org/html/rfc2616).\n--   \t\t__Note:__ When performing HTTP requests from a project exported to HTML5, keep in mind the remote server may not allow requests from foreign origins due to @url=https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS@CORS@/url@. If you host the server in question, you should modify its backend to allow requests from foreign origins by adding the @Access-Control-Allow-Origin: *@ HTTP header.\nnewtype HTTPClient = HTTPClient Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass HTTPClient where\n        type BaseClass HTTPClient = Reference\n        super = coerce\n\n-- | A node with the ability to send HTTP(S) requests.\n--   A node with the ability to send HTTP requests. Uses @HTTPClient@ internally.\n--   \t\tCan be used to make HTTP requests, i.e. download or upload files or web content via HTTP.\n--   \t\t__Example of contacting a REST API and printing one of its returned fields:__\n--   \t\t\n--   @\n--   \n--   \t\tfunc _ready():\n--   \t\t    # Create an HTTP request node and connect its completion signal.\n--   \t\t    var http_request = HTTPRequest.new()\n--   \t\t    add_child(http_request)\n--   \t\t    http_request.connect(\"request_completed\", self, \"_http_request_completed\")\n--   \n--   \t\t    # Perform a GET request. The URL below returns JSON as of writing.\n--   \t\t    var error = http_request.request(\"https://httpbin.org/get\")\n--   \t\t    if error != OK:\n--   \t\t        push_error(\"An error occurred in the HTTP request.\")\n--   \n--   \t\t    # Perform a POST request. The URL below returns JSON as of writing.\n--   \t\t    # Note: Don't make simultaneous requests using a single HTTPRequest node.\n--   \t\t    # The snippet below is provided for reference only.\n--   \t\t    var body = {\"name\": \"Godette\"}\n--   \t\t    var error = http_request.request(\"https://httpbin.org/post\", @@, true, HTTPClient.METHOD_POST, body)\n--   \t\t    if error != OK:\n--   \t\t        push_error(\"An error occurred in the HTTP request.\")\n--   \n--   \n--   \t\t# Called when the HTTP request is completed.\n--   \t\tfunc _http_request_completed(result, response_code, headers, body):\n--   \t\t    var response = parse_json(body.get_string_from_utf8())\n--   \n--   \t\t    # Will print the user agent string used by the HTTPRequest node (as recognized by httpbin.org).\n--   \t\t    print(response.headers@\"User-Agent\"@)\n--   \t\t\n--   @\n--   \n--   \t\t__Example of loading and displaying an image using HTTPRequest:__\n--   \t\t\n--   @\n--   \n--   \t\tfunc _ready():\n--   \t\t    # Create an HTTP request node and connect its completion signal.\n--   \t\t    var http_request = HTTPRequest.new()\n--   \t\t    add_child(http_request)\n--   \t\t    http_request.connect(\"request_completed\", self, \"_http_request_completed\")\n--   \n--   \t\t    # Perform the HTTP request. The URL below returns a PNG image as of writing.\n--   \t\t    var error = http_request.request(\"https://via.placeholder.com/512\")\n--   \t\t    if error != OK:\n--   \t\t        push_error(\"An error occurred in the HTTP request.\")\n--   \n--   \n--   \t\t# Called when the HTTP request is completed.\n--   \t\tfunc _http_request_completed(result, response_code, headers, body):\n--   \t\t    var image = Image.new()\n--   \t\t    var error = image.load_png_from_buffer(body)\n--   \t\t    if error != OK:\n--   \t\t        push_error(\"Couldn't load the image.\")\n--   \n--   \t\t    var texture = ImageTexture.new()\n--   \t\t    texture.create_from_image(image)\n--   \n--   \t\t    # Display the image in a TextureRect node.\n--   \t\t    var texture_rect = TextureRect.new()\n--   \t\t    add_child(texture_rect)\n--   \t\t    texture_rect.texture = texture\n--   \t\t\n--   @\n--   \n--   \t\t__Note:__ When performing HTTP requests from a project exported to HTML5, keep in mind the remote server may not allow requests from foreign origins due to @url=https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS@CORS@/url@. If you host the server in question, you should modify its backend to allow requests from foreign origins by adding the @Access-Control-Allow-Origin: *@ HTTP header.\nnewtype HTTPRequest = HTTPRequest Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass HTTPRequest where\n        type BaseClass HTTPRequest = Node\n        super = coerce\n\n-- | Context to compute cryptographic hashes over multiple iterations.\n--   The HashingContext class provides an interface for computing cryptographic hashes over multiple iterations. This is useful for example when computing hashes of big files (so you don't have to load them all in memory), network streams, and data streams in general (so you don't have to hold buffers).\n--   \t\tThe @enum HashType@ enum shows the supported hashing algorithms.\n--   \t\t\n--   @\n--   \n--   \t\tconst CHUNK_SIZE = 1024\n--   \n--   \t\tfunc hash_file(path):\n--   \t\t    var ctx = HashingContext.new()\n--   \t\t    var file = File.new()\n--   \t\t    # Start a SHA-256 context.\n--   \t\t    ctx.start(HashingContext.HASH_SHA256)\n--   \t\t    # Check that file exists.\n--   \t\t    if not file.file_exists(path):\n--   \t\t        return\n--   \t\t    # Open the file to hash.\n--   \t\t    file.open(path, File.READ)\n--   \t\t    # Update the context after reading each chunk.\n--   \t\t    while not file.eof_reached():\n--   \t\t        ctx.update(file.get_buffer(CHUNK_SIZE))\n--   \t\t    # Get the computed hash.\n--   \t\t    var res = ctx.finish()\n--   \t\t    # Print the result as hex string and array.\n--   \t\t    printt(res.hex_encode(), Array(res))\n--   \t\t\n--   @\n--   \n--   \t\t__Note:__ Not available in HTML5 exports.\nnewtype HashingContext = HashingContext Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass HashingContext where\n        type BaseClass HashingContext = Reference\n        super = coerce\n\n-- | Height map shape for 3D physics (Bullet only).\n--   Height map shape resource, which can be added to a @PhysicsBody@ or @Area@.\nnewtype HeightMapShape = HeightMapShape Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass HeightMapShape where\n        type BaseClass HeightMapShape = Shape\n        super = coerce\n\n-- | A hinge between two 3D bodies.\n--   A HingeJoint normally uses the Z axis of body A as the hinge axis, another axis can be specified when adding it manually though.\nnewtype HingeJoint = HingeJoint Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass HingeJoint where\n        type BaseClass HingeJoint = Joint\n        super = coerce\n\n-- | Internet protocol (IP) support functions such as DNS resolution.\n--   IP contains support functions for the Internet Protocol (IP). TCP/IP support is in different classes (see @StreamPeerTCP@ and @TCP_Server@). IP provides DNS hostname resolution support, both blocking and threaded.\nnewtype IP = IP Object\n               deriving newtype AsVariant\n\ninstance HasBaseClass IP where\n        type BaseClass IP = Object\n        super = coerce\n\nnewtype IP_Unix = IP_Unix Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass IP_Unix where\n        type BaseClass IP_Unix = IP\n        super = coerce\n\n-- | Image datatype.\n--   Native image datatype. Contains image data, which can be converted to a @Texture@, and several functions to interact with it. The maximum width and height for an @Image@ are @MAX_WIDTH@ and @MAX_HEIGHT@.\n--   \t\t__Note:__ The maximum image size is 16384×16384 pixels due to graphics hardware limitations. Larger images will fail to import.\nnewtype Image = Image Object\n                  deriving newtype AsVariant\n\ninstance HasBaseClass Image where\n        type BaseClass Image = Resource\n        super = coerce\n\n-- | A @Texture@ based on an @Image@.\n--    Can be created from an @Image@ with @method create_from_image@.\n--   \t\t__Note:__ The maximum image size is 16384×16384 pixels due to graphics hardware limitations. Larger images will fail to import.\nnewtype ImageTexture = ImageTexture Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass ImageTexture where\n        type BaseClass ImageTexture = Texture\n        super = coerce\n\n-- | Draws simple geometry from code.\n--    Uses a drawing mode similar to OpenGL 1.x.\n--   \t\tSee also @ArrayMesh@, @MeshDataTool@ and @SurfaceTool@ for procedural geometry generation.\n--   \t\t__Note:__ ImmediateGeometry3D is best suited to small amounts of mesh data that change every frame. It will be slow when handling large amounts of mesh data. If mesh data doesn't change often, use @ArrayMesh@, @MeshDataTool@ or @SurfaceTool@ instead.\n--   \t\t__Note:__ Godot uses clockwise @url=https://learnopengl.com/Advanced-OpenGL/Face-culling@winding order@/url@ for front faces of triangle primitive modes.\nnewtype ImmediateGeometry = ImmediateGeometry Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass ImmediateGeometry where\n        type BaseClass ImmediateGeometry = GeometryInstance\n        super = coerce\n\n-- | A singleton that deals with inputs.\n--    This includes key presses, mouse buttons and movement, joypads, and input actions. Actions and their events can be set in the __Input Map__ tab in the __Project > Project Settings__, or with the @InputMap@ class.\nnewtype Input = Input Object\n                  deriving newtype AsVariant\n\ninstance HasBaseClass Input where\n        type BaseClass Input = Object\n        super = coerce\n\nnewtype InputDefault = InputDefault Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass InputDefault where\n        type BaseClass InputDefault = Input\n        super = coerce\n\n-- | Generic input event.\n--   Base class of all sort of input event. See @method Node._input@.\nnewtype InputEvent = InputEvent Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass InputEvent where\n        type BaseClass InputEvent = Resource\n        super = coerce\n\n-- | Input event type for actions.\n--   Contains a generic action which can be targeted from several types of inputs. Actions can be created from the __Input Map__ tab in the __Project > Project Settings__ menu. See @method Node._input@.\nnewtype InputEventAction = InputEventAction Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass InputEventAction where\n        type BaseClass InputEventAction = InputEvent\n        super = coerce\n\n-- | Base class for touch control gestures.\nnewtype InputEventGesture = InputEventGesture Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass InputEventGesture where\n        type BaseClass InputEventGesture = InputEventWithModifiers\n        super = coerce\n\n-- | Input event for gamepad buttons.\n--   Input event type for gamepad buttons. For gamepad analog sticks and joysticks, see @InputEventJoypadMotion@.\nnewtype InputEventJoypadButton = InputEventJoypadButton Object\n                                   deriving newtype AsVariant\n\ninstance HasBaseClass InputEventJoypadButton where\n        type BaseClass InputEventJoypadButton = InputEvent\n        super = coerce\n\n-- | Input event type for gamepad joysticks and other motions. For buttons, see @InputEventJoypadButton@.\n--   Stores information about joystick motions. One @InputEventJoypadMotion@ represents one axis at a time.\nnewtype InputEventJoypadMotion = InputEventJoypadMotion Object\n                                   deriving newtype AsVariant\n\ninstance HasBaseClass InputEventJoypadMotion where\n        type BaseClass InputEventJoypadMotion = InputEvent\n        super = coerce\n\n-- | Input event type for keyboard events.\n--   Stores key presses on the keyboard. Supports key presses, key releases and @echo@ events.\nnewtype InputEventKey = InputEventKey Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass InputEventKey where\n        type BaseClass InputEventKey = InputEventWithModifiers\n        super = coerce\n\nnewtype InputEventMIDI = InputEventMIDI Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass InputEventMIDI where\n        type BaseClass InputEventMIDI = InputEvent\n        super = coerce\n\nnewtype InputEventMagnifyGesture = InputEventMagnifyGesture Object\n                                     deriving newtype AsVariant\n\ninstance HasBaseClass InputEventMagnifyGesture where\n        type BaseClass InputEventMagnifyGesture = InputEventGesture\n        super = coerce\n\n-- | Base input event type for mouse events.\n--   Stores general mouse events information.\nnewtype InputEventMouse = InputEventMouse Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass InputEventMouse where\n        type BaseClass InputEventMouse = InputEventWithModifiers\n        super = coerce\n\n-- | Input event type for mouse button events.\n--   Contains mouse click information. See @method Node._input@.\nnewtype InputEventMouseButton = InputEventMouseButton Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass InputEventMouseButton where\n        type BaseClass InputEventMouseButton = InputEventMouse\n        super = coerce\n\n-- | Input event type for mouse motion events.\n--   Contains mouse and pen motion information. Supports relative, absolute positions and speed. See @method Node._input@.\n--   \t\t__Note:__ By default, this event is only emitted once per frame rendered at most. If you need more precise input reporting, call @method Input.set_use_accumulated_input@ with @false@ to make events emitted as often as possible. If you use InputEventMouseMotion to draw lines, consider implementing @url=https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm@Bresenham's line algorithm@/url@ as well to avoid visible gaps in lines if the user is moving the mouse quickly.\nnewtype InputEventMouseMotion = InputEventMouseMotion Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass InputEventMouseMotion where\n        type BaseClass InputEventMouseMotion = InputEventMouse\n        super = coerce\n\nnewtype InputEventPanGesture = InputEventPanGesture Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass InputEventPanGesture where\n        type BaseClass InputEventPanGesture = InputEventGesture\n        super = coerce\n\n-- | Input event type for screen drag events. Only available on mobile devices.\n--   Contains screen drag information. See @method Node._input@.\nnewtype InputEventScreenDrag = InputEventScreenDrag Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass InputEventScreenDrag where\n        type BaseClass InputEventScreenDrag = InputEvent\n        super = coerce\n\n-- | Input event type for screen touch events.\n--   \t\t(only available on mobile devices)\n--   Stores multi-touch press/release information. Supports touch press, touch release and @index@ for multi-touch count and order.\nnewtype InputEventScreenTouch = InputEventScreenTouch Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass InputEventScreenTouch where\n        type BaseClass InputEventScreenTouch = InputEvent\n        super = coerce\n\n-- | Base class for keys events with modifiers.\n--   Contains keys events information with modifiers support like @Shift@ or @Alt@. See @method Node._input@.\nnewtype InputEventWithModifiers = InputEventWithModifiers Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass InputEventWithModifiers where\n        type BaseClass InputEventWithModifiers = InputEvent\n        super = coerce\n\n-- | Singleton that manages @InputEventAction@.\n--   Manages all @InputEventAction@ which can be created/modified from the project settings menu __Project > Project Settings > Input Map__ or in code with @method add_action@ and @method action_add_event@. See @method Node._input@.\nnewtype InputMap = InputMap Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass InputMap where\n        type BaseClass InputMap = Object\n        super = coerce\n\n-- | Placeholder for the root @Node@ of a @PackedScene@.\n--   Turning on the option __Load As Placeholder__ for an instanced scene in the editor causes it to be replaced by an InstancePlaceholder when running the game. This makes it possible to delay actually loading the scene until calling @method replace_by_instance@. This is useful to avoid loading large scenes all at once by loading parts of it selectively.\n--   \t\tThe InstancePlaceholder does not have a transform. This causes any child nodes to be positioned relatively to the Viewport from point (0,0), rather than their parent as displayed in the editor. Replacing the placeholder with a scene with a transform will transform children relatively to their parent again.\nnewtype InstancePlaceholder = InstancePlaceholder Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass InstancePlaceholder where\n        type BaseClass InstancePlaceholder = Node\n        super = coerce\n\n-- | @i@Deprecated.@/i@ Camera which moves toward another node.\n--   @i@Deprecated (will be removed in Godot 4.0).@/i@ InterpolatedCamera is a @Camera@ which smoothly moves to match a target node's position and rotation.\n--   \t\tIf it is not @enabled@ or does not have a valid target set, InterpolatedCamera acts like a normal Camera.\nnewtype InterpolatedCamera = InterpolatedCamera Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass InterpolatedCamera where\n        type BaseClass InterpolatedCamera = Camera\n        super = coerce\n\n-- | Control that provides a list of selectable items (and/or icons) in a single column, or optionally in multiple columns.\n--   This control provides a selectable list of items that may be in a single (or multiple columns) with option of text, icons, or both text and icon. Tooltips are supported and may be different for every item in the list.\n--   \t\tSelectable items in the list may be selected or deselected and multiple selection may be enabled. Selection with right mouse button may also be enabled to allow use of popup context menus. Items may also be \"activated\" by double-clicking them or by pressing Enter.\n--   \t\tItem text only supports single-line strings, newline characters (e.g. @\\n@) in the string won't produce a newline. Text wrapping is enabled in @ICON_MODE_TOP@ mode, but column's width is adjusted to fully fit its content by default. You need to set @fixed_column_width@ greater than zero to wrap the text.\nnewtype ItemList = ItemList Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass ItemList where\n        type BaseClass ItemList = Control\n        super = coerce\n\n-- | Data class wrapper for decoded JSON.\n--   Returned by @method JSON.parse@, @JSONParseResult@ contains the decoded JSON or error information if the JSON source wasn't successfully parsed. You can check if the JSON source was successfully parsed with @if json_result.error == OK@.\nnewtype JSONParseResult = JSONParseResult Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass JSONParseResult where\n        type BaseClass JSONParseResult = Reference\n        super = coerce\n\nnewtype JSONRPC = JSONRPC Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass JSONRPC where\n        type BaseClass JSONRPC = Object\n        super = coerce\n\nnewtype JavaClass = JavaClass Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass JavaClass where\n        type BaseClass JavaClass = Reference\n        super = coerce\n\nnewtype JavaClassWrapper = JavaClassWrapper Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass JavaClassWrapper where\n        type BaseClass JavaClassWrapper = Object\n        super = coerce\n\n-- | Singleton that connects the engine with the browser's JavaScript context in HTML5 export.\n--   The JavaScript singleton is implemented only in the HTML5 export. It's used to access the browser's JavaScript context. This allows interaction with embedding pages or calling third-party JavaScript APIs.\nnewtype JavaScript = JavaScript Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass JavaScript where\n        type BaseClass JavaScript = Object\n        super = coerce\n\n-- | Base class for all 3D joints.\n--   Joints are used to bind together two physics bodies. They have a solver priority and can define if the bodies of the two attached nodes should be able to collide with each other.\nnewtype Joint = Joint Object\n                  deriving newtype AsVariant\n\ninstance HasBaseClass Joint where\n        type BaseClass Joint = Spatial\n        super = coerce\n\n-- | Base node for all joint constraints in 2D physics.\n--    Joints take 2 bodies and apply a custom constraint.\nnewtype Joint2D = Joint2D Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass Joint2D where\n        type BaseClass Joint2D = Node2D\n        super = coerce\n\n-- | Kinematic body 3D node.\n--   Kinematic bodies are special types of bodies that are meant to be user-controlled. They are not affected by physics at all; to other types of bodies, such as a character or a rigid body, these are the same as a static body. However, they have two main uses:\n--   \t\t__Simulated motion:__ When these bodies are moved manually, either from code or from an @AnimationPlayer@ (with @AnimationPlayer.playback_process_mode@ set to \"physics\"), the physics will automatically compute an estimate of their linear and angular velocity. This makes them very useful for moving platforms or other AnimationPlayer-controlled objects (like a door, a bridge that opens, etc).\n--   \t\t__Kinematic characters:__ KinematicBody also has an API for moving objects (the @method move_and_collide@ and @method move_and_slide@ methods) while performing collision tests. This makes them really useful to implement characters that collide against a world, but that don't require advanced physics.\nnewtype KinematicBody = KinematicBody Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass KinematicBody where\n        type BaseClass KinematicBody = PhysicsBody\n        super = coerce\n\n-- | Kinematic body 2D node.\n--   Kinematic bodies are special types of bodies that are meant to be user-controlled. They are not affected by physics at all; to other types of bodies, such as a character or a rigid body, these are the same as a static body. However, they have two main uses:\n--   \t\t__Simulated motion:__ When these bodies are moved manually, either from code or from an @AnimationPlayer@ (with @AnimationPlayer.playback_process_mode@ set to \"physics\"), the physics will automatically compute an estimate of their linear and angular velocity. This makes them very useful for moving platforms or other AnimationPlayer-controlled objects (like a door, a bridge that opens, etc).\n--   \t\t__Kinematic characters:__ KinematicBody2D also has an API for moving objects (the @method move_and_collide@ and @method move_and_slide@ methods) while performing collision tests. This makes them really useful to implement characters that collide against a world, but that don't require advanced physics.\nnewtype KinematicBody2D = KinematicBody2D Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass KinematicBody2D where\n        type BaseClass KinematicBody2D = PhysicsBody2D\n        super = coerce\n\n-- | Collision data for @KinematicBody@ collisions.\n--   Contains collision data for @KinematicBody@ collisions. When a @KinematicBody@ is moved using @method KinematicBody.move_and_collide@, it stops if it detects a collision with another body. If a collision is detected, a KinematicCollision object is returned.\n--   \t\tThis object contains information about the collision, including the colliding object, the remaining motion, and the collision position. This information can be used to calculate a collision response.\nnewtype KinematicCollision = KinematicCollision Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass KinematicCollision where\n        type BaseClass KinematicCollision = Reference\n        super = coerce\n\n-- | Collision data for @KinematicBody2D@ collisions.\n--   Contains collision data for @KinematicBody2D@ collisions. When a @KinematicBody2D@ is moved using @method KinematicBody2D.move_and_collide@, it stops if it detects a collision with another body. If a collision is detected, a KinematicCollision2D object is returned.\n--   \t\tThis object contains information about the collision, including the colliding object, the remaining motion, and the collision position. This information can be used to calculate a collision response.\nnewtype KinematicCollision2D = KinematicCollision2D Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass KinematicCollision2D where\n        type BaseClass KinematicCollision2D = Reference\n        super = coerce\n\n-- | Displays plain text in a line or wrapped inside a rectangle. For formatted text, use @RichTextLabel@.\n--   Label displays plain text on the screen. It gives you control over the horizontal and vertical alignment, and can wrap the text inside the node's bounding rectangle. It doesn't support bold, italics or other formatting. For that, use @RichTextLabel@ instead.\n--   \t\t__Note:__ Contrarily to most other @Control@s, Label's @Control.mouse_filter@ defaults to @Control.MOUSE_FILTER_IGNORE@ (i.e. it doesn't react to mouse input events). This implies that a label won't display any configured @Control.hint_tooltip@, unless you change its mouse filter.\nnewtype Label = Label Object\n                  deriving newtype AsVariant\n\ninstance HasBaseClass Label where\n        type BaseClass Label = Control\n        super = coerce\n\n-- | A @Texture@ capable of storing many smaller textures with offsets.\n--   \n--   \t\tYou can dynamically add pieces (@Texture@s) to this @LargeTexture@ using different offsets.\nnewtype LargeTexture = LargeTexture Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass LargeTexture where\n        type BaseClass LargeTexture = Texture\n        super = coerce\n\n-- | Provides a base class for different kinds of light nodes.\n--   Light is the @i@abstract@/i@ base class for light nodes. As it can't be instanced, it shouldn't be used directly. Other types of light nodes inherit from it. Light contains the common variables and parameters used for lighting.\nnewtype Light = Light Object\n                  deriving newtype AsVariant\n\ninstance HasBaseClass Light where\n        type BaseClass Light = VisualInstance\n        super = coerce\n\n-- | Casts light in a 2D environment.\n--    Light is defined by a (usually grayscale) texture, a color, an energy value, a mode (see constants), and various other parameters (range and shadows-related).\n--   \t\t__Note:__ Light2D can also be used as a mask.\nnewtype Light2D = Light2D Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass Light2D where\n        type BaseClass Light2D = Node2D\n        super = coerce\n\n-- | Occludes light cast by a Light2D, casting shadows.\n--    The LightOccluder2D must be provided with an @OccluderPolygon2D@ in order for the shadow to be computed.\nnewtype LightOccluder2D = LightOccluder2D Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass LightOccluder2D where\n        type BaseClass LightOccluder2D = Node2D\n        super = coerce\n\n-- | A 2D line.\n--   A line through several points in 2D space.\n--   \t\t__Note:__ By default, Godot can only draw up to 4,096 polygon points at a time. To increase this limit, open the Project Settings and increase @ProjectSettings.rendering/limits/buffers/canvas_polygon_buffer_size_kb@ and @ProjectSettings.rendering/limits/buffers/canvas_polygon_index_buffer_size_kb@.\nnewtype Line2D = Line2D Object\n                   deriving newtype AsVariant\n\ninstance HasBaseClass Line2D where\n        type BaseClass Line2D = Node2D\n        super = coerce\n\n-- | Control that provides single-line string editing.\n--   LineEdit provides a single-line string editor, used for text fields.\n--   \t\tIt features many built-in shortcuts which will always be available (@Ctrl@ here maps to @Command@ on macOS):\n--   \t\t- Ctrl + C: Copy\n--   \t\t- Ctrl + X: Cut\n--   \t\t- Ctrl + V or Ctrl + Y: Paste/\"yank\"\n--   \t\t- Ctrl + Z: Undo\n--   \t\t- Ctrl + Shift + Z: Redo\n--   \t\t- Ctrl + U: Delete text from the cursor position to the beginning of the line\n--   \t\t- Ctrl + K: Delete text from the cursor position to the end of the line\n--   \t\t- Ctrl + A: Select all text\n--   \t\t- Up/Down arrow: Move the cursor to the beginning/end of the line\n--   \t\tOn macOS, some extra keyboard shortcuts are available:\n--   \t\t- Ctrl + F: Like the right arrow key, move the cursor one character right\n--   \t\t- Ctrl + B: Like the left arrow key, move the cursor one character left\n--   \t\t- Ctrl + P: Like the up arrow key, move the cursor to the previous line\n--   \t\t- Ctrl + N: Like the down arrow key, move the cursor to the next line\n--   \t\t- Ctrl + D: Like the Delete key, delete the character on the right side of cursor\n--   \t\t- Ctrl + H: Like the Backspace key, delete the character on the left side of the cursor\n--   \t\t- Command + Left arrow: Like the Home key, move the cursor to the beginning of the line\n--   \t\t- Command + Right arrow: Like the End key, move the cursor to the end of the line\nnewtype LineEdit = LineEdit Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass LineEdit where\n        type BaseClass LineEdit = Control\n        super = coerce\n\n-- | Line shape for 2D collisions.\n--    It works like a 2D plane and will not allow any physics body to go to the negative side. Not recommended for rigid bodies, and usually not recommended for static bodies either because it forces checks against it on every frame.\nnewtype LineShape2D = LineShape2D Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass LineShape2D where\n        type BaseClass LineShape2D = Shape2D\n        super = coerce\n\n-- | Simple button used to represent a link to some resource.\n--   This kind of button is primarily used when the interaction with the button causes a context change (like linking to a web page).\nnewtype LinkButton = LinkButton Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass LinkButton where\n        type BaseClass LinkButton = BaseButton\n        super = coerce\n\n-- | Overrides the location sounds are heard from.\n--   Once added to the scene tree and enabled using @method make_current@, this node will override the location sounds are heard from. This can be used to listen from a location different from the @Camera@.\n--   \t\t__Note:__ There is no 2D equivalent for this node yet.\nnewtype Listener = Listener Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass Listener where\n        type BaseClass Listener = Spatial\n        super = coerce\n\n-- | Abstract base class for the game's main loop.\n--   @MainLoop@ is the abstract base class for a Godot project's game loop. It is inherited by @SceneTree@, which is the default game loop implementation used in Godot projects, though it is also possible to write and use one's own @MainLoop@ subclass instead of the scene tree.\n--   \t\tUpon the application start, a @MainLoop@ implementation must be provided to the OS; otherwise, the application will exit. This happens automatically (and a @SceneTree@ is created) unless a main @Script@ is provided from the command line (with e.g. @godot -s my_loop.gd@, which should then be a @MainLoop@ implementation.\n--   \t\tHere is an example script implementing a simple @MainLoop@:\n--   \t\t\n--   @\n--   \n--   \t\textends MainLoop\n--   \n--   \t\tvar time_elapsed = 0\n--   \t\tvar keys_typed = @@\n--   \t\tvar quit = false\n--   \n--   \t\tfunc _initialize():\n--   \t\t    print(\"Initialized:\")\n--   \t\t    print(\"  Starting time: %s\" % str(time_elapsed))\n--   \n--   \t\tfunc _idle(delta):\n--   \t\t    time_elapsed += delta\n--   \t\t    # Return true to end the main loop.\n--   \t\t    return quit\n--   \n--   \t\tfunc _input_event(event):\n--   \t\t    # Record keys.\n--   \t\t    if event is InputEventKey and event.pressed and !event.echo:\n--   \t\t        keys_typed.append(OS.get_scancode_string(event.scancode))\n--   \t\t        # Quit on Escape press.\n--   \t\t        if event.scancode == KEY_ESCAPE:\n--   \t\t            quit = true\n--   \t\t    # Quit on any mouse click.\n--   \t\t    if event is InputEventMouseButton:\n--   \t\t        quit = true\n--   \n--   \t\tfunc _finalize():\n--   \t\t    print(\"Finalized:\")\n--   \t\t    print(\"  End time: %s\" % str(time_elapsed))\n--   \t\t    print(\"  Keys typed: %s\" % var2str(keys_typed))\n--   \t\t\n--   @\nnewtype MainLoop = MainLoop Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass MainLoop where\n        type BaseClass MainLoop = Object\n        super = coerce\n\n-- | Simple margin container.\n--   Adds a top, left, bottom, and right margin to all @Control@ nodes that are direct children of the container. To control the @MarginContainer@'s margin, use the @margin_*@ theme properties listed below.\n--   \t\t__Note:__ Be careful, @Control@ margin values are different than the constant margin values. If you want to change the custom margin values of the @MarginContainer@ by code, you should use the following examples:\n--   \t\t\n--   @\n--   \n--   \t\tvar margin_value = 100\n--   \t\tset(\"custom_constants/margin_top\", margin_value)\n--   \t\tset(\"custom_constants/margin_left\", margin_value)\n--   \t\tset(\"custom_constants/margin_bottom\", margin_value)\n--   \t\tset(\"custom_constants/margin_right\", margin_value)\n--   \t\t\n--   @\nnewtype MarginContainer = MarginContainer Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass MarginContainer where\n        type BaseClass MarginContainer = Container\n        super = coerce\n\n-- | Abstract base @Resource@ for coloring and shading geometry.\n--   Material is a base @Resource@ used for coloring and shading geometry. All materials inherit from it and almost all @VisualInstance@ derived nodes carry a Material. A few flags and parameters are shared between all material types and are configured here.\nnewtype Material = Material Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass Material where\n        type BaseClass Material = Resource\n        super = coerce\n\n-- | Special button that brings up a @PopupMenu@ when clicked.\n--   \n--   \t\tNew items can be created inside this @PopupMenu@ using @get_popup().add_item(\"My Item Name\")@. You can also create them directly from the editor. To do so, select the @MenuButton@ node, then in the toolbar at the top of the 2D editor, click __Items__ then click __Add__ in the popup. You will be able to give each items new properties.\nnewtype MenuButton = MenuButton Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass MenuButton where\n        type BaseClass MenuButton = Button\n        super = coerce\n\n-- | A @Resource@ that contains vertex array-based geometry.\n--   Mesh is a type of @Resource@ that contains vertex array-based geometry, divided in @i@surfaces@/i@. Each surface contains a completely separate array and a material used to draw it. Design wise, a mesh with multiple surfaces is preferred to a single surface, because objects created in 3D editing software commonly contain multiple materials.\nnewtype Mesh = Mesh Object\n                 deriving newtype AsVariant\n\ninstance HasBaseClass Mesh where\n        type BaseClass Mesh = Resource\n        super = coerce\n\n-- | Helper tool to access and edit @Mesh@ data.\n--   MeshDataTool provides access to individual vertices in a @Mesh@. It allows users to read and edit vertex data of meshes. It also creates an array of faces and edges.\n--   \t\tTo use MeshDataTool, load a mesh with @method create_from_surface@. When you are finished editing the data commit the data to a mesh with @method commit_to_surface@.\n--   \t\tBelow is an example of how MeshDataTool may be used.\n--   \t\t\n--   @\n--   \n--   \t\tvar mdt = MeshDataTool.new()\n--   \t\tmdt.create_from_surface(mesh, 0)\n--   \t\tfor i in range(mdt.get_vertex_count()):\n--   \t\t    var vertex = mdt.get_vertex(i)\n--   \t\t    ...\n--   \t\t    mdt.set_vertex(i, vertex)\n--   \t\tmesh.surface_remove(0)\n--   \t\tmdt.commit_to_surface(mesh)\n--   \t\t\n--   @\n--   \n--   \t\tSee also @ArrayMesh@, @ImmediateGeometry@ and @SurfaceTool@ for procedural geometry generation.\n--   \t\t__Note:__ Godot uses clockwise @url=https://learnopengl.com/Advanced-OpenGL/Face-culling@winding order@/url@ for front faces of triangle primitive modes.\nnewtype MeshDataTool = MeshDataTool Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass MeshDataTool where\n        type BaseClass MeshDataTool = Reference\n        super = coerce\n\n-- | Node that instances meshes into a scenario.\n--   MeshInstance is a node that takes a @Mesh@ resource and adds it to the current scenario by creating an instance of it. This is the class most often used to get 3D geometry rendered and can be used to instance a single @Mesh@ in many places. This allows to reuse geometry and save on resources. When a @Mesh@ has to be instanced more than thousands of times at close proximity, consider using a @MultiMesh@ in a @MultiMeshInstance@ instead.\nnewtype MeshInstance = MeshInstance Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass MeshInstance where\n        type BaseClass MeshInstance = GeometryInstance\n        super = coerce\n\n-- | Node used for displaying a @Mesh@ in 2D.\n--    Can be constructed from an existing @Sprite@ via a tool in the editor toolbar. Select \"Sprite\" then \"Convert to Mesh2D\", select settings in popup and press \"Create Mesh2D\".\nnewtype MeshInstance2D = MeshInstance2D Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass MeshInstance2D where\n        type BaseClass MeshInstance2D = Node2D\n        super = coerce\n\n-- | Library of meshes.\n--   A library of meshes. Contains a list of @Mesh@ resources, each with a name and ID. Each item can also include collision and navigation shapes. This resource is used in @GridMap@.\nnewtype MeshLibrary = MeshLibrary Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass MeshLibrary where\n        type BaseClass MeshLibrary = Resource\n        super = coerce\n\n-- | Simple texture that uses a mesh to draw itself.\n--    It's limited because flags can't be changed and region drawing is not supported.\nnewtype MeshTexture = MeshTexture Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass MeshTexture where\n        type BaseClass MeshTexture = Texture\n        super = coerce\n\nnewtype MobileVRInterface = MobileVRInterface Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass MobileVRInterface where\n        type BaseClass MobileVRInterface = ARVRInterface\n        super = coerce\n\n-- | Provides high-performance mesh instancing.\n--   MultiMesh provides low-level mesh instancing. Drawing thousands of @MeshInstance@ nodes can be slow, since each object is submitted to the GPU then drawn individually.\n--   \t\tMultiMesh is much faster as it can draw thousands of instances with a single draw call, resulting in less API overhead.\n--   \t\tAs a drawback, if the instances are too far away of each other, performance may be reduced as every single instance will always rendered (they are spatially indexed as one, for the whole object).\n--   \t\tSince instances may have any behavior, the AABB used for visibility must be provided by the user.\nnewtype MultiMesh = MultiMesh Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass MultiMesh where\n        type BaseClass MultiMesh = Resource\n        super = coerce\n\n-- | Node that instances a @MultiMesh@.\n--   @MultiMeshInstance@ is a specialized node to instance @GeometryInstance@s based on a @MultiMesh@ resource.\n--   \t\tThis is useful to optimize the rendering of a high amount of instances of a given mesh (for example trees in a forest or grass strands).\nnewtype MultiMeshInstance = MultiMeshInstance Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass MultiMeshInstance where\n        type BaseClass MultiMeshInstance = GeometryInstance\n        super = coerce\n\n-- | Node that instances a @MultiMesh@ in 2D.\n--   @MultiMeshInstance2D@ is a specialized node to instance a @MultiMesh@ resource in 2D.\n--   \t\tUsage is the same as @MultiMeshInstance@.\nnewtype MultiMeshInstance2D = MultiMeshInstance2D Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass MultiMeshInstance2D where\n        type BaseClass MultiMeshInstance2D = Node2D\n        super = coerce\n\n-- | High-level multiplayer API.\n--   This class implements most of the logic behind the high-level multiplayer API.\n--   \t\tBy default, @SceneTree@ has a reference to this class that is used to provide multiplayer capabilities (i.e. RPC/RSET) across the whole scene.\n--   \t\tIt is possible to override the MultiplayerAPI instance used by specific Nodes by setting the @Node.custom_multiplayer@ property, effectively allowing to run both client and server in the same scene.\nnewtype MultiplayerAPI = MultiplayerAPI Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass MultiplayerAPI where\n        type BaseClass MultiplayerAPI = Reference\n        super = coerce\n\nnewtype MultiplayerPeerGDNative = MultiplayerPeerGDNative Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass MultiplayerPeerGDNative where\n        type BaseClass MultiplayerPeerGDNative = NetworkedMultiplayerPeer\n        super = coerce\n\nnewtype NativeScript = NativeScript Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass NativeScript where\n        type BaseClass NativeScript = Script\n        super = coerce\n\n-- | Mesh-based navigation and pathfinding node.\n--   Provides navigation and pathfinding within a collection of @NavigationMesh@es. By default, these will be automatically collected from child @NavigationMeshInstance@ nodes, but they can also be added on the fly with @method navmesh_add@. In addition to basic pathfinding, this class also assists with aligning navigation agents with the meshes they are navigating on.\nnewtype Navigation = Navigation Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass Navigation where\n        type BaseClass Navigation = Spatial\n        super = coerce\n\n-- | 2D navigation and pathfinding node.\n--   Navigation2D provides navigation and pathfinding within a 2D area, specified as a collection of @NavigationPolygon@ resources. By default, these are automatically collected from child @NavigationPolygonInstance@ nodes, but they can also be added on the fly with @method navpoly_add@.\nnewtype Navigation2D = Navigation2D Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass Navigation2D where\n        type BaseClass Navigation2D = Node2D\n        super = coerce\n\nnewtype NavigationMesh = NavigationMesh Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass NavigationMesh where\n        type BaseClass NavigationMesh = Resource\n        super = coerce\n\nnewtype NavigationMeshInstance = NavigationMeshInstance Object\n                                   deriving newtype AsVariant\n\ninstance HasBaseClass NavigationMeshInstance where\n        type BaseClass NavigationMeshInstance = Spatial\n        super = coerce\n\n-- | A node that has methods to draw outlines or use indices of vertices to create navigation polygons.\n--   There are two ways to create polygons. Either by using the @method add_outline@ method, or using the @method add_polygon@ method.\n--   \t\tUsing @method add_outline@:\n--   \t\t\n--   @\n--   \n--   \t\tvar polygon = NavigationPolygon.new()\n--   \t\tvar outline = PoolVector2Array(@Vector2(0, 0), Vector2(0, 50), Vector2(50, 50), Vector2(50, 0)@)\n--   \t\tpolygon.add_outline(outline)\n--   \t\tpolygon.make_polygons_from_outlines()\n--   \t\t$NavigationPolygonInstance.navpoly = polygon\n--   \t\t\n--   @\n--   \n--   \t\tUsing @method add_polygon@ and indices of the vertices array.\n--   \t\t\n--   @\n--   \n--   \t\tvar polygon = NavigationPolygon.new()\n--   \t\tvar vertices = PoolVector2Array(@Vector2(0, 0), Vector2(0, 50), Vector2(50, 50), Vector2(50, 0)@)\n--   \t\tpolygon.set_vertices(vertices)\n--   \t\tvar indices = PoolIntArray(0, 3, 1)\n--   \t\tpolygon.add_polygon(indices)\n--   \t\t$NavigationPolygonInstance.navpoly = polygon\n--   \t\t\n--   @\nnewtype NavigationPolygon = NavigationPolygon Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass NavigationPolygon where\n        type BaseClass NavigationPolygon = Resource\n        super = coerce\n\nnewtype NavigationPolygonInstance = NavigationPolygonInstance Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass NavigationPolygonInstance where\n        type BaseClass NavigationPolygonInstance = Node2D\n        super = coerce\n\nnewtype NetworkedMultiplayerENet = NetworkedMultiplayerENet Object\n                                     deriving newtype AsVariant\n\ninstance HasBaseClass NetworkedMultiplayerENet where\n        type BaseClass NetworkedMultiplayerENet = NetworkedMultiplayerPeer\n        super = coerce\n\n-- | A high-level network interface to simplify multiplayer interactions.\n--   Manages the connection to network peers. Assigns unique IDs to each client connected to the server.\nnewtype NetworkedMultiplayerPeer = NetworkedMultiplayerPeer Object\n                                     deriving newtype AsVariant\n\ninstance HasBaseClass NetworkedMultiplayerPeer where\n        type BaseClass NetworkedMultiplayerPeer = PacketPeer\n        super = coerce\n\n-- | Scalable texture-based frame that tiles the texture's centers and sides, but keeps the corners' original size. Perfect for panels and dialog boxes.\n--   Also known as 9-slice panels, NinePatchRect produces clean panels of any size, based on a small texture. To do so, it splits the texture in a 3×3 grid. When you scale the node, it tiles the texture's sides horizontally or vertically, the center on both axes but it doesn't scale or tile the corners.\nnewtype NinePatchRect = NinePatchRect Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass NinePatchRect where\n        type BaseClass NinePatchRect = Control\n        super = coerce\n\n-- | Base class for all @i@scene@/i@ objects.\n--   Nodes are Godot's building blocks. They can be assigned as the child of another node, resulting in a tree arrangement. A given node can contain any number of nodes as children with the requirement that all siblings (direct children of a node) should have unique names.\n--   \t\tA tree of nodes is called a @i@scene@/i@. Scenes can be saved to the disk and then instanced into other scenes. This allows for very high flexibility in the architecture and data model of Godot projects.\n--   \t\t__Scene tree:__ The @SceneTree@ contains the active tree of nodes. When a node is added to the scene tree, it receives the @NOTIFICATION_ENTER_TREE@ notification and its @method _enter_tree@ callback is triggered. Child nodes are always added @i@after@/i@ their parent node, i.e. the @method _enter_tree@ callback of a parent node will be triggered before its child's.\n--   \t\tOnce all nodes have been added in the scene tree, they receive the @NOTIFICATION_READY@ notification and their respective @method _ready@ callbacks are triggered. For groups of nodes, the @method _ready@ callback is called in reverse order, starting with the children and moving up to the parent nodes.\n--   \t\tThis means that when adding a node to the scene tree, the following order will be used for the callbacks: @method _enter_tree@ of the parent, @method _enter_tree@ of the children, @method _ready@ of the children and finally @method _ready@ of the parent (recursively for the entire scene tree).\n--   \t\t__Processing:__ Nodes can override the \"process\" state, so that they receive a callback on each frame requesting them to process (do something). Normal processing (callback @method _process@, toggled with @method set_process@) happens as fast as possible and is dependent on the frame rate, so the processing time @i@delta@/i@ is passed as an argument. Physics processing (callback @method _physics_process@, toggled with @method set_physics_process@) happens a fixed number of times per second (60 by default) and is useful for code related to the physics engine.\n--   \t\tNodes can also process input events. When present, the @method _input@ function will be called for each input that the program receives. In many cases, this can be overkill (unless used for simple projects), and the @method _unhandled_input@ function might be preferred; it is called when the input event was not handled by anyone else (typically, GUI @Control@ nodes), ensuring that the node only receives the events that were meant for it.\n--   \t\tTo keep track of the scene hierarchy (especially when instancing scenes into other scenes), an \"owner\" can be set for the node with the @owner@ property. This keeps track of who instanced what. This is mostly useful when writing editors and tools, though.\n--   \t\tFinally, when a node is freed with @method Object.free@ or @method queue_free@, it will also free all its children.\n--   \t\t__Groups:__ Nodes can be added to as many groups as you want to be easy to manage, you could create groups like \"enemies\" or \"collectables\" for example, depending on your game. See @method add_to_group@, @method is_in_group@ and @method remove_from_group@. You can then retrieve all nodes in these groups, iterate them and even call methods on groups via the methods on @SceneTree@.\n--   \t\t__Networking with nodes:__ After connecting to a server (or making one, see @NetworkedMultiplayerENet@), it is possible to use the built-in RPC (remote procedure call) system to communicate over the network. By calling @method rpc@ with a method name, it will be called locally and in all connected peers (peers = clients and the server that accepts connections). To identify which node receives the RPC call, Godot will use its @NodePath@ (make sure node names are the same on all peers). Also, take a look at the high-level networking tutorial and corresponding demos.\nnewtype Node = Node Object\n                 deriving newtype AsVariant\n\ninstance HasBaseClass Node where\n        type BaseClass Node = Object\n        super = coerce\n\n-- | A 2D game object, inherited by all 2D-related nodes. Has a position, rotation, scale, and Z index.\n--   A 2D game object, with a transform (position, rotation, and scale). All 2D nodes, including physics objects and sprites, inherit from Node2D. Use Node2D as a parent node to move, scale and rotate children in a 2D project. Also gives control of the node's render order.\nnewtype Node2D = Node2D Object\n                   deriving newtype AsVariant\n\ninstance HasBaseClass Node2D where\n        type BaseClass Node2D = CanvasItem\n        super = coerce\n\nnewtype NoiseTexture = NoiseTexture Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass NoiseTexture where\n        type BaseClass NoiseTexture = Texture\n        super = coerce\n\n-- | Defines a 2D polygon for LightOccluder2D.\n--   Editor facility that helps you draw a 2D polygon used as resource for @LightOccluder2D@.\nnewtype OccluderPolygon2D = OccluderPolygon2D Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass OccluderPolygon2D where\n        type BaseClass OccluderPolygon2D = Resource\n        super = coerce\n\n-- | Omnidirectional light, such as a light bulb or a candle.\n--   An Omnidirectional light is a type of @Light@ that emits light in all directions. The light is attenuated by distance and this attenuation can be configured by changing its energy, radius, and attenuation parameters.\nnewtype OmniLight = OmniLight Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass OmniLight where\n        type BaseClass OmniLight = Light\n        super = coerce\n\nnewtype OpenSimplexNoise = OpenSimplexNoise Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass OpenSimplexNoise where\n        type BaseClass OpenSimplexNoise = Resource\n        super = coerce\n\n-- | Button control that provides selectable options when pressed.\n--   OptionButton is a type button that provides a selectable list of items when pressed. The item selected becomes the \"current\" item and is displayed as the button text.\nnewtype OptionButton = OptionButton Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass OptionButton where\n        type BaseClass OptionButton = Button\n        super = coerce\n\n-- | Creates packages that can be loaded into a running project.\n--   The @PCKPacker@ is used to create packages that can be loaded into a running project using @method ProjectSettings.load_resource_pack@.\n--   \t\t\n--   @\n--   \n--   \t\tvar packer = PCKPacker.new()\n--   \t\tpacker.pck_start(\"test.pck\")\n--   \t\tpacker.add_file(\"res://text.txt\", \"text.txt\")\n--   \t\tpacker.flush()\n--   \t\t\n--   @\n--   \n--   \t\tThe above @PCKPacker@ creates package @test.pck@, then adds a file named @text.txt@ at the root of the package.\nnewtype PCKPacker = PCKPacker Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass PCKPacker where\n        type BaseClass PCKPacker = Reference\n        super = coerce\n\n-- | Optimized translation.\n--    Uses real-time compressed translations, which results in very small dictionaries.\nnewtype PHashTranslation = PHashTranslation Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass PHashTranslation where\n        type BaseClass PHashTranslation = Translation\n        super = coerce\n\nnewtype PackedDataContainer = PackedDataContainer Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass PackedDataContainer where\n        type BaseClass PackedDataContainer = Resource\n        super = coerce\n\n-- | Reference version of @PackedDataContainer@.\nnewtype PackedDataContainerRef = PackedDataContainerRef Object\n                                   deriving newtype AsVariant\n\ninstance HasBaseClass PackedDataContainerRef where\n        type BaseClass PackedDataContainerRef = Reference\n        super = coerce\n\n-- | An abstraction of a serialized scene.\n--   A simplified interface to a scene file. Provides access to operations and checks that can be performed on the scene resource itself.\n--   \t\tCan be used to save a node to a file. When saving, the node as well as all the node it owns get saved (see @owner@ property on @Node@).\n--   \t\t__Note:__ The node doesn't need to own itself.\n--   \t\t__Example of loading a saved scene:__\n--   \t\t\n--   @\n--   \n--   \t\t# Use `load()` instead of `preload()` if the path isn't known at compile-time.\n--   \t\tvar scene = preload(\"res://scene.tscn\").instance()\n--   \t\t# Add the node as a child of the node the script is attached to.\n--   \t\tadd_child(scene)\n--   \t\t\n--   @\n--   \n--   \t\t__Example of saving a node with different owners:__ The following example creates 3 objects: @Node2D@ (@node@), @RigidBody2D@ (@rigid@) and @CollisionObject2D@ (@collision@). @collision@ is a child of @rigid@ which is a child of @node@. Only @rigid@ is owned by @node@ and @pack@ will therefore only save those two nodes, but not @collision@.\n--   \t\t\n--   @\n--   \n--   \t\t# Create the objects.\n--   \t\tvar node = Node2D.new()\n--   \t\tvar rigid = RigidBody2D.new()\n--   \t\tvar collision = CollisionShape2D.new()\n--   \n--   \t\t# Create the object hierarchy.\n--   \t\trigid.add_child(collision)\n--   \t\tnode.add_child(rigid)\n--   \n--   \t\t# Change owner of `rigid`, but not of `collision`.\n--   \t\trigid.owner = node\n--   \n--   \t\tvar scene = PackedScene.new()\n--   \t\t# Only `node` and `rigid` are now packed.\n--   \t\tvar result = scene.pack(node)\n--   \t\tif result == OK:\n--   \t\t    var error = ResourceSaver.save(\"res://path/name.scn\", scene)  # Or \"user://...\"\n--   \t\t    if error != OK:\n--   \t\t        push_error(\"An error occurred while saving the scene to disk.\")\n--   \t\t\n--   @\nnewtype PackedScene = PackedScene Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass PackedScene where\n        type BaseClass PackedScene = Resource\n        super = coerce\n\n-- | Abstraction and base class for packet-based protocols.\n--   PacketPeer is an abstraction and base class for packet-based protocols (such as UDP). It provides an API for sending and receiving packets both as raw data or variables. This makes it easy to transfer data over a protocol, without having to encode data as low-level bytes or having to worry about network ordering.\nnewtype PacketPeer = PacketPeer Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass PacketPeer where\n        type BaseClass PacketPeer = Reference\n        super = coerce\n\nnewtype PacketPeerGDNative = PacketPeerGDNative Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass PacketPeerGDNative where\n        type BaseClass PacketPeerGDNative = PacketPeer\n        super = coerce\n\n-- | Wrapper to use a PacketPeer over a StreamPeer.\n--   PacketStreamPeer provides a wrapper for working using packets over a stream. This allows for using packet based code with StreamPeers. PacketPeerStream implements a custom protocol over the StreamPeer, so the user should not read or write to the wrapped StreamPeer directly.\nnewtype PacketPeerStream = PacketPeerStream Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass PacketPeerStream where\n        type BaseClass PacketPeerStream = PacketPeer\n        super = coerce\n\n-- | UDP packet peer.\n--    Can be used to send raw UDP packets as well as @Variant@s.\nnewtype PacketPeerUDP = PacketPeerUDP Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass PacketPeerUDP where\n        type BaseClass PacketPeerUDP = PacketPeer\n        super = coerce\n\n-- | Provides an opaque background for @Control@ children.\n--   Panel is a @Control@ that displays an opaque background. It's commonly used as a parent and container for other types of @Control@ nodes.\nnewtype Panel = Panel Object\n                  deriving newtype AsVariant\n\ninstance HasBaseClass Panel where\n        type BaseClass Panel = Control\n        super = coerce\n\n-- | Panel container type.\n--    This container fits controls inside of the delimited area of a stylebox. It's useful for giving controls an outline.\nnewtype PanelContainer = PanelContainer Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass PanelContainer where\n        type BaseClass PanelContainer = Container\n        super = coerce\n\n-- | A type of @Sky@ used to draw a background texture.\n--   A resource referenced in an @Environment@ that is used to draw a background. The Panorama sky functions similar to skyboxes in other engines, except it uses an equirectangular sky map instead of a cube map.\n--   \t\tUsing an HDR panorama is strongly recommended for accurate, high-quality reflections. Godot supports the Radiance HDR (@.hdr@) and OpenEXR (@.exr@) image formats for this purpose.\n--   \t\tYou can use @url=https://danilw.github.io/GLSL-howto/cubemap_to_panorama_js/cubemap_to_panorama.html@this tool@/url@ to convert a cube map to an equirectangular sky map.\nnewtype PanoramaSky = PanoramaSky Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass PanoramaSky where\n        type BaseClass PanoramaSky = Sky\n        super = coerce\n\n-- | A node used to create a parallax scrolling background.\n--   A ParallaxBackground uses one or more @ParallaxLayer@ child nodes to create a parallax effect. Each @ParallaxLayer@ can move at a different speed using @ParallaxLayer.motion_offset@. This creates an illusion of depth in a 2D game. If not used with a @Camera2D@, you must manually calculate the @scroll_offset@.\nnewtype ParallaxBackground = ParallaxBackground Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass ParallaxBackground where\n        type BaseClass ParallaxBackground = CanvasLayer\n        super = coerce\n\n-- | A parallax scrolling layer to be used with @ParallaxBackground@.\n--   A ParallaxLayer must be the child of a @ParallaxBackground@ node. Each ParallaxLayer can be set to move at different speeds relative to the camera movement or the @ParallaxBackground.scroll_offset@ value.\n--   \t\tThis node's children will be affected by its scroll offset.\n--   \t\t__Note:__ Any changes to this node's position and scale made after it enters the scene will be ignored.\nnewtype ParallaxLayer = ParallaxLayer Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass ParallaxLayer where\n        type BaseClass ParallaxLayer = Node2D\n        super = coerce\n\n-- | 3D particle emitter.\n--   3D particle node used to create a variety of particle systems and effects. @Particles@ features an emitter that generates some number of particles at a given rate.\n--   \t\tUse the @process_material@ property to add a @ParticlesMaterial@ to configure particle appearance and behavior. Alternatively, you can add a @ShaderMaterial@ which will be applied to all particles.\nnewtype Particles = Particles Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass Particles where\n        type BaseClass Particles = GeometryInstance\n        super = coerce\n\n-- | 2D particle emitter.\n--   2D particle node used to create a variety of particle systems and effects. @Particles2D@ features an emitter that generates some number of particles at a given rate.\n--   \t\tUse the @process_material@ property to add a @ParticlesMaterial@ to configure particle appearance and behavior. Alternatively, you can add a @ShaderMaterial@ which will be applied to all particles.\nnewtype Particles2D = Particles2D Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass Particles2D where\n        type BaseClass Particles2D = Node2D\n        super = coerce\n\n-- | Particle properties for @Particles@ and @Particles2D@ nodes.\n--   ParticlesMaterial defines particle properties and behavior. It is used in the @process_material@ of @Particles@ and @Particles2D@ emitter nodes.\n--   \t\tSome of this material's properties are applied to each particle when emitted, while others can have a @CurveTexture@ applied to vary values over the lifetime of the particle.\n--   \t\tWhen a randomness ratio is applied to a property it is used to scale that property by a random amount. The random ratio is used to interpolate between @1.0@ and a random number less than one, the result is multiplied by the property to obtain the randomized property. For example a random ratio of @0.4@ would scale the original property between @0.4-1.0@ of its original value.\nnewtype ParticlesMaterial = ParticlesMaterial Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass ParticlesMaterial where\n        type BaseClass ParticlesMaterial = Material\n        super = coerce\n\n-- | Contains a @Curve3D@ path for @PathFollow@ nodes to follow.\n--   Can have @PathFollow@ child nodes moving along the @Curve3D@. See @PathFollow@ for more information on the usage.\n--   \t\tNote that the path is considered as relative to the moved nodes (children of @PathFollow@). As such, the curve should usually start with a zero vector @(0, 0, 0)@.\nnewtype Path = Path Object\n                 deriving newtype AsVariant\n\ninstance HasBaseClass Path where\n        type BaseClass Path = Spatial\n        super = coerce\n\n-- | Contains a @Curve2D@ path for @PathFollow2D@ nodes to follow.\n--   Can have @PathFollow2D@ child nodes moving along the @Curve2D@. See @PathFollow2D@ for more information on usage.\n--   \t\t__Note:__ The path is considered as relative to the moved nodes (children of @PathFollow2D@). As such, the curve should usually start with a zero vector (@(0, 0)@).\nnewtype Path2D = Path2D Object\n                   deriving newtype AsVariant\n\ninstance HasBaseClass Path2D where\n        type BaseClass Path2D = Node2D\n        super = coerce\n\n-- | Point sampler for a @Path@.\n--   This node takes its parent @Path@, and returns the coordinates of a point within it, given a distance from the first vertex.\n--   \t\tIt is useful for making other nodes follow a path, without coding the movement pattern. For that, the nodes must be children of this node. The descendant nodes will then move accordingly when setting an offset in this node.\nnewtype PathFollow = PathFollow Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass PathFollow where\n        type BaseClass PathFollow = Spatial\n        super = coerce\n\n-- | Point sampler for a @Path2D@.\n--   This node takes its parent @Path2D@, and returns the coordinates of a point within it, given a distance from the first vertex.\n--   \t\tIt is useful for making other nodes follow a path, without coding the movement pattern. For that, the nodes must be children of this node. The descendant nodes will then move accordingly when setting an offset in this node.\nnewtype PathFollow2D = PathFollow2D Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass PathFollow2D where\n        type BaseClass PathFollow2D = Node2D\n        super = coerce\n\n-- | Exposes performance-related data.\n--   This class provides access to a number of different monitors related to performance, such as memory usage, draw calls, and FPS. These are the same as the values displayed in the __Monitor__ tab in the editor's __Debugger__ panel. By using the @method get_monitor@ method of this class, you can access this data from your code.\n--   \t\t__Note:__ A few of these monitors are only available in debug mode and will always return 0 when used in a release build.\n--   \t\t__Note:__ Many of these monitors are not updated in real-time, so there may be a short delay between changes.\nnewtype Performance = Performance Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass Performance where\n        type BaseClass Performance = Object\n        super = coerce\n\nnewtype PhysicalBone = PhysicalBone Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass PhysicalBone where\n        type BaseClass PhysicalBone = PhysicsBody\n        super = coerce\n\n-- | Direct access object to a physics body in the @Physics2DServer@.\n--   Provides direct access to a physics body in the @Physics2DServer@, allowing safe changes to physics properties. This object is passed via the direct state callback of rigid/character bodies, and is intended for changing the direct state of that body. See @method RigidBody2D._integrate_forces@.\nnewtype Physics2DDirectBodyState = Physics2DDirectBodyState Object\n                                     deriving newtype AsVariant\n\ninstance HasBaseClass Physics2DDirectBodyState where\n        type BaseClass Physics2DDirectBodyState = Object\n        super = coerce\n\nnewtype Physics2DDirectBodyStateSW = Physics2DDirectBodyStateSW Object\n                                       deriving newtype AsVariant\n\ninstance HasBaseClass Physics2DDirectBodyStateSW where\n        type BaseClass Physics2DDirectBodyStateSW =\n             Physics2DDirectBodyState\n        super = coerce\n\n-- | Direct access object to a space in the @Physics2DServer@.\n--    It's used mainly to do queries against objects and areas residing in a given space.\nnewtype Physics2DDirectSpaceState = Physics2DDirectSpaceState Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass Physics2DDirectSpaceState where\n        type BaseClass Physics2DDirectSpaceState = Object\n        super = coerce\n\n-- | Server interface for low-level 2D physics access.\n--   Physics2DServer is the server responsible for all 2D physics. It can create many kinds of physics objects, but does not insert them on the node tree.\nnewtype Physics2DServer = Physics2DServer Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass Physics2DServer where\n        type BaseClass Physics2DServer = Object\n        super = coerce\n\nnewtype Physics2DServerSW = Physics2DServerSW Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass Physics2DServerSW where\n        type BaseClass Physics2DServerSW = Physics2DServer\n        super = coerce\n\n-- | Parameters to be sent to a 2D shape physics query.\n--   This class contains the shape and other parameters for 2D intersection/collision queries. See also @Physics2DShapeQueryResult@.\nnewtype Physics2DShapeQueryParameters = Physics2DShapeQueryParameters Object\n                                          deriving newtype AsVariant\n\ninstance HasBaseClass Physics2DShapeQueryParameters where\n        type BaseClass Physics2DShapeQueryParameters = Reference\n        super = coerce\n\n-- | Result of a 2D shape query in @Physics2DServer@.\n--   The result of a 2D shape query in @Physics2DServer@. See also @Physics2DShapeQueryParameters@.\nnewtype Physics2DShapeQueryResult = Physics2DShapeQueryResult Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass Physics2DShapeQueryResult where\n        type BaseClass Physics2DShapeQueryResult = Reference\n        super = coerce\n\nnewtype Physics2DTestMotionResult = Physics2DTestMotionResult Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass Physics2DTestMotionResult where\n        type BaseClass Physics2DTestMotionResult = Reference\n        super = coerce\n\n-- | Base class for all objects affected by physics in 3D space.\n--   PhysicsBody is an abstract base class for implementing a physics body. All *Body types inherit from it.\nnewtype PhysicsBody = PhysicsBody Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass PhysicsBody where\n        type BaseClass PhysicsBody = CollisionObject\n        super = coerce\n\n-- | Base class for all objects affected by physics in 2D space.\n--   PhysicsBody2D is an abstract base class for implementing a physics body. All *Body2D types inherit from it.\nnewtype PhysicsBody2D = PhysicsBody2D Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass PhysicsBody2D where\n        type BaseClass PhysicsBody2D = CollisionObject2D\n        super = coerce\n\n-- | Direct access object to a physics body in the @PhysicsServer@.\n--   Provides direct access to a physics body in the @PhysicsServer@, allowing safe changes to physics properties. This object is passed via the direct state callback of rigid/character bodies, and is intended for changing the direct state of that body. See @method RigidBody._integrate_forces@.\nnewtype PhysicsDirectBodyState = PhysicsDirectBodyState Object\n                                   deriving newtype AsVariant\n\ninstance HasBaseClass PhysicsDirectBodyState where\n        type BaseClass PhysicsDirectBodyState = Object\n        super = coerce\n\n-- | Direct access object to a space in the @PhysicsServer@.\n--    It's used mainly to do queries against objects and areas residing in a given space.\nnewtype PhysicsDirectSpaceState = PhysicsDirectSpaceState Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass PhysicsDirectSpaceState where\n        type BaseClass PhysicsDirectSpaceState = Object\n        super = coerce\n\n-- | A material for physics properties.\n--   Provides a means of modifying the collision properties of a @PhysicsBody@.\nnewtype PhysicsMaterial = PhysicsMaterial Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass PhysicsMaterial where\n        type BaseClass PhysicsMaterial = Resource\n        super = coerce\n\n-- | Server interface for low-level physics access.\n--   PhysicsServer is the server responsible for all 3D physics. It can create many kinds of physics objects, but does not insert them on the node tree.\nnewtype PhysicsServer = PhysicsServer Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass PhysicsServer where\n        type BaseClass PhysicsServer = Object\n        super = coerce\n\n-- | Parameters to be sent to a 3D shape physics query.\n--   This class contains the shape and other parameters for 3D intersection/collision queries. See also @PhysicsShapeQueryResult@.\nnewtype PhysicsShapeQueryParameters = PhysicsShapeQueryParameters Object\n                                        deriving newtype AsVariant\n\ninstance HasBaseClass PhysicsShapeQueryParameters where\n        type BaseClass PhysicsShapeQueryParameters = Reference\n        super = coerce\n\n-- | Result of a 3D shape query in @PhysicsServer@.\n--   The result of a 3D shape query in @PhysicsServer@. See also @PhysicsShapeQueryParameters@.\nnewtype PhysicsShapeQueryResult = PhysicsShapeQueryResult Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass PhysicsShapeQueryResult where\n        type BaseClass PhysicsShapeQueryResult = Reference\n        super = coerce\n\n-- | Pin joint for 3D shapes.\n--   Pin joint for 3D rigid bodies. It pins 2 bodies (rigid or static) together.\nnewtype PinJoint = PinJoint Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass PinJoint where\n        type BaseClass PinJoint = Joint\n        super = coerce\n\n-- | Pin Joint for 2D shapes.\n--   Pin Joint for 2D rigid bodies. It pins two bodies (rigid or static) together.\nnewtype PinJoint2D = PinJoint2D Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass PinJoint2D where\n        type BaseClass PinJoint2D = Joint2D\n        super = coerce\n\n-- | Class representing a planar @PrimitiveMesh@.\n--    This flat mesh does not have a thickness. By default, this mesh is aligned on the X and Z axes; this default rotation isn't suited for use with billboarded materials. For billboarded materials, use @QuadMesh@ instead.\nnewtype PlaneMesh = PlaneMesh Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass PlaneMesh where\n        type BaseClass PlaneMesh = PrimitiveMesh\n        super = coerce\n\n-- | Infinite plane shape for 3D collisions.\n--   An infinite plane shape for 3D collisions. Note that the @Plane@'s normal matters; anything \"below\" the plane will collide with it. If the @PlaneShape@ is used in a @PhysicsBody@, it will cause colliding objects placed \"below\" it to teleport \"above\" the plane.\nnewtype PlaneShape = PlaneShape Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass PlaneShape where\n        type BaseClass PlaneShape = Shape\n        super = coerce\n\nnewtype PluginScript = PluginScript Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass PluginScript where\n        type BaseClass PluginScript = Script\n        super = coerce\n\n-- | Mesh with a single Point primitive.\n--   The PointMesh is made from a single point. Instead of relying on triangles, points are rendered as a single rectangle on the screen with a constant size. They are intended to be used with Particle systems, but can be used as a cheap way to render constant size billboarded sprites (for example in a point cloud).\n--   \t\tPointMeshes, must be used with a material that has a point size. Point size can be accessed in a shader with @POINT_SIZE@, or in a @SpatialMaterial@ by setting @SpatialMaterial.flags_use_point_size@ and the variable @SpatialMaterial.params_point_size@.\n--   \t\tWhen using PointMeshes, properties that normally alter vertices will be ignored, including billboard mode, grow, and cull face.\nnewtype PointMesh = PointMesh Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass PointMesh where\n        type BaseClass PointMesh = PrimitiveMesh\n        super = coerce\n\n-- | A 2D polygon.\n--   A Polygon2D is defined by a set of points. Each point is connected to the next, with the final point being connected to the first, resulting in a closed polygon. Polygon2Ds can be filled with color (solid or gradient) or filled with a given texture.\n--   \t\t__Note:__ By default, Godot can only draw up to 4,096 polygon points at a time. To increase this limit, open the Project Settings and increase @ProjectSettings.rendering/limits/buffers/canvas_polygon_buffer_size_kb@ and @ProjectSettings.rendering/limits/buffers/canvas_polygon_index_buffer_size_kb@.\nnewtype Polygon2D = Polygon2D Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass Polygon2D where\n        type BaseClass Polygon2D = Node2D\n        super = coerce\n\nnewtype PolygonPathFinder = PolygonPathFinder Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass PolygonPathFinder where\n        type BaseClass PolygonPathFinder = Resource\n        super = coerce\n\n-- | Base container control for popups and dialogs.\n--   Popup is a base @Control@ used to show dialogs and popups. It's a subwindow and modal by default (see @Control@) and has helpers for custom popup behavior. All popup methods ensure correct placement within the viewport.\nnewtype Popup = Popup Object\n                  deriving newtype AsVariant\n\ninstance HasBaseClass Popup where\n        type BaseClass Popup = Control\n        super = coerce\n\n-- | Base class for popup dialogs.\n--   PopupDialog is a base class for popup dialogs, along with @WindowDialog@.\nnewtype PopupDialog = PopupDialog Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass PopupDialog where\n        type BaseClass PopupDialog = Popup\n        super = coerce\n\n-- | PopupMenu displays a list of options.\n--   @PopupMenu@ is a @Control@ that displays a list of options. They are popular in toolbars or context menus.\nnewtype PopupMenu = PopupMenu Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass PopupMenu where\n        type BaseClass PopupMenu = Popup\n        super = coerce\n\n-- | Class for displaying popups with a panel background.\n--    In some cases it might be simpler to use than @Popup@, since it provides a configurable background. If you are making windows, better check @WindowDialog@.\nnewtype PopupPanel = PopupPanel Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass PopupPanel where\n        type BaseClass PopupPanel = Popup\n        super = coerce\n\n-- | Generic 2D position hint for editing.\n--    It's just like a plain @Node2D@, but it displays as a cross in the 2D editor at all times. You can set cross' visual size by using the gizmo in the 2D editor while the node is selected.\nnewtype Position2D = Position2D Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass Position2D where\n        type BaseClass Position2D = Node2D\n        super = coerce\n\n-- | Generic 3D position hint for editing.\n--    It's just like a plain @Spatial@, but it displays as a cross in the 3D editor at all times.\nnewtype Position3D = Position3D Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass Position3D where\n        type BaseClass Position3D = Spatial\n        super = coerce\n\n-- | Base class for all primitive meshes. Handles applying a @Material@ to a primitive mesh.\n--    Examples include @CapsuleMesh@, @CubeMesh@, @CylinderMesh@, @PlaneMesh@, @PrismMesh@, @QuadMesh@, and @SphereMesh@.\nnewtype PrimitiveMesh = PrimitiveMesh Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass PrimitiveMesh where\n        type BaseClass PrimitiveMesh = Mesh\n        super = coerce\n\n-- | Class representing a prism-shaped @PrimitiveMesh@.\nnewtype PrismMesh = PrismMesh Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass PrismMesh where\n        type BaseClass PrismMesh = PrimitiveMesh\n        super = coerce\n\n-- | Type of @Sky@ that is generated procedurally based on user input parameters.\n--   ProceduralSky provides a way to create an effective background quickly by defining procedural parameters for the sun, the sky and the ground. The sky and ground are very similar, they are defined by a color at the horizon, another color, and finally an easing curve to interpolate between these two colors. Similarly, the sun is described by a position in the sky, a color, and an easing curve. However, the sun also defines a minimum and maximum angle, these two values define at what distance the easing curve begins and ends from the sun, and thus end up defining the size of the sun in the sky.\n--   \t\tThe ProceduralSky is updated on the CPU after the parameters change. It is stored in a texture and then displayed as a background in the scene. This makes it relatively unsuitable for real-time updates during gameplay. However, with a small enough texture size, it can still be updated relatively frequently, as it is updated on a background thread when multi-threading is available.\nnewtype ProceduralSky = ProceduralSky Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass ProceduralSky where\n        type BaseClass ProceduralSky = Sky\n        super = coerce\n\n-- | General-purpose progress bar.\n--    Shows fill percentage from right to left.\nnewtype ProgressBar = ProgressBar Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass ProgressBar where\n        type BaseClass ProgressBar = Range\n        super = coerce\n\n-- | Contains global variables accessible from everywhere.\n--    Use @method get_setting@, @method set_setting@ or @method has_setting@ to access them. Variables stored in @project.godot@ are also loaded into ProjectSettings, making this object very useful for reading custom game configuration options.\n--   \t\tWhen naming a Project Settings property, use the full path to the setting including the category. For example, @\"application/config/name\"@ for the project name. Category and property names can be viewed in the Project Settings dialog.\n--   \t\t__Overriding:__ Any project setting can be overridden by creating a file named @override.cfg@ in the project's root directory. This can also be used in exported projects by placing this file in the same directory as the project binary.\nnewtype ProjectSettings = ProjectSettings Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass ProjectSettings where\n        type BaseClass ProjectSettings = Object\n        super = coerce\n\n-- | General-purpose proximity detection node.\nnewtype ProximityGroup = ProximityGroup Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass ProximityGroup where\n        type BaseClass ProximityGroup = Spatial\n        super = coerce\n\nnewtype ProxyTexture = ProxyTexture Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass ProxyTexture where\n        type BaseClass ProxyTexture = Texture\n        super = coerce\n\n-- | Class representing a square mesh.\n--   Class representing a square @PrimitiveMesh@. This flat mesh does not have a thickness. By default, this mesh is aligned on the X and Y axes; this default rotation is more suited for use with billboarded materials. Unlike @PlaneMesh@, this mesh doesn't provide subdivision options.\nnewtype QuadMesh = QuadMesh Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass QuadMesh where\n        type BaseClass QuadMesh = PrimitiveMesh\n        super = coerce\n\n-- | A class for generating pseudo-random numbers.\n--   RandomNumberGenerator is a class for generating pseudo-random numbers. It currently uses @url=http://www.pcg-random.org/@PCG32@/url@.\n--   \t\t__Note:__ The underlying algorithm is an implementation detail. As a result, it should not be depended upon for reproducible random streams across Godot versions.\n--   \t\tTo generate a random float number (within a given range) based on a time-dependant seed:\n--   \t\t\n--   @\n--   \n--   \t\tvar rng = RandomNumberGenerator.new()\n--   \t\tfunc _ready():\n--   \t\t    rng.randomize()\n--   \t\t    var my_random_number = rng.randf_range(-10.0, 10.0)\n--   \t\t\n--   @\nnewtype RandomNumberGenerator = RandomNumberGenerator Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass RandomNumberGenerator where\n        type BaseClass RandomNumberGenerator = Reference\n        super = coerce\n\n-- | Abstract base class for range-based controls.\n--   Range is a base class for @Control@ nodes that change a floating-point @i@value@/i@ between a @i@minimum@/i@ and a @i@maximum@/i@, using @i@step@/i@ and @i@page@/i@, for example a @ScrollBar@.\nnewtype Range = Range Object\n                  deriving newtype AsVariant\n\ninstance HasBaseClass Range where\n        type BaseClass Range = Control\n        super = coerce\n\n-- | Query the closest object intersecting a ray.\n--   A RayCast represents a line from its origin to its destination position, @cast_to@. It is used to query the 3D space in order to find the closest object along the path of the ray.\n--   \t\tRayCast can ignore some objects by adding them to the exception list via @add_exception@ or by setting proper filtering with collision layers and masks.\n--   \t\tRayCast can be configured to report collisions with @Area@s (@collide_with_areas@) and/or @PhysicsBody@s (@collide_with_bodies@).\n--   \t\tOnly enabled raycasts will be able to query the space and report collisions.\n--   \t\tRayCast calculates intersection every physics frame (see @Node@), and the result is cached so it can be used later until the next frame. If multiple queries are required between physics frames (or during the same frame), use @method force_raycast_update@ after adjusting the raycast.\nnewtype RayCast = RayCast Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass RayCast where\n        type BaseClass RayCast = Spatial\n        super = coerce\n\n-- | Query the closest object intersecting a ray.\n--   A RayCast represents a line from its origin to its destination position, @cast_to@. It is used to query the 2D space in order to find the closest object along the path of the ray.\n--   \t\tRayCast2D can ignore some objects by adding them to the exception list via @add_exception@, by setting proper filtering with collision layers, or by filtering object types with type masks.\n--   \t\tRayCast2D can be configured to report collisions with @Area2D@s (@collide_with_areas@) and/or @PhysicsBody2D@s (@collide_with_bodies@).\n--   \t\tOnly enabled raycasts will be able to query the space and report collisions.\n--   \t\tRayCast2D calculates intersection every physics frame (see @Node@), and the result is cached so it can be used later until the next frame. If multiple queries are required between physics frames (or during the same frame) use @method force_raycast_update@ after adjusting the raycast.\nnewtype RayCast2D = RayCast2D Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass RayCast2D where\n        type BaseClass RayCast2D = Node2D\n        super = coerce\n\n-- | Ray shape for 3D collisions.\n--   Ray shape for 3D collisions, which can be set into a @PhysicsBody@ or @Area@. A ray is not really a collision body; instead, it tries to separate itself from whatever is touching its far endpoint. It's often useful for characters.\nnewtype RayShape = RayShape Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass RayShape where\n        type BaseClass RayShape = Shape\n        super = coerce\n\n-- | Ray shape for 2D collisions.\n--    A ray is not really a collision body; instead, it tries to separate itself from whatever is touching its far endpoint. It's often useful for characters.\nnewtype RayShape2D = RayShape2D Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass RayShape2D where\n        type BaseClass RayShape2D = Shape2D\n        super = coerce\n\n-- | Rectangle shape for 2D collisions.\n--    This shape is useful for modeling box-like 2D objects.\nnewtype RectangleShape2D = RectangleShape2D Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass RectangleShape2D where\n        type BaseClass RectangleShape2D = Shape2D\n        super = coerce\n\n-- | Base class for reference-counted objects.\n--   Base class for any object that keeps a reference count. @Resource@ and many other helper objects inherit this class.\n--   \t\tUnlike @Object@s, References keep an internal reference counter so that they are automatically released when no longer in use, and only then. References therefore do not need to be freed manually with @method Object.free@.\n--   \t\tIn the vast majority of use cases, instantiating and using @Reference@-derived types is all you need to do. The methods provided in this class are only for advanced users, and can cause issues if misused.\nnewtype Reference = Reference Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass Reference where\n        type BaseClass Reference = Object\n        super = coerce\n\n-- | Reference frame for GUI.\n--   A rectangle box that displays only a @border_color@ border color around its rectangle. @ReferenceRect@ has no fill @Color@.\nnewtype ReferenceRect = ReferenceRect Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass ReferenceRect where\n        type BaseClass ReferenceRect = Control\n        super = coerce\n\n-- | Captures its surroundings to create reflections.\n--   Capture its surroundings as a dual paraboloid image, and stores versions of it with increasing levels of blur to simulate different material roughnesses.\n--   \t\tThe @ReflectionProbe@ is used to create high-quality reflections at the cost of performance. It can be combined with @GIProbe@s and Screen Space Reflections to achieve high quality reflections. @ReflectionProbe@s render all objects within their @cull_mask@, so updating them can be quite expensive. It is best to update them once with the important static objects and then leave them.\n--   \t\tNote: By default Godot will only render 16 reflection probes. If you need more, increase the number of atlas subdivisions. This setting can be found in @ProjectSettings.rendering/quality/reflections/atlas_subdiv@.\nnewtype ReflectionProbe = ReflectionProbe Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass ReflectionProbe where\n        type BaseClass ReflectionProbe = VisualInstance\n        super = coerce\n\nnewtype RegEx = RegEx Object\n                  deriving newtype AsVariant\n\ninstance HasBaseClass RegEx where\n        type BaseClass RegEx = Reference\n        super = coerce\n\nnewtype RegExMatch = RegExMatch Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass RegExMatch where\n        type BaseClass RegExMatch = Reference\n        super = coerce\n\n-- | RemoteTransform pushes its own @Transform@ to another @Spatial@ derived Node in the scene.\n--   RemoteTransform pushes its own @Transform@ to another @Spatial@ derived Node (called the remote node) in the scene.\n--   \t\tIt can be set to update another Node's position, rotation and/or scale. It can use either global or local coordinates.\nnewtype RemoteTransform = RemoteTransform Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass RemoteTransform where\n        type BaseClass RemoteTransform = Spatial\n        super = coerce\n\n-- | RemoteTransform2D pushes its own @Transform2D@ to another @CanvasItem@ derived Node in the scene.\n--   RemoteTransform2D pushes its own @Transform2D@ to another @CanvasItem@ derived Node (called the remote node) in the scene.\n--   \t\tIt can be set to update another Node's position, rotation and/or scale. It can use either global or local coordinates.\nnewtype RemoteTransform2D = RemoteTransform2D Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass RemoteTransform2D where\n        type BaseClass RemoteTransform2D = Node2D\n        super = coerce\n\n-- | Base class for all resources.\n--   Resource is the base class for all Godot-specific resource types, serving primarily as data containers. Unlike @Object@s, they are reference-counted and freed when no longer in use. They are also cached once loaded from disk, so that any further attempts to load a resource from a given path will return the same reference (all this in contrast to a @Node@, which is not reference-counted and can be instanced from disk as many times as desired). Resources can be saved externally on disk or bundled into another object, such as a @Node@ or another resource.\nnewtype Resource = Resource Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass Resource where\n        type BaseClass Resource = Reference\n        super = coerce\n\n-- | Loads a specific resource type from a file.\n--   Godot loads resources in the editor or in exported games using ResourceFormatLoaders. They are queried automatically via the @ResourceLoader@ singleton, or when a resource with internal dependencies is loaded. Each file type may load as a different resource type, so multiple ResourceFormatLoaders are registered in the engine.\n--   \t\tExtending this class allows you to define your own loader. Be sure to respect the documented return types and values. You should give it a global class name with @class_name@ for it to be registered. Like built-in ResourceFormatLoaders, it will be called automatically when loading resources of its handled type(s). You may also implement a @ResourceFormatSaver@.\n--   \t\t__Note:__ You can also extend @EditorImportPlugin@ if the resource type you need exists but Godot is unable to load its format. Choosing one way over another depends if the format is suitable or not for the final exported game. For example, it's better to import @.png@ textures as @.stex@ (@StreamTexture@) first, so they can be loaded with better efficiency on the graphics card.\nnewtype ResourceFormatLoader = ResourceFormatLoader Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass ResourceFormatLoader where\n        type BaseClass ResourceFormatLoader = Reference\n        super = coerce\n\nnewtype ResourceFormatLoaderCrypto = ResourceFormatLoaderCrypto Object\n                                       deriving newtype AsVariant\n\ninstance HasBaseClass ResourceFormatLoaderCrypto where\n        type BaseClass ResourceFormatLoaderCrypto = ResourceFormatLoader\n        super = coerce\n\n-- | Saves a specific resource type to a file.\n--   The engine can save resources when you do it from the editor, or when you use the @ResourceSaver@ singleton. This is accomplished thanks to multiple @ResourceFormatSaver@s, each handling its own format and called automatically by the engine.\n--   \t\tBy default, Godot saves resources as @.tres@ (text-based), @.res@ (binary) or another built-in format, but you can choose to create your own format by extending this class. Be sure to respect the documented return types and values. You should give it a global class name with @class_name@ for it to be registered. Like built-in ResourceFormatSavers, it will be called automatically when saving resources of its recognized type(s). You may also implement a @ResourceFormatLoader@.\nnewtype ResourceFormatSaver = ResourceFormatSaver Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass ResourceFormatSaver where\n        type BaseClass ResourceFormatSaver = Reference\n        super = coerce\n\nnewtype ResourceFormatSaverCrypto = ResourceFormatSaverCrypto Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass ResourceFormatSaverCrypto where\n        type BaseClass ResourceFormatSaverCrypto = ResourceFormatSaver\n        super = coerce\n\nnewtype ResourceImporter = ResourceImporter Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass ResourceImporter where\n        type BaseClass ResourceImporter = Reference\n        super = coerce\n\n-- | Interactive @Resource@ loader.\n--    This object is returned by @ResourceLoader@ when performing an interactive load. It allows loading resources with high granularity, which makes it mainly useful for displaying loading bars or percentages.\nnewtype ResourceInteractiveLoader = ResourceInteractiveLoader Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass ResourceInteractiveLoader where\n        type BaseClass ResourceInteractiveLoader = Reference\n        super = coerce\n\n-- | Resource Preloader Node.\n--   This node is used to preload sub-resources inside a scene, so when the scene is loaded, all the resources are ready to use and can be retrieved from the preloader.\n--   \t\tGDScript has a simplified @method @GDScript.preload@ built-in method which can be used in most situations, leaving the use of @ResourcePreloader@ for more advanced scenarios.\nnewtype ResourcePreloader = ResourcePreloader Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass ResourcePreloader where\n        type BaseClass ResourcePreloader = Node\n        super = coerce\n\n-- | A custom effect for use with @RichTextLabel@.\n--   \n--   \t\t__Note:__ For a @RichTextEffect@ to be usable, a BBCode tag must be defined as a member variable called @bbcode@ in the script.\n--   \t\t\n--   @\n--   \n--   \t\t# The RichTextEffect will be usable like this: `@example@Some text@/example@`\n--   \t\tvar bbcode = \"example\"\n--   \t\t\n--   @\n--   \n--   \t\t__Note:__ As soon as a @RichTextLabel@ contains at least one @RichTextEffect@, it will continuously process the effect unless the project is paused. This may impact battery life negatively.\nnewtype RichTextEffect = RichTextEffect Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass RichTextEffect where\n        type BaseClass RichTextEffect = Resource\n        super = coerce\n\n-- | Label that displays rich text.\n--   Rich text can contain custom text, fonts, images and some basic formatting. The label manages these as an internal tag stack. It also adapts itself to given width/heights.\n--   \t\t__Note:__ Assignments to @bbcode_text@ clear the tag stack and reconstruct it from the property's contents. Any edits made to @bbcode_text@ will erase previous edits made from other manual sources such as @method append_bbcode@ and the @push_*@ / @method pop@ methods.\n--   \t\t__Note:__ Unlike @Label@, RichTextLabel doesn't have a @i@property@/i@ to horizontally align text to the center. Instead, enable @bbcode_enabled@ and surround the text in a @@center@@ tag as follows: @@center@Example@/center@@. There is currently no built-in way to vertically align text either, but this can be emulated by relying on anchors/containers and the @fit_content_height@ property.\nnewtype RichTextLabel = RichTextLabel Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass RichTextLabel where\n        type BaseClass RichTextLabel = Control\n        super = coerce\n\n-- | Physics Body whose position is determined through physics simulation in 3D space.\n--   This is the node that implements full 3D physics. This means that you do not control a RigidBody directly. Instead, you can apply forces to it (gravity, impulses, etc.), and the physics simulation will calculate the resulting movement, collision, bouncing, rotating, etc.\n--   \t\tA RigidBody has 4 behavior @mode@s: Rigid, Static, Character, and Kinematic.\n--   \t\t__Note:__ Don't change a RigidBody's position every frame or very often. Sporadic changes work fine, but physics runs at a different granularity (fixed Hz) than usual rendering (process callback) and maybe even in a separate thread, so changing this from a process loop may result in strange behavior. If you need to directly affect the body's state, use @method _integrate_forces@, which allows you to directly access the physics state.\n--   \t\tIf you need to override the default physics behavior, you can write a custom force integration function. See @custom_integrator@.\n--   \t\tWith Bullet physics (the default), the center of mass is the RigidBody3D center. With GodotPhysics, the center of mass is the average of the @CollisionShape@ centers.\nnewtype RigidBody = RigidBody Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass RigidBody where\n        type BaseClass RigidBody = PhysicsBody\n        super = coerce\n\n-- | A body that is controlled by the 2D physics engine.\n--   This node implements simulated 2D physics. You do not control a RigidBody2D directly. Instead you apply forces to it (gravity, impulses, etc.) and the physics simulation calculates the resulting movement based on its mass, friction, and other physical properties.\n--   \t\tA RigidBody2D has 4 behavior @mode@s: Rigid, Static, Character, and Kinematic.\n--   \t\t__Note:__ You should not change a RigidBody2D's @position@ or @linear_velocity@ every frame or even very often. If you need to directly affect the body's state, use @method _integrate_forces@, which allows you to directly access the physics state.\n--   \t\tPlease also keep in mind that physics bodies manage their own transform which overwrites the ones you set. So any direct or indirect transformation (including scaling of the node or its parent) will be visible in the editor only, and immediately reset at runtime.\n--   \t\tIf you need to override the default physics behavior or add a transformation at runtime, you can write a custom force integration. See @custom_integrator@.\n--   \t\tThe center of mass is always located at the node's origin without taking into account the @CollisionShape2D@ centroid offsets.\nnewtype RigidBody2D = RigidBody2D Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass RigidBody2D where\n        type BaseClass RigidBody2D = PhysicsBody2D\n        super = coerce\n\nnewtype RootMotionView = RootMotionView Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass RootMotionView where\n        type BaseClass RootMotionView = VisualInstance\n        super = coerce\n\n-- | A script interface to a scene file's data.\n--   Maintains a list of resources, nodes, exported, and overridden properties, and built-in scripts associated with a scene.\n--   \t\tThis class cannot be instantiated directly, it is retrieved for a given scene as the result of @method PackedScene.get_state@.\nnewtype SceneState = SceneState Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass SceneState where\n        type BaseClass SceneState = Reference\n        super = coerce\n\n-- | Manages the game loop via a hierarchy of nodes.\n--   As one of the most important classes, the @SceneTree@ manages the hierarchy of nodes in a scene as well as scenes themselves. Nodes can be added, retrieved and removed. The whole scene tree (and thus the current scene) can be paused. Scenes can be loaded, switched and reloaded.\n--   \t\tYou can also use the @SceneTree@ to organize your nodes into groups: every node can be assigned as many groups as you want to create, e.g. a \"enemy\" group. You can then iterate these groups or even call methods and set properties on all the group's members at once.\n--   \t\t@SceneTree@ is the default @MainLoop@ implementation used by scenes, and is thus in charge of the game loop.\nnewtype SceneTree = SceneTree Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass SceneTree where\n        type BaseClass SceneTree = MainLoop\n        super = coerce\n\n-- | One-shot timer.\n--   A one-shot timer managed by the scene tree, which emits @signal timeout@ on completion. See also @method SceneTree.create_timer@.\n--   \t\tAs opposed to @Timer@, it does not require the instantiation of a node. Commonly used to create a one-shot delay timer as in the following example:\n--   \t\t\n--   @\n--   \n--   \t\tfunc some_function():\n--   \t\t    print(\"Timer started.\")\n--   \t\t    yield(get_tree().create_timer(1.0), \"timeout\")\n--   \t\t    print(\"Timer ended.\")\n--   \t\t\n--   @\nnewtype SceneTreeTimer = SceneTreeTimer Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass SceneTreeTimer where\n        type BaseClass SceneTreeTimer = Reference\n        super = coerce\n\n-- | A class stored as a resource.\n--    A script extends the functionality of all objects that instance it.\n--   \t\tThe @new@ method of a script subclass creates a new instance. @method Object.set_script@ extends an existing object, if that object's class matches one of the script's base classes.\nnewtype Script = Script Object\n                   deriving newtype AsVariant\n\ninstance HasBaseClass Script where\n        type BaseClass Script = Resource\n        super = coerce\n\n-- | The Editor's popup dialog for creating new @Script@ files.\n--   The @ScriptCreateDialog@ creates script files according to a given template for a given scripting language. The standard use is to configure its fields prior to calling one of the @method Popup.popup@ methods.\n--   \t\t\n--   @\n--   \n--   \t\tfunc _ready():\n--   \t\t    dialog.config(\"Node\", \"res://new_node.gd\") # For in-engine types\n--   \t\t    dialog.config(\"\\\"res://base_node.gd\\\"\", \"res://derived_node.gd\") # For script types\n--   \t\t    dialog.popup_centered()\n--   \t\t\n--   @\nnewtype ScriptCreateDialog = ScriptCreateDialog Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass ScriptCreateDialog where\n        type BaseClass ScriptCreateDialog = ConfirmationDialog\n        super = coerce\n\n-- | Godot editor's script editor.\n--   __Note:__ This class shouldn't be instantiated directly. Instead, access the singleton using @method EditorInterface.get_script_editor@.\nnewtype ScriptEditor = ScriptEditor Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass ScriptEditor where\n        type BaseClass ScriptEditor = PanelContainer\n        super = coerce\n\n-- | Base class for scroll bars.\n--   Scrollbars are a @Range@-based @Control@, that display a draggable area (the size of the page). Horizontal (@HScrollBar@) and Vertical (@VScrollBar@) versions are available.\nnewtype ScrollBar = ScrollBar Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass ScrollBar where\n        type BaseClass ScrollBar = Range\n        super = coerce\n\n-- | A helper node for displaying scrollable elements such as lists.\n--   A ScrollContainer node meant to contain a @Control@ child. ScrollContainers will automatically create a scrollbar child (@HScrollBar@, @VScrollBar@, or both) when needed and will only draw the Control within the ScrollContainer area. Scrollbars will automatically be drawn at the right (for vertical) or bottom (for horizontal) and will enable dragging to move the viewable Control (and its children) within the ScrollContainer. Scrollbars will also automatically resize the grabber based on the @Control.rect_min_size@ of the Control relative to the ScrollContainer. Works great with a @Panel@ control. You can set @EXPAND@ on the children's size flags, so they will upscale to the ScrollContainer's size if it's larger (scroll is invisible for the chosen dimension).\nnewtype ScrollContainer = ScrollContainer Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass ScrollContainer where\n        type BaseClass ScrollContainer = Container\n        super = coerce\n\n-- | Segment shape for 2D collisions.\n--    Consists of two points, @a@ and @b@.\nnewtype SegmentShape2D = SegmentShape2D Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass SegmentShape2D where\n        type BaseClass SegmentShape2D = Shape2D\n        super = coerce\n\n-- | Base class for separators.\n--   Separator is a @Control@ used for separating other controls. It's purely a visual decoration. Horizontal (@HSeparator@) and Vertical (@VSeparator@) versions are available.\nnewtype Separator = Separator Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass Separator where\n        type BaseClass Separator = Control\n        super = coerce\n\n-- | A custom shader program.\n--   This class allows you to define a custom shader program that can be used by a @ShaderMaterial@. Shaders allow you to write your own custom behavior for rendering objects or updating particle information. For a detailed explanation and usage, please see the tutorials linked below.\nnewtype Shader = Shader Object\n                   deriving newtype AsVariant\n\ninstance HasBaseClass Shader where\n        type BaseClass Shader = Resource\n        super = coerce\n\n-- | A material that uses a custom @Shader@ program.\n--   A material that uses a custom @Shader@ program to render either items to screen or process particles. You can create multiple materials for the same shader but configure different values for the uniforms defined in the shader.\nnewtype ShaderMaterial = ShaderMaterial Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass ShaderMaterial where\n        type BaseClass ShaderMaterial = Material\n        super = coerce\n\n-- | Base class for all 3D shape resources.\n--    Nodes that inherit from this can be used as shapes for a @PhysicsBody@ or @Area@ objects.\nnewtype Shape = Shape Object\n                  deriving newtype AsVariant\n\ninstance HasBaseClass Shape where\n        type BaseClass Shape = Resource\n        super = coerce\n\n-- | Base class for all 2D shapes.\n--    All 2D shape types inherit from this.\nnewtype Shape2D = Shape2D Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass Shape2D where\n        type BaseClass Shape2D = Resource\n        super = coerce\n\n-- | A shortcut for binding input.\n--   \n--   \t\tShortcuts are commonly used for interacting with a @Control@ element from a @InputEvent@.\nnewtype ShortCut = ShortCut Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass ShortCut where\n        type BaseClass ShortCut = Resource\n        super = coerce\n\n-- | Skeleton for characters and animated objects.\n--   Skeleton provides a hierarchical interface for managing bones, including pose, rest and animation (see @Animation@). It can also use ragdoll physics.\n--   \t\tThe overall transform of a bone with respect to the skeleton is determined by the following hierarchical order: rest pose, custom pose and pose.\n--   \t\tNote that \"global pose\" below refers to the overall transform of the bone with respect to skeleton, so it not the actual global/world transform of the bone.\nnewtype Skeleton = Skeleton Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass Skeleton where\n        type BaseClass Skeleton = Spatial\n        super = coerce\n\n-- | Skeleton for 2D characters and animated objects.\n--   Skeleton2D parents a hierarchy of @Bone2D@ objects. It is a requirement of @Bone2D@. Skeleton2D holds a reference to the rest pose of its children and acts as a single point of access to its bones.\nnewtype Skeleton2D = Skeleton2D Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass Skeleton2D where\n        type BaseClass Skeleton2D = Node2D\n        super = coerce\n\nnewtype SkeletonIK = SkeletonIK Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass SkeletonIK where\n        type BaseClass SkeletonIK = Node\n        super = coerce\n\nnewtype Skin = Skin Object\n                 deriving newtype AsVariant\n\ninstance HasBaseClass Skin where\n        type BaseClass Skin = Resource\n        super = coerce\n\nnewtype SkinReference = SkinReference Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass SkinReference where\n        type BaseClass SkinReference = Reference\n        super = coerce\n\n-- | The base class for @PanoramaSky@ and @ProceduralSky@.\nnewtype Sky = Sky Object\n                deriving newtype AsVariant\n\ninstance HasBaseClass Sky where\n        type BaseClass Sky = Resource\n        super = coerce\n\n-- | Base class for GUI sliders.\n--   \n--   \t\t__Note:__ The @signal Range.changed@ and @signal Range.value_changed@ signals are part of the @Range@ class which this class inherits from.\nnewtype Slider = Slider Object\n                   deriving newtype AsVariant\n\ninstance HasBaseClass Slider where\n        type BaseClass Slider = Range\n        super = coerce\n\n-- | Piston kind of slider between two bodies in 3D.\n--   Slides across the X axis of the pivot object.\nnewtype SliderJoint = SliderJoint Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass SliderJoint where\n        type BaseClass SliderJoint = Joint\n        super = coerce\n\n-- | A soft mesh physics body.\n--   A deformable physics body. Used to create elastic or deformable objects such as cloth, rubber, or other flexible materials.\nnewtype SoftBody = SoftBody Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass SoftBody where\n        type BaseClass SoftBody = MeshInstance\n        super = coerce\n\n-- | Most basic 3D game object, parent of all 3D-related nodes.\n--   Most basic 3D game object, with a 3D @Transform@ and visibility settings. All other 3D game objects inherit from Spatial. Use @Spatial@ as a parent node to move, scale, rotate and show/hide children in a 3D project.\n--   \t\tAffine operations (rotate, scale, translate) happen in parent's local coordinate system, unless the @Spatial@ object is set as top-level. Affine operations in this coordinate system correspond to direct affine operations on the @Spatial@'s transform. The word local below refers to this coordinate system. The coordinate system that is attached to the @Spatial@ object itself is referred to as object-local coordinate system.\n--   \t\t__Note:__ Unless otherwise specified, all methods that have angle parameters must have angles specified as @i@radians@/i@. To convert degrees to radians, use @method @GDScript.deg2rad@.\nnewtype Spatial = Spatial Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass Spatial where\n        type BaseClass Spatial = Node\n        super = coerce\n\nnewtype SpatialGizmo = SpatialGizmo Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass SpatialGizmo where\n        type BaseClass SpatialGizmo = Reference\n        super = coerce\n\n-- | Default 3D rendering material.\n--   This provides a default material with a wide variety of rendering features and properties without the need to write shader code. See the tutorial below for details.\nnewtype SpatialMaterial = SpatialMaterial Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass SpatialMaterial where\n        type BaseClass SpatialMaterial = Material\n        super = coerce\n\nnewtype SpatialVelocityTracker = SpatialVelocityTracker Object\n                                   deriving newtype AsVariant\n\ninstance HasBaseClass SpatialVelocityTracker where\n        type BaseClass SpatialVelocityTracker = Reference\n        super = coerce\n\n-- | Class representing a spherical @PrimitiveMesh@.\nnewtype SphereMesh = SphereMesh Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass SphereMesh where\n        type BaseClass SphereMesh = PrimitiveMesh\n        super = coerce\n\n-- | Sphere shape for 3D collisions.\n--   Sphere shape for 3D collisions, which can be set into a @PhysicsBody@ or @Area@. This shape is useful for modeling sphere-like 3D objects.\nnewtype SphereShape = SphereShape Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass SphereShape where\n        type BaseClass SphereShape = Shape\n        super = coerce\n\n-- | Numerical input text field.\n--   SpinBox is a numerical input text field. It allows entering integers and floats.\n--   \t\t__Example:__\n--   \t\t\n--   @\n--   \n--   \t\tvar spin_box = SpinBox.new()\n--   \t\tadd_child(spin_box)\n--   \t\tvar line_edit = spin_box.get_line_edit()\n--   \t\tline_edit.context_menu_enabled = false\n--   \t\tspin_box.align = LineEdit.ALIGN_RIGHT\n--   \t\t\n--   @\n--   \n--   \t\tThe above code will create a @SpinBox@, disable context menu on it and set the text alignment to right.\n--   \t\tSee @Range@ class for more options over the @SpinBox@.\nnewtype SpinBox = SpinBox Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass SpinBox where\n        type BaseClass SpinBox = Range\n        super = coerce\n\n-- | Container for splitting and adjusting.\n--   Container for splitting two @Control@s vertically or horizontally, with a grabber that allows adjusting the split offset or ratio.\nnewtype SplitContainer = SplitContainer Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass SplitContainer where\n        type BaseClass SplitContainer = Container\n        super = coerce\n\n-- | A spotlight, such as a reflector spotlight or a lantern.\n--   A Spotlight is a type of @Light@ node that emits lights in a specific direction, in the shape of a cone. The light is attenuated through the distance. This attenuation can be configured by changing the energy, radius and attenuation parameters of @Light@.\nnewtype SpotLight = SpotLight Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass SpotLight where\n        type BaseClass SpotLight = Light\n        super = coerce\n\n-- | A helper node, mostly used in 3rd person cameras.\n--   The SpringArm node is a node that casts a ray (or collision shape) along its z axis and moves all its direct children to the collision point, minus a margin.\n--   \t\tThe most common use case for this is to make a 3rd person camera that reacts to collisions in the environment.\n--   \t\tThe SpringArm will either cast a ray, or if a shape is given, it will cast the shape in the direction of its z axis.\n--   \t\tIf you use the SpringArm as a camera controller for your player, you might need to exclude the player's collider from the SpringArm's collision check.\nnewtype SpringArm = SpringArm Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass SpringArm where\n        type BaseClass SpringArm = Spatial\n        super = coerce\n\n-- | General-purpose sprite node.\n--   A node that displays a 2D texture. The texture displayed can be a region from a larger atlas texture, or a frame from a sprite sheet animation.\nnewtype Sprite = Sprite Object\n                   deriving newtype AsVariant\n\ninstance HasBaseClass Sprite where\n        type BaseClass Sprite = Node2D\n        super = coerce\n\n-- | 2D sprite node in a 3D world.\n--   A node that displays a 2D texture in a 3D environment. The texture displayed can be a region from a larger atlas texture, or a frame from a sprite sheet animation.\nnewtype Sprite3D = Sprite3D Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass Sprite3D where\n        type BaseClass Sprite3D = SpriteBase3D\n        super = coerce\n\n-- | 2D sprite node in 3D environment.\n--   A node that displays 2D texture information in a 3D environment.\nnewtype SpriteBase3D = SpriteBase3D Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass SpriteBase3D where\n        type BaseClass SpriteBase3D = GeometryInstance\n        super = coerce\n\n-- | Sprite frame library for AnimatedSprite.\n--   Sprite frame library for @AnimatedSprite@. Contains frames and animation data for playback.\n--   \t\t__Note:__ You can associate a set of normal maps by creating additional @SpriteFrames@ resources with a @_normal@ suffix. For example, having 2 @SpriteFrames@ resources @run@ and @run_normal@ will make it so the @run@ animation uses the normal map.\nnewtype SpriteFrames = SpriteFrames Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass SpriteFrames where\n        type BaseClass SpriteFrames = Resource\n        super = coerce\n\n-- | Static body for 3D physics.\n--    A static body is a simple body that is not intended to move. In contrast to @RigidBody@, they don't consume any CPU resources as long as they don't move.\n--   \t\tAdditionally, a constant linear or angular velocity can be set for the static body, so even if it doesn't move, it affects other bodies as if it was moving (this is useful for simulating conveyor belts or conveyor wheels).\nnewtype StaticBody = StaticBody Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass StaticBody where\n        type BaseClass StaticBody = PhysicsBody\n        super = coerce\n\n-- | Static body for 2D physics.\n--    A StaticBody2D is a body that is not intended to move. It is ideal for implementing objects in the environment, such as walls or platforms.\n--   \t\tAdditionally, a constant linear or angular velocity can be set for the static body, which will affect colliding bodies as if it were moving (for example, a conveyor belt).\nnewtype StaticBody2D = StaticBody2D Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass StaticBody2D where\n        type BaseClass StaticBody2D = PhysicsBody2D\n        super = coerce\n\n-- | Abstraction and base class for stream-based protocols.\n--   StreamPeer is an abstraction and base class for stream-based protocols (such as TCP or UNIX sockets). It provides an API for sending and receiving data through streams as raw data or strings.\nnewtype StreamPeer = StreamPeer Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass StreamPeer where\n        type BaseClass StreamPeer = Reference\n        super = coerce\n\nnewtype StreamPeerBuffer = StreamPeerBuffer Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass StreamPeerBuffer where\n        type BaseClass StreamPeerBuffer = StreamPeer\n        super = coerce\n\nnewtype StreamPeerGDNative = StreamPeerGDNative Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass StreamPeerGDNative where\n        type BaseClass StreamPeerGDNative = StreamPeer\n        super = coerce\n\n-- | SSL stream peer.\n--    This object can be used to connect to an SSL server or accept a single SSL client connection.\nnewtype StreamPeerSSL = StreamPeerSSL Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass StreamPeerSSL where\n        type BaseClass StreamPeerSSL = StreamPeer\n        super = coerce\n\n-- | TCP stream peer.\n--    This object can be used to connect to TCP servers, or also is returned by a TCP server.\nnewtype StreamPeerTCP = StreamPeerTCP Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass StreamPeerTCP where\n        type BaseClass StreamPeerTCP = StreamPeer\n        super = coerce\n\n-- | A @.stex@ texture.\n--   A texture that is loaded from a @.stex@ file.\nnewtype StreamTexture = StreamTexture Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass StreamTexture where\n        type BaseClass StreamTexture = Texture\n        super = coerce\n\n-- | Base class for drawing stylized boxes for the UI.\n--   StyleBox is @Resource@ that provides an abstract base class for drawing stylized boxes for the UI. StyleBoxes are used for drawing the styles of buttons, line edit backgrounds, tree backgrounds, etc. and also for testing a transparency mask for pointer signals. If mask test fails on a StyleBox assigned as mask to a control, clicks and motion signals will go through it to the one below.\nnewtype StyleBox = StyleBox Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass StyleBox where\n        type BaseClass StyleBox = Resource\n        super = coerce\n\n-- | Empty stylebox (does not display anything).\n--   Empty stylebox (really does not display anything).\nnewtype StyleBoxEmpty = StyleBoxEmpty Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass StyleBoxEmpty where\n        type BaseClass StyleBoxEmpty = StyleBox\n        super = coerce\n\n-- | Customizable @StyleBox@ with a given set of parameters (no texture required).\n--   This @StyleBox@ can be used to achieve all kinds of looks without the need of a texture. Those properties are customizable:\n--   \t\t- Color\n--   \t\t- Border width (individual width for each border)\n--   \t\t- Rounded corners (individual radius for each corner)\n--   \t\t- Shadow (with blur and offset)\n--   \t\tSetting corner radius to high values is allowed. As soon as corners would overlap, the stylebox will switch to a relative system. Example:\n--   \t\t\n--   @\n--   \n--   \t\theight = 30\n--   \t\tcorner_radius_top_left = 50\n--   \t\tcorner_radius_bottom_left = 100\n--   \t\t\n--   @\n--   \n--   \t\tThe relative system now would take the 1:2 ratio of the two left corners to calculate the actual corner width. Both corners added will __never__ be more than the height. Result:\n--   \t\t\n--   @\n--   \n--   \t\tcorner_radius_top_left: 10\n--   \t\tcorner_radius_bottom_left: 20\n--   \t\t\n--   @\nnewtype StyleBoxFlat = StyleBoxFlat Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass StyleBoxFlat where\n        type BaseClass StyleBoxFlat = StyleBox\n        super = coerce\n\n-- | @StyleBox@ that displays a single line.\n--   @StyleBox@ that displays a single line of a given color and thickness. It can be used to draw things like separators.\nnewtype StyleBoxLine = StyleBoxLine Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass StyleBoxLine where\n        type BaseClass StyleBoxLine = StyleBox\n        super = coerce\n\n-- | Texture-based nine-patch @StyleBox@.\n--   Texture-based nine-patch @StyleBox@, in a way similar to @NinePatchRect@. This stylebox performs a 3×3 scaling of a texture, where only the center cell is fully stretched. This makes it possible to design bordered styles regardless of the stylebox's size.\nnewtype StyleBoxTexture = StyleBoxTexture Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass StyleBoxTexture where\n        type BaseClass StyleBoxTexture = StyleBox\n        super = coerce\n\n-- | Helper tool to create geometry.\n--   The @SurfaceTool@ is used to construct a @Mesh@ by specifying vertex attributes individually. It can be used to construct a @Mesh@ from a script. All properties except indices need to be added before calling @method add_vertex@. For example, to add vertex colors and UVs:\n--   \t\t\n--   @\n--   \n--   \t\tvar st = SurfaceTool.new()\n--   \t\tst.begin(Mesh.PRIMITIVE_TRIANGLES)\n--   \t\tst.add_color(Color(1, 0, 0))\n--   \t\tst.add_uv(Vector2(0, 0))\n--   \t\tst.add_vertex(Vector3(0, 0, 0))\n--   \t\t\n--   @\n--   \n--   \t\tThe above @SurfaceTool@ now contains one vertex of a triangle which has a UV coordinate and a specified @Color@. If another vertex were added without calling @method add_uv@ or @method add_color@, then the last values would be used.\n--   \t\tVertex attributes must be passed __before__ calling @method add_vertex@. Failure to do so will result in an error when committing the vertex information to a mesh.\n--   \t\tAdditionally, the attributes used before the first vertex is added determine the format of the mesh. For example, if you only add UVs to the first vertex, you cannot add color to any of the subsequent vertices.\n--   \t\tSee also @ArrayMesh@, @ImmediateGeometry@ and @MeshDataTool@ for procedural geometry generation.\n--   \t\t__Note:__ Godot uses clockwise @url=https://learnopengl.com/Advanced-OpenGL/Face-culling@winding order@/url@ for front faces of triangle primitive modes.\nnewtype SurfaceTool = SurfaceTool Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass SurfaceTool where\n        type BaseClass SurfaceTool = Reference\n        super = coerce\n\n-- | A TCP server.\n--    Listens to connections on a port and returns a @StreamPeerTCP@ when it gets an incoming connection.\nnewtype TCP_Server = TCP_Server Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass TCP_Server where\n        type BaseClass TCP_Server = Reference\n        super = coerce\n\n-- | Tabbed container.\n--   Sets the active tab's @visible@ property to the value @true@. Sets all other children's to @false@.\n--   \t\tIgnores non-@Control@ children.\n--   \t\tIndividual tabs are always visible unless you use @method set_tab_disabled@ and @method set_tab_title@ to hide it.\n--   \t\tTo hide only a tab's content, nest the content inside a child @Control@, so it receives the @TabContainer@'s visibility setting instead.\nnewtype TabContainer = TabContainer Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass TabContainer where\n        type BaseClass TabContainer = Container\n        super = coerce\n\n-- | Tabs control.\n--   Simple tabs control, similar to @TabContainer@ but is only in charge of drawing tabs, not interact with children.\nnewtype Tabs = Tabs Object\n                 deriving newtype AsVariant\n\ninstance HasBaseClass Tabs where\n        type BaseClass Tabs = Control\n        super = coerce\n\n-- | Multiline text editing control.\n--   TextEdit is meant for editing large, multiline text. It also has facilities for editing code, such as syntax highlighting support and multiple levels of undo/redo.\nnewtype TextEdit = TextEdit Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass TextEdit where\n        type BaseClass TextEdit = Control\n        super = coerce\n\nnewtype TextFile = TextFile Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass TextFile where\n        type BaseClass TextFile = Resource\n        super = coerce\n\n-- | Texture for 2D and 3D.\n--   A texture works by registering an image in the video hardware, which then can be used in 3D models or 2D @Sprite@ or GUI @Control@.\n--   \t\tTextures are often created by loading them from a file. See @method @GDScript.load@.\n--   \t\t@Texture@ is a base for other resources. It cannot be used directly.\nnewtype Texture = Texture Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass Texture where\n        type BaseClass Texture = Resource\n        super = coerce\n\n-- | Texture with 3 dimensions.\n--   Texture3D is a 3-dimensional texture that has a width, height, and depth.\nnewtype Texture3D = Texture3D Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass Texture3D where\n        type BaseClass Texture3D = TextureLayered\n        super = coerce\n\n-- | Array of textures stored in a single primitive.\n--   @TextureArray@s store an array of images in a single @Texture@ primitive. Each layer of the texture array has its own mipmap chain. This makes it is a good alternative to texture atlases.\nnewtype TextureArray = TextureArray Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass TextureArray where\n        type BaseClass TextureArray = TextureLayered\n        super = coerce\n\n-- | Texture-based button. Supports Pressed, Hover, Disabled and Focused states.\n--   @TextureButton@ has the same functionality as @Button@, except it uses sprites instead of Godot's @Theme@ resource. It is faster to create, but it doesn't support localization like more complex @Control@s.\n--   \t\tThe \"normal\" state must contain a texture (@texture_normal@); other textures are optional.\nnewtype TextureButton = TextureButton Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass TextureButton where\n        type BaseClass TextureButton = BaseButton\n        super = coerce\n\n-- | Base class for 3D texture types.\n--   Base class for @Texture3D@ and @TextureArray@. Cannot be used directly, but contains all the functions necessary for accessing and using @Texture3D@ and @TextureArray@. Data is set on a per-layer basis. For @Texture3D@s, the layer sepcifies the depth or Z-index, they can be treated as a bunch of 2D slices. Similarly, for @TextureArray@s, the layer specifies the array layer.\nnewtype TextureLayered = TextureLayered Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass TextureLayered where\n        type BaseClass TextureLayered = Resource\n        super = coerce\n\n-- | Texture-based progress bar. Useful for loading screens and life or stamina bars.\n--   TextureProgress works like @ProgressBar@, but uses up to 3 textures instead of Godot's @Theme@ resource. It can be used to create horizontal, vertical and radial progress bars.\nnewtype TextureProgress = TextureProgress Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass TextureProgress where\n        type BaseClass TextureProgress = Range\n        super = coerce\n\n-- | Control for drawing textures.\n--   Used to draw icons and sprites in a user interface. The texture's placement can be controlled with the @stretch_mode@ property. It can scale, tile, or stay centered inside its bounding rectangle.\n--   \t\t__Note:__ You should enable @flip_v@ when using a TextureRect to display a @ViewportTexture@. Alternatively, you can enable @Viewport.render_target_v_flip@ on the Viewport. Otherwise, the image will appear upside down.\nnewtype TextureRect = TextureRect Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass TextureRect where\n        type BaseClass TextureRect = Control\n        super = coerce\n\n-- | Theme for controls.\n--   A theme for skinning controls. Controls can be skinned individually, but for complex applications, it's more practical to just create a global theme that defines everything. This theme can be applied to any @Control@; the Control and its children will automatically use it.\n--   \t\tTheme resources can alternatively be loaded by writing them in a @.theme@ file, see the documentation for more information.\nnewtype Theme = Theme Object\n                  deriving newtype AsVariant\n\ninstance HasBaseClass Theme where\n        type BaseClass Theme = Resource\n        super = coerce\n\n-- | Node for 2D tile-based maps.\n--    Tilemaps use a @TileSet@ which contain a list of tiles (textures plus optional collision, navigation, and/or occluder shapes) which are used to create grid-based maps.\nnewtype TileMap = TileMap Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass TileMap where\n        type BaseClass TileMap = Node2D\n        super = coerce\n\n-- | Tile library for tilemaps.\n--   A TileSet is a library of tiles for a @TileMap@. It contains a list of tiles, each consisting of a sprite and optional collision shapes.\n--   \t\tTiles are referenced by a unique integer ID.\nnewtype TileSet = TileSet Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass TileSet where\n        type BaseClass TileSet = Resource\n        super = coerce\n\n-- | A countdown timer.\n--   Counts down a specified interval and emits a signal on reaching 0. Can be set to repeat or \"one-shot\" mode.\n--   \t\t__Note:__ To create an one-shot timer without instantiating a node, use @method SceneTree.create_timer@.\nnewtype Timer = Timer Object\n                  deriving newtype AsVariant\n\ninstance HasBaseClass Timer where\n        type BaseClass Timer = Node\n        super = coerce\n\n-- | Flat button helper class.\n--   This is a helper class to generate a flat @Button@ (see @Button.flat@), creating a @ToolButton@ is equivalent to:\n--   \t\t\n--   @\n--   \n--   \t\tvar btn = Button.new()\n--   \t\tbtn.flat = true\n--   \t\t\n--   @\nnewtype ToolButton = ToolButton Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass ToolButton where\n        type BaseClass ToolButton = Button\n        super = coerce\n\n-- | Button for touch screen devices for gameplay use.\n--   TouchScreenButton allows you to create on-screen buttons for touch devices. It's intended for gameplay use, such as a unit you have to touch to move.\n--   \t\tThis node inherits from @Node2D@. Unlike with @Control@ nodes, you cannot set anchors on it. If you want to create menus or user interfaces, you may want to use @Button@ nodes instead. To make button nodes react to touch events, you can enable the Emulate Mouse option in the Project Settings.\n--   \t\tYou can configure TouchScreenButton to be visible only on touch devices, helping you develop your game both for desktop and mobile devices.\nnewtype TouchScreenButton = TouchScreenButton Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass TouchScreenButton where\n        type BaseClass TouchScreenButton = Node2D\n        super = coerce\n\n-- | Language Translation.\n--   Translations are resources that can be loaded and unloaded on demand. They map a string to another string.\nnewtype Translation = Translation Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass Translation where\n        type BaseClass Translation = Resource\n        super = coerce\n\n-- | Server that manages all translations.\n--    Translations can be set to it and removed from it.\nnewtype TranslationServer = TranslationServer Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass TranslationServer where\n        type BaseClass TranslationServer = Object\n        super = coerce\n\n-- | Control to show a tree of items.\n--   This shows a tree of items that can be selected, expanded and collapsed. The tree can have multiple columns with custom controls like text editing, buttons and popups. It can be useful for structured displays and interactions.\n--   \t\tTrees are built via code, using @TreeItem@ objects to create the structure. They have a single root but multiple roots can be simulated if a dummy hidden root is added.\n--   \t\t\n--   @\n--   \n--   \t\tfunc _ready():\n--   \t\t    var tree = Tree.new()\n--   \t\t    var root = tree.create_item()\n--   \t\t    tree.set_hide_root(true)\n--   \t\t    var child1 = tree.create_item(root)\n--   \t\t    var child2 = tree.create_item(root)\n--   \t\t    var subchild1 = tree.create_item(child1)\n--   \t\t    subchild1.set_text(0, \"Subchild1\")\n--   \t\t\n--   @\n--   \n--   \t\tTo iterate over all the @TreeItem@ objects in a @Tree@ object, use @method TreeItem.get_next@ and @method TreeItem.get_children@ after getting the root through @method get_root@. You can use @method Object.free@ on a @TreeItem@ to remove it from the @Tree@.\nnewtype Tree = Tree Object\n                 deriving newtype AsVariant\n\ninstance HasBaseClass Tree where\n        type BaseClass Tree = Control\n        super = coerce\n\n-- | Control for a single item inside a @Tree@.\n--    May have child @TreeItem@s and be styled as well as contain buttons.\n--   \t\tYou can remove a @TreeItem@ by using @method Object.free@.\nnewtype TreeItem = TreeItem Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass TreeItem where\n        type BaseClass TreeItem = Object\n        super = coerce\n\n-- | Internal mesh type.\n--   Mesh type used internally for collision calculations.\nnewtype TriangleMesh = TriangleMesh Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass TriangleMesh where\n        type BaseClass TriangleMesh = Reference\n        super = coerce\n\n-- | Smoothly animates a node's properties over time.\n--   Tweens are useful for animations requiring a numerical property to be interpolated over a range of values. The name @i@tween@/i@ comes from @i@in-betweening@/i@, an animation technique where you specify @i@keyframes@/i@ and the computer interpolates the frames that appear between them.\n--   \t\t@Tween@ is more suited than @AnimationPlayer@ for animations where you don't know the final values in advance. For example, interpolating a dynamically-chosen camera zoom value is best done with a @Tween@ node; it would be difficult to do the same thing with an @AnimationPlayer@ node.\n--   \t\tHere is a brief usage example that makes a 2D node move smoothly between two positions:\n--   \t\t\n--   @\n--   \n--   \t\tvar tween = get_node(\"Tween\")\n--   \t\ttween.interpolate_property($Node2D, \"position\",\n--   \t\t        Vector2(0, 0), Vector2(100, 100), 1,\n--   \t\t        Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)\n--   \t\ttween.start()\n--   \t\t\n--   @\n--   \n--   \t\tMany methods require a property name, such as @\"position\"@ above. You can find the correct property name by hovering over the property in the Inspector. You can also provide the components of a property directly by using @\"property:component\"@ (eg. @position:x@), where it would only apply to that particular component.\n--   \t\tMany of the methods accept @trans_type@ and @ease_type@. The first accepts an @enum TransitionType@ constant, and refers to the way the timing of the animation is handled (see @url=https://easings.net/@easings.net@/url@ for some examples). The second accepts an @enum EaseType@ constant, and controls where the @trans_type@ is applied to the interpolation (in the beginning, the end, or both). If you don't know which transition and easing to pick, you can try different @enum TransitionType@ constants with @EASE_IN_OUT@, and use the one that looks best.\n--   \t\t@url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/tween_cheatsheet.png@Tween easing and transition types cheatsheet@/url@\nnewtype Tween = Tween Object\n                  deriving newtype AsVariant\n\ninstance HasBaseClass Tween where\n        type BaseClass Tween = Node\n        super = coerce\n\nnewtype UPNP = UPNP Object\n                 deriving newtype AsVariant\n\ninstance HasBaseClass UPNP where\n        type BaseClass UPNP = Reference\n        super = coerce\n\nnewtype UPNPDevice = UPNPDevice Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass UPNPDevice where\n        type BaseClass UPNPDevice = Reference\n        super = coerce\n\n-- | Helper to manage undo/redo operations in the editor or custom tools.\n--    It works by registering methods and property changes inside \"actions\".\n--   \t\tCommon behavior is to create an action, then add do/undo calls to functions or property changes, then committing the action.\n--   \t\tHere's an example on how to add an action to the Godot editor's own @UndoRedo@, from a plugin:\n--   \t\t\n--   @\n--   \n--   \t\tvar undo_redo = get_undo_redo() # Method of EditorPlugin.\n--   \n--   \t\tfunc do_something():\n--   \t\t    pass # Put your code here.\n--   \n--   \t\tfunc undo_something():\n--   \t\t    pass # Put here the code that reverts what's done by \"do_something()\".\n--   \n--   \t\tfunc _on_MyButton_pressed():\n--   \t\t    var node = get_node(\"MyNode2D\")\n--   \t\t    undo_redo.create_action(\"Move the node\")\n--   \t\t    undo_redo.add_do_method(self, \"do_something\")\n--   \t\t    undo_redo.add_undo_method(self, \"undo_something\")\n--   \t\t    undo_redo.add_do_property(node, \"position\", Vector2(100,100))\n--   \t\t    undo_redo.add_undo_property(node, \"position\", node.position)\n--   \t\t    undo_redo.commit_action()\n--   \t\t\n--   @\n--   \n--   \t\t@method create_action@, @method add_do_method@, @method add_undo_method@, @method add_do_property@, @method add_undo_property@, and @method commit_action@ should be called one after the other, like in the example. Not doing so could lead to crashes.\n--   \t\tIf you don't need to register a method, you can leave @method add_do_method@ and @method add_undo_method@ out; the same goes for properties. You can also register more than one method/property.\nnewtype UndoRedo = UndoRedo Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass UndoRedo where\n        type BaseClass UndoRedo = Object\n        super = coerce\n\n-- | Vertical box container.\n--    See @BoxContainer@.\nnewtype VBoxContainer = VBoxContainer Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass VBoxContainer where\n        type BaseClass VBoxContainer = BoxContainer\n        super = coerce\n\n-- | Vertical scroll bar.\n--   Vertical version of @ScrollBar@, which goes from top (min) to bottom (max).\nnewtype VScrollBar = VScrollBar Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass VScrollBar where\n        type BaseClass VScrollBar = ScrollBar\n        super = coerce\n\n-- | Vertical version of @Separator@.\n--    Even though it looks vertical, it is used to separate objects horizontally.\nnewtype VSeparator = VSeparator Object\n                       deriving newtype AsVariant\n\ninstance HasBaseClass VSeparator where\n        type BaseClass VSeparator = Separator\n        super = coerce\n\n-- | Vertical slider.\n--    See @Slider@. This one goes from bottom (min) to top (max).\n--   \t\t__Note:__ The @signal Range.changed@ and @signal Range.value_changed@ signals are part of the @Range@ class which this class inherits from.\nnewtype VSlider = VSlider Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass VSlider where\n        type BaseClass VSlider = Slider\n        super = coerce\n\n-- | Vertical split container.\n--    See @SplitContainer@. This goes from top to bottom.\nnewtype VSplitContainer = VSplitContainer Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass VSplitContainer where\n        type BaseClass VSplitContainer = SplitContainer\n        super = coerce\n\n-- | Physics body that simulates the behavior of a car.\n--   This node implements all the physics logic needed to simulate a car. It is based on the raycast vehicle system commonly found in physics engines. You will need to add a @CollisionShape@ for the main body of your vehicle and add @VehicleWheel@ nodes for the wheels. You should also add a @MeshInstance@ to this node for the 3D model of your car but this model should not include meshes for the wheels. You should control the vehicle by using the @brake@, @engine_force@, and @steering@ properties and not change the position or orientation of this node directly.\n--   \t\t__Note:__ The origin point of your VehicleBody will determine the center of gravity of your vehicle so it is better to keep this low and move the @CollisionShape@ and @MeshInstance@ upwards.\n--   \t\t__Note:__ This class has known issues and isn't designed to provide realistic 3D vehicle physics. If you want advanced vehicle physics, you will probably have to write your own physics integration using another @PhysicsBody@ class.\nnewtype VehicleBody = VehicleBody Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass VehicleBody where\n        type BaseClass VehicleBody = RigidBody\n        super = coerce\n\n-- | Physics object that simulates the behavior of a wheel.\n--   This node needs to be used as a child node of @VehicleBody@ and simulates the behavior of one of its wheels. This node also acts as a collider to detect if the wheel is touching a surface.\n--   \t\t__Note:__ This class has known issues and isn't designed to provide realistic 3D vehicle physics. If you want advanced vehicle physics, you will probably have to write your own physics integration using another @PhysicsBody@ class.\nnewtype VehicleWheel = VehicleWheel Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass VehicleWheel where\n        type BaseClass VehicleWheel = Spatial\n        super = coerce\n\n-- | Control for playing video streams.\n--   Control node for playing video streams using @VideoStream@ resources.\n--   \t\tSupported video formats are @url=https://www.webmproject.org/@WebM@/url@ (@VideoStreamWebm@), @url=https://www.theora.org/@Ogg Theora@/url@ (@VideoStreamTheora@), and any format exposed via a GDNative plugin using @VideoStreamGDNative@.\nnewtype VideoPlayer = VideoPlayer Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass VideoPlayer where\n        type BaseClass VideoPlayer = Control\n        super = coerce\n\n-- | Base resource for video streams.\n--   Base resource type for all video streams. Classes that derive from @VideoStream@ can all be used as resource types to play back videos in @VideoPlayer@.\nnewtype VideoStream = VideoStream Object\n                        deriving newtype AsVariant\n\ninstance HasBaseClass VideoStream where\n        type BaseClass VideoStream = Resource\n        super = coerce\n\nnewtype VideoStreamGDNative = VideoStreamGDNative Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass VideoStreamGDNative where\n        type BaseClass VideoStreamGDNative = VideoStream\n        super = coerce\n\nnewtype VideoStreamTheora = VideoStreamTheora Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass VideoStreamTheora where\n        type BaseClass VideoStreamTheora = VideoStream\n        super = coerce\n\nnewtype VideoStreamWebm = VideoStreamWebm Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass VideoStreamWebm where\n        type BaseClass VideoStreamWebm = VideoStream\n        super = coerce\n\n-- | Creates a sub-view into the screen.\n--   A Viewport creates a different view into the screen, or a sub-view inside another viewport. Children 2D Nodes will display on it, and children Camera 3D nodes will render on it too.\n--   \t\tOptionally, a viewport can have its own 2D or 3D world, so they don't share what they draw with other viewports.\n--   \t\tIf a viewport is a child of a @ViewportContainer@, it will automatically take up its size, otherwise it must be set manually.\n--   \t\tViewports can also choose to be audio listeners, so they generate positional audio depending on a 2D or 3D camera child of it.\n--   \t\tAlso, viewports can be assigned to different screens in case the devices have multiple screens.\n--   \t\tFinally, viewports can also behave as render targets, in which case they will not be visible unless the associated texture is used to draw.\nnewtype Viewport = Viewport Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass Viewport where\n        type BaseClass Viewport = Node\n        super = coerce\n\n-- | Control for holding @Viewport@s.\n--   A @Container@ node that holds a @Viewport@, automatically setting its size.\n--   \t\t__Note:__ Changing a ViewportContainer's @Control.rect_scale@ will cause its contents to appear distorted. To change its visual size without causing distortion, adjust the node's margins instead (if it's not already in a container).\nnewtype ViewportContainer = ViewportContainer Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass ViewportContainer where\n        type BaseClass ViewportContainer = Container\n        super = coerce\n\n-- | Texture which displays the content of a @Viewport@.\n--   Displays the content of a @Viewport@ node as a dynamic @Texture@. This can be used to mix controls, 2D, and 3D elements in the same scene.\n--   \t\tTo create a ViewportTexture in code, use the @method Viewport.get_texture@ method on the target viewport.\nnewtype ViewportTexture = ViewportTexture Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass ViewportTexture where\n        type BaseClass ViewportTexture = Texture\n        super = coerce\n\n-- | Enables certain nodes only when approximately visible.\n--   The VisibilityEnabler will disable @RigidBody@ and @AnimationPlayer@ nodes when they are not visible. It will only affect other nodes within the same scene as the VisibilityEnabler itself.\n--   \t\tIf you just want to receive notifications, use @VisibilityNotifier@ instead.\n--   \t\t__Note:__ VisibilityEnabler uses an approximate heuristic for performance reasons. It doesn't take walls and other occlusion into account. The heuristic is an implementation detail and may change in future versions. If you need precise visibility checking, use another method such as adding an @Area@ node as a child of a @Camera@ node and/or @method Vector3.dot@.\n--   \t\t__Note:__ VisibilityEnabler will not affect nodes added after scene initialization.\nnewtype VisibilityEnabler = VisibilityEnabler Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass VisibilityEnabler where\n        type BaseClass VisibilityEnabler = VisibilityNotifier\n        super = coerce\n\n-- | Enables certain nodes only when approximately visible.\n--   The VisibilityEnabler2D will disable @RigidBody2D@, @AnimationPlayer@, and other nodes when they are not visible. It will only affect nodes with the same root node as the VisibilityEnabler2D, and the root node itself.\n--   \t\tIf you just want to receive notifications, use @VisibilityNotifier2D@ instead.\n--   \t\t__Note:__ For performance reasons, VisibilityEnabler2D uses an approximate heuristic with precision determined by @ProjectSettings.world/2d/cell_size@. If you need precise visibility checking, use another method such as adding an @Area2D@ node as a child of a @Camera2D@ node.\n--   \t\t__Note:__ VisibilityEnabler2D will not affect nodes added after scene initialization.\nnewtype VisibilityEnabler2D = VisibilityEnabler2D Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass VisibilityEnabler2D where\n        type BaseClass VisibilityEnabler2D = VisibilityNotifier2D\n        super = coerce\n\n-- | Detects approximately when the node is visible on screen.\n--   The VisibilityNotifier detects when it is visible on the screen. It also notifies when its bounding rectangle enters or exits the screen or a @Camera@'s view.\n--   \t\tIf you want nodes to be disabled automatically when they exit the screen, use @VisibilityEnabler@ instead.\n--   \t\t__Note:__ VisibilityNotifier uses an approximate heuristic for performance reasons. It does't take walls and other occlusion into account. The heuristic is an implementation detail and may change in future versions. If you need precise visibility checking, use another method such as adding an @Area@ node as a child of a @Camera@ node and/or @method Vector3.dot@.\nnewtype VisibilityNotifier = VisibilityNotifier Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass VisibilityNotifier where\n        type BaseClass VisibilityNotifier = Spatial\n        super = coerce\n\n-- | Detects approximately when the node is visible on screen.\n--   The VisibilityNotifier2D detects when it is visible on the screen. It also notifies when its bounding rectangle enters or exits the screen or a viewport.\n--   \t\tIf you want nodes to be disabled automatically when they exit the screen, use @VisibilityEnabler2D@ instead.\n--   \t\t__Note:__ For performance reasons, VisibilityNotifier2D uses an approximate heuristic with precision determined by @ProjectSettings.world/2d/cell_size@. If you need precise visibility checking, use another method such as adding an @Area2D@ node as a child of a @Camera2D@ node.\nnewtype VisibilityNotifier2D = VisibilityNotifier2D Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass VisibilityNotifier2D where\n        type BaseClass VisibilityNotifier2D = Node2D\n        super = coerce\n\n-- | Parent of all visual 3D nodes.\n--   The @VisualInstance@ is used to connect a resource to a visual representation. All visual 3D nodes inherit from the @VisualInstance@. In general, you should not access the @VisualInstance@ properties directly as they are accessed and managed by the nodes that inherit from @VisualInstance@. @VisualInstance@ is the node representation of the @VisualServer@ instance.\nnewtype VisualInstance = VisualInstance Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass VisualInstance where\n        type BaseClass VisualInstance = Spatial\n        super = coerce\n\nnewtype VisualScript = VisualScript Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass VisualScript where\n        type BaseClass VisualScript = Script\n        super = coerce\n\nnewtype VisualScriptBasicTypeConstant = VisualScriptBasicTypeConstant Object\n                                          deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptBasicTypeConstant where\n        type BaseClass VisualScriptBasicTypeConstant = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptBuiltinFunc = VisualScriptBuiltinFunc Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptBuiltinFunc where\n        type BaseClass VisualScriptBuiltinFunc = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptClassConstant = VisualScriptClassConstant Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptClassConstant where\n        type BaseClass VisualScriptClassConstant = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptComment = VisualScriptComment Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptComment where\n        type BaseClass VisualScriptComment = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptComposeArray = VisualScriptComposeArray Object\n                                     deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptComposeArray where\n        type BaseClass VisualScriptComposeArray = VisualScriptLists\n        super = coerce\n\nnewtype VisualScriptCondition = VisualScriptCondition Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptCondition where\n        type BaseClass VisualScriptCondition = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptConstant = VisualScriptConstant Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptConstant where\n        type BaseClass VisualScriptConstant = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptConstructor = VisualScriptConstructor Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptConstructor where\n        type BaseClass VisualScriptConstructor = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptCustomNode = VisualScriptCustomNode Object\n                                   deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptCustomNode where\n        type BaseClass VisualScriptCustomNode = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptDeconstruct = VisualScriptDeconstruct Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptDeconstruct where\n        type BaseClass VisualScriptDeconstruct = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptEmitSignal = VisualScriptEmitSignal Object\n                                   deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptEmitSignal where\n        type BaseClass VisualScriptEmitSignal = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptEngineSingleton = VisualScriptEngineSingleton Object\n                                        deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptEngineSingleton where\n        type BaseClass VisualScriptEngineSingleton = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptExpression = VisualScriptExpression Object\n                                   deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptExpression where\n        type BaseClass VisualScriptExpression = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptFunction = VisualScriptFunction Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptFunction where\n        type BaseClass VisualScriptFunction = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptFunctionCall = VisualScriptFunctionCall Object\n                                     deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptFunctionCall where\n        type BaseClass VisualScriptFunctionCall = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptFunctionState = VisualScriptFunctionState Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptFunctionState where\n        type BaseClass VisualScriptFunctionState = Reference\n        super = coerce\n\nnewtype VisualScriptGlobalConstant = VisualScriptGlobalConstant Object\n                                       deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptGlobalConstant where\n        type BaseClass VisualScriptGlobalConstant = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptIndexGet = VisualScriptIndexGet Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptIndexGet where\n        type BaseClass VisualScriptIndexGet = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptIndexSet = VisualScriptIndexSet Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptIndexSet where\n        type BaseClass VisualScriptIndexSet = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptInputAction = VisualScriptInputAction Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptInputAction where\n        type BaseClass VisualScriptInputAction = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptIterator = VisualScriptIterator Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptIterator where\n        type BaseClass VisualScriptIterator = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptLists = VisualScriptLists Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptLists where\n        type BaseClass VisualScriptLists = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptLocalVar = VisualScriptLocalVar Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptLocalVar where\n        type BaseClass VisualScriptLocalVar = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptLocalVarSet = VisualScriptLocalVarSet Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptLocalVarSet where\n        type BaseClass VisualScriptLocalVarSet = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptMathConstant = VisualScriptMathConstant Object\n                                     deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptMathConstant where\n        type BaseClass VisualScriptMathConstant = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptNode = VisualScriptNode Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptNode where\n        type BaseClass VisualScriptNode = Resource\n        super = coerce\n\nnewtype VisualScriptOperator = VisualScriptOperator Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptOperator where\n        type BaseClass VisualScriptOperator = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptPreload = VisualScriptPreload Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptPreload where\n        type BaseClass VisualScriptPreload = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptPropertyGet = VisualScriptPropertyGet Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptPropertyGet where\n        type BaseClass VisualScriptPropertyGet = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptPropertySet = VisualScriptPropertySet Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptPropertySet where\n        type BaseClass VisualScriptPropertySet = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptResourcePath = VisualScriptResourcePath Object\n                                     deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptResourcePath where\n        type BaseClass VisualScriptResourcePath = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptReturn = VisualScriptReturn Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptReturn where\n        type BaseClass VisualScriptReturn = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptSceneNode = VisualScriptSceneNode Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptSceneNode where\n        type BaseClass VisualScriptSceneNode = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptSceneTree = VisualScriptSceneTree Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptSceneTree where\n        type BaseClass VisualScriptSceneTree = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptSelect = VisualScriptSelect Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptSelect where\n        type BaseClass VisualScriptSelect = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptSelf = VisualScriptSelf Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptSelf where\n        type BaseClass VisualScriptSelf = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptSequence = VisualScriptSequence Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptSequence where\n        type BaseClass VisualScriptSequence = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptSubCall = VisualScriptSubCall Object\n                                deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptSubCall where\n        type BaseClass VisualScriptSubCall = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptSwitch = VisualScriptSwitch Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptSwitch where\n        type BaseClass VisualScriptSwitch = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptTypeCast = VisualScriptTypeCast Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptTypeCast where\n        type BaseClass VisualScriptTypeCast = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptVariableGet = VisualScriptVariableGet Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptVariableGet where\n        type BaseClass VisualScriptVariableGet = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptVariableSet = VisualScriptVariableSet Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptVariableSet where\n        type BaseClass VisualScriptVariableSet = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptWhile = VisualScriptWhile Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptWhile where\n        type BaseClass VisualScriptWhile = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptYield = VisualScriptYield Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptYield where\n        type BaseClass VisualScriptYield = VisualScriptNode\n        super = coerce\n\nnewtype VisualScriptYieldSignal = VisualScriptYieldSignal Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptYieldSignal where\n        type BaseClass VisualScriptYieldSignal = VisualScriptNode\n        super = coerce\n\n-- | Server for anything visible.\n--    The visual server is the API backend for everything visible. The whole scene system mounts on it to display.\n--   \t\tThe visual server is completely opaque, the internals are entirely implementation specific and cannot be accessed.\n--   \t\tThe visual server can be used to bypass the scene system entirely.\n--   \t\tResources are created using the @*_create@ functions.\n--   \t\tAll objects are drawn to a viewport. You can use the @Viewport@ attached to the @SceneTree@ or you can create one yourself with @method viewport_create@. When using a custom scenario or canvas, the scenario or canvas needs to be attached to the viewport using @method viewport_set_scenario@ or @method viewport_attach_canvas@.\n--   \t\tIn 3D, all visual objects must be associated with a scenario. The scenario is a visual representation of the world. If accessing the visual server from a running game, the scenario can be accessed from the scene tree from any @Spatial@ node with @method Spatial.get_world@. Otherwise, a scenario can be created with @method scenario_create@.\n--   \t\tSimilarly in 2D, a canvas is needed to draw all canvas items.\n--   \t\tIn 3D, all visible objects are comprised of a resource and an instance. A resource can be a mesh, a particle system, a light, or any other 3D object. In order to be visible resources must be attached to an instance using @method instance_set_base@. The instance must also be attached to the scenario using @method instance_set_scenario@ in order to be visible.\n--   \t\tIn 2D, all visible objects are some form of canvas item. In order to be visible, a canvas item needs to be the child of a canvas attached to a viewport, or it needs to be the child of another canvas item that is eventually attached to the canvas.\nnewtype VisualServer = VisualServer Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass VisualServer where\n        type BaseClass VisualServer = Object\n        super = coerce\n\n-- | A custom shader program with a visual editor.\n--   This class allows you to define a custom shader program that can be used for various materials to render objects.\n--   \t\tThe visual shader editor creates the shader.\nnewtype VisualShader = VisualShader Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass VisualShader where\n        type BaseClass VisualShader = Shader\n        super = coerce\n\n-- | Base class for nodes in a visual shader graph.\nnewtype VisualShaderNode = VisualShaderNode Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNode where\n        type BaseClass VisualShaderNode = Resource\n        super = coerce\n\n-- | A boolean constant to be used within the visual shader graph.\n--   Has only one output port and no inputs.\n--   \t\tTranslated to @bool@ in the shader language.\nnewtype VisualShaderNodeBooleanConstant = VisualShaderNodeBooleanConstant Object\n                                            deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeBooleanConstant where\n        type BaseClass VisualShaderNodeBooleanConstant = VisualShaderNode\n        super = coerce\n\n-- | A boolean uniform to be used within the visual shader graph.\n--   Translated to @uniform bool@ in the shader language.\nnewtype VisualShaderNodeBooleanUniform = VisualShaderNodeBooleanUniform Object\n                                           deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeBooleanUniform where\n        type BaseClass VisualShaderNodeBooleanUniform =\n             VisualShaderNodeUniform\n        super = coerce\n\n-- | A @Color@ constant to be used within the visual shader graph.\n--   Has two output ports representing RGB and alpha channels of @Color@.\n--   \t\tTranslated to @vec3 rgb@ and @float alpha@ in the shader language.\nnewtype VisualShaderNodeColorConstant = VisualShaderNodeColorConstant Object\n                                          deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeColorConstant where\n        type BaseClass VisualShaderNodeColorConstant = VisualShaderNode\n        super = coerce\n\n-- | A @Color@ function to be used within the visual shader graph.\n--   Accept a @Color@ to the input port and transform it according to @function@.\nnewtype VisualShaderNodeColorFunc = VisualShaderNodeColorFunc Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeColorFunc where\n        type BaseClass VisualShaderNodeColorFunc = VisualShaderNode\n        super = coerce\n\n-- | A @Color@ operator to be used within the visual shader graph.\n--   Applies @operator@ to two color inputs.\nnewtype VisualShaderNodeColorOp = VisualShaderNodeColorOp Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeColorOp where\n        type BaseClass VisualShaderNodeColorOp = VisualShaderNode\n        super = coerce\n\n-- | A @Color@ uniform to be used within the visual shader graph.\n--   Translated to @uniform vec4@ in the shader language.\nnewtype VisualShaderNodeColorUniform = VisualShaderNodeColorUniform Object\n                                         deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeColorUniform where\n        type BaseClass VisualShaderNodeColorUniform =\n             VisualShaderNodeUniform\n        super = coerce\n\n-- | A comparison function for common types within the visual shader graph.\n--   Compares @a@ and @b@ of @type@ by @function@. Returns a boolean scalar. Translates to @if@ instruction in shader code.\nnewtype VisualShaderNodeCompare = VisualShaderNodeCompare Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeCompare where\n        type BaseClass VisualShaderNodeCompare = VisualShaderNode\n        super = coerce\n\n-- | A @CubeMap@ sampling node to be used within the visual shader graph.\n--   Translated to @texture(cubemap, vec3)@ in the shader language. Returns a color vector and alpha channel as scalar.\nnewtype VisualShaderNodeCubeMap = VisualShaderNodeCubeMap Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeCubeMap where\n        type BaseClass VisualShaderNodeCubeMap = VisualShaderNode\n        super = coerce\n\n-- | A @CubeMap@ uniform node to be used within the visual shader graph.\n--   Translated to @uniform samplerCube@ in the shader language. The output value can be used as port for @VisualShaderNodeCubeMap@.\nnewtype VisualShaderNodeCubeMapUniform = VisualShaderNodeCubeMapUniform Object\n                                           deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeCubeMapUniform where\n        type BaseClass VisualShaderNodeCubeMapUniform =\n             VisualShaderNodeTextureUniform\n        super = coerce\n\n-- | Virtual class to define custom @VisualShaderNode@s for use in the Visual Shader Editor.\n--   By inheriting this class you can create a custom @VisualShader@ script addon which will be automatically added to the Visual Shader Editor. The @VisualShaderNode@'s behavior is defined by overriding the provided virtual methods.\n--   \t\tIn order for the node to be registered as an editor addon, you must use the @tool@ keyword and provide a @class_name@ for your custom script. For example:\n--   \t\t\n--   @\n--   \n--   \t\ttool\n--   \t\textends VisualShaderNodeCustom\n--   \t\tclass_name VisualShaderNodeNoise\n--   \t\t\n--   @\nnewtype VisualShaderNodeCustom = VisualShaderNodeCustom Object\n                                   deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeCustom where\n        type BaseClass VisualShaderNodeCustom = VisualShaderNode\n        super = coerce\n\n-- | Calculates the determinant of a @Transform@ within the visual shader graph.\n--   Translates to @deteminant(x)@ in the shader language.\nnewtype VisualShaderNodeDeterminant = VisualShaderNodeDeterminant Object\n                                        deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeDeterminant where\n        type BaseClass VisualShaderNodeDeterminant = VisualShaderNode\n        super = coerce\n\n-- | Calculates a dot product of two vectors within the visual shader graph.\n--   Translates to @dot(a, b)@ in the shader language.\nnewtype VisualShaderNodeDotProduct = VisualShaderNodeDotProduct Object\n                                       deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeDotProduct where\n        type BaseClass VisualShaderNodeDotProduct = VisualShaderNode\n        super = coerce\n\n-- | A custom visual shader graph expression written in Godot Shading Language.\n--   Custom Godot Shading Language expression, with a custom amount of input and output ports.\n--   \t\tThe provided code is directly injected into the graph's matching shader function (@vertex@, @fragment@, or @light@), so it cannot be used to to declare functions, varyings, uniforms, or global constants. See @VisualShaderNodeGlobalExpression@ for such global definitions.\nnewtype VisualShaderNodeExpression = VisualShaderNodeExpression Object\n                                       deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeExpression where\n        type BaseClass VisualShaderNodeExpression =\n             VisualShaderNodeGroupBase\n        super = coerce\n\n-- | Returns the vector that points in the same direction as a reference vector within the visual shader graph.\n--   Translates to @faceforward(N, I, Nref)@ in the shader language. The function has three vector parameters: @N@, the vector to orient, @I@, the incident vector, and @Nref@, the reference vector. If the dot product of @I@ and @Nref@ is smaller than zero the return value is @N@. Otherwise @-N@ is returned.\nnewtype VisualShaderNodeFaceForward = VisualShaderNodeFaceForward Object\n                                        deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeFaceForward where\n        type BaseClass VisualShaderNodeFaceForward = VisualShaderNode\n        super = coerce\n\n-- | A Fresnel effect to be used within the visual shader graph.\n--   Returns falloff based on the dot product of surface normal and view direction of camera (pass associated inputs to it).\nnewtype VisualShaderNodeFresnel = VisualShaderNodeFresnel Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeFresnel where\n        type BaseClass VisualShaderNodeFresnel = VisualShaderNode\n        super = coerce\n\n-- | A custom global visual shader graph expression written in Godot Shading Language.\n--   Custom Godot Shader Language expression, which is placed on top of the generated shader. You can place various function definitions inside to call later in @VisualShaderNodeExpression@s (which are injected in the main shader functions). You can also declare varyings, uniforms and global constants.\nnewtype VisualShaderNodeGlobalExpression = VisualShaderNodeGlobalExpression Object\n                                             deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeGlobalExpression where\n        type BaseClass VisualShaderNodeGlobalExpression =\n             VisualShaderNodeExpression\n        super = coerce\n\n-- | Base class for a family of nodes with variable amount of input and output ports within the visual shader graph.\n--   Currently, has no direct usage, use the derived classes instead.\nnewtype VisualShaderNodeGroupBase = VisualShaderNodeGroupBase Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeGroupBase where\n        type BaseClass VisualShaderNodeGroupBase = VisualShaderNode\n        super = coerce\n\nnewtype VisualShaderNodeIf = VisualShaderNodeIf Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeIf where\n        type BaseClass VisualShaderNodeIf = VisualShaderNode\n        super = coerce\n\nnewtype VisualShaderNodeInput = VisualShaderNodeInput Object\n                                  deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeInput where\n        type BaseClass VisualShaderNodeInput = VisualShaderNode\n        super = coerce\n\n-- | A boolean comparison operator to be used within the visual shader graph.\n--   Returns the boolean result of the comparison between @INF@ or @NaN@ and a scalar parameter.\nnewtype VisualShaderNodeIs = VisualShaderNodeIs Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeIs where\n        type BaseClass VisualShaderNodeIs = VisualShaderNode\n        super = coerce\n\n-- | Calculates an outer product of two vectors within the visual shader graph.\n--   @OuterProduct@ treats the first parameter @c@ as a column vector (matrix with one column) and the second parameter @r@ as a row vector (matrix with one row) and does a linear algebraic matrix multiply @c * r@, yielding a matrix whose number of rows is the number of components in @c@ and whose number of columns is the number of components in @r@.\nnewtype VisualShaderNodeOuterProduct = VisualShaderNodeOuterProduct Object\n                                         deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeOuterProduct where\n        type BaseClass VisualShaderNodeOuterProduct = VisualShaderNode\n        super = coerce\n\n-- | Represents the output shader parameters within the visual shader graph.\n--   This visual shader node is present in all shader graphs in form of \"Output\" block with mutliple output value ports.\nnewtype VisualShaderNodeOutput = VisualShaderNodeOutput Object\n                                   deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeOutput where\n        type BaseClass VisualShaderNodeOutput = VisualShaderNode\n        super = coerce\n\n-- | Clamps a scalar value within the visual shader graph.\n--   Constrains a value to lie between @min@ and @max@ values.\nnewtype VisualShaderNodeScalarClamp = VisualShaderNodeScalarClamp Object\n                                        deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeScalarClamp where\n        type BaseClass VisualShaderNodeScalarClamp = VisualShaderNode\n        super = coerce\n\nnewtype VisualShaderNodeScalarConstant = VisualShaderNodeScalarConstant Object\n                                           deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeScalarConstant where\n        type BaseClass VisualShaderNodeScalarConstant = VisualShaderNode\n        super = coerce\n\n-- | Calculates a scalar derivative within the visual shader graph.\n--   This node is only available in @Fragment@ and @Light@ visual shaders.\nnewtype VisualShaderNodeScalarDerivativeFunc = VisualShaderNodeScalarDerivativeFunc Object\n                                                 deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeScalarDerivativeFunc where\n        type BaseClass VisualShaderNodeScalarDerivativeFunc =\n             VisualShaderNode\n        super = coerce\n\nnewtype VisualShaderNodeScalarFunc = VisualShaderNodeScalarFunc Object\n                                       deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeScalarFunc where\n        type BaseClass VisualShaderNodeScalarFunc = VisualShaderNode\n        super = coerce\n\n-- | Linearly interpolates between two scalars within the visual shader graph.\n--   Translates to @mix(a, b, weight)@ in the shader language.\nnewtype VisualShaderNodeScalarInterp = VisualShaderNodeScalarInterp Object\n                                         deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeScalarInterp where\n        type BaseClass VisualShaderNodeScalarInterp = VisualShaderNode\n        super = coerce\n\nnewtype VisualShaderNodeScalarOp = VisualShaderNodeScalarOp Object\n                                     deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeScalarOp where\n        type BaseClass VisualShaderNodeScalarOp = VisualShaderNode\n        super = coerce\n\n-- | Calculates a scalar SmoothStep function within the visual shader graph.\n--   Translates to @smoothstep(edge0, edge1, x)@ in the shader language.\n--   \t\tReturns @0.0@ if @x@ is smaller than @edge0@ and @1.0@ if @x@ is larger than @edge1@. Otherwise the return value is interpolated between @0.0@ and @1.0@ using Hermite polynomials.\nnewtype VisualShaderNodeScalarSmoothStep = VisualShaderNodeScalarSmoothStep Object\n                                             deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeScalarSmoothStep where\n        type BaseClass VisualShaderNodeScalarSmoothStep = VisualShaderNode\n        super = coerce\n\n-- | A boolean/scalar function for use within the visual shader graph.\n--   Returns an associated scalar if the provided boolean value is @true@ or @false@.\nnewtype VisualShaderNodeScalarSwitch = VisualShaderNodeScalarSwitch Object\n                                         deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeScalarSwitch where\n        type BaseClass VisualShaderNodeScalarSwitch =\n             VisualShaderNodeSwitch\n        super = coerce\n\nnewtype VisualShaderNodeScalarUniform = VisualShaderNodeScalarUniform Object\n                                          deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeScalarUniform where\n        type BaseClass VisualShaderNodeScalarUniform =\n             VisualShaderNodeUniform\n        super = coerce\n\n-- | A boolean/vector function for use within the visual shader graph.\n--   Returns an associated vector if the provided boolean value is @true@ or @false@.\nnewtype VisualShaderNodeSwitch = VisualShaderNodeSwitch Object\n                                   deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeSwitch where\n        type BaseClass VisualShaderNodeSwitch = VisualShaderNode\n        super = coerce\n\n-- | Performs a texture lookup within the visual shader graph.\n--   Performs a lookup operation on the provided texture, with support for multiple texture sources to choose from.\nnewtype VisualShaderNodeTexture = VisualShaderNodeTexture Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeTexture where\n        type BaseClass VisualShaderNodeTexture = VisualShaderNode\n        super = coerce\n\n-- | Performs a uniform texture lookup within the visual shader graph.\n--   Performs a lookup operation on the texture provided as a uniform for the shader.\nnewtype VisualShaderNodeTextureUniform = VisualShaderNodeTextureUniform Object\n                                           deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeTextureUniform where\n        type BaseClass VisualShaderNodeTextureUniform =\n             VisualShaderNodeUniform\n        super = coerce\n\n-- | Performs a uniform texture lookup with triplanar within the visual shader graph.\n--   Performs a lookup operation on the texture provided as a uniform for the shader, with support for triplanar mapping.\nnewtype VisualShaderNodeTextureUniformTriplanar = VisualShaderNodeTextureUniformTriplanar Object\n                                                    deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeTextureUniformTriplanar where\n        type BaseClass VisualShaderNodeTextureUniformTriplanar =\n             VisualShaderNodeTextureUniform\n        super = coerce\n\n-- | Composes a @Transform@ from four @Vector3@s within the visual shader graph.\n--   Creates a 4x4 transform matrix using four vectors of type @vec3@. Each vector is one row in the matrix and the last column is a @vec4(0, 0, 0, 1)@.\nnewtype VisualShaderNodeTransformCompose = VisualShaderNodeTransformCompose Object\n                                             deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeTransformCompose where\n        type BaseClass VisualShaderNodeTransformCompose = VisualShaderNode\n        super = coerce\n\n-- | A @Transform@ constant for use within the visual shader graph.\n--   A constant @Transform@, which can be used as an input node.\nnewtype VisualShaderNodeTransformConstant = VisualShaderNodeTransformConstant Object\n                                              deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeTransformConstant where\n        type BaseClass VisualShaderNodeTransformConstant = VisualShaderNode\n        super = coerce\n\n-- | Decomposes a @Transform@ into four @Vector3@s within the visual shader graph.\n--   Takes a 4x4 transform matrix and decomposes it into four @vec3@ values, one from each row of the matrix.\nnewtype VisualShaderNodeTransformDecompose = VisualShaderNodeTransformDecompose Object\n                                               deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeTransformDecompose where\n        type BaseClass VisualShaderNodeTransformDecompose =\n             VisualShaderNode\n        super = coerce\n\n-- | Computes a @Transform@ function within the visual shader graph.\n--   Computes an inverse or transpose function on the provided @Transform@.\nnewtype VisualShaderNodeTransformFunc = VisualShaderNodeTransformFunc Object\n                                          deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeTransformFunc where\n        type BaseClass VisualShaderNodeTransformFunc = VisualShaderNode\n        super = coerce\n\n-- | Multiplies @Transform@ by @Transform@ within the visual shader graph.\n--   A multiplication operation on two transforms (4x4 matrices), with support for different multiplication operators.\nnewtype VisualShaderNodeTransformMult = VisualShaderNodeTransformMult Object\n                                          deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeTransformMult where\n        type BaseClass VisualShaderNodeTransformMult = VisualShaderNode\n        super = coerce\n\n-- | A @Transform@ uniform for use within the visual shader graph.\n--   Translated to @uniform mat4@ in the shader language.\nnewtype VisualShaderNodeTransformUniform = VisualShaderNodeTransformUniform Object\n                                             deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeTransformUniform where\n        type BaseClass VisualShaderNodeTransformUniform =\n             VisualShaderNodeUniform\n        super = coerce\n\n-- | Multiplies a @Transform@ and a @Vector3@ within the visual shader graph.\n--   A multiplication operation on a transform (4x4 matrix) and a vector, with support for different multiplication operators.\nnewtype VisualShaderNodeTransformVecMult = VisualShaderNodeTransformVecMult Object\n                                             deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeTransformVecMult where\n        type BaseClass VisualShaderNodeTransformVecMult = VisualShaderNode\n        super = coerce\n\n-- | A base type for the uniforms within the visual shader graph.\n--   A uniform represents a variable in the shader which is set externally, i.e. from the @ShaderMaterial@. Uniforms are exposed as properties in the @ShaderMaterial@ and can be assigned from the inspector or from a script.\nnewtype VisualShaderNodeUniform = VisualShaderNodeUniform Object\n                                    deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeUniform where\n        type BaseClass VisualShaderNodeUniform = VisualShaderNode\n        super = coerce\n\n-- | A @Vector3@ constant to be used within the visual shader graph.\n--   A constant @Vector3@, which can be used as an input node.\nnewtype VisualShaderNodeVec3Constant = VisualShaderNodeVec3Constant Object\n                                         deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeVec3Constant where\n        type BaseClass VisualShaderNodeVec3Constant = VisualShaderNode\n        super = coerce\n\n-- | A @Vector3@ uniform to be used within the visual shader graph.\n--   Translated to @uniform vec3@ in the shader language.\nnewtype VisualShaderNodeVec3Uniform = VisualShaderNodeVec3Uniform Object\n                                        deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeVec3Uniform where\n        type BaseClass VisualShaderNodeVec3Uniform =\n             VisualShaderNodeUniform\n        super = coerce\n\n-- | Clamps a vector value within the visual shader graph.\n--   Constrains a value to lie between @min@ and @max@ values. The operation is performed on each component of the vector individually.\nnewtype VisualShaderNodeVectorClamp = VisualShaderNodeVectorClamp Object\n                                        deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeVectorClamp where\n        type BaseClass VisualShaderNodeVectorClamp = VisualShaderNode\n        super = coerce\n\n-- | Composes a @Vector3@ from three scalars within the visual shader graph.\n--   Creates a @vec3@ using three scalar values that can be provided from separate inputs.\nnewtype VisualShaderNodeVectorCompose = VisualShaderNodeVectorCompose Object\n                                          deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeVectorCompose where\n        type BaseClass VisualShaderNodeVectorCompose = VisualShaderNode\n        super = coerce\n\n-- | Decomposes a @Vector3@ into three scalars within the visual shader graph.\n--   Takes a @vec3@ and decomposes it into three scalar values that can be used as separate inputs.\nnewtype VisualShaderNodeVectorDecompose = VisualShaderNodeVectorDecompose Object\n                                            deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeVectorDecompose where\n        type BaseClass VisualShaderNodeVectorDecompose = VisualShaderNode\n        super = coerce\n\n-- | Calculates a vector derivative within the visual shader graph.\n--   This node is only available in @Fragment@ and @Light@ visual shaders.\nnewtype VisualShaderNodeVectorDerivativeFunc = VisualShaderNodeVectorDerivativeFunc Object\n                                                 deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeVectorDerivativeFunc where\n        type BaseClass VisualShaderNodeVectorDerivativeFunc =\n             VisualShaderNode\n        super = coerce\n\n-- | Returns the distance between two points. To be used within the visual shader graph.\n--   Calculates distance from point represented by vector @p0@ to vector @p1@.\n--   \t\tTranslated to @distance(p0, p1)@ in the shader language.\nnewtype VisualShaderNodeVectorDistance = VisualShaderNodeVectorDistance Object\n                                           deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeVectorDistance where\n        type BaseClass VisualShaderNodeVectorDistance = VisualShaderNode\n        super = coerce\n\n-- | A vector function to be used within the visual shader graph.\n--   A visual shader node able to perform different functions using vectors.\nnewtype VisualShaderNodeVectorFunc = VisualShaderNodeVectorFunc Object\n                                       deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeVectorFunc where\n        type BaseClass VisualShaderNodeVectorFunc = VisualShaderNode\n        super = coerce\n\n-- | Linearly interpolates between two vectors within the visual shader graph.\n--   Translates to @mix(a, b, weight)@ in the shader language, where @weight@ is a @Vector3@ with weights for each component.\nnewtype VisualShaderNodeVectorInterp = VisualShaderNodeVectorInterp Object\n                                         deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeVectorInterp where\n        type BaseClass VisualShaderNodeVectorInterp = VisualShaderNode\n        super = coerce\n\n-- | Returns the length of a @Vector3@ within the visual shader graph.\n--   Translated to @length(p0)@ in the shader language.\nnewtype VisualShaderNodeVectorLen = VisualShaderNodeVectorLen Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeVectorLen where\n        type BaseClass VisualShaderNodeVectorLen = VisualShaderNode\n        super = coerce\n\n-- | A vector operator to be used within the visual shader graph.\n--   A visual shader node for use of vector operators. Operates on vector @a@ and vector @b@.\nnewtype VisualShaderNodeVectorOp = VisualShaderNodeVectorOp Object\n                                     deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeVectorOp where\n        type BaseClass VisualShaderNodeVectorOp = VisualShaderNode\n        super = coerce\n\n-- | Returns the @Vector3@ that points in the direction of refraction. For use within the visual shader graph.\n--   Translated to @refract(I, N, eta)@ in the shader language, where @I@ is the incident vector, @N@ is the normal vector and @eta@ is the ratio of the indicies of the refraction.\nnewtype VisualShaderNodeVectorRefract = VisualShaderNodeVectorRefract Object\n                                          deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeVectorRefract where\n        type BaseClass VisualShaderNodeVectorRefract = VisualShaderNode\n        super = coerce\n\n-- | Linearly interpolates between two vectors using a scalar. For use within the visual shader graph.\n--   Translates to @mix(a, b, weight)@ in the shader language, where @a@ and @b@ are vectors and @weight@ is a scalar.\nnewtype VisualShaderNodeVectorScalarMix = VisualShaderNodeVectorScalarMix Object\n                                            deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeVectorScalarMix where\n        type BaseClass VisualShaderNodeVectorScalarMix = VisualShaderNode\n        super = coerce\n\n-- | Calculates a vector SmoothStep function using scalar within the visual shader graph.\n--   Translates to @smoothstep(edge0, edge1, x)@ in the shader language, where @x@ is a scalar.\n--   \t\tReturns @0.0@ if @x@ is smaller than @edge0@ and @1.0@ if @x@ is larger than @edge1@. Otherwise the return value is interpolated between @0.0@ and @1.0@ using Hermite polynomials.\nnewtype VisualShaderNodeVectorScalarSmoothStep = VisualShaderNodeVectorScalarSmoothStep Object\n                                                   deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeVectorScalarSmoothStep where\n        type BaseClass VisualShaderNodeVectorScalarSmoothStep =\n             VisualShaderNode\n        super = coerce\n\n-- | Calculates a vector Step function within the visual shader graph.\n--   Translates to @step(edge, x)@ in the shader language.\n--   \t\tReturns @0.0@ if @x@ is smaller than @edge@ and @1.0@ otherwise.\nnewtype VisualShaderNodeVectorScalarStep = VisualShaderNodeVectorScalarStep Object\n                                             deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeVectorScalarStep where\n        type BaseClass VisualShaderNodeVectorScalarStep = VisualShaderNode\n        super = coerce\n\n-- | Calculates a vector SmoothStep function within the visual shader graph.\n--   Translates to @smoothstep(edge0, edge1, x)@ in the shader language, where @x@ is a vector.\n--   \t\tReturns @0.0@ if @x@ is smaller than @edge0@ and @1.0@ if @x@ is larger than @edge1@. Otherwise the return value is interpolated between @0.0@ and @1.0@ using Hermite polynomials.\nnewtype VisualShaderNodeVectorSmoothStep = VisualShaderNodeVectorSmoothStep Object\n                                             deriving newtype AsVariant\n\ninstance HasBaseClass VisualShaderNodeVectorSmoothStep where\n        type BaseClass VisualShaderNodeVectorSmoothStep = VisualShaderNode\n        super = coerce\n\n-- | Holds an @Object@, but does not contribute to the reference count if the object is a reference.\n--   A weakref can hold a @Reference@, without contributing to the reference counter. A weakref can be created from an @Object@ using @method @GDScript.weakref@. If this object is not a reference, weakref still works, however, it does not have any effect on the object. Weakrefs are useful in cases where multiple classes have variables that refer to each other. Without weakrefs, using these classes could lead to memory leaks, since both references keep each other from being released. Making part of the variables a weakref can prevent this cyclic dependency, and allows the references to be released.\nnewtype WeakRef = WeakRef Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass WeakRef where\n        type BaseClass WeakRef = Reference\n        super = coerce\n\nnewtype WebRTCDataChannel = WebRTCDataChannel Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass WebRTCDataChannel where\n        type BaseClass WebRTCDataChannel = PacketPeer\n        super = coerce\n\nnewtype WebRTCDataChannelGDNative = WebRTCDataChannelGDNative Object\n                                      deriving newtype AsVariant\n\ninstance HasBaseClass WebRTCDataChannelGDNative where\n        type BaseClass WebRTCDataChannelGDNative = WebRTCDataChannel\n        super = coerce\n\nnewtype WebRTCMultiplayer = WebRTCMultiplayer Object\n                              deriving newtype AsVariant\n\ninstance HasBaseClass WebRTCMultiplayer where\n        type BaseClass WebRTCMultiplayer = NetworkedMultiplayerPeer\n        super = coerce\n\nnewtype WebRTCPeerConnection = WebRTCPeerConnection Object\n                                 deriving newtype AsVariant\n\ninstance HasBaseClass WebRTCPeerConnection where\n        type BaseClass WebRTCPeerConnection = Reference\n        super = coerce\n\nnewtype WebRTCPeerConnectionGDNative = WebRTCPeerConnectionGDNative Object\n                                         deriving newtype AsVariant\n\ninstance HasBaseClass WebRTCPeerConnectionGDNative where\n        type BaseClass WebRTCPeerConnectionGDNative = WebRTCPeerConnection\n        super = coerce\n\nnewtype WebSocketClient = WebSocketClient Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass WebSocketClient where\n        type BaseClass WebSocketClient = WebSocketMultiplayerPeer\n        super = coerce\n\nnewtype WebSocketMultiplayerPeer = WebSocketMultiplayerPeer Object\n                                     deriving newtype AsVariant\n\ninstance HasBaseClass WebSocketMultiplayerPeer where\n        type BaseClass WebSocketMultiplayerPeer = NetworkedMultiplayerPeer\n        super = coerce\n\nnewtype WebSocketPeer = WebSocketPeer Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass WebSocketPeer where\n        type BaseClass WebSocketPeer = PacketPeer\n        super = coerce\n\nnewtype WebSocketServer = WebSocketServer Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass WebSocketServer where\n        type BaseClass WebSocketServer = WebSocketMultiplayerPeer\n        super = coerce\n\n-- | Base class for window dialogs.\n--   Windowdialog is the base class for all window-based dialogs. It's a by-default toplevel @Control@ that draws a window decoration and allows motion and resizing.\nnewtype WindowDialog = WindowDialog Object\n                         deriving newtype AsVariant\n\ninstance HasBaseClass WindowDialog where\n        type BaseClass WindowDialog = Popup\n        super = coerce\n\n-- | Class that has everything pertaining to a world.\n--    A physics space, a visual scenario and a sound space. Spatial nodes register their resources into the current world.\nnewtype World = World Object\n                  deriving newtype AsVariant\n\ninstance HasBaseClass World where\n        type BaseClass World = Resource\n        super = coerce\n\n-- | Class that has everything pertaining to a 2D world.\n--    A physics space, a visual scenario and a sound space. 2D nodes register their resources into the current 2D world.\nnewtype World2D = World2D Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass World2D where\n        type BaseClass World2D = Resource\n        super = coerce\n\n-- | Default environment properties for the entire scene (post-processing effects, lighting and background settings).\n--   The @WorldEnvironment@ node is used to configure the default @Environment@ for the scene.\n--   \t\tThe parameters defined in the @WorldEnvironment@ can be overridden by an @Environment@ node set on the current @Camera@. Additionally, only one @WorldEnvironment@ may be instanced in a given scene at a time.\n--   \t\tThe @WorldEnvironment@ allows the user to specify default lighting parameters (e.g. ambient lighting), various post-processing effects (e.g. SSAO, DOF, Tonemapping), and how to draw the background (e.g. solid color, skybox). Usually, these are added in order to improve the realism/color balance of the scene.\nnewtype WorldEnvironment = WorldEnvironment Object\n                             deriving newtype AsVariant\n\ninstance HasBaseClass WorldEnvironment where\n        type BaseClass WorldEnvironment = Node\n        super = coerce\n\n-- | An X509 certificate (e.g. for SSL).\n--   The X509Certificate class represents an X509 certificate. Certificates can be loaded and saved like any other @Resource@.\n--   \t\tThey can be used as the server certificate in @method StreamPeerSSL.accept_stream@ (along with the proper @CryptoKey@), and to specify the only certificate that should be accepted when connecting to an SSL server via @method StreamPeerSSL.connect_to_stream@.\n--   \t\t__Note:__ Not available in HTML5 exports.\nnewtype X509Certificate = X509Certificate Object\n                            deriving newtype AsVariant\n\ninstance HasBaseClass X509Certificate where\n        type BaseClass X509Certificate = Resource\n        super = coerce\n\n-- | Low-level class for creating parsers for @url=https://en.wikipedia.org/wiki/XML@XML@/url@ files.\n--   This class can serve as base to make custom XML parsers. Since XML is a very flexible standard, this interface is low-level so it can be applied to any possible schema.\nnewtype XMLParser = XMLParser Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass XMLParser where\n        type BaseClass XMLParser = Reference\n        super = coerce\n\n-- | Sort all child nodes based on their Y positions.\n--    The child node must inherit from @CanvasItem@ for it to be sorted. Nodes that have a higher Y position will be drawn later, so they will appear on top of nodes that have a lower Y position.\n--   \t\tNesting of YSort nodes is possible. Children YSort nodes will be sorted in the same space as the parent YSort, allowing to better organize a scene or divide it in multiple ones, yet keep the unique sorting.\nnewtype YSort = YSort Object\n                  deriving newtype AsVariant\n\ninstance HasBaseClass YSort where\n        type BaseClass YSort = Node2D\n        super = coerce\n\n-- | Class information repository.\n--   Provides access to metadata stored for every available class.\nnewtype ClassDB = ClassDB Object\n                    deriving newtype AsVariant\n\ninstance HasBaseClass ClassDB where\n        type BaseClass ClassDB = Object\n        super = coerce\n\n-- | Type used to handle the filesystem.\n--   Directory type. It is used to manage directories and their content (not restricted to the project folder).\n--   \t\tWhen creating a new @Directory@, its default opened directory will be @res://@. This may change in the future, so it is advised to always use @method open@ to initialize your @Directory@ where you want to operate, with explicit error checking.\n--   \t\tHere is an example on how to iterate through the files of a directory:\n--   \t\t\n--   @\n--   \n--   \t\tfunc dir_contents(path):\n--   \t\t    var dir = Directory.new()\n--   \t\t    if dir.open(path) == OK:\n--   \t\t        dir.list_dir_begin()\n--   \t\t        var file_name = dir.get_next()\n--   \t\t        while file_name != \"\":\n--   \t\t            if dir.current_is_dir():\n--   \t\t                print(\"Found directory: \" + file_name)\n--   \t\t            else:\n--   \t\t                print(\"Found file: \" + file_name)\n--   \t\t            file_name = dir.get_next()\n--   \t\t    else:\n--   \t\t        print(\"An error occurred when trying to access the path.\")\n--   \t\t\n--   @\nnewtype Directory = Directory Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass Directory where\n        type BaseClass Directory = Reference\n        super = coerce\n\n-- | Access to engine properties.\n--   The @Engine@ singleton allows you to query and modify the project's run-time parameters, such as frames per second, time scale, and others.\nnewtype Engine = Engine Object\n                   deriving newtype AsVariant\n\ninstance HasBaseClass Engine where\n        type BaseClass Engine = Object\n        super = coerce\n\n-- | Type to handle file reading and writing operations.\n--   File type. This is used to permanently store data into the user device's file system and to read from it. This can be used to store game save data or player configuration files, for example.\n--   \t\tHere's a sample on how to write and read from a file:\n--   \t\t\n--   @\n--   \n--   \t\tfunc save(content):\n--   \t\t    var file = File.new()\n--   \t\t    file.open(\"user://save_game.dat\", File.WRITE)\n--   \t\t    file.store_string(content)\n--   \t\t    file.close()\n--   \n--   \t\tfunc load():\n--   \t\t    var file = File.new()\n--   \t\t    file.open(\"user://save_game.dat\", File.READ)\n--   \t\t    var content = file.get_as_text()\n--   \t\t    file.close()\n--   \t\t    return content\n--   \t\t\n--   @\n--   \n--   \t\tIn the example above, the file will be saved in the user data folder as specified in the @url=https://docs.godotengine.org/en/latest/tutorials/io/data_paths.html@Data paths@/url@ documentation.\nnewtype File = File Object\n                 deriving newtype AsVariant\n\ninstance HasBaseClass File where\n        type BaseClass File = Reference\n        super = coerce\n\n-- | Helper node to calculate generic geometry operations.\n--   Geometry provides users with a set of helper functions to create geometric shapes, compute intersections between shapes, and process various other geometric operations.\nnewtype Geometry = Geometry Object\n                     deriving newtype AsVariant\n\ninstance HasBaseClass Geometry where\n        type BaseClass Geometry = Object\n        super = coerce\n\n-- | Helper class for parsing JSON data.\n--    For usage example and other important hints, see @JSONParseResult@.\nnewtype JSON = JSON Object\n                 deriving newtype AsVariant\n\ninstance HasBaseClass JSON where\n        type BaseClass JSON = Object\n        super = coerce\n\n-- | Data transformation (marshalling) and encoding helpers.\n--   Provides data transformation and encoding utility functions.\nnewtype Marshalls = Marshalls Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass Marshalls where\n        type BaseClass Marshalls = Reference\n        super = coerce\n\n-- | A synchronization mutex (mutual exclusion).\n--    This is used to synchronize multiple @Thread@s, and is equivalent to a binary @Semaphore@. It guarantees that only one thread can ever acquire the lock at a time. A mutex can be used to protect a critical section; however, be careful to avoid deadlocks.\nnewtype Mutex = Mutex Object\n                  deriving newtype AsVariant\n\ninstance HasBaseClass Mutex where\n        type BaseClass Mutex = Reference\n        super = coerce\n\n-- | Operating System functions.\n--    OS wraps the most common functionality to communicate with the host operating system, such as the clipboard, video driver, date and time, timers, environment variables, execution of binaries, command line, etc.\nnewtype OS = OS Object\n               deriving newtype AsVariant\n\ninstance HasBaseClass OS where\n        type BaseClass OS = Object\n        super = coerce\n\n-- | Singleton used to load resource files.\n--   Singleton used to load resource files from the filesystem.\n--   \t\tIt uses the many @ResourceFormatLoader@ classes registered in the engine (either built-in or from a plugin) to load files into memory and convert them to a format that can be used by the engine.\n--   \t\tGDScript has a simplified @method @GDScript.load@ built-in method which can be used in most situations, leaving the use of @ResourceLoader@ for more advanced scenarios.\nnewtype ResourceLoader = ResourceLoader Object\n                           deriving newtype AsVariant\n\ninstance HasBaseClass ResourceLoader where\n        type BaseClass ResourceLoader = Object\n        super = coerce\n\n-- | Singleton for saving Godot-specific resource types.\n--   Singleton for saving Godot-specific resource types to the filesystem.\n--   \t\tIt uses the many @ResourceFormatSaver@ classes registered in the engine (either built-in or from a plugin) to save engine-specific resource data to text-based (e.g. @.tres@ or @.tscn@) or binary files (e.g. @.res@ or @.scn@).\nnewtype ResourceSaver = ResourceSaver Object\n                          deriving newtype AsVariant\n\ninstance HasBaseClass ResourceSaver where\n        type BaseClass ResourceSaver = Object\n        super = coerce\n\n-- | A synchronization semaphore.\n--   A synchronization semaphore which can be used to synchronize multiple @Thread@s. Initialized to zero on creation. Be careful to avoid deadlocks. For a binary version, see @Mutex@.\nnewtype Semaphore = Semaphore Object\n                      deriving newtype AsVariant\n\ninstance HasBaseClass Semaphore where\n        type BaseClass Semaphore = Reference\n        super = coerce\n\n-- | A unit of execution in a process.\n--    Can run methods on @Object@s simultaneously. The use of synchronization via @Mutex@ or @Semaphore@ is advised if working with shared objects.\n--   \t\t__Note:__ Breakpoints won't break on code if it's running in a thread. This is a current limitation of the GDScript debugger.\nnewtype Thread = Thread Object\n                   deriving newtype AsVariant\n\ninstance HasBaseClass Thread where\n        type BaseClass Thread = Reference\n        super = coerce\n\nnewtype VisualScriptEditor = VisualScriptEditor Object\n                               deriving newtype AsVariant\n\ninstance HasBaseClass VisualScriptEditor where\n        type BaseClass VisualScriptEditor = Object\n        super = coerce\n\nderiveBase ''GlobalConstants\n\nderiveBase ''ARVRAnchor\n\nderiveBase ''ARVRCamera\n\nderiveBase ''ARVRController\n\nderiveBase ''ARVRInterface\n\nderiveBase ''ARVRInterfaceGDNative\n\nderiveBase ''ARVROrigin\n\nderiveBase ''ARVRPositionalTracker\n\nderiveBase ''ARVRServer\n\nderiveBase ''AStar\n\nderiveBase ''AStar2D\n\nderiveBase ''AcceptDialog\n\nderiveBase ''AnimatedSprite\n\nderiveBase ''AnimatedSprite3D\n\nderiveBase ''AnimatedTexture\n\nderiveBase ''Animation\n\nderiveBase ''AnimationNode\n\nderiveBase ''AnimationNodeAdd2\n\nderiveBase ''AnimationNodeAdd3\n\nderiveBase ''AnimationNodeAnimation\n\nderiveBase ''AnimationNodeBlend2\n\nderiveBase ''AnimationNodeBlend3\n\nderiveBase ''AnimationNodeBlendSpace1D\n\nderiveBase ''AnimationNodeBlendSpace2D\n\nderiveBase ''AnimationNodeBlendTree\n\nderiveBase ''AnimationNodeOneShot\n\nderiveBase ''AnimationNodeOutput\n\nderiveBase ''AnimationNodeStateMachine\n\nderiveBase ''AnimationNodeStateMachinePlayback\n\nderiveBase ''AnimationNodeStateMachineTransition\n\nderiveBase ''AnimationNodeTimeScale\n\nderiveBase ''AnimationNodeTimeSeek\n\nderiveBase ''AnimationNodeTransition\n\nderiveBase ''AnimationPlayer\n\nderiveBase ''AnimationRootNode\n\nderiveBase ''AnimationTrackEditPlugin\n\nderiveBase ''AnimationTree\n\nderiveBase ''AnimationTreePlayer\n\nderiveBase ''Area\n\nderiveBase ''Area2D\n\nderiveBase ''ArrayMesh\n\nderiveBase ''AtlasTexture\n\nderiveBase ''AudioBusLayout\n\nderiveBase ''AudioEffect\n\nderiveBase ''AudioEffectAmplify\n\nderiveBase ''AudioEffectBandLimitFilter\n\nderiveBase ''AudioEffectBandPassFilter\n\nderiveBase ''AudioEffectChorus\n\nderiveBase ''AudioEffectCompressor\n\nderiveBase ''AudioEffectDelay\n\nderiveBase ''AudioEffectDistortion\n\nderiveBase ''AudioEffectEQ\n\nderiveBase ''AudioEffectEQ10\n\nderiveBase ''AudioEffectEQ21\n\nderiveBase ''AudioEffectEQ6\n\nderiveBase ''AudioEffectFilter\n\nderiveBase ''AudioEffectHighPassFilter\n\nderiveBase ''AudioEffectHighShelfFilter\n\nderiveBase ''AudioEffectInstance\n\nderiveBase ''AudioEffectLimiter\n\nderiveBase ''AudioEffectLowPassFilter\n\nderiveBase ''AudioEffectLowShelfFilter\n\nderiveBase ''AudioEffectNotchFilter\n\nderiveBase ''AudioEffectPanner\n\nderiveBase ''AudioEffectPhaser\n\nderiveBase ''AudioEffectPitchShift\n\nderiveBase ''AudioEffectRecord\n\nderiveBase ''AudioEffectReverb\n\nderiveBase ''AudioEffectSpectrumAnalyzer\n\nderiveBase ''AudioEffectSpectrumAnalyzerInstance\n\nderiveBase ''AudioEffectStereoEnhance\n\nderiveBase ''AudioServer\n\nderiveBase ''AudioStream\n\nderiveBase ''AudioStreamGenerator\n\nderiveBase ''AudioStreamGeneratorPlayback\n\nderiveBase ''AudioStreamMicrophone\n\nderiveBase ''AudioStreamOGGVorbis\n\nderiveBase ''AudioStreamPlayback\n\nderiveBase ''AudioStreamPlaybackResampled\n\nderiveBase ''AudioStreamPlayer\n\nderiveBase ''AudioStreamPlayer2D\n\nderiveBase ''AudioStreamPlayer3D\n\nderiveBase ''AudioStreamRandomPitch\n\nderiveBase ''AudioStreamSample\n\nderiveBase ''BackBufferCopy\n\nderiveBase ''BakedLightmap\n\nderiveBase ''BakedLightmapData\n\nderiveBase ''BaseButton\n\nderiveBase ''BitMap\n\nderiveBase ''BitmapFont\n\nderiveBase ''Bone2D\n\nderiveBase ''BoneAttachment\n\nderiveBase ''BoxContainer\n\nderiveBase ''BoxShape\n\nderiveBase ''BulletPhysicsDirectBodyState\n\nderiveBase ''BulletPhysicsServer\n\nderiveBase ''Button\n\nderiveBase ''ButtonGroup\n\nderiveBase ''CPUParticles\n\nderiveBase ''CPUParticles2D\n\nderiveBase ''CSGBox\n\nderiveBase ''CSGCombiner\n\nderiveBase ''CSGCylinder\n\nderiveBase ''CSGMesh\n\nderiveBase ''CSGPolygon\n\nderiveBase ''CSGPrimitive\n\nderiveBase ''CSGShape\n\nderiveBase ''CSGSphere\n\nderiveBase ''CSGTorus\n\nderiveBase ''Camera\n\nderiveBase ''Camera2D\n\nderiveBase ''CameraFeed\n\nderiveBase ''CameraServer\n\nderiveBase ''CameraTexture\n\nderiveBase ''CanvasItem\n\nderiveBase ''CanvasItemMaterial\n\nderiveBase ''CanvasLayer\n\nderiveBase ''CanvasModulate\n\nderiveBase ''CapsuleMesh\n\nderiveBase ''CapsuleShape\n\nderiveBase ''CapsuleShape2D\n\nderiveBase ''CenterContainer\n\nderiveBase ''CharFXTransform\n\nderiveBase ''CheckBox\n\nderiveBase ''CheckButton\n\nderiveBase ''CircleShape2D\n\nderiveBase ''ClippedCamera\n\nderiveBase ''CollisionObject\n\nderiveBase ''CollisionObject2D\n\nderiveBase ''CollisionPolygon\n\nderiveBase ''CollisionPolygon2D\n\nderiveBase ''CollisionShape\n\nderiveBase ''CollisionShape2D\n\nderiveBase ''ColorPicker\n\nderiveBase ''ColorPickerButton\n\nderiveBase ''ColorRect\n\nderiveBase ''ConcavePolygonShape\n\nderiveBase ''ConcavePolygonShape2D\n\nderiveBase ''ConeTwistJoint\n\nderiveBase ''ConfigFile\n\nderiveBase ''ConfirmationDialog\n\nderiveBase ''Container\n\nderiveBase ''Control\n\nderiveBase ''ConvexPolygonShape\n\nderiveBase ''ConvexPolygonShape2D\n\nderiveBase ''Crypto\n\nderiveBase ''CryptoKey\n\nderiveBase ''CubeMap\n\nderiveBase ''CubeMesh\n\nderiveBase ''Curve\n\nderiveBase ''Curve2D\n\nderiveBase ''Curve3D\n\nderiveBase ''CurveTexture\n\nderiveBase ''CylinderMesh\n\nderiveBase ''CylinderShape\n\nderiveBase ''DampedSpringJoint2D\n\nderiveBase ''DirectionalLight\n\nderiveBase ''DynamicFont\n\nderiveBase ''DynamicFontData\n\nderiveBase ''EditorExportPlugin\n\nderiveBase ''EditorFeatureProfile\n\nderiveBase ''EditorFileDialog\n\nderiveBase ''EditorFileSystem\n\nderiveBase ''EditorFileSystemDirectory\n\nderiveBase ''EditorImportPlugin\n\nderiveBase ''EditorInspector\n\nderiveBase ''EditorInspectorPlugin\n\nderiveBase ''EditorInterface\n\nderiveBase ''EditorNavigationMeshGenerator\n\nderiveBase ''EditorPlugin\n\nderiveBase ''EditorProperty\n\nderiveBase ''EditorResourceConversionPlugin\n\nderiveBase ''EditorResourcePreview\n\nderiveBase ''EditorResourcePreviewGenerator\n\nderiveBase ''EditorSceneImporter\n\nderiveBase ''EditorSceneImporterAssimp\n\nderiveBase ''EditorScenePostImport\n\nderiveBase ''EditorScript\n\nderiveBase ''EditorSelection\n\nderiveBase ''EditorSettings\n\nderiveBase ''EditorSpatialGizmo\n\nderiveBase ''EditorSpatialGizmoPlugin\n\nderiveBase ''EditorSpinSlider\n\nderiveBase ''EditorVCSInterface\n\nderiveBase ''EncodedObjectAsID\n\nderiveBase ''Environment\n\nderiveBase ''Expression\n\nderiveBase ''FileDialog\n\nderiveBase ''Font\n\nderiveBase ''FuncRef\n\nderiveBase ''GDNative\n\nderiveBase ''GDNativeLibrary\n\nderiveBase ''GDScript\n\nderiveBase ''GDScriptFunctionState\n\nderiveBase ''GIProbe\n\nderiveBase ''GIProbeData\n\nderiveBase ''Generic6DOFJoint\n\nderiveBase ''GeometryInstance\n\nderiveBase ''Gradient\n\nderiveBase ''GradientTexture\n\nderiveBase ''GraphEdit\n\nderiveBase ''GraphNode\n\nderiveBase ''GridContainer\n\nderiveBase ''GridMap\n\nderiveBase ''GrooveJoint2D\n\nderiveBase ''HBoxContainer\n\nderiveBase ''HScrollBar\n\nderiveBase ''HSeparator\n\nderiveBase ''HSlider\n\nderiveBase ''HSplitContainer\n\nderiveBase ''HTTPClient\n\nderiveBase ''HTTPRequest\n\nderiveBase ''HashingContext\n\nderiveBase ''HeightMapShape\n\nderiveBase ''HingeJoint\n\nderiveBase ''IP\n\nderiveBase ''IP_Unix\n\nderiveBase ''Image\n\nderiveBase ''ImageTexture\n\nderiveBase ''ImmediateGeometry\n\nderiveBase ''Input\n\nderiveBase ''InputDefault\n\nderiveBase ''InputEvent\n\nderiveBase ''InputEventAction\n\nderiveBase ''InputEventGesture\n\nderiveBase ''InputEventJoypadButton\n\nderiveBase ''InputEventJoypadMotion\n\nderiveBase ''InputEventKey\n\nderiveBase ''InputEventMIDI\n\nderiveBase ''InputEventMagnifyGesture\n\nderiveBase ''InputEventMouse\n\nderiveBase ''InputEventMouseButton\n\nderiveBase ''InputEventMouseMotion\n\nderiveBase ''InputEventPanGesture\n\nderiveBase ''InputEventScreenDrag\n\nderiveBase ''InputEventScreenTouch\n\nderiveBase ''InputEventWithModifiers\n\nderiveBase ''InputMap\n\nderiveBase ''InstancePlaceholder\n\nderiveBase ''InterpolatedCamera\n\nderiveBase ''ItemList\n\nderiveBase ''JSONParseResult\n\nderiveBase ''JSONRPC\n\nderiveBase ''JavaClass\n\nderiveBase ''JavaClassWrapper\n\nderiveBase ''JavaScript\n\nderiveBase ''Joint\n\nderiveBase ''Joint2D\n\nderiveBase ''KinematicBody\n\nderiveBase ''KinematicBody2D\n\nderiveBase ''KinematicCollision\n\nderiveBase ''KinematicCollision2D\n\nderiveBase ''Label\n\nderiveBase ''LargeTexture\n\nderiveBase ''Light\n\nderiveBase ''Light2D\n\nderiveBase ''LightOccluder2D\n\nderiveBase ''Line2D\n\nderiveBase ''LineEdit\n\nderiveBase ''LineShape2D\n\nderiveBase ''LinkButton\n\nderiveBase ''Listener\n\nderiveBase ''MainLoop\n\nderiveBase ''MarginContainer\n\nderiveBase ''Material\n\nderiveBase ''MenuButton\n\nderiveBase ''Mesh\n\nderiveBase ''MeshDataTool\n\nderiveBase ''MeshInstance\n\nderiveBase ''MeshInstance2D\n\nderiveBase ''MeshLibrary\n\nderiveBase ''MeshTexture\n\nderiveBase ''MobileVRInterface\n\nderiveBase ''MultiMesh\n\nderiveBase ''MultiMeshInstance\n\nderiveBase ''MultiMeshInstance2D\n\nderiveBase ''MultiplayerAPI\n\nderiveBase ''MultiplayerPeerGDNative\n\nderiveBase ''NativeScript\n\nderiveBase ''Navigation\n\nderiveBase ''Navigation2D\n\nderiveBase ''NavigationMesh\n\nderiveBase ''NavigationMeshInstance\n\nderiveBase ''NavigationPolygon\n\nderiveBase ''NavigationPolygonInstance\n\nderiveBase ''NetworkedMultiplayerENet\n\nderiveBase ''NetworkedMultiplayerPeer\n\nderiveBase ''NinePatchRect\n\nderiveBase ''Node\n\nderiveBase ''Node2D\n\nderiveBase ''NoiseTexture\n\nderiveBase ''OccluderPolygon2D\n\nderiveBase ''OmniLight\n\nderiveBase ''OpenSimplexNoise\n\nderiveBase ''OptionButton\n\nderiveBase ''PCKPacker\n\nderiveBase ''PHashTranslation\n\nderiveBase ''PackedDataContainer\n\nderiveBase ''PackedDataContainerRef\n\nderiveBase ''PackedScene\n\nderiveBase ''PacketPeer\n\nderiveBase ''PacketPeerGDNative\n\nderiveBase ''PacketPeerStream\n\nderiveBase ''PacketPeerUDP\n\nderiveBase ''Panel\n\nderiveBase ''PanelContainer\n\nderiveBase ''PanoramaSky\n\nderiveBase ''ParallaxBackground\n\nderiveBase ''ParallaxLayer\n\nderiveBase ''Particles\n\nderiveBase ''Particles2D\n\nderiveBase ''ParticlesMaterial\n\nderiveBase ''Path\n\nderiveBase ''Path2D\n\nderiveBase ''PathFollow\n\nderiveBase ''PathFollow2D\n\nderiveBase ''Performance\n\nderiveBase ''PhysicalBone\n\nderiveBase ''Physics2DDirectBodyState\n\nderiveBase ''Physics2DDirectBodyStateSW\n\nderiveBase ''Physics2DDirectSpaceState\n\nderiveBase ''Physics2DServer\n\nderiveBase ''Physics2DServerSW\n\nderiveBase ''Physics2DShapeQueryParameters\n\nderiveBase ''Physics2DShapeQueryResult\n\nderiveBase ''Physics2DTestMotionResult\n\nderiveBase ''PhysicsBody\n\nderiveBase ''PhysicsBody2D\n\nderiveBase ''PhysicsDirectBodyState\n\nderiveBase ''PhysicsDirectSpaceState\n\nderiveBase ''PhysicsMaterial\n\nderiveBase ''PhysicsServer\n\nderiveBase ''PhysicsShapeQueryParameters\n\nderiveBase ''PhysicsShapeQueryResult\n\nderiveBase ''PinJoint\n\nderiveBase ''PinJoint2D\n\nderiveBase ''PlaneMesh\n\nderiveBase ''PlaneShape\n\nderiveBase ''PluginScript\n\nderiveBase ''PointMesh\n\nderiveBase ''Polygon2D\n\nderiveBase ''PolygonPathFinder\n\nderiveBase ''Popup\n\nderiveBase ''PopupDialog\n\nderiveBase ''PopupMenu\n\nderiveBase ''PopupPanel\n\nderiveBase ''Position2D\n\nderiveBase ''Position3D\n\nderiveBase ''PrimitiveMesh\n\nderiveBase ''PrismMesh\n\nderiveBase ''ProceduralSky\n\nderiveBase ''ProgressBar\n\nderiveBase ''ProjectSettings\n\nderiveBase ''ProximityGroup\n\nderiveBase ''ProxyTexture\n\nderiveBase ''QuadMesh\n\nderiveBase ''RandomNumberGenerator\n\nderiveBase ''Range\n\nderiveBase ''RayCast\n\nderiveBase ''RayCast2D\n\nderiveBase ''RayShape\n\nderiveBase ''RayShape2D\n\nderiveBase ''RectangleShape2D\n\nderiveBase ''Reference\n\nderiveBase ''ReferenceRect\n\nderiveBase ''ReflectionProbe\n\nderiveBase ''RegEx\n\nderiveBase ''RegExMatch\n\nderiveBase ''RemoteTransform\n\nderiveBase ''RemoteTransform2D\n\nderiveBase ''Resource\n\nderiveBase ''ResourceFormatLoader\n\nderiveBase ''ResourceFormatLoaderCrypto\n\nderiveBase ''ResourceFormatSaver\n\nderiveBase ''ResourceFormatSaverCrypto\n\nderiveBase ''ResourceImporter\n\nderiveBase ''ResourceInteractiveLoader\n\nderiveBase ''ResourcePreloader\n\nderiveBase ''RichTextEffect\n\nderiveBase ''RichTextLabel\n\nderiveBase ''RigidBody\n\nderiveBase ''RigidBody2D\n\nderiveBase ''RootMotionView\n\nderiveBase ''SceneState\n\nderiveBase ''SceneTree\n\nderiveBase ''SceneTreeTimer\n\nderiveBase ''Script\n\nderiveBase ''ScriptCreateDialog\n\nderiveBase ''ScriptEditor\n\nderiveBase ''ScrollBar\n\nderiveBase ''ScrollContainer\n\nderiveBase ''SegmentShape2D\n\nderiveBase ''Separator\n\nderiveBase ''Shader\n\nderiveBase ''ShaderMaterial\n\nderiveBase ''Shape\n\nderiveBase ''Shape2D\n\nderiveBase ''ShortCut\n\nderiveBase ''Skeleton\n\nderiveBase ''Skeleton2D\n\nderiveBase ''SkeletonIK\n\nderiveBase ''Skin\n\nderiveBase ''SkinReference\n\nderiveBase ''Sky\n\nderiveBase ''Slider\n\nderiveBase ''SliderJoint\n\nderiveBase ''SoftBody\n\nderiveBase ''Spatial\n\nderiveBase ''SpatialGizmo\n\nderiveBase ''SpatialMaterial\n\nderiveBase ''SpatialVelocityTracker\n\nderiveBase ''SphereMesh\n\nderiveBase ''SphereShape\n\nderiveBase ''SpinBox\n\nderiveBase ''SplitContainer\n\nderiveBase ''SpotLight\n\nderiveBase ''SpringArm\n\nderiveBase ''Sprite\n\nderiveBase ''Sprite3D\n\nderiveBase ''SpriteBase3D\n\nderiveBase ''SpriteFrames\n\nderiveBase ''StaticBody\n\nderiveBase ''StaticBody2D\n\nderiveBase ''StreamPeer\n\nderiveBase ''StreamPeerBuffer\n\nderiveBase ''StreamPeerGDNative\n\nderiveBase ''StreamPeerSSL\n\nderiveBase ''StreamPeerTCP\n\nderiveBase ''StreamTexture\n\nderiveBase ''StyleBox\n\nderiveBase ''StyleBoxEmpty\n\nderiveBase ''StyleBoxFlat\n\nderiveBase ''StyleBoxLine\n\nderiveBase ''StyleBoxTexture\n\nderiveBase ''SurfaceTool\n\nderiveBase ''TCP_Server\n\nderiveBase ''TabContainer\n\nderiveBase ''Tabs\n\nderiveBase ''TextEdit\n\nderiveBase ''TextFile\n\nderiveBase ''Texture\n\nderiveBase ''Texture3D\n\nderiveBase ''TextureArray\n\nderiveBase ''TextureButton\n\nderiveBase ''TextureLayered\n\nderiveBase ''TextureProgress\n\nderiveBase ''TextureRect\n\nderiveBase ''Theme\n\nderiveBase ''TileMap\n\nderiveBase ''TileSet\n\nderiveBase ''Timer\n\nderiveBase ''ToolButton\n\nderiveBase ''TouchScreenButton\n\nderiveBase ''Translation\n\nderiveBase ''TranslationServer\n\nderiveBase ''Tree\n\nderiveBase ''TreeItem\n\nderiveBase ''TriangleMesh\n\nderiveBase ''Tween\n\nderiveBase ''UPNP\n\nderiveBase ''UPNPDevice\n\nderiveBase ''UndoRedo\n\nderiveBase ''VBoxContainer\n\nderiveBase ''VScrollBar\n\nderiveBase ''VSeparator\n\nderiveBase ''VSlider\n\nderiveBase ''VSplitContainer\n\nderiveBase ''VehicleBody\n\nderiveBase ''VehicleWheel\n\nderiveBase ''VideoPlayer\n\nderiveBase ''VideoStream\n\nderiveBase ''VideoStreamGDNative\n\nderiveBase ''VideoStreamTheora\n\nderiveBase ''VideoStreamWebm\n\nderiveBase ''Viewport\n\nderiveBase ''ViewportContainer\n\nderiveBase ''ViewportTexture\n\nderiveBase ''VisibilityEnabler\n\nderiveBase ''VisibilityEnabler2D\n\nderiveBase ''VisibilityNotifier\n\nderiveBase ''VisibilityNotifier2D\n\nderiveBase ''VisualInstance\n\nderiveBase ''VisualScript\n\nderiveBase ''VisualScriptBasicTypeConstant\n\nderiveBase ''VisualScriptBuiltinFunc\n\nderiveBase ''VisualScriptClassConstant\n\nderiveBase ''VisualScriptComment\n\nderiveBase ''VisualScriptComposeArray\n\nderiveBase ''VisualScriptCondition\n\nderiveBase ''VisualScriptConstant\n\nderiveBase ''VisualScriptConstructor\n\nderiveBase ''VisualScriptCustomNode\n\nderiveBase ''VisualScriptDeconstruct\n\nderiveBase ''VisualScriptEmitSignal\n\nderiveBase ''VisualScriptEngineSingleton\n\nderiveBase ''VisualScriptExpression\n\nderiveBase ''VisualScriptFunction\n\nderiveBase ''VisualScriptFunctionCall\n\nderiveBase ''VisualScriptFunctionState\n\nderiveBase ''VisualScriptGlobalConstant\n\nderiveBase ''VisualScriptIndexGet\n\nderiveBase ''VisualScriptIndexSet\n\nderiveBase ''VisualScriptInputAction\n\nderiveBase ''VisualScriptIterator\n\nderiveBase ''VisualScriptLists\n\nderiveBase ''VisualScriptLocalVar\n\nderiveBase ''VisualScriptLocalVarSet\n\nderiveBase ''VisualScriptMathConstant\n\nderiveBase ''VisualScriptNode\n\nderiveBase ''VisualScriptOperator\n\nderiveBase ''VisualScriptPreload\n\nderiveBase ''VisualScriptPropertyGet\n\nderiveBase ''VisualScriptPropertySet\n\nderiveBase ''VisualScriptResourcePath\n\nderiveBase ''VisualScriptReturn\n\nderiveBase ''VisualScriptSceneNode\n\nderiveBase ''VisualScriptSceneTree\n\nderiveBase ''VisualScriptSelect\n\nderiveBase ''VisualScriptSelf\n\nderiveBase ''VisualScriptSequence\n\nderiveBase ''VisualScriptSubCall\n\nderiveBase ''VisualScriptSwitch\n\nderiveBase ''VisualScriptTypeCast\n\nderiveBase ''VisualScriptVariableGet\n\nderiveBase ''VisualScriptVariableSet\n\nderiveBase ''VisualScriptWhile\n\nderiveBase ''VisualScriptYield\n\nderiveBase ''VisualScriptYieldSignal\n\nderiveBase ''VisualServer\n\nderiveBase ''VisualShader\n\nderiveBase ''VisualShaderNode\n\nderiveBase ''VisualShaderNodeBooleanConstant\n\nderiveBase ''VisualShaderNodeBooleanUniform\n\nderiveBase ''VisualShaderNodeColorConstant\n\nderiveBase ''VisualShaderNodeColorFunc\n\nderiveBase ''VisualShaderNodeColorOp\n\nderiveBase ''VisualShaderNodeColorUniform\n\nderiveBase ''VisualShaderNodeCompare\n\nderiveBase ''VisualShaderNodeCubeMap\n\nderiveBase ''VisualShaderNodeCubeMapUniform\n\nderiveBase ''VisualShaderNodeCustom\n\nderiveBase ''VisualShaderNodeDeterminant\n\nderiveBase ''VisualShaderNodeDotProduct\n\nderiveBase ''VisualShaderNodeExpression\n\nderiveBase ''VisualShaderNodeFaceForward\n\nderiveBase ''VisualShaderNodeFresnel\n\nderiveBase ''VisualShaderNodeGlobalExpression\n\nderiveBase ''VisualShaderNodeGroupBase\n\nderiveBase ''VisualShaderNodeIf\n\nderiveBase ''VisualShaderNodeInput\n\nderiveBase ''VisualShaderNodeIs\n\nderiveBase ''VisualShaderNodeOuterProduct\n\nderiveBase ''VisualShaderNodeOutput\n\nderiveBase ''VisualShaderNodeScalarClamp\n\nderiveBase ''VisualShaderNodeScalarConstant\n\nderiveBase ''VisualShaderNodeScalarDerivativeFunc\n\nderiveBase ''VisualShaderNodeScalarFunc\n\nderiveBase ''VisualShaderNodeScalarInterp\n\nderiveBase ''VisualShaderNodeScalarOp\n\nderiveBase ''VisualShaderNodeScalarSmoothStep\n\nderiveBase ''VisualShaderNodeScalarSwitch\n\nderiveBase ''VisualShaderNodeScalarUniform\n\nderiveBase ''VisualShaderNodeSwitch\n\nderiveBase ''VisualShaderNodeTexture\n\nderiveBase ''VisualShaderNodeTextureUniform\n\nderiveBase ''VisualShaderNodeTextureUniformTriplanar\n\nderiveBase ''VisualShaderNodeTransformCompose\n\nderiveBase ''VisualShaderNodeTransformConstant\n\nderiveBase ''VisualShaderNodeTransformDecompose\n\nderiveBase ''VisualShaderNodeTransformFunc\n\nderiveBase ''VisualShaderNodeTransformMult\n\nderiveBase ''VisualShaderNodeTransformUniform\n\nderiveBase ''VisualShaderNodeTransformVecMult\n\nderiveBase ''VisualShaderNodeUniform\n\nderiveBase ''VisualShaderNodeVec3Constant\n\nderiveBase ''VisualShaderNodeVec3Uniform\n\nderiveBase ''VisualShaderNodeVectorClamp\n\nderiveBase ''VisualShaderNodeVectorCompose\n\nderiveBase ''VisualShaderNodeVectorDecompose\n\nderiveBase ''VisualShaderNodeVectorDerivativeFunc\n\nderiveBase ''VisualShaderNodeVectorDistance\n\nderiveBase ''VisualShaderNodeVectorFunc\n\nderiveBase ''VisualShaderNodeVectorInterp\n\nderiveBase ''VisualShaderNodeVectorLen\n\nderiveBase ''VisualShaderNodeVectorOp\n\nderiveBase ''VisualShaderNodeVectorRefract\n\nderiveBase ''VisualShaderNodeVectorScalarMix\n\nderiveBase ''VisualShaderNodeVectorScalarSmoothStep\n\nderiveBase ''VisualShaderNodeVectorScalarStep\n\nderiveBase ''VisualShaderNodeVectorSmoothStep\n\nderiveBase ''WeakRef\n\nderiveBase ''WebRTCDataChannel\n\nderiveBase ''WebRTCDataChannelGDNative\n\nderiveBase ''WebRTCMultiplayer\n\nderiveBase ''WebRTCPeerConnection\n\nderiveBase ''WebRTCPeerConnectionGDNative\n\nderiveBase ''WebSocketClient\n\nderiveBase ''WebSocketMultiplayerPeer\n\nderiveBase ''WebSocketPeer\n\nderiveBase ''WebSocketServer\n\nderiveBase ''WindowDialog\n\nderiveBase ''World\n\nderiveBase ''World2D\n\nderiveBase ''WorldEnvironment\n\nderiveBase ''X509Certificate\n\nderiveBase ''XMLParser\n\nderiveBase ''YSort\n\nderiveBase ''ClassDB\n\nderiveBase ''Directory\n\nderiveBase ''Engine\n\nderiveBase ''File\n\nderiveBase ''Geometry\n\nderiveBase ''JSON\n\nderiveBase ''Marshalls\n\nderiveBase ''Mutex\n\nderiveBase ''OS\n\nderiveBase ''ResourceLoader\n\nderiveBase ''ResourceSaver\n\nderiveBase ''Semaphore\n\nderiveBase ''Thread\n\nderiveBase ''VisualScriptEditor"
  },
  {
    "path": "src/Godot/Api.hs",
    "content": "module Godot.Api (module M) where\n\nimport Godot.Api.Types as M\n\n"
  },
  {
    "path": "src/Godot/Core/ARVRAnchor.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ARVRAnchor\n       (Godot.Core.ARVRAnchor.sig_mesh_updated,\n        Godot.Core.ARVRAnchor.get_anchor_id,\n        Godot.Core.ARVRAnchor.get_anchor_name,\n        Godot.Core.ARVRAnchor.get_is_active,\n        Godot.Core.ARVRAnchor.get_mesh, Godot.Core.ARVRAnchor.get_plane,\n        Godot.Core.ARVRAnchor.get_size,\n        Godot.Core.ARVRAnchor.set_anchor_id)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\n-- | Emitted when the mesh associated with the anchor changes or when one becomes available. This is especially important for topology that is constantly being @mesh_updated@.\nsig_mesh_updated :: Godot.Internal.Dispatch.Signal ARVRAnchor\nsig_mesh_updated = Godot.Internal.Dispatch.Signal \"mesh_updated\"\n\ninstance NodeSignal ARVRAnchor \"mesh_updated\" '[Mesh]\n\ninstance NodeProperty ARVRAnchor \"anchor_id\" Int 'False where\n        nodeProperty\n          = (get_anchor_id, wrapDroppingSetter set_anchor_id, Nothing)\n\n{-# NOINLINE bindARVRAnchor_get_anchor_id #-}\n\n-- | The anchor's ID. You can set this before the anchor itself exists. The first anchor gets an ID of @1@, the second an ID of @2@, etc. When anchors get removed, the engine can then assign the corresponding ID to new anchors. The most common situation where anchors \"disappear\" is when the AR server identifies that two anchors represent different parts of the same plane and merges them.\nbindARVRAnchor_get_anchor_id :: MethodBind\nbindARVRAnchor_get_anchor_id\n  = unsafePerformIO $\n      withCString \"ARVRAnchor\" $\n        \\ clsNamePtr ->\n          withCString \"get_anchor_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The anchor's ID. You can set this before the anchor itself exists. The first anchor gets an ID of @1@, the second an ID of @2@, etc. When anchors get removed, the engine can then assign the corresponding ID to new anchors. The most common situation where anchors \"disappear\" is when the AR server identifies that two anchors represent different parts of the same plane and merges them.\nget_anchor_id ::\n                (ARVRAnchor :< cls, Object :< cls) => cls -> IO Int\nget_anchor_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRAnchor_get_anchor_id (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRAnchor \"get_anchor_id\" '[] (IO Int) where\n        nodeMethod = Godot.Core.ARVRAnchor.get_anchor_id\n\n{-# NOINLINE bindARVRAnchor_get_anchor_name #-}\n\n-- | Returns the name given to this anchor.\nbindARVRAnchor_get_anchor_name :: MethodBind\nbindARVRAnchor_get_anchor_name\n  = unsafePerformIO $\n      withCString \"ARVRAnchor\" $\n        \\ clsNamePtr ->\n          withCString \"get_anchor_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name given to this anchor.\nget_anchor_name ::\n                  (ARVRAnchor :< cls, Object :< cls) => cls -> IO GodotString\nget_anchor_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRAnchor_get_anchor_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRAnchor \"get_anchor_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.ARVRAnchor.get_anchor_name\n\n{-# NOINLINE bindARVRAnchor_get_is_active #-}\n\n-- | Returns @true@ if the anchor is being tracked and @false@ if no anchor with this ID is currently known.\nbindARVRAnchor_get_is_active :: MethodBind\nbindARVRAnchor_get_is_active\n  = unsafePerformIO $\n      withCString \"ARVRAnchor\" $\n        \\ clsNamePtr ->\n          withCString \"get_is_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the anchor is being tracked and @false@ if no anchor with this ID is currently known.\nget_is_active ::\n                (ARVRAnchor :< cls, Object :< cls) => cls -> IO Bool\nget_is_active cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRAnchor_get_is_active (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRAnchor \"get_is_active\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.ARVRAnchor.get_is_active\n\n{-# NOINLINE bindARVRAnchor_get_mesh #-}\n\n-- | If provided by the @ARVRInterface@, this returns a mesh object for the anchor. For an anchor, this can be a shape related to the object being tracked or it can be a mesh that provides topology related to the anchor and can be used to create shadows/reflections on surfaces or for generating collision shapes.\nbindARVRAnchor_get_mesh :: MethodBind\nbindARVRAnchor_get_mesh\n  = unsafePerformIO $\n      withCString \"ARVRAnchor\" $\n        \\ clsNamePtr ->\n          withCString \"get_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If provided by the @ARVRInterface@, this returns a mesh object for the anchor. For an anchor, this can be a shape related to the object being tracked or it can be a mesh that provides topology related to the anchor and can be used to create shadows/reflections on surfaces or for generating collision shapes.\nget_mesh :: (ARVRAnchor :< cls, Object :< cls) => cls -> IO Mesh\nget_mesh cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRAnchor_get_mesh (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRAnchor \"get_mesh\" '[] (IO Mesh) where\n        nodeMethod = Godot.Core.ARVRAnchor.get_mesh\n\n{-# NOINLINE bindARVRAnchor_get_plane #-}\n\n-- | Returns a plane aligned with our anchor; handy for intersection testing.\nbindARVRAnchor_get_plane :: MethodBind\nbindARVRAnchor_get_plane\n  = unsafePerformIO $\n      withCString \"ARVRAnchor\" $\n        \\ clsNamePtr ->\n          withCString \"get_plane\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a plane aligned with our anchor; handy for intersection testing.\nget_plane :: (ARVRAnchor :< cls, Object :< cls) => cls -> IO Plane\nget_plane cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRAnchor_get_plane (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRAnchor \"get_plane\" '[] (IO Plane) where\n        nodeMethod = Godot.Core.ARVRAnchor.get_plane\n\n{-# NOINLINE bindARVRAnchor_get_size #-}\n\n-- | Returns the estimated size of the plane that was detected. Say when the anchor relates to a table in the real world, this is the estimated size of the surface of that table.\nbindARVRAnchor_get_size :: MethodBind\nbindARVRAnchor_get_size\n  = unsafePerformIO $\n      withCString \"ARVRAnchor\" $\n        \\ clsNamePtr ->\n          withCString \"get_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the estimated size of the plane that was detected. Say when the anchor relates to a table in the real world, this is the estimated size of the surface of that table.\nget_size :: (ARVRAnchor :< cls, Object :< cls) => cls -> IO Vector3\nget_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRAnchor_get_size (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRAnchor \"get_size\" '[] (IO Vector3) where\n        nodeMethod = Godot.Core.ARVRAnchor.get_size\n\n{-# NOINLINE bindARVRAnchor_set_anchor_id #-}\n\n-- | The anchor's ID. You can set this before the anchor itself exists. The first anchor gets an ID of @1@, the second an ID of @2@, etc. When anchors get removed, the engine can then assign the corresponding ID to new anchors. The most common situation where anchors \"disappear\" is when the AR server identifies that two anchors represent different parts of the same plane and merges them.\nbindARVRAnchor_set_anchor_id :: MethodBind\nbindARVRAnchor_set_anchor_id\n  = unsafePerformIO $\n      withCString \"ARVRAnchor\" $\n        \\ clsNamePtr ->\n          withCString \"set_anchor_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The anchor's ID. You can set this before the anchor itself exists. The first anchor gets an ID of @1@, the second an ID of @2@, etc. When anchors get removed, the engine can then assign the corresponding ID to new anchors. The most common situation where anchors \"disappear\" is when the AR server identifies that two anchors represent different parts of the same plane and merges them.\nset_anchor_id ::\n                (ARVRAnchor :< cls, Object :< cls) => cls -> Int -> IO ()\nset_anchor_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRAnchor_set_anchor_id (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRAnchor \"set_anchor_id\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.ARVRAnchor.set_anchor_id"
  },
  {
    "path": "src/Godot/Core/ARVRCamera.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ARVRCamera () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Camera()"
  },
  {
    "path": "src/Godot/Core/ARVRController.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ARVRController\n       (Godot.Core.ARVRController.sig_button_pressed,\n        Godot.Core.ARVRController.sig_button_release,\n        Godot.Core.ARVRController.sig_mesh_updated,\n        Godot.Core.ARVRController.get_controller_id,\n        Godot.Core.ARVRController.get_controller_name,\n        Godot.Core.ARVRController.get_hand,\n        Godot.Core.ARVRController.get_is_active,\n        Godot.Core.ARVRController.get_joystick_axis,\n        Godot.Core.ARVRController.get_joystick_id,\n        Godot.Core.ARVRController.get_mesh,\n        Godot.Core.ARVRController.get_rumble,\n        Godot.Core.ARVRController.is_button_pressed,\n        Godot.Core.ARVRController.set_controller_id,\n        Godot.Core.ARVRController.set_rumble)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\n-- | Emitted when a button on this controller is pressed.\nsig_button_pressed :: Godot.Internal.Dispatch.Signal ARVRController\nsig_button_pressed\n  = Godot.Internal.Dispatch.Signal \"button_pressed\"\n\ninstance NodeSignal ARVRController \"button_pressed\" '[Int]\n\n-- | Emitted when a button on this controller is released.\nsig_button_release :: Godot.Internal.Dispatch.Signal ARVRController\nsig_button_release\n  = Godot.Internal.Dispatch.Signal \"button_release\"\n\ninstance NodeSignal ARVRController \"button_release\" '[Int]\n\n-- | Emitted when the mesh associated with the controller changes or when one becomes available. Generally speaking this will be a static mesh after becoming available.\nsig_mesh_updated :: Godot.Internal.Dispatch.Signal ARVRController\nsig_mesh_updated = Godot.Internal.Dispatch.Signal \"mesh_updated\"\n\ninstance NodeSignal ARVRController \"mesh_updated\" '[Mesh]\n\ninstance NodeProperty ARVRController \"controller_id\" Int 'False\n         where\n        nodeProperty\n          = (get_controller_id, wrapDroppingSetter set_controller_id,\n             Nothing)\n\ninstance NodeProperty ARVRController \"rumble\" Float 'False where\n        nodeProperty = (get_rumble, wrapDroppingSetter set_rumble, Nothing)\n\n{-# NOINLINE bindARVRController_get_controller_id #-}\n\n-- | The controller's ID.\n--   \t\t\tA controller ID of 0 is unbound and will always result in an inactive node. Controller ID 1 is reserved for the first controller that identifies itself as the left-hand controller and ID 2 is reserved for the first controller that identifies itself as the right-hand controller.\n--   \t\t\tFor any other controller that the @ARVRServer@ detects, we continue with controller ID 3.\n--   \t\t\tWhen a controller is turned off, its slot is freed. This ensures controllers will keep the same ID even when controllers with lower IDs are turned off.\nbindARVRController_get_controller_id :: MethodBind\nbindARVRController_get_controller_id\n  = unsafePerformIO $\n      withCString \"ARVRController\" $\n        \\ clsNamePtr ->\n          withCString \"get_controller_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The controller's ID.\n--   \t\t\tA controller ID of 0 is unbound and will always result in an inactive node. Controller ID 1 is reserved for the first controller that identifies itself as the left-hand controller and ID 2 is reserved for the first controller that identifies itself as the right-hand controller.\n--   \t\t\tFor any other controller that the @ARVRServer@ detects, we continue with controller ID 3.\n--   \t\t\tWhen a controller is turned off, its slot is freed. This ensures controllers will keep the same ID even when controllers with lower IDs are turned off.\nget_controller_id ::\n                    (ARVRController :< cls, Object :< cls) => cls -> IO Int\nget_controller_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRController_get_controller_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRController \"get_controller_id\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ARVRController.get_controller_id\n\n{-# NOINLINE bindARVRController_get_controller_name #-}\n\n-- | If active, returns the name of the associated controller if provided by the AR/VR SDK used.\nbindARVRController_get_controller_name :: MethodBind\nbindARVRController_get_controller_name\n  = unsafePerformIO $\n      withCString \"ARVRController\" $\n        \\ clsNamePtr ->\n          withCString \"get_controller_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If active, returns the name of the associated controller if provided by the AR/VR SDK used.\nget_controller_name ::\n                      (ARVRController :< cls, Object :< cls) => cls -> IO GodotString\nget_controller_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRController_get_controller_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRController \"get_controller_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.ARVRController.get_controller_name\n\n{-# NOINLINE bindARVRController_get_hand #-}\n\n-- | Returns the hand holding this controller, if known. See @enum ARVRPositionalTracker.TrackerHand@.\nbindARVRController_get_hand :: MethodBind\nbindARVRController_get_hand\n  = unsafePerformIO $\n      withCString \"ARVRController\" $\n        \\ clsNamePtr ->\n          withCString \"get_hand\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the hand holding this controller, if known. See @enum ARVRPositionalTracker.TrackerHand@.\nget_hand :: (ARVRController :< cls, Object :< cls) => cls -> IO Int\nget_hand cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRController_get_hand (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRController \"get_hand\" '[] (IO Int) where\n        nodeMethod = Godot.Core.ARVRController.get_hand\n\n{-# NOINLINE bindARVRController_get_is_active #-}\n\n-- | Returns @true@ if the bound controller is active. ARVR systems attempt to track active controllers.\nbindARVRController_get_is_active :: MethodBind\nbindARVRController_get_is_active\n  = unsafePerformIO $\n      withCString \"ARVRController\" $\n        \\ clsNamePtr ->\n          withCString \"get_is_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the bound controller is active. ARVR systems attempt to track active controllers.\nget_is_active ::\n                (ARVRController :< cls, Object :< cls) => cls -> IO Bool\nget_is_active cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRController_get_is_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRController \"get_is_active\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ARVRController.get_is_active\n\n{-# NOINLINE bindARVRController_get_joystick_axis #-}\n\n-- | Returns the value of the given axis for things like triggers, touchpads, etc. that are embedded into the controller.\nbindARVRController_get_joystick_axis :: MethodBind\nbindARVRController_get_joystick_axis\n  = unsafePerformIO $\n      withCString \"ARVRController\" $\n        \\ clsNamePtr ->\n          withCString \"get_joystick_axis\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of the given axis for things like triggers, touchpads, etc. that are embedded into the controller.\nget_joystick_axis ::\n                    (ARVRController :< cls, Object :< cls) => cls -> Int -> IO Float\nget_joystick_axis cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRController_get_joystick_axis\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRController \"get_joystick_axis\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.ARVRController.get_joystick_axis\n\n{-# NOINLINE bindARVRController_get_joystick_id #-}\n\n-- | Returns the ID of the joystick object bound to this. Every controller tracked by the @ARVRServer@ that has buttons and axis will also be registered as a joystick within Godot. This means that all the normal joystick tracking and input mapping will work for buttons and axis found on the AR/VR controllers. This ID is purely offered as information so you can link up the controller with its joystick entry.\nbindARVRController_get_joystick_id :: MethodBind\nbindARVRController_get_joystick_id\n  = unsafePerformIO $\n      withCString \"ARVRController\" $\n        \\ clsNamePtr ->\n          withCString \"get_joystick_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the ID of the joystick object bound to this. Every controller tracked by the @ARVRServer@ that has buttons and axis will also be registered as a joystick within Godot. This means that all the normal joystick tracking and input mapping will work for buttons and axis found on the AR/VR controllers. This ID is purely offered as information so you can link up the controller with its joystick entry.\nget_joystick_id ::\n                  (ARVRController :< cls, Object :< cls) => cls -> IO Int\nget_joystick_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRController_get_joystick_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRController \"get_joystick_id\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ARVRController.get_joystick_id\n\n{-# NOINLINE bindARVRController_get_mesh #-}\n\n-- | If provided by the @ARVRInterface@, this returns a mesh associated with the controller. This can be used to visualize the controller.\nbindARVRController_get_mesh :: MethodBind\nbindARVRController_get_mesh\n  = unsafePerformIO $\n      withCString \"ARVRController\" $\n        \\ clsNamePtr ->\n          withCString \"get_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If provided by the @ARVRInterface@, this returns a mesh associated with the controller. This can be used to visualize the controller.\nget_mesh ::\n           (ARVRController :< cls, Object :< cls) => cls -> IO Mesh\nget_mesh cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRController_get_mesh (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRController \"get_mesh\" '[] (IO Mesh) where\n        nodeMethod = Godot.Core.ARVRController.get_mesh\n\n{-# NOINLINE bindARVRController_get_rumble #-}\n\n-- | The degree to which the controller vibrates. Ranges from @0.0@ to @1.0@ with precision @.01@. If changed, updates @ARVRPositionalTracker.rumble@ accordingly.\n--   \t\t\tThis is a useful property to animate if you want the controller to vibrate for a limited duration.\nbindARVRController_get_rumble :: MethodBind\nbindARVRController_get_rumble\n  = unsafePerformIO $\n      withCString \"ARVRController\" $\n        \\ clsNamePtr ->\n          withCString \"get_rumble\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The degree to which the controller vibrates. Ranges from @0.0@ to @1.0@ with precision @.01@. If changed, updates @ARVRPositionalTracker.rumble@ accordingly.\n--   \t\t\tThis is a useful property to animate if you want the controller to vibrate for a limited duration.\nget_rumble ::\n             (ARVRController :< cls, Object :< cls) => cls -> IO Float\nget_rumble cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRController_get_rumble (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRController \"get_rumble\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.ARVRController.get_rumble\n\n{-# NOINLINE bindARVRController_is_button_pressed #-}\n\n-- | Returns @true@ if the button at index @button@ is pressed. See @enum JoystickList@, in particular the @JOY_VR_*@ constants.\nbindARVRController_is_button_pressed :: MethodBind\nbindARVRController_is_button_pressed\n  = unsafePerformIO $\n      withCString \"ARVRController\" $\n        \\ clsNamePtr ->\n          withCString \"is_button_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the button at index @button@ is pressed. See @enum JoystickList@, in particular the @JOY_VR_*@ constants.\nis_button_pressed ::\n                    (ARVRController :< cls, Object :< cls) => cls -> Int -> IO Int\nis_button_pressed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRController_is_button_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRController \"is_button_pressed\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ARVRController.is_button_pressed\n\n{-# NOINLINE bindARVRController_set_controller_id #-}\n\n-- | The controller's ID.\n--   \t\t\tA controller ID of 0 is unbound and will always result in an inactive node. Controller ID 1 is reserved for the first controller that identifies itself as the left-hand controller and ID 2 is reserved for the first controller that identifies itself as the right-hand controller.\n--   \t\t\tFor any other controller that the @ARVRServer@ detects, we continue with controller ID 3.\n--   \t\t\tWhen a controller is turned off, its slot is freed. This ensures controllers will keep the same ID even when controllers with lower IDs are turned off.\nbindARVRController_set_controller_id :: MethodBind\nbindARVRController_set_controller_id\n  = unsafePerformIO $\n      withCString \"ARVRController\" $\n        \\ clsNamePtr ->\n          withCString \"set_controller_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The controller's ID.\n--   \t\t\tA controller ID of 0 is unbound and will always result in an inactive node. Controller ID 1 is reserved for the first controller that identifies itself as the left-hand controller and ID 2 is reserved for the first controller that identifies itself as the right-hand controller.\n--   \t\t\tFor any other controller that the @ARVRServer@ detects, we continue with controller ID 3.\n--   \t\t\tWhen a controller is turned off, its slot is freed. This ensures controllers will keep the same ID even when controllers with lower IDs are turned off.\nset_controller_id ::\n                    (ARVRController :< cls, Object :< cls) => cls -> Int -> IO ()\nset_controller_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRController_set_controller_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRController \"set_controller_id\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ARVRController.set_controller_id\n\n{-# NOINLINE bindARVRController_set_rumble #-}\n\n-- | The degree to which the controller vibrates. Ranges from @0.0@ to @1.0@ with precision @.01@. If changed, updates @ARVRPositionalTracker.rumble@ accordingly.\n--   \t\t\tThis is a useful property to animate if you want the controller to vibrate for a limited duration.\nbindARVRController_set_rumble :: MethodBind\nbindARVRController_set_rumble\n  = unsafePerformIO $\n      withCString \"ARVRController\" $\n        \\ clsNamePtr ->\n          withCString \"set_rumble\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The degree to which the controller vibrates. Ranges from @0.0@ to @1.0@ with precision @.01@. If changed, updates @ARVRPositionalTracker.rumble@ accordingly.\n--   \t\t\tThis is a useful property to animate if you want the controller to vibrate for a limited duration.\nset_rumble ::\n             (ARVRController :< cls, Object :< cls) => cls -> Float -> IO ()\nset_rumble cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRController_set_rumble (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRController \"set_rumble\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.ARVRController.set_rumble"
  },
  {
    "path": "src/Godot/Core/ARVRInterface.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ARVRInterface\n       (Godot.Core.ARVRInterface._ARVR_STEREO,\n        Godot.Core.ARVRInterface._ARVR_INSUFFICIENT_FEATURES,\n        Godot.Core.ARVRInterface._ARVR_NOT_TRACKING,\n        Godot.Core.ARVRInterface._EYE_MONO,\n        Godot.Core.ARVRInterface._EYE_LEFT,\n        Godot.Core.ARVRInterface._ARVR_EXCESSIVE_MOTION,\n        Godot.Core.ARVRInterface._ARVR_NORMAL_TRACKING,\n        Godot.Core.ARVRInterface._EYE_RIGHT,\n        Godot.Core.ARVRInterface._ARVR_NONE,\n        Godot.Core.ARVRInterface._ARVR_EXTERNAL,\n        Godot.Core.ARVRInterface._ARVR_UNKNOWN_TRACKING,\n        Godot.Core.ARVRInterface._ARVR_AR,\n        Godot.Core.ARVRInterface._ARVR_MONO,\n        Godot.Core.ARVRInterface.get_anchor_detection_is_enabled,\n        Godot.Core.ARVRInterface.get_camera_feed_id,\n        Godot.Core.ARVRInterface.get_capabilities,\n        Godot.Core.ARVRInterface.get_name,\n        Godot.Core.ARVRInterface.get_render_targetsize,\n        Godot.Core.ARVRInterface.get_tracking_status,\n        Godot.Core.ARVRInterface.initialize,\n        Godot.Core.ARVRInterface.is_initialized,\n        Godot.Core.ARVRInterface.is_primary,\n        Godot.Core.ARVRInterface.is_stereo,\n        Godot.Core.ARVRInterface.set_anchor_detection_is_enabled,\n        Godot.Core.ARVRInterface.set_is_initialized,\n        Godot.Core.ARVRInterface.set_is_primary,\n        Godot.Core.ARVRInterface.uninitialize)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n_ARVR_STEREO :: Int\n_ARVR_STEREO = 2\n\n_ARVR_INSUFFICIENT_FEATURES :: Int\n_ARVR_INSUFFICIENT_FEATURES = 2\n\n_ARVR_NOT_TRACKING :: Int\n_ARVR_NOT_TRACKING = 4\n\n_EYE_MONO :: Int\n_EYE_MONO = 0\n\n_EYE_LEFT :: Int\n_EYE_LEFT = 1\n\n_ARVR_EXCESSIVE_MOTION :: Int\n_ARVR_EXCESSIVE_MOTION = 1\n\n_ARVR_NORMAL_TRACKING :: Int\n_ARVR_NORMAL_TRACKING = 0\n\n_EYE_RIGHT :: Int\n_EYE_RIGHT = 2\n\n_ARVR_NONE :: Int\n_ARVR_NONE = 0\n\n_ARVR_EXTERNAL :: Int\n_ARVR_EXTERNAL = 8\n\n_ARVR_UNKNOWN_TRACKING :: Int\n_ARVR_UNKNOWN_TRACKING = 3\n\n_ARVR_AR :: Int\n_ARVR_AR = 4\n\n_ARVR_MONO :: Int\n_ARVR_MONO = 1\n\ninstance NodeProperty ARVRInterface\n           \"ar_is_anchor_detection_enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (get_anchor_detection_is_enabled,\n             wrapDroppingSetter set_anchor_detection_is_enabled, Nothing)\n\ninstance NodeProperty ARVRInterface \"interface_is_initialized\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_initialized, wrapDroppingSetter set_is_initialized, Nothing)\n\ninstance NodeProperty ARVRInterface \"interface_is_primary\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_primary, wrapDroppingSetter set_is_primary, Nothing)\n\n{-# NOINLINE bindARVRInterface_get_anchor_detection_is_enabled #-}\n\n-- | On an AR interface, @true@ if anchor detection is enabled.\nbindARVRInterface_get_anchor_detection_is_enabled :: MethodBind\nbindARVRInterface_get_anchor_detection_is_enabled\n  = unsafePerformIO $\n      withCString \"ARVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_anchor_detection_is_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | On an AR interface, @true@ if anchor detection is enabled.\nget_anchor_detection_is_enabled ::\n                                  (ARVRInterface :< cls, Object :< cls) => cls -> IO Bool\nget_anchor_detection_is_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindARVRInterface_get_anchor_detection_is_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRInterface \"get_anchor_detection_is_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.ARVRInterface.get_anchor_detection_is_enabled\n\n{-# NOINLINE bindARVRInterface_get_camera_feed_id #-}\n\n-- | If this is an AR interface that requires displaying a camera feed as the background, this method returns the feed ID in the @CameraServer@ for this interface.\nbindARVRInterface_get_camera_feed_id :: MethodBind\nbindARVRInterface_get_camera_feed_id\n  = unsafePerformIO $\n      withCString \"ARVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_camera_feed_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If this is an AR interface that requires displaying a camera feed as the background, this method returns the feed ID in the @CameraServer@ for this interface.\nget_camera_feed_id ::\n                     (ARVRInterface :< cls, Object :< cls) => cls -> IO Int\nget_camera_feed_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRInterface_get_camera_feed_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRInterface \"get_camera_feed_id\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ARVRInterface.get_camera_feed_id\n\n{-# NOINLINE bindARVRInterface_get_capabilities #-}\n\n-- | Returns a combination of @enum Capabilities@ flags providing information about the capabilities of this interface.\nbindARVRInterface_get_capabilities :: MethodBind\nbindARVRInterface_get_capabilities\n  = unsafePerformIO $\n      withCString \"ARVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_capabilities\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a combination of @enum Capabilities@ flags providing information about the capabilities of this interface.\nget_capabilities ::\n                   (ARVRInterface :< cls, Object :< cls) => cls -> IO Int\nget_capabilities cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRInterface_get_capabilities\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRInterface \"get_capabilities\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ARVRInterface.get_capabilities\n\n{-# NOINLINE bindARVRInterface_get_name #-}\n\n-- | Returns the name of this interface (OpenVR, OpenHMD, ARKit, etc).\nbindARVRInterface_get_name :: MethodBind\nbindARVRInterface_get_name\n  = unsafePerformIO $\n      withCString \"ARVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of this interface (OpenVR, OpenHMD, ARKit, etc).\nget_name ::\n           (ARVRInterface :< cls, Object :< cls) => cls -> IO GodotString\nget_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRInterface_get_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRInterface \"get_name\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.ARVRInterface.get_name\n\n{-# NOINLINE bindARVRInterface_get_render_targetsize #-}\n\n-- | Returns the resolution at which we should render our intermediate results before things like lens distortion are applied by the VR platform.\nbindARVRInterface_get_render_targetsize :: MethodBind\nbindARVRInterface_get_render_targetsize\n  = unsafePerformIO $\n      withCString \"ARVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_render_targetsize\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the resolution at which we should render our intermediate results before things like lens distortion are applied by the VR platform.\nget_render_targetsize ::\n                        (ARVRInterface :< cls, Object :< cls) => cls -> IO Vector2\nget_render_targetsize cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRInterface_get_render_targetsize\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRInterface \"get_render_targetsize\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.ARVRInterface.get_render_targetsize\n\n{-# NOINLINE bindARVRInterface_get_tracking_status #-}\n\n-- | If supported, returns the status of our tracking. This will allow you to provide feedback to the user whether there are issues with positional tracking.\nbindARVRInterface_get_tracking_status :: MethodBind\nbindARVRInterface_get_tracking_status\n  = unsafePerformIO $\n      withCString \"ARVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_tracking_status\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If supported, returns the status of our tracking. This will allow you to provide feedback to the user whether there are issues with positional tracking.\nget_tracking_status ::\n                      (ARVRInterface :< cls, Object :< cls) => cls -> IO Int\nget_tracking_status cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRInterface_get_tracking_status\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRInterface \"get_tracking_status\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ARVRInterface.get_tracking_status\n\n{-# NOINLINE bindARVRInterface_initialize #-}\n\n-- | Call this to initialize this interface. The first interface that is initialized is identified as the primary interface and it will be used for rendering output.\n--   \t\t\t\tAfter initializing the interface you want to use you then need to enable the AR/VR mode of a viewport and rendering should commence.\n--   \t\t\t\t__Note:__ You must enable the AR/VR mode on the main viewport for any device that uses the main output of Godot, such as for mobile VR.\n--   \t\t\t\tIf you do this for a platform that handles its own output (such as OpenVR) Godot will show just one eye without distortion on screen. Alternatively, you can add a separate viewport node to your scene and enable AR/VR on that viewport. It will be used to output to the HMD, leaving you free to do anything you like in the main window, such as using a separate camera as a spectator camera or rendering something completely different.\n--   \t\t\t\tWhile currently not used, you can activate additional interfaces. You may wish to do this if you want to track controllers from other platforms. However, at this point in time only one interface can render to an HMD.\nbindARVRInterface_initialize :: MethodBind\nbindARVRInterface_initialize\n  = unsafePerformIO $\n      withCString \"ARVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"initialize\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Call this to initialize this interface. The first interface that is initialized is identified as the primary interface and it will be used for rendering output.\n--   \t\t\t\tAfter initializing the interface you want to use you then need to enable the AR/VR mode of a viewport and rendering should commence.\n--   \t\t\t\t__Note:__ You must enable the AR/VR mode on the main viewport for any device that uses the main output of Godot, such as for mobile VR.\n--   \t\t\t\tIf you do this for a platform that handles its own output (such as OpenVR) Godot will show just one eye without distortion on screen. Alternatively, you can add a separate viewport node to your scene and enable AR/VR on that viewport. It will be used to output to the HMD, leaving you free to do anything you like in the main window, such as using a separate camera as a spectator camera or rendering something completely different.\n--   \t\t\t\tWhile currently not used, you can activate additional interfaces. You may wish to do this if you want to track controllers from other platforms. However, at this point in time only one interface can render to an HMD.\ninitialize ::\n             (ARVRInterface :< cls, Object :< cls) => cls -> IO Bool\ninitialize cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRInterface_initialize (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRInterface \"initialize\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.ARVRInterface.initialize\n\n{-# NOINLINE bindARVRInterface_is_initialized #-}\n\n-- | @true@ if this interface been initialized.\nbindARVRInterface_is_initialized :: MethodBind\nbindARVRInterface_is_initialized\n  = unsafePerformIO $\n      withCString \"ARVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"is_initialized\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @true@ if this interface been initialized.\nis_initialized ::\n                 (ARVRInterface :< cls, Object :< cls) => cls -> IO Bool\nis_initialized cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRInterface_is_initialized\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRInterface \"is_initialized\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ARVRInterface.is_initialized\n\n{-# NOINLINE bindARVRInterface_is_primary #-}\n\n-- | @true@ if this is the primary interface.\nbindARVRInterface_is_primary :: MethodBind\nbindARVRInterface_is_primary\n  = unsafePerformIO $\n      withCString \"ARVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"is_primary\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @true@ if this is the primary interface.\nis_primary ::\n             (ARVRInterface :< cls, Object :< cls) => cls -> IO Bool\nis_primary cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRInterface_is_primary (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRInterface \"is_primary\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.ARVRInterface.is_primary\n\n{-# NOINLINE bindARVRInterface_is_stereo #-}\n\n-- | Returns @true@ if the current output of this interface is in stereo.\nbindARVRInterface_is_stereo :: MethodBind\nbindARVRInterface_is_stereo\n  = unsafePerformIO $\n      withCString \"ARVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"is_stereo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the current output of this interface is in stereo.\nis_stereo ::\n            (ARVRInterface :< cls, Object :< cls) => cls -> IO Bool\nis_stereo cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRInterface_is_stereo (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRInterface \"is_stereo\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.ARVRInterface.is_stereo\n\n{-# NOINLINE bindARVRInterface_set_anchor_detection_is_enabled #-}\n\n-- | On an AR interface, @true@ if anchor detection is enabled.\nbindARVRInterface_set_anchor_detection_is_enabled :: MethodBind\nbindARVRInterface_set_anchor_detection_is_enabled\n  = unsafePerformIO $\n      withCString \"ARVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"set_anchor_detection_is_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | On an AR interface, @true@ if anchor detection is enabled.\nset_anchor_detection_is_enabled ::\n                                  (ARVRInterface :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_anchor_detection_is_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindARVRInterface_set_anchor_detection_is_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRInterface \"set_anchor_detection_is_enabled\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.ARVRInterface.set_anchor_detection_is_enabled\n\n{-# NOINLINE bindARVRInterface_set_is_initialized #-}\n\n-- | @true@ if this interface been initialized.\nbindARVRInterface_set_is_initialized :: MethodBind\nbindARVRInterface_set_is_initialized\n  = unsafePerformIO $\n      withCString \"ARVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"set_is_initialized\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @true@ if this interface been initialized.\nset_is_initialized ::\n                     (ARVRInterface :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_is_initialized cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRInterface_set_is_initialized\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRInterface \"set_is_initialized\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ARVRInterface.set_is_initialized\n\n{-# NOINLINE bindARVRInterface_set_is_primary #-}\n\n-- | @true@ if this is the primary interface.\nbindARVRInterface_set_is_primary :: MethodBind\nbindARVRInterface_set_is_primary\n  = unsafePerformIO $\n      withCString \"ARVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"set_is_primary\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @true@ if this is the primary interface.\nset_is_primary ::\n                 (ARVRInterface :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_is_primary cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRInterface_set_is_primary\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRInterface \"set_is_primary\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.ARVRInterface.set_is_primary\n\n{-# NOINLINE bindARVRInterface_uninitialize #-}\n\n-- | Turns the interface off.\nbindARVRInterface_uninitialize :: MethodBind\nbindARVRInterface_uninitialize\n  = unsafePerformIO $\n      withCString \"ARVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"uninitialize\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Turns the interface off.\nuninitialize ::\n               (ARVRInterface :< cls, Object :< cls) => cls -> IO ()\nuninitialize cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRInterface_uninitialize (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRInterface \"uninitialize\" '[] (IO ()) where\n        nodeMethod = Godot.Core.ARVRInterface.uninitialize"
  },
  {
    "path": "src/Godot/Core/ARVRInterfaceGDNative.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ARVRInterfaceGDNative () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.ARVRInterface()"
  },
  {
    "path": "src/Godot/Core/ARVROrigin.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ARVROrigin\n       (Godot.Core.ARVROrigin.get_world_scale,\n        Godot.Core.ARVROrigin.set_world_scale)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\ninstance NodeProperty ARVROrigin \"world_scale\" Float 'False where\n        nodeProperty\n          = (get_world_scale, wrapDroppingSetter set_world_scale, Nothing)\n\n{-# NOINLINE bindARVROrigin_get_world_scale #-}\n\n-- | Allows you to adjust the scale to your game's units. Most AR/VR platforms assume a scale of 1 game world unit = 1 real world meter.\n--   \t\t\t__Note:__ This method is a passthrough to the @ARVRServer@ itself.\nbindARVROrigin_get_world_scale :: MethodBind\nbindARVROrigin_get_world_scale\n  = unsafePerformIO $\n      withCString \"ARVROrigin\" $\n        \\ clsNamePtr ->\n          withCString \"get_world_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Allows you to adjust the scale to your game's units. Most AR/VR platforms assume a scale of 1 game world unit = 1 real world meter.\n--   \t\t\t__Note:__ This method is a passthrough to the @ARVRServer@ itself.\nget_world_scale ::\n                  (ARVROrigin :< cls, Object :< cls) => cls -> IO Float\nget_world_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVROrigin_get_world_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVROrigin \"get_world_scale\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.ARVROrigin.get_world_scale\n\n{-# NOINLINE bindARVROrigin_set_world_scale #-}\n\n-- | Allows you to adjust the scale to your game's units. Most AR/VR platforms assume a scale of 1 game world unit = 1 real world meter.\n--   \t\t\t__Note:__ This method is a passthrough to the @ARVRServer@ itself.\nbindARVROrigin_set_world_scale :: MethodBind\nbindARVROrigin_set_world_scale\n  = unsafePerformIO $\n      withCString \"ARVROrigin\" $\n        \\ clsNamePtr ->\n          withCString \"set_world_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Allows you to adjust the scale to your game's units. Most AR/VR platforms assume a scale of 1 game world unit = 1 real world meter.\n--   \t\t\t__Note:__ This method is a passthrough to the @ARVRServer@ itself.\nset_world_scale ::\n                  (ARVROrigin :< cls, Object :< cls) => cls -> Float -> IO ()\nset_world_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVROrigin_set_world_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVROrigin \"set_world_scale\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.ARVROrigin.set_world_scale"
  },
  {
    "path": "src/Godot/Core/ARVRPositionalTracker.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ARVRPositionalTracker\n       (Godot.Core.ARVRPositionalTracker._TRACKER_LEFT_HAND,\n        Godot.Core.ARVRPositionalTracker._TRACKER_RIGHT_HAND,\n        Godot.Core.ARVRPositionalTracker._TRACKER_HAND_UNKNOWN,\n        Godot.Core.ARVRPositionalTracker._set_joy_id,\n        Godot.Core.ARVRPositionalTracker._set_mesh,\n        Godot.Core.ARVRPositionalTracker._set_name,\n        Godot.Core.ARVRPositionalTracker._set_orientation,\n        Godot.Core.ARVRPositionalTracker._set_rw_position,\n        Godot.Core.ARVRPositionalTracker._set_type,\n        Godot.Core.ARVRPositionalTracker.get_hand,\n        Godot.Core.ARVRPositionalTracker.get_joy_id,\n        Godot.Core.ARVRPositionalTracker.get_mesh,\n        Godot.Core.ARVRPositionalTracker.get_name,\n        Godot.Core.ARVRPositionalTracker.get_orientation,\n        Godot.Core.ARVRPositionalTracker.get_position,\n        Godot.Core.ARVRPositionalTracker.get_rumble,\n        Godot.Core.ARVRPositionalTracker.get_tracks_orientation,\n        Godot.Core.ARVRPositionalTracker.get_tracks_position,\n        Godot.Core.ARVRPositionalTracker.get_transform,\n        Godot.Core.ARVRPositionalTracker.get_type,\n        Godot.Core.ARVRPositionalTracker.set_rumble)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n_TRACKER_LEFT_HAND :: Int\n_TRACKER_LEFT_HAND = 1\n\n_TRACKER_RIGHT_HAND :: Int\n_TRACKER_RIGHT_HAND = 2\n\n_TRACKER_HAND_UNKNOWN :: Int\n_TRACKER_HAND_UNKNOWN = 0\n\ninstance NodeProperty ARVRPositionalTracker \"rumble\" Float 'False\n         where\n        nodeProperty = (get_rumble, wrapDroppingSetter set_rumble, Nothing)\n\n{-# NOINLINE bindARVRPositionalTracker__set_joy_id #-}\n\nbindARVRPositionalTracker__set_joy_id :: MethodBind\nbindARVRPositionalTracker__set_joy_id\n  = unsafePerformIO $\n      withCString \"ARVRPositionalTracker\" $\n        \\ clsNamePtr ->\n          withCString \"_set_joy_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_joy_id ::\n              (ARVRPositionalTracker :< cls, Object :< cls) =>\n              cls -> Int -> IO ()\n_set_joy_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRPositionalTracker__set_joy_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRPositionalTracker \"_set_joy_id\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ARVRPositionalTracker._set_joy_id\n\n{-# NOINLINE bindARVRPositionalTracker__set_mesh #-}\n\nbindARVRPositionalTracker__set_mesh :: MethodBind\nbindARVRPositionalTracker__set_mesh\n  = unsafePerformIO $\n      withCString \"ARVRPositionalTracker\" $\n        \\ clsNamePtr ->\n          withCString \"_set_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_mesh ::\n            (ARVRPositionalTracker :< cls, Object :< cls) =>\n            cls -> Mesh -> IO ()\n_set_mesh cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRPositionalTracker__set_mesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRPositionalTracker \"_set_mesh\" '[Mesh]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ARVRPositionalTracker._set_mesh\n\n{-# NOINLINE bindARVRPositionalTracker__set_name #-}\n\nbindARVRPositionalTracker__set_name :: MethodBind\nbindARVRPositionalTracker__set_name\n  = unsafePerformIO $\n      withCString \"ARVRPositionalTracker\" $\n        \\ clsNamePtr ->\n          withCString \"_set_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_name ::\n            (ARVRPositionalTracker :< cls, Object :< cls) =>\n            cls -> GodotString -> IO ()\n_set_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRPositionalTracker__set_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRPositionalTracker \"_set_name\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ARVRPositionalTracker._set_name\n\n{-# NOINLINE bindARVRPositionalTracker__set_orientation #-}\n\nbindARVRPositionalTracker__set_orientation :: MethodBind\nbindARVRPositionalTracker__set_orientation\n  = unsafePerformIO $\n      withCString \"ARVRPositionalTracker\" $\n        \\ clsNamePtr ->\n          withCString \"_set_orientation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_orientation ::\n                   (ARVRPositionalTracker :< cls, Object :< cls) =>\n                   cls -> Basis -> IO ()\n_set_orientation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRPositionalTracker__set_orientation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRPositionalTracker \"_set_orientation\"\n           '[Basis]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ARVRPositionalTracker._set_orientation\n\n{-# NOINLINE bindARVRPositionalTracker__set_rw_position #-}\n\nbindARVRPositionalTracker__set_rw_position :: MethodBind\nbindARVRPositionalTracker__set_rw_position\n  = unsafePerformIO $\n      withCString \"ARVRPositionalTracker\" $\n        \\ clsNamePtr ->\n          withCString \"_set_rw_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_rw_position ::\n                   (ARVRPositionalTracker :< cls, Object :< cls) =>\n                   cls -> Vector3 -> IO ()\n_set_rw_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRPositionalTracker__set_rw_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRPositionalTracker \"_set_rw_position\"\n           '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ARVRPositionalTracker._set_rw_position\n\n{-# NOINLINE bindARVRPositionalTracker__set_type #-}\n\nbindARVRPositionalTracker__set_type :: MethodBind\nbindARVRPositionalTracker__set_type\n  = unsafePerformIO $\n      withCString \"ARVRPositionalTracker\" $\n        \\ clsNamePtr ->\n          withCString \"_set_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_type ::\n            (ARVRPositionalTracker :< cls, Object :< cls) =>\n            cls -> Int -> IO ()\n_set_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRPositionalTracker__set_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRPositionalTracker \"_set_type\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ARVRPositionalTracker._set_type\n\n{-# NOINLINE bindARVRPositionalTracker_get_hand #-}\n\n-- | Returns the hand holding this tracker, if known. See @enum TrackerHand@ constants.\nbindARVRPositionalTracker_get_hand :: MethodBind\nbindARVRPositionalTracker_get_hand\n  = unsafePerformIO $\n      withCString \"ARVRPositionalTracker\" $\n        \\ clsNamePtr ->\n          withCString \"get_hand\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the hand holding this tracker, if known. See @enum TrackerHand@ constants.\nget_hand ::\n           (ARVRPositionalTracker :< cls, Object :< cls) => cls -> IO Int\nget_hand cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRPositionalTracker_get_hand\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRPositionalTracker \"get_hand\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ARVRPositionalTracker.get_hand\n\n{-# NOINLINE bindARVRPositionalTracker_get_joy_id #-}\n\n-- | If this is a controller that is being tracked, the controller will also be represented by a joystick entry with this ID.\nbindARVRPositionalTracker_get_joy_id :: MethodBind\nbindARVRPositionalTracker_get_joy_id\n  = unsafePerformIO $\n      withCString \"ARVRPositionalTracker\" $\n        \\ clsNamePtr ->\n          withCString \"get_joy_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If this is a controller that is being tracked, the controller will also be represented by a joystick entry with this ID.\nget_joy_id ::\n             (ARVRPositionalTracker :< cls, Object :< cls) => cls -> IO Int\nget_joy_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRPositionalTracker_get_joy_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRPositionalTracker \"get_joy_id\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ARVRPositionalTracker.get_joy_id\n\n{-# NOINLINE bindARVRPositionalTracker_get_mesh #-}\n\n-- | Returns the mesh related to a controller or anchor point if one is available.\nbindARVRPositionalTracker_get_mesh :: MethodBind\nbindARVRPositionalTracker_get_mesh\n  = unsafePerformIO $\n      withCString \"ARVRPositionalTracker\" $\n        \\ clsNamePtr ->\n          withCString \"get_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the mesh related to a controller or anchor point if one is available.\nget_mesh ::\n           (ARVRPositionalTracker :< cls, Object :< cls) => cls -> IO Mesh\nget_mesh cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRPositionalTracker_get_mesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRPositionalTracker \"get_mesh\" '[] (IO Mesh)\n         where\n        nodeMethod = Godot.Core.ARVRPositionalTracker.get_mesh\n\n{-# NOINLINE bindARVRPositionalTracker_get_name #-}\n\n-- | Returns the controller or anchor point's name if available.\nbindARVRPositionalTracker_get_name :: MethodBind\nbindARVRPositionalTracker_get_name\n  = unsafePerformIO $\n      withCString \"ARVRPositionalTracker\" $\n        \\ clsNamePtr ->\n          withCString \"get_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the controller or anchor point's name if available.\nget_name ::\n           (ARVRPositionalTracker :< cls, Object :< cls) =>\n           cls -> IO GodotString\nget_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRPositionalTracker_get_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRPositionalTracker \"get_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.ARVRPositionalTracker.get_name\n\n{-# NOINLINE bindARVRPositionalTracker_get_orientation #-}\n\n-- | Returns the controller's orientation matrix.\nbindARVRPositionalTracker_get_orientation :: MethodBind\nbindARVRPositionalTracker_get_orientation\n  = unsafePerformIO $\n      withCString \"ARVRPositionalTracker\" $\n        \\ clsNamePtr ->\n          withCString \"get_orientation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the controller's orientation matrix.\nget_orientation ::\n                  (ARVRPositionalTracker :< cls, Object :< cls) => cls -> IO Basis\nget_orientation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRPositionalTracker_get_orientation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRPositionalTracker \"get_orientation\" '[]\n           (IO Basis)\n         where\n        nodeMethod = Godot.Core.ARVRPositionalTracker.get_orientation\n\n{-# NOINLINE bindARVRPositionalTracker_get_position #-}\n\n-- | Returns the world-space controller position.\nbindARVRPositionalTracker_get_position :: MethodBind\nbindARVRPositionalTracker_get_position\n  = unsafePerformIO $\n      withCString \"ARVRPositionalTracker\" $\n        \\ clsNamePtr ->\n          withCString \"get_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the world-space controller position.\nget_position ::\n               (ARVRPositionalTracker :< cls, Object :< cls) => cls -> IO Vector3\nget_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRPositionalTracker_get_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRPositionalTracker \"get_position\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.ARVRPositionalTracker.get_position\n\n{-# NOINLINE bindARVRPositionalTracker_get_rumble #-}\n\n-- | The degree to which the tracker rumbles. Ranges from @0.0@ to @1.0@ with precision @.01@.\nbindARVRPositionalTracker_get_rumble :: MethodBind\nbindARVRPositionalTracker_get_rumble\n  = unsafePerformIO $\n      withCString \"ARVRPositionalTracker\" $\n        \\ clsNamePtr ->\n          withCString \"get_rumble\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The degree to which the tracker rumbles. Ranges from @0.0@ to @1.0@ with precision @.01@.\nget_rumble ::\n             (ARVRPositionalTracker :< cls, Object :< cls) => cls -> IO Float\nget_rumble cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRPositionalTracker_get_rumble\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRPositionalTracker \"get_rumble\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.ARVRPositionalTracker.get_rumble\n\n{-# NOINLINE bindARVRPositionalTracker_get_tracks_orientation #-}\n\n-- | Returns @true@ if this device tracks orientation.\nbindARVRPositionalTracker_get_tracks_orientation :: MethodBind\nbindARVRPositionalTracker_get_tracks_orientation\n  = unsafePerformIO $\n      withCString \"ARVRPositionalTracker\" $\n        \\ clsNamePtr ->\n          withCString \"get_tracks_orientation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this device tracks orientation.\nget_tracks_orientation ::\n                         (ARVRPositionalTracker :< cls, Object :< cls) => cls -> IO Bool\nget_tracks_orientation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindARVRPositionalTracker_get_tracks_orientation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRPositionalTracker \"get_tracks_orientation\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.ARVRPositionalTracker.get_tracks_orientation\n\n{-# NOINLINE bindARVRPositionalTracker_get_tracks_position #-}\n\n-- | Returns @true@ if this device tracks position.\nbindARVRPositionalTracker_get_tracks_position :: MethodBind\nbindARVRPositionalTracker_get_tracks_position\n  = unsafePerformIO $\n      withCString \"ARVRPositionalTracker\" $\n        \\ clsNamePtr ->\n          withCString \"get_tracks_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this device tracks position.\nget_tracks_position ::\n                      (ARVRPositionalTracker :< cls, Object :< cls) => cls -> IO Bool\nget_tracks_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindARVRPositionalTracker_get_tracks_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRPositionalTracker \"get_tracks_position\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ARVRPositionalTracker.get_tracks_position\n\n{-# NOINLINE bindARVRPositionalTracker_get_transform #-}\n\n-- | Returns the transform combining this device's orientation and position.\nbindARVRPositionalTracker_get_transform :: MethodBind\nbindARVRPositionalTracker_get_transform\n  = unsafePerformIO $\n      withCString \"ARVRPositionalTracker\" $\n        \\ clsNamePtr ->\n          withCString \"get_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the transform combining this device's orientation and position.\nget_transform ::\n                (ARVRPositionalTracker :< cls, Object :< cls) =>\n                cls -> Bool -> IO Transform\nget_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRPositionalTracker_get_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRPositionalTracker \"get_transform\" '[Bool]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.ARVRPositionalTracker.get_transform\n\n{-# NOINLINE bindARVRPositionalTracker_get_type #-}\n\n-- | Returns the tracker's type.\nbindARVRPositionalTracker_get_type :: MethodBind\nbindARVRPositionalTracker_get_type\n  = unsafePerformIO $\n      withCString \"ARVRPositionalTracker\" $\n        \\ clsNamePtr ->\n          withCString \"get_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tracker's type.\nget_type ::\n           (ARVRPositionalTracker :< cls, Object :< cls) => cls -> IO Int\nget_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRPositionalTracker_get_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRPositionalTracker \"get_type\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ARVRPositionalTracker.get_type\n\n{-# NOINLINE bindARVRPositionalTracker_set_rumble #-}\n\n-- | The degree to which the tracker rumbles. Ranges from @0.0@ to @1.0@ with precision @.01@.\nbindARVRPositionalTracker_set_rumble :: MethodBind\nbindARVRPositionalTracker_set_rumble\n  = unsafePerformIO $\n      withCString \"ARVRPositionalTracker\" $\n        \\ clsNamePtr ->\n          withCString \"set_rumble\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The degree to which the tracker rumbles. Ranges from @0.0@ to @1.0@ with precision @.01@.\nset_rumble ::\n             (ARVRPositionalTracker :< cls, Object :< cls) =>\n             cls -> Float -> IO ()\nset_rumble cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRPositionalTracker_set_rumble\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRPositionalTracker \"set_rumble\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ARVRPositionalTracker.set_rumble"
  },
  {
    "path": "src/Godot/Core/ARVRServer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ARVRServer\n       (Godot.Core.ARVRServer._RESET_BUT_KEEP_TILT,\n        Godot.Core.ARVRServer._RESET_FULL_ROTATION,\n        Godot.Core.ARVRServer._TRACKER_CONTROLLER,\n        Godot.Core.ARVRServer._TRACKER_UNKNOWN,\n        Godot.Core.ARVRServer._TRACKER_ANY_KNOWN,\n        Godot.Core.ARVRServer._DONT_RESET_ROTATION,\n        Godot.Core.ARVRServer._TRACKER_BASESTATION,\n        Godot.Core.ARVRServer._TRACKER_ANCHOR,\n        Godot.Core.ARVRServer._TRACKER_ANY,\n        Godot.Core.ARVRServer.sig_interface_added,\n        Godot.Core.ARVRServer.sig_interface_removed,\n        Godot.Core.ARVRServer.sig_tracker_added,\n        Godot.Core.ARVRServer.sig_tracker_removed,\n        Godot.Core.ARVRServer.center_on_hmd,\n        Godot.Core.ARVRServer.find_interface,\n        Godot.Core.ARVRServer.get_hmd_transform,\n        Godot.Core.ARVRServer.get_interface,\n        Godot.Core.ARVRServer.get_interface_count,\n        Godot.Core.ARVRServer.get_interfaces,\n        Godot.Core.ARVRServer.get_last_commit_usec,\n        Godot.Core.ARVRServer.get_last_frame_usec,\n        Godot.Core.ARVRServer.get_last_process_usec,\n        Godot.Core.ARVRServer.get_primary_interface,\n        Godot.Core.ARVRServer.get_reference_frame,\n        Godot.Core.ARVRServer.get_tracker,\n        Godot.Core.ARVRServer.get_tracker_count,\n        Godot.Core.ARVRServer.get_world_scale,\n        Godot.Core.ARVRServer.set_primary_interface,\n        Godot.Core.ARVRServer.set_world_scale)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n_RESET_BUT_KEEP_TILT :: Int\n_RESET_BUT_KEEP_TILT = 1\n\n_RESET_FULL_ROTATION :: Int\n_RESET_FULL_ROTATION = 0\n\n_TRACKER_CONTROLLER :: Int\n_TRACKER_CONTROLLER = 1\n\n_TRACKER_UNKNOWN :: Int\n_TRACKER_UNKNOWN = 128\n\n_TRACKER_ANY_KNOWN :: Int\n_TRACKER_ANY_KNOWN = 127\n\n_DONT_RESET_ROTATION :: Int\n_DONT_RESET_ROTATION = 2\n\n_TRACKER_BASESTATION :: Int\n_TRACKER_BASESTATION = 2\n\n_TRACKER_ANCHOR :: Int\n_TRACKER_ANCHOR = 4\n\n_TRACKER_ANY :: Int\n_TRACKER_ANY = 255\n\n-- | Emitted when a new interface has been added.\nsig_interface_added :: Godot.Internal.Dispatch.Signal ARVRServer\nsig_interface_added\n  = Godot.Internal.Dispatch.Signal \"interface_added\"\n\ninstance NodeSignal ARVRServer \"interface_added\" '[GodotString]\n\n-- | Emitted when an interface is removed.\nsig_interface_removed :: Godot.Internal.Dispatch.Signal ARVRServer\nsig_interface_removed\n  = Godot.Internal.Dispatch.Signal \"interface_removed\"\n\ninstance NodeSignal ARVRServer \"interface_removed\" '[GodotString]\n\n-- | Emitted when a new tracker has been added. If you don't use a fixed number of controllers or if you're using @ARVRAnchor@s for an AR solution, it is important to react to this signal to add the appropriate @ARVRController@ or @ARVRAnchor@ nodes related to this new tracker.\nsig_tracker_added :: Godot.Internal.Dispatch.Signal ARVRServer\nsig_tracker_added = Godot.Internal.Dispatch.Signal \"tracker_added\"\n\ninstance NodeSignal ARVRServer \"tracker_added\"\n           '[GodotString, Int, Int]\n\n-- | Emitted when a tracker is removed. You should remove any @ARVRController@ or @ARVRAnchor@ points if applicable. This is not mandatory, the nodes simply become inactive and will be made active again when a new tracker becomes available (i.e. a new controller is switched on that takes the place of the previous one).\nsig_tracker_removed :: Godot.Internal.Dispatch.Signal ARVRServer\nsig_tracker_removed\n  = Godot.Internal.Dispatch.Signal \"tracker_removed\"\n\ninstance NodeSignal ARVRServer \"tracker_removed\"\n           '[GodotString, Int, Int]\n\ninstance NodeProperty ARVRServer \"primary_interface\" ARVRInterface\n           'False\n         where\n        nodeProperty\n          = (get_primary_interface, wrapDroppingSetter set_primary_interface,\n             Nothing)\n\ninstance NodeProperty ARVRServer \"world_scale\" Float 'False where\n        nodeProperty\n          = (get_world_scale, wrapDroppingSetter set_world_scale, Nothing)\n\n{-# NOINLINE bindARVRServer_center_on_hmd #-}\n\n-- | This is an important function to understand correctly. AR and VR platforms all handle positioning slightly differently.\n--   \t\t\t\tFor platforms that do not offer spatial tracking, our origin point (0,0,0) is the location of our HMD, but you have little control over the direction the player is facing in the real world.\n--   \t\t\t\tFor platforms that do offer spatial tracking, our origin point depends very much on the system. For OpenVR, our origin point is usually the center of the tracking space, on the ground. For other platforms, it's often the location of the tracking camera.\n--   \t\t\t\tThis method allows you to center your tracker on the location of the HMD. It will take the current location of the HMD and use that to adjust all your tracking data; in essence, realigning the real world to your player's current position in the game world.\n--   \t\t\t\tFor this method to produce usable results, tracking information must be available. This often takes a few frames after starting your game.\n--   \t\t\t\tYou should call this method after a few seconds have passed. For instance, when the user requests a realignment of the display holding a designated button on a controller for a short period of time, or when implementing a teleport mechanism.\nbindARVRServer_center_on_hmd :: MethodBind\nbindARVRServer_center_on_hmd\n  = unsafePerformIO $\n      withCString \"ARVRServer\" $\n        \\ clsNamePtr ->\n          withCString \"center_on_hmd\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This is an important function to understand correctly. AR and VR platforms all handle positioning slightly differently.\n--   \t\t\t\tFor platforms that do not offer spatial tracking, our origin point (0,0,0) is the location of our HMD, but you have little control over the direction the player is facing in the real world.\n--   \t\t\t\tFor platforms that do offer spatial tracking, our origin point depends very much on the system. For OpenVR, our origin point is usually the center of the tracking space, on the ground. For other platforms, it's often the location of the tracking camera.\n--   \t\t\t\tThis method allows you to center your tracker on the location of the HMD. It will take the current location of the HMD and use that to adjust all your tracking data; in essence, realigning the real world to your player's current position in the game world.\n--   \t\t\t\tFor this method to produce usable results, tracking information must be available. This often takes a few frames after starting your game.\n--   \t\t\t\tYou should call this method after a few seconds have passed. For instance, when the user requests a realignment of the display holding a designated button on a controller for a short period of time, or when implementing a teleport mechanism.\ncenter_on_hmd ::\n                (ARVRServer :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\ncenter_on_hmd cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRServer_center_on_hmd (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRServer \"center_on_hmd\" '[Int, Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.ARVRServer.center_on_hmd\n\n{-# NOINLINE bindARVRServer_find_interface #-}\n\n-- | Finds an interface by its name. For instance, if your project uses capabilities of an AR/VR platform, you can find the interface for that platform by name and initialize it.\nbindARVRServer_find_interface :: MethodBind\nbindARVRServer_find_interface\n  = unsafePerformIO $\n      withCString \"ARVRServer\" $\n        \\ clsNamePtr ->\n          withCString \"find_interface\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Finds an interface by its name. For instance, if your project uses capabilities of an AR/VR platform, you can find the interface for that platform by name and initialize it.\nfind_interface ::\n                 (ARVRServer :< cls, Object :< cls) =>\n                 cls -> GodotString -> IO ARVRInterface\nfind_interface cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRServer_find_interface (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRServer \"find_interface\" '[GodotString]\n           (IO ARVRInterface)\n         where\n        nodeMethod = Godot.Core.ARVRServer.find_interface\n\n{-# NOINLINE bindARVRServer_get_hmd_transform #-}\n\n-- | Returns the primary interface's transformation.\nbindARVRServer_get_hmd_transform :: MethodBind\nbindARVRServer_get_hmd_transform\n  = unsafePerformIO $\n      withCString \"ARVRServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_hmd_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the primary interface's transformation.\nget_hmd_transform ::\n                    (ARVRServer :< cls, Object :< cls) => cls -> IO Transform\nget_hmd_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRServer_get_hmd_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRServer \"get_hmd_transform\" '[]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.ARVRServer.get_hmd_transform\n\n{-# NOINLINE bindARVRServer_get_interface #-}\n\n-- | Returns the interface registered at a given index in our list of interfaces.\nbindARVRServer_get_interface :: MethodBind\nbindARVRServer_get_interface\n  = unsafePerformIO $\n      withCString \"ARVRServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_interface\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the interface registered at a given index in our list of interfaces.\nget_interface ::\n                (ARVRServer :< cls, Object :< cls) =>\n                cls -> Int -> IO ARVRInterface\nget_interface cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRServer_get_interface (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRServer \"get_interface\" '[Int]\n           (IO ARVRInterface)\n         where\n        nodeMethod = Godot.Core.ARVRServer.get_interface\n\n{-# NOINLINE bindARVRServer_get_interface_count #-}\n\n-- | Returns the number of interfaces currently registered with the AR/VR server. If your project supports multiple AR/VR platforms, you can look through the available interface, and either present the user with a selection or simply try to initialize each interface and use the first one that returns @true@.\nbindARVRServer_get_interface_count :: MethodBind\nbindARVRServer_get_interface_count\n  = unsafePerformIO $\n      withCString \"ARVRServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_interface_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of interfaces currently registered with the AR/VR server. If your project supports multiple AR/VR platforms, you can look through the available interface, and either present the user with a selection or simply try to initialize each interface and use the first one that returns @true@.\nget_interface_count ::\n                      (ARVRServer :< cls, Object :< cls) => cls -> IO Int\nget_interface_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRServer_get_interface_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRServer \"get_interface_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ARVRServer.get_interface_count\n\n{-# NOINLINE bindARVRServer_get_interfaces #-}\n\n-- | Returns a list of available interfaces the ID and name of each interface.\nbindARVRServer_get_interfaces :: MethodBind\nbindARVRServer_get_interfaces\n  = unsafePerformIO $\n      withCString \"ARVRServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_interfaces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a list of available interfaces the ID and name of each interface.\nget_interfaces ::\n                 (ARVRServer :< cls, Object :< cls) => cls -> IO Array\nget_interfaces cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRServer_get_interfaces (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRServer \"get_interfaces\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.ARVRServer.get_interfaces\n\n{-# NOINLINE bindARVRServer_get_last_commit_usec #-}\n\n-- | Returns the absolute timestamp (in μs) of the last @ARVRServer@ commit of the AR/VR eyes to @VisualServer@. The value comes from an internal call to @method OS.get_ticks_usec@.\nbindARVRServer_get_last_commit_usec :: MethodBind\nbindARVRServer_get_last_commit_usec\n  = unsafePerformIO $\n      withCString \"ARVRServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_last_commit_usec\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the absolute timestamp (in μs) of the last @ARVRServer@ commit of the AR/VR eyes to @VisualServer@. The value comes from an internal call to @method OS.get_ticks_usec@.\nget_last_commit_usec ::\n                       (ARVRServer :< cls, Object :< cls) => cls -> IO Int\nget_last_commit_usec cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRServer_get_last_commit_usec\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRServer \"get_last_commit_usec\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ARVRServer.get_last_commit_usec\n\n{-# NOINLINE bindARVRServer_get_last_frame_usec #-}\n\n-- | Returns the duration (in μs) of the last frame. This is computed as the difference between @method get_last_commit_usec@ and @method get_last_process_usec@ when committing.\nbindARVRServer_get_last_frame_usec :: MethodBind\nbindARVRServer_get_last_frame_usec\n  = unsafePerformIO $\n      withCString \"ARVRServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_last_frame_usec\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the duration (in μs) of the last frame. This is computed as the difference between @method get_last_commit_usec@ and @method get_last_process_usec@ when committing.\nget_last_frame_usec ::\n                      (ARVRServer :< cls, Object :< cls) => cls -> IO Int\nget_last_frame_usec cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRServer_get_last_frame_usec\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRServer \"get_last_frame_usec\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ARVRServer.get_last_frame_usec\n\n{-# NOINLINE bindARVRServer_get_last_process_usec #-}\n\n-- | Returns the absolute timestamp (in μs) of the last @ARVRServer@ process callback. The value comes from an internal call to @method OS.get_ticks_usec@.\nbindARVRServer_get_last_process_usec :: MethodBind\nbindARVRServer_get_last_process_usec\n  = unsafePerformIO $\n      withCString \"ARVRServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_last_process_usec\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the absolute timestamp (in μs) of the last @ARVRServer@ process callback. The value comes from an internal call to @method OS.get_ticks_usec@.\nget_last_process_usec ::\n                        (ARVRServer :< cls, Object :< cls) => cls -> IO Int\nget_last_process_usec cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRServer_get_last_process_usec\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRServer \"get_last_process_usec\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ARVRServer.get_last_process_usec\n\n{-# NOINLINE bindARVRServer_get_primary_interface #-}\n\n-- | The primary @ARVRInterface@ currently bound to the @ARVRServer@.\nbindARVRServer_get_primary_interface :: MethodBind\nbindARVRServer_get_primary_interface\n  = unsafePerformIO $\n      withCString \"ARVRServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_primary_interface\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The primary @ARVRInterface@ currently bound to the @ARVRServer@.\nget_primary_interface ::\n                        (ARVRServer :< cls, Object :< cls) => cls -> IO ARVRInterface\nget_primary_interface cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRServer_get_primary_interface\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRServer \"get_primary_interface\" '[]\n           (IO ARVRInterface)\n         where\n        nodeMethod = Godot.Core.ARVRServer.get_primary_interface\n\n{-# NOINLINE bindARVRServer_get_reference_frame #-}\n\n-- | Returns the reference frame transform. Mostly used internally and exposed for GDNative build interfaces.\nbindARVRServer_get_reference_frame :: MethodBind\nbindARVRServer_get_reference_frame\n  = unsafePerformIO $\n      withCString \"ARVRServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_reference_frame\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the reference frame transform. Mostly used internally and exposed for GDNative build interfaces.\nget_reference_frame ::\n                      (ARVRServer :< cls, Object :< cls) => cls -> IO Transform\nget_reference_frame cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRServer_get_reference_frame\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRServer \"get_reference_frame\" '[]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.ARVRServer.get_reference_frame\n\n{-# NOINLINE bindARVRServer_get_tracker #-}\n\n-- | Returns the positional tracker at the given ID.\nbindARVRServer_get_tracker :: MethodBind\nbindARVRServer_get_tracker\n  = unsafePerformIO $\n      withCString \"ARVRServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_tracker\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the positional tracker at the given ID.\nget_tracker ::\n              (ARVRServer :< cls, Object :< cls) =>\n              cls -> Int -> IO ARVRPositionalTracker\nget_tracker cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRServer_get_tracker (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRServer \"get_tracker\" '[Int]\n           (IO ARVRPositionalTracker)\n         where\n        nodeMethod = Godot.Core.ARVRServer.get_tracker\n\n{-# NOINLINE bindARVRServer_get_tracker_count #-}\n\n-- | Returns the number of trackers currently registered.\nbindARVRServer_get_tracker_count :: MethodBind\nbindARVRServer_get_tracker_count\n  = unsafePerformIO $\n      withCString \"ARVRServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_tracker_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of trackers currently registered.\nget_tracker_count ::\n                    (ARVRServer :< cls, Object :< cls) => cls -> IO Int\nget_tracker_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRServer_get_tracker_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRServer \"get_tracker_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ARVRServer.get_tracker_count\n\n{-# NOINLINE bindARVRServer_get_world_scale #-}\n\n-- | Allows you to adjust the scale to your game's units. Most AR/VR platforms assume a scale of 1 game world unit = 1 real world meter.\nbindARVRServer_get_world_scale :: MethodBind\nbindARVRServer_get_world_scale\n  = unsafePerformIO $\n      withCString \"ARVRServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_world_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Allows you to adjust the scale to your game's units. Most AR/VR platforms assume a scale of 1 game world unit = 1 real world meter.\nget_world_scale ::\n                  (ARVRServer :< cls, Object :< cls) => cls -> IO Float\nget_world_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRServer_get_world_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRServer \"get_world_scale\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.ARVRServer.get_world_scale\n\n{-# NOINLINE bindARVRServer_set_primary_interface #-}\n\n-- | The primary @ARVRInterface@ currently bound to the @ARVRServer@.\nbindARVRServer_set_primary_interface :: MethodBind\nbindARVRServer_set_primary_interface\n  = unsafePerformIO $\n      withCString \"ARVRServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_primary_interface\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The primary @ARVRInterface@ currently bound to the @ARVRServer@.\nset_primary_interface ::\n                        (ARVRServer :< cls, Object :< cls) => cls -> ARVRInterface -> IO ()\nset_primary_interface cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRServer_set_primary_interface\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRServer \"set_primary_interface\"\n           '[ARVRInterface]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ARVRServer.set_primary_interface\n\n{-# NOINLINE bindARVRServer_set_world_scale #-}\n\n-- | Allows you to adjust the scale to your game's units. Most AR/VR platforms assume a scale of 1 game world unit = 1 real world meter.\nbindARVRServer_set_world_scale :: MethodBind\nbindARVRServer_set_world_scale\n  = unsafePerformIO $\n      withCString \"ARVRServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_world_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Allows you to adjust the scale to your game's units. Most AR/VR platforms assume a scale of 1 game world unit = 1 real world meter.\nset_world_scale ::\n                  (ARVRServer :< cls, Object :< cls) => cls -> Float -> IO ()\nset_world_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindARVRServer_set_world_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ARVRServer \"set_world_scale\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.ARVRServer.set_world_scale"
  },
  {
    "path": "src/Godot/Core/AStar.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AStar\n       (Godot.Core.AStar._compute_cost, Godot.Core.AStar._estimate_cost,\n        Godot.Core.AStar.add_point, Godot.Core.AStar.are_points_connected,\n        Godot.Core.AStar.clear, Godot.Core.AStar.connect_points,\n        Godot.Core.AStar.disconnect_points,\n        Godot.Core.AStar.get_available_point_id,\n        Godot.Core.AStar.get_closest_point,\n        Godot.Core.AStar.get_closest_position_in_segment,\n        Godot.Core.AStar.get_id_path, Godot.Core.AStar.get_point_capacity,\n        Godot.Core.AStar.get_point_connections,\n        Godot.Core.AStar.get_point_count, Godot.Core.AStar.get_point_path,\n        Godot.Core.AStar.get_point_position,\n        Godot.Core.AStar.get_point_weight_scale,\n        Godot.Core.AStar.get_points, Godot.Core.AStar.has_point,\n        Godot.Core.AStar.is_point_disabled, Godot.Core.AStar.remove_point,\n        Godot.Core.AStar.reserve_space,\n        Godot.Core.AStar.set_point_disabled,\n        Godot.Core.AStar.set_point_position,\n        Godot.Core.AStar.set_point_weight_scale)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindAStar__compute_cost #-}\n\n-- | Called when computing the cost between two connected points.\n--   \t\t\t\tNote that this function is hidden in the default @AStar@ class.\nbindAStar__compute_cost :: MethodBind\nbindAStar__compute_cost\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"_compute_cost\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called when computing the cost between two connected points.\n--   \t\t\t\tNote that this function is hidden in the default @AStar@ class.\n_compute_cost ::\n                (AStar :< cls, Object :< cls) => cls -> Int -> Int -> IO Float\n_compute_cost cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar__compute_cost (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"_compute_cost\" '[Int, Int] (IO Float)\n         where\n        nodeMethod = Godot.Core.AStar._compute_cost\n\n{-# NOINLINE bindAStar__estimate_cost #-}\n\n-- | Called when estimating the cost between a point and the path's ending point.\n--   \t\t\t\tNote that this function is hidden in the default @AStar@ class.\nbindAStar__estimate_cost :: MethodBind\nbindAStar__estimate_cost\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"_estimate_cost\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called when estimating the cost between a point and the path's ending point.\n--   \t\t\t\tNote that this function is hidden in the default @AStar@ class.\n_estimate_cost ::\n                 (AStar :< cls, Object :< cls) => cls -> Int -> Int -> IO Float\n_estimate_cost cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar__estimate_cost (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"_estimate_cost\" '[Int, Int] (IO Float)\n         where\n        nodeMethod = Godot.Core.AStar._estimate_cost\n\n{-# NOINLINE bindAStar_add_point #-}\n\n-- | Adds a new point at the given position with the given identifier. The algorithm prefers points with lower @weight_scale@ to form a path. The @id@ must be 0 or larger, and the @weight_scale@ must be 1 or larger.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar.new()\n--   \t\t\t\tastar.add_point(1, Vector3(1, 0, 0), 4) # Adds the point (1, 0, 0) with weight_scale 4 and id 1\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tIf there already exists a point for the given @id@, its position and weight scale are updated to the given values.\nbindAStar_add_point :: MethodBind\nbindAStar_add_point\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"add_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new point at the given position with the given identifier. The algorithm prefers points with lower @weight_scale@ to form a path. The @id@ must be 0 or larger, and the @weight_scale@ must be 1 or larger.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar.new()\n--   \t\t\t\tastar.add_point(1, Vector3(1, 0, 0), 4) # Adds the point (1, 0, 0) with weight_scale 4 and id 1\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tIf there already exists a point for the given @id@, its position and weight scale are updated to the given values.\nadd_point ::\n            (AStar :< cls, Object :< cls) =>\n            cls -> Int -> Vector3 -> Maybe Float -> IO ()\nadd_point cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantReal (1)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_add_point (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"add_point\" '[Int, Vector3, Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AStar.add_point\n\n{-# NOINLINE bindAStar_are_points_connected #-}\n\n-- | Returns whether the two given points are directly connected by a segment. If @bidirectional@ is @false@, returns whether movement from @id@ to @to_id@ is possible through this segment.\nbindAStar_are_points_connected :: MethodBind\nbindAStar_are_points_connected\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"are_points_connected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether the two given points are directly connected by a segment. If @bidirectional@ is @false@, returns whether movement from @id@ to @to_id@ is possible through this segment.\nare_points_connected ::\n                       (AStar :< cls, Object :< cls) =>\n                       cls -> Int -> Int -> Maybe Bool -> IO Bool\nare_points_connected cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool True) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_are_points_connected (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"are_points_connected\"\n           '[Int, Int, Maybe Bool]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AStar.are_points_connected\n\n{-# NOINLINE bindAStar_clear #-}\n\n-- | Clears all the points and segments.\nbindAStar_clear :: MethodBind\nbindAStar_clear\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears all the points and segments.\nclear :: (AStar :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_clear (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.AStar.clear\n\n{-# NOINLINE bindAStar_connect_points #-}\n\n-- | Creates a segment between the given points. If @bidirectional@ is @false@, only movement from @id@ to @to_id@ is allowed, not the reverse direction.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar.new()\n--   \t\t\t\tastar.add_point(1, Vector3(1, 1, 0))\n--   \t\t\t\tastar.add_point(2, Vector3(0, 5, 0))\n--   \t\t\t\tastar.connect_points(1, 2, false)\n--   \t\t\t\t\n--   @\nbindAStar_connect_points :: MethodBind\nbindAStar_connect_points\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"connect_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a segment between the given points. If @bidirectional@ is @false@, only movement from @id@ to @to_id@ is allowed, not the reverse direction.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar.new()\n--   \t\t\t\tastar.add_point(1, Vector3(1, 1, 0))\n--   \t\t\t\tastar.add_point(2, Vector3(0, 5, 0))\n--   \t\t\t\tastar.connect_points(1, 2, false)\n--   \t\t\t\t\n--   @\nconnect_points ::\n                 (AStar :< cls, Object :< cls) =>\n                 cls -> Int -> Int -> Maybe Bool -> IO ()\nconnect_points cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool True) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_connect_points (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"connect_points\" '[Int, Int, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AStar.connect_points\n\n{-# NOINLINE bindAStar_disconnect_points #-}\n\n-- | Deletes the segment between the given points. If @bidirectional@ is @false@, only movement from @id@ to @to_id@ is prevented, and a unidirectional segment possibly remains.\nbindAStar_disconnect_points :: MethodBind\nbindAStar_disconnect_points\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"disconnect_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Deletes the segment between the given points. If @bidirectional@ is @false@, only movement from @id@ to @to_id@ is prevented, and a unidirectional segment possibly remains.\ndisconnect_points ::\n                    (AStar :< cls, Object :< cls) =>\n                    cls -> Int -> Int -> Maybe Bool -> IO ()\ndisconnect_points cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool True) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_disconnect_points (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"disconnect_points\"\n           '[Int, Int, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AStar.disconnect_points\n\n{-# NOINLINE bindAStar_get_available_point_id #-}\n\n-- | Returns the next available point ID with no point associated to it.\nbindAStar_get_available_point_id :: MethodBind\nbindAStar_get_available_point_id\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"get_available_point_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the next available point ID with no point associated to it.\nget_available_point_id ::\n                         (AStar :< cls, Object :< cls) => cls -> IO Int\nget_available_point_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_get_available_point_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"get_available_point_id\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.AStar.get_available_point_id\n\n{-# NOINLINE bindAStar_get_closest_point #-}\n\n-- | Returns the ID of the closest point to @to_position@, optionally taking disabled points into account. Returns @-1@ if there are no points in the points pool.\n--   \t\t\t\t__Note:__ If several points are the closest to @to_position@, the one with the smallest ID will be returned, ensuring a deterministic result.\nbindAStar_get_closest_point :: MethodBind\nbindAStar_get_closest_point\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the ID of the closest point to @to_position@, optionally taking disabled points into account. Returns @-1@ if there are no points in the points pool.\n--   \t\t\t\t__Note:__ If several points are the closest to @to_position@, the one with the smallest ID will be returned, ensuring a deterministic result.\nget_closest_point ::\n                    (AStar :< cls, Object :< cls) =>\n                    cls -> Vector3 -> Maybe Bool -> IO Int\nget_closest_point cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_get_closest_point (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"get_closest_point\"\n           '[Vector3, Maybe Bool]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AStar.get_closest_point\n\n{-# NOINLINE bindAStar_get_closest_position_in_segment #-}\n\n-- | Returns the closest position to @to_position@ that resides inside a segment between two connected points.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar.new()\n--   \t\t\t\tastar.add_point(1, Vector3(0, 0, 0))\n--   \t\t\t\tastar.add_point(2, Vector3(0, 5, 0))\n--   \t\t\t\tastar.connect_points(1, 2)\n--   \t\t\t\tvar res = astar.get_closest_position_in_segment(Vector3(3, 3, 0)) # Returns (0, 3, 0)\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tThe result is in the segment that goes from @y = 0@ to @y = 5@. It's the closest position in the segment to the given point.\nbindAStar_get_closest_position_in_segment :: MethodBind\nbindAStar_get_closest_position_in_segment\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_position_in_segment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the closest position to @to_position@ that resides inside a segment between two connected points.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar.new()\n--   \t\t\t\tastar.add_point(1, Vector3(0, 0, 0))\n--   \t\t\t\tastar.add_point(2, Vector3(0, 5, 0))\n--   \t\t\t\tastar.connect_points(1, 2)\n--   \t\t\t\tvar res = astar.get_closest_position_in_segment(Vector3(3, 3, 0)) # Returns (0, 3, 0)\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tThe result is in the segment that goes from @y = 0@ to @y = 5@. It's the closest position in the segment to the given point.\nget_closest_position_in_segment ::\n                                  (AStar :< cls, Object :< cls) => cls -> Vector3 -> IO Vector3\nget_closest_position_in_segment cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_get_closest_position_in_segment\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"get_closest_position_in_segment\"\n           '[Vector3]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.AStar.get_closest_position_in_segment\n\n{-# NOINLINE bindAStar_get_id_path #-}\n\n-- | Returns an array with the IDs of the points that form the path found by AStar between the given points. The array is ordered from the starting point to the ending point of the path.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar.new()\n--   \t\t\t\tastar.add_point(1, Vector3(0, 0, 0))\n--   \t\t\t\tastar.add_point(2, Vector3(0, 1, 0), 1) # Default weight is 1\n--   \t\t\t\tastar.add_point(3, Vector3(1, 1, 0))\n--   \t\t\t\tastar.add_point(4, Vector3(2, 0, 0))\n--   \n--   \t\t\t\tastar.connect_points(1, 2, false)\n--   \t\t\t\tastar.connect_points(2, 3, false)\n--   \t\t\t\tastar.connect_points(4, 3, false)\n--   \t\t\t\tastar.connect_points(1, 4, false)\n--   \n--   \t\t\t\tvar res = astar.get_id_path(1, 3) # Returns @1, 2, 3@\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tIf you change the 2nd point's weight to 3, then the result will be @@1, 4, 3@@ instead, because now even though the distance is longer, it's \"easier\" to get through point 4 than through point 2.\nbindAStar_get_id_path :: MethodBind\nbindAStar_get_id_path\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"get_id_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array with the IDs of the points that form the path found by AStar between the given points. The array is ordered from the starting point to the ending point of the path.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar.new()\n--   \t\t\t\tastar.add_point(1, Vector3(0, 0, 0))\n--   \t\t\t\tastar.add_point(2, Vector3(0, 1, 0), 1) # Default weight is 1\n--   \t\t\t\tastar.add_point(3, Vector3(1, 1, 0))\n--   \t\t\t\tastar.add_point(4, Vector3(2, 0, 0))\n--   \n--   \t\t\t\tastar.connect_points(1, 2, false)\n--   \t\t\t\tastar.connect_points(2, 3, false)\n--   \t\t\t\tastar.connect_points(4, 3, false)\n--   \t\t\t\tastar.connect_points(1, 4, false)\n--   \n--   \t\t\t\tvar res = astar.get_id_path(1, 3) # Returns @1, 2, 3@\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tIf you change the 2nd point's weight to 3, then the result will be @@1, 4, 3@@ instead, because now even though the distance is longer, it's \"easier\" to get through point 4 than through point 2.\nget_id_path ::\n              (AStar :< cls, Object :< cls) =>\n              cls -> Int -> Int -> IO PoolIntArray\nget_id_path cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_get_id_path (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"get_id_path\" '[Int, Int]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.AStar.get_id_path\n\n{-# NOINLINE bindAStar_get_point_capacity #-}\n\n-- | Returns the capacity of the structure backing the points, useful in conjunction with @reserve_space@.\nbindAStar_get_point_capacity :: MethodBind\nbindAStar_get_point_capacity\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_capacity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the capacity of the structure backing the points, useful in conjunction with @reserve_space@.\nget_point_capacity ::\n                     (AStar :< cls, Object :< cls) => cls -> IO Int\nget_point_capacity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_get_point_capacity (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"get_point_capacity\" '[] (IO Int) where\n        nodeMethod = Godot.Core.AStar.get_point_capacity\n\n{-# NOINLINE bindAStar_get_point_connections #-}\n\n-- | Returns an array with the IDs of the points that form the connection with the given point.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar.new()\n--   \t\t\t\tastar.add_point(1, Vector3(0, 0, 0))\n--   \t\t\t\tastar.add_point(2, Vector3(0, 1, 0))\n--   \t\t\t\tastar.add_point(3, Vector3(1, 1, 0))\n--   \t\t\t\tastar.add_point(4, Vector3(2, 0, 0))\n--   \n--   \t\t\t\tastar.connect_points(1, 2, true)\n--   \t\t\t\tastar.connect_points(1, 3, true)\n--   \n--   \t\t\t\tvar neighbors = astar.get_point_connections(1) # Returns @2, 3@\n--   \t\t\t\t\n--   @\nbindAStar_get_point_connections :: MethodBind\nbindAStar_get_point_connections\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_connections\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array with the IDs of the points that form the connection with the given point.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar.new()\n--   \t\t\t\tastar.add_point(1, Vector3(0, 0, 0))\n--   \t\t\t\tastar.add_point(2, Vector3(0, 1, 0))\n--   \t\t\t\tastar.add_point(3, Vector3(1, 1, 0))\n--   \t\t\t\tastar.add_point(4, Vector3(2, 0, 0))\n--   \n--   \t\t\t\tastar.connect_points(1, 2, true)\n--   \t\t\t\tastar.connect_points(1, 3, true)\n--   \n--   \t\t\t\tvar neighbors = astar.get_point_connections(1) # Returns @2, 3@\n--   \t\t\t\t\n--   @\nget_point_connections ::\n                        (AStar :< cls, Object :< cls) => cls -> Int -> IO PoolIntArray\nget_point_connections cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_get_point_connections (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"get_point_connections\" '[Int]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.AStar.get_point_connections\n\n{-# NOINLINE bindAStar_get_point_count #-}\n\n-- | Returns the number of points currently in the points pool.\nbindAStar_get_point_count :: MethodBind\nbindAStar_get_point_count\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of points currently in the points pool.\nget_point_count :: (AStar :< cls, Object :< cls) => cls -> IO Int\nget_point_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_get_point_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"get_point_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.AStar.get_point_count\n\n{-# NOINLINE bindAStar_get_point_path #-}\n\n-- | Returns an array with the points that are in the path found by AStar between the given points. The array is ordered from the starting point to the ending point of the path.\nbindAStar_get_point_path :: MethodBind\nbindAStar_get_point_path\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array with the points that are in the path found by AStar between the given points. The array is ordered from the starting point to the ending point of the path.\nget_point_path ::\n                 (AStar :< cls, Object :< cls) =>\n                 cls -> Int -> Int -> IO PoolVector3Array\nget_point_path cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_get_point_path (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"get_point_path\" '[Int, Int]\n           (IO PoolVector3Array)\n         where\n        nodeMethod = Godot.Core.AStar.get_point_path\n\n{-# NOINLINE bindAStar_get_point_position #-}\n\n-- | Returns the position of the point associated with the given @id@.\nbindAStar_get_point_position :: MethodBind\nbindAStar_get_point_position\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position of the point associated with the given @id@.\nget_point_position ::\n                     (AStar :< cls, Object :< cls) => cls -> Int -> IO Vector3\nget_point_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_get_point_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"get_point_position\" '[Int] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.AStar.get_point_position\n\n{-# NOINLINE bindAStar_get_point_weight_scale #-}\n\n-- | Returns the weight scale of the point associated with the given @id@.\nbindAStar_get_point_weight_scale :: MethodBind\nbindAStar_get_point_weight_scale\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_weight_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the weight scale of the point associated with the given @id@.\nget_point_weight_scale ::\n                         (AStar :< cls, Object :< cls) => cls -> Int -> IO Float\nget_point_weight_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_get_point_weight_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"get_point_weight_scale\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AStar.get_point_weight_scale\n\n{-# NOINLINE bindAStar_get_points #-}\n\n-- | Returns an array of all points.\nbindAStar_get_points :: MethodBind\nbindAStar_get_points\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"get_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of all points.\nget_points :: (AStar :< cls, Object :< cls) => cls -> IO Array\nget_points cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_get_points (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"get_points\" '[] (IO Array) where\n        nodeMethod = Godot.Core.AStar.get_points\n\n{-# NOINLINE bindAStar_has_point #-}\n\n-- | Returns whether a point associated with the given @id@ exists.\nbindAStar_has_point :: MethodBind\nbindAStar_has_point\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"has_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether a point associated with the given @id@ exists.\nhas_point :: (AStar :< cls, Object :< cls) => cls -> Int -> IO Bool\nhas_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_has_point (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"has_point\" '[Int] (IO Bool) where\n        nodeMethod = Godot.Core.AStar.has_point\n\n{-# NOINLINE bindAStar_is_point_disabled #-}\n\n-- | Returns whether a point is disabled or not for pathfinding. By default, all points are enabled.\nbindAStar_is_point_disabled :: MethodBind\nbindAStar_is_point_disabled\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"is_point_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether a point is disabled or not for pathfinding. By default, all points are enabled.\nis_point_disabled ::\n                    (AStar :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_point_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_is_point_disabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"is_point_disabled\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AStar.is_point_disabled\n\n{-# NOINLINE bindAStar_remove_point #-}\n\n-- | Removes the point associated with the given @id@ from the points pool.\nbindAStar_remove_point :: MethodBind\nbindAStar_remove_point\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"remove_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the point associated with the given @id@ from the points pool.\nremove_point ::\n               (AStar :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_remove_point (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"remove_point\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.AStar.remove_point\n\n{-# NOINLINE bindAStar_reserve_space #-}\n\n-- | Reserves space internally for @num_nodes@ points, useful if you're adding a known large number of points at once, for a grid for instance. New capacity must be greater or equals to old capacity.\nbindAStar_reserve_space :: MethodBind\nbindAStar_reserve_space\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"reserve_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Reserves space internally for @num_nodes@ points, useful if you're adding a known large number of points at once, for a grid for instance. New capacity must be greater or equals to old capacity.\nreserve_space ::\n                (AStar :< cls, Object :< cls) => cls -> Int -> IO ()\nreserve_space cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_reserve_space (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"reserve_space\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.AStar.reserve_space\n\n{-# NOINLINE bindAStar_set_point_disabled #-}\n\n-- | Disables or enables the specified point for pathfinding. Useful for making a temporary obstacle.\nbindAStar_set_point_disabled :: MethodBind\nbindAStar_set_point_disabled\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Disables or enables the specified point for pathfinding. Useful for making a temporary obstacle.\nset_point_disabled ::\n                     (AStar :< cls, Object :< cls) => cls -> Int -> Maybe Bool -> IO ()\nset_point_disabled cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool True) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_set_point_disabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"set_point_disabled\" '[Int, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AStar.set_point_disabled\n\n{-# NOINLINE bindAStar_set_point_position #-}\n\n-- | Sets the @position@ for the point with the given @id@.\nbindAStar_set_point_position :: MethodBind\nbindAStar_set_point_position\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @position@ for the point with the given @id@.\nset_point_position ::\n                     (AStar :< cls, Object :< cls) => cls -> Int -> Vector3 -> IO ()\nset_point_position cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_set_point_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"set_point_position\" '[Int, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AStar.set_point_position\n\n{-# NOINLINE bindAStar_set_point_weight_scale #-}\n\n-- | Sets the @weight_scale@ for the point with the given @id@.\nbindAStar_set_point_weight_scale :: MethodBind\nbindAStar_set_point_weight_scale\n  = unsafePerformIO $\n      withCString \"AStar\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_weight_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @weight_scale@ for the point with the given @id@.\nset_point_weight_scale ::\n                         (AStar :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\nset_point_weight_scale cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar_set_point_weight_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar \"set_point_weight_scale\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AStar.set_point_weight_scale"
  },
  {
    "path": "src/Godot/Core/AStar2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AStar2D\n       (Godot.Core.AStar2D.add_point,\n        Godot.Core.AStar2D.are_points_connected, Godot.Core.AStar2D.clear,\n        Godot.Core.AStar2D.connect_points,\n        Godot.Core.AStar2D.disconnect_points,\n        Godot.Core.AStar2D.get_available_point_id,\n        Godot.Core.AStar2D.get_closest_point,\n        Godot.Core.AStar2D.get_closest_position_in_segment,\n        Godot.Core.AStar2D.get_id_path,\n        Godot.Core.AStar2D.get_point_capacity,\n        Godot.Core.AStar2D.get_point_connections,\n        Godot.Core.AStar2D.get_point_count,\n        Godot.Core.AStar2D.get_point_path,\n        Godot.Core.AStar2D.get_point_position,\n        Godot.Core.AStar2D.get_point_weight_scale,\n        Godot.Core.AStar2D.get_points, Godot.Core.AStar2D.has_point,\n        Godot.Core.AStar2D.is_point_disabled,\n        Godot.Core.AStar2D.remove_point, Godot.Core.AStar2D.reserve_space,\n        Godot.Core.AStar2D.set_point_disabled,\n        Godot.Core.AStar2D.set_point_position,\n        Godot.Core.AStar2D.set_point_weight_scale)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindAStar2D_add_point #-}\n\n-- | Adds a new point at the given position with the given identifier. The algorithm prefers points with lower @weight_scale@ to form a path. The @id@ must be 0 or larger, and the @weight_scale@ must be 1 or larger.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar2D.new()\n--   \t\t\t\tastar.add_point(1, Vector2(1, 0), 4) # Adds the point (1, 0) with weight_scale 4 and id 1\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tIf there already exists a point for the given @id@, its position and weight scale are updated to the given values.\nbindAStar2D_add_point :: MethodBind\nbindAStar2D_add_point\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"add_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new point at the given position with the given identifier. The algorithm prefers points with lower @weight_scale@ to form a path. The @id@ must be 0 or larger, and the @weight_scale@ must be 1 or larger.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar2D.new()\n--   \t\t\t\tastar.add_point(1, Vector2(1, 0), 4) # Adds the point (1, 0) with weight_scale 4 and id 1\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tIf there already exists a point for the given @id@, its position and weight scale are updated to the given values.\nadd_point ::\n            (AStar2D :< cls, Object :< cls) =>\n            cls -> Int -> Vector2 -> Maybe Float -> IO ()\nadd_point cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantReal (1)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_add_point (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"add_point\"\n           '[Int, Vector2, Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AStar2D.add_point\n\n{-# NOINLINE bindAStar2D_are_points_connected #-}\n\n-- | Returns whether there is a connection/segment between the given points.\nbindAStar2D_are_points_connected :: MethodBind\nbindAStar2D_are_points_connected\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"are_points_connected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether there is a connection/segment between the given points.\nare_points_connected ::\n                       (AStar2D :< cls, Object :< cls) => cls -> Int -> Int -> IO Bool\nare_points_connected cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_are_points_connected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"are_points_connected\" '[Int, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AStar2D.are_points_connected\n\n{-# NOINLINE bindAStar2D_clear #-}\n\n-- | Clears all the points and segments.\nbindAStar2D_clear :: MethodBind\nbindAStar2D_clear\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears all the points and segments.\nclear :: (AStar2D :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_clear (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.AStar2D.clear\n\n{-# NOINLINE bindAStar2D_connect_points #-}\n\n-- | Creates a segment between the given points. If @bidirectional@ is @false@, only movement from @id@ to @to_id@ is allowed, not the reverse direction.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar2D.new()\n--   \t\t\t\tastar.add_point(1, Vector2(1, 1))\n--   \t\t\t\tastar.add_point(2, Vector2(0, 5))\n--   \t\t\t\tastar.connect_points(1, 2, false)\n--   \t\t\t\t\n--   @\nbindAStar2D_connect_points :: MethodBind\nbindAStar2D_connect_points\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"connect_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a segment between the given points. If @bidirectional@ is @false@, only movement from @id@ to @to_id@ is allowed, not the reverse direction.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar2D.new()\n--   \t\t\t\tastar.add_point(1, Vector2(1, 1))\n--   \t\t\t\tastar.add_point(2, Vector2(0, 5))\n--   \t\t\t\tastar.connect_points(1, 2, false)\n--   \t\t\t\t\n--   @\nconnect_points ::\n                 (AStar2D :< cls, Object :< cls) =>\n                 cls -> Int -> Int -> Maybe Bool -> IO ()\nconnect_points cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool True) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_connect_points (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"connect_points\"\n           '[Int, Int, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AStar2D.connect_points\n\n{-# NOINLINE bindAStar2D_disconnect_points #-}\n\n-- | Deletes the segment between the given points.\nbindAStar2D_disconnect_points :: MethodBind\nbindAStar2D_disconnect_points\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"disconnect_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Deletes the segment between the given points.\ndisconnect_points ::\n                    (AStar2D :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\ndisconnect_points cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_disconnect_points (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"disconnect_points\" '[Int, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.AStar2D.disconnect_points\n\n{-# NOINLINE bindAStar2D_get_available_point_id #-}\n\n-- | Returns the next available point ID with no point associated to it.\nbindAStar2D_get_available_point_id :: MethodBind\nbindAStar2D_get_available_point_id\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_available_point_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the next available point ID with no point associated to it.\nget_available_point_id ::\n                         (AStar2D :< cls, Object :< cls) => cls -> IO Int\nget_available_point_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_get_available_point_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"get_available_point_id\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.AStar2D.get_available_point_id\n\n{-# NOINLINE bindAStar2D_get_closest_point #-}\n\n-- | Returns the ID of the closest point to @to_position@, optionally taking disabled points into account. Returns @-1@ if there are no points in the points pool.\n--   \t\t\t\t__Note:__ If several points are the closest to @to_position@, the one with the smallest ID will be returned, ensuring a deterministic result.\nbindAStar2D_get_closest_point :: MethodBind\nbindAStar2D_get_closest_point\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the ID of the closest point to @to_position@, optionally taking disabled points into account. Returns @-1@ if there are no points in the points pool.\n--   \t\t\t\t__Note:__ If several points are the closest to @to_position@, the one with the smallest ID will be returned, ensuring a deterministic result.\nget_closest_point ::\n                    (AStar2D :< cls, Object :< cls) =>\n                    cls -> Vector2 -> Maybe Bool -> IO Int\nget_closest_point cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_get_closest_point (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"get_closest_point\"\n           '[Vector2, Maybe Bool]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AStar2D.get_closest_point\n\n{-# NOINLINE bindAStar2D_get_closest_position_in_segment #-}\n\n-- | Returns the closest position to @to_position@ that resides inside a segment between two connected points.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar2D.new()\n--   \t\t\t\tastar.add_point(1, Vector2(0, 0))\n--   \t\t\t\tastar.add_point(2, Vector2(0, 5))\n--   \t\t\t\tastar.connect_points(1, 2)\n--   \t\t\t\tvar res = astar.get_closest_position_in_segment(Vector2(3, 3)) # Returns (0, 3)\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tThe result is in the segment that goes from @y = 0@ to @y = 5@. It's the closest position in the segment to the given point.\nbindAStar2D_get_closest_position_in_segment :: MethodBind\nbindAStar2D_get_closest_position_in_segment\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_position_in_segment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the closest position to @to_position@ that resides inside a segment between two connected points.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar2D.new()\n--   \t\t\t\tastar.add_point(1, Vector2(0, 0))\n--   \t\t\t\tastar.add_point(2, Vector2(0, 5))\n--   \t\t\t\tastar.connect_points(1, 2)\n--   \t\t\t\tvar res = astar.get_closest_position_in_segment(Vector2(3, 3)) # Returns (0, 3)\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tThe result is in the segment that goes from @y = 0@ to @y = 5@. It's the closest position in the segment to the given point.\nget_closest_position_in_segment ::\n                                  (AStar2D :< cls, Object :< cls) => cls -> Vector2 -> IO Vector2\nget_closest_position_in_segment cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_get_closest_position_in_segment\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"get_closest_position_in_segment\"\n           '[Vector2]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.AStar2D.get_closest_position_in_segment\n\n{-# NOINLINE bindAStar2D_get_id_path #-}\n\n-- | Returns an array with the IDs of the points that form the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar2D.new()\n--   \t\t\t\tastar.add_point(1, Vector2(0, 0))\n--   \t\t\t\tastar.add_point(2, Vector2(0, 1), 1) # Default weight is 1\n--   \t\t\t\tastar.add_point(3, Vector2(1, 1))\n--   \t\t\t\tastar.add_point(4, Vector2(2, 0))\n--   \n--   \t\t\t\tastar.connect_points(1, 2, false)\n--   \t\t\t\tastar.connect_points(2, 3, false)\n--   \t\t\t\tastar.connect_points(4, 3, false)\n--   \t\t\t\tastar.connect_points(1, 4, false)\n--   \n--   \t\t\t\tvar res = astar.get_id_path(1, 3) # Returns @1, 2, 3@\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tIf you change the 2nd point's weight to 3, then the result will be @@1, 4, 3@@ instead, because now even though the distance is longer, it's \"easier\" to get through point 4 than through point 2.\nbindAStar2D_get_id_path :: MethodBind\nbindAStar2D_get_id_path\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_id_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array with the IDs of the points that form the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar2D.new()\n--   \t\t\t\tastar.add_point(1, Vector2(0, 0))\n--   \t\t\t\tastar.add_point(2, Vector2(0, 1), 1) # Default weight is 1\n--   \t\t\t\tastar.add_point(3, Vector2(1, 1))\n--   \t\t\t\tastar.add_point(4, Vector2(2, 0))\n--   \n--   \t\t\t\tastar.connect_points(1, 2, false)\n--   \t\t\t\tastar.connect_points(2, 3, false)\n--   \t\t\t\tastar.connect_points(4, 3, false)\n--   \t\t\t\tastar.connect_points(1, 4, false)\n--   \n--   \t\t\t\tvar res = astar.get_id_path(1, 3) # Returns @1, 2, 3@\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tIf you change the 2nd point's weight to 3, then the result will be @@1, 4, 3@@ instead, because now even though the distance is longer, it's \"easier\" to get through point 4 than through point 2.\nget_id_path ::\n              (AStar2D :< cls, Object :< cls) =>\n              cls -> Int -> Int -> IO PoolIntArray\nget_id_path cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_get_id_path (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"get_id_path\" '[Int, Int]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.AStar2D.get_id_path\n\n{-# NOINLINE bindAStar2D_get_point_capacity #-}\n\n-- | Returns the capacity of the structure backing the points, useful in conjunction with @reserve_space@.\nbindAStar2D_get_point_capacity :: MethodBind\nbindAStar2D_get_point_capacity\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_capacity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the capacity of the structure backing the points, useful in conjunction with @reserve_space@.\nget_point_capacity ::\n                     (AStar2D :< cls, Object :< cls) => cls -> IO Int\nget_point_capacity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_get_point_capacity (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"get_point_capacity\" '[] (IO Int) where\n        nodeMethod = Godot.Core.AStar2D.get_point_capacity\n\n{-# NOINLINE bindAStar2D_get_point_connections #-}\n\n-- | Returns an array with the IDs of the points that form the connection with the given point.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar2D.new()\n--   \t\t\t\tastar.add_point(1, Vector2(0, 0))\n--   \t\t\t\tastar.add_point(2, Vector2(0, 1))\n--   \t\t\t\tastar.add_point(3, Vector2(1, 1))\n--   \t\t\t\tastar.add_point(4, Vector2(2, 0))\n--   \n--   \t\t\t\tastar.connect_points(1, 2, true)\n--   \t\t\t\tastar.connect_points(1, 3, true)\n--   \n--   \t\t\t\tvar neighbors = astar.get_point_connections(1) # Returns @2, 3@\n--   \t\t\t\t\n--   @\nbindAStar2D_get_point_connections :: MethodBind\nbindAStar2D_get_point_connections\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_connections\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array with the IDs of the points that form the connection with the given point.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar astar = AStar2D.new()\n--   \t\t\t\tastar.add_point(1, Vector2(0, 0))\n--   \t\t\t\tastar.add_point(2, Vector2(0, 1))\n--   \t\t\t\tastar.add_point(3, Vector2(1, 1))\n--   \t\t\t\tastar.add_point(4, Vector2(2, 0))\n--   \n--   \t\t\t\tastar.connect_points(1, 2, true)\n--   \t\t\t\tastar.connect_points(1, 3, true)\n--   \n--   \t\t\t\tvar neighbors = astar.get_point_connections(1) # Returns @2, 3@\n--   \t\t\t\t\n--   @\nget_point_connections ::\n                        (AStar2D :< cls, Object :< cls) => cls -> Int -> IO PoolIntArray\nget_point_connections cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_get_point_connections\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"get_point_connections\" '[Int]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.AStar2D.get_point_connections\n\n{-# NOINLINE bindAStar2D_get_point_count #-}\n\n-- | Returns the number of points currently in the points pool.\nbindAStar2D_get_point_count :: MethodBind\nbindAStar2D_get_point_count\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of points currently in the points pool.\nget_point_count :: (AStar2D :< cls, Object :< cls) => cls -> IO Int\nget_point_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_get_point_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"get_point_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.AStar2D.get_point_count\n\n{-# NOINLINE bindAStar2D_get_point_path #-}\n\n-- | Returns an array with the points that are in the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path.\nbindAStar2D_get_point_path :: MethodBind\nbindAStar2D_get_point_path\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array with the points that are in the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path.\nget_point_path ::\n                 (AStar2D :< cls, Object :< cls) =>\n                 cls -> Int -> Int -> IO PoolVector2Array\nget_point_path cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_get_point_path (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"get_point_path\" '[Int, Int]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.AStar2D.get_point_path\n\n{-# NOINLINE bindAStar2D_get_point_position #-}\n\n-- | Returns the position of the point associated with the given @id@.\nbindAStar2D_get_point_position :: MethodBind\nbindAStar2D_get_point_position\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position of the point associated with the given @id@.\nget_point_position ::\n                     (AStar2D :< cls, Object :< cls) => cls -> Int -> IO Vector2\nget_point_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_get_point_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"get_point_position\" '[Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.AStar2D.get_point_position\n\n{-# NOINLINE bindAStar2D_get_point_weight_scale #-}\n\n-- | Returns the weight scale of the point associated with the given @id@.\nbindAStar2D_get_point_weight_scale :: MethodBind\nbindAStar2D_get_point_weight_scale\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_weight_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the weight scale of the point associated with the given @id@.\nget_point_weight_scale ::\n                         (AStar2D :< cls, Object :< cls) => cls -> Int -> IO Float\nget_point_weight_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_get_point_weight_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"get_point_weight_scale\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AStar2D.get_point_weight_scale\n\n{-# NOINLINE bindAStar2D_get_points #-}\n\n-- | Returns an array of all points.\nbindAStar2D_get_points :: MethodBind\nbindAStar2D_get_points\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of all points.\nget_points :: (AStar2D :< cls, Object :< cls) => cls -> IO Array\nget_points cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_get_points (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"get_points\" '[] (IO Array) where\n        nodeMethod = Godot.Core.AStar2D.get_points\n\n{-# NOINLINE bindAStar2D_has_point #-}\n\n-- | Returns whether a point associated with the given @id@ exists.\nbindAStar2D_has_point :: MethodBind\nbindAStar2D_has_point\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"has_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether a point associated with the given @id@ exists.\nhas_point ::\n            (AStar2D :< cls, Object :< cls) => cls -> Int -> IO Bool\nhas_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_has_point (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"has_point\" '[Int] (IO Bool) where\n        nodeMethod = Godot.Core.AStar2D.has_point\n\n{-# NOINLINE bindAStar2D_is_point_disabled #-}\n\n-- | Returns whether a point is disabled or not for pathfinding. By default, all points are enabled.\nbindAStar2D_is_point_disabled :: MethodBind\nbindAStar2D_is_point_disabled\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_point_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether a point is disabled or not for pathfinding. By default, all points are enabled.\nis_point_disabled ::\n                    (AStar2D :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_point_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_is_point_disabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"is_point_disabled\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AStar2D.is_point_disabled\n\n{-# NOINLINE bindAStar2D_remove_point #-}\n\n-- | Removes the point associated with the given @id@ from the points pool.\nbindAStar2D_remove_point :: MethodBind\nbindAStar2D_remove_point\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"remove_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the point associated with the given @id@ from the points pool.\nremove_point ::\n               (AStar2D :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_remove_point (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"remove_point\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.AStar2D.remove_point\n\n{-# NOINLINE bindAStar2D_reserve_space #-}\n\n-- | Reserves space internally for @num_nodes@ points, useful if you're adding a known large number of points at once, for a grid for instance. New capacity must be greater or equals to old capacity.\nbindAStar2D_reserve_space :: MethodBind\nbindAStar2D_reserve_space\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"reserve_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Reserves space internally for @num_nodes@ points, useful if you're adding a known large number of points at once, for a grid for instance. New capacity must be greater or equals to old capacity.\nreserve_space ::\n                (AStar2D :< cls, Object :< cls) => cls -> Int -> IO ()\nreserve_space cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_reserve_space (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"reserve_space\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.AStar2D.reserve_space\n\n{-# NOINLINE bindAStar2D_set_point_disabled #-}\n\n-- | Disables or enables the specified point for pathfinding. Useful for making a temporary obstacle.\nbindAStar2D_set_point_disabled :: MethodBind\nbindAStar2D_set_point_disabled\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Disables or enables the specified point for pathfinding. Useful for making a temporary obstacle.\nset_point_disabled ::\n                     (AStar2D :< cls, Object :< cls) =>\n                     cls -> Int -> Maybe Bool -> IO ()\nset_point_disabled cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool True) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_set_point_disabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"set_point_disabled\" '[Int, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AStar2D.set_point_disabled\n\n{-# NOINLINE bindAStar2D_set_point_position #-}\n\n-- | Sets the @position@ for the point with the given @id@.\nbindAStar2D_set_point_position :: MethodBind\nbindAStar2D_set_point_position\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @position@ for the point with the given @id@.\nset_point_position ::\n                     (AStar2D :< cls, Object :< cls) => cls -> Int -> Vector2 -> IO ()\nset_point_position cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_set_point_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"set_point_position\" '[Int, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AStar2D.set_point_position\n\n{-# NOINLINE bindAStar2D_set_point_weight_scale #-}\n\n-- | Sets the @weight_scale@ for the point with the given @id@.\nbindAStar2D_set_point_weight_scale :: MethodBind\nbindAStar2D_set_point_weight_scale\n  = unsafePerformIO $\n      withCString \"AStar2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_weight_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @weight_scale@ for the point with the given @id@.\nset_point_weight_scale ::\n                         (AStar2D :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\nset_point_weight_scale cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAStar2D_set_point_weight_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AStar2D \"set_point_weight_scale\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AStar2D.set_point_weight_scale"
  },
  {
    "path": "src/Godot/Core/AcceptDialog.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AcceptDialog\n       (Godot.Core.AcceptDialog.sig_confirmed,\n        Godot.Core.AcceptDialog.sig_custom_action,\n        Godot.Core.AcceptDialog._builtin_text_entered,\n        Godot.Core.AcceptDialog._custom_action,\n        Godot.Core.AcceptDialog._ok, Godot.Core.AcceptDialog.add_button,\n        Godot.Core.AcceptDialog.add_cancel,\n        Godot.Core.AcceptDialog.get_hide_on_ok,\n        Godot.Core.AcceptDialog.get_label, Godot.Core.AcceptDialog.get_ok,\n        Godot.Core.AcceptDialog.get_text,\n        Godot.Core.AcceptDialog.has_autowrap,\n        Godot.Core.AcceptDialog.register_text_enter,\n        Godot.Core.AcceptDialog.set_autowrap,\n        Godot.Core.AcceptDialog.set_hide_on_ok,\n        Godot.Core.AcceptDialog.set_text)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.WindowDialog()\n\n-- | Emitted when the dialog is accepted, i.e. the OK button is pressed.\nsig_confirmed :: Godot.Internal.Dispatch.Signal AcceptDialog\nsig_confirmed = Godot.Internal.Dispatch.Signal \"confirmed\"\n\ninstance NodeSignal AcceptDialog \"confirmed\" '[]\n\n-- | Emitted when a custom button is pressed. See @method add_button@.\nsig_custom_action :: Godot.Internal.Dispatch.Signal AcceptDialog\nsig_custom_action = Godot.Internal.Dispatch.Signal \"custom_action\"\n\ninstance NodeSignal AcceptDialog \"custom_action\" '[GodotString]\n\ninstance NodeProperty AcceptDialog \"dialog_autowrap\" Bool 'False\n         where\n        nodeProperty\n          = (has_autowrap, wrapDroppingSetter set_autowrap, Nothing)\n\ninstance NodeProperty AcceptDialog \"dialog_hide_on_ok\" Bool 'False\n         where\n        nodeProperty\n          = (get_hide_on_ok, wrapDroppingSetter set_hide_on_ok, Nothing)\n\ninstance NodeProperty AcceptDialog \"dialog_text\" GodotString 'False\n         where\n        nodeProperty = (get_text, wrapDroppingSetter set_text, Nothing)\n\n{-# NOINLINE bindAcceptDialog__builtin_text_entered #-}\n\nbindAcceptDialog__builtin_text_entered :: MethodBind\nbindAcceptDialog__builtin_text_entered\n  = unsafePerformIO $\n      withCString \"AcceptDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_builtin_text_entered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_builtin_text_entered ::\n                        (AcceptDialog :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_builtin_text_entered cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAcceptDialog__builtin_text_entered\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AcceptDialog \"_builtin_text_entered\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AcceptDialog._builtin_text_entered\n\n{-# NOINLINE bindAcceptDialog__custom_action #-}\n\nbindAcceptDialog__custom_action :: MethodBind\nbindAcceptDialog__custom_action\n  = unsafePerformIO $\n      withCString \"AcceptDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_custom_action\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_custom_action ::\n                 (AcceptDialog :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_custom_action cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAcceptDialog__custom_action (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AcceptDialog \"_custom_action\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AcceptDialog._custom_action\n\n{-# NOINLINE bindAcceptDialog__ok #-}\n\nbindAcceptDialog__ok :: MethodBind\nbindAcceptDialog__ok\n  = unsafePerformIO $\n      withCString \"AcceptDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_ok\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_ok :: (AcceptDialog :< cls, Object :< cls) => cls -> IO ()\n_ok cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAcceptDialog__ok (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AcceptDialog \"_ok\" '[] (IO ()) where\n        nodeMethod = Godot.Core.AcceptDialog._ok\n\n{-# NOINLINE bindAcceptDialog_add_button #-}\n\n-- | Adds a button with label @text@ and a custom @action@ to the dialog and returns the created button. @action@ will be passed to the @signal custom_action@ signal when pressed.\n--   \t\t\t\tIf @true@, @right@ will place the button to the right of any sibling buttons.\nbindAcceptDialog_add_button :: MethodBind\nbindAcceptDialog_add_button\n  = unsafePerformIO $\n      withCString \"AcceptDialog\" $\n        \\ clsNamePtr ->\n          withCString \"add_button\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a button with label @text@ and a custom @action@ to the dialog and returns the created button. @action@ will be passed to the @signal custom_action@ signal when pressed.\n--   \t\t\t\tIf @true@, @right@ will place the button to the right of any sibling buttons.\nadd_button ::\n             (AcceptDialog :< cls, Object :< cls) =>\n             cls -> GodotString -> Maybe Bool -> Maybe GodotString -> IO Button\nadd_button cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2,\n       defaultedVariant VariantString \"\" arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAcceptDialog_add_button (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AcceptDialog \"add_button\"\n           '[GodotString, Maybe Bool, Maybe GodotString]\n           (IO Button)\n         where\n        nodeMethod = Godot.Core.AcceptDialog.add_button\n\n{-# NOINLINE bindAcceptDialog_add_cancel #-}\n\n-- | Adds a button with label @name@ and a cancel action to the dialog and returns the created button.\nbindAcceptDialog_add_cancel :: MethodBind\nbindAcceptDialog_add_cancel\n  = unsafePerformIO $\n      withCString \"AcceptDialog\" $\n        \\ clsNamePtr ->\n          withCString \"add_cancel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a button with label @name@ and a cancel action to the dialog and returns the created button.\nadd_cancel ::\n             (AcceptDialog :< cls, Object :< cls) =>\n             cls -> GodotString -> IO Button\nadd_cancel cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAcceptDialog_add_cancel (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AcceptDialog \"add_cancel\" '[GodotString]\n           (IO Button)\n         where\n        nodeMethod = Godot.Core.AcceptDialog.add_cancel\n\n{-# NOINLINE bindAcceptDialog_get_hide_on_ok #-}\n\n-- | If @true@, the dialog is hidden when the OK button is pressed. You can set it to @false@ if you want to do e.g. input validation when receiving the @signal confirmed@ signal, and handle hiding the dialog in your own logic.\n--   \t\t\t__Note:__ Some nodes derived from this class can have a different default value, and potentially their own built-in logic overriding this setting. For example @FileDialog@ defaults to @false@, and has its own input validation code that is called when you press OK, which eventually hides the dialog if the input is valid. As such, this property can't be used in @FileDialog@ to disable hiding the dialog when pressing OK.\nbindAcceptDialog_get_hide_on_ok :: MethodBind\nbindAcceptDialog_get_hide_on_ok\n  = unsafePerformIO $\n      withCString \"AcceptDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_hide_on_ok\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the dialog is hidden when the OK button is pressed. You can set it to @false@ if you want to do e.g. input validation when receiving the @signal confirmed@ signal, and handle hiding the dialog in your own logic.\n--   \t\t\t__Note:__ Some nodes derived from this class can have a different default value, and potentially their own built-in logic overriding this setting. For example @FileDialog@ defaults to @false@, and has its own input validation code that is called when you press OK, which eventually hides the dialog if the input is valid. As such, this property can't be used in @FileDialog@ to disable hiding the dialog when pressing OK.\nget_hide_on_ok ::\n                 (AcceptDialog :< cls, Object :< cls) => cls -> IO Bool\nget_hide_on_ok cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAcceptDialog_get_hide_on_ok (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AcceptDialog \"get_hide_on_ok\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AcceptDialog.get_hide_on_ok\n\n{-# NOINLINE bindAcceptDialog_get_label #-}\n\n-- | Returns the label used for built-in text.\nbindAcceptDialog_get_label :: MethodBind\nbindAcceptDialog_get_label\n  = unsafePerformIO $\n      withCString \"AcceptDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_label\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the label used for built-in text.\nget_label ::\n            (AcceptDialog :< cls, Object :< cls) => cls -> IO Label\nget_label cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAcceptDialog_get_label (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AcceptDialog \"get_label\" '[] (IO Label) where\n        nodeMethod = Godot.Core.AcceptDialog.get_label\n\n{-# NOINLINE bindAcceptDialog_get_ok #-}\n\n-- | Returns the OK @Button@ instance.\nbindAcceptDialog_get_ok :: MethodBind\nbindAcceptDialog_get_ok\n  = unsafePerformIO $\n      withCString \"AcceptDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_ok\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the OK @Button@ instance.\nget_ok :: (AcceptDialog :< cls, Object :< cls) => cls -> IO Button\nget_ok cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAcceptDialog_get_ok (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AcceptDialog \"get_ok\" '[] (IO Button) where\n        nodeMethod = Godot.Core.AcceptDialog.get_ok\n\n{-# NOINLINE bindAcceptDialog_get_text #-}\n\n-- | The text displayed by the dialog.\nbindAcceptDialog_get_text :: MethodBind\nbindAcceptDialog_get_text\n  = unsafePerformIO $\n      withCString \"AcceptDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The text displayed by the dialog.\nget_text ::\n           (AcceptDialog :< cls, Object :< cls) => cls -> IO GodotString\nget_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAcceptDialog_get_text (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AcceptDialog \"get_text\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AcceptDialog.get_text\n\n{-# NOINLINE bindAcceptDialog_has_autowrap #-}\n\n-- | Sets autowrapping for the text in the dialog.\nbindAcceptDialog_has_autowrap :: MethodBind\nbindAcceptDialog_has_autowrap\n  = unsafePerformIO $\n      withCString \"AcceptDialog\" $\n        \\ clsNamePtr ->\n          withCString \"has_autowrap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets autowrapping for the text in the dialog.\nhas_autowrap ::\n               (AcceptDialog :< cls, Object :< cls) => cls -> IO Bool\nhas_autowrap cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAcceptDialog_has_autowrap (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AcceptDialog \"has_autowrap\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.AcceptDialog.has_autowrap\n\n{-# NOINLINE bindAcceptDialog_register_text_enter #-}\n\n-- | Registers a @LineEdit@ in the dialog. When the enter key is pressed, the dialog will be accepted.\nbindAcceptDialog_register_text_enter :: MethodBind\nbindAcceptDialog_register_text_enter\n  = unsafePerformIO $\n      withCString \"AcceptDialog\" $\n        \\ clsNamePtr ->\n          withCString \"register_text_enter\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Registers a @LineEdit@ in the dialog. When the enter key is pressed, the dialog will be accepted.\nregister_text_enter ::\n                      (AcceptDialog :< cls, Object :< cls) => cls -> Node -> IO ()\nregister_text_enter cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAcceptDialog_register_text_enter\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AcceptDialog \"register_text_enter\" '[Node]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AcceptDialog.register_text_enter\n\n{-# NOINLINE bindAcceptDialog_set_autowrap #-}\n\n-- | Sets autowrapping for the text in the dialog.\nbindAcceptDialog_set_autowrap :: MethodBind\nbindAcceptDialog_set_autowrap\n  = unsafePerformIO $\n      withCString \"AcceptDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_autowrap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets autowrapping for the text in the dialog.\nset_autowrap ::\n               (AcceptDialog :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_autowrap cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAcceptDialog_set_autowrap (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AcceptDialog \"set_autowrap\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.AcceptDialog.set_autowrap\n\n{-# NOINLINE bindAcceptDialog_set_hide_on_ok #-}\n\n-- | If @true@, the dialog is hidden when the OK button is pressed. You can set it to @false@ if you want to do e.g. input validation when receiving the @signal confirmed@ signal, and handle hiding the dialog in your own logic.\n--   \t\t\t__Note:__ Some nodes derived from this class can have a different default value, and potentially their own built-in logic overriding this setting. For example @FileDialog@ defaults to @false@, and has its own input validation code that is called when you press OK, which eventually hides the dialog if the input is valid. As such, this property can't be used in @FileDialog@ to disable hiding the dialog when pressing OK.\nbindAcceptDialog_set_hide_on_ok :: MethodBind\nbindAcceptDialog_set_hide_on_ok\n  = unsafePerformIO $\n      withCString \"AcceptDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_hide_on_ok\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the dialog is hidden when the OK button is pressed. You can set it to @false@ if you want to do e.g. input validation when receiving the @signal confirmed@ signal, and handle hiding the dialog in your own logic.\n--   \t\t\t__Note:__ Some nodes derived from this class can have a different default value, and potentially their own built-in logic overriding this setting. For example @FileDialog@ defaults to @false@, and has its own input validation code that is called when you press OK, which eventually hides the dialog if the input is valid. As such, this property can't be used in @FileDialog@ to disable hiding the dialog when pressing OK.\nset_hide_on_ok ::\n                 (AcceptDialog :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_hide_on_ok cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAcceptDialog_set_hide_on_ok (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AcceptDialog \"set_hide_on_ok\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.AcceptDialog.set_hide_on_ok\n\n{-# NOINLINE bindAcceptDialog_set_text #-}\n\n-- | The text displayed by the dialog.\nbindAcceptDialog_set_text :: MethodBind\nbindAcceptDialog_set_text\n  = unsafePerformIO $\n      withCString \"AcceptDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The text displayed by the dialog.\nset_text ::\n           (AcceptDialog :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_text cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAcceptDialog_set_text (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AcceptDialog \"set_text\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.AcceptDialog.set_text"
  },
  {
    "path": "src/Godot/Core/AnimatedSprite.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimatedSprite\n       (Godot.Core.AnimatedSprite.sig_animation_finished,\n        Godot.Core.AnimatedSprite.sig_frame_changed,\n        Godot.Core.AnimatedSprite._is_playing,\n        Godot.Core.AnimatedSprite._res_changed,\n        Godot.Core.AnimatedSprite._set_playing,\n        Godot.Core.AnimatedSprite.get_animation,\n        Godot.Core.AnimatedSprite.get_frame,\n        Godot.Core.AnimatedSprite.get_offset,\n        Godot.Core.AnimatedSprite.get_speed_scale,\n        Godot.Core.AnimatedSprite.get_sprite_frames,\n        Godot.Core.AnimatedSprite.is_centered,\n        Godot.Core.AnimatedSprite.is_flipped_h,\n        Godot.Core.AnimatedSprite.is_flipped_v,\n        Godot.Core.AnimatedSprite.is_playing,\n        Godot.Core.AnimatedSprite.play,\n        Godot.Core.AnimatedSprite.set_animation,\n        Godot.Core.AnimatedSprite.set_centered,\n        Godot.Core.AnimatedSprite.set_flip_h,\n        Godot.Core.AnimatedSprite.set_flip_v,\n        Godot.Core.AnimatedSprite.set_frame,\n        Godot.Core.AnimatedSprite.set_offset,\n        Godot.Core.AnimatedSprite.set_speed_scale,\n        Godot.Core.AnimatedSprite.set_sprite_frames,\n        Godot.Core.AnimatedSprite.stop)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\n-- | Emitted when the animation is finished (when it plays the last frame). If the animation is looping, this signal is emitted every time the last frame is drawn.\nsig_animation_finished ::\n                       Godot.Internal.Dispatch.Signal AnimatedSprite\nsig_animation_finished\n  = Godot.Internal.Dispatch.Signal \"animation_finished\"\n\ninstance NodeSignal AnimatedSprite \"animation_finished\" '[]\n\n-- | Emitted when @frame@ changed.\nsig_frame_changed :: Godot.Internal.Dispatch.Signal AnimatedSprite\nsig_frame_changed = Godot.Internal.Dispatch.Signal \"frame_changed\"\n\ninstance NodeSignal AnimatedSprite \"frame_changed\" '[]\n\ninstance NodeProperty AnimatedSprite \"animation\" GodotString 'False\n         where\n        nodeProperty\n          = (get_animation, wrapDroppingSetter set_animation, Nothing)\n\ninstance NodeProperty AnimatedSprite \"centered\" Bool 'False where\n        nodeProperty\n          = (is_centered, wrapDroppingSetter set_centered, Nothing)\n\ninstance NodeProperty AnimatedSprite \"flip_h\" Bool 'False where\n        nodeProperty\n          = (is_flipped_h, wrapDroppingSetter set_flip_h, Nothing)\n\ninstance NodeProperty AnimatedSprite \"flip_v\" Bool 'False where\n        nodeProperty\n          = (is_flipped_v, wrapDroppingSetter set_flip_v, Nothing)\n\ninstance NodeProperty AnimatedSprite \"frame\" Int 'False where\n        nodeProperty = (get_frame, wrapDroppingSetter set_frame, Nothing)\n\ninstance NodeProperty AnimatedSprite \"frames\" SpriteFrames 'False\n         where\n        nodeProperty\n          = (get_sprite_frames, wrapDroppingSetter set_sprite_frames,\n             Nothing)\n\ninstance NodeProperty AnimatedSprite \"offset\" Vector2 'False where\n        nodeProperty = (get_offset, wrapDroppingSetter set_offset, Nothing)\n\ninstance NodeProperty AnimatedSprite \"playing\" Bool 'False where\n        nodeProperty\n          = (_is_playing, wrapDroppingSetter _set_playing, Nothing)\n\ninstance NodeProperty AnimatedSprite \"speed_scale\" Float 'False\n         where\n        nodeProperty\n          = (get_speed_scale, wrapDroppingSetter set_speed_scale, Nothing)\n\n{-# NOINLINE bindAnimatedSprite__is_playing #-}\n\n-- | If @true@, the @animation@ is currently playing.\nbindAnimatedSprite__is_playing :: MethodBind\nbindAnimatedSprite__is_playing\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"_is_playing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @animation@ is currently playing.\n_is_playing ::\n              (AnimatedSprite :< cls, Object :< cls) => cls -> IO Bool\n_is_playing cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite__is_playing (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"_is_playing\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimatedSprite._is_playing\n\n{-# NOINLINE bindAnimatedSprite__res_changed #-}\n\nbindAnimatedSprite__res_changed :: MethodBind\nbindAnimatedSprite__res_changed\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"_res_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_res_changed ::\n               (AnimatedSprite :< cls, Object :< cls) => cls -> IO ()\n_res_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite__res_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"_res_changed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.AnimatedSprite._res_changed\n\n{-# NOINLINE bindAnimatedSprite__set_playing #-}\n\n-- | If @true@, the @animation@ is currently playing.\nbindAnimatedSprite__set_playing :: MethodBind\nbindAnimatedSprite__set_playing\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"_set_playing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @animation@ is currently playing.\n_set_playing ::\n               (AnimatedSprite :< cls, Object :< cls) => cls -> Bool -> IO ()\n_set_playing cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite__set_playing (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"_set_playing\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedSprite._set_playing\n\n{-# NOINLINE bindAnimatedSprite_get_animation #-}\n\n-- | The current animation from the @frames@ resource. If this value changes, the @frame@ counter is reset.\nbindAnimatedSprite_get_animation :: MethodBind\nbindAnimatedSprite_get_animation\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"get_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current animation from the @frames@ resource. If this value changes, the @frame@ counter is reset.\nget_animation ::\n                (AnimatedSprite :< cls, Object :< cls) => cls -> IO GodotString\nget_animation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_get_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"get_animation\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimatedSprite.get_animation\n\n{-# NOINLINE bindAnimatedSprite_get_frame #-}\n\n-- | The displayed animation frame's index.\nbindAnimatedSprite_get_frame :: MethodBind\nbindAnimatedSprite_get_frame\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"get_frame\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The displayed animation frame's index.\nget_frame ::\n            (AnimatedSprite :< cls, Object :< cls) => cls -> IO Int\nget_frame cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_get_frame (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"get_frame\" '[] (IO Int) where\n        nodeMethod = Godot.Core.AnimatedSprite.get_frame\n\n{-# NOINLINE bindAnimatedSprite_get_offset #-}\n\n-- | The texture's drawing offset.\nbindAnimatedSprite_get_offset :: MethodBind\nbindAnimatedSprite_get_offset\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"get_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The texture's drawing offset.\nget_offset ::\n             (AnimatedSprite :< cls, Object :< cls) => cls -> IO Vector2\nget_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_get_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"get_offset\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.AnimatedSprite.get_offset\n\n{-# NOINLINE bindAnimatedSprite_get_speed_scale #-}\n\n-- | The animation speed is multiplied by this value.\nbindAnimatedSprite_get_speed_scale :: MethodBind\nbindAnimatedSprite_get_speed_scale\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"get_speed_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The animation speed is multiplied by this value.\nget_speed_scale ::\n                  (AnimatedSprite :< cls, Object :< cls) => cls -> IO Float\nget_speed_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_get_speed_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"get_speed_scale\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AnimatedSprite.get_speed_scale\n\n{-# NOINLINE bindAnimatedSprite_get_sprite_frames #-}\n\n-- | The @SpriteFrames@ resource containing the animation(s).\nbindAnimatedSprite_get_sprite_frames :: MethodBind\nbindAnimatedSprite_get_sprite_frames\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"get_sprite_frames\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @SpriteFrames@ resource containing the animation(s).\nget_sprite_frames ::\n                    (AnimatedSprite :< cls, Object :< cls) => cls -> IO SpriteFrames\nget_sprite_frames cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_get_sprite_frames\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"get_sprite_frames\" '[]\n           (IO SpriteFrames)\n         where\n        nodeMethod = Godot.Core.AnimatedSprite.get_sprite_frames\n\n{-# NOINLINE bindAnimatedSprite_is_centered #-}\n\n-- | If @true@, texture will be centered.\nbindAnimatedSprite_is_centered :: MethodBind\nbindAnimatedSprite_is_centered\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"is_centered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture will be centered.\nis_centered ::\n              (AnimatedSprite :< cls, Object :< cls) => cls -> IO Bool\nis_centered cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_is_centered (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"is_centered\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimatedSprite.is_centered\n\n{-# NOINLINE bindAnimatedSprite_is_flipped_h #-}\n\n-- | If @true@, texture is flipped horizontally.\nbindAnimatedSprite_is_flipped_h :: MethodBind\nbindAnimatedSprite_is_flipped_h\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"is_flipped_h\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is flipped horizontally.\nis_flipped_h ::\n               (AnimatedSprite :< cls, Object :< cls) => cls -> IO Bool\nis_flipped_h cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_is_flipped_h (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"is_flipped_h\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimatedSprite.is_flipped_h\n\n{-# NOINLINE bindAnimatedSprite_is_flipped_v #-}\n\n-- | If @true@, texture is flipped vertically.\nbindAnimatedSprite_is_flipped_v :: MethodBind\nbindAnimatedSprite_is_flipped_v\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"is_flipped_v\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is flipped vertically.\nis_flipped_v ::\n               (AnimatedSprite :< cls, Object :< cls) => cls -> IO Bool\nis_flipped_v cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_is_flipped_v (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"is_flipped_v\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimatedSprite.is_flipped_v\n\n{-# NOINLINE bindAnimatedSprite_is_playing #-}\n\n-- | Returns @true@ if an animation is currently being played.\nbindAnimatedSprite_is_playing :: MethodBind\nbindAnimatedSprite_is_playing\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"is_playing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if an animation is currently being played.\nis_playing ::\n             (AnimatedSprite :< cls, Object :< cls) => cls -> IO Bool\nis_playing cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_is_playing (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"is_playing\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.AnimatedSprite.is_playing\n\n{-# NOINLINE bindAnimatedSprite_play #-}\n\n-- | Plays the animation named @anim@. If no @anim@ is provided, the current animation is played. If @backwards@ is @true@, the animation will be played in reverse.\nbindAnimatedSprite_play :: MethodBind\nbindAnimatedSprite_play\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"play\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Plays the animation named @anim@. If no @anim@ is provided, the current animation is played. If @backwards@ is @true@, the animation will be played in reverse.\nplay ::\n       (AnimatedSprite :< cls, Object :< cls) =>\n       cls -> Maybe GodotString -> Maybe Bool -> IO ()\nplay cls arg1 arg2\n  = withVariantArray\n      [defaultedVariant VariantString \"\" arg1,\n       maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_play (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"play\"\n           '[Maybe GodotString, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedSprite.play\n\n{-# NOINLINE bindAnimatedSprite_set_animation #-}\n\n-- | The current animation from the @frames@ resource. If this value changes, the @frame@ counter is reset.\nbindAnimatedSprite_set_animation :: MethodBind\nbindAnimatedSprite_set_animation\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current animation from the @frames@ resource. If this value changes, the @frame@ counter is reset.\nset_animation ::\n                (AnimatedSprite :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\nset_animation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_set_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"set_animation\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedSprite.set_animation\n\n{-# NOINLINE bindAnimatedSprite_set_centered #-}\n\n-- | If @true@, texture will be centered.\nbindAnimatedSprite_set_centered :: MethodBind\nbindAnimatedSprite_set_centered\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_centered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture will be centered.\nset_centered ::\n               (AnimatedSprite :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_centered cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_set_centered (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"set_centered\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedSprite.set_centered\n\n{-# NOINLINE bindAnimatedSprite_set_flip_h #-}\n\n-- | If @true@, texture is flipped horizontally.\nbindAnimatedSprite_set_flip_h :: MethodBind\nbindAnimatedSprite_set_flip_h\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_flip_h\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is flipped horizontally.\nset_flip_h ::\n             (AnimatedSprite :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_flip_h cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_set_flip_h (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"set_flip_h\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedSprite.set_flip_h\n\n{-# NOINLINE bindAnimatedSprite_set_flip_v #-}\n\n-- | If @true@, texture is flipped vertically.\nbindAnimatedSprite_set_flip_v :: MethodBind\nbindAnimatedSprite_set_flip_v\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_flip_v\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is flipped vertically.\nset_flip_v ::\n             (AnimatedSprite :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_flip_v cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_set_flip_v (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"set_flip_v\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedSprite.set_flip_v\n\n{-# NOINLINE bindAnimatedSprite_set_frame #-}\n\n-- | The displayed animation frame's index.\nbindAnimatedSprite_set_frame :: MethodBind\nbindAnimatedSprite_set_frame\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_frame\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The displayed animation frame's index.\nset_frame ::\n            (AnimatedSprite :< cls, Object :< cls) => cls -> Int -> IO ()\nset_frame cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_set_frame (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"set_frame\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.AnimatedSprite.set_frame\n\n{-# NOINLINE bindAnimatedSprite_set_offset #-}\n\n-- | The texture's drawing offset.\nbindAnimatedSprite_set_offset :: MethodBind\nbindAnimatedSprite_set_offset\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The texture's drawing offset.\nset_offset ::\n             (AnimatedSprite :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_set_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"set_offset\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedSprite.set_offset\n\n{-# NOINLINE bindAnimatedSprite_set_speed_scale #-}\n\n-- | The animation speed is multiplied by this value.\nbindAnimatedSprite_set_speed_scale :: MethodBind\nbindAnimatedSprite_set_speed_scale\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_speed_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The animation speed is multiplied by this value.\nset_speed_scale ::\n                  (AnimatedSprite :< cls, Object :< cls) => cls -> Float -> IO ()\nset_speed_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_set_speed_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"set_speed_scale\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedSprite.set_speed_scale\n\n{-# NOINLINE bindAnimatedSprite_set_sprite_frames #-}\n\n-- | The @SpriteFrames@ resource containing the animation(s).\nbindAnimatedSprite_set_sprite_frames :: MethodBind\nbindAnimatedSprite_set_sprite_frames\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_sprite_frames\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @SpriteFrames@ resource containing the animation(s).\nset_sprite_frames ::\n                    (AnimatedSprite :< cls, Object :< cls) =>\n                    cls -> SpriteFrames -> IO ()\nset_sprite_frames cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_set_sprite_frames\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"set_sprite_frames\"\n           '[SpriteFrames]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedSprite.set_sprite_frames\n\n{-# NOINLINE bindAnimatedSprite_stop #-}\n\n-- | Stops the current animation (does not reset the frame counter).\nbindAnimatedSprite_stop :: MethodBind\nbindAnimatedSprite_stop\n  = unsafePerformIO $\n      withCString \"AnimatedSprite\" $\n        \\ clsNamePtr ->\n          withCString \"stop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops the current animation (does not reset the frame counter).\nstop :: (AnimatedSprite :< cls, Object :< cls) => cls -> IO ()\nstop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite_stop (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite \"stop\" '[] (IO ()) where\n        nodeMethod = Godot.Core.AnimatedSprite.stop"
  },
  {
    "path": "src/Godot/Core/AnimatedSprite3D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimatedSprite3D\n       (Godot.Core.AnimatedSprite3D.sig_frame_changed,\n        Godot.Core.AnimatedSprite3D._is_playing,\n        Godot.Core.AnimatedSprite3D._res_changed,\n        Godot.Core.AnimatedSprite3D._set_playing,\n        Godot.Core.AnimatedSprite3D.get_animation,\n        Godot.Core.AnimatedSprite3D.get_frame,\n        Godot.Core.AnimatedSprite3D.get_sprite_frames,\n        Godot.Core.AnimatedSprite3D.is_playing,\n        Godot.Core.AnimatedSprite3D.play,\n        Godot.Core.AnimatedSprite3D.set_animation,\n        Godot.Core.AnimatedSprite3D.set_frame,\n        Godot.Core.AnimatedSprite3D.set_sprite_frames,\n        Godot.Core.AnimatedSprite3D.stop)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.SpriteBase3D()\n\n-- | Emitted when @frame@ changed.\nsig_frame_changed ::\n                  Godot.Internal.Dispatch.Signal AnimatedSprite3D\nsig_frame_changed = Godot.Internal.Dispatch.Signal \"frame_changed\"\n\ninstance NodeSignal AnimatedSprite3D \"frame_changed\" '[]\n\ninstance NodeProperty AnimatedSprite3D \"animation\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_animation, wrapDroppingSetter set_animation, Nothing)\n\ninstance NodeProperty AnimatedSprite3D \"frame\" Int 'False where\n        nodeProperty = (get_frame, wrapDroppingSetter set_frame, Nothing)\n\ninstance NodeProperty AnimatedSprite3D \"frames\" SpriteFrames 'False\n         where\n        nodeProperty\n          = (get_sprite_frames, wrapDroppingSetter set_sprite_frames,\n             Nothing)\n\ninstance NodeProperty AnimatedSprite3D \"playing\" Bool 'False where\n        nodeProperty\n          = (_is_playing, wrapDroppingSetter _set_playing, Nothing)\n\n{-# NOINLINE bindAnimatedSprite3D__is_playing #-}\n\n-- | If @true@, the @animation@ is currently playing.\nbindAnimatedSprite3D__is_playing :: MethodBind\nbindAnimatedSprite3D__is_playing\n  = unsafePerformIO $\n      withCString \"AnimatedSprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"_is_playing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @animation@ is currently playing.\n_is_playing ::\n              (AnimatedSprite3D :< cls, Object :< cls) => cls -> IO Bool\n_is_playing cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite3D__is_playing\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite3D \"_is_playing\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimatedSprite3D._is_playing\n\n{-# NOINLINE bindAnimatedSprite3D__res_changed #-}\n\nbindAnimatedSprite3D__res_changed :: MethodBind\nbindAnimatedSprite3D__res_changed\n  = unsafePerformIO $\n      withCString \"AnimatedSprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"_res_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_res_changed ::\n               (AnimatedSprite3D :< cls, Object :< cls) => cls -> IO ()\n_res_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite3D__res_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite3D \"_res_changed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedSprite3D._res_changed\n\n{-# NOINLINE bindAnimatedSprite3D__set_playing #-}\n\n-- | If @true@, the @animation@ is currently playing.\nbindAnimatedSprite3D__set_playing :: MethodBind\nbindAnimatedSprite3D__set_playing\n  = unsafePerformIO $\n      withCString \"AnimatedSprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"_set_playing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @animation@ is currently playing.\n_set_playing ::\n               (AnimatedSprite3D :< cls, Object :< cls) => cls -> Bool -> IO ()\n_set_playing cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite3D__set_playing\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite3D \"_set_playing\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedSprite3D._set_playing\n\n{-# NOINLINE bindAnimatedSprite3D_get_animation #-}\n\n-- | The current animation from the @frames@ resource. If this value changes, the @frame@ counter is reset.\nbindAnimatedSprite3D_get_animation :: MethodBind\nbindAnimatedSprite3D_get_animation\n  = unsafePerformIO $\n      withCString \"AnimatedSprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current animation from the @frames@ resource. If this value changes, the @frame@ counter is reset.\nget_animation ::\n                (AnimatedSprite3D :< cls, Object :< cls) => cls -> IO GodotString\nget_animation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite3D_get_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite3D \"get_animation\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimatedSprite3D.get_animation\n\n{-# NOINLINE bindAnimatedSprite3D_get_frame #-}\n\n-- | The displayed animation frame's index.\nbindAnimatedSprite3D_get_frame :: MethodBind\nbindAnimatedSprite3D_get_frame\n  = unsafePerformIO $\n      withCString \"AnimatedSprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_frame\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The displayed animation frame's index.\nget_frame ::\n            (AnimatedSprite3D :< cls, Object :< cls) => cls -> IO Int\nget_frame cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite3D_get_frame (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite3D \"get_frame\" '[] (IO Int) where\n        nodeMethod = Godot.Core.AnimatedSprite3D.get_frame\n\n{-# NOINLINE bindAnimatedSprite3D_get_sprite_frames #-}\n\n-- | The @SpriteFrames@ resource containing the animation(s).\nbindAnimatedSprite3D_get_sprite_frames :: MethodBind\nbindAnimatedSprite3D_get_sprite_frames\n  = unsafePerformIO $\n      withCString \"AnimatedSprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_sprite_frames\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @SpriteFrames@ resource containing the animation(s).\nget_sprite_frames ::\n                    (AnimatedSprite3D :< cls, Object :< cls) => cls -> IO SpriteFrames\nget_sprite_frames cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite3D_get_sprite_frames\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite3D \"get_sprite_frames\" '[]\n           (IO SpriteFrames)\n         where\n        nodeMethod = Godot.Core.AnimatedSprite3D.get_sprite_frames\n\n{-# NOINLINE bindAnimatedSprite3D_is_playing #-}\n\n-- | Returns @true@ if an animation is currently being played.\nbindAnimatedSprite3D_is_playing :: MethodBind\nbindAnimatedSprite3D_is_playing\n  = unsafePerformIO $\n      withCString \"AnimatedSprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"is_playing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if an animation is currently being played.\nis_playing ::\n             (AnimatedSprite3D :< cls, Object :< cls) => cls -> IO Bool\nis_playing cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite3D_is_playing (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite3D \"is_playing\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimatedSprite3D.is_playing\n\n{-# NOINLINE bindAnimatedSprite3D_play #-}\n\n-- | Plays the animation named @anim@. If no @anim@ is provided, the current animation is played.\nbindAnimatedSprite3D_play :: MethodBind\nbindAnimatedSprite3D_play\n  = unsafePerformIO $\n      withCString \"AnimatedSprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"play\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Plays the animation named @anim@. If no @anim@ is provided, the current animation is played.\nplay ::\n       (AnimatedSprite3D :< cls, Object :< cls) =>\n       cls -> Maybe GodotString -> IO ()\nplay cls arg1\n  = withVariantArray [defaultedVariant VariantString \"\" arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite3D_play (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite3D \"play\" '[Maybe GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedSprite3D.play\n\n{-# NOINLINE bindAnimatedSprite3D_set_animation #-}\n\n-- | The current animation from the @frames@ resource. If this value changes, the @frame@ counter is reset.\nbindAnimatedSprite3D_set_animation :: MethodBind\nbindAnimatedSprite3D_set_animation\n  = unsafePerformIO $\n      withCString \"AnimatedSprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current animation from the @frames@ resource. If this value changes, the @frame@ counter is reset.\nset_animation ::\n                (AnimatedSprite3D :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\nset_animation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite3D_set_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite3D \"set_animation\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedSprite3D.set_animation\n\n{-# NOINLINE bindAnimatedSprite3D_set_frame #-}\n\n-- | The displayed animation frame's index.\nbindAnimatedSprite3D_set_frame :: MethodBind\nbindAnimatedSprite3D_set_frame\n  = unsafePerformIO $\n      withCString \"AnimatedSprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_frame\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The displayed animation frame's index.\nset_frame ::\n            (AnimatedSprite3D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_frame cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite3D_set_frame (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite3D \"set_frame\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedSprite3D.set_frame\n\n{-# NOINLINE bindAnimatedSprite3D_set_sprite_frames #-}\n\n-- | The @SpriteFrames@ resource containing the animation(s).\nbindAnimatedSprite3D_set_sprite_frames :: MethodBind\nbindAnimatedSprite3D_set_sprite_frames\n  = unsafePerformIO $\n      withCString \"AnimatedSprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_sprite_frames\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @SpriteFrames@ resource containing the animation(s).\nset_sprite_frames ::\n                    (AnimatedSprite3D :< cls, Object :< cls) =>\n                    cls -> SpriteFrames -> IO ()\nset_sprite_frames cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite3D_set_sprite_frames\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite3D \"set_sprite_frames\"\n           '[SpriteFrames]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedSprite3D.set_sprite_frames\n\n{-# NOINLINE bindAnimatedSprite3D_stop #-}\n\n-- | Stops the current animation (does not reset the frame counter).\nbindAnimatedSprite3D_stop :: MethodBind\nbindAnimatedSprite3D_stop\n  = unsafePerformIO $\n      withCString \"AnimatedSprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"stop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops the current animation (does not reset the frame counter).\nstop :: (AnimatedSprite3D :< cls, Object :< cls) => cls -> IO ()\nstop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedSprite3D_stop (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedSprite3D \"stop\" '[] (IO ()) where\n        nodeMethod = Godot.Core.AnimatedSprite3D.stop"
  },
  {
    "path": "src/Godot/Core/AnimatedTexture.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimatedTexture\n       (Godot.Core.AnimatedTexture._MAX_FRAMES,\n        Godot.Core.AnimatedTexture._update_proxy,\n        Godot.Core.AnimatedTexture.get_fps,\n        Godot.Core.AnimatedTexture.get_frame_delay,\n        Godot.Core.AnimatedTexture.get_frame_texture,\n        Godot.Core.AnimatedTexture.get_frames,\n        Godot.Core.AnimatedTexture.set_fps,\n        Godot.Core.AnimatedTexture.set_frame_delay,\n        Godot.Core.AnimatedTexture.set_frame_texture,\n        Godot.Core.AnimatedTexture.set_frames)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Texture()\n\n_MAX_FRAMES :: Int\n_MAX_FRAMES = 256\n\ninstance NodeProperty AnimatedTexture \"fps\" Float 'False where\n        nodeProperty = (get_fps, wrapDroppingSetter set_fps, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_0/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_frame_delay,\n             wrapIndexedSetter 0 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_0/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_frame_texture,\n             wrapIndexedSetter 0 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_1/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_frame_delay,\n             wrapIndexedSetter 1 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_1/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_frame_texture,\n             wrapIndexedSetter 1 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_10/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_frame_delay,\n             wrapIndexedSetter 10 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_10/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_frame_texture,\n             wrapIndexedSetter 10 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_100/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 100 get_frame_delay,\n             wrapIndexedSetter 100 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_100/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 100 get_frame_texture,\n             wrapIndexedSetter 100 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_101/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 101 get_frame_delay,\n             wrapIndexedSetter 101 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_101/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 101 get_frame_texture,\n             wrapIndexedSetter 101 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_102/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 102 get_frame_delay,\n             wrapIndexedSetter 102 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_102/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 102 get_frame_texture,\n             wrapIndexedSetter 102 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_103/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 103 get_frame_delay,\n             wrapIndexedSetter 103 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_103/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 103 get_frame_texture,\n             wrapIndexedSetter 103 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_104/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 104 get_frame_delay,\n             wrapIndexedSetter 104 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_104/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 104 get_frame_texture,\n             wrapIndexedSetter 104 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_105/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 105 get_frame_delay,\n             wrapIndexedSetter 105 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_105/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 105 get_frame_texture,\n             wrapIndexedSetter 105 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_106/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 106 get_frame_delay,\n             wrapIndexedSetter 106 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_106/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 106 get_frame_texture,\n             wrapIndexedSetter 106 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_107/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 107 get_frame_delay,\n             wrapIndexedSetter 107 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_107/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 107 get_frame_texture,\n             wrapIndexedSetter 107 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_108/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 108 get_frame_delay,\n             wrapIndexedSetter 108 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_108/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 108 get_frame_texture,\n             wrapIndexedSetter 108 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_109/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 109 get_frame_delay,\n             wrapIndexedSetter 109 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_109/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 109 get_frame_texture,\n             wrapIndexedSetter 109 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_11/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_frame_delay,\n             wrapIndexedSetter 11 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_11/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_frame_texture,\n             wrapIndexedSetter 11 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_110/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 110 get_frame_delay,\n             wrapIndexedSetter 110 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_110/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 110 get_frame_texture,\n             wrapIndexedSetter 110 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_111/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 111 get_frame_delay,\n             wrapIndexedSetter 111 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_111/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 111 get_frame_texture,\n             wrapIndexedSetter 111 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_112/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 112 get_frame_delay,\n             wrapIndexedSetter 112 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_112/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 112 get_frame_texture,\n             wrapIndexedSetter 112 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_113/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 113 get_frame_delay,\n             wrapIndexedSetter 113 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_113/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 113 get_frame_texture,\n             wrapIndexedSetter 113 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_114/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 114 get_frame_delay,\n             wrapIndexedSetter 114 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_114/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 114 get_frame_texture,\n             wrapIndexedSetter 114 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_115/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 115 get_frame_delay,\n             wrapIndexedSetter 115 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_115/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 115 get_frame_texture,\n             wrapIndexedSetter 115 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_116/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 116 get_frame_delay,\n             wrapIndexedSetter 116 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_116/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 116 get_frame_texture,\n             wrapIndexedSetter 116 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_117/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 117 get_frame_delay,\n             wrapIndexedSetter 117 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_117/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 117 get_frame_texture,\n             wrapIndexedSetter 117 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_118/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 118 get_frame_delay,\n             wrapIndexedSetter 118 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_118/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 118 get_frame_texture,\n             wrapIndexedSetter 118 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_119/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 119 get_frame_delay,\n             wrapIndexedSetter 119 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_119/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 119 get_frame_texture,\n             wrapIndexedSetter 119 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_12/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 12 get_frame_delay,\n             wrapIndexedSetter 12 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_12/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 12 get_frame_texture,\n             wrapIndexedSetter 12 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_120/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 120 get_frame_delay,\n             wrapIndexedSetter 120 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_120/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 120 get_frame_texture,\n             wrapIndexedSetter 120 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_121/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 121 get_frame_delay,\n             wrapIndexedSetter 121 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_121/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 121 get_frame_texture,\n             wrapIndexedSetter 121 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_122/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 122 get_frame_delay,\n             wrapIndexedSetter 122 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_122/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 122 get_frame_texture,\n             wrapIndexedSetter 122 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_123/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 123 get_frame_delay,\n             wrapIndexedSetter 123 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_123/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 123 get_frame_texture,\n             wrapIndexedSetter 123 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_124/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 124 get_frame_delay,\n             wrapIndexedSetter 124 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_124/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 124 get_frame_texture,\n             wrapIndexedSetter 124 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_125/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 125 get_frame_delay,\n             wrapIndexedSetter 125 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_125/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 125 get_frame_texture,\n             wrapIndexedSetter 125 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_126/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 126 get_frame_delay,\n             wrapIndexedSetter 126 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_126/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 126 get_frame_texture,\n             wrapIndexedSetter 126 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_127/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 127 get_frame_delay,\n             wrapIndexedSetter 127 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_127/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 127 get_frame_texture,\n             wrapIndexedSetter 127 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_128/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 128 get_frame_delay,\n             wrapIndexedSetter 128 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_128/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 128 get_frame_texture,\n             wrapIndexedSetter 128 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_129/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 129 get_frame_delay,\n             wrapIndexedSetter 129 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_129/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 129 get_frame_texture,\n             wrapIndexedSetter 129 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_13/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 13 get_frame_delay,\n             wrapIndexedSetter 13 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_13/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 13 get_frame_texture,\n             wrapIndexedSetter 13 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_130/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 130 get_frame_delay,\n             wrapIndexedSetter 130 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_130/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 130 get_frame_texture,\n             wrapIndexedSetter 130 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_131/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 131 get_frame_delay,\n             wrapIndexedSetter 131 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_131/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 131 get_frame_texture,\n             wrapIndexedSetter 131 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_132/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 132 get_frame_delay,\n             wrapIndexedSetter 132 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_132/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 132 get_frame_texture,\n             wrapIndexedSetter 132 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_133/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 133 get_frame_delay,\n             wrapIndexedSetter 133 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_133/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 133 get_frame_texture,\n             wrapIndexedSetter 133 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_134/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 134 get_frame_delay,\n             wrapIndexedSetter 134 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_134/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 134 get_frame_texture,\n             wrapIndexedSetter 134 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_135/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 135 get_frame_delay,\n             wrapIndexedSetter 135 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_135/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 135 get_frame_texture,\n             wrapIndexedSetter 135 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_136/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 136 get_frame_delay,\n             wrapIndexedSetter 136 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_136/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 136 get_frame_texture,\n             wrapIndexedSetter 136 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_137/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 137 get_frame_delay,\n             wrapIndexedSetter 137 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_137/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 137 get_frame_texture,\n             wrapIndexedSetter 137 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_138/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 138 get_frame_delay,\n             wrapIndexedSetter 138 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_138/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 138 get_frame_texture,\n             wrapIndexedSetter 138 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_139/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 139 get_frame_delay,\n             wrapIndexedSetter 139 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_139/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 139 get_frame_texture,\n             wrapIndexedSetter 139 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_14/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 14 get_frame_delay,\n             wrapIndexedSetter 14 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_14/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 14 get_frame_texture,\n             wrapIndexedSetter 14 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_140/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 140 get_frame_delay,\n             wrapIndexedSetter 140 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_140/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 140 get_frame_texture,\n             wrapIndexedSetter 140 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_141/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 141 get_frame_delay,\n             wrapIndexedSetter 141 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_141/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 141 get_frame_texture,\n             wrapIndexedSetter 141 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_142/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 142 get_frame_delay,\n             wrapIndexedSetter 142 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_142/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 142 get_frame_texture,\n             wrapIndexedSetter 142 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_143/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 143 get_frame_delay,\n             wrapIndexedSetter 143 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_143/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 143 get_frame_texture,\n             wrapIndexedSetter 143 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_144/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 144 get_frame_delay,\n             wrapIndexedSetter 144 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_144/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 144 get_frame_texture,\n             wrapIndexedSetter 144 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_145/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 145 get_frame_delay,\n             wrapIndexedSetter 145 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_145/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 145 get_frame_texture,\n             wrapIndexedSetter 145 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_146/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 146 get_frame_delay,\n             wrapIndexedSetter 146 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_146/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 146 get_frame_texture,\n             wrapIndexedSetter 146 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_147/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 147 get_frame_delay,\n             wrapIndexedSetter 147 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_147/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 147 get_frame_texture,\n             wrapIndexedSetter 147 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_148/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 148 get_frame_delay,\n             wrapIndexedSetter 148 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_148/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 148 get_frame_texture,\n             wrapIndexedSetter 148 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_149/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 149 get_frame_delay,\n             wrapIndexedSetter 149 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_149/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 149 get_frame_texture,\n             wrapIndexedSetter 149 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_15/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 15 get_frame_delay,\n             wrapIndexedSetter 15 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_15/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 15 get_frame_texture,\n             wrapIndexedSetter 15 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_150/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 150 get_frame_delay,\n             wrapIndexedSetter 150 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_150/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 150 get_frame_texture,\n             wrapIndexedSetter 150 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_151/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 151 get_frame_delay,\n             wrapIndexedSetter 151 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_151/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 151 get_frame_texture,\n             wrapIndexedSetter 151 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_152/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 152 get_frame_delay,\n             wrapIndexedSetter 152 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_152/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 152 get_frame_texture,\n             wrapIndexedSetter 152 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_153/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 153 get_frame_delay,\n             wrapIndexedSetter 153 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_153/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 153 get_frame_texture,\n             wrapIndexedSetter 153 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_154/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 154 get_frame_delay,\n             wrapIndexedSetter 154 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_154/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 154 get_frame_texture,\n             wrapIndexedSetter 154 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_155/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 155 get_frame_delay,\n             wrapIndexedSetter 155 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_155/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 155 get_frame_texture,\n             wrapIndexedSetter 155 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_156/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 156 get_frame_delay,\n             wrapIndexedSetter 156 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_156/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 156 get_frame_texture,\n             wrapIndexedSetter 156 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_157/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 157 get_frame_delay,\n             wrapIndexedSetter 157 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_157/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 157 get_frame_texture,\n             wrapIndexedSetter 157 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_158/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 158 get_frame_delay,\n             wrapIndexedSetter 158 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_158/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 158 get_frame_texture,\n             wrapIndexedSetter 158 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_159/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 159 get_frame_delay,\n             wrapIndexedSetter 159 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_159/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 159 get_frame_texture,\n             wrapIndexedSetter 159 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_16/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 16 get_frame_delay,\n             wrapIndexedSetter 16 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_16/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 16 get_frame_texture,\n             wrapIndexedSetter 16 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_160/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 160 get_frame_delay,\n             wrapIndexedSetter 160 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_160/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 160 get_frame_texture,\n             wrapIndexedSetter 160 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_161/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 161 get_frame_delay,\n             wrapIndexedSetter 161 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_161/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 161 get_frame_texture,\n             wrapIndexedSetter 161 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_162/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 162 get_frame_delay,\n             wrapIndexedSetter 162 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_162/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 162 get_frame_texture,\n             wrapIndexedSetter 162 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_163/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 163 get_frame_delay,\n             wrapIndexedSetter 163 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_163/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 163 get_frame_texture,\n             wrapIndexedSetter 163 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_164/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 164 get_frame_delay,\n             wrapIndexedSetter 164 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_164/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 164 get_frame_texture,\n             wrapIndexedSetter 164 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_165/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 165 get_frame_delay,\n             wrapIndexedSetter 165 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_165/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 165 get_frame_texture,\n             wrapIndexedSetter 165 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_166/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 166 get_frame_delay,\n             wrapIndexedSetter 166 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_166/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 166 get_frame_texture,\n             wrapIndexedSetter 166 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_167/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 167 get_frame_delay,\n             wrapIndexedSetter 167 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_167/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 167 get_frame_texture,\n             wrapIndexedSetter 167 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_168/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 168 get_frame_delay,\n             wrapIndexedSetter 168 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_168/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 168 get_frame_texture,\n             wrapIndexedSetter 168 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_169/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 169 get_frame_delay,\n             wrapIndexedSetter 169 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_169/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 169 get_frame_texture,\n             wrapIndexedSetter 169 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_17/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 17 get_frame_delay,\n             wrapIndexedSetter 17 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_17/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 17 get_frame_texture,\n             wrapIndexedSetter 17 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_170/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 170 get_frame_delay,\n             wrapIndexedSetter 170 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_170/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 170 get_frame_texture,\n             wrapIndexedSetter 170 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_171/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 171 get_frame_delay,\n             wrapIndexedSetter 171 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_171/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 171 get_frame_texture,\n             wrapIndexedSetter 171 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_172/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 172 get_frame_delay,\n             wrapIndexedSetter 172 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_172/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 172 get_frame_texture,\n             wrapIndexedSetter 172 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_173/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 173 get_frame_delay,\n             wrapIndexedSetter 173 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_173/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 173 get_frame_texture,\n             wrapIndexedSetter 173 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_174/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 174 get_frame_delay,\n             wrapIndexedSetter 174 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_174/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 174 get_frame_texture,\n             wrapIndexedSetter 174 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_175/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 175 get_frame_delay,\n             wrapIndexedSetter 175 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_175/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 175 get_frame_texture,\n             wrapIndexedSetter 175 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_176/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 176 get_frame_delay,\n             wrapIndexedSetter 176 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_176/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 176 get_frame_texture,\n             wrapIndexedSetter 176 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_177/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 177 get_frame_delay,\n             wrapIndexedSetter 177 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_177/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 177 get_frame_texture,\n             wrapIndexedSetter 177 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_178/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 178 get_frame_delay,\n             wrapIndexedSetter 178 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_178/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 178 get_frame_texture,\n             wrapIndexedSetter 178 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_179/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 179 get_frame_delay,\n             wrapIndexedSetter 179 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_179/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 179 get_frame_texture,\n             wrapIndexedSetter 179 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_18/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 18 get_frame_delay,\n             wrapIndexedSetter 18 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_18/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 18 get_frame_texture,\n             wrapIndexedSetter 18 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_180/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 180 get_frame_delay,\n             wrapIndexedSetter 180 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_180/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 180 get_frame_texture,\n             wrapIndexedSetter 180 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_181/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 181 get_frame_delay,\n             wrapIndexedSetter 181 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_181/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 181 get_frame_texture,\n             wrapIndexedSetter 181 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_182/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 182 get_frame_delay,\n             wrapIndexedSetter 182 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_182/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 182 get_frame_texture,\n             wrapIndexedSetter 182 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_183/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 183 get_frame_delay,\n             wrapIndexedSetter 183 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_183/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 183 get_frame_texture,\n             wrapIndexedSetter 183 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_184/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 184 get_frame_delay,\n             wrapIndexedSetter 184 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_184/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 184 get_frame_texture,\n             wrapIndexedSetter 184 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_185/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 185 get_frame_delay,\n             wrapIndexedSetter 185 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_185/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 185 get_frame_texture,\n             wrapIndexedSetter 185 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_186/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 186 get_frame_delay,\n             wrapIndexedSetter 186 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_186/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 186 get_frame_texture,\n             wrapIndexedSetter 186 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_187/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 187 get_frame_delay,\n             wrapIndexedSetter 187 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_187/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 187 get_frame_texture,\n             wrapIndexedSetter 187 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_188/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 188 get_frame_delay,\n             wrapIndexedSetter 188 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_188/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 188 get_frame_texture,\n             wrapIndexedSetter 188 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_189/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 189 get_frame_delay,\n             wrapIndexedSetter 189 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_189/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 189 get_frame_texture,\n             wrapIndexedSetter 189 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_19/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 19 get_frame_delay,\n             wrapIndexedSetter 19 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_19/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 19 get_frame_texture,\n             wrapIndexedSetter 19 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_190/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 190 get_frame_delay,\n             wrapIndexedSetter 190 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_190/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 190 get_frame_texture,\n             wrapIndexedSetter 190 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_191/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 191 get_frame_delay,\n             wrapIndexedSetter 191 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_191/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 191 get_frame_texture,\n             wrapIndexedSetter 191 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_192/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 192 get_frame_delay,\n             wrapIndexedSetter 192 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_192/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 192 get_frame_texture,\n             wrapIndexedSetter 192 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_193/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 193 get_frame_delay,\n             wrapIndexedSetter 193 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_193/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 193 get_frame_texture,\n             wrapIndexedSetter 193 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_194/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 194 get_frame_delay,\n             wrapIndexedSetter 194 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_194/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 194 get_frame_texture,\n             wrapIndexedSetter 194 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_195/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 195 get_frame_delay,\n             wrapIndexedSetter 195 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_195/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 195 get_frame_texture,\n             wrapIndexedSetter 195 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_196/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 196 get_frame_delay,\n             wrapIndexedSetter 196 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_196/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 196 get_frame_texture,\n             wrapIndexedSetter 196 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_197/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 197 get_frame_delay,\n             wrapIndexedSetter 197 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_197/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 197 get_frame_texture,\n             wrapIndexedSetter 197 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_198/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 198 get_frame_delay,\n             wrapIndexedSetter 198 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_198/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 198 get_frame_texture,\n             wrapIndexedSetter 198 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_199/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 199 get_frame_delay,\n             wrapIndexedSetter 199 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_199/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 199 get_frame_texture,\n             wrapIndexedSetter 199 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_2/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_frame_delay,\n             wrapIndexedSetter 2 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_2/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_frame_texture,\n             wrapIndexedSetter 2 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_20/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 20 get_frame_delay,\n             wrapIndexedSetter 20 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_20/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 20 get_frame_texture,\n             wrapIndexedSetter 20 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_200/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 200 get_frame_delay,\n             wrapIndexedSetter 200 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_200/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 200 get_frame_texture,\n             wrapIndexedSetter 200 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_201/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 201 get_frame_delay,\n             wrapIndexedSetter 201 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_201/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 201 get_frame_texture,\n             wrapIndexedSetter 201 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_202/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 202 get_frame_delay,\n             wrapIndexedSetter 202 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_202/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 202 get_frame_texture,\n             wrapIndexedSetter 202 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_203/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 203 get_frame_delay,\n             wrapIndexedSetter 203 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_203/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 203 get_frame_texture,\n             wrapIndexedSetter 203 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_204/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 204 get_frame_delay,\n             wrapIndexedSetter 204 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_204/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 204 get_frame_texture,\n             wrapIndexedSetter 204 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_205/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 205 get_frame_delay,\n             wrapIndexedSetter 205 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_205/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 205 get_frame_texture,\n             wrapIndexedSetter 205 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_206/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 206 get_frame_delay,\n             wrapIndexedSetter 206 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_206/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 206 get_frame_texture,\n             wrapIndexedSetter 206 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_207/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 207 get_frame_delay,\n             wrapIndexedSetter 207 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_207/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 207 get_frame_texture,\n             wrapIndexedSetter 207 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_208/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 208 get_frame_delay,\n             wrapIndexedSetter 208 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_208/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 208 get_frame_texture,\n             wrapIndexedSetter 208 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_209/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 209 get_frame_delay,\n             wrapIndexedSetter 209 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_209/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 209 get_frame_texture,\n             wrapIndexedSetter 209 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_21/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 21 get_frame_delay,\n             wrapIndexedSetter 21 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_21/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 21 get_frame_texture,\n             wrapIndexedSetter 21 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_210/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 210 get_frame_delay,\n             wrapIndexedSetter 210 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_210/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 210 get_frame_texture,\n             wrapIndexedSetter 210 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_211/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 211 get_frame_delay,\n             wrapIndexedSetter 211 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_211/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 211 get_frame_texture,\n             wrapIndexedSetter 211 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_212/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 212 get_frame_delay,\n             wrapIndexedSetter 212 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_212/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 212 get_frame_texture,\n             wrapIndexedSetter 212 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_213/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 213 get_frame_delay,\n             wrapIndexedSetter 213 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_213/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 213 get_frame_texture,\n             wrapIndexedSetter 213 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_214/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 214 get_frame_delay,\n             wrapIndexedSetter 214 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_214/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 214 get_frame_texture,\n             wrapIndexedSetter 214 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_215/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 215 get_frame_delay,\n             wrapIndexedSetter 215 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_215/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 215 get_frame_texture,\n             wrapIndexedSetter 215 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_216/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 216 get_frame_delay,\n             wrapIndexedSetter 216 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_216/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 216 get_frame_texture,\n             wrapIndexedSetter 216 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_217/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 217 get_frame_delay,\n             wrapIndexedSetter 217 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_217/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 217 get_frame_texture,\n             wrapIndexedSetter 217 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_218/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 218 get_frame_delay,\n             wrapIndexedSetter 218 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_218/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 218 get_frame_texture,\n             wrapIndexedSetter 218 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_219/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 219 get_frame_delay,\n             wrapIndexedSetter 219 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_219/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 219 get_frame_texture,\n             wrapIndexedSetter 219 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_22/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 22 get_frame_delay,\n             wrapIndexedSetter 22 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_22/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 22 get_frame_texture,\n             wrapIndexedSetter 22 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_220/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 220 get_frame_delay,\n             wrapIndexedSetter 220 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_220/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 220 get_frame_texture,\n             wrapIndexedSetter 220 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_221/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 221 get_frame_delay,\n             wrapIndexedSetter 221 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_221/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 221 get_frame_texture,\n             wrapIndexedSetter 221 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_222/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 222 get_frame_delay,\n             wrapIndexedSetter 222 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_222/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 222 get_frame_texture,\n             wrapIndexedSetter 222 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_223/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 223 get_frame_delay,\n             wrapIndexedSetter 223 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_223/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 223 get_frame_texture,\n             wrapIndexedSetter 223 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_224/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 224 get_frame_delay,\n             wrapIndexedSetter 224 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_224/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 224 get_frame_texture,\n             wrapIndexedSetter 224 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_225/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 225 get_frame_delay,\n             wrapIndexedSetter 225 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_225/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 225 get_frame_texture,\n             wrapIndexedSetter 225 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_226/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 226 get_frame_delay,\n             wrapIndexedSetter 226 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_226/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 226 get_frame_texture,\n             wrapIndexedSetter 226 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_227/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 227 get_frame_delay,\n             wrapIndexedSetter 227 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_227/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 227 get_frame_texture,\n             wrapIndexedSetter 227 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_228/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 228 get_frame_delay,\n             wrapIndexedSetter 228 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_228/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 228 get_frame_texture,\n             wrapIndexedSetter 228 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_229/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 229 get_frame_delay,\n             wrapIndexedSetter 229 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_229/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 229 get_frame_texture,\n             wrapIndexedSetter 229 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_23/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 23 get_frame_delay,\n             wrapIndexedSetter 23 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_23/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 23 get_frame_texture,\n             wrapIndexedSetter 23 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_230/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 230 get_frame_delay,\n             wrapIndexedSetter 230 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_230/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 230 get_frame_texture,\n             wrapIndexedSetter 230 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_231/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 231 get_frame_delay,\n             wrapIndexedSetter 231 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_231/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 231 get_frame_texture,\n             wrapIndexedSetter 231 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_232/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 232 get_frame_delay,\n             wrapIndexedSetter 232 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_232/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 232 get_frame_texture,\n             wrapIndexedSetter 232 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_233/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 233 get_frame_delay,\n             wrapIndexedSetter 233 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_233/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 233 get_frame_texture,\n             wrapIndexedSetter 233 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_234/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 234 get_frame_delay,\n             wrapIndexedSetter 234 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_234/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 234 get_frame_texture,\n             wrapIndexedSetter 234 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_235/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 235 get_frame_delay,\n             wrapIndexedSetter 235 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_235/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 235 get_frame_texture,\n             wrapIndexedSetter 235 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_236/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 236 get_frame_delay,\n             wrapIndexedSetter 236 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_236/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 236 get_frame_texture,\n             wrapIndexedSetter 236 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_237/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 237 get_frame_delay,\n             wrapIndexedSetter 237 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_237/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 237 get_frame_texture,\n             wrapIndexedSetter 237 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_238/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 238 get_frame_delay,\n             wrapIndexedSetter 238 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_238/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 238 get_frame_texture,\n             wrapIndexedSetter 238 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_239/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 239 get_frame_delay,\n             wrapIndexedSetter 239 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_239/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 239 get_frame_texture,\n             wrapIndexedSetter 239 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_24/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 24 get_frame_delay,\n             wrapIndexedSetter 24 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_24/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 24 get_frame_texture,\n             wrapIndexedSetter 24 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_240/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 240 get_frame_delay,\n             wrapIndexedSetter 240 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_240/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 240 get_frame_texture,\n             wrapIndexedSetter 240 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_241/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 241 get_frame_delay,\n             wrapIndexedSetter 241 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_241/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 241 get_frame_texture,\n             wrapIndexedSetter 241 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_242/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 242 get_frame_delay,\n             wrapIndexedSetter 242 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_242/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 242 get_frame_texture,\n             wrapIndexedSetter 242 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_243/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 243 get_frame_delay,\n             wrapIndexedSetter 243 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_243/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 243 get_frame_texture,\n             wrapIndexedSetter 243 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_244/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 244 get_frame_delay,\n             wrapIndexedSetter 244 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_244/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 244 get_frame_texture,\n             wrapIndexedSetter 244 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_245/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 245 get_frame_delay,\n             wrapIndexedSetter 245 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_245/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 245 get_frame_texture,\n             wrapIndexedSetter 245 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_246/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 246 get_frame_delay,\n             wrapIndexedSetter 246 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_246/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 246 get_frame_texture,\n             wrapIndexedSetter 246 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_247/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 247 get_frame_delay,\n             wrapIndexedSetter 247 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_247/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 247 get_frame_texture,\n             wrapIndexedSetter 247 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_248/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 248 get_frame_delay,\n             wrapIndexedSetter 248 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_248/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 248 get_frame_texture,\n             wrapIndexedSetter 248 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_249/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 249 get_frame_delay,\n             wrapIndexedSetter 249 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_249/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 249 get_frame_texture,\n             wrapIndexedSetter 249 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_25/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 25 get_frame_delay,\n             wrapIndexedSetter 25 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_25/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 25 get_frame_texture,\n             wrapIndexedSetter 25 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_250/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 250 get_frame_delay,\n             wrapIndexedSetter 250 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_250/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 250 get_frame_texture,\n             wrapIndexedSetter 250 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_251/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 251 get_frame_delay,\n             wrapIndexedSetter 251 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_251/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 251 get_frame_texture,\n             wrapIndexedSetter 251 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_252/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 252 get_frame_delay,\n             wrapIndexedSetter 252 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_252/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 252 get_frame_texture,\n             wrapIndexedSetter 252 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_253/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 253 get_frame_delay,\n             wrapIndexedSetter 253 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_253/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 253 get_frame_texture,\n             wrapIndexedSetter 253 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_254/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 254 get_frame_delay,\n             wrapIndexedSetter 254 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_254/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 254 get_frame_texture,\n             wrapIndexedSetter 254 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_255/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 255 get_frame_delay,\n             wrapIndexedSetter 255 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_255/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 255 get_frame_texture,\n             wrapIndexedSetter 255 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_26/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 26 get_frame_delay,\n             wrapIndexedSetter 26 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_26/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 26 get_frame_texture,\n             wrapIndexedSetter 26 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_27/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 27 get_frame_delay,\n             wrapIndexedSetter 27 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_27/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 27 get_frame_texture,\n             wrapIndexedSetter 27 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_28/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 28 get_frame_delay,\n             wrapIndexedSetter 28 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_28/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 28 get_frame_texture,\n             wrapIndexedSetter 28 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_29/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 29 get_frame_delay,\n             wrapIndexedSetter 29 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_29/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 29 get_frame_texture,\n             wrapIndexedSetter 29 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_3/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_frame_delay,\n             wrapIndexedSetter 3 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_3/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_frame_texture,\n             wrapIndexedSetter 3 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_30/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 30 get_frame_delay,\n             wrapIndexedSetter 30 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_30/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 30 get_frame_texture,\n             wrapIndexedSetter 30 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_31/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 31 get_frame_delay,\n             wrapIndexedSetter 31 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_31/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 31 get_frame_texture,\n             wrapIndexedSetter 31 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_32/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 32 get_frame_delay,\n             wrapIndexedSetter 32 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_32/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 32 get_frame_texture,\n             wrapIndexedSetter 32 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_33/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 33 get_frame_delay,\n             wrapIndexedSetter 33 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_33/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 33 get_frame_texture,\n             wrapIndexedSetter 33 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_34/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 34 get_frame_delay,\n             wrapIndexedSetter 34 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_34/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 34 get_frame_texture,\n             wrapIndexedSetter 34 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_35/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 35 get_frame_delay,\n             wrapIndexedSetter 35 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_35/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 35 get_frame_texture,\n             wrapIndexedSetter 35 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_36/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 36 get_frame_delay,\n             wrapIndexedSetter 36 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_36/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 36 get_frame_texture,\n             wrapIndexedSetter 36 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_37/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 37 get_frame_delay,\n             wrapIndexedSetter 37 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_37/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 37 get_frame_texture,\n             wrapIndexedSetter 37 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_38/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 38 get_frame_delay,\n             wrapIndexedSetter 38 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_38/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 38 get_frame_texture,\n             wrapIndexedSetter 38 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_39/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 39 get_frame_delay,\n             wrapIndexedSetter 39 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_39/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 39 get_frame_texture,\n             wrapIndexedSetter 39 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_4/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_frame_delay,\n             wrapIndexedSetter 4 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_4/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_frame_texture,\n             wrapIndexedSetter 4 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_40/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 40 get_frame_delay,\n             wrapIndexedSetter 40 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_40/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 40 get_frame_texture,\n             wrapIndexedSetter 40 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_41/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 41 get_frame_delay,\n             wrapIndexedSetter 41 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_41/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 41 get_frame_texture,\n             wrapIndexedSetter 41 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_42/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 42 get_frame_delay,\n             wrapIndexedSetter 42 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_42/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 42 get_frame_texture,\n             wrapIndexedSetter 42 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_43/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 43 get_frame_delay,\n             wrapIndexedSetter 43 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_43/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 43 get_frame_texture,\n             wrapIndexedSetter 43 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_44/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 44 get_frame_delay,\n             wrapIndexedSetter 44 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_44/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 44 get_frame_texture,\n             wrapIndexedSetter 44 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_45/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 45 get_frame_delay,\n             wrapIndexedSetter 45 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_45/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 45 get_frame_texture,\n             wrapIndexedSetter 45 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_46/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 46 get_frame_delay,\n             wrapIndexedSetter 46 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_46/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 46 get_frame_texture,\n             wrapIndexedSetter 46 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_47/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 47 get_frame_delay,\n             wrapIndexedSetter 47 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_47/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 47 get_frame_texture,\n             wrapIndexedSetter 47 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_48/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 48 get_frame_delay,\n             wrapIndexedSetter 48 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_48/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 48 get_frame_texture,\n             wrapIndexedSetter 48 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_49/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 49 get_frame_delay,\n             wrapIndexedSetter 49 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_49/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 49 get_frame_texture,\n             wrapIndexedSetter 49 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_5/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_frame_delay,\n             wrapIndexedSetter 5 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_5/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_frame_texture,\n             wrapIndexedSetter 5 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_50/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 50 get_frame_delay,\n             wrapIndexedSetter 50 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_50/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 50 get_frame_texture,\n             wrapIndexedSetter 50 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_51/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 51 get_frame_delay,\n             wrapIndexedSetter 51 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_51/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 51 get_frame_texture,\n             wrapIndexedSetter 51 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_52/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 52 get_frame_delay,\n             wrapIndexedSetter 52 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_52/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 52 get_frame_texture,\n             wrapIndexedSetter 52 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_53/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 53 get_frame_delay,\n             wrapIndexedSetter 53 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_53/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 53 get_frame_texture,\n             wrapIndexedSetter 53 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_54/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 54 get_frame_delay,\n             wrapIndexedSetter 54 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_54/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 54 get_frame_texture,\n             wrapIndexedSetter 54 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_55/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 55 get_frame_delay,\n             wrapIndexedSetter 55 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_55/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 55 get_frame_texture,\n             wrapIndexedSetter 55 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_56/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 56 get_frame_delay,\n             wrapIndexedSetter 56 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_56/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 56 get_frame_texture,\n             wrapIndexedSetter 56 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_57/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 57 get_frame_delay,\n             wrapIndexedSetter 57 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_57/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 57 get_frame_texture,\n             wrapIndexedSetter 57 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_58/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 58 get_frame_delay,\n             wrapIndexedSetter 58 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_58/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 58 get_frame_texture,\n             wrapIndexedSetter 58 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_59/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 59 get_frame_delay,\n             wrapIndexedSetter 59 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_59/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 59 get_frame_texture,\n             wrapIndexedSetter 59 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_6/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_frame_delay,\n             wrapIndexedSetter 6 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_6/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_frame_texture,\n             wrapIndexedSetter 6 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_60/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 60 get_frame_delay,\n             wrapIndexedSetter 60 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_60/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 60 get_frame_texture,\n             wrapIndexedSetter 60 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_61/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 61 get_frame_delay,\n             wrapIndexedSetter 61 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_61/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 61 get_frame_texture,\n             wrapIndexedSetter 61 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_62/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 62 get_frame_delay,\n             wrapIndexedSetter 62 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_62/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 62 get_frame_texture,\n             wrapIndexedSetter 62 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_63/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 63 get_frame_delay,\n             wrapIndexedSetter 63 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_63/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 63 get_frame_texture,\n             wrapIndexedSetter 63 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_64/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 64 get_frame_delay,\n             wrapIndexedSetter 64 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_64/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 64 get_frame_texture,\n             wrapIndexedSetter 64 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_65/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 65 get_frame_delay,\n             wrapIndexedSetter 65 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_65/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 65 get_frame_texture,\n             wrapIndexedSetter 65 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_66/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 66 get_frame_delay,\n             wrapIndexedSetter 66 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_66/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 66 get_frame_texture,\n             wrapIndexedSetter 66 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_67/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 67 get_frame_delay,\n             wrapIndexedSetter 67 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_67/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 67 get_frame_texture,\n             wrapIndexedSetter 67 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_68/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 68 get_frame_delay,\n             wrapIndexedSetter 68 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_68/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 68 get_frame_texture,\n             wrapIndexedSetter 68 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_69/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 69 get_frame_delay,\n             wrapIndexedSetter 69 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_69/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 69 get_frame_texture,\n             wrapIndexedSetter 69 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_7/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_frame_delay,\n             wrapIndexedSetter 7 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_7/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_frame_texture,\n             wrapIndexedSetter 7 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_70/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 70 get_frame_delay,\n             wrapIndexedSetter 70 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_70/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 70 get_frame_texture,\n             wrapIndexedSetter 70 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_71/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 71 get_frame_delay,\n             wrapIndexedSetter 71 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_71/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 71 get_frame_texture,\n             wrapIndexedSetter 71 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_72/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 72 get_frame_delay,\n             wrapIndexedSetter 72 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_72/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 72 get_frame_texture,\n             wrapIndexedSetter 72 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_73/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 73 get_frame_delay,\n             wrapIndexedSetter 73 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_73/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 73 get_frame_texture,\n             wrapIndexedSetter 73 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_74/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 74 get_frame_delay,\n             wrapIndexedSetter 74 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_74/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 74 get_frame_texture,\n             wrapIndexedSetter 74 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_75/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 75 get_frame_delay,\n             wrapIndexedSetter 75 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_75/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 75 get_frame_texture,\n             wrapIndexedSetter 75 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_76/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 76 get_frame_delay,\n             wrapIndexedSetter 76 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_76/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 76 get_frame_texture,\n             wrapIndexedSetter 76 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_77/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 77 get_frame_delay,\n             wrapIndexedSetter 77 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_77/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 77 get_frame_texture,\n             wrapIndexedSetter 77 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_78/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 78 get_frame_delay,\n             wrapIndexedSetter 78 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_78/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 78 get_frame_texture,\n             wrapIndexedSetter 78 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_79/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 79 get_frame_delay,\n             wrapIndexedSetter 79 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_79/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 79 get_frame_texture,\n             wrapIndexedSetter 79 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_8/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_frame_delay,\n             wrapIndexedSetter 8 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_8/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_frame_texture,\n             wrapIndexedSetter 8 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_80/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 80 get_frame_delay,\n             wrapIndexedSetter 80 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_80/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 80 get_frame_texture,\n             wrapIndexedSetter 80 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_81/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 81 get_frame_delay,\n             wrapIndexedSetter 81 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_81/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 81 get_frame_texture,\n             wrapIndexedSetter 81 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_82/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 82 get_frame_delay,\n             wrapIndexedSetter 82 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_82/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 82 get_frame_texture,\n             wrapIndexedSetter 82 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_83/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 83 get_frame_delay,\n             wrapIndexedSetter 83 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_83/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 83 get_frame_texture,\n             wrapIndexedSetter 83 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_84/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 84 get_frame_delay,\n             wrapIndexedSetter 84 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_84/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 84 get_frame_texture,\n             wrapIndexedSetter 84 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_85/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 85 get_frame_delay,\n             wrapIndexedSetter 85 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_85/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 85 get_frame_texture,\n             wrapIndexedSetter 85 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_86/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 86 get_frame_delay,\n             wrapIndexedSetter 86 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_86/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 86 get_frame_texture,\n             wrapIndexedSetter 86 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_87/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 87 get_frame_delay,\n             wrapIndexedSetter 87 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_87/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 87 get_frame_texture,\n             wrapIndexedSetter 87 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_88/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 88 get_frame_delay,\n             wrapIndexedSetter 88 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_88/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 88 get_frame_texture,\n             wrapIndexedSetter 88 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_89/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 89 get_frame_delay,\n             wrapIndexedSetter 89 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_89/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 89 get_frame_texture,\n             wrapIndexedSetter 89 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_9/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_frame_delay,\n             wrapIndexedSetter 9 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_9/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_frame_texture,\n             wrapIndexedSetter 9 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_90/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 90 get_frame_delay,\n             wrapIndexedSetter 90 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_90/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 90 get_frame_texture,\n             wrapIndexedSetter 90 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_91/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 91 get_frame_delay,\n             wrapIndexedSetter 91 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_91/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 91 get_frame_texture,\n             wrapIndexedSetter 91 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_92/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 92 get_frame_delay,\n             wrapIndexedSetter 92 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_92/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 92 get_frame_texture,\n             wrapIndexedSetter 92 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_93/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 93 get_frame_delay,\n             wrapIndexedSetter 93 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_93/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 93 get_frame_texture,\n             wrapIndexedSetter 93 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_94/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 94 get_frame_delay,\n             wrapIndexedSetter 94 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_94/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 94 get_frame_texture,\n             wrapIndexedSetter 94 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_95/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 95 get_frame_delay,\n             wrapIndexedSetter 95 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_95/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 95 get_frame_texture,\n             wrapIndexedSetter 95 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_96/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 96 get_frame_delay,\n             wrapIndexedSetter 96 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_96/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 96 get_frame_texture,\n             wrapIndexedSetter 96 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_97/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 97 get_frame_delay,\n             wrapIndexedSetter 97 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_97/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 97 get_frame_texture,\n             wrapIndexedSetter 97 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_98/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 98 get_frame_delay,\n             wrapIndexedSetter 98 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_98/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 98 get_frame_texture,\n             wrapIndexedSetter 98 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_99/delay_sec\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 99 get_frame_delay,\n             wrapIndexedSetter 99 set_frame_delay, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frame_99/texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 99 get_frame_texture,\n             wrapIndexedSetter 99 set_frame_texture, Nothing)\n\ninstance NodeProperty AnimatedTexture \"frames\" Int 'False where\n        nodeProperty = (get_frames, wrapDroppingSetter set_frames, Nothing)\n\n{-# NOINLINE bindAnimatedTexture__update_proxy #-}\n\nbindAnimatedTexture__update_proxy :: MethodBind\nbindAnimatedTexture__update_proxy\n  = unsafePerformIO $\n      withCString \"AnimatedTexture\" $\n        \\ clsNamePtr ->\n          withCString \"_update_proxy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_proxy ::\n                (AnimatedTexture :< cls, Object :< cls) => cls -> IO ()\n_update_proxy cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedTexture__update_proxy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedTexture \"_update_proxy\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedTexture._update_proxy\n\n{-# NOINLINE bindAnimatedTexture_get_fps #-}\n\n-- | Animation speed in frames per second. This value defines the default time interval between two frames of the animation, and thus the overall duration of the animation loop based on the @frames@ property. A value of 0 means no predefined number of frames per second, the animation will play according to each frame's frame delay (see @method set_frame_delay@).\n--   \t\t\tFor example, an animation with 8 frames, no frame delay and a @fps@ value of 2 will run for 4 seconds, with each frame lasting 0.5 seconds.\nbindAnimatedTexture_get_fps :: MethodBind\nbindAnimatedTexture_get_fps\n  = unsafePerformIO $\n      withCString \"AnimatedTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_fps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Animation speed in frames per second. This value defines the default time interval between two frames of the animation, and thus the overall duration of the animation loop based on the @frames@ property. A value of 0 means no predefined number of frames per second, the animation will play according to each frame's frame delay (see @method set_frame_delay@).\n--   \t\t\tFor example, an animation with 8 frames, no frame delay and a @fps@ value of 2 will run for 4 seconds, with each frame lasting 0.5 seconds.\nget_fps ::\n          (AnimatedTexture :< cls, Object :< cls) => cls -> IO Float\nget_fps cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedTexture_get_fps (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedTexture \"get_fps\" '[] (IO Float) where\n        nodeMethod = Godot.Core.AnimatedTexture.get_fps\n\n{-# NOINLINE bindAnimatedTexture_get_frame_delay #-}\n\n-- | Returns the given frame's delay value.\nbindAnimatedTexture_get_frame_delay :: MethodBind\nbindAnimatedTexture_get_frame_delay\n  = unsafePerformIO $\n      withCString \"AnimatedTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_frame_delay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the given frame's delay value.\nget_frame_delay ::\n                  (AnimatedTexture :< cls, Object :< cls) => cls -> Int -> IO Float\nget_frame_delay cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedTexture_get_frame_delay\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedTexture \"get_frame_delay\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AnimatedTexture.get_frame_delay\n\n{-# NOINLINE bindAnimatedTexture_get_frame_texture #-}\n\n-- | Returns the given frame's @Texture@.\nbindAnimatedTexture_get_frame_texture :: MethodBind\nbindAnimatedTexture_get_frame_texture\n  = unsafePerformIO $\n      withCString \"AnimatedTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_frame_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the given frame's @Texture@.\nget_frame_texture ::\n                    (AnimatedTexture :< cls, Object :< cls) => cls -> Int -> IO Texture\nget_frame_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedTexture_get_frame_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedTexture \"get_frame_texture\" '[Int]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.AnimatedTexture.get_frame_texture\n\n{-# NOINLINE bindAnimatedTexture_get_frames #-}\n\n-- | Number of frames to use in the animation. While you can create the frames independently with @method set_frame_texture@, you need to set this value for the animation to take new frames into account. The maximum number of frames is @MAX_FRAMES@.\nbindAnimatedTexture_get_frames :: MethodBind\nbindAnimatedTexture_get_frames\n  = unsafePerformIO $\n      withCString \"AnimatedTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_frames\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of frames to use in the animation. While you can create the frames independently with @method set_frame_texture@, you need to set this value for the animation to take new frames into account. The maximum number of frames is @MAX_FRAMES@.\nget_frames ::\n             (AnimatedTexture :< cls, Object :< cls) => cls -> IO Int\nget_frames cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedTexture_get_frames (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedTexture \"get_frames\" '[] (IO Int) where\n        nodeMethod = Godot.Core.AnimatedTexture.get_frames\n\n{-# NOINLINE bindAnimatedTexture_set_fps #-}\n\n-- | Animation speed in frames per second. This value defines the default time interval between two frames of the animation, and thus the overall duration of the animation loop based on the @frames@ property. A value of 0 means no predefined number of frames per second, the animation will play according to each frame's frame delay (see @method set_frame_delay@).\n--   \t\t\tFor example, an animation with 8 frames, no frame delay and a @fps@ value of 2 will run for 4 seconds, with each frame lasting 0.5 seconds.\nbindAnimatedTexture_set_fps :: MethodBind\nbindAnimatedTexture_set_fps\n  = unsafePerformIO $\n      withCString \"AnimatedTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_fps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Animation speed in frames per second. This value defines the default time interval between two frames of the animation, and thus the overall duration of the animation loop based on the @frames@ property. A value of 0 means no predefined number of frames per second, the animation will play according to each frame's frame delay (see @method set_frame_delay@).\n--   \t\t\tFor example, an animation with 8 frames, no frame delay and a @fps@ value of 2 will run for 4 seconds, with each frame lasting 0.5 seconds.\nset_fps ::\n          (AnimatedTexture :< cls, Object :< cls) => cls -> Float -> IO ()\nset_fps cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedTexture_set_fps (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedTexture \"set_fps\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedTexture.set_fps\n\n{-# NOINLINE bindAnimatedTexture_set_frame_delay #-}\n\n-- | Sets an additional delay (in seconds) between this frame and the next one, that will be added to the time interval defined by @fps@. By default, frames have no delay defined. If a delay value is defined, the final time interval between this frame and the next will be @1.0 / fps + delay@.\n--   \t\t\t\tFor example, for an animation with 3 frames, 2 FPS and a frame delay on the second frame of 1.2, the resulting playback will be:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tFrame 0: 0.5 s (1 / fps)\n--   \t\t\t\tFrame 1: 1.7 s (1 / fps + 1.2)\n--   \t\t\t\tFrame 2: 0.5 s (1 / fps)\n--   \t\t\t\tTotal duration: 2.7 s\n--   \t\t\t\t\n--   @\nbindAnimatedTexture_set_frame_delay :: MethodBind\nbindAnimatedTexture_set_frame_delay\n  = unsafePerformIO $\n      withCString \"AnimatedTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_frame_delay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets an additional delay (in seconds) between this frame and the next one, that will be added to the time interval defined by @fps@. By default, frames have no delay defined. If a delay value is defined, the final time interval between this frame and the next will be @1.0 / fps + delay@.\n--   \t\t\t\tFor example, for an animation with 3 frames, 2 FPS and a frame delay on the second frame of 1.2, the resulting playback will be:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tFrame 0: 0.5 s (1 / fps)\n--   \t\t\t\tFrame 1: 1.7 s (1 / fps + 1.2)\n--   \t\t\t\tFrame 2: 0.5 s (1 / fps)\n--   \t\t\t\tTotal duration: 2.7 s\n--   \t\t\t\t\n--   @\nset_frame_delay ::\n                  (AnimatedTexture :< cls, Object :< cls) =>\n                  cls -> Int -> Float -> IO ()\nset_frame_delay cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedTexture_set_frame_delay\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedTexture \"set_frame_delay\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedTexture.set_frame_delay\n\n{-# NOINLINE bindAnimatedTexture_set_frame_texture #-}\n\n-- | Assigns a @Texture@ to the given frame. Frame IDs start at 0, so the first frame has ID 0, and the last frame of the animation has ID @frames@ - 1.\n--   \t\t\t\tYou can define any number of textures up to @MAX_FRAMES@, but keep in mind that only frames from 0 to @frames@ - 1 will be part of the animation.\nbindAnimatedTexture_set_frame_texture :: MethodBind\nbindAnimatedTexture_set_frame_texture\n  = unsafePerformIO $\n      withCString \"AnimatedTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_frame_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Assigns a @Texture@ to the given frame. Frame IDs start at 0, so the first frame has ID 0, and the last frame of the animation has ID @frames@ - 1.\n--   \t\t\t\tYou can define any number of textures up to @MAX_FRAMES@, but keep in mind that only frames from 0 to @frames@ - 1 will be part of the animation.\nset_frame_texture ::\n                    (AnimatedTexture :< cls, Object :< cls) =>\n                    cls -> Int -> Texture -> IO ()\nset_frame_texture cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedTexture_set_frame_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedTexture \"set_frame_texture\"\n           '[Int, Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedTexture.set_frame_texture\n\n{-# NOINLINE bindAnimatedTexture_set_frames #-}\n\n-- | Number of frames to use in the animation. While you can create the frames independently with @method set_frame_texture@, you need to set this value for the animation to take new frames into account. The maximum number of frames is @MAX_FRAMES@.\nbindAnimatedTexture_set_frames :: MethodBind\nbindAnimatedTexture_set_frames\n  = unsafePerformIO $\n      withCString \"AnimatedTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_frames\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of frames to use in the animation. While you can create the frames independently with @method set_frame_texture@, you need to set this value for the animation to take new frames into account. The maximum number of frames is @MAX_FRAMES@.\nset_frames ::\n             (AnimatedTexture :< cls, Object :< cls) => cls -> Int -> IO ()\nset_frames cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimatedTexture_set_frames (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimatedTexture \"set_frames\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimatedTexture.set_frames"
  },
  {
    "path": "src/Godot/Core/Animation.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Animation\n       (Godot.Core.Animation._TYPE_BEZIER,\n        Godot.Core.Animation._INTERPOLATION_NEAREST,\n        Godot.Core.Animation._UPDATE_DISCRETE,\n        Godot.Core.Animation._INTERPOLATION_LINEAR,\n        Godot.Core.Animation._TYPE_VALUE,\n        Godot.Core.Animation._UPDATE_CAPTURE,\n        Godot.Core.Animation._TYPE_METHOD,\n        Godot.Core.Animation._UPDATE_CONTINUOUS,\n        Godot.Core.Animation._INTERPOLATION_CUBIC,\n        Godot.Core.Animation._TYPE_TRANSFORM,\n        Godot.Core.Animation._UPDATE_TRIGGER,\n        Godot.Core.Animation._TYPE_AUDIO,\n        Godot.Core.Animation._TYPE_ANIMATION,\n        Godot.Core.Animation.sig_tracks_changed,\n        Godot.Core.Animation.add_track,\n        Godot.Core.Animation.animation_track_get_key_animation,\n        Godot.Core.Animation.animation_track_insert_key,\n        Godot.Core.Animation.animation_track_set_key_animation,\n        Godot.Core.Animation.audio_track_get_key_end_offset,\n        Godot.Core.Animation.audio_track_get_key_start_offset,\n        Godot.Core.Animation.audio_track_get_key_stream,\n        Godot.Core.Animation.audio_track_insert_key,\n        Godot.Core.Animation.audio_track_set_key_end_offset,\n        Godot.Core.Animation.audio_track_set_key_start_offset,\n        Godot.Core.Animation.audio_track_set_key_stream,\n        Godot.Core.Animation.bezier_track_get_key_in_handle,\n        Godot.Core.Animation.bezier_track_get_key_out_handle,\n        Godot.Core.Animation.bezier_track_get_key_value,\n        Godot.Core.Animation.bezier_track_insert_key,\n        Godot.Core.Animation.bezier_track_interpolate,\n        Godot.Core.Animation.bezier_track_set_key_in_handle,\n        Godot.Core.Animation.bezier_track_set_key_out_handle,\n        Godot.Core.Animation.bezier_track_set_key_value,\n        Godot.Core.Animation.clear, Godot.Core.Animation.copy_track,\n        Godot.Core.Animation.find_track, Godot.Core.Animation.get_length,\n        Godot.Core.Animation.get_step,\n        Godot.Core.Animation.get_track_count,\n        Godot.Core.Animation.has_loop,\n        Godot.Core.Animation.method_track_get_key_indices,\n        Godot.Core.Animation.method_track_get_name,\n        Godot.Core.Animation.method_track_get_params,\n        Godot.Core.Animation.remove_track, Godot.Core.Animation.set_length,\n        Godot.Core.Animation.set_loop, Godot.Core.Animation.set_step,\n        Godot.Core.Animation.track_find_key,\n        Godot.Core.Animation.track_get_interpolation_loop_wrap,\n        Godot.Core.Animation.track_get_interpolation_type,\n        Godot.Core.Animation.track_get_key_count,\n        Godot.Core.Animation.track_get_key_time,\n        Godot.Core.Animation.track_get_key_transition,\n        Godot.Core.Animation.track_get_key_value,\n        Godot.Core.Animation.track_get_path,\n        Godot.Core.Animation.track_get_type,\n        Godot.Core.Animation.track_insert_key,\n        Godot.Core.Animation.track_is_enabled,\n        Godot.Core.Animation.track_is_imported,\n        Godot.Core.Animation.track_move_down,\n        Godot.Core.Animation.track_move_to,\n        Godot.Core.Animation.track_move_up,\n        Godot.Core.Animation.track_remove_key,\n        Godot.Core.Animation.track_remove_key_at_position,\n        Godot.Core.Animation.track_set_enabled,\n        Godot.Core.Animation.track_set_imported,\n        Godot.Core.Animation.track_set_interpolation_loop_wrap,\n        Godot.Core.Animation.track_set_interpolation_type,\n        Godot.Core.Animation.track_set_key_time,\n        Godot.Core.Animation.track_set_key_transition,\n        Godot.Core.Animation.track_set_key_value,\n        Godot.Core.Animation.track_set_path,\n        Godot.Core.Animation.track_swap,\n        Godot.Core.Animation.transform_track_insert_key,\n        Godot.Core.Animation.transform_track_interpolate,\n        Godot.Core.Animation.value_track_get_key_indices,\n        Godot.Core.Animation.value_track_get_update_mode,\n        Godot.Core.Animation.value_track_set_update_mode)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_TYPE_BEZIER :: Int\n_TYPE_BEZIER = 3\n\n_INTERPOLATION_NEAREST :: Int\n_INTERPOLATION_NEAREST = 0\n\n_UPDATE_DISCRETE :: Int\n_UPDATE_DISCRETE = 1\n\n_INTERPOLATION_LINEAR :: Int\n_INTERPOLATION_LINEAR = 1\n\n_TYPE_VALUE :: Int\n_TYPE_VALUE = 0\n\n_UPDATE_CAPTURE :: Int\n_UPDATE_CAPTURE = 3\n\n_TYPE_METHOD :: Int\n_TYPE_METHOD = 2\n\n_UPDATE_CONTINUOUS :: Int\n_UPDATE_CONTINUOUS = 0\n\n_INTERPOLATION_CUBIC :: Int\n_INTERPOLATION_CUBIC = 2\n\n_TYPE_TRANSFORM :: Int\n_TYPE_TRANSFORM = 1\n\n_UPDATE_TRIGGER :: Int\n_UPDATE_TRIGGER = 2\n\n_TYPE_AUDIO :: Int\n_TYPE_AUDIO = 4\n\n_TYPE_ANIMATION :: Int\n_TYPE_ANIMATION = 5\n\n-- | Emitted when there's a change in the list of tracks, e.g. tracks are added, moved or have changed paths.\nsig_tracks_changed :: Godot.Internal.Dispatch.Signal Animation\nsig_tracks_changed\n  = Godot.Internal.Dispatch.Signal \"tracks_changed\"\n\ninstance NodeSignal Animation \"tracks_changed\" '[]\n\ninstance NodeProperty Animation \"length\" Float 'False where\n        nodeProperty = (get_length, wrapDroppingSetter set_length, Nothing)\n\ninstance NodeProperty Animation \"loop\" Bool 'False where\n        nodeProperty = (has_loop, wrapDroppingSetter set_loop, Nothing)\n\ninstance NodeProperty Animation \"step\" Float 'False where\n        nodeProperty = (get_step, wrapDroppingSetter set_step, Nothing)\n\n{-# NOINLINE bindAnimation_add_track #-}\n\n-- | Adds a track to the Animation.\nbindAnimation_add_track :: MethodBind\nbindAnimation_add_track\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"add_track\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a track to the Animation.\nadd_track ::\n            (Animation :< cls, Object :< cls) =>\n            cls -> Int -> Maybe Int -> IO Int\nadd_track cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (-1)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_add_track (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"add_track\" '[Int, Maybe Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Animation.add_track\n\n{-# NOINLINE bindAnimation_animation_track_get_key_animation #-}\n\n-- | Returns the animation name at the key identified by @key_idx@. The @track_idx@ must be the index of an Animation Track.\nbindAnimation_animation_track_get_key_animation :: MethodBind\nbindAnimation_animation_track_get_key_animation\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"animation_track_get_key_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the animation name at the key identified by @key_idx@. The @track_idx@ must be the index of an Animation Track.\nanimation_track_get_key_animation ::\n                                    (Animation :< cls, Object :< cls) =>\n                                    cls -> Int -> Int -> IO GodotString\nanimation_track_get_key_animation cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimation_animation_track_get_key_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"animation_track_get_key_animation\"\n           '[Int, Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Animation.animation_track_get_key_animation\n\n{-# NOINLINE bindAnimation_animation_track_insert_key #-}\n\n-- | Inserts a key with value @animation@ at the given @time@ (in seconds). The @track_idx@ must be the index of an Animation Track.\nbindAnimation_animation_track_insert_key :: MethodBind\nbindAnimation_animation_track_insert_key\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"animation_track_insert_key\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Inserts a key with value @animation@ at the given @time@ (in seconds). The @track_idx@ must be the index of an Animation Track.\nanimation_track_insert_key ::\n                             (Animation :< cls, Object :< cls) =>\n                             cls -> Int -> Float -> GodotString -> IO Int\nanimation_track_insert_key cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_animation_track_insert_key\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"animation_track_insert_key\"\n           '[Int, Float, GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Animation.animation_track_insert_key\n\n{-# NOINLINE bindAnimation_animation_track_set_key_animation #-}\n\n-- | Sets the key identified by @key_idx@ to value @animation@. The @track_idx@ must be the index of an Animation Track.\nbindAnimation_animation_track_set_key_animation :: MethodBind\nbindAnimation_animation_track_set_key_animation\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"animation_track_set_key_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the key identified by @key_idx@ to value @animation@. The @track_idx@ must be the index of an Animation Track.\nanimation_track_set_key_animation ::\n                                    (Animation :< cls, Object :< cls) =>\n                                    cls -> Int -> Int -> GodotString -> IO ()\nanimation_track_set_key_animation cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimation_animation_track_set_key_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"animation_track_set_key_animation\"\n           '[Int, Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.animation_track_set_key_animation\n\n{-# NOINLINE bindAnimation_audio_track_get_key_end_offset #-}\n\n-- | Returns the end offset of the key identified by @key_idx@. The @track_idx@ must be the index of an Audio Track.\n--   \t\t\t\tEnd offset is the number of seconds cut off at the ending of the audio stream.\nbindAnimation_audio_track_get_key_end_offset :: MethodBind\nbindAnimation_audio_track_get_key_end_offset\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"audio_track_get_key_end_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the end offset of the key identified by @key_idx@. The @track_idx@ must be the index of an Audio Track.\n--   \t\t\t\tEnd offset is the number of seconds cut off at the ending of the audio stream.\naudio_track_get_key_end_offset ::\n                                 (Animation :< cls, Object :< cls) => cls -> Int -> Int -> IO Float\naudio_track_get_key_end_offset cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_audio_track_get_key_end_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"audio_track_get_key_end_offset\"\n           '[Int, Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Animation.audio_track_get_key_end_offset\n\n{-# NOINLINE bindAnimation_audio_track_get_key_start_offset #-}\n\n-- | Returns the start offset of the key identified by @key_idx@. The @track_idx@ must be the index of an Audio Track.\n--   \t\t\t\tStart offset is the number of seconds cut off at the beginning of the audio stream.\nbindAnimation_audio_track_get_key_start_offset :: MethodBind\nbindAnimation_audio_track_get_key_start_offset\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"audio_track_get_key_start_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the start offset of the key identified by @key_idx@. The @track_idx@ must be the index of an Audio Track.\n--   \t\t\t\tStart offset is the number of seconds cut off at the beginning of the audio stream.\naudio_track_get_key_start_offset ::\n                                   (Animation :< cls, Object :< cls) =>\n                                   cls -> Int -> Int -> IO Float\naudio_track_get_key_start_offset cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimation_audio_track_get_key_start_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"audio_track_get_key_start_offset\"\n           '[Int, Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Animation.audio_track_get_key_start_offset\n\n{-# NOINLINE bindAnimation_audio_track_get_key_stream #-}\n\n-- | Returns the audio stream of the key identified by @key_idx@. The @track_idx@ must be the index of an Audio Track.\nbindAnimation_audio_track_get_key_stream :: MethodBind\nbindAnimation_audio_track_get_key_stream\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"audio_track_get_key_stream\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the audio stream of the key identified by @key_idx@. The @track_idx@ must be the index of an Audio Track.\naudio_track_get_key_stream ::\n                             (Animation :< cls, Object :< cls) =>\n                             cls -> Int -> Int -> IO Resource\naudio_track_get_key_stream cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_audio_track_get_key_stream\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"audio_track_get_key_stream\"\n           '[Int, Int]\n           (IO Resource)\n         where\n        nodeMethod = Godot.Core.Animation.audio_track_get_key_stream\n\n{-# NOINLINE bindAnimation_audio_track_insert_key #-}\n\n-- | Inserts an Audio Track key at the given @time@ in seconds. The @track_idx@ must be the index of an Audio Track.\n--   \t\t\t\t@stream@ is the @AudioStream@ resource to play. @start_offset@ is the number of seconds cut off at the beginning of the audio stream, while @end_offset@ is at the ending.\nbindAnimation_audio_track_insert_key :: MethodBind\nbindAnimation_audio_track_insert_key\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"audio_track_insert_key\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Inserts an Audio Track key at the given @time@ in seconds. The @track_idx@ must be the index of an Audio Track.\n--   \t\t\t\t@stream@ is the @AudioStream@ resource to play. @start_offset@ is the number of seconds cut off at the beginning of the audio stream, while @end_offset@ is at the ending.\naudio_track_insert_key ::\n                         (Animation :< cls, Object :< cls) =>\n                         cls ->\n                           Int -> Float -> Resource -> Maybe Float -> Maybe Float -> IO Int\naudio_track_insert_key cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantReal (0)) toVariant arg4,\n       maybe (VariantReal (0)) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_audio_track_insert_key\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"audio_track_insert_key\"\n           '[Int, Float, Resource, Maybe Float, Maybe Float]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Animation.audio_track_insert_key\n\n{-# NOINLINE bindAnimation_audio_track_set_key_end_offset #-}\n\n-- | Sets the end offset of the key identified by @key_idx@ to value @offset@. The @track_idx@ must be the index of an Audio Track.\nbindAnimation_audio_track_set_key_end_offset :: MethodBind\nbindAnimation_audio_track_set_key_end_offset\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"audio_track_set_key_end_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the end offset of the key identified by @key_idx@ to value @offset@. The @track_idx@ must be the index of an Audio Track.\naudio_track_set_key_end_offset ::\n                                 (Animation :< cls, Object :< cls) =>\n                                 cls -> Int -> Int -> Float -> IO ()\naudio_track_set_key_end_offset cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_audio_track_set_key_end_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"audio_track_set_key_end_offset\"\n           '[Int, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.audio_track_set_key_end_offset\n\n{-# NOINLINE bindAnimation_audio_track_set_key_start_offset #-}\n\n-- | Sets the start offset of the key identified by @key_idx@ to value @offset@. The @track_idx@ must be the index of an Audio Track.\nbindAnimation_audio_track_set_key_start_offset :: MethodBind\nbindAnimation_audio_track_set_key_start_offset\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"audio_track_set_key_start_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the start offset of the key identified by @key_idx@ to value @offset@. The @track_idx@ must be the index of an Audio Track.\naudio_track_set_key_start_offset ::\n                                   (Animation :< cls, Object :< cls) =>\n                                   cls -> Int -> Int -> Float -> IO ()\naudio_track_set_key_start_offset cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimation_audio_track_set_key_start_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"audio_track_set_key_start_offset\"\n           '[Int, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.audio_track_set_key_start_offset\n\n{-# NOINLINE bindAnimation_audio_track_set_key_stream #-}\n\n-- | Sets the stream of the key identified by @key_idx@ to value @offset@. The @track_idx@ must be the index of an Audio Track.\nbindAnimation_audio_track_set_key_stream :: MethodBind\nbindAnimation_audio_track_set_key_stream\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"audio_track_set_key_stream\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the stream of the key identified by @key_idx@ to value @offset@. The @track_idx@ must be the index of an Audio Track.\naudio_track_set_key_stream ::\n                             (Animation :< cls, Object :< cls) =>\n                             cls -> Int -> Int -> Resource -> IO ()\naudio_track_set_key_stream cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_audio_track_set_key_stream\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"audio_track_set_key_stream\"\n           '[Int, Int, Resource]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.audio_track_set_key_stream\n\n{-# NOINLINE bindAnimation_bezier_track_get_key_in_handle #-}\n\n-- | Returns the in handle of the key identified by @key_idx@. The @track_idx@ must be the index of a Bezier Track.\nbindAnimation_bezier_track_get_key_in_handle :: MethodBind\nbindAnimation_bezier_track_get_key_in_handle\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"bezier_track_get_key_in_handle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the in handle of the key identified by @key_idx@. The @track_idx@ must be the index of a Bezier Track.\nbezier_track_get_key_in_handle ::\n                                 (Animation :< cls, Object :< cls) =>\n                                 cls -> Int -> Int -> IO Vector2\nbezier_track_get_key_in_handle cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_bezier_track_get_key_in_handle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"bezier_track_get_key_in_handle\"\n           '[Int, Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Animation.bezier_track_get_key_in_handle\n\n{-# NOINLINE bindAnimation_bezier_track_get_key_out_handle #-}\n\n-- | Returns the out handle of the key identified by @key_idx@. The @track_idx@ must be the index of a Bezier Track.\nbindAnimation_bezier_track_get_key_out_handle :: MethodBind\nbindAnimation_bezier_track_get_key_out_handle\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"bezier_track_get_key_out_handle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the out handle of the key identified by @key_idx@. The @track_idx@ must be the index of a Bezier Track.\nbezier_track_get_key_out_handle ::\n                                  (Animation :< cls, Object :< cls) =>\n                                  cls -> Int -> Int -> IO Vector2\nbezier_track_get_key_out_handle cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimation_bezier_track_get_key_out_handle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"bezier_track_get_key_out_handle\"\n           '[Int, Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Animation.bezier_track_get_key_out_handle\n\n{-# NOINLINE bindAnimation_bezier_track_get_key_value #-}\n\n-- | Returns the value of the key identified by @key_idx@. The @track_idx@ must be the index of a Bezier Track.\nbindAnimation_bezier_track_get_key_value :: MethodBind\nbindAnimation_bezier_track_get_key_value\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"bezier_track_get_key_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of the key identified by @key_idx@. The @track_idx@ must be the index of a Bezier Track.\nbezier_track_get_key_value ::\n                             (Animation :< cls, Object :< cls) => cls -> Int -> Int -> IO Float\nbezier_track_get_key_value cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_bezier_track_get_key_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"bezier_track_get_key_value\"\n           '[Int, Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Animation.bezier_track_get_key_value\n\n{-# NOINLINE bindAnimation_bezier_track_insert_key #-}\n\n-- | Inserts a Bezier Track key at the given @time@ in seconds. The @track_idx@ must be the index of a Bezier Track.\n--   \t\t\t\t@in_handle@ is the left-side weight of the added Bezier curve point, @out_handle@ is the right-side one, while @value@ is the actual value at this point.\nbindAnimation_bezier_track_insert_key :: MethodBind\nbindAnimation_bezier_track_insert_key\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"bezier_track_insert_key\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Inserts a Bezier Track key at the given @time@ in seconds. The @track_idx@ must be the index of a Bezier Track.\n--   \t\t\t\t@in_handle@ is the left-side weight of the added Bezier curve point, @out_handle@ is the right-side one, while @value@ is the actual value at this point.\nbezier_track_insert_key ::\n                          (Animation :< cls, Object :< cls) =>\n                          cls ->\n                            Int -> Float -> Float -> Maybe Vector2 -> Maybe Vector2 -> IO Int\nbezier_track_insert_key cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       defaultedVariant VariantVector2 (V2 0 0) arg4,\n       defaultedVariant VariantVector2 (V2 0 0) arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_bezier_track_insert_key\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"bezier_track_insert_key\"\n           '[Int, Float, Float, Maybe Vector2, Maybe Vector2]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Animation.bezier_track_insert_key\n\n{-# NOINLINE bindAnimation_bezier_track_interpolate #-}\n\n-- | Returns the interpolated value at the given @time@ (in seconds). The @track_idx@ must be the index of a Bezier Track.\nbindAnimation_bezier_track_interpolate :: MethodBind\nbindAnimation_bezier_track_interpolate\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"bezier_track_interpolate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the interpolated value at the given @time@ (in seconds). The @track_idx@ must be the index of a Bezier Track.\nbezier_track_interpolate ::\n                           (Animation :< cls, Object :< cls) =>\n                           cls -> Int -> Float -> IO Float\nbezier_track_interpolate cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_bezier_track_interpolate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"bezier_track_interpolate\"\n           '[Int, Float]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Animation.bezier_track_interpolate\n\n{-# NOINLINE bindAnimation_bezier_track_set_key_in_handle #-}\n\n-- | Sets the in handle of the key identified by @key_idx@ to value @in_handle@. The @track_idx@ must be the index of a Bezier Track.\nbindAnimation_bezier_track_set_key_in_handle :: MethodBind\nbindAnimation_bezier_track_set_key_in_handle\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"bezier_track_set_key_in_handle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the in handle of the key identified by @key_idx@ to value @in_handle@. The @track_idx@ must be the index of a Bezier Track.\nbezier_track_set_key_in_handle ::\n                                 (Animation :< cls, Object :< cls) =>\n                                 cls -> Int -> Int -> Vector2 -> IO ()\nbezier_track_set_key_in_handle cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_bezier_track_set_key_in_handle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"bezier_track_set_key_in_handle\"\n           '[Int, Int, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.bezier_track_set_key_in_handle\n\n{-# NOINLINE bindAnimation_bezier_track_set_key_out_handle #-}\n\n-- | Sets the out handle of the key identified by @key_idx@ to value @out_handle@. The @track_idx@ must be the index of a Bezier Track.\nbindAnimation_bezier_track_set_key_out_handle :: MethodBind\nbindAnimation_bezier_track_set_key_out_handle\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"bezier_track_set_key_out_handle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the out handle of the key identified by @key_idx@ to value @out_handle@. The @track_idx@ must be the index of a Bezier Track.\nbezier_track_set_key_out_handle ::\n                                  (Animation :< cls, Object :< cls) =>\n                                  cls -> Int -> Int -> Vector2 -> IO ()\nbezier_track_set_key_out_handle cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimation_bezier_track_set_key_out_handle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"bezier_track_set_key_out_handle\"\n           '[Int, Int, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.bezier_track_set_key_out_handle\n\n{-# NOINLINE bindAnimation_bezier_track_set_key_value #-}\n\n-- | Sets the value of the key identified by @key_idx@ to the given value. The @track_idx@ must be the index of a Bezier Track.\nbindAnimation_bezier_track_set_key_value :: MethodBind\nbindAnimation_bezier_track_set_key_value\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"bezier_track_set_key_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the value of the key identified by @key_idx@ to the given value. The @track_idx@ must be the index of a Bezier Track.\nbezier_track_set_key_value ::\n                             (Animation :< cls, Object :< cls) =>\n                             cls -> Int -> Int -> Float -> IO ()\nbezier_track_set_key_value cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_bezier_track_set_key_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"bezier_track_set_key_value\"\n           '[Int, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.bezier_track_set_key_value\n\n{-# NOINLINE bindAnimation_clear #-}\n\n-- | Clear the animation (clear all tracks and reset all).\nbindAnimation_clear :: MethodBind\nbindAnimation_clear\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clear the animation (clear all tracks and reset all).\nclear :: (Animation :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_clear (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Animation.clear\n\n{-# NOINLINE bindAnimation_copy_track #-}\n\n-- | Adds a new track that is a copy of the given track from @to_animation@.\nbindAnimation_copy_track :: MethodBind\nbindAnimation_copy_track\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"copy_track\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new track that is a copy of the given track from @to_animation@.\ncopy_track ::\n             (Animation :< cls, Object :< cls) =>\n             cls -> Int -> Animation -> IO ()\ncopy_track cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_copy_track (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"copy_track\" '[Int, Animation]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.copy_track\n\n{-# NOINLINE bindAnimation_find_track #-}\n\n-- | Returns the index of the specified track. If the track is not found, return -1.\nbindAnimation_find_track :: MethodBind\nbindAnimation_find_track\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"find_track\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the index of the specified track. If the track is not found, return -1.\nfind_track ::\n             (Animation :< cls, Object :< cls) => cls -> NodePath -> IO Int\nfind_track cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_find_track (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"find_track\" '[NodePath] (IO Int)\n         where\n        nodeMethod = Godot.Core.Animation.find_track\n\n{-# NOINLINE bindAnimation_get_length #-}\n\n-- | The total length of the animation (in seconds).\n--   \t\t\t__Note:__ Length is not delimited by the last key, as this one may be before or after the end to ensure correct interpolation and looping.\nbindAnimation_get_length :: MethodBind\nbindAnimation_get_length\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"get_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The total length of the animation (in seconds).\n--   \t\t\t__Note:__ Length is not delimited by the last key, as this one may be before or after the end to ensure correct interpolation and looping.\nget_length :: (Animation :< cls, Object :< cls) => cls -> IO Float\nget_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_get_length (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"get_length\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Animation.get_length\n\n{-# NOINLINE bindAnimation_get_step #-}\n\n-- | The animation step value.\nbindAnimation_get_step :: MethodBind\nbindAnimation_get_step\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"get_step\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The animation step value.\nget_step :: (Animation :< cls, Object :< cls) => cls -> IO Float\nget_step cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_get_step (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"get_step\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Animation.get_step\n\n{-# NOINLINE bindAnimation_get_track_count #-}\n\n-- | Returns the amount of tracks in the animation.\nbindAnimation_get_track_count :: MethodBind\nbindAnimation_get_track_count\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"get_track_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the amount of tracks in the animation.\nget_track_count ::\n                  (Animation :< cls, Object :< cls) => cls -> IO Int\nget_track_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_get_track_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"get_track_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Animation.get_track_count\n\n{-# NOINLINE bindAnimation_has_loop #-}\n\n-- | A flag indicating that the animation must loop. This is uses for correct interpolation of animation cycles, and for hinting the player that it must restart the animation.\nbindAnimation_has_loop :: MethodBind\nbindAnimation_has_loop\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"has_loop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A flag indicating that the animation must loop. This is uses for correct interpolation of animation cycles, and for hinting the player that it must restart the animation.\nhas_loop :: (Animation :< cls, Object :< cls) => cls -> IO Bool\nhas_loop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_has_loop (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"has_loop\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Animation.has_loop\n\n{-# NOINLINE bindAnimation_method_track_get_key_indices #-}\n\n-- | Returns all the key indices of a method track, given a position and delta time.\nbindAnimation_method_track_get_key_indices :: MethodBind\nbindAnimation_method_track_get_key_indices\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"method_track_get_key_indices\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns all the key indices of a method track, given a position and delta time.\nmethod_track_get_key_indices ::\n                               (Animation :< cls, Object :< cls) =>\n                               cls -> Int -> Float -> Float -> IO PoolIntArray\nmethod_track_get_key_indices cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_method_track_get_key_indices\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"method_track_get_key_indices\"\n           '[Int, Float, Float]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.Animation.method_track_get_key_indices\n\n{-# NOINLINE bindAnimation_method_track_get_name #-}\n\n-- | Returns the method name of a method track.\nbindAnimation_method_track_get_name :: MethodBind\nbindAnimation_method_track_get_name\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"method_track_get_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the method name of a method track.\nmethod_track_get_name ::\n                        (Animation :< cls, Object :< cls) =>\n                        cls -> Int -> Int -> IO GodotString\nmethod_track_get_name cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_method_track_get_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"method_track_get_name\" '[Int, Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Animation.method_track_get_name\n\n{-# NOINLINE bindAnimation_method_track_get_params #-}\n\n-- | Returns the arguments values to be called on a method track for a given key in a given track.\nbindAnimation_method_track_get_params :: MethodBind\nbindAnimation_method_track_get_params\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"method_track_get_params\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the arguments values to be called on a method track for a given key in a given track.\nmethod_track_get_params ::\n                          (Animation :< cls, Object :< cls) => cls -> Int -> Int -> IO Array\nmethod_track_get_params cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_method_track_get_params\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"method_track_get_params\" '[Int, Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Animation.method_track_get_params\n\n{-# NOINLINE bindAnimation_remove_track #-}\n\n-- | Removes a track by specifying the track index.\nbindAnimation_remove_track :: MethodBind\nbindAnimation_remove_track\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"remove_track\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a track by specifying the track index.\nremove_track ::\n               (Animation :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_track cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_remove_track (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"remove_track\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Animation.remove_track\n\n{-# NOINLINE bindAnimation_set_length #-}\n\n-- | The total length of the animation (in seconds).\n--   \t\t\t__Note:__ Length is not delimited by the last key, as this one may be before or after the end to ensure correct interpolation and looping.\nbindAnimation_set_length :: MethodBind\nbindAnimation_set_length\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"set_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The total length of the animation (in seconds).\n--   \t\t\t__Note:__ Length is not delimited by the last key, as this one may be before or after the end to ensure correct interpolation and looping.\nset_length ::\n             (Animation :< cls, Object :< cls) => cls -> Float -> IO ()\nset_length cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_set_length (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"set_length\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Animation.set_length\n\n{-# NOINLINE bindAnimation_set_loop #-}\n\n-- | A flag indicating that the animation must loop. This is uses for correct interpolation of animation cycles, and for hinting the player that it must restart the animation.\nbindAnimation_set_loop :: MethodBind\nbindAnimation_set_loop\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"set_loop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A flag indicating that the animation must loop. This is uses for correct interpolation of animation cycles, and for hinting the player that it must restart the animation.\nset_loop ::\n           (Animation :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_loop cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_set_loop (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"set_loop\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Animation.set_loop\n\n{-# NOINLINE bindAnimation_set_step #-}\n\n-- | The animation step value.\nbindAnimation_set_step :: MethodBind\nbindAnimation_set_step\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"set_step\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The animation step value.\nset_step ::\n           (Animation :< cls, Object :< cls) => cls -> Float -> IO ()\nset_step cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_set_step (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"set_step\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Animation.set_step\n\n{-# NOINLINE bindAnimation_track_find_key #-}\n\n-- | Finds the key index by time in a given track. Optionally, only find it if the exact time is given.\nbindAnimation_track_find_key :: MethodBind\nbindAnimation_track_find_key\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_find_key\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Finds the key index by time in a given track. Optionally, only find it if the exact time is given.\ntrack_find_key ::\n                 (Animation :< cls, Object :< cls) =>\n                 cls -> Int -> Float -> Maybe Bool -> IO Int\ntrack_find_key cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool False) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_find_key (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_find_key\"\n           '[Int, Float, Maybe Bool]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Animation.track_find_key\n\n{-# NOINLINE bindAnimation_track_get_interpolation_loop_wrap #-}\n\n-- | Returns @true@ if the track at @idx@ wraps the interpolation loop. New tracks wrap the interpolation loop by default.\nbindAnimation_track_get_interpolation_loop_wrap :: MethodBind\nbindAnimation_track_get_interpolation_loop_wrap\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_get_interpolation_loop_wrap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the track at @idx@ wraps the interpolation loop. New tracks wrap the interpolation loop by default.\ntrack_get_interpolation_loop_wrap ::\n                                    (Animation :< cls, Object :< cls) => cls -> Int -> IO Bool\ntrack_get_interpolation_loop_wrap cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimation_track_get_interpolation_loop_wrap\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_get_interpolation_loop_wrap\"\n           '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Animation.track_get_interpolation_loop_wrap\n\n{-# NOINLINE bindAnimation_track_get_interpolation_type #-}\n\n-- | Returns the interpolation type of a given track.\nbindAnimation_track_get_interpolation_type :: MethodBind\nbindAnimation_track_get_interpolation_type\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_get_interpolation_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the interpolation type of a given track.\ntrack_get_interpolation_type ::\n                               (Animation :< cls, Object :< cls) => cls -> Int -> IO Int\ntrack_get_interpolation_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_get_interpolation_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_get_interpolation_type\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Animation.track_get_interpolation_type\n\n{-# NOINLINE bindAnimation_track_get_key_count #-}\n\n-- | Returns the amount of keys in a given track.\nbindAnimation_track_get_key_count :: MethodBind\nbindAnimation_track_get_key_count\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_get_key_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the amount of keys in a given track.\ntrack_get_key_count ::\n                      (Animation :< cls, Object :< cls) => cls -> Int -> IO Int\ntrack_get_key_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_get_key_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_get_key_count\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.Animation.track_get_key_count\n\n{-# NOINLINE bindAnimation_track_get_key_time #-}\n\n-- | Returns the time at which the key is located.\nbindAnimation_track_get_key_time :: MethodBind\nbindAnimation_track_get_key_time\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_get_key_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the time at which the key is located.\ntrack_get_key_time ::\n                     (Animation :< cls, Object :< cls) => cls -> Int -> Int -> IO Float\ntrack_get_key_time cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_get_key_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_get_key_time\" '[Int, Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Animation.track_get_key_time\n\n{-# NOINLINE bindAnimation_track_get_key_transition #-}\n\n-- | Returns the transition curve (easing) for a specific key (see the built-in math function @method @GDScript.ease@).\nbindAnimation_track_get_key_transition :: MethodBind\nbindAnimation_track_get_key_transition\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_get_key_transition\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the transition curve (easing) for a specific key (see the built-in math function @method @GDScript.ease@).\ntrack_get_key_transition ::\n                           (Animation :< cls, Object :< cls) => cls -> Int -> Int -> IO Float\ntrack_get_key_transition cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_get_key_transition\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_get_key_transition\"\n           '[Int, Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Animation.track_get_key_transition\n\n{-# NOINLINE bindAnimation_track_get_key_value #-}\n\n-- | Returns the value of a given key in a given track.\nbindAnimation_track_get_key_value :: MethodBind\nbindAnimation_track_get_key_value\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_get_key_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of a given key in a given track.\ntrack_get_key_value ::\n                      (Animation :< cls, Object :< cls) =>\n                      cls -> Int -> Int -> IO GodotVariant\ntrack_get_key_value cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_get_key_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_get_key_value\" '[Int, Int]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Animation.track_get_key_value\n\n{-# NOINLINE bindAnimation_track_get_path #-}\n\n-- | Gets the path of a track. For more information on the path format, see @method track_set_path@.\nbindAnimation_track_get_path :: MethodBind\nbindAnimation_track_get_path\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_get_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the path of a track. For more information on the path format, see @method track_set_path@.\ntrack_get_path ::\n                 (Animation :< cls, Object :< cls) => cls -> Int -> IO NodePath\ntrack_get_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_get_path (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_get_path\" '[Int] (IO NodePath)\n         where\n        nodeMethod = Godot.Core.Animation.track_get_path\n\n{-# NOINLINE bindAnimation_track_get_type #-}\n\n-- | Gets the type of a track.\nbindAnimation_track_get_type :: MethodBind\nbindAnimation_track_get_type\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_get_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the type of a track.\ntrack_get_type ::\n                 (Animation :< cls, Object :< cls) => cls -> Int -> IO Int\ntrack_get_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_get_type (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_get_type\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.Animation.track_get_type\n\n{-# NOINLINE bindAnimation_track_insert_key #-}\n\n-- | Insert a generic key in a given track.\nbindAnimation_track_insert_key :: MethodBind\nbindAnimation_track_insert_key\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_insert_key\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Insert a generic key in a given track.\ntrack_insert_key ::\n                   (Animation :< cls, Object :< cls) =>\n                   cls -> Int -> Float -> GodotVariant -> Maybe Float -> IO ()\ntrack_insert_key cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantReal (1)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_insert_key (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_insert_key\"\n           '[Int, Float, GodotVariant, Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.track_insert_key\n\n{-# NOINLINE bindAnimation_track_is_enabled #-}\n\n-- | Returns @true@ if the track at index @idx@ is enabled.\nbindAnimation_track_is_enabled :: MethodBind\nbindAnimation_track_is_enabled\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_is_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the track at index @idx@ is enabled.\ntrack_is_enabled ::\n                   (Animation :< cls, Object :< cls) => cls -> Int -> IO Bool\ntrack_is_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_is_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_is_enabled\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Animation.track_is_enabled\n\n{-# NOINLINE bindAnimation_track_is_imported #-}\n\n-- | Returns @true@ if the given track is imported. Else, return @false@.\nbindAnimation_track_is_imported :: MethodBind\nbindAnimation_track_is_imported\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_is_imported\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the given track is imported. Else, return @false@.\ntrack_is_imported ::\n                    (Animation :< cls, Object :< cls) => cls -> Int -> IO Bool\ntrack_is_imported cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_is_imported (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_is_imported\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Animation.track_is_imported\n\n{-# NOINLINE bindAnimation_track_move_down #-}\n\n-- | Moves a track down.\nbindAnimation_track_move_down :: MethodBind\nbindAnimation_track_move_down\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_move_down\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves a track down.\ntrack_move_down ::\n                  (Animation :< cls, Object :< cls) => cls -> Int -> IO ()\ntrack_move_down cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_move_down (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_move_down\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.track_move_down\n\n{-# NOINLINE bindAnimation_track_move_to #-}\n\n-- | Changes the index position of track @idx@ to the one defined in @to_idx@.\nbindAnimation_track_move_to :: MethodBind\nbindAnimation_track_move_to\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_move_to\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes the index position of track @idx@ to the one defined in @to_idx@.\ntrack_move_to ::\n                (Animation :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\ntrack_move_to cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_move_to (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_move_to\" '[Int, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.track_move_to\n\n{-# NOINLINE bindAnimation_track_move_up #-}\n\n-- | Moves a track up.\nbindAnimation_track_move_up :: MethodBind\nbindAnimation_track_move_up\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_move_up\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves a track up.\ntrack_move_up ::\n                (Animation :< cls, Object :< cls) => cls -> Int -> IO ()\ntrack_move_up cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_move_up (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_move_up\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Animation.track_move_up\n\n{-# NOINLINE bindAnimation_track_remove_key #-}\n\n-- | Removes a key by index in a given track.\nbindAnimation_track_remove_key :: MethodBind\nbindAnimation_track_remove_key\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_remove_key\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a key by index in a given track.\ntrack_remove_key ::\n                   (Animation :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\ntrack_remove_key cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_remove_key (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_remove_key\" '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.track_remove_key\n\n{-# NOINLINE bindAnimation_track_remove_key_at_position #-}\n\n-- | Removes a key by position (seconds) in a given track.\nbindAnimation_track_remove_key_at_position :: MethodBind\nbindAnimation_track_remove_key_at_position\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_remove_key_at_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a key by position (seconds) in a given track.\ntrack_remove_key_at_position ::\n                               (Animation :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\ntrack_remove_key_at_position cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_remove_key_at_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_remove_key_at_position\"\n           '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.track_remove_key_at_position\n\n{-# NOINLINE bindAnimation_track_set_enabled #-}\n\n-- | Enables/disables the given track. Tracks are enabled by default.\nbindAnimation_track_set_enabled :: MethodBind\nbindAnimation_track_set_enabled\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_set_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables/disables the given track. Tracks are enabled by default.\ntrack_set_enabled ::\n                    (Animation :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\ntrack_set_enabled cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_set_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_set_enabled\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.track_set_enabled\n\n{-# NOINLINE bindAnimation_track_set_imported #-}\n\n-- | Sets the given track as imported or not.\nbindAnimation_track_set_imported :: MethodBind\nbindAnimation_track_set_imported\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_set_imported\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the given track as imported or not.\ntrack_set_imported ::\n                     (Animation :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\ntrack_set_imported cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_set_imported\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_set_imported\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.track_set_imported\n\n{-# NOINLINE bindAnimation_track_set_interpolation_loop_wrap #-}\n\n-- | If @true@, the track at @idx@ wraps the interpolation loop.\nbindAnimation_track_set_interpolation_loop_wrap :: MethodBind\nbindAnimation_track_set_interpolation_loop_wrap\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_set_interpolation_loop_wrap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the track at @idx@ wraps the interpolation loop.\ntrack_set_interpolation_loop_wrap ::\n                                    (Animation :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\ntrack_set_interpolation_loop_wrap cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimation_track_set_interpolation_loop_wrap\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_set_interpolation_loop_wrap\"\n           '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.track_set_interpolation_loop_wrap\n\n{-# NOINLINE bindAnimation_track_set_interpolation_type #-}\n\n-- | Sets the interpolation type of a given track.\nbindAnimation_track_set_interpolation_type :: MethodBind\nbindAnimation_track_set_interpolation_type\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_set_interpolation_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the interpolation type of a given track.\ntrack_set_interpolation_type ::\n                               (Animation :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\ntrack_set_interpolation_type cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_set_interpolation_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_set_interpolation_type\"\n           '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.track_set_interpolation_type\n\n{-# NOINLINE bindAnimation_track_set_key_time #-}\n\n-- | Sets the time of an existing key.\nbindAnimation_track_set_key_time :: MethodBind\nbindAnimation_track_set_key_time\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_set_key_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the time of an existing key.\ntrack_set_key_time ::\n                     (Animation :< cls, Object :< cls) =>\n                     cls -> Int -> Int -> Float -> IO ()\ntrack_set_key_time cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_set_key_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_set_key_time\"\n           '[Int, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.track_set_key_time\n\n{-# NOINLINE bindAnimation_track_set_key_transition #-}\n\n-- | Sets the transition curve (easing) for a specific key (see the built-in math function @method @GDScript.ease@).\nbindAnimation_track_set_key_transition :: MethodBind\nbindAnimation_track_set_key_transition\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_set_key_transition\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the transition curve (easing) for a specific key (see the built-in math function @method @GDScript.ease@).\ntrack_set_key_transition ::\n                           (Animation :< cls, Object :< cls) =>\n                           cls -> Int -> Int -> Float -> IO ()\ntrack_set_key_transition cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_set_key_transition\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_set_key_transition\"\n           '[Int, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.track_set_key_transition\n\n{-# NOINLINE bindAnimation_track_set_key_value #-}\n\n-- | Sets the value of an existing key.\nbindAnimation_track_set_key_value :: MethodBind\nbindAnimation_track_set_key_value\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_set_key_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the value of an existing key.\ntrack_set_key_value ::\n                      (Animation :< cls, Object :< cls) =>\n                      cls -> Int -> Int -> GodotVariant -> IO ()\ntrack_set_key_value cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_set_key_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_set_key_value\"\n           '[Int, Int, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.track_set_key_value\n\n{-# NOINLINE bindAnimation_track_set_path #-}\n\n-- | Sets the path of a track. Paths must be valid scene-tree paths to a node, and must be specified starting from the parent node of the node that will reproduce the animation. Tracks that control properties or bones must append their name after the path, separated by @\":\"@.\n--   \t\t\t\tFor example, @\"character/skeleton:ankle\"@ or @\"character/mesh:transform/local\"@.\nbindAnimation_track_set_path :: MethodBind\nbindAnimation_track_set_path\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_set_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the path of a track. Paths must be valid scene-tree paths to a node, and must be specified starting from the parent node of the node that will reproduce the animation. Tracks that control properties or bones must append their name after the path, separated by @\":\"@.\n--   \t\t\t\tFor example, @\"character/skeleton:ankle\"@ or @\"character/mesh:transform/local\"@.\ntrack_set_path ::\n                 (Animation :< cls, Object :< cls) =>\n                 cls -> Int -> NodePath -> IO ()\ntrack_set_path cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_set_path (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_set_path\" '[Int, NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.track_set_path\n\n{-# NOINLINE bindAnimation_track_swap #-}\n\n-- | Swaps the track @idx@'s index position with the track @with_idx@.\nbindAnimation_track_swap :: MethodBind\nbindAnimation_track_swap\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"track_swap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Swaps the track @idx@'s index position with the track @with_idx@.\ntrack_swap ::\n             (Animation :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\ntrack_swap cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_track_swap (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"track_swap\" '[Int, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.track_swap\n\n{-# NOINLINE bindAnimation_transform_track_insert_key #-}\n\n-- | Insert a transform key for a transform track.\nbindAnimation_transform_track_insert_key :: MethodBind\nbindAnimation_transform_track_insert_key\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"transform_track_insert_key\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Insert a transform key for a transform track.\ntransform_track_insert_key ::\n                             (Animation :< cls, Object :< cls) =>\n                             cls -> Int -> Float -> Vector3 -> Quat -> Vector3 -> IO Int\ntransform_track_insert_key cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_transform_track_insert_key\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"transform_track_insert_key\"\n           '[Int, Float, Vector3, Quat, Vector3]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Animation.transform_track_insert_key\n\n{-# NOINLINE bindAnimation_transform_track_interpolate #-}\n\n-- | Returns the interpolated value of a transform track at a given time (in seconds). An array consisting of 3 elements: position (@Vector3@), rotation (@Quat@) and scale (@Vector3@).\nbindAnimation_transform_track_interpolate :: MethodBind\nbindAnimation_transform_track_interpolate\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"transform_track_interpolate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the interpolated value of a transform track at a given time (in seconds). An array consisting of 3 elements: position (@Vector3@), rotation (@Quat@) and scale (@Vector3@).\ntransform_track_interpolate ::\n                              (Animation :< cls, Object :< cls) =>\n                              cls -> Int -> Float -> IO Array\ntransform_track_interpolate cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_transform_track_interpolate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"transform_track_interpolate\"\n           '[Int, Float]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Animation.transform_track_interpolate\n\n{-# NOINLINE bindAnimation_value_track_get_key_indices #-}\n\n-- | Returns all the key indices of a value track, given a position and delta time.\nbindAnimation_value_track_get_key_indices :: MethodBind\nbindAnimation_value_track_get_key_indices\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"value_track_get_key_indices\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns all the key indices of a value track, given a position and delta time.\nvalue_track_get_key_indices ::\n                              (Animation :< cls, Object :< cls) =>\n                              cls -> Int -> Float -> Float -> IO PoolIntArray\nvalue_track_get_key_indices cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_value_track_get_key_indices\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"value_track_get_key_indices\"\n           '[Int, Float, Float]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.Animation.value_track_get_key_indices\n\n{-# NOINLINE bindAnimation_value_track_get_update_mode #-}\n\n-- | Returns the update mode of a value track.\nbindAnimation_value_track_get_update_mode :: MethodBind\nbindAnimation_value_track_get_update_mode\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"value_track_get_update_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the update mode of a value track.\nvalue_track_get_update_mode ::\n                              (Animation :< cls, Object :< cls) => cls -> Int -> IO Int\nvalue_track_get_update_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_value_track_get_update_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"value_track_get_update_mode\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Animation.value_track_get_update_mode\n\n{-# NOINLINE bindAnimation_value_track_set_update_mode #-}\n\n-- | Sets the update mode (see @enum UpdateMode@) of a value track.\nbindAnimation_value_track_set_update_mode :: MethodBind\nbindAnimation_value_track_set_update_mode\n  = unsafePerformIO $\n      withCString \"Animation\" $\n        \\ clsNamePtr ->\n          withCString \"value_track_set_update_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the update mode (see @enum UpdateMode@) of a value track.\nvalue_track_set_update_mode ::\n                              (Animation :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nvalue_track_set_update_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimation_value_track_set_update_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Animation \"value_track_set_update_mode\"\n           '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Animation.value_track_set_update_mode"
  },
  {
    "path": "src/Godot/Core/AnimationNode.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationNode\n       (Godot.Core.AnimationNode._FILTER_IGNORE,\n        Godot.Core.AnimationNode._FILTER_BLEND,\n        Godot.Core.AnimationNode._FILTER_PASS,\n        Godot.Core.AnimationNode._FILTER_STOP,\n        Godot.Core.AnimationNode.sig_removed_from_graph,\n        Godot.Core.AnimationNode.sig_tree_changed,\n        Godot.Core.AnimationNode._get_filters,\n        Godot.Core.AnimationNode._set_filters,\n        Godot.Core.AnimationNode.add_input,\n        Godot.Core.AnimationNode.blend_animation,\n        Godot.Core.AnimationNode.blend_input,\n        Godot.Core.AnimationNode.blend_node,\n        Godot.Core.AnimationNode.get_caption,\n        Godot.Core.AnimationNode.get_child_by_name,\n        Godot.Core.AnimationNode.get_child_nodes,\n        Godot.Core.AnimationNode.get_input_count,\n        Godot.Core.AnimationNode.get_input_name,\n        Godot.Core.AnimationNode.get_parameter,\n        Godot.Core.AnimationNode.get_parameter_default_value,\n        Godot.Core.AnimationNode.get_parameter_list,\n        Godot.Core.AnimationNode.has_filter,\n        Godot.Core.AnimationNode.is_filter_enabled,\n        Godot.Core.AnimationNode.is_path_filtered,\n        Godot.Core.AnimationNode.process,\n        Godot.Core.AnimationNode.remove_input,\n        Godot.Core.AnimationNode.set_filter_enabled,\n        Godot.Core.AnimationNode.set_filter_path,\n        Godot.Core.AnimationNode.set_parameter)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_FILTER_IGNORE :: Int\n_FILTER_IGNORE = 0\n\n_FILTER_BLEND :: Int\n_FILTER_BLEND = 3\n\n_FILTER_PASS :: Int\n_FILTER_PASS = 1\n\n_FILTER_STOP :: Int\n_FILTER_STOP = 2\n\n-- | Called when the node was removed from the graph.\nsig_removed_from_graph ::\n                       Godot.Internal.Dispatch.Signal AnimationNode\nsig_removed_from_graph\n  = Godot.Internal.Dispatch.Signal \"removed_from_graph\"\n\ninstance NodeSignal AnimationNode \"removed_from_graph\" '[]\n\n-- | Emitted by nodes that inherit from this class and that have an internal tree when one of their nodes changes. The nodes that emit this signal are @AnimationNodeBlendSpace1D@, @AnimationNodeBlendSpace2D@, @AnimationNodeStateMachine@, and @AnimationNodeBlendTree@.\nsig_tree_changed :: Godot.Internal.Dispatch.Signal AnimationNode\nsig_tree_changed = Godot.Internal.Dispatch.Signal \"tree_changed\"\n\ninstance NodeSignal AnimationNode \"tree_changed\" '[]\n\ninstance NodeProperty AnimationNode \"filter_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_filter_enabled, wrapDroppingSetter set_filter_enabled,\n             Nothing)\n\ninstance NodeProperty AnimationNode \"filters\" Array 'False where\n        nodeProperty\n          = (_get_filters, wrapDroppingSetter _set_filters, Nothing)\n\n{-# NOINLINE bindAnimationNode__get_filters #-}\n\nbindAnimationNode__get_filters :: MethodBind\nbindAnimationNode__get_filters\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"_get_filters\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_filters ::\n               (AnimationNode :< cls, Object :< cls) => cls -> IO Array\n_get_filters cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode__get_filters (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"_get_filters\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.AnimationNode._get_filters\n\n{-# NOINLINE bindAnimationNode__set_filters #-}\n\nbindAnimationNode__set_filters :: MethodBind\nbindAnimationNode__set_filters\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"_set_filters\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_filters ::\n               (AnimationNode :< cls, Object :< cls) => cls -> Array -> IO ()\n_set_filters cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode__set_filters (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"_set_filters\" '[Array] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNode._set_filters\n\n{-# NOINLINE bindAnimationNode_add_input #-}\n\n-- | Adds an input to the node. This is only useful for nodes created for use in an @AnimationNodeBlendTree@.\nbindAnimationNode_add_input :: MethodBind\nbindAnimationNode_add_input\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"add_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an input to the node. This is only useful for nodes created for use in an @AnimationNodeBlendTree@.\nadd_input ::\n            (AnimationNode :< cls, Object :< cls) =>\n            cls -> GodotString -> IO ()\nadd_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_add_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"add_input\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNode.add_input\n\n{-# NOINLINE bindAnimationNode_blend_animation #-}\n\n-- | Blend an animation by @blend@ amount (name must be valid in the linked @AnimationPlayer@). A @time@ and @delta@ may be passed, as well as whether @seek@ happened.\nbindAnimationNode_blend_animation :: MethodBind\nbindAnimationNode_blend_animation\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"blend_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Blend an animation by @blend@ amount (name must be valid in the linked @AnimationPlayer@). A @time@ and @delta@ may be passed, as well as whether @seek@ happened.\nblend_animation ::\n                  (AnimationNode :< cls, Object :< cls) =>\n                  cls -> GodotString -> Float -> Float -> Bool -> Float -> IO ()\nblend_animation cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_blend_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"blend_animation\"\n           '[GodotString, Float, Float, Bool, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNode.blend_animation\n\n{-# NOINLINE bindAnimationNode_blend_input #-}\n\n-- | Blend an input. This is only useful for nodes created for an @AnimationNodeBlendTree@. The @time@ parameter is a relative delta, unless @seek@ is @true@, in which case it is absolute. A filter mode may be optionally passed (see @enum FilterAction@ for options).\nbindAnimationNode_blend_input :: MethodBind\nbindAnimationNode_blend_input\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"blend_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Blend an input. This is only useful for nodes created for an @AnimationNodeBlendTree@. The @time@ parameter is a relative delta, unless @seek@ is @true@, in which case it is absolute. A filter mode may be optionally passed (see @enum FilterAction@ for options).\nblend_input ::\n              (AnimationNode :< cls, Object :< cls) =>\n              cls ->\n                Int ->\n                  Float -> Bool -> Float -> Maybe Int -> Maybe Bool -> IO Float\nblend_input cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       maybe (VariantInt (0)) toVariant arg5,\n       maybe (VariantBool True) toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_blend_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"blend_input\"\n           '[Int, Float, Bool, Float, Maybe Int, Maybe Bool]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AnimationNode.blend_input\n\n{-# NOINLINE bindAnimationNode_blend_node #-}\n\n-- | Blend another animation node (in case this node contains children animation nodes). This function is only useful if you inherit from @AnimationRootNode@ instead, else editors will not display your node for addition.\nbindAnimationNode_blend_node :: MethodBind\nbindAnimationNode_blend_node\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"blend_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Blend another animation node (in case this node contains children animation nodes). This function is only useful if you inherit from @AnimationRootNode@ instead, else editors will not display your node for addition.\nblend_node ::\n             (AnimationNode :< cls, Object :< cls) =>\n             cls ->\n               GodotString ->\n                 AnimationNode ->\n                   Float -> Bool -> Float -> Maybe Int -> Maybe Bool -> IO Float\nblend_node cls arg1 arg2 arg3 arg4 arg5 arg6 arg7\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, maybe (VariantInt (0)) toVariant arg6,\n       maybe (VariantBool True) toVariant arg7]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_blend_node (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"blend_node\"\n           '[GodotString, AnimationNode, Float, Bool, Float, Maybe Int,\n             Maybe Bool]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AnimationNode.blend_node\n\n{-# NOINLINE bindAnimationNode_get_caption #-}\n\n-- | Gets the text caption for this node (used by some editors).\nbindAnimationNode_get_caption :: MethodBind\nbindAnimationNode_get_caption\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_caption\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the text caption for this node (used by some editors).\nget_caption ::\n              (AnimationNode :< cls, Object :< cls) => cls -> IO GodotString\nget_caption cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_get_caption (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"get_caption\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimationNode.get_caption\n\n{-# NOINLINE bindAnimationNode_get_child_by_name #-}\n\n-- | Gets a child node by index (used by editors inheriting from @AnimationRootNode@).\nbindAnimationNode_get_child_by_name :: MethodBind\nbindAnimationNode_get_child_by_name\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_child_by_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a child node by index (used by editors inheriting from @AnimationRootNode@).\nget_child_by_name ::\n                    (AnimationNode :< cls, Object :< cls) =>\n                    cls -> GodotString -> IO Object\nget_child_by_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_get_child_by_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"get_child_by_name\"\n           '[GodotString]\n           (IO Object)\n         where\n        nodeMethod = Godot.Core.AnimationNode.get_child_by_name\n\n{-# NOINLINE bindAnimationNode_get_child_nodes #-}\n\n-- | Gets all children nodes in order as a @name: node@ dictionary. Only useful when inheriting @AnimationRootNode@.\nbindAnimationNode_get_child_nodes :: MethodBind\nbindAnimationNode_get_child_nodes\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_child_nodes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets all children nodes in order as a @name: node@ dictionary. Only useful when inheriting @AnimationRootNode@.\nget_child_nodes ::\n                  (AnimationNode :< cls, Object :< cls) => cls -> IO Dictionary\nget_child_nodes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_get_child_nodes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"get_child_nodes\" '[]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.AnimationNode.get_child_nodes\n\n{-# NOINLINE bindAnimationNode_get_input_count #-}\n\n-- | Amount of inputs in this node, only useful for nodes that go into @AnimationNodeBlendTree@.\nbindAnimationNode_get_input_count :: MethodBind\nbindAnimationNode_get_input_count\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_input_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of inputs in this node, only useful for nodes that go into @AnimationNodeBlendTree@.\nget_input_count ::\n                  (AnimationNode :< cls, Object :< cls) => cls -> IO Int\nget_input_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_get_input_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"get_input_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.AnimationNode.get_input_count\n\n{-# NOINLINE bindAnimationNode_get_input_name #-}\n\n-- | Gets the name of an input by index.\nbindAnimationNode_get_input_name :: MethodBind\nbindAnimationNode_get_input_name\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_input_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the name of an input by index.\nget_input_name ::\n                 (AnimationNode :< cls, Object :< cls) =>\n                 cls -> Int -> IO GodotString\nget_input_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_get_input_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"get_input_name\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimationNode.get_input_name\n\n{-# NOINLINE bindAnimationNode_get_parameter #-}\n\n-- | Gets the value of a parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees.\nbindAnimationNode_get_parameter :: MethodBind\nbindAnimationNode_get_parameter\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_parameter\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the value of a parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees.\nget_parameter ::\n                (AnimationNode :< cls, Object :< cls) =>\n                cls -> GodotString -> IO GodotVariant\nget_parameter cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_get_parameter (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"get_parameter\" '[GodotString]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.AnimationNode.get_parameter\n\n{-# NOINLINE bindAnimationNode_get_parameter_default_value #-}\n\n-- | Gets the default value of a parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees.\nbindAnimationNode_get_parameter_default_value :: MethodBind\nbindAnimationNode_get_parameter_default_value\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_parameter_default_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the default value of a parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees.\nget_parameter_default_value ::\n                              (AnimationNode :< cls, Object :< cls) =>\n                              cls -> GodotString -> IO GodotVariant\nget_parameter_default_value cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNode_get_parameter_default_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"get_parameter_default_value\"\n           '[GodotString]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.AnimationNode.get_parameter_default_value\n\n{-# NOINLINE bindAnimationNode_get_parameter_list #-}\n\n-- | Gets the property information for parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees. Format is similar to @method Object.get_property_list@.\nbindAnimationNode_get_parameter_list :: MethodBind\nbindAnimationNode_get_parameter_list\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_parameter_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the property information for parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees. Format is similar to @method Object.get_property_list@.\nget_parameter_list ::\n                     (AnimationNode :< cls, Object :< cls) => cls -> IO Array\nget_parameter_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_get_parameter_list\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"get_parameter_list\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.AnimationNode.get_parameter_list\n\n{-# NOINLINE bindAnimationNode_has_filter #-}\n\n-- | Returns @true@ whether you want the blend tree editor to display filter editing on this node.\nbindAnimationNode_has_filter :: MethodBind\nbindAnimationNode_has_filter\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"has_filter\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ whether you want the blend tree editor to display filter editing on this node.\nhas_filter ::\n             (AnimationNode :< cls, Object :< cls) => cls -> IO GodotString\nhas_filter cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_has_filter (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"has_filter\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimationNode.has_filter\n\n{-# NOINLINE bindAnimationNode_is_filter_enabled #-}\n\n-- | If @true@, filtering is enabled.\nbindAnimationNode_is_filter_enabled :: MethodBind\nbindAnimationNode_is_filter_enabled\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"is_filter_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, filtering is enabled.\nis_filter_enabled ::\n                    (AnimationNode :< cls, Object :< cls) => cls -> IO Bool\nis_filter_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_is_filter_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"is_filter_enabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimationNode.is_filter_enabled\n\n{-# NOINLINE bindAnimationNode_is_path_filtered #-}\n\n-- | Returns @true@ whether a given path is filtered.\nbindAnimationNode_is_path_filtered :: MethodBind\nbindAnimationNode_is_path_filtered\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"is_path_filtered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ whether a given path is filtered.\nis_path_filtered ::\n                   (AnimationNode :< cls, Object :< cls) => cls -> NodePath -> IO Bool\nis_path_filtered cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_is_path_filtered\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"is_path_filtered\" '[NodePath]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimationNode.is_path_filtered\n\n{-# NOINLINE bindAnimationNode_process #-}\n\n-- | User-defined callback called when a custom node is processed. The @time@ parameter is a relative delta, unless @seek@ is @true@, in which case it is absolute.\n--   \t\t\t\tHere, call the @method blend_input@, @method blend_node@ or @method blend_animation@ functions. You can also use @method get_parameter@ and @method set_parameter@ to modify local memory.\n--   \t\t\t\tThis function should return the time left for the current animation to finish (if unsure, pass the value from the main blend being called).\nbindAnimationNode_process :: MethodBind\nbindAnimationNode_process\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"process\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | User-defined callback called when a custom node is processed. The @time@ parameter is a relative delta, unless @seek@ is @true@, in which case it is absolute.\n--   \t\t\t\tHere, call the @method blend_input@, @method blend_node@ or @method blend_animation@ functions. You can also use @method get_parameter@ and @method set_parameter@ to modify local memory.\n--   \t\t\t\tThis function should return the time left for the current animation to finish (if unsure, pass the value from the main blend being called).\nprocess ::\n          (AnimationNode :< cls, Object :< cls) =>\n          cls -> Float -> Bool -> IO ()\nprocess cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_process (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"process\" '[Float, Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNode.process\n\n{-# NOINLINE bindAnimationNode_remove_input #-}\n\n-- | Removes an input, call this only when inactive.\nbindAnimationNode_remove_input :: MethodBind\nbindAnimationNode_remove_input\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"remove_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes an input, call this only when inactive.\nremove_input ::\n               (AnimationNode :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_remove_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"remove_input\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNode.remove_input\n\n{-# NOINLINE bindAnimationNode_set_filter_enabled #-}\n\n-- | If @true@, filtering is enabled.\nbindAnimationNode_set_filter_enabled :: MethodBind\nbindAnimationNode_set_filter_enabled\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"set_filter_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, filtering is enabled.\nset_filter_enabled ::\n                     (AnimationNode :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_filter_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_set_filter_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"set_filter_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNode.set_filter_enabled\n\n{-# NOINLINE bindAnimationNode_set_filter_path #-}\n\n-- | Adds or removes a path for the filter.\nbindAnimationNode_set_filter_path :: MethodBind\nbindAnimationNode_set_filter_path\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"set_filter_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds or removes a path for the filter.\nset_filter_path ::\n                  (AnimationNode :< cls, Object :< cls) =>\n                  cls -> NodePath -> Bool -> IO ()\nset_filter_path cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_set_filter_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"set_filter_path\"\n           '[NodePath, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNode.set_filter_path\n\n{-# NOINLINE bindAnimationNode_set_parameter #-}\n\n-- | Sets a custom parameter. These are used as local storage, because resources can be reused across the tree or scenes.\nbindAnimationNode_set_parameter :: MethodBind\nbindAnimationNode_set_parameter\n  = unsafePerformIO $\n      withCString \"AnimationNode\" $\n        \\ clsNamePtr ->\n          withCString \"set_parameter\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a custom parameter. These are used as local storage, because resources can be reused across the tree or scenes.\nset_parameter ::\n                (AnimationNode :< cls, Object :< cls) =>\n                cls -> GodotString -> GodotVariant -> IO ()\nset_parameter cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNode_set_parameter (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNode \"set_parameter\"\n           '[GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNode.set_parameter"
  },
  {
    "path": "src/Godot/Core/AnimationNodeAdd2.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationNodeAdd2\n       (Godot.Core.AnimationNodeAdd2.is_using_sync,\n        Godot.Core.AnimationNodeAdd2.set_use_sync)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AnimationNode()\n\ninstance NodeProperty AnimationNodeAdd2 \"sync\" Bool 'False where\n        nodeProperty\n          = (is_using_sync, wrapDroppingSetter set_use_sync, Nothing)\n\n{-# NOINLINE bindAnimationNodeAdd2_is_using_sync #-}\n\n-- | If @true@, sets the @optimization@ to @false@ when calling @method AnimationNode.blend_input@, forcing the blended animations to update every frame.\nbindAnimationNodeAdd2_is_using_sync :: MethodBind\nbindAnimationNodeAdd2_is_using_sync\n  = unsafePerformIO $\n      withCString \"AnimationNodeAdd2\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_sync\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, sets the @optimization@ to @false@ when calling @method AnimationNode.blend_input@, forcing the blended animations to update every frame.\nis_using_sync ::\n                (AnimationNodeAdd2 :< cls, Object :< cls) => cls -> IO Bool\nis_using_sync cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeAdd2_is_using_sync\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeAdd2 \"is_using_sync\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimationNodeAdd2.is_using_sync\n\n{-# NOINLINE bindAnimationNodeAdd2_set_use_sync #-}\n\n-- | If @true@, sets the @optimization@ to @false@ when calling @method AnimationNode.blend_input@, forcing the blended animations to update every frame.\nbindAnimationNodeAdd2_set_use_sync :: MethodBind\nbindAnimationNodeAdd2_set_use_sync\n  = unsafePerformIO $\n      withCString \"AnimationNodeAdd2\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_sync\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, sets the @optimization@ to @false@ when calling @method AnimationNode.blend_input@, forcing the blended animations to update every frame.\nset_use_sync ::\n               (AnimationNodeAdd2 :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_sync cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeAdd2_set_use_sync\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeAdd2 \"set_use_sync\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeAdd2.set_use_sync"
  },
  {
    "path": "src/Godot/Core/AnimationNodeAdd3.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationNodeAdd3\n       (Godot.Core.AnimationNodeAdd3.is_using_sync,\n        Godot.Core.AnimationNodeAdd3.set_use_sync)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AnimationNode()\n\ninstance NodeProperty AnimationNodeAdd3 \"sync\" Bool 'False where\n        nodeProperty\n          = (is_using_sync, wrapDroppingSetter set_use_sync, Nothing)\n\n{-# NOINLINE bindAnimationNodeAdd3_is_using_sync #-}\n\n-- | If @true@, sets the @optimization@ to @false@ when calling @method AnimationNode.blend_input@, forcing the blended animations to update every frame.\nbindAnimationNodeAdd3_is_using_sync :: MethodBind\nbindAnimationNodeAdd3_is_using_sync\n  = unsafePerformIO $\n      withCString \"AnimationNodeAdd3\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_sync\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, sets the @optimization@ to @false@ when calling @method AnimationNode.blend_input@, forcing the blended animations to update every frame.\nis_using_sync ::\n                (AnimationNodeAdd3 :< cls, Object :< cls) => cls -> IO Bool\nis_using_sync cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeAdd3_is_using_sync\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeAdd3 \"is_using_sync\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimationNodeAdd3.is_using_sync\n\n{-# NOINLINE bindAnimationNodeAdd3_set_use_sync #-}\n\n-- | If @true@, sets the @optimization@ to @false@ when calling @method AnimationNode.blend_input@, forcing the blended animations to update every frame.\nbindAnimationNodeAdd3_set_use_sync :: MethodBind\nbindAnimationNodeAdd3_set_use_sync\n  = unsafePerformIO $\n      withCString \"AnimationNodeAdd3\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_sync\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, sets the @optimization@ to @false@ when calling @method AnimationNode.blend_input@, forcing the blended animations to update every frame.\nset_use_sync ::\n               (AnimationNodeAdd3 :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_sync cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeAdd3_set_use_sync\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeAdd3 \"set_use_sync\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeAdd3.set_use_sync"
  },
  {
    "path": "src/Godot/Core/AnimationNodeAnimation.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationNodeAnimation\n       (Godot.Core.AnimationNodeAnimation.get_animation,\n        Godot.Core.AnimationNodeAnimation.set_animation)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AnimationRootNode()\n\ninstance NodeProperty AnimationNodeAnimation \"animation\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_animation, wrapDroppingSetter set_animation, Nothing)\n\n{-# NOINLINE bindAnimationNodeAnimation_get_animation #-}\n\n-- | Animation to use as an output. It is one of the animations provided by @AnimationTree.anim_player@.\nbindAnimationNodeAnimation_get_animation :: MethodBind\nbindAnimationNodeAnimation_get_animation\n  = unsafePerformIO $\n      withCString \"AnimationNodeAnimation\" $\n        \\ clsNamePtr ->\n          withCString \"get_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Animation to use as an output. It is one of the animations provided by @AnimationTree.anim_player@.\nget_animation ::\n                (AnimationNodeAnimation :< cls, Object :< cls) =>\n                cls -> IO GodotString\nget_animation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeAnimation_get_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeAnimation \"get_animation\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimationNodeAnimation.get_animation\n\n{-# NOINLINE bindAnimationNodeAnimation_set_animation #-}\n\n-- | Animation to use as an output. It is one of the animations provided by @AnimationTree.anim_player@.\nbindAnimationNodeAnimation_set_animation :: MethodBind\nbindAnimationNodeAnimation_set_animation\n  = unsafePerformIO $\n      withCString \"AnimationNodeAnimation\" $\n        \\ clsNamePtr ->\n          withCString \"set_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Animation to use as an output. It is one of the animations provided by @AnimationTree.anim_player@.\nset_animation ::\n                (AnimationNodeAnimation :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\nset_animation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeAnimation_set_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeAnimation \"set_animation\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeAnimation.set_animation"
  },
  {
    "path": "src/Godot/Core/AnimationNodeBlend2.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationNodeBlend2\n       (Godot.Core.AnimationNodeBlend2.is_using_sync,\n        Godot.Core.AnimationNodeBlend2.set_use_sync)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AnimationNode()\n\ninstance NodeProperty AnimationNodeBlend2 \"sync\" Bool 'False where\n        nodeProperty\n          = (is_using_sync, wrapDroppingSetter set_use_sync, Nothing)\n\n{-# NOINLINE bindAnimationNodeBlend2_is_using_sync #-}\n\n-- | If @true@, sets the @optimization@ to @false@ when calling @method AnimationNode.blend_input@, forcing the blended animations to update every frame.\nbindAnimationNodeBlend2_is_using_sync :: MethodBind\nbindAnimationNodeBlend2_is_using_sync\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlend2\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_sync\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, sets the @optimization@ to @false@ when calling @method AnimationNode.blend_input@, forcing the blended animations to update every frame.\nis_using_sync ::\n                (AnimationNodeBlend2 :< cls, Object :< cls) => cls -> IO Bool\nis_using_sync cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlend2_is_using_sync\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlend2 \"is_using_sync\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlend2.is_using_sync\n\n{-# NOINLINE bindAnimationNodeBlend2_set_use_sync #-}\n\n-- | If @true@, sets the @optimization@ to @false@ when calling @method AnimationNode.blend_input@, forcing the blended animations to update every frame.\nbindAnimationNodeBlend2_set_use_sync :: MethodBind\nbindAnimationNodeBlend2_set_use_sync\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlend2\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_sync\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, sets the @optimization@ to @false@ when calling @method AnimationNode.blend_input@, forcing the blended animations to update every frame.\nset_use_sync ::\n               (AnimationNodeBlend2 :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_sync cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlend2_set_use_sync\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlend2 \"set_use_sync\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlend2.set_use_sync"
  },
  {
    "path": "src/Godot/Core/AnimationNodeBlend3.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationNodeBlend3\n       (Godot.Core.AnimationNodeBlend3.is_using_sync,\n        Godot.Core.AnimationNodeBlend3.set_use_sync)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AnimationNode()\n\ninstance NodeProperty AnimationNodeBlend3 \"sync\" Bool 'False where\n        nodeProperty\n          = (is_using_sync, wrapDroppingSetter set_use_sync, Nothing)\n\n{-# NOINLINE bindAnimationNodeBlend3_is_using_sync #-}\n\n-- | If @true@, sets the @optimization@ to @false@ when calling @method AnimationNode.blend_input@, forcing the blended animations to update every frame.\nbindAnimationNodeBlend3_is_using_sync :: MethodBind\nbindAnimationNodeBlend3_is_using_sync\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlend3\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_sync\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, sets the @optimization@ to @false@ when calling @method AnimationNode.blend_input@, forcing the blended animations to update every frame.\nis_using_sync ::\n                (AnimationNodeBlend3 :< cls, Object :< cls) => cls -> IO Bool\nis_using_sync cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlend3_is_using_sync\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlend3 \"is_using_sync\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlend3.is_using_sync\n\n{-# NOINLINE bindAnimationNodeBlend3_set_use_sync #-}\n\n-- | If @true@, sets the @optimization@ to @false@ when calling @method AnimationNode.blend_input@, forcing the blended animations to update every frame.\nbindAnimationNodeBlend3_set_use_sync :: MethodBind\nbindAnimationNodeBlend3_set_use_sync\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlend3\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_sync\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, sets the @optimization@ to @false@ when calling @method AnimationNode.blend_input@, forcing the blended animations to update every frame.\nset_use_sync ::\n               (AnimationNodeBlend3 :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_sync cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlend3_set_use_sync\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlend3 \"set_use_sync\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlend3.set_use_sync"
  },
  {
    "path": "src/Godot/Core/AnimationNodeBlendSpace1D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationNodeBlendSpace1D\n       (Godot.Core.AnimationNodeBlendSpace1D._add_blend_point,\n        Godot.Core.AnimationNodeBlendSpace1D._tree_changed,\n        Godot.Core.AnimationNodeBlendSpace1D.add_blend_point,\n        Godot.Core.AnimationNodeBlendSpace1D.get_blend_point_count,\n        Godot.Core.AnimationNodeBlendSpace1D.get_blend_point_node,\n        Godot.Core.AnimationNodeBlendSpace1D.get_blend_point_position,\n        Godot.Core.AnimationNodeBlendSpace1D.get_max_space,\n        Godot.Core.AnimationNodeBlendSpace1D.get_min_space,\n        Godot.Core.AnimationNodeBlendSpace1D.get_snap,\n        Godot.Core.AnimationNodeBlendSpace1D.get_value_label,\n        Godot.Core.AnimationNodeBlendSpace1D.remove_blend_point,\n        Godot.Core.AnimationNodeBlendSpace1D.set_blend_point_node,\n        Godot.Core.AnimationNodeBlendSpace1D.set_blend_point_position,\n        Godot.Core.AnimationNodeBlendSpace1D.set_max_space,\n        Godot.Core.AnimationNodeBlendSpace1D.set_min_space,\n        Godot.Core.AnimationNodeBlendSpace1D.set_snap,\n        Godot.Core.AnimationNodeBlendSpace1D.set_value_label)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AnimationRootNode()\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_0/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_blend_point_node,\n             wrapIndexedSetter 0 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D \"blend_point_0/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_blend_point_position,\n             wrapIndexedSetter 0 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_1/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_blend_point_node,\n             wrapIndexedSetter 1 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D \"blend_point_1/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_blend_point_position,\n             wrapIndexedSetter 1 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_10/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_blend_point_node,\n             wrapIndexedSetter 10 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_10/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_blend_point_position,\n             wrapIndexedSetter 10 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_11/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_blend_point_node,\n             wrapIndexedSetter 11 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_11/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_blend_point_position,\n             wrapIndexedSetter 11 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_12/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 12 get_blend_point_node,\n             wrapIndexedSetter 12 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_12/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 12 get_blend_point_position,\n             wrapIndexedSetter 12 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_13/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 13 get_blend_point_node,\n             wrapIndexedSetter 13 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_13/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 13 get_blend_point_position,\n             wrapIndexedSetter 13 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_14/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 14 get_blend_point_node,\n             wrapIndexedSetter 14 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_14/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 14 get_blend_point_position,\n             wrapIndexedSetter 14 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_15/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 15 get_blend_point_node,\n             wrapIndexedSetter 15 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_15/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 15 get_blend_point_position,\n             wrapIndexedSetter 15 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_16/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 16 get_blend_point_node,\n             wrapIndexedSetter 16 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_16/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 16 get_blend_point_position,\n             wrapIndexedSetter 16 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_17/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 17 get_blend_point_node,\n             wrapIndexedSetter 17 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_17/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 17 get_blend_point_position,\n             wrapIndexedSetter 17 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_18/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 18 get_blend_point_node,\n             wrapIndexedSetter 18 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_18/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 18 get_blend_point_position,\n             wrapIndexedSetter 18 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_19/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 19 get_blend_point_node,\n             wrapIndexedSetter 19 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_19/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 19 get_blend_point_position,\n             wrapIndexedSetter 19 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_2/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_blend_point_node,\n             wrapIndexedSetter 2 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D \"blend_point_2/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_blend_point_position,\n             wrapIndexedSetter 2 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_20/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 20 get_blend_point_node,\n             wrapIndexedSetter 20 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_20/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 20 get_blend_point_position,\n             wrapIndexedSetter 20 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_21/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 21 get_blend_point_node,\n             wrapIndexedSetter 21 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_21/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 21 get_blend_point_position,\n             wrapIndexedSetter 21 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_22/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 22 get_blend_point_node,\n             wrapIndexedSetter 22 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_22/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 22 get_blend_point_position,\n             wrapIndexedSetter 22 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_23/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 23 get_blend_point_node,\n             wrapIndexedSetter 23 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_23/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 23 get_blend_point_position,\n             wrapIndexedSetter 23 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_24/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 24 get_blend_point_node,\n             wrapIndexedSetter 24 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_24/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 24 get_blend_point_position,\n             wrapIndexedSetter 24 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_25/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 25 get_blend_point_node,\n             wrapIndexedSetter 25 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_25/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 25 get_blend_point_position,\n             wrapIndexedSetter 25 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_26/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 26 get_blend_point_node,\n             wrapIndexedSetter 26 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_26/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 26 get_blend_point_position,\n             wrapIndexedSetter 26 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_27/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 27 get_blend_point_node,\n             wrapIndexedSetter 27 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_27/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 27 get_blend_point_position,\n             wrapIndexedSetter 27 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_28/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 28 get_blend_point_node,\n             wrapIndexedSetter 28 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_28/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 28 get_blend_point_position,\n             wrapIndexedSetter 28 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_29/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 29 get_blend_point_node,\n             wrapIndexedSetter 29 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_29/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 29 get_blend_point_position,\n             wrapIndexedSetter 29 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_3/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_blend_point_node,\n             wrapIndexedSetter 3 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D \"blend_point_3/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_blend_point_position,\n             wrapIndexedSetter 3 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_30/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 30 get_blend_point_node,\n             wrapIndexedSetter 30 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_30/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 30 get_blend_point_position,\n             wrapIndexedSetter 30 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_31/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 31 get_blend_point_node,\n             wrapIndexedSetter 31 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_31/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 31 get_blend_point_position,\n             wrapIndexedSetter 31 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_32/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 32 get_blend_point_node,\n             wrapIndexedSetter 32 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_32/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 32 get_blend_point_position,\n             wrapIndexedSetter 32 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_33/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 33 get_blend_point_node,\n             wrapIndexedSetter 33 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_33/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 33 get_blend_point_position,\n             wrapIndexedSetter 33 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_34/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 34 get_blend_point_node,\n             wrapIndexedSetter 34 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_34/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 34 get_blend_point_position,\n             wrapIndexedSetter 34 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_35/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 35 get_blend_point_node,\n             wrapIndexedSetter 35 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_35/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 35 get_blend_point_position,\n             wrapIndexedSetter 35 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_36/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 36 get_blend_point_node,\n             wrapIndexedSetter 36 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_36/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 36 get_blend_point_position,\n             wrapIndexedSetter 36 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_37/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 37 get_blend_point_node,\n             wrapIndexedSetter 37 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_37/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 37 get_blend_point_position,\n             wrapIndexedSetter 37 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_38/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 38 get_blend_point_node,\n             wrapIndexedSetter 38 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_38/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 38 get_blend_point_position,\n             wrapIndexedSetter 38 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_39/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 39 get_blend_point_node,\n             wrapIndexedSetter 39 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_39/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 39 get_blend_point_position,\n             wrapIndexedSetter 39 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_4/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_blend_point_node,\n             wrapIndexedSetter 4 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D \"blend_point_4/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_blend_point_position,\n             wrapIndexedSetter 4 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_40/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 40 get_blend_point_node,\n             wrapIndexedSetter 40 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_40/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 40 get_blend_point_position,\n             wrapIndexedSetter 40 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_41/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 41 get_blend_point_node,\n             wrapIndexedSetter 41 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_41/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 41 get_blend_point_position,\n             wrapIndexedSetter 41 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_42/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 42 get_blend_point_node,\n             wrapIndexedSetter 42 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_42/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 42 get_blend_point_position,\n             wrapIndexedSetter 42 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_43/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 43 get_blend_point_node,\n             wrapIndexedSetter 43 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_43/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 43 get_blend_point_position,\n             wrapIndexedSetter 43 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_44/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 44 get_blend_point_node,\n             wrapIndexedSetter 44 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_44/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 44 get_blend_point_position,\n             wrapIndexedSetter 44 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_45/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 45 get_blend_point_node,\n             wrapIndexedSetter 45 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_45/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 45 get_blend_point_position,\n             wrapIndexedSetter 45 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_46/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 46 get_blend_point_node,\n             wrapIndexedSetter 46 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_46/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 46 get_blend_point_position,\n             wrapIndexedSetter 46 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_47/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 47 get_blend_point_node,\n             wrapIndexedSetter 47 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_47/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 47 get_blend_point_position,\n             wrapIndexedSetter 47 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_48/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 48 get_blend_point_node,\n             wrapIndexedSetter 48 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_48/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 48 get_blend_point_position,\n             wrapIndexedSetter 48 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_49/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 49 get_blend_point_node,\n             wrapIndexedSetter 49 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_49/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 49 get_blend_point_position,\n             wrapIndexedSetter 49 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_5/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_blend_point_node,\n             wrapIndexedSetter 5 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D \"blend_point_5/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_blend_point_position,\n             wrapIndexedSetter 5 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_50/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 50 get_blend_point_node,\n             wrapIndexedSetter 50 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_50/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 50 get_blend_point_position,\n             wrapIndexedSetter 50 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_51/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 51 get_blend_point_node,\n             wrapIndexedSetter 51 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_51/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 51 get_blend_point_position,\n             wrapIndexedSetter 51 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_52/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 52 get_blend_point_node,\n             wrapIndexedSetter 52 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_52/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 52 get_blend_point_position,\n             wrapIndexedSetter 52 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_53/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 53 get_blend_point_node,\n             wrapIndexedSetter 53 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_53/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 53 get_blend_point_position,\n             wrapIndexedSetter 53 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_54/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 54 get_blend_point_node,\n             wrapIndexedSetter 54 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_54/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 54 get_blend_point_position,\n             wrapIndexedSetter 54 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_55/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 55 get_blend_point_node,\n             wrapIndexedSetter 55 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_55/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 55 get_blend_point_position,\n             wrapIndexedSetter 55 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_56/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 56 get_blend_point_node,\n             wrapIndexedSetter 56 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_56/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 56 get_blend_point_position,\n             wrapIndexedSetter 56 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_57/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 57 get_blend_point_node,\n             wrapIndexedSetter 57 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_57/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 57 get_blend_point_position,\n             wrapIndexedSetter 57 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_58/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 58 get_blend_point_node,\n             wrapIndexedSetter 58 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_58/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 58 get_blend_point_position,\n             wrapIndexedSetter 58 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_59/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 59 get_blend_point_node,\n             wrapIndexedSetter 59 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_59/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 59 get_blend_point_position,\n             wrapIndexedSetter 59 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_6/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_blend_point_node,\n             wrapIndexedSetter 6 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D \"blend_point_6/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_blend_point_position,\n             wrapIndexedSetter 6 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_60/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 60 get_blend_point_node,\n             wrapIndexedSetter 60 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_60/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 60 get_blend_point_position,\n             wrapIndexedSetter 60 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_61/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 61 get_blend_point_node,\n             wrapIndexedSetter 61 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_61/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 61 get_blend_point_position,\n             wrapIndexedSetter 61 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_62/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 62 get_blend_point_node,\n             wrapIndexedSetter 62 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_62/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 62 get_blend_point_position,\n             wrapIndexedSetter 62 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_63/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 63 get_blend_point_node,\n             wrapIndexedSetter 63 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_63/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 63 get_blend_point_position,\n             wrapIndexedSetter 63 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_7/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_blend_point_node,\n             wrapIndexedSetter 7 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D \"blend_point_7/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_blend_point_position,\n             wrapIndexedSetter 7 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_8/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_blend_point_node,\n             wrapIndexedSetter 8 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D \"blend_point_8/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_blend_point_position,\n             wrapIndexedSetter 8 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D\n           \"blend_point_9/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_blend_point_node,\n             wrapIndexedSetter 9 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D \"blend_point_9/pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_blend_point_position,\n             wrapIndexedSetter 9 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D \"max_space\" Float\n           'False\n         where\n        nodeProperty\n          = (get_max_space, wrapDroppingSetter set_max_space, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D \"min_space\" Float\n           'False\n         where\n        nodeProperty\n          = (get_min_space, wrapDroppingSetter set_min_space, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D \"snap\" Float 'False\n         where\n        nodeProperty = (get_snap, wrapDroppingSetter set_snap, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace1D \"value_label\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_value_label, wrapDroppingSetter set_value_label, Nothing)\n\n{-# NOINLINE bindAnimationNodeBlendSpace1D__add_blend_point #-}\n\nbindAnimationNodeBlendSpace1D__add_blend_point :: MethodBind\nbindAnimationNodeBlendSpace1D__add_blend_point\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace1D\" $\n        \\ clsNamePtr ->\n          withCString \"_add_blend_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_add_blend_point ::\n                   (AnimationNodeBlendSpace1D :< cls, Object :< cls) =>\n                   cls -> Int -> AnimationRootNode -> IO ()\n_add_blend_point cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace1D__add_blend_point\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace1D \"_add_blend_point\"\n           '[Int, AnimationRootNode]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace1D._add_blend_point\n\n{-# NOINLINE bindAnimationNodeBlendSpace1D__tree_changed #-}\n\nbindAnimationNodeBlendSpace1D__tree_changed :: MethodBind\nbindAnimationNodeBlendSpace1D__tree_changed\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace1D\" $\n        \\ clsNamePtr ->\n          withCString \"_tree_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_tree_changed ::\n                (AnimationNodeBlendSpace1D :< cls, Object :< cls) => cls -> IO ()\n_tree_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace1D__tree_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace1D \"_tree_changed\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace1D._tree_changed\n\n{-# NOINLINE bindAnimationNodeBlendSpace1D_add_blend_point #-}\n\n-- | Adds a new point that represents a @node@ on the virtual axis at a given position set by @pos@. You can insert it at a specific index using the @at_index@ argument. If you use the default value for @at_index@, the point is inserted at the end of the blend points array.\nbindAnimationNodeBlendSpace1D_add_blend_point :: MethodBind\nbindAnimationNodeBlendSpace1D_add_blend_point\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace1D\" $\n        \\ clsNamePtr ->\n          withCString \"add_blend_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new point that represents a @node@ on the virtual axis at a given position set by @pos@. You can insert it at a specific index using the @at_index@ argument. If you use the default value for @at_index@, the point is inserted at the end of the blend points array.\nadd_blend_point ::\n                  (AnimationNodeBlendSpace1D :< cls, Object :< cls) =>\n                  cls -> AnimationRootNode -> Float -> Maybe Int -> IO ()\nadd_blend_point cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (-1)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace1D_add_blend_point\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace1D \"add_blend_point\"\n           '[AnimationRootNode, Float, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace1D.add_blend_point\n\n{-# NOINLINE bindAnimationNodeBlendSpace1D_get_blend_point_count\n             #-}\n\n-- | Returns the number of points on the blend axis.\nbindAnimationNodeBlendSpace1D_get_blend_point_count :: MethodBind\nbindAnimationNodeBlendSpace1D_get_blend_point_count\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace1D\" $\n        \\ clsNamePtr ->\n          withCString \"get_blend_point_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of points on the blend axis.\nget_blend_point_count ::\n                        (AnimationNodeBlendSpace1D :< cls, Object :< cls) => cls -> IO Int\nget_blend_point_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace1D_get_blend_point_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace1D\n           \"get_blend_point_count\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeBlendSpace1D.get_blend_point_count\n\n{-# NOINLINE bindAnimationNodeBlendSpace1D_get_blend_point_node #-}\n\n-- | Returns the @AnimationNode@ referenced by the point at index @point@.\nbindAnimationNodeBlendSpace1D_get_blend_point_node :: MethodBind\nbindAnimationNodeBlendSpace1D_get_blend_point_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace1D\" $\n        \\ clsNamePtr ->\n          withCString \"get_blend_point_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @AnimationNode@ referenced by the point at index @point@.\nget_blend_point_node ::\n                       (AnimationNodeBlendSpace1D :< cls, Object :< cls) =>\n                       cls -> Int -> IO AnimationRootNode\nget_blend_point_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace1D_get_blend_point_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace1D\n           \"get_blend_point_node\"\n           '[Int]\n           (IO AnimationRootNode)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeBlendSpace1D.get_blend_point_node\n\n{-# NOINLINE bindAnimationNodeBlendSpace1D_get_blend_point_position\n             #-}\n\n-- | Returns the position of the point at index @point@.\nbindAnimationNodeBlendSpace1D_get_blend_point_position ::\n                                                       MethodBind\nbindAnimationNodeBlendSpace1D_get_blend_point_position\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace1D\" $\n        \\ clsNamePtr ->\n          withCString \"get_blend_point_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position of the point at index @point@.\nget_blend_point_position ::\n                           (AnimationNodeBlendSpace1D :< cls, Object :< cls) =>\n                           cls -> Int -> IO Float\nget_blend_point_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace1D_get_blend_point_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace1D\n           \"get_blend_point_position\"\n           '[Int]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeBlendSpace1D.get_blend_point_position\n\n{-# NOINLINE bindAnimationNodeBlendSpace1D_get_max_space #-}\n\n-- | The blend space's axis's upper limit for the points' position. See @method add_blend_point@.\nbindAnimationNodeBlendSpace1D_get_max_space :: MethodBind\nbindAnimationNodeBlendSpace1D_get_max_space\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace1D\" $\n        \\ clsNamePtr ->\n          withCString \"get_max_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The blend space's axis's upper limit for the points' position. See @method add_blend_point@.\nget_max_space ::\n                (AnimationNodeBlendSpace1D :< cls, Object :< cls) =>\n                cls -> IO Float\nget_max_space cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace1D_get_max_space\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace1D \"get_max_space\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace1D.get_max_space\n\n{-# NOINLINE bindAnimationNodeBlendSpace1D_get_min_space #-}\n\n-- | The blend space's axis's lower limit for the points' position. See @method add_blend_point@.\nbindAnimationNodeBlendSpace1D_get_min_space :: MethodBind\nbindAnimationNodeBlendSpace1D_get_min_space\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace1D\" $\n        \\ clsNamePtr ->\n          withCString \"get_min_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The blend space's axis's lower limit for the points' position. See @method add_blend_point@.\nget_min_space ::\n                (AnimationNodeBlendSpace1D :< cls, Object :< cls) =>\n                cls -> IO Float\nget_min_space cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace1D_get_min_space\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace1D \"get_min_space\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace1D.get_min_space\n\n{-# NOINLINE bindAnimationNodeBlendSpace1D_get_snap #-}\n\n-- | Position increment to snap to when moving a point on the axis.\nbindAnimationNodeBlendSpace1D_get_snap :: MethodBind\nbindAnimationNodeBlendSpace1D_get_snap\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace1D\" $\n        \\ clsNamePtr ->\n          withCString \"get_snap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Position increment to snap to when moving a point on the axis.\nget_snap ::\n           (AnimationNodeBlendSpace1D :< cls, Object :< cls) =>\n           cls -> IO Float\nget_snap cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace1D_get_snap\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace1D \"get_snap\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace1D.get_snap\n\n{-# NOINLINE bindAnimationNodeBlendSpace1D_get_value_label #-}\n\n-- | Label of the virtual axis of the blend space.\nbindAnimationNodeBlendSpace1D_get_value_label :: MethodBind\nbindAnimationNodeBlendSpace1D_get_value_label\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace1D\" $\n        \\ clsNamePtr ->\n          withCString \"get_value_label\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Label of the virtual axis of the blend space.\nget_value_label ::\n                  (AnimationNodeBlendSpace1D :< cls, Object :< cls) =>\n                  cls -> IO GodotString\nget_value_label cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace1D_get_value_label\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace1D \"get_value_label\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace1D.get_value_label\n\n{-# NOINLINE bindAnimationNodeBlendSpace1D_remove_blend_point #-}\n\n-- | Removes the point at index @point@ from the blend axis.\nbindAnimationNodeBlendSpace1D_remove_blend_point :: MethodBind\nbindAnimationNodeBlendSpace1D_remove_blend_point\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace1D\" $\n        \\ clsNamePtr ->\n          withCString \"remove_blend_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the point at index @point@ from the blend axis.\nremove_blend_point ::\n                     (AnimationNodeBlendSpace1D :< cls, Object :< cls) =>\n                     cls -> Int -> IO ()\nremove_blend_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace1D_remove_blend_point\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace1D \"remove_blend_point\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeBlendSpace1D.remove_blend_point\n\n{-# NOINLINE bindAnimationNodeBlendSpace1D_set_blend_point_node #-}\n\n-- | Changes the @AnimationNode@ referenced by the point at index @point@.\nbindAnimationNodeBlendSpace1D_set_blend_point_node :: MethodBind\nbindAnimationNodeBlendSpace1D_set_blend_point_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace1D\" $\n        \\ clsNamePtr ->\n          withCString \"set_blend_point_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes the @AnimationNode@ referenced by the point at index @point@.\nset_blend_point_node ::\n                       (AnimationNodeBlendSpace1D :< cls, Object :< cls) =>\n                       cls -> Int -> AnimationRootNode -> IO ()\nset_blend_point_node cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace1D_set_blend_point_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace1D\n           \"set_blend_point_node\"\n           '[Int, AnimationRootNode]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeBlendSpace1D.set_blend_point_node\n\n{-# NOINLINE bindAnimationNodeBlendSpace1D_set_blend_point_position\n             #-}\n\n-- | Updates the position of the point at index @point@ on the blend axis.\nbindAnimationNodeBlendSpace1D_set_blend_point_position ::\n                                                       MethodBind\nbindAnimationNodeBlendSpace1D_set_blend_point_position\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace1D\" $\n        \\ clsNamePtr ->\n          withCString \"set_blend_point_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Updates the position of the point at index @point@ on the blend axis.\nset_blend_point_position ::\n                           (AnimationNodeBlendSpace1D :< cls, Object :< cls) =>\n                           cls -> Int -> Float -> IO ()\nset_blend_point_position cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace1D_set_blend_point_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace1D\n           \"set_blend_point_position\"\n           '[Int, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeBlendSpace1D.set_blend_point_position\n\n{-# NOINLINE bindAnimationNodeBlendSpace1D_set_max_space #-}\n\n-- | The blend space's axis's upper limit for the points' position. See @method add_blend_point@.\nbindAnimationNodeBlendSpace1D_set_max_space :: MethodBind\nbindAnimationNodeBlendSpace1D_set_max_space\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace1D\" $\n        \\ clsNamePtr ->\n          withCString \"set_max_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The blend space's axis's upper limit for the points' position. See @method add_blend_point@.\nset_max_space ::\n                (AnimationNodeBlendSpace1D :< cls, Object :< cls) =>\n                cls -> Float -> IO ()\nset_max_space cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace1D_set_max_space\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace1D \"set_max_space\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace1D.set_max_space\n\n{-# NOINLINE bindAnimationNodeBlendSpace1D_set_min_space #-}\n\n-- | The blend space's axis's lower limit for the points' position. See @method add_blend_point@.\nbindAnimationNodeBlendSpace1D_set_min_space :: MethodBind\nbindAnimationNodeBlendSpace1D_set_min_space\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace1D\" $\n        \\ clsNamePtr ->\n          withCString \"set_min_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The blend space's axis's lower limit for the points' position. See @method add_blend_point@.\nset_min_space ::\n                (AnimationNodeBlendSpace1D :< cls, Object :< cls) =>\n                cls -> Float -> IO ()\nset_min_space cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace1D_set_min_space\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace1D \"set_min_space\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace1D.set_min_space\n\n{-# NOINLINE bindAnimationNodeBlendSpace1D_set_snap #-}\n\n-- | Position increment to snap to when moving a point on the axis.\nbindAnimationNodeBlendSpace1D_set_snap :: MethodBind\nbindAnimationNodeBlendSpace1D_set_snap\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace1D\" $\n        \\ clsNamePtr ->\n          withCString \"set_snap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Position increment to snap to when moving a point on the axis.\nset_snap ::\n           (AnimationNodeBlendSpace1D :< cls, Object :< cls) =>\n           cls -> Float -> IO ()\nset_snap cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace1D_set_snap\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace1D \"set_snap\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace1D.set_snap\n\n{-# NOINLINE bindAnimationNodeBlendSpace1D_set_value_label #-}\n\n-- | Label of the virtual axis of the blend space.\nbindAnimationNodeBlendSpace1D_set_value_label :: MethodBind\nbindAnimationNodeBlendSpace1D_set_value_label\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace1D\" $\n        \\ clsNamePtr ->\n          withCString \"set_value_label\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Label of the virtual axis of the blend space.\nset_value_label ::\n                  (AnimationNodeBlendSpace1D :< cls, Object :< cls) =>\n                  cls -> GodotString -> IO ()\nset_value_label cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace1D_set_value_label\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace1D \"set_value_label\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace1D.set_value_label"
  },
  {
    "path": "src/Godot/Core/AnimationNodeBlendSpace2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationNodeBlendSpace2D\n       (Godot.Core.AnimationNodeBlendSpace2D._BLEND_MODE_DISCRETE_CARRY,\n        Godot.Core.AnimationNodeBlendSpace2D._BLEND_MODE_DISCRETE,\n        Godot.Core.AnimationNodeBlendSpace2D._BLEND_MODE_INTERPOLATED,\n        Godot.Core.AnimationNodeBlendSpace2D.sig_triangles_updated,\n        Godot.Core.AnimationNodeBlendSpace2D._add_blend_point,\n        Godot.Core.AnimationNodeBlendSpace2D._get_triangles,\n        Godot.Core.AnimationNodeBlendSpace2D._set_triangles,\n        Godot.Core.AnimationNodeBlendSpace2D._tree_changed,\n        Godot.Core.AnimationNodeBlendSpace2D._update_triangles,\n        Godot.Core.AnimationNodeBlendSpace2D.add_blend_point,\n        Godot.Core.AnimationNodeBlendSpace2D.add_triangle,\n        Godot.Core.AnimationNodeBlendSpace2D.get_auto_triangles,\n        Godot.Core.AnimationNodeBlendSpace2D.get_blend_mode,\n        Godot.Core.AnimationNodeBlendSpace2D.get_blend_point_count,\n        Godot.Core.AnimationNodeBlendSpace2D.get_blend_point_node,\n        Godot.Core.AnimationNodeBlendSpace2D.get_blend_point_position,\n        Godot.Core.AnimationNodeBlendSpace2D.get_max_space,\n        Godot.Core.AnimationNodeBlendSpace2D.get_min_space,\n        Godot.Core.AnimationNodeBlendSpace2D.get_snap,\n        Godot.Core.AnimationNodeBlendSpace2D.get_triangle_count,\n        Godot.Core.AnimationNodeBlendSpace2D.get_triangle_point,\n        Godot.Core.AnimationNodeBlendSpace2D.get_x_label,\n        Godot.Core.AnimationNodeBlendSpace2D.get_y_label,\n        Godot.Core.AnimationNodeBlendSpace2D.remove_blend_point,\n        Godot.Core.AnimationNodeBlendSpace2D.remove_triangle,\n        Godot.Core.AnimationNodeBlendSpace2D.set_auto_triangles,\n        Godot.Core.AnimationNodeBlendSpace2D.set_blend_mode,\n        Godot.Core.AnimationNodeBlendSpace2D.set_blend_point_node,\n        Godot.Core.AnimationNodeBlendSpace2D.set_blend_point_position,\n        Godot.Core.AnimationNodeBlendSpace2D.set_max_space,\n        Godot.Core.AnimationNodeBlendSpace2D.set_min_space,\n        Godot.Core.AnimationNodeBlendSpace2D.set_snap,\n        Godot.Core.AnimationNodeBlendSpace2D.set_x_label,\n        Godot.Core.AnimationNodeBlendSpace2D.set_y_label)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AnimationRootNode()\n\n_BLEND_MODE_DISCRETE_CARRY :: Int\n_BLEND_MODE_DISCRETE_CARRY = 2\n\n_BLEND_MODE_DISCRETE :: Int\n_BLEND_MODE_DISCRETE = 1\n\n_BLEND_MODE_INTERPOLATED :: Int\n_BLEND_MODE_INTERPOLATED = 0\n\n-- | Emitted every time the blend space's triangles are created, removed, or when one of their vertices changes position.\nsig_triangles_updated ::\n                      Godot.Internal.Dispatch.Signal AnimationNodeBlendSpace2D\nsig_triangles_updated\n  = Godot.Internal.Dispatch.Signal \"triangles_updated\"\n\ninstance NodeSignal AnimationNodeBlendSpace2D \"triangles_updated\"\n           '[]\n\ninstance NodeProperty AnimationNodeBlendSpace2D \"auto_triangles\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (get_auto_triangles, wrapDroppingSetter set_auto_triangles,\n             Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D \"blend_mode\" Int\n           'False\n         where\n        nodeProperty\n          = (get_blend_mode, wrapDroppingSetter set_blend_mode, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_0/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_blend_point_node,\n             wrapIndexedSetter 0 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D \"blend_point_0/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_blend_point_position,\n             wrapIndexedSetter 0 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_1/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_blend_point_node,\n             wrapIndexedSetter 1 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D \"blend_point_1/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_blend_point_position,\n             wrapIndexedSetter 1 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_10/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_blend_point_node,\n             wrapIndexedSetter 10 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_10/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_blend_point_position,\n             wrapIndexedSetter 10 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_11/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_blend_point_node,\n             wrapIndexedSetter 11 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_11/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_blend_point_position,\n             wrapIndexedSetter 11 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_12/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 12 get_blend_point_node,\n             wrapIndexedSetter 12 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_12/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 12 get_blend_point_position,\n             wrapIndexedSetter 12 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_13/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 13 get_blend_point_node,\n             wrapIndexedSetter 13 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_13/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 13 get_blend_point_position,\n             wrapIndexedSetter 13 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_14/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 14 get_blend_point_node,\n             wrapIndexedSetter 14 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_14/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 14 get_blend_point_position,\n             wrapIndexedSetter 14 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_15/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 15 get_blend_point_node,\n             wrapIndexedSetter 15 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_15/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 15 get_blend_point_position,\n             wrapIndexedSetter 15 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_16/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 16 get_blend_point_node,\n             wrapIndexedSetter 16 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_16/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 16 get_blend_point_position,\n             wrapIndexedSetter 16 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_17/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 17 get_blend_point_node,\n             wrapIndexedSetter 17 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_17/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 17 get_blend_point_position,\n             wrapIndexedSetter 17 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_18/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 18 get_blend_point_node,\n             wrapIndexedSetter 18 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_18/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 18 get_blend_point_position,\n             wrapIndexedSetter 18 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_19/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 19 get_blend_point_node,\n             wrapIndexedSetter 19 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_19/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 19 get_blend_point_position,\n             wrapIndexedSetter 19 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_2/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_blend_point_node,\n             wrapIndexedSetter 2 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D \"blend_point_2/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_blend_point_position,\n             wrapIndexedSetter 2 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_20/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 20 get_blend_point_node,\n             wrapIndexedSetter 20 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_20/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 20 get_blend_point_position,\n             wrapIndexedSetter 20 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_21/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 21 get_blend_point_node,\n             wrapIndexedSetter 21 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_21/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 21 get_blend_point_position,\n             wrapIndexedSetter 21 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_22/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 22 get_blend_point_node,\n             wrapIndexedSetter 22 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_22/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 22 get_blend_point_position,\n             wrapIndexedSetter 22 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_23/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 23 get_blend_point_node,\n             wrapIndexedSetter 23 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_23/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 23 get_blend_point_position,\n             wrapIndexedSetter 23 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_24/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 24 get_blend_point_node,\n             wrapIndexedSetter 24 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_24/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 24 get_blend_point_position,\n             wrapIndexedSetter 24 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_25/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 25 get_blend_point_node,\n             wrapIndexedSetter 25 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_25/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 25 get_blend_point_position,\n             wrapIndexedSetter 25 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_26/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 26 get_blend_point_node,\n             wrapIndexedSetter 26 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_26/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 26 get_blend_point_position,\n             wrapIndexedSetter 26 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_27/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 27 get_blend_point_node,\n             wrapIndexedSetter 27 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_27/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 27 get_blend_point_position,\n             wrapIndexedSetter 27 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_28/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 28 get_blend_point_node,\n             wrapIndexedSetter 28 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_28/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 28 get_blend_point_position,\n             wrapIndexedSetter 28 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_29/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 29 get_blend_point_node,\n             wrapIndexedSetter 29 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_29/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 29 get_blend_point_position,\n             wrapIndexedSetter 29 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_3/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_blend_point_node,\n             wrapIndexedSetter 3 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D \"blend_point_3/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_blend_point_position,\n             wrapIndexedSetter 3 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_30/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 30 get_blend_point_node,\n             wrapIndexedSetter 30 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_30/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 30 get_blend_point_position,\n             wrapIndexedSetter 30 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_31/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 31 get_blend_point_node,\n             wrapIndexedSetter 31 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_31/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 31 get_blend_point_position,\n             wrapIndexedSetter 31 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_32/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 32 get_blend_point_node,\n             wrapIndexedSetter 32 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_32/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 32 get_blend_point_position,\n             wrapIndexedSetter 32 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_33/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 33 get_blend_point_node,\n             wrapIndexedSetter 33 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_33/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 33 get_blend_point_position,\n             wrapIndexedSetter 33 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_34/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 34 get_blend_point_node,\n             wrapIndexedSetter 34 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_34/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 34 get_blend_point_position,\n             wrapIndexedSetter 34 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_35/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 35 get_blend_point_node,\n             wrapIndexedSetter 35 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_35/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 35 get_blend_point_position,\n             wrapIndexedSetter 35 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_36/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 36 get_blend_point_node,\n             wrapIndexedSetter 36 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_36/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 36 get_blend_point_position,\n             wrapIndexedSetter 36 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_37/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 37 get_blend_point_node,\n             wrapIndexedSetter 37 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_37/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 37 get_blend_point_position,\n             wrapIndexedSetter 37 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_38/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 38 get_blend_point_node,\n             wrapIndexedSetter 38 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_38/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 38 get_blend_point_position,\n             wrapIndexedSetter 38 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_39/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 39 get_blend_point_node,\n             wrapIndexedSetter 39 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_39/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 39 get_blend_point_position,\n             wrapIndexedSetter 39 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_4/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_blend_point_node,\n             wrapIndexedSetter 4 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D \"blend_point_4/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_blend_point_position,\n             wrapIndexedSetter 4 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_40/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 40 get_blend_point_node,\n             wrapIndexedSetter 40 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_40/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 40 get_blend_point_position,\n             wrapIndexedSetter 40 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_41/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 41 get_blend_point_node,\n             wrapIndexedSetter 41 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_41/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 41 get_blend_point_position,\n             wrapIndexedSetter 41 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_42/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 42 get_blend_point_node,\n             wrapIndexedSetter 42 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_42/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 42 get_blend_point_position,\n             wrapIndexedSetter 42 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_43/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 43 get_blend_point_node,\n             wrapIndexedSetter 43 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_43/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 43 get_blend_point_position,\n             wrapIndexedSetter 43 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_44/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 44 get_blend_point_node,\n             wrapIndexedSetter 44 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_44/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 44 get_blend_point_position,\n             wrapIndexedSetter 44 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_45/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 45 get_blend_point_node,\n             wrapIndexedSetter 45 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_45/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 45 get_blend_point_position,\n             wrapIndexedSetter 45 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_46/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 46 get_blend_point_node,\n             wrapIndexedSetter 46 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_46/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 46 get_blend_point_position,\n             wrapIndexedSetter 46 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_47/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 47 get_blend_point_node,\n             wrapIndexedSetter 47 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_47/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 47 get_blend_point_position,\n             wrapIndexedSetter 47 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_48/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 48 get_blend_point_node,\n             wrapIndexedSetter 48 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_48/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 48 get_blend_point_position,\n             wrapIndexedSetter 48 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_49/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 49 get_blend_point_node,\n             wrapIndexedSetter 49 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_49/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 49 get_blend_point_position,\n             wrapIndexedSetter 49 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_5/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_blend_point_node,\n             wrapIndexedSetter 5 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D \"blend_point_5/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_blend_point_position,\n             wrapIndexedSetter 5 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_50/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 50 get_blend_point_node,\n             wrapIndexedSetter 50 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_50/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 50 get_blend_point_position,\n             wrapIndexedSetter 50 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_51/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 51 get_blend_point_node,\n             wrapIndexedSetter 51 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_51/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 51 get_blend_point_position,\n             wrapIndexedSetter 51 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_52/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 52 get_blend_point_node,\n             wrapIndexedSetter 52 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_52/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 52 get_blend_point_position,\n             wrapIndexedSetter 52 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_53/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 53 get_blend_point_node,\n             wrapIndexedSetter 53 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_53/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 53 get_blend_point_position,\n             wrapIndexedSetter 53 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_54/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 54 get_blend_point_node,\n             wrapIndexedSetter 54 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_54/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 54 get_blend_point_position,\n             wrapIndexedSetter 54 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_55/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 55 get_blend_point_node,\n             wrapIndexedSetter 55 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_55/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 55 get_blend_point_position,\n             wrapIndexedSetter 55 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_56/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 56 get_blend_point_node,\n             wrapIndexedSetter 56 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_56/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 56 get_blend_point_position,\n             wrapIndexedSetter 56 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_57/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 57 get_blend_point_node,\n             wrapIndexedSetter 57 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_57/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 57 get_blend_point_position,\n             wrapIndexedSetter 57 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_58/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 58 get_blend_point_node,\n             wrapIndexedSetter 58 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_58/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 58 get_blend_point_position,\n             wrapIndexedSetter 58 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_59/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 59 get_blend_point_node,\n             wrapIndexedSetter 59 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_59/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 59 get_blend_point_position,\n             wrapIndexedSetter 59 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_6/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_blend_point_node,\n             wrapIndexedSetter 6 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D \"blend_point_6/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_blend_point_position,\n             wrapIndexedSetter 6 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_60/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 60 get_blend_point_node,\n             wrapIndexedSetter 60 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_60/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 60 get_blend_point_position,\n             wrapIndexedSetter 60 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_61/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 61 get_blend_point_node,\n             wrapIndexedSetter 61 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_61/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 61 get_blend_point_position,\n             wrapIndexedSetter 61 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_62/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 62 get_blend_point_node,\n             wrapIndexedSetter 62 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_62/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 62 get_blend_point_position,\n             wrapIndexedSetter 62 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_63/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 63 get_blend_point_node,\n             wrapIndexedSetter 63 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_63/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 63 get_blend_point_position,\n             wrapIndexedSetter 63 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_7/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_blend_point_node,\n             wrapIndexedSetter 7 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D \"blend_point_7/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_blend_point_position,\n             wrapIndexedSetter 7 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_8/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_blend_point_node,\n             wrapIndexedSetter 8 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D \"blend_point_8/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_blend_point_position,\n             wrapIndexedSetter 8 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D\n           \"blend_point_9/node\"\n           AnimationRootNode\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_blend_point_node,\n             wrapIndexedSetter 9 _add_blend_point, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D \"blend_point_9/pos\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_blend_point_position,\n             wrapIndexedSetter 9 set_blend_point_position, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D \"max_space\" Vector2\n           'False\n         where\n        nodeProperty\n          = (get_max_space, wrapDroppingSetter set_max_space, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D \"min_space\" Vector2\n           'False\n         where\n        nodeProperty\n          = (get_min_space, wrapDroppingSetter set_min_space, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D \"snap\" Vector2\n           'False\n         where\n        nodeProperty = (get_snap, wrapDroppingSetter set_snap, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D \"triangles\"\n           PoolIntArray\n           'False\n         where\n        nodeProperty\n          = (_get_triangles, wrapDroppingSetter _set_triangles, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D \"x_label\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_x_label, wrapDroppingSetter set_x_label, Nothing)\n\ninstance NodeProperty AnimationNodeBlendSpace2D \"y_label\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_y_label, wrapDroppingSetter set_y_label, Nothing)\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D__add_blend_point #-}\n\nbindAnimationNodeBlendSpace2D__add_blend_point :: MethodBind\nbindAnimationNodeBlendSpace2D__add_blend_point\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"_add_blend_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_add_blend_point ::\n                   (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n                   cls -> Int -> AnimationRootNode -> IO ()\n_add_blend_point cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace2D__add_blend_point\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"_add_blend_point\"\n           '[Int, AnimationRootNode]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D._add_blend_point\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D__get_triangles #-}\n\nbindAnimationNodeBlendSpace2D__get_triangles :: MethodBind\nbindAnimationNodeBlendSpace2D__get_triangles\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"_get_triangles\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_triangles ::\n                 (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n                 cls -> IO PoolIntArray\n_get_triangles cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace2D__get_triangles\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"_get_triangles\" '[]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D._get_triangles\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D__set_triangles #-}\n\nbindAnimationNodeBlendSpace2D__set_triangles :: MethodBind\nbindAnimationNodeBlendSpace2D__set_triangles\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"_set_triangles\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_triangles ::\n                 (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n                 cls -> PoolIntArray -> IO ()\n_set_triangles cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace2D__set_triangles\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"_set_triangles\"\n           '[PoolIntArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D._set_triangles\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D__tree_changed #-}\n\nbindAnimationNodeBlendSpace2D__tree_changed :: MethodBind\nbindAnimationNodeBlendSpace2D__tree_changed\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"_tree_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_tree_changed ::\n                (AnimationNodeBlendSpace2D :< cls, Object :< cls) => cls -> IO ()\n_tree_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace2D__tree_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"_tree_changed\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D._tree_changed\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D__update_triangles #-}\n\nbindAnimationNodeBlendSpace2D__update_triangles :: MethodBind\nbindAnimationNodeBlendSpace2D__update_triangles\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"_update_triangles\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_triangles ::\n                    (AnimationNodeBlendSpace2D :< cls, Object :< cls) => cls -> IO ()\n_update_triangles cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace2D__update_triangles\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"_update_triangles\"\n           '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D._update_triangles\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_add_blend_point #-}\n\n-- | Adds a new point that represents a @node@ at the position set by @pos@. You can insert it at a specific index using the @at_index@ argument. If you use the default value for @at_index@, the point is inserted at the end of the blend points array.\nbindAnimationNodeBlendSpace2D_add_blend_point :: MethodBind\nbindAnimationNodeBlendSpace2D_add_blend_point\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"add_blend_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new point that represents a @node@ at the position set by @pos@. You can insert it at a specific index using the @at_index@ argument. If you use the default value for @at_index@, the point is inserted at the end of the blend points array.\nadd_blend_point ::\n                  (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n                  cls -> AnimationRootNode -> Vector2 -> Maybe Int -> IO ()\nadd_blend_point cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (-1)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace2D_add_blend_point\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"add_blend_point\"\n           '[AnimationRootNode, Vector2, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D.add_blend_point\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_add_triangle #-}\n\n-- | Creates a new triangle using three points @x@, @y@, and @z@. Triangles can overlap. You can insert the triangle at a specific index using the @at_index@ argument. If you use the default value for @at_index@, the point is inserted at the end of the blend points array.\nbindAnimationNodeBlendSpace2D_add_triangle :: MethodBind\nbindAnimationNodeBlendSpace2D_add_triangle\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"add_triangle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a new triangle using three points @x@, @y@, and @z@. Triangles can overlap. You can insert the triangle at a specific index using the @at_index@ argument. If you use the default value for @at_index@, the point is inserted at the end of the blend points array.\nadd_triangle ::\n               (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n               cls -> Int -> Int -> Int -> Maybe Int -> IO ()\nadd_triangle cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantInt (-1)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace2D_add_triangle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"add_triangle\"\n           '[Int, Int, Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D.add_triangle\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_get_auto_triangles #-}\n\n-- | If @true@, the blend space is triangulated automatically. The mesh updates every time you add or remove points with @method add_blend_point@ and @method remove_blend_point@.\nbindAnimationNodeBlendSpace2D_get_auto_triangles :: MethodBind\nbindAnimationNodeBlendSpace2D_get_auto_triangles\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_auto_triangles\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the blend space is triangulated automatically. The mesh updates every time you add or remove points with @method add_blend_point@ and @method remove_blend_point@.\nget_auto_triangles ::\n                     (AnimationNodeBlendSpace2D :< cls, Object :< cls) => cls -> IO Bool\nget_auto_triangles cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace2D_get_auto_triangles\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"get_auto_triangles\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeBlendSpace2D.get_auto_triangles\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_get_blend_mode #-}\n\n-- | Controls the interpolation between animations. See @enum BlendMode@ constants.\nbindAnimationNodeBlendSpace2D_get_blend_mode :: MethodBind\nbindAnimationNodeBlendSpace2D_get_blend_mode\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_blend_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls the interpolation between animations. See @enum BlendMode@ constants.\nget_blend_mode ::\n                 (AnimationNodeBlendSpace2D :< cls, Object :< cls) => cls -> IO Int\nget_blend_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace2D_get_blend_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"get_blend_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D.get_blend_mode\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_get_blend_point_count\n             #-}\n\n-- | Returns the number of points in the blend space.\nbindAnimationNodeBlendSpace2D_get_blend_point_count :: MethodBind\nbindAnimationNodeBlendSpace2D_get_blend_point_count\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_blend_point_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of points in the blend space.\nget_blend_point_count ::\n                        (AnimationNodeBlendSpace2D :< cls, Object :< cls) => cls -> IO Int\nget_blend_point_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace2D_get_blend_point_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D\n           \"get_blend_point_count\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeBlendSpace2D.get_blend_point_count\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_get_blend_point_node #-}\n\n-- | Returns the @AnimationRootNode@ referenced by the point at index @point@.\nbindAnimationNodeBlendSpace2D_get_blend_point_node :: MethodBind\nbindAnimationNodeBlendSpace2D_get_blend_point_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_blend_point_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @AnimationRootNode@ referenced by the point at index @point@.\nget_blend_point_node ::\n                       (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n                       cls -> Int -> IO AnimationRootNode\nget_blend_point_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace2D_get_blend_point_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D\n           \"get_blend_point_node\"\n           '[Int]\n           (IO AnimationRootNode)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeBlendSpace2D.get_blend_point_node\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_get_blend_point_position\n             #-}\n\n-- | Returns the position of the point at index @point@.\nbindAnimationNodeBlendSpace2D_get_blend_point_position ::\n                                                       MethodBind\nbindAnimationNodeBlendSpace2D_get_blend_point_position\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_blend_point_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position of the point at index @point@.\nget_blend_point_position ::\n                           (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n                           cls -> Int -> IO Vector2\nget_blend_point_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace2D_get_blend_point_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D\n           \"get_blend_point_position\"\n           '[Int]\n           (IO Vector2)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeBlendSpace2D.get_blend_point_position\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_get_max_space #-}\n\n-- | The blend space's X and Y axes' upper limit for the points' position. See @method add_blend_point@.\nbindAnimationNodeBlendSpace2D_get_max_space :: MethodBind\nbindAnimationNodeBlendSpace2D_get_max_space\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_max_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The blend space's X and Y axes' upper limit for the points' position. See @method add_blend_point@.\nget_max_space ::\n                (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n                cls -> IO Vector2\nget_max_space cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace2D_get_max_space\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"get_max_space\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D.get_max_space\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_get_min_space #-}\n\n-- | The blend space's X and Y axes' lower limit for the points' position. See @method add_blend_point@.\nbindAnimationNodeBlendSpace2D_get_min_space :: MethodBind\nbindAnimationNodeBlendSpace2D_get_min_space\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_min_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The blend space's X and Y axes' lower limit for the points' position. See @method add_blend_point@.\nget_min_space ::\n                (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n                cls -> IO Vector2\nget_min_space cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace2D_get_min_space\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"get_min_space\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D.get_min_space\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_get_snap #-}\n\n-- | Position increment to snap to when moving a point.\nbindAnimationNodeBlendSpace2D_get_snap :: MethodBind\nbindAnimationNodeBlendSpace2D_get_snap\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_snap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Position increment to snap to when moving a point.\nget_snap ::\n           (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n           cls -> IO Vector2\nget_snap cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace2D_get_snap\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"get_snap\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D.get_snap\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_get_triangle_count #-}\n\n-- | Returns the number of triangles in the blend space.\nbindAnimationNodeBlendSpace2D_get_triangle_count :: MethodBind\nbindAnimationNodeBlendSpace2D_get_triangle_count\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_triangle_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of triangles in the blend space.\nget_triangle_count ::\n                     (AnimationNodeBlendSpace2D :< cls, Object :< cls) => cls -> IO Int\nget_triangle_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace2D_get_triangle_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"get_triangle_count\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeBlendSpace2D.get_triangle_count\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_get_triangle_point #-}\n\n-- | Returns the position of the point at index @point@ in the triangle of index @triangle@.\nbindAnimationNodeBlendSpace2D_get_triangle_point :: MethodBind\nbindAnimationNodeBlendSpace2D_get_triangle_point\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_triangle_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position of the point at index @point@ in the triangle of index @triangle@.\nget_triangle_point ::\n                     (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n                     cls -> Int -> Int -> IO Int\nget_triangle_point cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace2D_get_triangle_point\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"get_triangle_point\"\n           '[Int, Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeBlendSpace2D.get_triangle_point\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_get_x_label #-}\n\n-- | Name of the blend space's X axis.\nbindAnimationNodeBlendSpace2D_get_x_label :: MethodBind\nbindAnimationNodeBlendSpace2D_get_x_label\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_x_label\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Name of the blend space's X axis.\nget_x_label ::\n              (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n              cls -> IO GodotString\nget_x_label cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace2D_get_x_label\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"get_x_label\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D.get_x_label\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_get_y_label #-}\n\n-- | Name of the blend space's Y axis.\nbindAnimationNodeBlendSpace2D_get_y_label :: MethodBind\nbindAnimationNodeBlendSpace2D_get_y_label\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_y_label\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Name of the blend space's Y axis.\nget_y_label ::\n              (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n              cls -> IO GodotString\nget_y_label cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace2D_get_y_label\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"get_y_label\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D.get_y_label\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_remove_blend_point #-}\n\n-- | Removes the point at index @point@ from the blend space.\nbindAnimationNodeBlendSpace2D_remove_blend_point :: MethodBind\nbindAnimationNodeBlendSpace2D_remove_blend_point\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"remove_blend_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the point at index @point@ from the blend space.\nremove_blend_point ::\n                     (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n                     cls -> Int -> IO ()\nremove_blend_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace2D_remove_blend_point\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"remove_blend_point\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeBlendSpace2D.remove_blend_point\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_remove_triangle #-}\n\n-- | Removes the triangle at index @triangle@ from the blend space.\nbindAnimationNodeBlendSpace2D_remove_triangle :: MethodBind\nbindAnimationNodeBlendSpace2D_remove_triangle\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"remove_triangle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the triangle at index @triangle@ from the blend space.\nremove_triangle ::\n                  (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n                  cls -> Int -> IO ()\nremove_triangle cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace2D_remove_triangle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"remove_triangle\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D.remove_triangle\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_set_auto_triangles #-}\n\n-- | If @true@, the blend space is triangulated automatically. The mesh updates every time you add or remove points with @method add_blend_point@ and @method remove_blend_point@.\nbindAnimationNodeBlendSpace2D_set_auto_triangles :: MethodBind\nbindAnimationNodeBlendSpace2D_set_auto_triangles\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_auto_triangles\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the blend space is triangulated automatically. The mesh updates every time you add or remove points with @method add_blend_point@ and @method remove_blend_point@.\nset_auto_triangles ::\n                     (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n                     cls -> Bool -> IO ()\nset_auto_triangles cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace2D_set_auto_triangles\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"set_auto_triangles\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeBlendSpace2D.set_auto_triangles\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_set_blend_mode #-}\n\n-- | Controls the interpolation between animations. See @enum BlendMode@ constants.\nbindAnimationNodeBlendSpace2D_set_blend_mode :: MethodBind\nbindAnimationNodeBlendSpace2D_set_blend_mode\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_blend_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls the interpolation between animations. See @enum BlendMode@ constants.\nset_blend_mode ::\n                 (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n                 cls -> Int -> IO ()\nset_blend_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace2D_set_blend_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"set_blend_mode\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D.set_blend_mode\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_set_blend_point_node #-}\n\n-- | Changes the @AnimationNode@ referenced by the point at index @point@.\nbindAnimationNodeBlendSpace2D_set_blend_point_node :: MethodBind\nbindAnimationNodeBlendSpace2D_set_blend_point_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_blend_point_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes the @AnimationNode@ referenced by the point at index @point@.\nset_blend_point_node ::\n                       (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n                       cls -> Int -> AnimationRootNode -> IO ()\nset_blend_point_node cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace2D_set_blend_point_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D\n           \"set_blend_point_node\"\n           '[Int, AnimationRootNode]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeBlendSpace2D.set_blend_point_node\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_set_blend_point_position\n             #-}\n\n-- | Updates the position of the point at index @point@ on the blend axis.\nbindAnimationNodeBlendSpace2D_set_blend_point_position ::\n                                                       MethodBind\nbindAnimationNodeBlendSpace2D_set_blend_point_position\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_blend_point_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Updates the position of the point at index @point@ on the blend axis.\nset_blend_point_position ::\n                           (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n                           cls -> Int -> Vector2 -> IO ()\nset_blend_point_position cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeBlendSpace2D_set_blend_point_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D\n           \"set_blend_point_position\"\n           '[Int, Vector2]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeBlendSpace2D.set_blend_point_position\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_set_max_space #-}\n\n-- | The blend space's X and Y axes' upper limit for the points' position. See @method add_blend_point@.\nbindAnimationNodeBlendSpace2D_set_max_space :: MethodBind\nbindAnimationNodeBlendSpace2D_set_max_space\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_max_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The blend space's X and Y axes' upper limit for the points' position. See @method add_blend_point@.\nset_max_space ::\n                (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n                cls -> Vector2 -> IO ()\nset_max_space cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace2D_set_max_space\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"set_max_space\"\n           '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D.set_max_space\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_set_min_space #-}\n\n-- | The blend space's X and Y axes' lower limit for the points' position. See @method add_blend_point@.\nbindAnimationNodeBlendSpace2D_set_min_space :: MethodBind\nbindAnimationNodeBlendSpace2D_set_min_space\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_min_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The blend space's X and Y axes' lower limit for the points' position. See @method add_blend_point@.\nset_min_space ::\n                (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n                cls -> Vector2 -> IO ()\nset_min_space cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace2D_set_min_space\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"set_min_space\"\n           '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D.set_min_space\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_set_snap #-}\n\n-- | Position increment to snap to when moving a point.\nbindAnimationNodeBlendSpace2D_set_snap :: MethodBind\nbindAnimationNodeBlendSpace2D_set_snap\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_snap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Position increment to snap to when moving a point.\nset_snap ::\n           (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n           cls -> Vector2 -> IO ()\nset_snap cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace2D_set_snap\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"set_snap\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D.set_snap\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_set_x_label #-}\n\n-- | Name of the blend space's X axis.\nbindAnimationNodeBlendSpace2D_set_x_label :: MethodBind\nbindAnimationNodeBlendSpace2D_set_x_label\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_x_label\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Name of the blend space's X axis.\nset_x_label ::\n              (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n              cls -> GodotString -> IO ()\nset_x_label cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace2D_set_x_label\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"set_x_label\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D.set_x_label\n\n{-# NOINLINE bindAnimationNodeBlendSpace2D_set_y_label #-}\n\n-- | Name of the blend space's Y axis.\nbindAnimationNodeBlendSpace2D_set_y_label :: MethodBind\nbindAnimationNodeBlendSpace2D_set_y_label\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendSpace2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_y_label\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Name of the blend space's Y axis.\nset_y_label ::\n              (AnimationNodeBlendSpace2D :< cls, Object :< cls) =>\n              cls -> GodotString -> IO ()\nset_y_label cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendSpace2D_set_y_label\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendSpace2D \"set_y_label\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendSpace2D.set_y_label"
  },
  {
    "path": "src/Godot/Core/AnimationNodeBlendTree.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationNodeBlendTree\n       (Godot.Core.AnimationNodeBlendTree._CONNECTION_ERROR_NO_INPUT_INDEX,\n        Godot.Core.AnimationNodeBlendTree._CONNECTION_ERROR_NO_OUTPUT,\n        Godot.Core.AnimationNodeBlendTree._CONNECTION_OK,\n        Godot.Core.AnimationNodeBlendTree._CONNECTION_ERROR_SAME_NODE,\n        Godot.Core.AnimationNodeBlendTree._CONNECTION_ERROR_CONNECTION_EXISTS,\n        Godot.Core.AnimationNodeBlendTree._CONNECTION_ERROR_NO_INPUT,\n        Godot.Core.AnimationNodeBlendTree._node_changed,\n        Godot.Core.AnimationNodeBlendTree._tree_changed,\n        Godot.Core.AnimationNodeBlendTree.add_node,\n        Godot.Core.AnimationNodeBlendTree.connect_node,\n        Godot.Core.AnimationNodeBlendTree.disconnect_node,\n        Godot.Core.AnimationNodeBlendTree.get_graph_offset,\n        Godot.Core.AnimationNodeBlendTree.get_node,\n        Godot.Core.AnimationNodeBlendTree.get_node_position,\n        Godot.Core.AnimationNodeBlendTree.has_node,\n        Godot.Core.AnimationNodeBlendTree.remove_node,\n        Godot.Core.AnimationNodeBlendTree.rename_node,\n        Godot.Core.AnimationNodeBlendTree.set_graph_offset,\n        Godot.Core.AnimationNodeBlendTree.set_node_position)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AnimationRootNode()\n\n_CONNECTION_ERROR_NO_INPUT_INDEX :: Int\n_CONNECTION_ERROR_NO_INPUT_INDEX = 2\n\n_CONNECTION_ERROR_NO_OUTPUT :: Int\n_CONNECTION_ERROR_NO_OUTPUT = 3\n\n_CONNECTION_OK :: Int\n_CONNECTION_OK = 0\n\n_CONNECTION_ERROR_SAME_NODE :: Int\n_CONNECTION_ERROR_SAME_NODE = 4\n\n_CONNECTION_ERROR_CONNECTION_EXISTS :: Int\n_CONNECTION_ERROR_CONNECTION_EXISTS = 5\n\n_CONNECTION_ERROR_NO_INPUT :: Int\n_CONNECTION_ERROR_NO_INPUT = 1\n\ninstance NodeProperty AnimationNodeBlendTree \"graph_offset\" Vector2\n           'False\n         where\n        nodeProperty\n          = (get_graph_offset, wrapDroppingSetter set_graph_offset, Nothing)\n\n{-# NOINLINE bindAnimationNodeBlendTree__node_changed #-}\n\nbindAnimationNodeBlendTree__node_changed :: MethodBind\nbindAnimationNodeBlendTree__node_changed\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendTree\" $\n        \\ clsNamePtr ->\n          withCString \"_node_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_node_changed ::\n                (AnimationNodeBlendTree :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\n_node_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendTree__node_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendTree \"_node_changed\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendTree._node_changed\n\n{-# NOINLINE bindAnimationNodeBlendTree__tree_changed #-}\n\nbindAnimationNodeBlendTree__tree_changed :: MethodBind\nbindAnimationNodeBlendTree__tree_changed\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendTree\" $\n        \\ clsNamePtr ->\n          withCString \"_tree_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_tree_changed ::\n                (AnimationNodeBlendTree :< cls, Object :< cls) => cls -> IO ()\n_tree_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendTree__tree_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendTree \"_tree_changed\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendTree._tree_changed\n\n{-# NOINLINE bindAnimationNodeBlendTree_add_node #-}\n\n-- | Adds an @AnimationNode@ at the given @position@. The @name@ is used to identify the created sub-node later.\nbindAnimationNodeBlendTree_add_node :: MethodBind\nbindAnimationNodeBlendTree_add_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendTree\" $\n        \\ clsNamePtr ->\n          withCString \"add_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an @AnimationNode@ at the given @position@. The @name@ is used to identify the created sub-node later.\nadd_node ::\n           (AnimationNodeBlendTree :< cls, Object :< cls) =>\n           cls -> GodotString -> AnimationNode -> Maybe Vector2 -> IO ()\nadd_node cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantVector2 (V2 0 0) arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendTree_add_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendTree \"add_node\"\n           '[GodotString, AnimationNode, Maybe Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendTree.add_node\n\n{-# NOINLINE bindAnimationNodeBlendTree_connect_node #-}\n\n-- | Connects the output of an @AnimationNode@ as input for another @AnimationNode@, at the input port specified by @input_index@.\nbindAnimationNodeBlendTree_connect_node :: MethodBind\nbindAnimationNodeBlendTree_connect_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendTree\" $\n        \\ clsNamePtr ->\n          withCString \"connect_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Connects the output of an @AnimationNode@ as input for another @AnimationNode@, at the input port specified by @input_index@.\nconnect_node ::\n               (AnimationNodeBlendTree :< cls, Object :< cls) =>\n               cls -> GodotString -> Int -> GodotString -> IO ()\nconnect_node cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendTree_connect_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendTree \"connect_node\"\n           '[GodotString, Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendTree.connect_node\n\n{-# NOINLINE bindAnimationNodeBlendTree_disconnect_node #-}\n\n-- | Disconnects the node connected to the specified input.\nbindAnimationNodeBlendTree_disconnect_node :: MethodBind\nbindAnimationNodeBlendTree_disconnect_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendTree\" $\n        \\ clsNamePtr ->\n          withCString \"disconnect_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Disconnects the node connected to the specified input.\ndisconnect_node ::\n                  (AnimationNodeBlendTree :< cls, Object :< cls) =>\n                  cls -> GodotString -> Int -> IO ()\ndisconnect_node cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendTree_disconnect_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendTree \"disconnect_node\"\n           '[GodotString, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendTree.disconnect_node\n\n{-# NOINLINE bindAnimationNodeBlendTree_get_graph_offset #-}\n\n-- | The global offset of all sub-nodes.\nbindAnimationNodeBlendTree_get_graph_offset :: MethodBind\nbindAnimationNodeBlendTree_get_graph_offset\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_graph_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The global offset of all sub-nodes.\nget_graph_offset ::\n                   (AnimationNodeBlendTree :< cls, Object :< cls) => cls -> IO Vector2\nget_graph_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendTree_get_graph_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendTree \"get_graph_offset\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendTree.get_graph_offset\n\n{-# NOINLINE bindAnimationNodeBlendTree_get_node #-}\n\n-- | Returns the sub-node with the specified @name@.\nbindAnimationNodeBlendTree_get_node :: MethodBind\nbindAnimationNodeBlendTree_get_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the sub-node with the specified @name@.\nget_node ::\n           (AnimationNodeBlendTree :< cls, Object :< cls) =>\n           cls -> GodotString -> IO AnimationNode\nget_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendTree_get_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendTree \"get_node\"\n           '[GodotString]\n           (IO AnimationNode)\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendTree.get_node\n\n{-# NOINLINE bindAnimationNodeBlendTree_get_node_position #-}\n\n-- | Returns the position of the sub-node with the specified @name@.\nbindAnimationNodeBlendTree_get_node_position :: MethodBind\nbindAnimationNodeBlendTree_get_node_position\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position of the sub-node with the specified @name@.\nget_node_position ::\n                    (AnimationNodeBlendTree :< cls, Object :< cls) =>\n                    cls -> GodotString -> IO Vector2\nget_node_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendTree_get_node_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendTree \"get_node_position\"\n           '[GodotString]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendTree.get_node_position\n\n{-# NOINLINE bindAnimationNodeBlendTree_has_node #-}\n\n-- | Returns @true@ if a sub-node with specified @name@ exists.\nbindAnimationNodeBlendTree_has_node :: MethodBind\nbindAnimationNodeBlendTree_has_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendTree\" $\n        \\ clsNamePtr ->\n          withCString \"has_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if a sub-node with specified @name@ exists.\nhas_node ::\n           (AnimationNodeBlendTree :< cls, Object :< cls) =>\n           cls -> GodotString -> IO Bool\nhas_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendTree_has_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendTree \"has_node\"\n           '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendTree.has_node\n\n{-# NOINLINE bindAnimationNodeBlendTree_remove_node #-}\n\n-- | Removes a sub-node.\nbindAnimationNodeBlendTree_remove_node :: MethodBind\nbindAnimationNodeBlendTree_remove_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendTree\" $\n        \\ clsNamePtr ->\n          withCString \"remove_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a sub-node.\nremove_node ::\n              (AnimationNodeBlendTree :< cls, Object :< cls) =>\n              cls -> GodotString -> IO ()\nremove_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendTree_remove_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendTree \"remove_node\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendTree.remove_node\n\n{-# NOINLINE bindAnimationNodeBlendTree_rename_node #-}\n\n-- | Changes the name of a sub-node.\nbindAnimationNodeBlendTree_rename_node :: MethodBind\nbindAnimationNodeBlendTree_rename_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendTree\" $\n        \\ clsNamePtr ->\n          withCString \"rename_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes the name of a sub-node.\nrename_node ::\n              (AnimationNodeBlendTree :< cls, Object :< cls) =>\n              cls -> GodotString -> GodotString -> IO ()\nrename_node cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendTree_rename_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendTree \"rename_node\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendTree.rename_node\n\n{-# NOINLINE bindAnimationNodeBlendTree_set_graph_offset #-}\n\n-- | The global offset of all sub-nodes.\nbindAnimationNodeBlendTree_set_graph_offset :: MethodBind\nbindAnimationNodeBlendTree_set_graph_offset\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_graph_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The global offset of all sub-nodes.\nset_graph_offset ::\n                   (AnimationNodeBlendTree :< cls, Object :< cls) =>\n                   cls -> Vector2 -> IO ()\nset_graph_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendTree_set_graph_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendTree \"set_graph_offset\"\n           '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendTree.set_graph_offset\n\n{-# NOINLINE bindAnimationNodeBlendTree_set_node_position #-}\n\n-- | Modifies the position of a sub-node.\nbindAnimationNodeBlendTree_set_node_position :: MethodBind\nbindAnimationNodeBlendTree_set_node_position\n  = unsafePerformIO $\n      withCString \"AnimationNodeBlendTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_node_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Modifies the position of a sub-node.\nset_node_position ::\n                    (AnimationNodeBlendTree :< cls, Object :< cls) =>\n                    cls -> GodotString -> Vector2 -> IO ()\nset_node_position cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeBlendTree_set_node_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeBlendTree \"set_node_position\"\n           '[GodotString, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeBlendTree.set_node_position"
  },
  {
    "path": "src/Godot/Core/AnimationNodeOneShot.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationNodeOneShot\n       (Godot.Core.AnimationNodeOneShot._MIX_MODE_ADD,\n        Godot.Core.AnimationNodeOneShot._MIX_MODE_BLEND,\n        Godot.Core.AnimationNodeOneShot.get_autorestart_delay,\n        Godot.Core.AnimationNodeOneShot.get_autorestart_random_delay,\n        Godot.Core.AnimationNodeOneShot.get_fadein_time,\n        Godot.Core.AnimationNodeOneShot.get_fadeout_time,\n        Godot.Core.AnimationNodeOneShot.get_mix_mode,\n        Godot.Core.AnimationNodeOneShot.has_autorestart,\n        Godot.Core.AnimationNodeOneShot.is_using_sync,\n        Godot.Core.AnimationNodeOneShot.set_autorestart,\n        Godot.Core.AnimationNodeOneShot.set_autorestart_delay,\n        Godot.Core.AnimationNodeOneShot.set_autorestart_random_delay,\n        Godot.Core.AnimationNodeOneShot.set_fadein_time,\n        Godot.Core.AnimationNodeOneShot.set_fadeout_time,\n        Godot.Core.AnimationNodeOneShot.set_mix_mode,\n        Godot.Core.AnimationNodeOneShot.set_use_sync)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AnimationNode()\n\n_MIX_MODE_ADD :: Int\n_MIX_MODE_ADD = 1\n\n_MIX_MODE_BLEND :: Int\n_MIX_MODE_BLEND = 0\n\ninstance NodeProperty AnimationNodeOneShot \"autorestart\" Bool\n           'False\n         where\n        nodeProperty\n          = (has_autorestart, wrapDroppingSetter set_autorestart, Nothing)\n\ninstance NodeProperty AnimationNodeOneShot \"autorestart_delay\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_autorestart_delay, wrapDroppingSetter set_autorestart_delay,\n             Nothing)\n\ninstance NodeProperty AnimationNodeOneShot\n           \"autorestart_random_delay\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_autorestart_random_delay,\n             wrapDroppingSetter set_autorestart_random_delay, Nothing)\n\ninstance NodeProperty AnimationNodeOneShot \"fadein_time\" Float\n           'False\n         where\n        nodeProperty\n          = (get_fadein_time, wrapDroppingSetter set_fadein_time, Nothing)\n\ninstance NodeProperty AnimationNodeOneShot \"fadeout_time\" Float\n           'False\n         where\n        nodeProperty\n          = (get_fadeout_time, wrapDroppingSetter set_fadeout_time, Nothing)\n\ninstance NodeProperty AnimationNodeOneShot \"sync\" Bool 'False where\n        nodeProperty\n          = (is_using_sync, wrapDroppingSetter set_use_sync, Nothing)\n\n{-# NOINLINE bindAnimationNodeOneShot_get_autorestart_delay #-}\n\n-- | The delay after which the automatic restart is triggered, in seconds.\nbindAnimationNodeOneShot_get_autorestart_delay :: MethodBind\nbindAnimationNodeOneShot_get_autorestart_delay\n  = unsafePerformIO $\n      withCString \"AnimationNodeOneShot\" $\n        \\ clsNamePtr ->\n          withCString \"get_autorestart_delay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The delay after which the automatic restart is triggered, in seconds.\nget_autorestart_delay ::\n                        (AnimationNodeOneShot :< cls, Object :< cls) => cls -> IO Float\nget_autorestart_delay cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeOneShot_get_autorestart_delay\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeOneShot \"get_autorestart_delay\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AnimationNodeOneShot.get_autorestart_delay\n\n{-# NOINLINE bindAnimationNodeOneShot_get_autorestart_random_delay\n             #-}\n\n-- | If @autorestart@ is @true@, a random additional delay (in seconds) between 0 and this value will be added to @autorestart_delay@.\nbindAnimationNodeOneShot_get_autorestart_random_delay :: MethodBind\nbindAnimationNodeOneShot_get_autorestart_random_delay\n  = unsafePerformIO $\n      withCString \"AnimationNodeOneShot\" $\n        \\ clsNamePtr ->\n          withCString \"get_autorestart_random_delay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @autorestart@ is @true@, a random additional delay (in seconds) between 0 and this value will be added to @autorestart_delay@.\nget_autorestart_random_delay ::\n                               (AnimationNodeOneShot :< cls, Object :< cls) => cls -> IO Float\nget_autorestart_random_delay cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeOneShot_get_autorestart_random_delay\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeOneShot\n           \"get_autorestart_random_delay\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeOneShot.get_autorestart_random_delay\n\n{-# NOINLINE bindAnimationNodeOneShot_get_fadein_time #-}\n\nbindAnimationNodeOneShot_get_fadein_time :: MethodBind\nbindAnimationNodeOneShot_get_fadein_time\n  = unsafePerformIO $\n      withCString \"AnimationNodeOneShot\" $\n        \\ clsNamePtr ->\n          withCString \"get_fadein_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_fadein_time ::\n                  (AnimationNodeOneShot :< cls, Object :< cls) => cls -> IO Float\nget_fadein_time cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeOneShot_get_fadein_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeOneShot \"get_fadein_time\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AnimationNodeOneShot.get_fadein_time\n\n{-# NOINLINE bindAnimationNodeOneShot_get_fadeout_time #-}\n\nbindAnimationNodeOneShot_get_fadeout_time :: MethodBind\nbindAnimationNodeOneShot_get_fadeout_time\n  = unsafePerformIO $\n      withCString \"AnimationNodeOneShot\" $\n        \\ clsNamePtr ->\n          withCString \"get_fadeout_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_fadeout_time ::\n                   (AnimationNodeOneShot :< cls, Object :< cls) => cls -> IO Float\nget_fadeout_time cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeOneShot_get_fadeout_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeOneShot \"get_fadeout_time\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AnimationNodeOneShot.get_fadeout_time\n\n{-# NOINLINE bindAnimationNodeOneShot_get_mix_mode #-}\n\nbindAnimationNodeOneShot_get_mix_mode :: MethodBind\nbindAnimationNodeOneShot_get_mix_mode\n  = unsafePerformIO $\n      withCString \"AnimationNodeOneShot\" $\n        \\ clsNamePtr ->\n          withCString \"get_mix_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_mix_mode ::\n               (AnimationNodeOneShot :< cls, Object :< cls) => cls -> IO Int\nget_mix_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeOneShot_get_mix_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeOneShot \"get_mix_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AnimationNodeOneShot.get_mix_mode\n\n{-# NOINLINE bindAnimationNodeOneShot_has_autorestart #-}\n\n-- | If @true@, the sub-animation will restart automatically after finishing.\nbindAnimationNodeOneShot_has_autorestart :: MethodBind\nbindAnimationNodeOneShot_has_autorestart\n  = unsafePerformIO $\n      withCString \"AnimationNodeOneShot\" $\n        \\ clsNamePtr ->\n          withCString \"has_autorestart\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the sub-animation will restart automatically after finishing.\nhas_autorestart ::\n                  (AnimationNodeOneShot :< cls, Object :< cls) => cls -> IO Bool\nhas_autorestart cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeOneShot_has_autorestart\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeOneShot \"has_autorestart\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimationNodeOneShot.has_autorestart\n\n{-# NOINLINE bindAnimationNodeOneShot_is_using_sync #-}\n\nbindAnimationNodeOneShot_is_using_sync :: MethodBind\nbindAnimationNodeOneShot_is_using_sync\n  = unsafePerformIO $\n      withCString \"AnimationNodeOneShot\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_sync\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_using_sync ::\n                (AnimationNodeOneShot :< cls, Object :< cls) => cls -> IO Bool\nis_using_sync cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeOneShot_is_using_sync\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeOneShot \"is_using_sync\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimationNodeOneShot.is_using_sync\n\n{-# NOINLINE bindAnimationNodeOneShot_set_autorestart #-}\n\n-- | If @true@, the sub-animation will restart automatically after finishing.\nbindAnimationNodeOneShot_set_autorestart :: MethodBind\nbindAnimationNodeOneShot_set_autorestart\n  = unsafePerformIO $\n      withCString \"AnimationNodeOneShot\" $\n        \\ clsNamePtr ->\n          withCString \"set_autorestart\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the sub-animation will restart automatically after finishing.\nset_autorestart ::\n                  (AnimationNodeOneShot :< cls, Object :< cls) =>\n                  cls -> Bool -> IO ()\nset_autorestart cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeOneShot_set_autorestart\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeOneShot \"set_autorestart\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeOneShot.set_autorestart\n\n{-# NOINLINE bindAnimationNodeOneShot_set_autorestart_delay #-}\n\n-- | The delay after which the automatic restart is triggered, in seconds.\nbindAnimationNodeOneShot_set_autorestart_delay :: MethodBind\nbindAnimationNodeOneShot_set_autorestart_delay\n  = unsafePerformIO $\n      withCString \"AnimationNodeOneShot\" $\n        \\ clsNamePtr ->\n          withCString \"set_autorestart_delay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The delay after which the automatic restart is triggered, in seconds.\nset_autorestart_delay ::\n                        (AnimationNodeOneShot :< cls, Object :< cls) =>\n                        cls -> Float -> IO ()\nset_autorestart_delay cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeOneShot_set_autorestart_delay\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeOneShot \"set_autorestart_delay\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeOneShot.set_autorestart_delay\n\n{-# NOINLINE bindAnimationNodeOneShot_set_autorestart_random_delay\n             #-}\n\n-- | If @autorestart@ is @true@, a random additional delay (in seconds) between 0 and this value will be added to @autorestart_delay@.\nbindAnimationNodeOneShot_set_autorestart_random_delay :: MethodBind\nbindAnimationNodeOneShot_set_autorestart_random_delay\n  = unsafePerformIO $\n      withCString \"AnimationNodeOneShot\" $\n        \\ clsNamePtr ->\n          withCString \"set_autorestart_random_delay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @autorestart@ is @true@, a random additional delay (in seconds) between 0 and this value will be added to @autorestart_delay@.\nset_autorestart_random_delay ::\n                               (AnimationNodeOneShot :< cls, Object :< cls) =>\n                               cls -> Float -> IO ()\nset_autorestart_random_delay cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeOneShot_set_autorestart_random_delay\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeOneShot\n           \"set_autorestart_random_delay\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeOneShot.set_autorestart_random_delay\n\n{-# NOINLINE bindAnimationNodeOneShot_set_fadein_time #-}\n\nbindAnimationNodeOneShot_set_fadein_time :: MethodBind\nbindAnimationNodeOneShot_set_fadein_time\n  = unsafePerformIO $\n      withCString \"AnimationNodeOneShot\" $\n        \\ clsNamePtr ->\n          withCString \"set_fadein_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_fadein_time ::\n                  (AnimationNodeOneShot :< cls, Object :< cls) =>\n                  cls -> Float -> IO ()\nset_fadein_time cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeOneShot_set_fadein_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeOneShot \"set_fadein_time\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeOneShot.set_fadein_time\n\n{-# NOINLINE bindAnimationNodeOneShot_set_fadeout_time #-}\n\nbindAnimationNodeOneShot_set_fadeout_time :: MethodBind\nbindAnimationNodeOneShot_set_fadeout_time\n  = unsafePerformIO $\n      withCString \"AnimationNodeOneShot\" $\n        \\ clsNamePtr ->\n          withCString \"set_fadeout_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_fadeout_time ::\n                   (AnimationNodeOneShot :< cls, Object :< cls) =>\n                   cls -> Float -> IO ()\nset_fadeout_time cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeOneShot_set_fadeout_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeOneShot \"set_fadeout_time\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeOneShot.set_fadeout_time\n\n{-# NOINLINE bindAnimationNodeOneShot_set_mix_mode #-}\n\nbindAnimationNodeOneShot_set_mix_mode :: MethodBind\nbindAnimationNodeOneShot_set_mix_mode\n  = unsafePerformIO $\n      withCString \"AnimationNodeOneShot\" $\n        \\ clsNamePtr ->\n          withCString \"set_mix_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_mix_mode ::\n               (AnimationNodeOneShot :< cls, Object :< cls) => cls -> Int -> IO ()\nset_mix_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeOneShot_set_mix_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeOneShot \"set_mix_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeOneShot.set_mix_mode\n\n{-# NOINLINE bindAnimationNodeOneShot_set_use_sync #-}\n\nbindAnimationNodeOneShot_set_use_sync :: MethodBind\nbindAnimationNodeOneShot_set_use_sync\n  = unsafePerformIO $\n      withCString \"AnimationNodeOneShot\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_sync\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_use_sync ::\n               (AnimationNodeOneShot :< cls, Object :< cls) =>\n               cls -> Bool -> IO ()\nset_use_sync cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeOneShot_set_use_sync\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeOneShot \"set_use_sync\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeOneShot.set_use_sync"
  },
  {
    "path": "src/Godot/Core/AnimationNodeOutput.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationNodeOutput () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AnimationNode()"
  },
  {
    "path": "src/Godot/Core/AnimationNodeStateMachine.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationNodeStateMachine\n       (Godot.Core.AnimationNodeStateMachine._tree_changed,\n        Godot.Core.AnimationNodeStateMachine.add_node,\n        Godot.Core.AnimationNodeStateMachine.add_transition,\n        Godot.Core.AnimationNodeStateMachine.get_end_node,\n        Godot.Core.AnimationNodeStateMachine.get_graph_offset,\n        Godot.Core.AnimationNodeStateMachine.get_node,\n        Godot.Core.AnimationNodeStateMachine.get_node_name,\n        Godot.Core.AnimationNodeStateMachine.get_node_position,\n        Godot.Core.AnimationNodeStateMachine.get_start_node,\n        Godot.Core.AnimationNodeStateMachine.get_transition,\n        Godot.Core.AnimationNodeStateMachine.get_transition_count,\n        Godot.Core.AnimationNodeStateMachine.get_transition_from,\n        Godot.Core.AnimationNodeStateMachine.get_transition_to,\n        Godot.Core.AnimationNodeStateMachine.has_node,\n        Godot.Core.AnimationNodeStateMachine.has_transition,\n        Godot.Core.AnimationNodeStateMachine.remove_node,\n        Godot.Core.AnimationNodeStateMachine.remove_transition,\n        Godot.Core.AnimationNodeStateMachine.remove_transition_by_index,\n        Godot.Core.AnimationNodeStateMachine.rename_node,\n        Godot.Core.AnimationNodeStateMachine.set_end_node,\n        Godot.Core.AnimationNodeStateMachine.set_graph_offset,\n        Godot.Core.AnimationNodeStateMachine.set_node_position,\n        Godot.Core.AnimationNodeStateMachine.set_start_node)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AnimationRootNode()\n\n{-# NOINLINE bindAnimationNodeStateMachine__tree_changed #-}\n\nbindAnimationNodeStateMachine__tree_changed :: MethodBind\nbindAnimationNodeStateMachine__tree_changed\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"_tree_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_tree_changed ::\n                (AnimationNodeStateMachine :< cls, Object :< cls) => cls -> IO ()\n_tree_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeStateMachine__tree_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"_tree_changed\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine._tree_changed\n\n{-# NOINLINE bindAnimationNodeStateMachine_add_node #-}\n\n-- | Adds a new node to the graph. The @position@ is used for display in the editor.\nbindAnimationNodeStateMachine_add_node :: MethodBind\nbindAnimationNodeStateMachine_add_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"add_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new node to the graph. The @position@ is used for display in the editor.\nadd_node ::\n           (AnimationNodeStateMachine :< cls, Object :< cls) =>\n           cls -> GodotString -> AnimationNode -> Maybe Vector2 -> IO ()\nadd_node cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantVector2 (V2 0 0) arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeStateMachine_add_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"add_node\"\n           '[GodotString, AnimationNode, Maybe Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.add_node\n\n{-# NOINLINE bindAnimationNodeStateMachine_add_transition #-}\n\n-- | Adds a transition between the given nodes.\nbindAnimationNodeStateMachine_add_transition :: MethodBind\nbindAnimationNodeStateMachine_add_transition\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"add_transition\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a transition between the given nodes.\nadd_transition ::\n                 (AnimationNodeStateMachine :< cls, Object :< cls) =>\n                 cls ->\n                   GodotString ->\n                     GodotString -> AnimationNodeStateMachineTransition -> IO ()\nadd_transition cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeStateMachine_add_transition\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"add_transition\"\n           '[GodotString, GodotString, AnimationNodeStateMachineTransition]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.add_transition\n\n{-# NOINLINE bindAnimationNodeStateMachine_get_end_node #-}\n\n-- | Returns the graph's end node.\nbindAnimationNodeStateMachine_get_end_node :: MethodBind\nbindAnimationNodeStateMachine_get_end_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"get_end_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the graph's end node.\nget_end_node ::\n               (AnimationNodeStateMachine :< cls, Object :< cls) =>\n               cls -> IO GodotString\nget_end_node cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeStateMachine_get_end_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"get_end_node\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.get_end_node\n\n{-# NOINLINE bindAnimationNodeStateMachine_get_graph_offset #-}\n\n-- | Returns the draw offset of the graph. Used for display in the editor.\nbindAnimationNodeStateMachine_get_graph_offset :: MethodBind\nbindAnimationNodeStateMachine_get_graph_offset\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"get_graph_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the draw offset of the graph. Used for display in the editor.\nget_graph_offset ::\n                   (AnimationNodeStateMachine :< cls, Object :< cls) =>\n                   cls -> IO Vector2\nget_graph_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachine_get_graph_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"get_graph_offset\"\n           '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.get_graph_offset\n\n{-# NOINLINE bindAnimationNodeStateMachine_get_node #-}\n\n-- | Returns the animation node with the given name.\nbindAnimationNodeStateMachine_get_node :: MethodBind\nbindAnimationNodeStateMachine_get_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"get_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the animation node with the given name.\nget_node ::\n           (AnimationNodeStateMachine :< cls, Object :< cls) =>\n           cls -> GodotString -> IO AnimationNode\nget_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeStateMachine_get_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"get_node\"\n           '[GodotString]\n           (IO AnimationNode)\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.get_node\n\n{-# NOINLINE bindAnimationNodeStateMachine_get_node_name #-}\n\n-- | Returns the given animation node's name.\nbindAnimationNodeStateMachine_get_node_name :: MethodBind\nbindAnimationNodeStateMachine_get_node_name\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the given animation node's name.\nget_node_name ::\n                (AnimationNodeStateMachine :< cls, Object :< cls) =>\n                cls -> AnimationNode -> IO GodotString\nget_node_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeStateMachine_get_node_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"get_node_name\"\n           '[AnimationNode]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.get_node_name\n\n{-# NOINLINE bindAnimationNodeStateMachine_get_node_position #-}\n\n-- | Returns the given node's coordinates. Used for display in the editor.\nbindAnimationNodeStateMachine_get_node_position :: MethodBind\nbindAnimationNodeStateMachine_get_node_position\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the given node's coordinates. Used for display in the editor.\nget_node_position ::\n                    (AnimationNodeStateMachine :< cls, Object :< cls) =>\n                    cls -> GodotString -> IO Vector2\nget_node_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachine_get_node_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"get_node_position\"\n           '[GodotString]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.get_node_position\n\n{-# NOINLINE bindAnimationNodeStateMachine_get_start_node #-}\n\n-- | Returns the graph's end node.\nbindAnimationNodeStateMachine_get_start_node :: MethodBind\nbindAnimationNodeStateMachine_get_start_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"get_start_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the graph's end node.\nget_start_node ::\n                 (AnimationNodeStateMachine :< cls, Object :< cls) =>\n                 cls -> IO GodotString\nget_start_node cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeStateMachine_get_start_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"get_start_node\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.get_start_node\n\n{-# NOINLINE bindAnimationNodeStateMachine_get_transition #-}\n\n-- | Returns the given transition.\nbindAnimationNodeStateMachine_get_transition :: MethodBind\nbindAnimationNodeStateMachine_get_transition\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"get_transition\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the given transition.\nget_transition ::\n                 (AnimationNodeStateMachine :< cls, Object :< cls) =>\n                 cls -> Int -> IO AnimationNodeStateMachineTransition\nget_transition cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeStateMachine_get_transition\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"get_transition\"\n           '[Int]\n           (IO AnimationNodeStateMachineTransition)\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.get_transition\n\n{-# NOINLINE bindAnimationNodeStateMachine_get_transition_count #-}\n\n-- | Returns the number of connections in the graph.\nbindAnimationNodeStateMachine_get_transition_count :: MethodBind\nbindAnimationNodeStateMachine_get_transition_count\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"get_transition_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of connections in the graph.\nget_transition_count ::\n                       (AnimationNodeStateMachine :< cls, Object :< cls) => cls -> IO Int\nget_transition_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachine_get_transition_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine\n           \"get_transition_count\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeStateMachine.get_transition_count\n\n{-# NOINLINE bindAnimationNodeStateMachine_get_transition_from #-}\n\n-- | Returns the given transition's start node.\nbindAnimationNodeStateMachine_get_transition_from :: MethodBind\nbindAnimationNodeStateMachine_get_transition_from\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"get_transition_from\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the given transition's start node.\nget_transition_from ::\n                      (AnimationNodeStateMachine :< cls, Object :< cls) =>\n                      cls -> Int -> IO GodotString\nget_transition_from cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachine_get_transition_from\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"get_transition_from\"\n           '[Int]\n           (IO GodotString)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeStateMachine.get_transition_from\n\n{-# NOINLINE bindAnimationNodeStateMachine_get_transition_to #-}\n\n-- | Returns the given transition's end node.\nbindAnimationNodeStateMachine_get_transition_to :: MethodBind\nbindAnimationNodeStateMachine_get_transition_to\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"get_transition_to\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the given transition's end node.\nget_transition_to ::\n                    (AnimationNodeStateMachine :< cls, Object :< cls) =>\n                    cls -> Int -> IO GodotString\nget_transition_to cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachine_get_transition_to\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"get_transition_to\"\n           '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.get_transition_to\n\n{-# NOINLINE bindAnimationNodeStateMachine_has_node #-}\n\n-- | Returns @true@ if the graph contains the given node.\nbindAnimationNodeStateMachine_has_node :: MethodBind\nbindAnimationNodeStateMachine_has_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"has_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the graph contains the given node.\nhas_node ::\n           (AnimationNodeStateMachine :< cls, Object :< cls) =>\n           cls -> GodotString -> IO Bool\nhas_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeStateMachine_has_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"has_node\"\n           '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.has_node\n\n{-# NOINLINE bindAnimationNodeStateMachine_has_transition #-}\n\n-- | Returns @true@ if there is a transition between the given nodes.\nbindAnimationNodeStateMachine_has_transition :: MethodBind\nbindAnimationNodeStateMachine_has_transition\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"has_transition\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if there is a transition between the given nodes.\nhas_transition ::\n                 (AnimationNodeStateMachine :< cls, Object :< cls) =>\n                 cls -> GodotString -> GodotString -> IO Bool\nhas_transition cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeStateMachine_has_transition\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"has_transition\"\n           '[GodotString, GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.has_transition\n\n{-# NOINLINE bindAnimationNodeStateMachine_remove_node #-}\n\n-- | Deletes the given node from the graph.\nbindAnimationNodeStateMachine_remove_node :: MethodBind\nbindAnimationNodeStateMachine_remove_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"remove_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Deletes the given node from the graph.\nremove_node ::\n              (AnimationNodeStateMachine :< cls, Object :< cls) =>\n              cls -> GodotString -> IO ()\nremove_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeStateMachine_remove_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"remove_node\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.remove_node\n\n{-# NOINLINE bindAnimationNodeStateMachine_remove_transition #-}\n\n-- | Deletes the transition between the two specified nodes.\nbindAnimationNodeStateMachine_remove_transition :: MethodBind\nbindAnimationNodeStateMachine_remove_transition\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"remove_transition\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Deletes the transition between the two specified nodes.\nremove_transition ::\n                    (AnimationNodeStateMachine :< cls, Object :< cls) =>\n                    cls -> GodotString -> GodotString -> IO ()\nremove_transition cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachine_remove_transition\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"remove_transition\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.remove_transition\n\n{-# NOINLINE bindAnimationNodeStateMachine_remove_transition_by_index\n             #-}\n\n-- | Deletes the given transition by index.\nbindAnimationNodeStateMachine_remove_transition_by_index ::\n                                                         MethodBind\nbindAnimationNodeStateMachine_remove_transition_by_index\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"remove_transition_by_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Deletes the given transition by index.\nremove_transition_by_index ::\n                             (AnimationNodeStateMachine :< cls, Object :< cls) =>\n                             cls -> Int -> IO ()\nremove_transition_by_index cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachine_remove_transition_by_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine\n           \"remove_transition_by_index\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeStateMachine.remove_transition_by_index\n\n{-# NOINLINE bindAnimationNodeStateMachine_rename_node #-}\n\n-- | Renames the given node.\nbindAnimationNodeStateMachine_rename_node :: MethodBind\nbindAnimationNodeStateMachine_rename_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"rename_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Renames the given node.\nrename_node ::\n              (AnimationNodeStateMachine :< cls, Object :< cls) =>\n              cls -> GodotString -> GodotString -> IO ()\nrename_node cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeStateMachine_rename_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"rename_node\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.rename_node\n\n{-# NOINLINE bindAnimationNodeStateMachine_set_end_node #-}\n\n-- | Sets the given node as the graph end point.\nbindAnimationNodeStateMachine_set_end_node :: MethodBind\nbindAnimationNodeStateMachine_set_end_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"set_end_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the given node as the graph end point.\nset_end_node ::\n               (AnimationNodeStateMachine :< cls, Object :< cls) =>\n               cls -> GodotString -> IO ()\nset_end_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeStateMachine_set_end_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"set_end_node\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.set_end_node\n\n{-# NOINLINE bindAnimationNodeStateMachine_set_graph_offset #-}\n\n-- | Sets the draw offset of the graph. Used for display in the editor.\nbindAnimationNodeStateMachine_set_graph_offset :: MethodBind\nbindAnimationNodeStateMachine_set_graph_offset\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"set_graph_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the draw offset of the graph. Used for display in the editor.\nset_graph_offset ::\n                   (AnimationNodeStateMachine :< cls, Object :< cls) =>\n                   cls -> Vector2 -> IO ()\nset_graph_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachine_set_graph_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"set_graph_offset\"\n           '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.set_graph_offset\n\n{-# NOINLINE bindAnimationNodeStateMachine_set_node_position #-}\n\n-- | Sets the node's coordinates. Used for display in the editor.\nbindAnimationNodeStateMachine_set_node_position :: MethodBind\nbindAnimationNodeStateMachine_set_node_position\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"set_node_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the node's coordinates. Used for display in the editor.\nset_node_position ::\n                    (AnimationNodeStateMachine :< cls, Object :< cls) =>\n                    cls -> GodotString -> Vector2 -> IO ()\nset_node_position cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachine_set_node_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"set_node_position\"\n           '[GodotString, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.set_node_position\n\n{-# NOINLINE bindAnimationNodeStateMachine_set_start_node #-}\n\n-- | Sets the given node as the graph start point.\nbindAnimationNodeStateMachine_set_start_node :: MethodBind\nbindAnimationNodeStateMachine_set_start_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachine\" $\n        \\ clsNamePtr ->\n          withCString \"set_start_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the given node as the graph start point.\nset_start_node ::\n                 (AnimationNodeStateMachine :< cls, Object :< cls) =>\n                 cls -> GodotString -> IO ()\nset_start_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeStateMachine_set_start_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachine \"set_start_node\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachine.set_start_node"
  },
  {
    "path": "src/Godot/Core/AnimationNodeStateMachinePlayback.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationNodeStateMachinePlayback\n       (Godot.Core.AnimationNodeStateMachinePlayback.get_current_node,\n        Godot.Core.AnimationNodeStateMachinePlayback.get_travel_path,\n        Godot.Core.AnimationNodeStateMachinePlayback.is_playing,\n        Godot.Core.AnimationNodeStateMachinePlayback.start,\n        Godot.Core.AnimationNodeStateMachinePlayback.stop,\n        Godot.Core.AnimationNodeStateMachinePlayback.travel)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n{-# NOINLINE bindAnimationNodeStateMachinePlayback_get_current_node\n             #-}\n\n-- | Returns the currently playing animation state.\nbindAnimationNodeStateMachinePlayback_get_current_node ::\n                                                       MethodBind\nbindAnimationNodeStateMachinePlayback_get_current_node\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachinePlayback\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the currently playing animation state.\nget_current_node ::\n                   (AnimationNodeStateMachinePlayback :< cls, Object :< cls) =>\n                   cls -> IO GodotString\nget_current_node cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachinePlayback_get_current_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachinePlayback\n           \"get_current_node\"\n           '[]\n           (IO GodotString)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeStateMachinePlayback.get_current_node\n\n{-# NOINLINE bindAnimationNodeStateMachinePlayback_get_travel_path\n             #-}\n\n-- | Returns the current travel path as computed internally by the A* algorithm.\nbindAnimationNodeStateMachinePlayback_get_travel_path :: MethodBind\nbindAnimationNodeStateMachinePlayback_get_travel_path\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachinePlayback\" $\n        \\ clsNamePtr ->\n          withCString \"get_travel_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current travel path as computed internally by the A* algorithm.\nget_travel_path ::\n                  (AnimationNodeStateMachinePlayback :< cls, Object :< cls) =>\n                  cls -> IO PoolStringArray\nget_travel_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachinePlayback_get_travel_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachinePlayback\n           \"get_travel_path\"\n           '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeStateMachinePlayback.get_travel_path\n\n{-# NOINLINE bindAnimationNodeStateMachinePlayback_is_playing #-}\n\n-- | Returns @true@ if an animation is playing.\nbindAnimationNodeStateMachinePlayback_is_playing :: MethodBind\nbindAnimationNodeStateMachinePlayback_is_playing\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachinePlayback\" $\n        \\ clsNamePtr ->\n          withCString \"is_playing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if an animation is playing.\nis_playing ::\n             (AnimationNodeStateMachinePlayback :< cls, Object :< cls) =>\n             cls -> IO Bool\nis_playing cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachinePlayback_is_playing\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachinePlayback \"is_playing\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeStateMachinePlayback.is_playing\n\n{-# NOINLINE bindAnimationNodeStateMachinePlayback_start #-}\n\n-- | Starts playing the given animation.\nbindAnimationNodeStateMachinePlayback_start :: MethodBind\nbindAnimationNodeStateMachinePlayback_start\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachinePlayback\" $\n        \\ clsNamePtr ->\n          withCString \"start\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Starts playing the given animation.\nstart ::\n        (AnimationNodeStateMachinePlayback :< cls, Object :< cls) =>\n        cls -> GodotString -> IO ()\nstart cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeStateMachinePlayback_start\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachinePlayback \"start\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachinePlayback.start\n\n{-# NOINLINE bindAnimationNodeStateMachinePlayback_stop #-}\n\n-- | Stops the currently playing animation.\nbindAnimationNodeStateMachinePlayback_stop :: MethodBind\nbindAnimationNodeStateMachinePlayback_stop\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachinePlayback\" $\n        \\ clsNamePtr ->\n          withCString \"stop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops the currently playing animation.\nstop ::\n       (AnimationNodeStateMachinePlayback :< cls, Object :< cls) =>\n       cls -> IO ()\nstop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeStateMachinePlayback_stop\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachinePlayback \"stop\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachinePlayback.stop\n\n{-# NOINLINE bindAnimationNodeStateMachinePlayback_travel #-}\n\n-- | Transitions from the current state to another one, following the shortest path.\nbindAnimationNodeStateMachinePlayback_travel :: MethodBind\nbindAnimationNodeStateMachinePlayback_travel\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachinePlayback\" $\n        \\ clsNamePtr ->\n          withCString \"travel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Transitions from the current state to another one, following the shortest path.\ntravel ::\n         (AnimationNodeStateMachinePlayback :< cls, Object :< cls) =>\n         cls -> GodotString -> IO ()\ntravel cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationNodeStateMachinePlayback_travel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachinePlayback \"travel\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeStateMachinePlayback.travel"
  },
  {
    "path": "src/Godot/Core/AnimationNodeStateMachineTransition.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationNodeStateMachineTransition\n       (Godot.Core.AnimationNodeStateMachineTransition._SWITCH_MODE_IMMEDIATE,\n        Godot.Core.AnimationNodeStateMachineTransition._SWITCH_MODE_SYNC,\n        Godot.Core.AnimationNodeStateMachineTransition._SWITCH_MODE_AT_END,\n        Godot.Core.AnimationNodeStateMachineTransition.sig_advance_condition_changed,\n        Godot.Core.AnimationNodeStateMachineTransition.get_advance_condition,\n        Godot.Core.AnimationNodeStateMachineTransition.get_priority,\n        Godot.Core.AnimationNodeStateMachineTransition.get_switch_mode,\n        Godot.Core.AnimationNodeStateMachineTransition.get_xfade_time,\n        Godot.Core.AnimationNodeStateMachineTransition.has_auto_advance,\n        Godot.Core.AnimationNodeStateMachineTransition.is_disabled,\n        Godot.Core.AnimationNodeStateMachineTransition.set_advance_condition,\n        Godot.Core.AnimationNodeStateMachineTransition.set_auto_advance,\n        Godot.Core.AnimationNodeStateMachineTransition.set_disabled,\n        Godot.Core.AnimationNodeStateMachineTransition.set_priority,\n        Godot.Core.AnimationNodeStateMachineTransition.set_switch_mode,\n        Godot.Core.AnimationNodeStateMachineTransition.set_xfade_time)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_SWITCH_MODE_IMMEDIATE :: Int\n_SWITCH_MODE_IMMEDIATE = 0\n\n_SWITCH_MODE_SYNC :: Int\n_SWITCH_MODE_SYNC = 1\n\n_SWITCH_MODE_AT_END :: Int\n_SWITCH_MODE_AT_END = 2\n\n-- | Emitted when @advance_condition@ is changed.\nsig_advance_condition_changed ::\n                              Godot.Internal.Dispatch.Signal AnimationNodeStateMachineTransition\nsig_advance_condition_changed\n  = Godot.Internal.Dispatch.Signal \"advance_condition_changed\"\n\ninstance NodeSignal AnimationNodeStateMachineTransition\n           \"advance_condition_changed\"\n           '[]\n\ninstance NodeProperty AnimationNodeStateMachineTransition\n           \"advance_condition\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_advance_condition, wrapDroppingSetter set_advance_condition,\n             Nothing)\n\ninstance NodeProperty AnimationNodeStateMachineTransition\n           \"auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (has_auto_advance, wrapDroppingSetter set_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeStateMachineTransition\n           \"disabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (is_disabled, wrapDroppingSetter set_disabled, Nothing)\n\ninstance NodeProperty AnimationNodeStateMachineTransition\n           \"priority\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_priority, wrapDroppingSetter set_priority, Nothing)\n\ninstance NodeProperty AnimationNodeStateMachineTransition\n           \"switch_mode\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_switch_mode, wrapDroppingSetter set_switch_mode, Nothing)\n\ninstance NodeProperty AnimationNodeStateMachineTransition\n           \"xfade_time\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_xfade_time, wrapDroppingSetter set_xfade_time, Nothing)\n\n{-# NOINLINE bindAnimationNodeStateMachineTransition_get_advance_condition\n             #-}\n\n-- | Turn on auto advance when this condition is set. The provided name will become a boolean parameter on the @AnimationTree@ that can be controlled from code (see @url=https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html#controlling-from-code@@/url@). For example, if @AnimationTree.tree_root@ is an @AnimationNodeStateMachine@ and @advance_condition@ is set to @\"idle\"@:\n--   \t\t\t\n--   @\n--   \n--   \t\t\t$animation_tree@\"parameters/conditions/idle\"@ = is_on_floor and (linear_velocity.x == 0)\n--   \t\t\t\n--   @\nbindAnimationNodeStateMachineTransition_get_advance_condition ::\n                                                              MethodBind\nbindAnimationNodeStateMachineTransition_get_advance_condition\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachineTransition\" $\n        \\ clsNamePtr ->\n          withCString \"get_advance_condition\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Turn on auto advance when this condition is set. The provided name will become a boolean parameter on the @AnimationTree@ that can be controlled from code (see @url=https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html#controlling-from-code@@/url@). For example, if @AnimationTree.tree_root@ is an @AnimationNodeStateMachine@ and @advance_condition@ is set to @\"idle\"@:\n--   \t\t\t\n--   @\n--   \n--   \t\t\t$animation_tree@\"parameters/conditions/idle\"@ = is_on_floor and (linear_velocity.x == 0)\n--   \t\t\t\n--   @\nget_advance_condition ::\n                        (AnimationNodeStateMachineTransition :< cls, Object :< cls) =>\n                        cls -> IO GodotString\nget_advance_condition cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachineTransition_get_advance_condition\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachineTransition\n           \"get_advance_condition\"\n           '[]\n           (IO GodotString)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeStateMachineTransition.get_advance_condition\n\n{-# NOINLINE bindAnimationNodeStateMachineTransition_get_priority\n             #-}\n\n-- | Lower priority transitions are preferred when travelling through the tree via @method AnimationNodeStateMachinePlayback.travel@ or @auto_advance@.\nbindAnimationNodeStateMachineTransition_get_priority :: MethodBind\nbindAnimationNodeStateMachineTransition_get_priority\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachineTransition\" $\n        \\ clsNamePtr ->\n          withCString \"get_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Lower priority transitions are preferred when travelling through the tree via @method AnimationNodeStateMachinePlayback.travel@ or @auto_advance@.\nget_priority ::\n               (AnimationNodeStateMachineTransition :< cls, Object :< cls) =>\n               cls -> IO Int\nget_priority cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachineTransition_get_priority\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachineTransition\n           \"get_priority\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeStateMachineTransition.get_priority\n\n{-# NOINLINE bindAnimationNodeStateMachineTransition_get_switch_mode\n             #-}\n\n-- | The transition type.\nbindAnimationNodeStateMachineTransition_get_switch_mode ::\n                                                        MethodBind\nbindAnimationNodeStateMachineTransition_get_switch_mode\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachineTransition\" $\n        \\ clsNamePtr ->\n          withCString \"get_switch_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The transition type.\nget_switch_mode ::\n                  (AnimationNodeStateMachineTransition :< cls, Object :< cls) =>\n                  cls -> IO Int\nget_switch_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachineTransition_get_switch_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachineTransition\n           \"get_switch_mode\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeStateMachineTransition.get_switch_mode\n\n{-# NOINLINE bindAnimationNodeStateMachineTransition_get_xfade_time\n             #-}\n\n-- | The time to cross-fade between this state and the next.\nbindAnimationNodeStateMachineTransition_get_xfade_time ::\n                                                       MethodBind\nbindAnimationNodeStateMachineTransition_get_xfade_time\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachineTransition\" $\n        \\ clsNamePtr ->\n          withCString \"get_xfade_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The time to cross-fade between this state and the next.\nget_xfade_time ::\n                 (AnimationNodeStateMachineTransition :< cls, Object :< cls) =>\n                 cls -> IO Float\nget_xfade_time cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachineTransition_get_xfade_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachineTransition\n           \"get_xfade_time\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeStateMachineTransition.get_xfade_time\n\n{-# NOINLINE bindAnimationNodeStateMachineTransition_has_auto_advance\n             #-}\n\n-- | Turn on the transition automatically when this state is reached. This works best with @SWITCH_MODE_AT_END@.\nbindAnimationNodeStateMachineTransition_has_auto_advance ::\n                                                         MethodBind\nbindAnimationNodeStateMachineTransition_has_auto_advance\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachineTransition\" $\n        \\ clsNamePtr ->\n          withCString \"has_auto_advance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Turn on the transition automatically when this state is reached. This works best with @SWITCH_MODE_AT_END@.\nhas_auto_advance ::\n                   (AnimationNodeStateMachineTransition :< cls, Object :< cls) =>\n                   cls -> IO Bool\nhas_auto_advance cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachineTransition_has_auto_advance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachineTransition\n           \"has_auto_advance\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeStateMachineTransition.has_auto_advance\n\n{-# NOINLINE bindAnimationNodeStateMachineTransition_is_disabled\n             #-}\n\n-- | Don't use this transition during @method AnimationNodeStateMachinePlayback.travel@ or @auto_advance@.\nbindAnimationNodeStateMachineTransition_is_disabled :: MethodBind\nbindAnimationNodeStateMachineTransition_is_disabled\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachineTransition\" $\n        \\ clsNamePtr ->\n          withCString \"is_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Don't use this transition during @method AnimationNodeStateMachinePlayback.travel@ or @auto_advance@.\nis_disabled ::\n              (AnimationNodeStateMachineTransition :< cls, Object :< cls) =>\n              cls -> IO Bool\nis_disabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachineTransition_is_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachineTransition\n           \"is_disabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeStateMachineTransition.is_disabled\n\n{-# NOINLINE bindAnimationNodeStateMachineTransition_set_advance_condition\n             #-}\n\n-- | Turn on auto advance when this condition is set. The provided name will become a boolean parameter on the @AnimationTree@ that can be controlled from code (see @url=https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html#controlling-from-code@@/url@). For example, if @AnimationTree.tree_root@ is an @AnimationNodeStateMachine@ and @advance_condition@ is set to @\"idle\"@:\n--   \t\t\t\n--   @\n--   \n--   \t\t\t$animation_tree@\"parameters/conditions/idle\"@ = is_on_floor and (linear_velocity.x == 0)\n--   \t\t\t\n--   @\nbindAnimationNodeStateMachineTransition_set_advance_condition ::\n                                                              MethodBind\nbindAnimationNodeStateMachineTransition_set_advance_condition\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachineTransition\" $\n        \\ clsNamePtr ->\n          withCString \"set_advance_condition\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Turn on auto advance when this condition is set. The provided name will become a boolean parameter on the @AnimationTree@ that can be controlled from code (see @url=https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html#controlling-from-code@@/url@). For example, if @AnimationTree.tree_root@ is an @AnimationNodeStateMachine@ and @advance_condition@ is set to @\"idle\"@:\n--   \t\t\t\n--   @\n--   \n--   \t\t\t$animation_tree@\"parameters/conditions/idle\"@ = is_on_floor and (linear_velocity.x == 0)\n--   \t\t\t\n--   @\nset_advance_condition ::\n                        (AnimationNodeStateMachineTransition :< cls, Object :< cls) =>\n                        cls -> GodotString -> IO ()\nset_advance_condition cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachineTransition_set_advance_condition\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachineTransition\n           \"set_advance_condition\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeStateMachineTransition.set_advance_condition\n\n{-# NOINLINE bindAnimationNodeStateMachineTransition_set_auto_advance\n             #-}\n\n-- | Turn on the transition automatically when this state is reached. This works best with @SWITCH_MODE_AT_END@.\nbindAnimationNodeStateMachineTransition_set_auto_advance ::\n                                                         MethodBind\nbindAnimationNodeStateMachineTransition_set_auto_advance\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachineTransition\" $\n        \\ clsNamePtr ->\n          withCString \"set_auto_advance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Turn on the transition automatically when this state is reached. This works best with @SWITCH_MODE_AT_END@.\nset_auto_advance ::\n                   (AnimationNodeStateMachineTransition :< cls, Object :< cls) =>\n                   cls -> Bool -> IO ()\nset_auto_advance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachineTransition_set_auto_advance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachineTransition\n           \"set_auto_advance\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeStateMachineTransition.set_auto_advance\n\n{-# NOINLINE bindAnimationNodeStateMachineTransition_set_disabled\n             #-}\n\n-- | Don't use this transition during @method AnimationNodeStateMachinePlayback.travel@ or @auto_advance@.\nbindAnimationNodeStateMachineTransition_set_disabled :: MethodBind\nbindAnimationNodeStateMachineTransition_set_disabled\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachineTransition\" $\n        \\ clsNamePtr ->\n          withCString \"set_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Don't use this transition during @method AnimationNodeStateMachinePlayback.travel@ or @auto_advance@.\nset_disabled ::\n               (AnimationNodeStateMachineTransition :< cls, Object :< cls) =>\n               cls -> Bool -> IO ()\nset_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachineTransition_set_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachineTransition\n           \"set_disabled\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeStateMachineTransition.set_disabled\n\n{-# NOINLINE bindAnimationNodeStateMachineTransition_set_priority\n             #-}\n\n-- | Lower priority transitions are preferred when travelling through the tree via @method AnimationNodeStateMachinePlayback.travel@ or @auto_advance@.\nbindAnimationNodeStateMachineTransition_set_priority :: MethodBind\nbindAnimationNodeStateMachineTransition_set_priority\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachineTransition\" $\n        \\ clsNamePtr ->\n          withCString \"set_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Lower priority transitions are preferred when travelling through the tree via @method AnimationNodeStateMachinePlayback.travel@ or @auto_advance@.\nset_priority ::\n               (AnimationNodeStateMachineTransition :< cls, Object :< cls) =>\n               cls -> Int -> IO ()\nset_priority cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachineTransition_set_priority\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachineTransition\n           \"set_priority\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeStateMachineTransition.set_priority\n\n{-# NOINLINE bindAnimationNodeStateMachineTransition_set_switch_mode\n             #-}\n\n-- | The transition type.\nbindAnimationNodeStateMachineTransition_set_switch_mode ::\n                                                        MethodBind\nbindAnimationNodeStateMachineTransition_set_switch_mode\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachineTransition\" $\n        \\ clsNamePtr ->\n          withCString \"set_switch_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The transition type.\nset_switch_mode ::\n                  (AnimationNodeStateMachineTransition :< cls, Object :< cls) =>\n                  cls -> Int -> IO ()\nset_switch_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachineTransition_set_switch_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachineTransition\n           \"set_switch_mode\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeStateMachineTransition.set_switch_mode\n\n{-# NOINLINE bindAnimationNodeStateMachineTransition_set_xfade_time\n             #-}\n\n-- | The time to cross-fade between this state and the next.\nbindAnimationNodeStateMachineTransition_set_xfade_time ::\n                                                       MethodBind\nbindAnimationNodeStateMachineTransition_set_xfade_time\n  = unsafePerformIO $\n      withCString \"AnimationNodeStateMachineTransition\" $\n        \\ clsNamePtr ->\n          withCString \"set_xfade_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The time to cross-fade between this state and the next.\nset_xfade_time ::\n                 (AnimationNodeStateMachineTransition :< cls, Object :< cls) =>\n                 cls -> Float -> IO ()\nset_xfade_time cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeStateMachineTransition_set_xfade_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeStateMachineTransition\n           \"set_xfade_time\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeStateMachineTransition.set_xfade_time"
  },
  {
    "path": "src/Godot/Core/AnimationNodeTimeScale.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationNodeTimeScale () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AnimationNode()"
  },
  {
    "path": "src/Godot/Core/AnimationNodeTimeSeek.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationNodeTimeSeek () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AnimationNode()"
  },
  {
    "path": "src/Godot/Core/AnimationNodeTransition.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationNodeTransition\n       (Godot.Core.AnimationNodeTransition.get_cross_fade_time,\n        Godot.Core.AnimationNodeTransition.get_enabled_inputs,\n        Godot.Core.AnimationNodeTransition.get_input_caption,\n        Godot.Core.AnimationNodeTransition.is_input_set_as_auto_advance,\n        Godot.Core.AnimationNodeTransition.set_cross_fade_time,\n        Godot.Core.AnimationNodeTransition.set_enabled_inputs,\n        Godot.Core.AnimationNodeTransition.set_input_as_auto_advance,\n        Godot.Core.AnimationNodeTransition.set_input_caption)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AnimationNode()\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_0/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 is_input_set_as_auto_advance,\n             wrapIndexedSetter 0 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_0/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_input_caption,\n             wrapIndexedSetter 0 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_1/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 is_input_set_as_auto_advance,\n             wrapIndexedSetter 1 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_1/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_input_caption,\n             wrapIndexedSetter 1 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_10/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 is_input_set_as_auto_advance,\n             wrapIndexedSetter 10 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_10/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_input_caption,\n             wrapIndexedSetter 10 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_11/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 is_input_set_as_auto_advance,\n             wrapIndexedSetter 11 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_11/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_input_caption,\n             wrapIndexedSetter 11 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_12/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 12 is_input_set_as_auto_advance,\n             wrapIndexedSetter 12 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_12/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 12 get_input_caption,\n             wrapIndexedSetter 12 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_13/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 13 is_input_set_as_auto_advance,\n             wrapIndexedSetter 13 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_13/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 13 get_input_caption,\n             wrapIndexedSetter 13 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_14/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 14 is_input_set_as_auto_advance,\n             wrapIndexedSetter 14 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_14/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 14 get_input_caption,\n             wrapIndexedSetter 14 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_15/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 15 is_input_set_as_auto_advance,\n             wrapIndexedSetter 15 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_15/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 15 get_input_caption,\n             wrapIndexedSetter 15 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_16/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 16 is_input_set_as_auto_advance,\n             wrapIndexedSetter 16 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_16/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 16 get_input_caption,\n             wrapIndexedSetter 16 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_17/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 17 is_input_set_as_auto_advance,\n             wrapIndexedSetter 17 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_17/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 17 get_input_caption,\n             wrapIndexedSetter 17 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_18/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 18 is_input_set_as_auto_advance,\n             wrapIndexedSetter 18 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_18/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 18 get_input_caption,\n             wrapIndexedSetter 18 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_19/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 19 is_input_set_as_auto_advance,\n             wrapIndexedSetter 19 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_19/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 19 get_input_caption,\n             wrapIndexedSetter 19 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_2/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 is_input_set_as_auto_advance,\n             wrapIndexedSetter 2 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_2/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_input_caption,\n             wrapIndexedSetter 2 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_20/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 20 is_input_set_as_auto_advance,\n             wrapIndexedSetter 20 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_20/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 20 get_input_caption,\n             wrapIndexedSetter 20 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_21/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 21 is_input_set_as_auto_advance,\n             wrapIndexedSetter 21 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_21/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 21 get_input_caption,\n             wrapIndexedSetter 21 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_22/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 22 is_input_set_as_auto_advance,\n             wrapIndexedSetter 22 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_22/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 22 get_input_caption,\n             wrapIndexedSetter 22 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_23/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 23 is_input_set_as_auto_advance,\n             wrapIndexedSetter 23 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_23/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 23 get_input_caption,\n             wrapIndexedSetter 23 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_24/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 24 is_input_set_as_auto_advance,\n             wrapIndexedSetter 24 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_24/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 24 get_input_caption,\n             wrapIndexedSetter 24 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_25/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 25 is_input_set_as_auto_advance,\n             wrapIndexedSetter 25 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_25/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 25 get_input_caption,\n             wrapIndexedSetter 25 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_26/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 26 is_input_set_as_auto_advance,\n             wrapIndexedSetter 26 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_26/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 26 get_input_caption,\n             wrapIndexedSetter 26 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_27/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 27 is_input_set_as_auto_advance,\n             wrapIndexedSetter 27 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_27/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 27 get_input_caption,\n             wrapIndexedSetter 27 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_28/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 28 is_input_set_as_auto_advance,\n             wrapIndexedSetter 28 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_28/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 28 get_input_caption,\n             wrapIndexedSetter 28 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_29/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 29 is_input_set_as_auto_advance,\n             wrapIndexedSetter 29 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_29/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 29 get_input_caption,\n             wrapIndexedSetter 29 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_3/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 is_input_set_as_auto_advance,\n             wrapIndexedSetter 3 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_3/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_input_caption,\n             wrapIndexedSetter 3 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_30/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 30 is_input_set_as_auto_advance,\n             wrapIndexedSetter 30 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_30/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 30 get_input_caption,\n             wrapIndexedSetter 30 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_31/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 31 is_input_set_as_auto_advance,\n             wrapIndexedSetter 31 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_31/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 31 get_input_caption,\n             wrapIndexedSetter 31 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_4/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 is_input_set_as_auto_advance,\n             wrapIndexedSetter 4 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_4/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_input_caption,\n             wrapIndexedSetter 4 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_5/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 is_input_set_as_auto_advance,\n             wrapIndexedSetter 5 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_5/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_input_caption,\n             wrapIndexedSetter 5 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_6/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 is_input_set_as_auto_advance,\n             wrapIndexedSetter 6 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_6/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_input_caption,\n             wrapIndexedSetter 6 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_7/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 is_input_set_as_auto_advance,\n             wrapIndexedSetter 7 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_7/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_input_caption,\n             wrapIndexedSetter 7 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_8/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 is_input_set_as_auto_advance,\n             wrapIndexedSetter 8 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_8/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_input_caption,\n             wrapIndexedSetter 8 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition\n           \"input_9/auto_advance\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 is_input_set_as_auto_advance,\n             wrapIndexedSetter 9 set_input_as_auto_advance, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_9/name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_input_caption,\n             wrapIndexedSetter 9 set_input_caption, Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"input_count\" Int\n           'False\n         where\n        nodeProperty\n          = (get_enabled_inputs, wrapDroppingSetter set_enabled_inputs,\n             Nothing)\n\ninstance NodeProperty AnimationNodeTransition \"xfade_time\" Float\n           'False\n         where\n        nodeProperty\n          = (get_cross_fade_time, wrapDroppingSetter set_cross_fade_time,\n             Nothing)\n\n{-# NOINLINE bindAnimationNodeTransition_get_cross_fade_time #-}\n\n-- | Cross-fading time (in seconds) between each animation connected to the inputs.\nbindAnimationNodeTransition_get_cross_fade_time :: MethodBind\nbindAnimationNodeTransition_get_cross_fade_time\n  = unsafePerformIO $\n      withCString \"AnimationNodeTransition\" $\n        \\ clsNamePtr ->\n          withCString \"get_cross_fade_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Cross-fading time (in seconds) between each animation connected to the inputs.\nget_cross_fade_time ::\n                      (AnimationNodeTransition :< cls, Object :< cls) => cls -> IO Float\nget_cross_fade_time cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeTransition_get_cross_fade_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeTransition \"get_cross_fade_time\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AnimationNodeTransition.get_cross_fade_time\n\n{-# NOINLINE bindAnimationNodeTransition_get_enabled_inputs #-}\n\n-- | The number of available input ports for this node.\nbindAnimationNodeTransition_get_enabled_inputs :: MethodBind\nbindAnimationNodeTransition_get_enabled_inputs\n  = unsafePerformIO $\n      withCString \"AnimationNodeTransition\" $\n        \\ clsNamePtr ->\n          withCString \"get_enabled_inputs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of available input ports for this node.\nget_enabled_inputs ::\n                     (AnimationNodeTransition :< cls, Object :< cls) => cls -> IO Int\nget_enabled_inputs cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeTransition_get_enabled_inputs\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeTransition \"get_enabled_inputs\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AnimationNodeTransition.get_enabled_inputs\n\n{-# NOINLINE bindAnimationNodeTransition_get_input_caption #-}\n\nbindAnimationNodeTransition_get_input_caption :: MethodBind\nbindAnimationNodeTransition_get_input_caption\n  = unsafePerformIO $\n      withCString \"AnimationNodeTransition\" $\n        \\ clsNamePtr ->\n          withCString \"get_input_caption\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_input_caption ::\n                    (AnimationNodeTransition :< cls, Object :< cls) =>\n                    cls -> Int -> IO GodotString\nget_input_caption cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeTransition_get_input_caption\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeTransition \"get_input_caption\"\n           '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimationNodeTransition.get_input_caption\n\n{-# NOINLINE bindAnimationNodeTransition_is_input_set_as_auto_advance\n             #-}\n\nbindAnimationNodeTransition_is_input_set_as_auto_advance ::\n                                                         MethodBind\nbindAnimationNodeTransition_is_input_set_as_auto_advance\n  = unsafePerformIO $\n      withCString \"AnimationNodeTransition\" $\n        \\ clsNamePtr ->\n          withCString \"is_input_set_as_auto_advance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_input_set_as_auto_advance ::\n                               (AnimationNodeTransition :< cls, Object :< cls) =>\n                               cls -> Int -> IO Bool\nis_input_set_as_auto_advance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeTransition_is_input_set_as_auto_advance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeTransition\n           \"is_input_set_as_auto_advance\"\n           '[Int]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeTransition.is_input_set_as_auto_advance\n\n{-# NOINLINE bindAnimationNodeTransition_set_cross_fade_time #-}\n\n-- | Cross-fading time (in seconds) between each animation connected to the inputs.\nbindAnimationNodeTransition_set_cross_fade_time :: MethodBind\nbindAnimationNodeTransition_set_cross_fade_time\n  = unsafePerformIO $\n      withCString \"AnimationNodeTransition\" $\n        \\ clsNamePtr ->\n          withCString \"set_cross_fade_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Cross-fading time (in seconds) between each animation connected to the inputs.\nset_cross_fade_time ::\n                      (AnimationNodeTransition :< cls, Object :< cls) =>\n                      cls -> Float -> IO ()\nset_cross_fade_time cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeTransition_set_cross_fade_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeTransition \"set_cross_fade_time\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeTransition.set_cross_fade_time\n\n{-# NOINLINE bindAnimationNodeTransition_set_enabled_inputs #-}\n\n-- | The number of available input ports for this node.\nbindAnimationNodeTransition_set_enabled_inputs :: MethodBind\nbindAnimationNodeTransition_set_enabled_inputs\n  = unsafePerformIO $\n      withCString \"AnimationNodeTransition\" $\n        \\ clsNamePtr ->\n          withCString \"set_enabled_inputs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of available input ports for this node.\nset_enabled_inputs ::\n                     (AnimationNodeTransition :< cls, Object :< cls) =>\n                     cls -> Int -> IO ()\nset_enabled_inputs cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeTransition_set_enabled_inputs\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeTransition \"set_enabled_inputs\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeTransition.set_enabled_inputs\n\n{-# NOINLINE bindAnimationNodeTransition_set_input_as_auto_advance\n             #-}\n\nbindAnimationNodeTransition_set_input_as_auto_advance :: MethodBind\nbindAnimationNodeTransition_set_input_as_auto_advance\n  = unsafePerformIO $\n      withCString \"AnimationNodeTransition\" $\n        \\ clsNamePtr ->\n          withCString \"set_input_as_auto_advance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_input_as_auto_advance ::\n                            (AnimationNodeTransition :< cls, Object :< cls) =>\n                            cls -> Int -> Bool -> IO ()\nset_input_as_auto_advance cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeTransition_set_input_as_auto_advance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeTransition\n           \"set_input_as_auto_advance\"\n           '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationNodeTransition.set_input_as_auto_advance\n\n{-# NOINLINE bindAnimationNodeTransition_set_input_caption #-}\n\nbindAnimationNodeTransition_set_input_caption :: MethodBind\nbindAnimationNodeTransition_set_input_caption\n  = unsafePerformIO $\n      withCString \"AnimationNodeTransition\" $\n        \\ clsNamePtr ->\n          withCString \"set_input_caption\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_input_caption ::\n                    (AnimationNodeTransition :< cls, Object :< cls) =>\n                    cls -> Int -> GodotString -> IO ()\nset_input_caption cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationNodeTransition_set_input_caption\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationNodeTransition \"set_input_caption\"\n           '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationNodeTransition.set_input_caption"
  },
  {
    "path": "src/Godot/Core/AnimationPlayer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationPlayer\n       (Godot.Core.AnimationPlayer._ANIMATION_METHOD_CALL_IMMEDIATE,\n        Godot.Core.AnimationPlayer._ANIMATION_METHOD_CALL_DEFERRED,\n        Godot.Core.AnimationPlayer._ANIMATION_PROCESS_MANUAL,\n        Godot.Core.AnimationPlayer._ANIMATION_PROCESS_PHYSICS,\n        Godot.Core.AnimationPlayer._ANIMATION_PROCESS_IDLE,\n        Godot.Core.AnimationPlayer.sig_animation_changed,\n        Godot.Core.AnimationPlayer.sig_animation_finished,\n        Godot.Core.AnimationPlayer.sig_animation_started,\n        Godot.Core.AnimationPlayer.sig_caches_cleared,\n        Godot.Core.AnimationPlayer._animation_changed,\n        Godot.Core.AnimationPlayer._node_removed,\n        Godot.Core.AnimationPlayer.add_animation,\n        Godot.Core.AnimationPlayer.advance,\n        Godot.Core.AnimationPlayer.animation_get_next,\n        Godot.Core.AnimationPlayer.animation_set_next,\n        Godot.Core.AnimationPlayer.clear_caches,\n        Godot.Core.AnimationPlayer.clear_queue,\n        Godot.Core.AnimationPlayer.find_animation,\n        Godot.Core.AnimationPlayer.get_animation,\n        Godot.Core.AnimationPlayer.get_animation_list,\n        Godot.Core.AnimationPlayer.get_animation_process_mode,\n        Godot.Core.AnimationPlayer.get_assigned_animation,\n        Godot.Core.AnimationPlayer.get_autoplay,\n        Godot.Core.AnimationPlayer.get_blend_time,\n        Godot.Core.AnimationPlayer.get_current_animation,\n        Godot.Core.AnimationPlayer.get_current_animation_length,\n        Godot.Core.AnimationPlayer.get_current_animation_position,\n        Godot.Core.AnimationPlayer.get_default_blend_time,\n        Godot.Core.AnimationPlayer.get_method_call_mode,\n        Godot.Core.AnimationPlayer.get_playing_speed,\n        Godot.Core.AnimationPlayer.get_queue,\n        Godot.Core.AnimationPlayer.get_root,\n        Godot.Core.AnimationPlayer.get_speed_scale,\n        Godot.Core.AnimationPlayer.has_animation,\n        Godot.Core.AnimationPlayer.is_active,\n        Godot.Core.AnimationPlayer.is_playing,\n        Godot.Core.AnimationPlayer.play,\n        Godot.Core.AnimationPlayer.play_backwards,\n        Godot.Core.AnimationPlayer.queue,\n        Godot.Core.AnimationPlayer.remove_animation,\n        Godot.Core.AnimationPlayer.rename_animation,\n        Godot.Core.AnimationPlayer.seek,\n        Godot.Core.AnimationPlayer.set_active,\n        Godot.Core.AnimationPlayer.set_animation_process_mode,\n        Godot.Core.AnimationPlayer.set_assigned_animation,\n        Godot.Core.AnimationPlayer.set_autoplay,\n        Godot.Core.AnimationPlayer.set_blend_time,\n        Godot.Core.AnimationPlayer.set_current_animation,\n        Godot.Core.AnimationPlayer.set_default_blend_time,\n        Godot.Core.AnimationPlayer.set_method_call_mode,\n        Godot.Core.AnimationPlayer.set_root,\n        Godot.Core.AnimationPlayer.set_speed_scale,\n        Godot.Core.AnimationPlayer.stop)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\n_ANIMATION_METHOD_CALL_IMMEDIATE :: Int\n_ANIMATION_METHOD_CALL_IMMEDIATE = 1\n\n_ANIMATION_METHOD_CALL_DEFERRED :: Int\n_ANIMATION_METHOD_CALL_DEFERRED = 0\n\n_ANIMATION_PROCESS_MANUAL :: Int\n_ANIMATION_PROCESS_MANUAL = 2\n\n_ANIMATION_PROCESS_PHYSICS :: Int\n_ANIMATION_PROCESS_PHYSICS = 0\n\n_ANIMATION_PROCESS_IDLE :: Int\n_ANIMATION_PROCESS_IDLE = 1\n\n-- | If the currently being played animation changes, this signal will notify of such change.\nsig_animation_changed ::\n                      Godot.Internal.Dispatch.Signal AnimationPlayer\nsig_animation_changed\n  = Godot.Internal.Dispatch.Signal \"animation_changed\"\n\ninstance NodeSignal AnimationPlayer \"animation_changed\"\n           '[GodotString, GodotString]\n\n-- | Notifies when an animation finished playing.\nsig_animation_finished ::\n                       Godot.Internal.Dispatch.Signal AnimationPlayer\nsig_animation_finished\n  = Godot.Internal.Dispatch.Signal \"animation_finished\"\n\ninstance NodeSignal AnimationPlayer \"animation_finished\"\n           '[GodotString]\n\n-- | Notifies when an animation starts playing.\nsig_animation_started ::\n                      Godot.Internal.Dispatch.Signal AnimationPlayer\nsig_animation_started\n  = Godot.Internal.Dispatch.Signal \"animation_started\"\n\ninstance NodeSignal AnimationPlayer \"animation_started\"\n           '[GodotString]\n\n-- | Notifies when the caches have been cleared, either automatically, or manually via @method clear_caches@.\nsig_caches_cleared ::\n                   Godot.Internal.Dispatch.Signal AnimationPlayer\nsig_caches_cleared\n  = Godot.Internal.Dispatch.Signal \"caches_cleared\"\n\ninstance NodeSignal AnimationPlayer \"caches_cleared\" '[]\n\ninstance NodeProperty AnimationPlayer \"assigned_animation\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_assigned_animation,\n             wrapDroppingSetter set_assigned_animation, Nothing)\n\ninstance NodeProperty AnimationPlayer \"autoplay\" GodotString 'False\n         where\n        nodeProperty\n          = (get_autoplay, wrapDroppingSetter set_autoplay, Nothing)\n\ninstance NodeProperty AnimationPlayer \"current_animation\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_current_animation, wrapDroppingSetter set_current_animation,\n             Nothing)\n\ninstance NodeProperty AnimationPlayer \"current_animation_length\"\n           Float\n           'True\n         where\n        nodeProperty = (get_current_animation_length, (), Nothing)\n\ninstance NodeProperty AnimationPlayer \"current_animation_position\"\n           Float\n           'True\n         where\n        nodeProperty = (get_current_animation_position, (), Nothing)\n\ninstance NodeProperty AnimationPlayer \"method_call_mode\" Int 'False\n         where\n        nodeProperty\n          = (get_method_call_mode, wrapDroppingSetter set_method_call_mode,\n             Nothing)\n\ninstance NodeProperty AnimationPlayer \"playback_active\" Bool 'False\n         where\n        nodeProperty = (is_active, wrapDroppingSetter set_active, Nothing)\n\ninstance NodeProperty AnimationPlayer \"playback_default_blend_time\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_default_blend_time,\n             wrapDroppingSetter set_default_blend_time, Nothing)\n\ninstance NodeProperty AnimationPlayer \"playback_process_mode\" Int\n           'False\n         where\n        nodeProperty\n          = (get_animation_process_mode,\n             wrapDroppingSetter set_animation_process_mode, Nothing)\n\ninstance NodeProperty AnimationPlayer \"playback_speed\" Float 'False\n         where\n        nodeProperty\n          = (get_speed_scale, wrapDroppingSetter set_speed_scale, Nothing)\n\ninstance NodeProperty AnimationPlayer \"root_node\" NodePath 'False\n         where\n        nodeProperty = (get_root, wrapDroppingSetter set_root, Nothing)\n\n{-# NOINLINE bindAnimationPlayer__animation_changed #-}\n\nbindAnimationPlayer__animation_changed :: MethodBind\nbindAnimationPlayer__animation_changed\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"_animation_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_animation_changed ::\n                     (AnimationPlayer :< cls, Object :< cls) => cls -> IO ()\n_animation_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer__animation_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"_animation_changed\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer._animation_changed\n\n{-# NOINLINE bindAnimationPlayer__node_removed #-}\n\nbindAnimationPlayer__node_removed :: MethodBind\nbindAnimationPlayer__node_removed\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"_node_removed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_node_removed ::\n                (AnimationPlayer :< cls, Object :< cls) => cls -> Node -> IO ()\n_node_removed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer__node_removed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"_node_removed\" '[Node] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer._node_removed\n\n{-# NOINLINE bindAnimationPlayer_add_animation #-}\n\n-- | Adds @animation@ to the player accessible with the key @name@.\nbindAnimationPlayer_add_animation :: MethodBind\nbindAnimationPlayer_add_animation\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"add_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds @animation@ to the player accessible with the key @name@.\nadd_animation ::\n                (AnimationPlayer :< cls, Object :< cls) =>\n                cls -> GodotString -> Animation -> IO Int\nadd_animation cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_add_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"add_animation\"\n           '[GodotString, Animation]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.add_animation\n\n{-# NOINLINE bindAnimationPlayer_advance #-}\n\n-- | Shifts position in the animation timeline and immediately updates the animation. @delta@ is the time in seconds to shift. Events between the current frame and @delta@ are handled.\nbindAnimationPlayer_advance :: MethodBind\nbindAnimationPlayer_advance\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"advance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Shifts position in the animation timeline and immediately updates the animation. @delta@ is the time in seconds to shift. Events between the current frame and @delta@ are handled.\nadvance ::\n          (AnimationPlayer :< cls, Object :< cls) => cls -> Float -> IO ()\nadvance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_advance (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"advance\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.advance\n\n{-# NOINLINE bindAnimationPlayer_animation_get_next #-}\n\n-- | Returns the name of the next animation in the queue.\nbindAnimationPlayer_animation_get_next :: MethodBind\nbindAnimationPlayer_animation_get_next\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"animation_get_next\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of the next animation in the queue.\nanimation_get_next ::\n                     (AnimationPlayer :< cls, Object :< cls) =>\n                     cls -> GodotString -> IO GodotString\nanimation_get_next cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_animation_get_next\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"animation_get_next\"\n           '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.animation_get_next\n\n{-# NOINLINE bindAnimationPlayer_animation_set_next #-}\n\n-- | Triggers the @anim_to@ animation when the @anim_from@ animation completes.\nbindAnimationPlayer_animation_set_next :: MethodBind\nbindAnimationPlayer_animation_set_next\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"animation_set_next\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Triggers the @anim_to@ animation when the @anim_from@ animation completes.\nanimation_set_next ::\n                     (AnimationPlayer :< cls, Object :< cls) =>\n                     cls -> GodotString -> GodotString -> IO ()\nanimation_set_next cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_animation_set_next\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"animation_set_next\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.animation_set_next\n\n{-# NOINLINE bindAnimationPlayer_clear_caches #-}\n\n-- | @AnimationPlayer@ caches animated nodes. It may not notice if a node disappears; @method clear_caches@ forces it to update the cache again.\nbindAnimationPlayer_clear_caches :: MethodBind\nbindAnimationPlayer_clear_caches\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"clear_caches\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @AnimationPlayer@ caches animated nodes. It may not notice if a node disappears; @method clear_caches@ forces it to update the cache again.\nclear_caches ::\n               (AnimationPlayer :< cls, Object :< cls) => cls -> IO ()\nclear_caches cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_clear_caches\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"clear_caches\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.clear_caches\n\n{-# NOINLINE bindAnimationPlayer_clear_queue #-}\n\n-- | Clears all queued, unplayed animations.\nbindAnimationPlayer_clear_queue :: MethodBind\nbindAnimationPlayer_clear_queue\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"clear_queue\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears all queued, unplayed animations.\nclear_queue ::\n              (AnimationPlayer :< cls, Object :< cls) => cls -> IO ()\nclear_queue cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_clear_queue (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"clear_queue\" '[] (IO ()) where\n        nodeMethod = Godot.Core.AnimationPlayer.clear_queue\n\n{-# NOINLINE bindAnimationPlayer_find_animation #-}\n\n-- | Returns the name of @animation@ or an empty string if not found.\nbindAnimationPlayer_find_animation :: MethodBind\nbindAnimationPlayer_find_animation\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"find_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of @animation@ or an empty string if not found.\nfind_animation ::\n                 (AnimationPlayer :< cls, Object :< cls) =>\n                 cls -> Animation -> IO GodotString\nfind_animation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_find_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"find_animation\" '[Animation]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.find_animation\n\n{-# NOINLINE bindAnimationPlayer_get_animation #-}\n\n-- | Returns the @Animation@ with key @name@ or @null@ if not found.\nbindAnimationPlayer_get_animation :: MethodBind\nbindAnimationPlayer_get_animation\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Animation@ with key @name@ or @null@ if not found.\nget_animation ::\n                (AnimationPlayer :< cls, Object :< cls) =>\n                cls -> GodotString -> IO Animation\nget_animation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_get_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"get_animation\" '[GodotString]\n           (IO Animation)\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.get_animation\n\n{-# NOINLINE bindAnimationPlayer_get_animation_list #-}\n\n-- | Returns the list of stored animation names.\nbindAnimationPlayer_get_animation_list :: MethodBind\nbindAnimationPlayer_get_animation_list\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_animation_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the list of stored animation names.\nget_animation_list ::\n                     (AnimationPlayer :< cls, Object :< cls) =>\n                     cls -> IO PoolStringArray\nget_animation_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_get_animation_list\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"get_animation_list\" '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.get_animation_list\n\n{-# NOINLINE bindAnimationPlayer_get_animation_process_mode #-}\n\n-- | The process notification in which to update animations.\nbindAnimationPlayer_get_animation_process_mode :: MethodBind\nbindAnimationPlayer_get_animation_process_mode\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_animation_process_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The process notification in which to update animations.\nget_animation_process_mode ::\n                             (AnimationPlayer :< cls, Object :< cls) => cls -> IO Int\nget_animation_process_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationPlayer_get_animation_process_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"get_animation_process_mode\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.get_animation_process_mode\n\n{-# NOINLINE bindAnimationPlayer_get_assigned_animation #-}\n\n-- | If playing, the current animation; otherwise, the animation last played. When set, would change the animation, but would not play it unless currently playing. See also @current_animation@.\nbindAnimationPlayer_get_assigned_animation :: MethodBind\nbindAnimationPlayer_get_assigned_animation\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_assigned_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If playing, the current animation; otherwise, the animation last played. When set, would change the animation, but would not play it unless currently playing. See also @current_animation@.\nget_assigned_animation ::\n                         (AnimationPlayer :< cls, Object :< cls) => cls -> IO GodotString\nget_assigned_animation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_get_assigned_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"get_assigned_animation\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.get_assigned_animation\n\n{-# NOINLINE bindAnimationPlayer_get_autoplay #-}\n\n-- | The name of the animation to play when the scene loads.\nbindAnimationPlayer_get_autoplay :: MethodBind\nbindAnimationPlayer_get_autoplay\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_autoplay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The name of the animation to play when the scene loads.\nget_autoplay ::\n               (AnimationPlayer :< cls, Object :< cls) => cls -> IO GodotString\nget_autoplay cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_get_autoplay\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"get_autoplay\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.get_autoplay\n\n{-# NOINLINE bindAnimationPlayer_get_blend_time #-}\n\n-- | Gets the blend time (in seconds) between two animations, referenced by their names.\nbindAnimationPlayer_get_blend_time :: MethodBind\nbindAnimationPlayer_get_blend_time\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_blend_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the blend time (in seconds) between two animations, referenced by their names.\nget_blend_time ::\n                 (AnimationPlayer :< cls, Object :< cls) =>\n                 cls -> GodotString -> GodotString -> IO Float\nget_blend_time cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_get_blend_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"get_blend_time\"\n           '[GodotString, GodotString]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.get_blend_time\n\n{-# NOINLINE bindAnimationPlayer_get_current_animation #-}\n\n-- | The name of the currently playing animation. If no animation is playing, the property's value is an empty string. Changing this value does not restart the animation. See @method play@ for more information on playing animations.\n--   \t\t\t__Note__: while this property appears in the inspector, it's not meant to be edited and it's not saved in the scene. This property is mainly used to get the currently playing animation, and internally for animation playback tracks. For more information, see @Animation@.\nbindAnimationPlayer_get_current_animation :: MethodBind\nbindAnimationPlayer_get_current_animation\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The name of the currently playing animation. If no animation is playing, the property's value is an empty string. Changing this value does not restart the animation. See @method play@ for more information on playing animations.\n--   \t\t\t__Note__: while this property appears in the inspector, it's not meant to be edited and it's not saved in the scene. This property is mainly used to get the currently playing animation, and internally for animation playback tracks. For more information, see @Animation@.\nget_current_animation ::\n                        (AnimationPlayer :< cls, Object :< cls) => cls -> IO GodotString\nget_current_animation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_get_current_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"get_current_animation\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.get_current_animation\n\n{-# NOINLINE bindAnimationPlayer_get_current_animation_length #-}\n\n-- | The length (in seconds) of the currently being played animation.\nbindAnimationPlayer_get_current_animation_length :: MethodBind\nbindAnimationPlayer_get_current_animation_length\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_animation_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The length (in seconds) of the currently being played animation.\nget_current_animation_length ::\n                               (AnimationPlayer :< cls, Object :< cls) => cls -> IO Float\nget_current_animation_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationPlayer_get_current_animation_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"get_current_animation_length\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.AnimationPlayer.get_current_animation_length\n\n{-# NOINLINE bindAnimationPlayer_get_current_animation_position #-}\n\n-- | The position (in seconds) of the currently playing animation.\nbindAnimationPlayer_get_current_animation_position :: MethodBind\nbindAnimationPlayer_get_current_animation_position\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_animation_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The position (in seconds) of the currently playing animation.\nget_current_animation_position ::\n                                 (AnimationPlayer :< cls, Object :< cls) => cls -> IO Float\nget_current_animation_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationPlayer_get_current_animation_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer\n           \"get_current_animation_position\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.AnimationPlayer.get_current_animation_position\n\n{-# NOINLINE bindAnimationPlayer_get_default_blend_time #-}\n\n-- | The default time in which to blend animations. Ranges from 0 to 4096 with 0.01 precision.\nbindAnimationPlayer_get_default_blend_time :: MethodBind\nbindAnimationPlayer_get_default_blend_time\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_default_blend_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The default time in which to blend animations. Ranges from 0 to 4096 with 0.01 precision.\nget_default_blend_time ::\n                         (AnimationPlayer :< cls, Object :< cls) => cls -> IO Float\nget_default_blend_time cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_get_default_blend_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"get_default_blend_time\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.get_default_blend_time\n\n{-# NOINLINE bindAnimationPlayer_get_method_call_mode #-}\n\n-- | The call mode to use for Call Method tracks.\nbindAnimationPlayer_get_method_call_mode :: MethodBind\nbindAnimationPlayer_get_method_call_mode\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_method_call_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The call mode to use for Call Method tracks.\nget_method_call_mode ::\n                       (AnimationPlayer :< cls, Object :< cls) => cls -> IO Int\nget_method_call_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_get_method_call_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"get_method_call_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.get_method_call_mode\n\n{-# NOINLINE bindAnimationPlayer_get_playing_speed #-}\n\n-- | Gets the actual playing speed of current animation or 0 if not playing. This speed is the @playback_speed@ property multiplied by @custom_speed@ argument specified when calling the @method play@ method.\nbindAnimationPlayer_get_playing_speed :: MethodBind\nbindAnimationPlayer_get_playing_speed\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_playing_speed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the actual playing speed of current animation or 0 if not playing. This speed is the @playback_speed@ property multiplied by @custom_speed@ argument specified when calling the @method play@ method.\nget_playing_speed ::\n                    (AnimationPlayer :< cls, Object :< cls) => cls -> IO Float\nget_playing_speed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_get_playing_speed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"get_playing_speed\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.get_playing_speed\n\n{-# NOINLINE bindAnimationPlayer_get_queue #-}\n\n-- | Returns a list of the animation names that are currently queued to play.\nbindAnimationPlayer_get_queue :: MethodBind\nbindAnimationPlayer_get_queue\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_queue\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a list of the animation names that are currently queued to play.\nget_queue ::\n            (AnimationPlayer :< cls, Object :< cls) =>\n            cls -> IO PoolStringArray\nget_queue cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_get_queue (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"get_queue\" '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.get_queue\n\n{-# NOINLINE bindAnimationPlayer_get_root #-}\n\n-- | The node from which node path references will travel.\nbindAnimationPlayer_get_root :: MethodBind\nbindAnimationPlayer_get_root\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_root\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node from which node path references will travel.\nget_root ::\n           (AnimationPlayer :< cls, Object :< cls) => cls -> IO NodePath\nget_root cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_get_root (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"get_root\" '[] (IO NodePath)\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.get_root\n\n{-# NOINLINE bindAnimationPlayer_get_speed_scale #-}\n\n-- | The speed scaling ratio. For instance, if this value is 1, then the animation plays at normal speed. If it's 0.5, then it plays at half speed. If it's 2, then it plays at double speed.\nbindAnimationPlayer_get_speed_scale :: MethodBind\nbindAnimationPlayer_get_speed_scale\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_speed_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The speed scaling ratio. For instance, if this value is 1, then the animation plays at normal speed. If it's 0.5, then it plays at half speed. If it's 2, then it plays at double speed.\nget_speed_scale ::\n                  (AnimationPlayer :< cls, Object :< cls) => cls -> IO Float\nget_speed_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_get_speed_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"get_speed_scale\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.get_speed_scale\n\n{-# NOINLINE bindAnimationPlayer_has_animation #-}\n\n-- | Returns @true@ if the @AnimationPlayer@ stores an @Animation@ with key @name@.\nbindAnimationPlayer_has_animation :: MethodBind\nbindAnimationPlayer_has_animation\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"has_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the @AnimationPlayer@ stores an @Animation@ with key @name@.\nhas_animation ::\n                (AnimationPlayer :< cls, Object :< cls) =>\n                cls -> GodotString -> IO Bool\nhas_animation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_has_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"has_animation\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.has_animation\n\n{-# NOINLINE bindAnimationPlayer_is_active #-}\n\n-- | If @true@, updates animations in response to process-related notifications.\nbindAnimationPlayer_is_active :: MethodBind\nbindAnimationPlayer_is_active\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"is_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, updates animations in response to process-related notifications.\nis_active ::\n            (AnimationPlayer :< cls, Object :< cls) => cls -> IO Bool\nis_active cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_is_active (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"is_active\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.AnimationPlayer.is_active\n\n{-# NOINLINE bindAnimationPlayer_is_playing #-}\n\n-- | Returns @true@ if playing an animation.\nbindAnimationPlayer_is_playing :: MethodBind\nbindAnimationPlayer_is_playing\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"is_playing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if playing an animation.\nis_playing ::\n             (AnimationPlayer :< cls, Object :< cls) => cls -> IO Bool\nis_playing cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_is_playing (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"is_playing\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.is_playing\n\n{-# NOINLINE bindAnimationPlayer_play #-}\n\n-- | Plays the animation with key @name@. Custom blend times and speed can be set. If @custom_speed@ is negative and @from_end@ is @true@, the animation will play backwards (which is equivalent to calling @method play_backwards@).\n--   \t\t\t\tThe @AnimationPlayer@ keeps track of its current or last played animation with @assigned_animation@. If this method is called with that same animation @name@, or with no @name@ parameter, the assigned animation will resume playing if it was paused, or restart if it was stopped (see @method stop@ for both pause and stop). If the animation was already playing, it will keep playing.\n--   \t\t\t\t__Note:__ The animation will be updated the next time the @AnimationPlayer@ is processed. If other variables are updated at the same time this is called, they may be updated too early. To perform the update immediately, call @advance(0)@.\nbindAnimationPlayer_play :: MethodBind\nbindAnimationPlayer_play\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"play\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Plays the animation with key @name@. Custom blend times and speed can be set. If @custom_speed@ is negative and @from_end@ is @true@, the animation will play backwards (which is equivalent to calling @method play_backwards@).\n--   \t\t\t\tThe @AnimationPlayer@ keeps track of its current or last played animation with @assigned_animation@. If this method is called with that same animation @name@, or with no @name@ parameter, the assigned animation will resume playing if it was paused, or restart if it was stopped (see @method stop@ for both pause and stop). If the animation was already playing, it will keep playing.\n--   \t\t\t\t__Note:__ The animation will be updated the next time the @AnimationPlayer@ is processed. If other variables are updated at the same time this is called, they may be updated too early. To perform the update immediately, call @advance(0)@.\nplay ::\n       (AnimationPlayer :< cls, Object :< cls) =>\n       cls ->\n         Maybe GodotString ->\n           Maybe Float -> Maybe Float -> Maybe Bool -> IO ()\nplay cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [defaultedVariant VariantString \"\" arg1,\n       maybe (VariantReal (-1)) toVariant arg2,\n       maybe (VariantReal (1)) toVariant arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_play (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"play\"\n           '[Maybe GodotString, Maybe Float, Maybe Float, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.play\n\n{-# NOINLINE bindAnimationPlayer_play_backwards #-}\n\n-- | Plays the animation with key @name@ in reverse.\n--   \t\t\t\tThis method is a shorthand for @method play@ with @custom_speed = -1.0@ and @from_end = true@, so see its description for more information.\nbindAnimationPlayer_play_backwards :: MethodBind\nbindAnimationPlayer_play_backwards\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"play_backwards\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Plays the animation with key @name@ in reverse.\n--   \t\t\t\tThis method is a shorthand for @method play@ with @custom_speed = -1.0@ and @from_end = true@, so see its description for more information.\nplay_backwards ::\n                 (AnimationPlayer :< cls, Object :< cls) =>\n                 cls -> Maybe GodotString -> Maybe Float -> IO ()\nplay_backwards cls arg1 arg2\n  = withVariantArray\n      [defaultedVariant VariantString \"\" arg1,\n       maybe (VariantReal (-1)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_play_backwards\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"play_backwards\"\n           '[Maybe GodotString, Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.play_backwards\n\n{-# NOINLINE bindAnimationPlayer_queue #-}\n\n-- | Queues an animation for playback once the current one is done.\n--   \t\t\t\t__Note:__ If a looped animation is currently playing, the queued animation will never play unless the looped animation is stopped somehow.\nbindAnimationPlayer_queue :: MethodBind\nbindAnimationPlayer_queue\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"queue\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Queues an animation for playback once the current one is done.\n--   \t\t\t\t__Note:__ If a looped animation is currently playing, the queued animation will never play unless the looped animation is stopped somehow.\nqueue ::\n        (AnimationPlayer :< cls, Object :< cls) =>\n        cls -> GodotString -> IO ()\nqueue cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_queue (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"queue\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.queue\n\n{-# NOINLINE bindAnimationPlayer_remove_animation #-}\n\n-- | Removes the animation with key @name@.\nbindAnimationPlayer_remove_animation :: MethodBind\nbindAnimationPlayer_remove_animation\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"remove_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the animation with key @name@.\nremove_animation ::\n                   (AnimationPlayer :< cls, Object :< cls) =>\n                   cls -> GodotString -> IO ()\nremove_animation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_remove_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"remove_animation\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.remove_animation\n\n{-# NOINLINE bindAnimationPlayer_rename_animation #-}\n\n-- | Renames an existing animation with key @name@ to @newname@.\nbindAnimationPlayer_rename_animation :: MethodBind\nbindAnimationPlayer_rename_animation\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"rename_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Renames an existing animation with key @name@ to @newname@.\nrename_animation ::\n                   (AnimationPlayer :< cls, Object :< cls) =>\n                   cls -> GodotString -> GodotString -> IO ()\nrename_animation cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_rename_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"rename_animation\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.rename_animation\n\n{-# NOINLINE bindAnimationPlayer_seek #-}\n\n-- | Seeks the animation to the @seconds@ point in time (in seconds). If @update@ is @true@, the animation updates too, otherwise it updates at process time. Events between the current frame and @seconds@ are skipped.\nbindAnimationPlayer_seek :: MethodBind\nbindAnimationPlayer_seek\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"seek\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Seeks the animation to the @seconds@ point in time (in seconds). If @update@ is @true@, the animation updates too, otherwise it updates at process time. Events between the current frame and @seconds@ are skipped.\nseek ::\n       (AnimationPlayer :< cls, Object :< cls) =>\n       cls -> Float -> Maybe Bool -> IO ()\nseek cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_seek (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"seek\" '[Float, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.seek\n\n{-# NOINLINE bindAnimationPlayer_set_active #-}\n\n-- | If @true@, updates animations in response to process-related notifications.\nbindAnimationPlayer_set_active :: MethodBind\nbindAnimationPlayer_set_active\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, updates animations in response to process-related notifications.\nset_active ::\n             (AnimationPlayer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_active cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_set_active (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"set_active\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.set_active\n\n{-# NOINLINE bindAnimationPlayer_set_animation_process_mode #-}\n\n-- | The process notification in which to update animations.\nbindAnimationPlayer_set_animation_process_mode :: MethodBind\nbindAnimationPlayer_set_animation_process_mode\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_animation_process_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The process notification in which to update animations.\nset_animation_process_mode ::\n                             (AnimationPlayer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_animation_process_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationPlayer_set_animation_process_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"set_animation_process_mode\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.set_animation_process_mode\n\n{-# NOINLINE bindAnimationPlayer_set_assigned_animation #-}\n\n-- | If playing, the current animation; otherwise, the animation last played. When set, would change the animation, but would not play it unless currently playing. See also @current_animation@.\nbindAnimationPlayer_set_assigned_animation :: MethodBind\nbindAnimationPlayer_set_assigned_animation\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_assigned_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If playing, the current animation; otherwise, the animation last played. When set, would change the animation, but would not play it unless currently playing. See also @current_animation@.\nset_assigned_animation ::\n                         (AnimationPlayer :< cls, Object :< cls) =>\n                         cls -> GodotString -> IO ()\nset_assigned_animation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_set_assigned_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"set_assigned_animation\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.set_assigned_animation\n\n{-# NOINLINE bindAnimationPlayer_set_autoplay #-}\n\n-- | The name of the animation to play when the scene loads.\nbindAnimationPlayer_set_autoplay :: MethodBind\nbindAnimationPlayer_set_autoplay\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_autoplay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The name of the animation to play when the scene loads.\nset_autoplay ::\n               (AnimationPlayer :< cls, Object :< cls) =>\n               cls -> GodotString -> IO ()\nset_autoplay cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_set_autoplay\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"set_autoplay\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.set_autoplay\n\n{-# NOINLINE bindAnimationPlayer_set_blend_time #-}\n\n-- | Specifies a blend time (in seconds) between two animations, referenced by their names.\nbindAnimationPlayer_set_blend_time :: MethodBind\nbindAnimationPlayer_set_blend_time\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_blend_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies a blend time (in seconds) between two animations, referenced by their names.\nset_blend_time ::\n                 (AnimationPlayer :< cls, Object :< cls) =>\n                 cls -> GodotString -> GodotString -> Float -> IO ()\nset_blend_time cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_set_blend_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"set_blend_time\"\n           '[GodotString, GodotString, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.set_blend_time\n\n{-# NOINLINE bindAnimationPlayer_set_current_animation #-}\n\n-- | The name of the currently playing animation. If no animation is playing, the property's value is an empty string. Changing this value does not restart the animation. See @method play@ for more information on playing animations.\n--   \t\t\t__Note__: while this property appears in the inspector, it's not meant to be edited and it's not saved in the scene. This property is mainly used to get the currently playing animation, and internally for animation playback tracks. For more information, see @Animation@.\nbindAnimationPlayer_set_current_animation :: MethodBind\nbindAnimationPlayer_set_current_animation\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_current_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The name of the currently playing animation. If no animation is playing, the property's value is an empty string. Changing this value does not restart the animation. See @method play@ for more information on playing animations.\n--   \t\t\t__Note__: while this property appears in the inspector, it's not meant to be edited and it's not saved in the scene. This property is mainly used to get the currently playing animation, and internally for animation playback tracks. For more information, see @Animation@.\nset_current_animation ::\n                        (AnimationPlayer :< cls, Object :< cls) =>\n                        cls -> GodotString -> IO ()\nset_current_animation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_set_current_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"set_current_animation\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.set_current_animation\n\n{-# NOINLINE bindAnimationPlayer_set_default_blend_time #-}\n\n-- | The default time in which to blend animations. Ranges from 0 to 4096 with 0.01 precision.\nbindAnimationPlayer_set_default_blend_time :: MethodBind\nbindAnimationPlayer_set_default_blend_time\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_default_blend_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The default time in which to blend animations. Ranges from 0 to 4096 with 0.01 precision.\nset_default_blend_time ::\n                         (AnimationPlayer :< cls, Object :< cls) => cls -> Float -> IO ()\nset_default_blend_time cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_set_default_blend_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"set_default_blend_time\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.set_default_blend_time\n\n{-# NOINLINE bindAnimationPlayer_set_method_call_mode #-}\n\n-- | The call mode to use for Call Method tracks.\nbindAnimationPlayer_set_method_call_mode :: MethodBind\nbindAnimationPlayer_set_method_call_mode\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_method_call_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The call mode to use for Call Method tracks.\nset_method_call_mode ::\n                       (AnimationPlayer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_method_call_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_set_method_call_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"set_method_call_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.set_method_call_mode\n\n{-# NOINLINE bindAnimationPlayer_set_root #-}\n\n-- | The node from which node path references will travel.\nbindAnimationPlayer_set_root :: MethodBind\nbindAnimationPlayer_set_root\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_root\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node from which node path references will travel.\nset_root ::\n           (AnimationPlayer :< cls, Object :< cls) => cls -> NodePath -> IO ()\nset_root cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_set_root (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"set_root\" '[NodePath] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.set_root\n\n{-# NOINLINE bindAnimationPlayer_set_speed_scale #-}\n\n-- | The speed scaling ratio. For instance, if this value is 1, then the animation plays at normal speed. If it's 0.5, then it plays at half speed. If it's 2, then it plays at double speed.\nbindAnimationPlayer_set_speed_scale :: MethodBind\nbindAnimationPlayer_set_speed_scale\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_speed_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The speed scaling ratio. For instance, if this value is 1, then the animation plays at normal speed. If it's 0.5, then it plays at half speed. If it's 2, then it plays at double speed.\nset_speed_scale ::\n                  (AnimationPlayer :< cls, Object :< cls) => cls -> Float -> IO ()\nset_speed_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_set_speed_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"set_speed_scale\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.set_speed_scale\n\n{-# NOINLINE bindAnimationPlayer_stop #-}\n\n-- | Stops or pauses the currently playing animation. If @reset@ is @true@, the animation position is reset to @0@ and the playback speed is reset to @1.0@.\n--   \t\t\t\tIf @reset@ is @false@, the @current_animation_position@ will be kept and calling @method play@ or @method play_backwards@ without arguments or with the same animation name as @assigned_animation@ will resume the animation.\nbindAnimationPlayer_stop :: MethodBind\nbindAnimationPlayer_stop\n  = unsafePerformIO $\n      withCString \"AnimationPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"stop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops or pauses the currently playing animation. If @reset@ is @true@, the animation position is reset to @0@ and the playback speed is reset to @1.0@.\n--   \t\t\t\tIf @reset@ is @false@, the @current_animation_position@ will be kept and calling @method play@ or @method play_backwards@ without arguments or with the same animation name as @assigned_animation@ will resume the animation.\nstop ::\n       (AnimationPlayer :< cls, Object :< cls) =>\n       cls -> Maybe Bool -> IO ()\nstop cls arg1\n  = withVariantArray [maybe (VariantBool True) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationPlayer_stop (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationPlayer \"stop\" '[Maybe Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationPlayer.stop"
  },
  {
    "path": "src/Godot/Core/AnimationRootNode.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationRootNode () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AnimationNode()"
  },
  {
    "path": "src/Godot/Core/AnimationTree.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationTree\n       (Godot.Core.AnimationTree._ANIMATION_PROCESS_MANUAL,\n        Godot.Core.AnimationTree._ANIMATION_PROCESS_PHYSICS,\n        Godot.Core.AnimationTree._ANIMATION_PROCESS_IDLE,\n        Godot.Core.AnimationTree._clear_caches,\n        Godot.Core.AnimationTree._node_removed,\n        Godot.Core.AnimationTree._tree_changed,\n        Godot.Core.AnimationTree._update_properties,\n        Godot.Core.AnimationTree.advance,\n        Godot.Core.AnimationTree.get_animation_player,\n        Godot.Core.AnimationTree.get_process_mode,\n        Godot.Core.AnimationTree.get_root_motion_track,\n        Godot.Core.AnimationTree.get_root_motion_transform,\n        Godot.Core.AnimationTree.get_tree_root,\n        Godot.Core.AnimationTree.is_active,\n        Godot.Core.AnimationTree.rename_parameter,\n        Godot.Core.AnimationTree.set_active,\n        Godot.Core.AnimationTree.set_animation_player,\n        Godot.Core.AnimationTree.set_process_mode,\n        Godot.Core.AnimationTree.set_root_motion_track,\n        Godot.Core.AnimationTree.set_tree_root)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\n_ANIMATION_PROCESS_MANUAL :: Int\n_ANIMATION_PROCESS_MANUAL = 2\n\n_ANIMATION_PROCESS_PHYSICS :: Int\n_ANIMATION_PROCESS_PHYSICS = 0\n\n_ANIMATION_PROCESS_IDLE :: Int\n_ANIMATION_PROCESS_IDLE = 1\n\ninstance NodeProperty AnimationTree \"active\" Bool 'False where\n        nodeProperty = (is_active, wrapDroppingSetter set_active, Nothing)\n\ninstance NodeProperty AnimationTree \"anim_player\" NodePath 'False\n         where\n        nodeProperty\n          = (get_animation_player, wrapDroppingSetter set_animation_player,\n             Nothing)\n\ninstance NodeProperty AnimationTree \"process_mode\" Int 'False where\n        nodeProperty\n          = (get_process_mode, wrapDroppingSetter set_process_mode, Nothing)\n\ninstance NodeProperty AnimationTree \"root_motion_track\" NodePath\n           'False\n         where\n        nodeProperty\n          = (get_root_motion_track, wrapDroppingSetter set_root_motion_track,\n             Nothing)\n\ninstance NodeProperty AnimationTree \"tree_root\" AnimationNode\n           'False\n         where\n        nodeProperty\n          = (get_tree_root, wrapDroppingSetter set_tree_root, Nothing)\n\n{-# NOINLINE bindAnimationTree__clear_caches #-}\n\nbindAnimationTree__clear_caches :: MethodBind\nbindAnimationTree__clear_caches\n  = unsafePerformIO $\n      withCString \"AnimationTree\" $\n        \\ clsNamePtr ->\n          withCString \"_clear_caches\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_clear_caches ::\n                (AnimationTree :< cls, Object :< cls) => cls -> IO ()\n_clear_caches cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTree__clear_caches (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTree \"_clear_caches\" '[] (IO ()) where\n        nodeMethod = Godot.Core.AnimationTree._clear_caches\n\n{-# NOINLINE bindAnimationTree__node_removed #-}\n\nbindAnimationTree__node_removed :: MethodBind\nbindAnimationTree__node_removed\n  = unsafePerformIO $\n      withCString \"AnimationTree\" $\n        \\ clsNamePtr ->\n          withCString \"_node_removed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_node_removed ::\n                (AnimationTree :< cls, Object :< cls) => cls -> Node -> IO ()\n_node_removed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTree__node_removed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTree \"_node_removed\" '[Node] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTree._node_removed\n\n{-# NOINLINE bindAnimationTree__tree_changed #-}\n\nbindAnimationTree__tree_changed :: MethodBind\nbindAnimationTree__tree_changed\n  = unsafePerformIO $\n      withCString \"AnimationTree\" $\n        \\ clsNamePtr ->\n          withCString \"_tree_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_tree_changed ::\n                (AnimationTree :< cls, Object :< cls) => cls -> IO ()\n_tree_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTree__tree_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTree \"_tree_changed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.AnimationTree._tree_changed\n\n{-# NOINLINE bindAnimationTree__update_properties #-}\n\nbindAnimationTree__update_properties :: MethodBind\nbindAnimationTree__update_properties\n  = unsafePerformIO $\n      withCString \"AnimationTree\" $\n        \\ clsNamePtr ->\n          withCString \"_update_properties\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_properties ::\n                     (AnimationTree :< cls, Object :< cls) => cls -> IO ()\n_update_properties cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTree__update_properties\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTree \"_update_properties\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTree._update_properties\n\n{-# NOINLINE bindAnimationTree_advance #-}\n\n-- | Manually advance the animations by the specified time (in seconds).\nbindAnimationTree_advance :: MethodBind\nbindAnimationTree_advance\n  = unsafePerformIO $\n      withCString \"AnimationTree\" $\n        \\ clsNamePtr ->\n          withCString \"advance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Manually advance the animations by the specified time (in seconds).\nadvance ::\n          (AnimationTree :< cls, Object :< cls) => cls -> Float -> IO ()\nadvance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTree_advance (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTree \"advance\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.AnimationTree.advance\n\n{-# NOINLINE bindAnimationTree_get_animation_player #-}\n\n-- | The path to the @AnimationPlayer@ used for animating.\nbindAnimationTree_get_animation_player :: MethodBind\nbindAnimationTree_get_animation_player\n  = unsafePerformIO $\n      withCString \"AnimationTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_animation_player\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The path to the @AnimationPlayer@ used for animating.\nget_animation_player ::\n                       (AnimationTree :< cls, Object :< cls) => cls -> IO NodePath\nget_animation_player cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTree_get_animation_player\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTree \"get_animation_player\" '[]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.AnimationTree.get_animation_player\n\n{-# NOINLINE bindAnimationTree_get_process_mode #-}\n\n-- | The process mode of this @AnimationTree@. See @enum AnimationProcessMode@ for available modes.\nbindAnimationTree_get_process_mode :: MethodBind\nbindAnimationTree_get_process_mode\n  = unsafePerformIO $\n      withCString \"AnimationTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_process_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The process mode of this @AnimationTree@. See @enum AnimationProcessMode@ for available modes.\nget_process_mode ::\n                   (AnimationTree :< cls, Object :< cls) => cls -> IO Int\nget_process_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTree_get_process_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTree \"get_process_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.AnimationTree.get_process_mode\n\n{-# NOINLINE bindAnimationTree_get_root_motion_track #-}\n\n-- | The path to the Animation track used for root motion. Paths must be valid scene-tree paths to a node, and must be specified starting from the parent node of the node that will reproduce the animation. To specify a track that controls properties or bones, append its name after the path, separated by @\":\"@. For example, @\"character/skeleton:ankle\"@ or @\"character/mesh:transform/local\"@.\n--   \t\t\tIf the track has type @Animation.TYPE_TRANSFORM@, the transformation will be cancelled visually, and the animation will appear to stay in place.\nbindAnimationTree_get_root_motion_track :: MethodBind\nbindAnimationTree_get_root_motion_track\n  = unsafePerformIO $\n      withCString \"AnimationTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_root_motion_track\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The path to the Animation track used for root motion. Paths must be valid scene-tree paths to a node, and must be specified starting from the parent node of the node that will reproduce the animation. To specify a track that controls properties or bones, append its name after the path, separated by @\":\"@. For example, @\"character/skeleton:ankle\"@ or @\"character/mesh:transform/local\"@.\n--   \t\t\tIf the track has type @Animation.TYPE_TRANSFORM@, the transformation will be cancelled visually, and the animation will appear to stay in place.\nget_root_motion_track ::\n                        (AnimationTree :< cls, Object :< cls) => cls -> IO NodePath\nget_root_motion_track cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTree_get_root_motion_track\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTree \"get_root_motion_track\" '[]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.AnimationTree.get_root_motion_track\n\n{-# NOINLINE bindAnimationTree_get_root_motion_transform #-}\n\n-- | Retrieve the motion of the @root_motion_track@ as a @Transform@ that can be used elsewhere. If @root_motion_track@ is not a path to a track of type @Animation.TYPE_TRANSFORM@, returns an identity transformation.\nbindAnimationTree_get_root_motion_transform :: MethodBind\nbindAnimationTree_get_root_motion_transform\n  = unsafePerformIO $\n      withCString \"AnimationTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_root_motion_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Retrieve the motion of the @root_motion_track@ as a @Transform@ that can be used elsewhere. If @root_motion_track@ is not a path to a track of type @Animation.TYPE_TRANSFORM@, returns an identity transformation.\nget_root_motion_transform ::\n                            (AnimationTree :< cls, Object :< cls) => cls -> IO Transform\nget_root_motion_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTree_get_root_motion_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTree \"get_root_motion_transform\" '[]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.AnimationTree.get_root_motion_transform\n\n{-# NOINLINE bindAnimationTree_get_tree_root #-}\n\n-- | The root animation node of this @AnimationTree@. See @AnimationNode@.\nbindAnimationTree_get_tree_root :: MethodBind\nbindAnimationTree_get_tree_root\n  = unsafePerformIO $\n      withCString \"AnimationTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_tree_root\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The root animation node of this @AnimationTree@. See @AnimationNode@.\nget_tree_root ::\n                (AnimationTree :< cls, Object :< cls) => cls -> IO AnimationNode\nget_tree_root cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTree_get_tree_root (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTree \"get_tree_root\" '[]\n           (IO AnimationNode)\n         where\n        nodeMethod = Godot.Core.AnimationTree.get_tree_root\n\n{-# NOINLINE bindAnimationTree_is_active #-}\n\n-- | If @true@, the @AnimationTree@ will be processing.\nbindAnimationTree_is_active :: MethodBind\nbindAnimationTree_is_active\n  = unsafePerformIO $\n      withCString \"AnimationTree\" $\n        \\ clsNamePtr ->\n          withCString \"is_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @AnimationTree@ will be processing.\nis_active ::\n            (AnimationTree :< cls, Object :< cls) => cls -> IO Bool\nis_active cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTree_is_active (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTree \"is_active\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.AnimationTree.is_active\n\n{-# NOINLINE bindAnimationTree_rename_parameter #-}\n\nbindAnimationTree_rename_parameter :: MethodBind\nbindAnimationTree_rename_parameter\n  = unsafePerformIO $\n      withCString \"AnimationTree\" $\n        \\ clsNamePtr ->\n          withCString \"rename_parameter\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nrename_parameter ::\n                   (AnimationTree :< cls, Object :< cls) =>\n                   cls -> GodotString -> GodotString -> IO ()\nrename_parameter cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTree_rename_parameter\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTree \"rename_parameter\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTree.rename_parameter\n\n{-# NOINLINE bindAnimationTree_set_active #-}\n\n-- | If @true@, the @AnimationTree@ will be processing.\nbindAnimationTree_set_active :: MethodBind\nbindAnimationTree_set_active\n  = unsafePerformIO $\n      withCString \"AnimationTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @AnimationTree@ will be processing.\nset_active ::\n             (AnimationTree :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_active cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTree_set_active (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTree \"set_active\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTree.set_active\n\n{-# NOINLINE bindAnimationTree_set_animation_player #-}\n\n-- | The path to the @AnimationPlayer@ used for animating.\nbindAnimationTree_set_animation_player :: MethodBind\nbindAnimationTree_set_animation_player\n  = unsafePerformIO $\n      withCString \"AnimationTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_animation_player\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The path to the @AnimationPlayer@ used for animating.\nset_animation_player ::\n                       (AnimationTree :< cls, Object :< cls) => cls -> NodePath -> IO ()\nset_animation_player cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTree_set_animation_player\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTree \"set_animation_player\"\n           '[NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTree.set_animation_player\n\n{-# NOINLINE bindAnimationTree_set_process_mode #-}\n\n-- | The process mode of this @AnimationTree@. See @enum AnimationProcessMode@ for available modes.\nbindAnimationTree_set_process_mode :: MethodBind\nbindAnimationTree_set_process_mode\n  = unsafePerformIO $\n      withCString \"AnimationTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_process_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The process mode of this @AnimationTree@. See @enum AnimationProcessMode@ for available modes.\nset_process_mode ::\n                   (AnimationTree :< cls, Object :< cls) => cls -> Int -> IO ()\nset_process_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTree_set_process_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTree \"set_process_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTree.set_process_mode\n\n{-# NOINLINE bindAnimationTree_set_root_motion_track #-}\n\n-- | The path to the Animation track used for root motion. Paths must be valid scene-tree paths to a node, and must be specified starting from the parent node of the node that will reproduce the animation. To specify a track that controls properties or bones, append its name after the path, separated by @\":\"@. For example, @\"character/skeleton:ankle\"@ or @\"character/mesh:transform/local\"@.\n--   \t\t\tIf the track has type @Animation.TYPE_TRANSFORM@, the transformation will be cancelled visually, and the animation will appear to stay in place.\nbindAnimationTree_set_root_motion_track :: MethodBind\nbindAnimationTree_set_root_motion_track\n  = unsafePerformIO $\n      withCString \"AnimationTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_root_motion_track\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The path to the Animation track used for root motion. Paths must be valid scene-tree paths to a node, and must be specified starting from the parent node of the node that will reproduce the animation. To specify a track that controls properties or bones, append its name after the path, separated by @\":\"@. For example, @\"character/skeleton:ankle\"@ or @\"character/mesh:transform/local\"@.\n--   \t\t\tIf the track has type @Animation.TYPE_TRANSFORM@, the transformation will be cancelled visually, and the animation will appear to stay in place.\nset_root_motion_track ::\n                        (AnimationTree :< cls, Object :< cls) => cls -> NodePath -> IO ()\nset_root_motion_track cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTree_set_root_motion_track\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTree \"set_root_motion_track\"\n           '[NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTree.set_root_motion_track\n\n{-# NOINLINE bindAnimationTree_set_tree_root #-}\n\n-- | The root animation node of this @AnimationTree@. See @AnimationNode@.\nbindAnimationTree_set_tree_root :: MethodBind\nbindAnimationTree_set_tree_root\n  = unsafePerformIO $\n      withCString \"AnimationTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_tree_root\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The root animation node of this @AnimationTree@. See @AnimationNode@.\nset_tree_root ::\n                (AnimationTree :< cls, Object :< cls) =>\n                cls -> AnimationNode -> IO ()\nset_tree_root cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTree_set_tree_root (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTree \"set_tree_root\" '[AnimationNode]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTree.set_tree_root"
  },
  {
    "path": "src/Godot/Core/AnimationTreePlayer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AnimationTreePlayer\n       (Godot.Core.AnimationTreePlayer._NODE_TIMESEEK,\n        Godot.Core.AnimationTreePlayer._NODE_OUTPUT,\n        Godot.Core.AnimationTreePlayer._NODE_ANIMATION,\n        Godot.Core.AnimationTreePlayer._NODE_BLEND2,\n        Godot.Core.AnimationTreePlayer._NODE_TIMESCALE,\n        Godot.Core.AnimationTreePlayer._NODE_BLEND4,\n        Godot.Core.AnimationTreePlayer._NODE_BLEND3,\n        Godot.Core.AnimationTreePlayer._NODE_TRANSITION,\n        Godot.Core.AnimationTreePlayer._NODE_MIX,\n        Godot.Core.AnimationTreePlayer._NODE_ONESHOT,\n        Godot.Core.AnimationTreePlayer._ANIMATION_PROCESS_PHYSICS,\n        Godot.Core.AnimationTreePlayer._ANIMATION_PROCESS_IDLE,\n        Godot.Core.AnimationTreePlayer.add_node,\n        Godot.Core.AnimationTreePlayer.advance,\n        Godot.Core.AnimationTreePlayer.animation_node_get_animation,\n        Godot.Core.AnimationTreePlayer.animation_node_get_master_animation,\n        Godot.Core.AnimationTreePlayer.animation_node_get_position,\n        Godot.Core.AnimationTreePlayer.animation_node_set_animation,\n        Godot.Core.AnimationTreePlayer.animation_node_set_filter_path,\n        Godot.Core.AnimationTreePlayer.animation_node_set_master_animation,\n        Godot.Core.AnimationTreePlayer.are_nodes_connected,\n        Godot.Core.AnimationTreePlayer.blend2_node_get_amount,\n        Godot.Core.AnimationTreePlayer.blend2_node_set_amount,\n        Godot.Core.AnimationTreePlayer.blend2_node_set_filter_path,\n        Godot.Core.AnimationTreePlayer.blend3_node_get_amount,\n        Godot.Core.AnimationTreePlayer.blend3_node_set_amount,\n        Godot.Core.AnimationTreePlayer.blend4_node_get_amount,\n        Godot.Core.AnimationTreePlayer.blend4_node_set_amount,\n        Godot.Core.AnimationTreePlayer.connect_nodes,\n        Godot.Core.AnimationTreePlayer.disconnect_nodes,\n        Godot.Core.AnimationTreePlayer.get_animation_process_mode,\n        Godot.Core.AnimationTreePlayer.get_base_path,\n        Godot.Core.AnimationTreePlayer.get_master_player,\n        Godot.Core.AnimationTreePlayer.get_node_list,\n        Godot.Core.AnimationTreePlayer.is_active,\n        Godot.Core.AnimationTreePlayer.mix_node_get_amount,\n        Godot.Core.AnimationTreePlayer.mix_node_set_amount,\n        Godot.Core.AnimationTreePlayer.node_exists,\n        Godot.Core.AnimationTreePlayer.node_get_input_count,\n        Godot.Core.AnimationTreePlayer.node_get_input_source,\n        Godot.Core.AnimationTreePlayer.node_get_position,\n        Godot.Core.AnimationTreePlayer.node_get_type,\n        Godot.Core.AnimationTreePlayer.node_rename,\n        Godot.Core.AnimationTreePlayer.node_set_position,\n        Godot.Core.AnimationTreePlayer.oneshot_node_get_autorestart_delay,\n        Godot.Core.AnimationTreePlayer.oneshot_node_get_autorestart_random_delay,\n        Godot.Core.AnimationTreePlayer.oneshot_node_get_fadein_time,\n        Godot.Core.AnimationTreePlayer.oneshot_node_get_fadeout_time,\n        Godot.Core.AnimationTreePlayer.oneshot_node_has_autorestart,\n        Godot.Core.AnimationTreePlayer.oneshot_node_is_active,\n        Godot.Core.AnimationTreePlayer.oneshot_node_set_autorestart,\n        Godot.Core.AnimationTreePlayer.oneshot_node_set_autorestart_delay,\n        Godot.Core.AnimationTreePlayer.oneshot_node_set_autorestart_random_delay,\n        Godot.Core.AnimationTreePlayer.oneshot_node_set_fadein_time,\n        Godot.Core.AnimationTreePlayer.oneshot_node_set_fadeout_time,\n        Godot.Core.AnimationTreePlayer.oneshot_node_set_filter_path,\n        Godot.Core.AnimationTreePlayer.oneshot_node_start,\n        Godot.Core.AnimationTreePlayer.oneshot_node_stop,\n        Godot.Core.AnimationTreePlayer.recompute_caches,\n        Godot.Core.AnimationTreePlayer.remove_node,\n        Godot.Core.AnimationTreePlayer.reset,\n        Godot.Core.AnimationTreePlayer.set_active,\n        Godot.Core.AnimationTreePlayer.set_animation_process_mode,\n        Godot.Core.AnimationTreePlayer.set_base_path,\n        Godot.Core.AnimationTreePlayer.set_master_player,\n        Godot.Core.AnimationTreePlayer.timescale_node_get_scale,\n        Godot.Core.AnimationTreePlayer.timescale_node_set_scale,\n        Godot.Core.AnimationTreePlayer.timeseek_node_seek,\n        Godot.Core.AnimationTreePlayer.transition_node_delete_input,\n        Godot.Core.AnimationTreePlayer.transition_node_get_current,\n        Godot.Core.AnimationTreePlayer.transition_node_get_input_count,\n        Godot.Core.AnimationTreePlayer.transition_node_get_xfade_time,\n        Godot.Core.AnimationTreePlayer.transition_node_has_input_auto_advance,\n        Godot.Core.AnimationTreePlayer.transition_node_set_current,\n        Godot.Core.AnimationTreePlayer.transition_node_set_input_auto_advance,\n        Godot.Core.AnimationTreePlayer.transition_node_set_input_count,\n        Godot.Core.AnimationTreePlayer.transition_node_set_xfade_time)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\n_NODE_TIMESEEK :: Int\n_NODE_TIMESEEK = 8\n\n_NODE_OUTPUT :: Int\n_NODE_OUTPUT = 0\n\n_NODE_ANIMATION :: Int\n_NODE_ANIMATION = 1\n\n_NODE_BLEND2 :: Int\n_NODE_BLEND2 = 4\n\n_NODE_TIMESCALE :: Int\n_NODE_TIMESCALE = 7\n\n_NODE_BLEND4 :: Int\n_NODE_BLEND4 = 6\n\n_NODE_BLEND3 :: Int\n_NODE_BLEND3 = 5\n\n_NODE_TRANSITION :: Int\n_NODE_TRANSITION = 9\n\n_NODE_MIX :: Int\n_NODE_MIX = 3\n\n_NODE_ONESHOT :: Int\n_NODE_ONESHOT = 2\n\n_ANIMATION_PROCESS_PHYSICS :: Int\n_ANIMATION_PROCESS_PHYSICS = 0\n\n_ANIMATION_PROCESS_IDLE :: Int\n_ANIMATION_PROCESS_IDLE = 1\n\ninstance NodeProperty AnimationTreePlayer \"active\" Bool 'False\n         where\n        nodeProperty = (is_active, wrapDroppingSetter set_active, Nothing)\n\ninstance NodeProperty AnimationTreePlayer \"base_path\" NodePath\n           'False\n         where\n        nodeProperty\n          = (get_base_path, wrapDroppingSetter set_base_path, Nothing)\n\ninstance NodeProperty AnimationTreePlayer \"master_player\" NodePath\n           'False\n         where\n        nodeProperty\n          = (get_master_player, wrapDroppingSetter set_master_player,\n             Nothing)\n\ninstance NodeProperty AnimationTreePlayer \"playback_process_mode\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_animation_process_mode,\n             wrapDroppingSetter set_animation_process_mode, Nothing)\n\n{-# NOINLINE bindAnimationTreePlayer_add_node #-}\n\n-- | Adds a @type@ node to the graph with name @id@.\nbindAnimationTreePlayer_add_node :: MethodBind\nbindAnimationTreePlayer_add_node\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"add_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @type@ node to the graph with name @id@.\nadd_node ::\n           (AnimationTreePlayer :< cls, Object :< cls) =>\n           cls -> Int -> GodotString -> IO ()\nadd_node cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_add_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"add_node\"\n           '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.add_node\n\n{-# NOINLINE bindAnimationTreePlayer_advance #-}\n\n-- | Shifts position in the animation timeline. @delta@ is the time in seconds to shift. Events between the current frame and @delta@ are handled.\nbindAnimationTreePlayer_advance :: MethodBind\nbindAnimationTreePlayer_advance\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"advance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Shifts position in the animation timeline. @delta@ is the time in seconds to shift. Events between the current frame and @delta@ are handled.\nadvance ::\n          (AnimationTreePlayer :< cls, Object :< cls) =>\n          cls -> Float -> IO ()\nadvance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_advance (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"advance\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.advance\n\n{-# NOINLINE bindAnimationTreePlayer_animation_node_get_animation\n             #-}\n\n-- | Returns the @AnimationPlayer@'s @Animation@ bound to the @AnimationTreePlayer@'s animation node with name @id@.\nbindAnimationTreePlayer_animation_node_get_animation :: MethodBind\nbindAnimationTreePlayer_animation_node_get_animation\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"animation_node_get_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @AnimationPlayer@'s @Animation@ bound to the @AnimationTreePlayer@'s animation node with name @id@.\nanimation_node_get_animation ::\n                               (AnimationTreePlayer :< cls, Object :< cls) =>\n                               cls -> GodotString -> IO Animation\nanimation_node_get_animation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_animation_node_get_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"animation_node_get_animation\"\n           '[GodotString]\n           (IO Animation)\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.animation_node_get_animation\n\n{-# NOINLINE bindAnimationTreePlayer_animation_node_get_master_animation\n             #-}\n\n-- | Returns the name of the @master_player@'s @Animation@ bound to this animation node.\nbindAnimationTreePlayer_animation_node_get_master_animation ::\n                                                            MethodBind\nbindAnimationTreePlayer_animation_node_get_master_animation\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"animation_node_get_master_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of the @master_player@'s @Animation@ bound to this animation node.\nanimation_node_get_master_animation ::\n                                      (AnimationTreePlayer :< cls, Object :< cls) =>\n                                      cls -> GodotString -> IO GodotString\nanimation_node_get_master_animation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_animation_node_get_master_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"animation_node_get_master_animation\"\n           '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.animation_node_get_master_animation\n\n{-# NOINLINE bindAnimationTreePlayer_animation_node_get_position\n             #-}\n\n-- | Returns the absolute playback timestamp of the animation node with name @id@.\nbindAnimationTreePlayer_animation_node_get_position :: MethodBind\nbindAnimationTreePlayer_animation_node_get_position\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"animation_node_get_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the absolute playback timestamp of the animation node with name @id@.\nanimation_node_get_position ::\n                              (AnimationTreePlayer :< cls, Object :< cls) =>\n                              cls -> GodotString -> IO Float\nanimation_node_get_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_animation_node_get_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"animation_node_get_position\"\n           '[GodotString]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.animation_node_get_position\n\n{-# NOINLINE bindAnimationTreePlayer_animation_node_set_animation\n             #-}\n\n-- | Binds a new @Animation@ from the @master_player@ to the @AnimationTreePlayer@'s animation node with name @id@.\nbindAnimationTreePlayer_animation_node_set_animation :: MethodBind\nbindAnimationTreePlayer_animation_node_set_animation\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"animation_node_set_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Binds a new @Animation@ from the @master_player@ to the @AnimationTreePlayer@'s animation node with name @id@.\nanimation_node_set_animation ::\n                               (AnimationTreePlayer :< cls, Object :< cls) =>\n                               cls -> GodotString -> Animation -> IO ()\nanimation_node_set_animation cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_animation_node_set_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"animation_node_set_animation\"\n           '[GodotString, Animation]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.animation_node_set_animation\n\n{-# NOINLINE bindAnimationTreePlayer_animation_node_set_filter_path\n             #-}\n\n-- | If @enable@ is @true@, the animation node with ID @id@ turns off the track modifying the property at @path@. The modified node's children continue to animate.\nbindAnimationTreePlayer_animation_node_set_filter_path ::\n                                                       MethodBind\nbindAnimationTreePlayer_animation_node_set_filter_path\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"animation_node_set_filter_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @enable@ is @true@, the animation node with ID @id@ turns off the track modifying the property at @path@. The modified node's children continue to animate.\nanimation_node_set_filter_path ::\n                                 (AnimationTreePlayer :< cls, Object :< cls) =>\n                                 cls -> GodotString -> NodePath -> Bool -> IO ()\nanimation_node_set_filter_path cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_animation_node_set_filter_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"animation_node_set_filter_path\"\n           '[GodotString, NodePath, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.animation_node_set_filter_path\n\n{-# NOINLINE bindAnimationTreePlayer_animation_node_set_master_animation\n             #-}\n\n-- | Binds the @Animation@ named @source@ from @master_player@ to the animation node @id@. Recalculates caches.\nbindAnimationTreePlayer_animation_node_set_master_animation ::\n                                                            MethodBind\nbindAnimationTreePlayer_animation_node_set_master_animation\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"animation_node_set_master_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Binds the @Animation@ named @source@ from @master_player@ to the animation node @id@. Recalculates caches.\nanimation_node_set_master_animation ::\n                                      (AnimationTreePlayer :< cls, Object :< cls) =>\n                                      cls -> GodotString -> GodotString -> IO ()\nanimation_node_set_master_animation cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_animation_node_set_master_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"animation_node_set_master_animation\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.animation_node_set_master_animation\n\n{-# NOINLINE bindAnimationTreePlayer_are_nodes_connected #-}\n\n-- | Returns whether node @id@ and @dst_id@ are connected at the specified slot.\nbindAnimationTreePlayer_are_nodes_connected :: MethodBind\nbindAnimationTreePlayer_are_nodes_connected\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"are_nodes_connected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether node @id@ and @dst_id@ are connected at the specified slot.\nare_nodes_connected ::\n                      (AnimationTreePlayer :< cls, Object :< cls) =>\n                      cls -> GodotString -> GodotString -> Int -> IO Bool\nare_nodes_connected cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_are_nodes_connected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"are_nodes_connected\"\n           '[GodotString, GodotString, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.are_nodes_connected\n\n{-# NOINLINE bindAnimationTreePlayer_blend2_node_get_amount #-}\n\n-- | Returns the blend amount of a Blend2 node given its name.\nbindAnimationTreePlayer_blend2_node_get_amount :: MethodBind\nbindAnimationTreePlayer_blend2_node_get_amount\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"blend2_node_get_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the blend amount of a Blend2 node given its name.\nblend2_node_get_amount ::\n                         (AnimationTreePlayer :< cls, Object :< cls) =>\n                         cls -> GodotString -> IO Float\nblend2_node_get_amount cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_blend2_node_get_amount\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"blend2_node_get_amount\"\n           '[GodotString]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.blend2_node_get_amount\n\n{-# NOINLINE bindAnimationTreePlayer_blend2_node_set_amount #-}\n\n-- | Sets the blend amount of a Blend2 node given its name and value.\n--   \t\t\t\tA Blend2 node blends two animations (A and B) with the amount between 0 and 1.\n--   \t\t\t\tAt 0, output is input A. Towards 1, the influence of A gets lessened, the influence of B gets raised. At 1, output is input B.\nbindAnimationTreePlayer_blend2_node_set_amount :: MethodBind\nbindAnimationTreePlayer_blend2_node_set_amount\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"blend2_node_set_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the blend amount of a Blend2 node given its name and value.\n--   \t\t\t\tA Blend2 node blends two animations (A and B) with the amount between 0 and 1.\n--   \t\t\t\tAt 0, output is input A. Towards 1, the influence of A gets lessened, the influence of B gets raised. At 1, output is input B.\nblend2_node_set_amount ::\n                         (AnimationTreePlayer :< cls, Object :< cls) =>\n                         cls -> GodotString -> Float -> IO ()\nblend2_node_set_amount cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_blend2_node_set_amount\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"blend2_node_set_amount\"\n           '[GodotString, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.blend2_node_set_amount\n\n{-# NOINLINE bindAnimationTreePlayer_blend2_node_set_filter_path\n             #-}\n\n-- | If @enable@ is @true@, the Blend2 node with name @id@ turns off the track modifying the property at @path@. The modified node's children continue to animate.\nbindAnimationTreePlayer_blend2_node_set_filter_path :: MethodBind\nbindAnimationTreePlayer_blend2_node_set_filter_path\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"blend2_node_set_filter_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @enable@ is @true@, the Blend2 node with name @id@ turns off the track modifying the property at @path@. The modified node's children continue to animate.\nblend2_node_set_filter_path ::\n                              (AnimationTreePlayer :< cls, Object :< cls) =>\n                              cls -> GodotString -> NodePath -> Bool -> IO ()\nblend2_node_set_filter_path cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_blend2_node_set_filter_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"blend2_node_set_filter_path\"\n           '[GodotString, NodePath, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.blend2_node_set_filter_path\n\n{-# NOINLINE bindAnimationTreePlayer_blend3_node_get_amount #-}\n\n-- | Returns the blend amount of a Blend3 node given its name.\nbindAnimationTreePlayer_blend3_node_get_amount :: MethodBind\nbindAnimationTreePlayer_blend3_node_get_amount\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"blend3_node_get_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the blend amount of a Blend3 node given its name.\nblend3_node_get_amount ::\n                         (AnimationTreePlayer :< cls, Object :< cls) =>\n                         cls -> GodotString -> IO Float\nblend3_node_get_amount cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_blend3_node_get_amount\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"blend3_node_get_amount\"\n           '[GodotString]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.blend3_node_get_amount\n\n{-# NOINLINE bindAnimationTreePlayer_blend3_node_set_amount #-}\n\n-- | Sets the blend amount of a Blend3 node given its name and value.\n--   \t\t\t\tA Blend3 Node blends three animations (A, B-, B+) with the amount between -1 and 1.\n--   \t\t\t\tAt -1, output is input B-. From -1 to 0, the influence of B- gets lessened, the influence of A gets raised and the influence of B+ is 0. At 0, output is input A. From 0 to 1, the influence of A gets lessened, the influence of B+ gets raised and the influence of B+ is 0. At 1, output is input B+.\nbindAnimationTreePlayer_blend3_node_set_amount :: MethodBind\nbindAnimationTreePlayer_blend3_node_set_amount\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"blend3_node_set_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the blend amount of a Blend3 node given its name and value.\n--   \t\t\t\tA Blend3 Node blends three animations (A, B-, B+) with the amount between -1 and 1.\n--   \t\t\t\tAt -1, output is input B-. From -1 to 0, the influence of B- gets lessened, the influence of A gets raised and the influence of B+ is 0. At 0, output is input A. From 0 to 1, the influence of A gets lessened, the influence of B+ gets raised and the influence of B+ is 0. At 1, output is input B+.\nblend3_node_set_amount ::\n                         (AnimationTreePlayer :< cls, Object :< cls) =>\n                         cls -> GodotString -> Float -> IO ()\nblend3_node_set_amount cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_blend3_node_set_amount\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"blend3_node_set_amount\"\n           '[GodotString, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.blend3_node_set_amount\n\n{-# NOINLINE bindAnimationTreePlayer_blend4_node_get_amount #-}\n\n-- | Returns the blend amount of a Blend4 node given its name.\nbindAnimationTreePlayer_blend4_node_get_amount :: MethodBind\nbindAnimationTreePlayer_blend4_node_get_amount\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"blend4_node_get_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the blend amount of a Blend4 node given its name.\nblend4_node_get_amount ::\n                         (AnimationTreePlayer :< cls, Object :< cls) =>\n                         cls -> GodotString -> IO Vector2\nblend4_node_get_amount cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_blend4_node_get_amount\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"blend4_node_get_amount\"\n           '[GodotString]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.blend4_node_get_amount\n\n{-# NOINLINE bindAnimationTreePlayer_blend4_node_set_amount #-}\n\n-- | Sets the blend amount of a Blend4 node given its name and value.\n--   \t\t\t\tA Blend4 Node blends two pairs of animations.\n--   \t\t\t\tThe two pairs are blended like Blend2 and then added together.\nbindAnimationTreePlayer_blend4_node_set_amount :: MethodBind\nbindAnimationTreePlayer_blend4_node_set_amount\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"blend4_node_set_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the blend amount of a Blend4 node given its name and value.\n--   \t\t\t\tA Blend4 Node blends two pairs of animations.\n--   \t\t\t\tThe two pairs are blended like Blend2 and then added together.\nblend4_node_set_amount ::\n                         (AnimationTreePlayer :< cls, Object :< cls) =>\n                         cls -> GodotString -> Vector2 -> IO ()\nblend4_node_set_amount cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_blend4_node_set_amount\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"blend4_node_set_amount\"\n           '[GodotString, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.blend4_node_set_amount\n\n{-# NOINLINE bindAnimationTreePlayer_connect_nodes #-}\n\n-- | Connects node @id@ to @dst_id@ at the specified input slot.\nbindAnimationTreePlayer_connect_nodes :: MethodBind\nbindAnimationTreePlayer_connect_nodes\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"connect_nodes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Connects node @id@ to @dst_id@ at the specified input slot.\nconnect_nodes ::\n                (AnimationTreePlayer :< cls, Object :< cls) =>\n                cls -> GodotString -> GodotString -> Int -> IO Int\nconnect_nodes cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_connect_nodes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"connect_nodes\"\n           '[GodotString, GodotString, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.connect_nodes\n\n{-# NOINLINE bindAnimationTreePlayer_disconnect_nodes #-}\n\n-- | Disconnects nodes connected to @id@ at the specified input slot.\nbindAnimationTreePlayer_disconnect_nodes :: MethodBind\nbindAnimationTreePlayer_disconnect_nodes\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"disconnect_nodes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Disconnects nodes connected to @id@ at the specified input slot.\ndisconnect_nodes ::\n                   (AnimationTreePlayer :< cls, Object :< cls) =>\n                   cls -> GodotString -> Int -> IO ()\ndisconnect_nodes cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_disconnect_nodes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"disconnect_nodes\"\n           '[GodotString, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.disconnect_nodes\n\n{-# NOINLINE bindAnimationTreePlayer_get_animation_process_mode #-}\n\n-- | The thread in which to update animations.\nbindAnimationTreePlayer_get_animation_process_mode :: MethodBind\nbindAnimationTreePlayer_get_animation_process_mode\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_animation_process_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The thread in which to update animations.\nget_animation_process_mode ::\n                             (AnimationTreePlayer :< cls, Object :< cls) => cls -> IO Int\nget_animation_process_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_get_animation_process_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"get_animation_process_mode\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.get_animation_process_mode\n\n{-# NOINLINE bindAnimationTreePlayer_get_base_path #-}\n\n-- | The node from which to relatively access other nodes.\n--   \t\t\tIt accesses the bones, so it should point to the same node the @AnimationPlayer@ would point its Root Node at.\nbindAnimationTreePlayer_get_base_path :: MethodBind\nbindAnimationTreePlayer_get_base_path\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_base_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node from which to relatively access other nodes.\n--   \t\t\tIt accesses the bones, so it should point to the same node the @AnimationPlayer@ would point its Root Node at.\nget_base_path ::\n                (AnimationTreePlayer :< cls, Object :< cls) => cls -> IO NodePath\nget_base_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_get_base_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"get_base_path\" '[]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.get_base_path\n\n{-# NOINLINE bindAnimationTreePlayer_get_master_player #-}\n\n-- | The path to the @AnimationPlayer@ from which this @AnimationTreePlayer@ binds animations to animation nodes.\n--   \t\t\tOnce set, @Animation@ nodes can be added to the @AnimationTreePlayer@.\nbindAnimationTreePlayer_get_master_player :: MethodBind\nbindAnimationTreePlayer_get_master_player\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_master_player\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The path to the @AnimationPlayer@ from which this @AnimationTreePlayer@ binds animations to animation nodes.\n--   \t\t\tOnce set, @Animation@ nodes can be added to the @AnimationTreePlayer@.\nget_master_player ::\n                    (AnimationTreePlayer :< cls, Object :< cls) => cls -> IO NodePath\nget_master_player cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_get_master_player\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"get_master_player\" '[]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.get_master_player\n\n{-# NOINLINE bindAnimationTreePlayer_get_node_list #-}\n\n-- | Returns a @PoolStringArray@ containing the name of all nodes.\nbindAnimationTreePlayer_get_node_list :: MethodBind\nbindAnimationTreePlayer_get_node_list\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @PoolStringArray@ containing the name of all nodes.\nget_node_list ::\n                (AnimationTreePlayer :< cls, Object :< cls) =>\n                cls -> IO PoolStringArray\nget_node_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_get_node_list\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"get_node_list\" '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.get_node_list\n\n{-# NOINLINE bindAnimationTreePlayer_is_active #-}\n\n-- | If @true@, the @AnimationTreePlayer@ is able to play animations.\nbindAnimationTreePlayer_is_active :: MethodBind\nbindAnimationTreePlayer_is_active\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"is_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @AnimationTreePlayer@ is able to play animations.\nis_active ::\n            (AnimationTreePlayer :< cls, Object :< cls) => cls -> IO Bool\nis_active cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_is_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"is_active\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.is_active\n\n{-# NOINLINE bindAnimationTreePlayer_mix_node_get_amount #-}\n\n-- | Returns the mix amount of a Mix node given its name.\nbindAnimationTreePlayer_mix_node_get_amount :: MethodBind\nbindAnimationTreePlayer_mix_node_get_amount\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"mix_node_get_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the mix amount of a Mix node given its name.\nmix_node_get_amount ::\n                      (AnimationTreePlayer :< cls, Object :< cls) =>\n                      cls -> GodotString -> IO Float\nmix_node_get_amount cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_mix_node_get_amount\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"mix_node_get_amount\"\n           '[GodotString]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.mix_node_get_amount\n\n{-# NOINLINE bindAnimationTreePlayer_mix_node_set_amount #-}\n\n-- | Sets the mix amount of a Mix node given its name and value.\n--   \t\t\t\tA Mix node adds input b to input a by the amount given by ratio.\nbindAnimationTreePlayer_mix_node_set_amount :: MethodBind\nbindAnimationTreePlayer_mix_node_set_amount\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"mix_node_set_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the mix amount of a Mix node given its name and value.\n--   \t\t\t\tA Mix node adds input b to input a by the amount given by ratio.\nmix_node_set_amount ::\n                      (AnimationTreePlayer :< cls, Object :< cls) =>\n                      cls -> GodotString -> Float -> IO ()\nmix_node_set_amount cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_mix_node_set_amount\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"mix_node_set_amount\"\n           '[GodotString, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.mix_node_set_amount\n\n{-# NOINLINE bindAnimationTreePlayer_node_exists #-}\n\n-- | Check if a node exists (by name).\nbindAnimationTreePlayer_node_exists :: MethodBind\nbindAnimationTreePlayer_node_exists\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"node_exists\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Check if a node exists (by name).\nnode_exists ::\n              (AnimationTreePlayer :< cls, Object :< cls) =>\n              cls -> GodotString -> IO Bool\nnode_exists cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_node_exists\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"node_exists\"\n           '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.node_exists\n\n{-# NOINLINE bindAnimationTreePlayer_node_get_input_count #-}\n\n-- | Returns the input count for a given node. Different types of nodes have different amount of inputs.\nbindAnimationTreePlayer_node_get_input_count :: MethodBind\nbindAnimationTreePlayer_node_get_input_count\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"node_get_input_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the input count for a given node. Different types of nodes have different amount of inputs.\nnode_get_input_count ::\n                       (AnimationTreePlayer :< cls, Object :< cls) =>\n                       cls -> GodotString -> IO Int\nnode_get_input_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_node_get_input_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"node_get_input_count\"\n           '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.node_get_input_count\n\n{-# NOINLINE bindAnimationTreePlayer_node_get_input_source #-}\n\n-- | Returns the input source for a given node input.\nbindAnimationTreePlayer_node_get_input_source :: MethodBind\nbindAnimationTreePlayer_node_get_input_source\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"node_get_input_source\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the input source for a given node input.\nnode_get_input_source ::\n                        (AnimationTreePlayer :< cls, Object :< cls) =>\n                        cls -> GodotString -> Int -> IO GodotString\nnode_get_input_source cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_node_get_input_source\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"node_get_input_source\"\n           '[GodotString, Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.node_get_input_source\n\n{-# NOINLINE bindAnimationTreePlayer_node_get_position #-}\n\n-- | Returns position of a node in the graph given its name.\nbindAnimationTreePlayer_node_get_position :: MethodBind\nbindAnimationTreePlayer_node_get_position\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"node_get_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns position of a node in the graph given its name.\nnode_get_position ::\n                    (AnimationTreePlayer :< cls, Object :< cls) =>\n                    cls -> GodotString -> IO Vector2\nnode_get_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_node_get_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"node_get_position\"\n           '[GodotString]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.node_get_position\n\n{-# NOINLINE bindAnimationTreePlayer_node_get_type #-}\n\n-- | Gets the node type, will return from @enum NodeType@ enum.\nbindAnimationTreePlayer_node_get_type :: MethodBind\nbindAnimationTreePlayer_node_get_type\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"node_get_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the node type, will return from @enum NodeType@ enum.\nnode_get_type ::\n                (AnimationTreePlayer :< cls, Object :< cls) =>\n                cls -> GodotString -> IO Int\nnode_get_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_node_get_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"node_get_type\"\n           '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.node_get_type\n\n{-# NOINLINE bindAnimationTreePlayer_node_rename #-}\n\n-- | Renames a node in the graph.\nbindAnimationTreePlayer_node_rename :: MethodBind\nbindAnimationTreePlayer_node_rename\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"node_rename\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Renames a node in the graph.\nnode_rename ::\n              (AnimationTreePlayer :< cls, Object :< cls) =>\n              cls -> GodotString -> GodotString -> IO Int\nnode_rename cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_node_rename\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"node_rename\"\n           '[GodotString, GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.node_rename\n\n{-# NOINLINE bindAnimationTreePlayer_node_set_position #-}\n\n-- | Sets the position of a node in the graph given its name and position.\nbindAnimationTreePlayer_node_set_position :: MethodBind\nbindAnimationTreePlayer_node_set_position\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"node_set_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the position of a node in the graph given its name and position.\nnode_set_position ::\n                    (AnimationTreePlayer :< cls, Object :< cls) =>\n                    cls -> GodotString -> Vector2 -> IO ()\nnode_set_position cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_node_set_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"node_set_position\"\n           '[GodotString, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.node_set_position\n\n{-# NOINLINE bindAnimationTreePlayer_oneshot_node_get_autorestart_delay\n             #-}\n\n-- | Returns the autostart delay of a OneShot node given its name.\nbindAnimationTreePlayer_oneshot_node_get_autorestart_delay ::\n                                                           MethodBind\nbindAnimationTreePlayer_oneshot_node_get_autorestart_delay\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"oneshot_node_get_autorestart_delay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the autostart delay of a OneShot node given its name.\noneshot_node_get_autorestart_delay ::\n                                     (AnimationTreePlayer :< cls, Object :< cls) =>\n                                     cls -> GodotString -> IO Float\noneshot_node_get_autorestart_delay cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_oneshot_node_get_autorestart_delay\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"oneshot_node_get_autorestart_delay\"\n           '[GodotString]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.oneshot_node_get_autorestart_delay\n\n{-# NOINLINE bindAnimationTreePlayer_oneshot_node_get_autorestart_random_delay\n             #-}\n\n-- | Returns the autostart random delay of a OneShot node given its name.\nbindAnimationTreePlayer_oneshot_node_get_autorestart_random_delay ::\n                                                                  MethodBind\nbindAnimationTreePlayer_oneshot_node_get_autorestart_random_delay\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"oneshot_node_get_autorestart_random_delay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the autostart random delay of a OneShot node given its name.\noneshot_node_get_autorestart_random_delay ::\n                                            (AnimationTreePlayer :< cls, Object :< cls) =>\n                                            cls -> GodotString -> IO Float\noneshot_node_get_autorestart_random_delay cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_oneshot_node_get_autorestart_random_delay\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"oneshot_node_get_autorestart_random_delay\"\n           '[GodotString]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.oneshot_node_get_autorestart_random_delay\n\n{-# NOINLINE bindAnimationTreePlayer_oneshot_node_get_fadein_time\n             #-}\n\n-- | Returns the fade in time of a OneShot node given its name.\nbindAnimationTreePlayer_oneshot_node_get_fadein_time :: MethodBind\nbindAnimationTreePlayer_oneshot_node_get_fadein_time\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"oneshot_node_get_fadein_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the fade in time of a OneShot node given its name.\noneshot_node_get_fadein_time ::\n                               (AnimationTreePlayer :< cls, Object :< cls) =>\n                               cls -> GodotString -> IO Float\noneshot_node_get_fadein_time cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_oneshot_node_get_fadein_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"oneshot_node_get_fadein_time\"\n           '[GodotString]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.oneshot_node_get_fadein_time\n\n{-# NOINLINE bindAnimationTreePlayer_oneshot_node_get_fadeout_time\n             #-}\n\n-- | Returns the fade out time of a OneShot node given its name.\nbindAnimationTreePlayer_oneshot_node_get_fadeout_time :: MethodBind\nbindAnimationTreePlayer_oneshot_node_get_fadeout_time\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"oneshot_node_get_fadeout_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the fade out time of a OneShot node given its name.\noneshot_node_get_fadeout_time ::\n                                (AnimationTreePlayer :< cls, Object :< cls) =>\n                                cls -> GodotString -> IO Float\noneshot_node_get_fadeout_time cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_oneshot_node_get_fadeout_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"oneshot_node_get_fadeout_time\"\n           '[GodotString]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.oneshot_node_get_fadeout_time\n\n{-# NOINLINE bindAnimationTreePlayer_oneshot_node_has_autorestart\n             #-}\n\n-- | Returns whether a OneShot node will auto restart given its name.\nbindAnimationTreePlayer_oneshot_node_has_autorestart :: MethodBind\nbindAnimationTreePlayer_oneshot_node_has_autorestart\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"oneshot_node_has_autorestart\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether a OneShot node will auto restart given its name.\noneshot_node_has_autorestart ::\n                               (AnimationTreePlayer :< cls, Object :< cls) =>\n                               cls -> GodotString -> IO Bool\noneshot_node_has_autorestart cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_oneshot_node_has_autorestart\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"oneshot_node_has_autorestart\"\n           '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.oneshot_node_has_autorestart\n\n{-# NOINLINE bindAnimationTreePlayer_oneshot_node_is_active #-}\n\n-- | Returns whether a OneShot node is active given its name.\nbindAnimationTreePlayer_oneshot_node_is_active :: MethodBind\nbindAnimationTreePlayer_oneshot_node_is_active\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"oneshot_node_is_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether a OneShot node is active given its name.\noneshot_node_is_active ::\n                         (AnimationTreePlayer :< cls, Object :< cls) =>\n                         cls -> GodotString -> IO Bool\noneshot_node_is_active cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_oneshot_node_is_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"oneshot_node_is_active\"\n           '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.oneshot_node_is_active\n\n{-# NOINLINE bindAnimationTreePlayer_oneshot_node_set_autorestart\n             #-}\n\n-- | Sets the autorestart property of a OneShot node given its name and value.\nbindAnimationTreePlayer_oneshot_node_set_autorestart :: MethodBind\nbindAnimationTreePlayer_oneshot_node_set_autorestart\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"oneshot_node_set_autorestart\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the autorestart property of a OneShot node given its name and value.\noneshot_node_set_autorestart ::\n                               (AnimationTreePlayer :< cls, Object :< cls) =>\n                               cls -> GodotString -> Bool -> IO ()\noneshot_node_set_autorestart cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_oneshot_node_set_autorestart\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"oneshot_node_set_autorestart\"\n           '[GodotString, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.oneshot_node_set_autorestart\n\n{-# NOINLINE bindAnimationTreePlayer_oneshot_node_set_autorestart_delay\n             #-}\n\n-- | Sets the autorestart delay of a OneShot node given its name and value in seconds.\nbindAnimationTreePlayer_oneshot_node_set_autorestart_delay ::\n                                                           MethodBind\nbindAnimationTreePlayer_oneshot_node_set_autorestart_delay\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"oneshot_node_set_autorestart_delay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the autorestart delay of a OneShot node given its name and value in seconds.\noneshot_node_set_autorestart_delay ::\n                                     (AnimationTreePlayer :< cls, Object :< cls) =>\n                                     cls -> GodotString -> Float -> IO ()\noneshot_node_set_autorestart_delay cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_oneshot_node_set_autorestart_delay\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"oneshot_node_set_autorestart_delay\"\n           '[GodotString, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.oneshot_node_set_autorestart_delay\n\n{-# NOINLINE bindAnimationTreePlayer_oneshot_node_set_autorestart_random_delay\n             #-}\n\n-- | Sets the autorestart random delay of a OneShot node given its name and value in seconds.\nbindAnimationTreePlayer_oneshot_node_set_autorestart_random_delay ::\n                                                                  MethodBind\nbindAnimationTreePlayer_oneshot_node_set_autorestart_random_delay\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"oneshot_node_set_autorestart_random_delay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the autorestart random delay of a OneShot node given its name and value in seconds.\noneshot_node_set_autorestart_random_delay ::\n                                            (AnimationTreePlayer :< cls, Object :< cls) =>\n                                            cls -> GodotString -> Float -> IO ()\noneshot_node_set_autorestart_random_delay cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_oneshot_node_set_autorestart_random_delay\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"oneshot_node_set_autorestart_random_delay\"\n           '[GodotString, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.oneshot_node_set_autorestart_random_delay\n\n{-# NOINLINE bindAnimationTreePlayer_oneshot_node_set_fadein_time\n             #-}\n\n-- | Sets the fade in time of a OneShot node given its name and value in seconds.\nbindAnimationTreePlayer_oneshot_node_set_fadein_time :: MethodBind\nbindAnimationTreePlayer_oneshot_node_set_fadein_time\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"oneshot_node_set_fadein_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the fade in time of a OneShot node given its name and value in seconds.\noneshot_node_set_fadein_time ::\n                               (AnimationTreePlayer :< cls, Object :< cls) =>\n                               cls -> GodotString -> Float -> IO ()\noneshot_node_set_fadein_time cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_oneshot_node_set_fadein_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"oneshot_node_set_fadein_time\"\n           '[GodotString, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.oneshot_node_set_fadein_time\n\n{-# NOINLINE bindAnimationTreePlayer_oneshot_node_set_fadeout_time\n             #-}\n\n-- | Sets the fade out time of a OneShot node given its name and value in seconds.\nbindAnimationTreePlayer_oneshot_node_set_fadeout_time :: MethodBind\nbindAnimationTreePlayer_oneshot_node_set_fadeout_time\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"oneshot_node_set_fadeout_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the fade out time of a OneShot node given its name and value in seconds.\noneshot_node_set_fadeout_time ::\n                                (AnimationTreePlayer :< cls, Object :< cls) =>\n                                cls -> GodotString -> Float -> IO ()\noneshot_node_set_fadeout_time cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_oneshot_node_set_fadeout_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"oneshot_node_set_fadeout_time\"\n           '[GodotString, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.oneshot_node_set_fadeout_time\n\n{-# NOINLINE bindAnimationTreePlayer_oneshot_node_set_filter_path\n             #-}\n\n-- | If @enable@ is @true@, the OneShot node with ID @id@ turns off the track modifying the property at @path@. The modified node's children continue to animate.\nbindAnimationTreePlayer_oneshot_node_set_filter_path :: MethodBind\nbindAnimationTreePlayer_oneshot_node_set_filter_path\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"oneshot_node_set_filter_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @enable@ is @true@, the OneShot node with ID @id@ turns off the track modifying the property at @path@. The modified node's children continue to animate.\noneshot_node_set_filter_path ::\n                               (AnimationTreePlayer :< cls, Object :< cls) =>\n                               cls -> GodotString -> NodePath -> Bool -> IO ()\noneshot_node_set_filter_path cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_oneshot_node_set_filter_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"oneshot_node_set_filter_path\"\n           '[GodotString, NodePath, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.oneshot_node_set_filter_path\n\n{-# NOINLINE bindAnimationTreePlayer_oneshot_node_start #-}\n\n-- | Starts a OneShot node given its name.\nbindAnimationTreePlayer_oneshot_node_start :: MethodBind\nbindAnimationTreePlayer_oneshot_node_start\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"oneshot_node_start\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Starts a OneShot node given its name.\noneshot_node_start ::\n                     (AnimationTreePlayer :< cls, Object :< cls) =>\n                     cls -> GodotString -> IO ()\noneshot_node_start cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_oneshot_node_start\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"oneshot_node_start\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.oneshot_node_start\n\n{-# NOINLINE bindAnimationTreePlayer_oneshot_node_stop #-}\n\n-- | Stops the OneShot node with name @id@.\nbindAnimationTreePlayer_oneshot_node_stop :: MethodBind\nbindAnimationTreePlayer_oneshot_node_stop\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"oneshot_node_stop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops the OneShot node with name @id@.\noneshot_node_stop ::\n                    (AnimationTreePlayer :< cls, Object :< cls) =>\n                    cls -> GodotString -> IO ()\noneshot_node_stop cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_oneshot_node_stop\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"oneshot_node_stop\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.oneshot_node_stop\n\n{-# NOINLINE bindAnimationTreePlayer_recompute_caches #-}\n\n-- | Manually recalculates the cache of track information generated from animation nodes. Needed when external sources modify the animation nodes' state.\nbindAnimationTreePlayer_recompute_caches :: MethodBind\nbindAnimationTreePlayer_recompute_caches\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"recompute_caches\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Manually recalculates the cache of track information generated from animation nodes. Needed when external sources modify the animation nodes' state.\nrecompute_caches ::\n                   (AnimationTreePlayer :< cls, Object :< cls) => cls -> IO ()\nrecompute_caches cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_recompute_caches\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"recompute_caches\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.recompute_caches\n\n{-# NOINLINE bindAnimationTreePlayer_remove_node #-}\n\n-- | Removes the animation node with name @id@.\nbindAnimationTreePlayer_remove_node :: MethodBind\nbindAnimationTreePlayer_remove_node\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"remove_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the animation node with name @id@.\nremove_node ::\n              (AnimationTreePlayer :< cls, Object :< cls) =>\n              cls -> GodotString -> IO ()\nremove_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_remove_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"remove_node\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.remove_node\n\n{-# NOINLINE bindAnimationTreePlayer_reset #-}\n\n-- | Resets this @AnimationTreePlayer@.\nbindAnimationTreePlayer_reset :: MethodBind\nbindAnimationTreePlayer_reset\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"reset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Resets this @AnimationTreePlayer@.\nreset ::\n        (AnimationTreePlayer :< cls, Object :< cls) => cls -> IO ()\nreset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_reset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"reset\" '[] (IO ()) where\n        nodeMethod = Godot.Core.AnimationTreePlayer.reset\n\n{-# NOINLINE bindAnimationTreePlayer_set_active #-}\n\n-- | If @true@, the @AnimationTreePlayer@ is able to play animations.\nbindAnimationTreePlayer_set_active :: MethodBind\nbindAnimationTreePlayer_set_active\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @AnimationTreePlayer@ is able to play animations.\nset_active ::\n             (AnimationTreePlayer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_active cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_set_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"set_active\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.set_active\n\n{-# NOINLINE bindAnimationTreePlayer_set_animation_process_mode #-}\n\n-- | The thread in which to update animations.\nbindAnimationTreePlayer_set_animation_process_mode :: MethodBind\nbindAnimationTreePlayer_set_animation_process_mode\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_animation_process_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The thread in which to update animations.\nset_animation_process_mode ::\n                             (AnimationTreePlayer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_animation_process_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_set_animation_process_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"set_animation_process_mode\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.set_animation_process_mode\n\n{-# NOINLINE bindAnimationTreePlayer_set_base_path #-}\n\n-- | The node from which to relatively access other nodes.\n--   \t\t\tIt accesses the bones, so it should point to the same node the @AnimationPlayer@ would point its Root Node at.\nbindAnimationTreePlayer_set_base_path :: MethodBind\nbindAnimationTreePlayer_set_base_path\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_base_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node from which to relatively access other nodes.\n--   \t\t\tIt accesses the bones, so it should point to the same node the @AnimationPlayer@ would point its Root Node at.\nset_base_path ::\n                (AnimationTreePlayer :< cls, Object :< cls) =>\n                cls -> NodePath -> IO ()\nset_base_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_set_base_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"set_base_path\" '[NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.set_base_path\n\n{-# NOINLINE bindAnimationTreePlayer_set_master_player #-}\n\n-- | The path to the @AnimationPlayer@ from which this @AnimationTreePlayer@ binds animations to animation nodes.\n--   \t\t\tOnce set, @Animation@ nodes can be added to the @AnimationTreePlayer@.\nbindAnimationTreePlayer_set_master_player :: MethodBind\nbindAnimationTreePlayer_set_master_player\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_master_player\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The path to the @AnimationPlayer@ from which this @AnimationTreePlayer@ binds animations to animation nodes.\n--   \t\t\tOnce set, @Animation@ nodes can be added to the @AnimationTreePlayer@.\nset_master_player ::\n                    (AnimationTreePlayer :< cls, Object :< cls) =>\n                    cls -> NodePath -> IO ()\nset_master_player cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_set_master_player\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"set_master_player\"\n           '[NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.set_master_player\n\n{-# NOINLINE bindAnimationTreePlayer_timescale_node_get_scale #-}\n\n-- | Returns the time scale value of the TimeScale node with name @id@.\nbindAnimationTreePlayer_timescale_node_get_scale :: MethodBind\nbindAnimationTreePlayer_timescale_node_get_scale\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"timescale_node_get_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the time scale value of the TimeScale node with name @id@.\ntimescale_node_get_scale ::\n                           (AnimationTreePlayer :< cls, Object :< cls) =>\n                           cls -> GodotString -> IO Float\ntimescale_node_get_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_timescale_node_get_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"timescale_node_get_scale\"\n           '[GodotString]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.timescale_node_get_scale\n\n{-# NOINLINE bindAnimationTreePlayer_timescale_node_set_scale #-}\n\n-- | Sets the time scale of the TimeScale node with name @id@ to @scale@.\n--   \t\t\t\tThe TimeScale node is used to speed @Animation@s up if the scale is above 1 or slow them down if it is below 1.\n--   \t\t\t\tIf applied after a blend or mix, affects all input animations to that blend or mix.\nbindAnimationTreePlayer_timescale_node_set_scale :: MethodBind\nbindAnimationTreePlayer_timescale_node_set_scale\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"timescale_node_set_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the time scale of the TimeScale node with name @id@ to @scale@.\n--   \t\t\t\tThe TimeScale node is used to speed @Animation@s up if the scale is above 1 or slow them down if it is below 1.\n--   \t\t\t\tIf applied after a blend or mix, affects all input animations to that blend or mix.\ntimescale_node_set_scale ::\n                           (AnimationTreePlayer :< cls, Object :< cls) =>\n                           cls -> GodotString -> Float -> IO ()\ntimescale_node_set_scale cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_timescale_node_set_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"timescale_node_set_scale\"\n           '[GodotString, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.timescale_node_set_scale\n\n{-# NOINLINE bindAnimationTreePlayer_timeseek_node_seek #-}\n\n-- | Sets the time seek value of the TimeSeek node with name @id@ to @seconds@.\n--   \t\t\t\tThis functions as a seek in the @Animation@ or the blend or mix of @Animation@s input in it.\nbindAnimationTreePlayer_timeseek_node_seek :: MethodBind\nbindAnimationTreePlayer_timeseek_node_seek\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"timeseek_node_seek\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the time seek value of the TimeSeek node with name @id@ to @seconds@.\n--   \t\t\t\tThis functions as a seek in the @Animation@ or the blend or mix of @Animation@s input in it.\ntimeseek_node_seek ::\n                     (AnimationTreePlayer :< cls, Object :< cls) =>\n                     cls -> GodotString -> Float -> IO ()\ntimeseek_node_seek cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAnimationTreePlayer_timeseek_node_seek\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer \"timeseek_node_seek\"\n           '[GodotString, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AnimationTreePlayer.timeseek_node_seek\n\n{-# NOINLINE bindAnimationTreePlayer_transition_node_delete_input\n             #-}\n\n-- | Deletes the input at @input_idx@ for the transition node with name @id@.\nbindAnimationTreePlayer_transition_node_delete_input :: MethodBind\nbindAnimationTreePlayer_transition_node_delete_input\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"transition_node_delete_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Deletes the input at @input_idx@ for the transition node with name @id@.\ntransition_node_delete_input ::\n                               (AnimationTreePlayer :< cls, Object :< cls) =>\n                               cls -> GodotString -> Int -> IO ()\ntransition_node_delete_input cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_transition_node_delete_input\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"transition_node_delete_input\"\n           '[GodotString, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.transition_node_delete_input\n\n{-# NOINLINE bindAnimationTreePlayer_transition_node_get_current\n             #-}\n\n-- | Returns the index of the currently evaluated input for the transition node with name @id@.\nbindAnimationTreePlayer_transition_node_get_current :: MethodBind\nbindAnimationTreePlayer_transition_node_get_current\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"transition_node_get_current\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the index of the currently evaluated input for the transition node with name @id@.\ntransition_node_get_current ::\n                              (AnimationTreePlayer :< cls, Object :< cls) =>\n                              cls -> GodotString -> IO Int\ntransition_node_get_current cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_transition_node_get_current\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"transition_node_get_current\"\n           '[GodotString]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.transition_node_get_current\n\n{-# NOINLINE bindAnimationTreePlayer_transition_node_get_input_count\n             #-}\n\n-- | Returns the number of inputs for the transition node with name @id@. You can add inputs by right-clicking on the transition node.\nbindAnimationTreePlayer_transition_node_get_input_count ::\n                                                        MethodBind\nbindAnimationTreePlayer_transition_node_get_input_count\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"transition_node_get_input_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of inputs for the transition node with name @id@. You can add inputs by right-clicking on the transition node.\ntransition_node_get_input_count ::\n                                  (AnimationTreePlayer :< cls, Object :< cls) =>\n                                  cls -> GodotString -> IO Int\ntransition_node_get_input_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_transition_node_get_input_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"transition_node_get_input_count\"\n           '[GodotString]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.transition_node_get_input_count\n\n{-# NOINLINE bindAnimationTreePlayer_transition_node_get_xfade_time\n             #-}\n\n-- | Returns the cross fade time for the transition node with name @id@.\nbindAnimationTreePlayer_transition_node_get_xfade_time ::\n                                                       MethodBind\nbindAnimationTreePlayer_transition_node_get_xfade_time\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"transition_node_get_xfade_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the cross fade time for the transition node with name @id@.\ntransition_node_get_xfade_time ::\n                                 (AnimationTreePlayer :< cls, Object :< cls) =>\n                                 cls -> GodotString -> IO Float\ntransition_node_get_xfade_time cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_transition_node_get_xfade_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"transition_node_get_xfade_time\"\n           '[GodotString]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.transition_node_get_xfade_time\n\n{-# NOINLINE bindAnimationTreePlayer_transition_node_has_input_auto_advance\n             #-}\n\n-- | Returns @true@ if the input at @input_idx@ on the transition node with name @id@ is set to automatically advance to the next input upon completion.\nbindAnimationTreePlayer_transition_node_has_input_auto_advance ::\n                                                               MethodBind\nbindAnimationTreePlayer_transition_node_has_input_auto_advance\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"transition_node_has_input_auto_advance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the input at @input_idx@ on the transition node with name @id@ is set to automatically advance to the next input upon completion.\ntransition_node_has_input_auto_advance ::\n                                         (AnimationTreePlayer :< cls, Object :< cls) =>\n                                         cls -> GodotString -> Int -> IO Bool\ntransition_node_has_input_auto_advance cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_transition_node_has_input_auto_advance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"transition_node_has_input_auto_advance\"\n           '[GodotString, Int]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.transition_node_has_input_auto_advance\n\n{-# NOINLINE bindAnimationTreePlayer_transition_node_set_current\n             #-}\n\n-- | The transition node with name @id@ sets its current input at @input_idx@.\nbindAnimationTreePlayer_transition_node_set_current :: MethodBind\nbindAnimationTreePlayer_transition_node_set_current\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"transition_node_set_current\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The transition node with name @id@ sets its current input at @input_idx@.\ntransition_node_set_current ::\n                              (AnimationTreePlayer :< cls, Object :< cls) =>\n                              cls -> GodotString -> Int -> IO ()\ntransition_node_set_current cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_transition_node_set_current\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"transition_node_set_current\"\n           '[GodotString, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.transition_node_set_current\n\n{-# NOINLINE bindAnimationTreePlayer_transition_node_set_input_auto_advance\n             #-}\n\n-- | The transition node with name @id@ advances to its next input automatically when the input at @input_idx@ completes.\nbindAnimationTreePlayer_transition_node_set_input_auto_advance ::\n                                                               MethodBind\nbindAnimationTreePlayer_transition_node_set_input_auto_advance\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"transition_node_set_input_auto_advance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The transition node with name @id@ advances to its next input automatically when the input at @input_idx@ completes.\ntransition_node_set_input_auto_advance ::\n                                         (AnimationTreePlayer :< cls, Object :< cls) =>\n                                         cls -> GodotString -> Int -> Bool -> IO ()\ntransition_node_set_input_auto_advance cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_transition_node_set_input_auto_advance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"transition_node_set_input_auto_advance\"\n           '[GodotString, Int, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.transition_node_set_input_auto_advance\n\n{-# NOINLINE bindAnimationTreePlayer_transition_node_set_input_count\n             #-}\n\n-- | Resizes the number of inputs available for the transition node with name @id@.\nbindAnimationTreePlayer_transition_node_set_input_count ::\n                                                        MethodBind\nbindAnimationTreePlayer_transition_node_set_input_count\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"transition_node_set_input_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Resizes the number of inputs available for the transition node with name @id@.\ntransition_node_set_input_count ::\n                                  (AnimationTreePlayer :< cls, Object :< cls) =>\n                                  cls -> GodotString -> Int -> IO ()\ntransition_node_set_input_count cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_transition_node_set_input_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"transition_node_set_input_count\"\n           '[GodotString, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.transition_node_set_input_count\n\n{-# NOINLINE bindAnimationTreePlayer_transition_node_set_xfade_time\n             #-}\n\n-- | The transition node with name @id@ sets its cross fade time to @time_sec@.\nbindAnimationTreePlayer_transition_node_set_xfade_time ::\n                                                       MethodBind\nbindAnimationTreePlayer_transition_node_set_xfade_time\n  = unsafePerformIO $\n      withCString \"AnimationTreePlayer\" $\n        \\ clsNamePtr ->\n          withCString \"transition_node_set_xfade_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The transition node with name @id@ sets its cross fade time to @time_sec@.\ntransition_node_set_xfade_time ::\n                                 (AnimationTreePlayer :< cls, Object :< cls) =>\n                                 cls -> GodotString -> Float -> IO ()\ntransition_node_set_xfade_time cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAnimationTreePlayer_transition_node_set_xfade_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AnimationTreePlayer\n           \"transition_node_set_xfade_time\"\n           '[GodotString, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AnimationTreePlayer.transition_node_set_xfade_time"
  },
  {
    "path": "src/Godot/Core/Area.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Area\n       (Godot.Core.Area._SPACE_OVERRIDE_REPLACE,\n        Godot.Core.Area._SPACE_OVERRIDE_DISABLED,\n        Godot.Core.Area._SPACE_OVERRIDE_COMBINE_REPLACE,\n        Godot.Core.Area._SPACE_OVERRIDE_REPLACE_COMBINE,\n        Godot.Core.Area._SPACE_OVERRIDE_COMBINE,\n        Godot.Core.Area.sig_area_entered, Godot.Core.Area.sig_area_exited,\n        Godot.Core.Area.sig_area_shape_entered,\n        Godot.Core.Area.sig_area_shape_exited,\n        Godot.Core.Area.sig_body_entered, Godot.Core.Area.sig_body_exited,\n        Godot.Core.Area.sig_body_shape_entered,\n        Godot.Core.Area.sig_body_shape_exited,\n        Godot.Core.Area._area_enter_tree, Godot.Core.Area._area_exit_tree,\n        Godot.Core.Area._area_inout, Godot.Core.Area._body_enter_tree,\n        Godot.Core.Area._body_exit_tree, Godot.Core.Area._body_inout,\n        Godot.Core.Area.get_angular_damp, Godot.Core.Area.get_audio_bus,\n        Godot.Core.Area.get_collision_layer,\n        Godot.Core.Area.get_collision_layer_bit,\n        Godot.Core.Area.get_collision_mask,\n        Godot.Core.Area.get_collision_mask_bit,\n        Godot.Core.Area.get_gravity,\n        Godot.Core.Area.get_gravity_distance_scale,\n        Godot.Core.Area.get_gravity_vector,\n        Godot.Core.Area.get_linear_damp,\n        Godot.Core.Area.get_overlapping_areas,\n        Godot.Core.Area.get_overlapping_bodies,\n        Godot.Core.Area.get_priority, Godot.Core.Area.get_reverb_amount,\n        Godot.Core.Area.get_reverb_bus,\n        Godot.Core.Area.get_reverb_uniformity,\n        Godot.Core.Area.get_space_override_mode,\n        Godot.Core.Area.is_gravity_a_point, Godot.Core.Area.is_monitorable,\n        Godot.Core.Area.is_monitoring,\n        Godot.Core.Area.is_overriding_audio_bus,\n        Godot.Core.Area.is_using_reverb_bus, Godot.Core.Area.overlaps_area,\n        Godot.Core.Area.overlaps_body, Godot.Core.Area.set_angular_damp,\n        Godot.Core.Area.set_audio_bus,\n        Godot.Core.Area.set_audio_bus_override,\n        Godot.Core.Area.set_collision_layer,\n        Godot.Core.Area.set_collision_layer_bit,\n        Godot.Core.Area.set_collision_mask,\n        Godot.Core.Area.set_collision_mask_bit,\n        Godot.Core.Area.set_gravity,\n        Godot.Core.Area.set_gravity_distance_scale,\n        Godot.Core.Area.set_gravity_is_point,\n        Godot.Core.Area.set_gravity_vector,\n        Godot.Core.Area.set_linear_damp, Godot.Core.Area.set_monitorable,\n        Godot.Core.Area.set_monitoring, Godot.Core.Area.set_priority,\n        Godot.Core.Area.set_reverb_amount, Godot.Core.Area.set_reverb_bus,\n        Godot.Core.Area.set_reverb_uniformity,\n        Godot.Core.Area.set_space_override_mode,\n        Godot.Core.Area.set_use_reverb_bus)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.CollisionObject()\n\n_SPACE_OVERRIDE_REPLACE :: Int\n_SPACE_OVERRIDE_REPLACE = 3\n\n_SPACE_OVERRIDE_DISABLED :: Int\n_SPACE_OVERRIDE_DISABLED = 0\n\n_SPACE_OVERRIDE_COMBINE_REPLACE :: Int\n_SPACE_OVERRIDE_COMBINE_REPLACE = 2\n\n_SPACE_OVERRIDE_REPLACE_COMBINE :: Int\n_SPACE_OVERRIDE_REPLACE_COMBINE = 4\n\n_SPACE_OVERRIDE_COMBINE :: Int\n_SPACE_OVERRIDE_COMBINE = 1\n\n-- | Emitted when another area enters.\nsig_area_entered :: Godot.Internal.Dispatch.Signal Area\nsig_area_entered = Godot.Internal.Dispatch.Signal \"area_entered\"\n\ninstance NodeSignal Area \"area_entered\" '[Area]\n\n-- | Emitted when another area exits.\nsig_area_exited :: Godot.Internal.Dispatch.Signal Area\nsig_area_exited = Godot.Internal.Dispatch.Signal \"area_exited\"\n\ninstance NodeSignal Area \"area_exited\" '[Area]\n\n-- | Emitted when another area enters, reporting which areas overlapped. @shape_owner_get_owner(shape_find_owner(shape))@ returns the parent object of the owner of the @shape@.\nsig_area_shape_entered :: Godot.Internal.Dispatch.Signal Area\nsig_area_shape_entered\n  = Godot.Internal.Dispatch.Signal \"area_shape_entered\"\n\ninstance NodeSignal Area \"area_shape_entered\"\n           '[Int, Area, Int, Int]\n\n-- | Emitted when another area exits, reporting which areas were overlapping.\nsig_area_shape_exited :: Godot.Internal.Dispatch.Signal Area\nsig_area_shape_exited\n  = Godot.Internal.Dispatch.Signal \"area_shape_exited\"\n\ninstance NodeSignal Area \"area_shape_exited\" '[Int, Area, Int, Int]\n\n-- | Emitted when a physics body enters.\n--   \t\t\t\tThe @body@ argument can either be a @PhysicsBody@ or a @GridMap@ instance (while GridMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body).\nsig_body_entered :: Godot.Internal.Dispatch.Signal Area\nsig_body_entered = Godot.Internal.Dispatch.Signal \"body_entered\"\n\ninstance NodeSignal Area \"body_entered\" '[Node]\n\n-- | Emitted when a physics body exits.\n--   \t\t\t\tThe @body@ argument can either be a @PhysicsBody@ or a @GridMap@ instance (while GridMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body).\nsig_body_exited :: Godot.Internal.Dispatch.Signal Area\nsig_body_exited = Godot.Internal.Dispatch.Signal \"body_exited\"\n\ninstance NodeSignal Area \"body_exited\" '[Node]\n\n-- | Emitted when a physics body enters, reporting which shapes overlapped.\n--   \t\t\t\tThe @body@ argument can either be a @PhysicsBody@ or a @GridMap@ instance (while GridMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body).\nsig_body_shape_entered :: Godot.Internal.Dispatch.Signal Area\nsig_body_shape_entered\n  = Godot.Internal.Dispatch.Signal \"body_shape_entered\"\n\ninstance NodeSignal Area \"body_shape_entered\"\n           '[Int, Node, Int, Int]\n\n-- | Emitted when a physics body exits, reporting which shapes were overlapping.\n--   \t\t\t\tThe @body@ argument can either be a @PhysicsBody@ or a @GridMap@ instance (while GridMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body).\nsig_body_shape_exited :: Godot.Internal.Dispatch.Signal Area\nsig_body_shape_exited\n  = Godot.Internal.Dispatch.Signal \"body_shape_exited\"\n\ninstance NodeSignal Area \"body_shape_exited\" '[Int, Node, Int, Int]\n\ninstance NodeProperty Area \"angular_damp\" Float 'False where\n        nodeProperty\n          = (get_angular_damp, wrapDroppingSetter set_angular_damp, Nothing)\n\ninstance NodeProperty Area \"audio_bus_name\" GodotString 'False\n         where\n        nodeProperty\n          = (get_audio_bus, wrapDroppingSetter set_audio_bus, Nothing)\n\ninstance NodeProperty Area \"audio_bus_override\" Bool 'False where\n        nodeProperty\n          = (is_overriding_audio_bus,\n             wrapDroppingSetter set_audio_bus_override, Nothing)\n\ninstance NodeProperty Area \"collision_layer\" Int 'False where\n        nodeProperty\n          = (get_collision_layer, wrapDroppingSetter set_collision_layer,\n             Nothing)\n\ninstance NodeProperty Area \"collision_mask\" Int 'False where\n        nodeProperty\n          = (get_collision_mask, wrapDroppingSetter set_collision_mask,\n             Nothing)\n\ninstance NodeProperty Area \"gravity\" Float 'False where\n        nodeProperty\n          = (get_gravity, wrapDroppingSetter set_gravity, Nothing)\n\ninstance NodeProperty Area \"gravity_distance_scale\" Float 'False\n         where\n        nodeProperty\n          = (get_gravity_distance_scale,\n             wrapDroppingSetter set_gravity_distance_scale, Nothing)\n\ninstance NodeProperty Area \"gravity_point\" Bool 'False where\n        nodeProperty\n          = (is_gravity_a_point, wrapDroppingSetter set_gravity_is_point,\n             Nothing)\n\ninstance NodeProperty Area \"gravity_vec\" Vector3 'False where\n        nodeProperty\n          = (get_gravity_vector, wrapDroppingSetter set_gravity_vector,\n             Nothing)\n\ninstance NodeProperty Area \"linear_damp\" Float 'False where\n        nodeProperty\n          = (get_linear_damp, wrapDroppingSetter set_linear_damp, Nothing)\n\ninstance NodeProperty Area \"monitorable\" Bool 'False where\n        nodeProperty\n          = (is_monitorable, wrapDroppingSetter set_monitorable, Nothing)\n\ninstance NodeProperty Area \"monitoring\" Bool 'False where\n        nodeProperty\n          = (is_monitoring, wrapDroppingSetter set_monitoring, Nothing)\n\ninstance NodeProperty Area \"priority\" Float 'False where\n        nodeProperty\n          = (get_priority, wrapDroppingSetter set_priority, Nothing)\n\ninstance NodeProperty Area \"reverb_bus_amount\" Float 'False where\n        nodeProperty\n          = (get_reverb_amount, wrapDroppingSetter set_reverb_amount,\n             Nothing)\n\ninstance NodeProperty Area \"reverb_bus_enable\" Bool 'False where\n        nodeProperty\n          = (is_using_reverb_bus, wrapDroppingSetter set_use_reverb_bus,\n             Nothing)\n\ninstance NodeProperty Area \"reverb_bus_name\" GodotString 'False\n         where\n        nodeProperty\n          = (get_reverb_bus, wrapDroppingSetter set_reverb_bus, Nothing)\n\ninstance NodeProperty Area \"reverb_bus_uniformity\" Float 'False\n         where\n        nodeProperty\n          = (get_reverb_uniformity, wrapDroppingSetter set_reverb_uniformity,\n             Nothing)\n\ninstance NodeProperty Area \"space_override\" Int 'False where\n        nodeProperty\n          = (get_space_override_mode,\n             wrapDroppingSetter set_space_override_mode, Nothing)\n\n{-# NOINLINE bindArea__area_enter_tree #-}\n\nbindArea__area_enter_tree :: MethodBind\nbindArea__area_enter_tree\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"_area_enter_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_area_enter_tree ::\n                   (Area :< cls, Object :< cls) => cls -> Int -> IO ()\n_area_enter_tree cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea__area_enter_tree (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"_area_enter_tree\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Area._area_enter_tree\n\n{-# NOINLINE bindArea__area_exit_tree #-}\n\nbindArea__area_exit_tree :: MethodBind\nbindArea__area_exit_tree\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"_area_exit_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_area_exit_tree ::\n                  (Area :< cls, Object :< cls) => cls -> Int -> IO ()\n_area_exit_tree cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea__area_exit_tree (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"_area_exit_tree\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Area._area_exit_tree\n\n{-# NOINLINE bindArea__area_inout #-}\n\nbindArea__area_inout :: MethodBind\nbindArea__area_inout\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"_area_inout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_area_inout ::\n              (Area :< cls, Object :< cls) =>\n              cls -> Int -> Rid -> Int -> Int -> Int -> IO ()\n_area_inout cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea__area_inout (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"_area_inout\" '[Int, Rid, Int, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Area._area_inout\n\n{-# NOINLINE bindArea__body_enter_tree #-}\n\nbindArea__body_enter_tree :: MethodBind\nbindArea__body_enter_tree\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"_body_enter_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_body_enter_tree ::\n                   (Area :< cls, Object :< cls) => cls -> Int -> IO ()\n_body_enter_tree cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea__body_enter_tree (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"_body_enter_tree\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Area._body_enter_tree\n\n{-# NOINLINE bindArea__body_exit_tree #-}\n\nbindArea__body_exit_tree :: MethodBind\nbindArea__body_exit_tree\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"_body_exit_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_body_exit_tree ::\n                  (Area :< cls, Object :< cls) => cls -> Int -> IO ()\n_body_exit_tree cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea__body_exit_tree (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"_body_exit_tree\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Area._body_exit_tree\n\n{-# NOINLINE bindArea__body_inout #-}\n\nbindArea__body_inout :: MethodBind\nbindArea__body_inout\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"_body_inout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_body_inout ::\n              (Area :< cls, Object :< cls) =>\n              cls -> Int -> Rid -> Int -> Int -> Int -> IO ()\n_body_inout cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea__body_inout (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"_body_inout\" '[Int, Rid, Int, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Area._body_inout\n\n{-# NOINLINE bindArea_get_angular_damp #-}\n\n-- | The rate at which objects stop spinning in this area. Represents the angular velocity lost per second. Values range from @0@ (no damping) to @1@ (full damping).\nbindArea_get_angular_damp :: MethodBind\nbindArea_get_angular_damp\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"get_angular_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rate at which objects stop spinning in this area. Represents the angular velocity lost per second. Values range from @0@ (no damping) to @1@ (full damping).\nget_angular_damp :: (Area :< cls, Object :< cls) => cls -> IO Float\nget_angular_damp cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_get_angular_damp (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"get_angular_damp\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Area.get_angular_damp\n\n{-# NOINLINE bindArea_get_audio_bus #-}\n\n-- | The name of the area's audio bus.\nbindArea_get_audio_bus :: MethodBind\nbindArea_get_audio_bus\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"get_audio_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The name of the area's audio bus.\nget_audio_bus ::\n                (Area :< cls, Object :< cls) => cls -> IO GodotString\nget_audio_bus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_get_audio_bus (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"get_audio_bus\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.Area.get_audio_bus\n\n{-# NOINLINE bindArea_get_collision_layer #-}\n\n-- | The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also @collision_mask@. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindArea_get_collision_layer :: MethodBind\nbindArea_get_collision_layer\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also @collision_mask@. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nget_collision_layer ::\n                      (Area :< cls, Object :< cls) => cls -> IO Int\nget_collision_layer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_get_collision_layer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"get_collision_layer\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Area.get_collision_layer\n\n{-# NOINLINE bindArea_get_collision_layer_bit #-}\n\n-- | Returns an individual bit on the layer mask.\nbindArea_get_collision_layer_bit :: MethodBind\nbindArea_get_collision_layer_bit\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_layer_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an individual bit on the layer mask.\nget_collision_layer_bit ::\n                          (Area :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_layer_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_get_collision_layer_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"get_collision_layer_bit\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Area.get_collision_layer_bit\n\n{-# NOINLINE bindArea_get_collision_mask #-}\n\n-- | The physics layers this area scans to determine collision detection. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindArea_get_collision_mask :: MethodBind\nbindArea_get_collision_mask\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layers this area scans to determine collision detection. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nget_collision_mask :: (Area :< cls, Object :< cls) => cls -> IO Int\nget_collision_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_get_collision_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"get_collision_mask\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Area.get_collision_mask\n\n{-# NOINLINE bindArea_get_collision_mask_bit #-}\n\n-- | Returns an individual bit on the collision mask.\nbindArea_get_collision_mask_bit :: MethodBind\nbindArea_get_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an individual bit on the collision mask.\nget_collision_mask_bit ::\n                         (Area :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_mask_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_get_collision_mask_bit (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"get_collision_mask_bit\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Area.get_collision_mask_bit\n\n{-# NOINLINE bindArea_get_gravity #-}\n\n-- | The area's gravity intensity (ranges from -1024 to 1024). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction.\nbindArea_get_gravity :: MethodBind\nbindArea_get_gravity\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"get_gravity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The area's gravity intensity (ranges from -1024 to 1024). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction.\nget_gravity :: (Area :< cls, Object :< cls) => cls -> IO Float\nget_gravity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_get_gravity (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"get_gravity\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Area.get_gravity\n\n{-# NOINLINE bindArea_get_gravity_distance_scale #-}\n\n-- | The falloff factor for point gravity. The greater the value, the faster gravity decreases with distance.\nbindArea_get_gravity_distance_scale :: MethodBind\nbindArea_get_gravity_distance_scale\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"get_gravity_distance_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The falloff factor for point gravity. The greater the value, the faster gravity decreases with distance.\nget_gravity_distance_scale ::\n                             (Area :< cls, Object :< cls) => cls -> IO Float\nget_gravity_distance_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_get_gravity_distance_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"get_gravity_distance_scale\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Area.get_gravity_distance_scale\n\n{-# NOINLINE bindArea_get_gravity_vector #-}\n\n-- | The area's gravity vector (not normalized). If gravity is a point (see @gravity_point@), this will be the point of attraction.\nbindArea_get_gravity_vector :: MethodBind\nbindArea_get_gravity_vector\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"get_gravity_vector\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The area's gravity vector (not normalized). If gravity is a point (see @gravity_point@), this will be the point of attraction.\nget_gravity_vector ::\n                     (Area :< cls, Object :< cls) => cls -> IO Vector3\nget_gravity_vector cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_get_gravity_vector (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"get_gravity_vector\" '[] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Area.get_gravity_vector\n\n{-# NOINLINE bindArea_get_linear_damp #-}\n\n-- | The rate at which objects stop moving in this area. Represents the linear velocity lost per second. Values range from @0@ (no damping) to @1@ (full damping).\nbindArea_get_linear_damp :: MethodBind\nbindArea_get_linear_damp\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"get_linear_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rate at which objects stop moving in this area. Represents the linear velocity lost per second. Values range from @0@ (no damping) to @1@ (full damping).\nget_linear_damp :: (Area :< cls, Object :< cls) => cls -> IO Float\nget_linear_damp cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_get_linear_damp (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"get_linear_damp\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Area.get_linear_damp\n\n{-# NOINLINE bindArea_get_overlapping_areas #-}\n\n-- | Returns a list of intersecting @Area@s. For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.\nbindArea_get_overlapping_areas :: MethodBind\nbindArea_get_overlapping_areas\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"get_overlapping_areas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a list of intersecting @Area@s. For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.\nget_overlapping_areas ::\n                        (Area :< cls, Object :< cls) => cls -> IO Array\nget_overlapping_areas cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_get_overlapping_areas (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"get_overlapping_areas\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.Area.get_overlapping_areas\n\n{-# NOINLINE bindArea_get_overlapping_bodies #-}\n\n-- | Returns a list of intersecting @PhysicsBody@s. For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.\nbindArea_get_overlapping_bodies :: MethodBind\nbindArea_get_overlapping_bodies\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"get_overlapping_bodies\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a list of intersecting @PhysicsBody@s. For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.\nget_overlapping_bodies ::\n                         (Area :< cls, Object :< cls) => cls -> IO Array\nget_overlapping_bodies cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_get_overlapping_bodies (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"get_overlapping_bodies\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.Area.get_overlapping_bodies\n\n{-# NOINLINE bindArea_get_priority #-}\n\n-- | The area's priority. Higher priority areas are processed first.\nbindArea_get_priority :: MethodBind\nbindArea_get_priority\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"get_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The area's priority. Higher priority areas are processed first.\nget_priority :: (Area :< cls, Object :< cls) => cls -> IO Float\nget_priority cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_get_priority (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"get_priority\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Area.get_priority\n\n{-# NOINLINE bindArea_get_reverb_amount #-}\n\n-- | The degree to which this area applies reverb to its associated audio. Ranges from @0@ to @1@ with @0.1@ precision.\nbindArea_get_reverb_amount :: MethodBind\nbindArea_get_reverb_amount\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"get_reverb_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The degree to which this area applies reverb to its associated audio. Ranges from @0@ to @1@ with @0.1@ precision.\nget_reverb_amount ::\n                    (Area :< cls, Object :< cls) => cls -> IO Float\nget_reverb_amount cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_get_reverb_amount (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"get_reverb_amount\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Area.get_reverb_amount\n\n{-# NOINLINE bindArea_get_reverb_bus #-}\n\n-- | The reverb bus name to use for this area's associated audio.\nbindArea_get_reverb_bus :: MethodBind\nbindArea_get_reverb_bus\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"get_reverb_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The reverb bus name to use for this area's associated audio.\nget_reverb_bus ::\n                 (Area :< cls, Object :< cls) => cls -> IO GodotString\nget_reverb_bus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_get_reverb_bus (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"get_reverb_bus\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Area.get_reverb_bus\n\n{-# NOINLINE bindArea_get_reverb_uniformity #-}\n\n-- | The degree to which this area's reverb is a uniform effect. Ranges from @0@ to @1@ with @0.1@ precision.\nbindArea_get_reverb_uniformity :: MethodBind\nbindArea_get_reverb_uniformity\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"get_reverb_uniformity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The degree to which this area's reverb is a uniform effect. Ranges from @0@ to @1@ with @0.1@ precision.\nget_reverb_uniformity ::\n                        (Area :< cls, Object :< cls) => cls -> IO Float\nget_reverb_uniformity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_get_reverb_uniformity (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"get_reverb_uniformity\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Area.get_reverb_uniformity\n\n{-# NOINLINE bindArea_get_space_override_mode #-}\n\n-- | Override mode for gravity and damping calculations within this area. See @enum SpaceOverride@ for possible values.\nbindArea_get_space_override_mode :: MethodBind\nbindArea_get_space_override_mode\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"get_space_override_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override mode for gravity and damping calculations within this area. See @enum SpaceOverride@ for possible values.\nget_space_override_mode ::\n                          (Area :< cls, Object :< cls) => cls -> IO Int\nget_space_override_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_get_space_override_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"get_space_override_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Area.get_space_override_mode\n\n{-# NOINLINE bindArea_is_gravity_a_point #-}\n\n-- | If @true@, gravity is calculated from a point (set via @gravity_vec@). See also @space_override@.\nbindArea_is_gravity_a_point :: MethodBind\nbindArea_is_gravity_a_point\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"is_gravity_a_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, gravity is calculated from a point (set via @gravity_vec@). See also @space_override@.\nis_gravity_a_point ::\n                     (Area :< cls, Object :< cls) => cls -> IO Bool\nis_gravity_a_point cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_is_gravity_a_point (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"is_gravity_a_point\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Area.is_gravity_a_point\n\n{-# NOINLINE bindArea_is_monitorable #-}\n\n-- | If @true@, other monitoring areas can detect this area.\nbindArea_is_monitorable :: MethodBind\nbindArea_is_monitorable\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"is_monitorable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, other monitoring areas can detect this area.\nis_monitorable :: (Area :< cls, Object :< cls) => cls -> IO Bool\nis_monitorable cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_is_monitorable (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"is_monitorable\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Area.is_monitorable\n\n{-# NOINLINE bindArea_is_monitoring #-}\n\n-- | If @true@, the area detects bodies or areas entering and exiting it.\nbindArea_is_monitoring :: MethodBind\nbindArea_is_monitoring\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"is_monitoring\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the area detects bodies or areas entering and exiting it.\nis_monitoring :: (Area :< cls, Object :< cls) => cls -> IO Bool\nis_monitoring cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_is_monitoring (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"is_monitoring\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Area.is_monitoring\n\n{-# NOINLINE bindArea_is_overriding_audio_bus #-}\n\n-- | If @true@, the area's audio bus overrides the default audio bus.\nbindArea_is_overriding_audio_bus :: MethodBind\nbindArea_is_overriding_audio_bus\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"is_overriding_audio_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the area's audio bus overrides the default audio bus.\nis_overriding_audio_bus ::\n                          (Area :< cls, Object :< cls) => cls -> IO Bool\nis_overriding_audio_bus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_is_overriding_audio_bus\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"is_overriding_audio_bus\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Area.is_overriding_audio_bus\n\n{-# NOINLINE bindArea_is_using_reverb_bus #-}\n\n-- | If @true@, the area applies reverb to its associated audio.\nbindArea_is_using_reverb_bus :: MethodBind\nbindArea_is_using_reverb_bus\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_reverb_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the area applies reverb to its associated audio.\nis_using_reverb_bus ::\n                      (Area :< cls, Object :< cls) => cls -> IO Bool\nis_using_reverb_bus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_is_using_reverb_bus (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"is_using_reverb_bus\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Area.is_using_reverb_bus\n\n{-# NOINLINE bindArea_overlaps_area #-}\n\n-- | If @true@, the given area overlaps the Area.\n--   \t\t\t\t__Note:__ The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.\nbindArea_overlaps_area :: MethodBind\nbindArea_overlaps_area\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"overlaps_area\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the given area overlaps the Area.\n--   \t\t\t\t__Note:__ The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.\noverlaps_area ::\n                (Area :< cls, Object :< cls) => cls -> Node -> IO Bool\noverlaps_area cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_overlaps_area (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"overlaps_area\" '[Node] (IO Bool) where\n        nodeMethod = Godot.Core.Area.overlaps_area\n\n{-# NOINLINE bindArea_overlaps_body #-}\n\n-- | If @true@, the given physics body overlaps the Area.\n--   \t\t\t\t__Note:__ The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.\n--   \t\t\t\tThe @body@ argument can either be a @PhysicsBody@ or a @GridMap@ instance (while GridMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body).\nbindArea_overlaps_body :: MethodBind\nbindArea_overlaps_body\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"overlaps_body\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the given physics body overlaps the Area.\n--   \t\t\t\t__Note:__ The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.\n--   \t\t\t\tThe @body@ argument can either be a @PhysicsBody@ or a @GridMap@ instance (while GridMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body).\noverlaps_body ::\n                (Area :< cls, Object :< cls) => cls -> Node -> IO Bool\noverlaps_body cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_overlaps_body (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"overlaps_body\" '[Node] (IO Bool) where\n        nodeMethod = Godot.Core.Area.overlaps_body\n\n{-# NOINLINE bindArea_set_angular_damp #-}\n\n-- | The rate at which objects stop spinning in this area. Represents the angular velocity lost per second. Values range from @0@ (no damping) to @1@ (full damping).\nbindArea_set_angular_damp :: MethodBind\nbindArea_set_angular_damp\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_angular_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rate at which objects stop spinning in this area. Represents the angular velocity lost per second. Values range from @0@ (no damping) to @1@ (full damping).\nset_angular_damp ::\n                   (Area :< cls, Object :< cls) => cls -> Float -> IO ()\nset_angular_damp cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_angular_damp (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_angular_damp\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Area.set_angular_damp\n\n{-# NOINLINE bindArea_set_audio_bus #-}\n\n-- | The name of the area's audio bus.\nbindArea_set_audio_bus :: MethodBind\nbindArea_set_audio_bus\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_audio_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The name of the area's audio bus.\nset_audio_bus ::\n                (Area :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_audio_bus cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_audio_bus (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_audio_bus\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.Area.set_audio_bus\n\n{-# NOINLINE bindArea_set_audio_bus_override #-}\n\n-- | If @true@, the area's audio bus overrides the default audio bus.\nbindArea_set_audio_bus_override :: MethodBind\nbindArea_set_audio_bus_override\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_audio_bus_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the area's audio bus overrides the default audio bus.\nset_audio_bus_override ::\n                         (Area :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_audio_bus_override cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_audio_bus_override (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_audio_bus_override\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Area.set_audio_bus_override\n\n{-# NOINLINE bindArea_set_collision_layer #-}\n\n-- | The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also @collision_mask@. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindArea_set_collision_layer :: MethodBind\nbindArea_set_collision_layer\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also @collision_mask@. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nset_collision_layer ::\n                      (Area :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_layer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_collision_layer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_collision_layer\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Area.set_collision_layer\n\n{-# NOINLINE bindArea_set_collision_layer_bit #-}\n\n-- | Set/clear individual bits on the layer mask. This simplifies editing this @Area@'s layers.\nbindArea_set_collision_layer_bit :: MethodBind\nbindArea_set_collision_layer_bit\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_layer_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Set/clear individual bits on the layer mask. This simplifies editing this @Area@'s layers.\nset_collision_layer_bit ::\n                          (Area :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_collision_layer_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_collision_layer_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_collision_layer_bit\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Area.set_collision_layer_bit\n\n{-# NOINLINE bindArea_set_collision_mask #-}\n\n-- | The physics layers this area scans to determine collision detection. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindArea_set_collision_mask :: MethodBind\nbindArea_set_collision_mask\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layers this area scans to determine collision detection. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nset_collision_mask ::\n                     (Area :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_collision_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_collision_mask\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Area.set_collision_mask\n\n{-# NOINLINE bindArea_set_collision_mask_bit #-}\n\n-- | Set/clear individual bits on the collision mask. This simplifies editing which @Area@ layers this @Area@ scans.\nbindArea_set_collision_mask_bit :: MethodBind\nbindArea_set_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Set/clear individual bits on the collision mask. This simplifies editing which @Area@ layers this @Area@ scans.\nset_collision_mask_bit ::\n                         (Area :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_collision_mask_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_collision_mask_bit (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_collision_mask_bit\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Area.set_collision_mask_bit\n\n{-# NOINLINE bindArea_set_gravity #-}\n\n-- | The area's gravity intensity (ranges from -1024 to 1024). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction.\nbindArea_set_gravity :: MethodBind\nbindArea_set_gravity\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_gravity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The area's gravity intensity (ranges from -1024 to 1024). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction.\nset_gravity ::\n              (Area :< cls, Object :< cls) => cls -> Float -> IO ()\nset_gravity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_gravity (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_gravity\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Area.set_gravity\n\n{-# NOINLINE bindArea_set_gravity_distance_scale #-}\n\n-- | The falloff factor for point gravity. The greater the value, the faster gravity decreases with distance.\nbindArea_set_gravity_distance_scale :: MethodBind\nbindArea_set_gravity_distance_scale\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_gravity_distance_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The falloff factor for point gravity. The greater the value, the faster gravity decreases with distance.\nset_gravity_distance_scale ::\n                             (Area :< cls, Object :< cls) => cls -> Float -> IO ()\nset_gravity_distance_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_gravity_distance_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_gravity_distance_scale\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Area.set_gravity_distance_scale\n\n{-# NOINLINE bindArea_set_gravity_is_point #-}\n\n-- | If @true@, gravity is calculated from a point (set via @gravity_vec@). See also @space_override@.\nbindArea_set_gravity_is_point :: MethodBind\nbindArea_set_gravity_is_point\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_gravity_is_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, gravity is calculated from a point (set via @gravity_vec@). See also @space_override@.\nset_gravity_is_point ::\n                       (Area :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_gravity_is_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_gravity_is_point (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_gravity_is_point\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Area.set_gravity_is_point\n\n{-# NOINLINE bindArea_set_gravity_vector #-}\n\n-- | The area's gravity vector (not normalized). If gravity is a point (see @gravity_point@), this will be the point of attraction.\nbindArea_set_gravity_vector :: MethodBind\nbindArea_set_gravity_vector\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_gravity_vector\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The area's gravity vector (not normalized). If gravity is a point (see @gravity_point@), this will be the point of attraction.\nset_gravity_vector ::\n                     (Area :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_gravity_vector cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_gravity_vector (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_gravity_vector\" '[Vector3] (IO ())\n         where\n        nodeMethod = Godot.Core.Area.set_gravity_vector\n\n{-# NOINLINE bindArea_set_linear_damp #-}\n\n-- | The rate at which objects stop moving in this area. Represents the linear velocity lost per second. Values range from @0@ (no damping) to @1@ (full damping).\nbindArea_set_linear_damp :: MethodBind\nbindArea_set_linear_damp\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_linear_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rate at which objects stop moving in this area. Represents the linear velocity lost per second. Values range from @0@ (no damping) to @1@ (full damping).\nset_linear_damp ::\n                  (Area :< cls, Object :< cls) => cls -> Float -> IO ()\nset_linear_damp cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_linear_damp (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_linear_damp\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Area.set_linear_damp\n\n{-# NOINLINE bindArea_set_monitorable #-}\n\n-- | If @true@, other monitoring areas can detect this area.\nbindArea_set_monitorable :: MethodBind\nbindArea_set_monitorable\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_monitorable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, other monitoring areas can detect this area.\nset_monitorable ::\n                  (Area :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_monitorable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_monitorable (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_monitorable\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Area.set_monitorable\n\n{-# NOINLINE bindArea_set_monitoring #-}\n\n-- | If @true@, the area detects bodies or areas entering and exiting it.\nbindArea_set_monitoring :: MethodBind\nbindArea_set_monitoring\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_monitoring\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the area detects bodies or areas entering and exiting it.\nset_monitoring ::\n                 (Area :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_monitoring cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_monitoring (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_monitoring\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Area.set_monitoring\n\n{-# NOINLINE bindArea_set_priority #-}\n\n-- | The area's priority. Higher priority areas are processed first.\nbindArea_set_priority :: MethodBind\nbindArea_set_priority\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The area's priority. Higher priority areas are processed first.\nset_priority ::\n               (Area :< cls, Object :< cls) => cls -> Float -> IO ()\nset_priority cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_priority (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_priority\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Area.set_priority\n\n{-# NOINLINE bindArea_set_reverb_amount #-}\n\n-- | The degree to which this area applies reverb to its associated audio. Ranges from @0@ to @1@ with @0.1@ precision.\nbindArea_set_reverb_amount :: MethodBind\nbindArea_set_reverb_amount\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_reverb_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The degree to which this area applies reverb to its associated audio. Ranges from @0@ to @1@ with @0.1@ precision.\nset_reverb_amount ::\n                    (Area :< cls, Object :< cls) => cls -> Float -> IO ()\nset_reverb_amount cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_reverb_amount (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_reverb_amount\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Area.set_reverb_amount\n\n{-# NOINLINE bindArea_set_reverb_bus #-}\n\n-- | The reverb bus name to use for this area's associated audio.\nbindArea_set_reverb_bus :: MethodBind\nbindArea_set_reverb_bus\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_reverb_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The reverb bus name to use for this area's associated audio.\nset_reverb_bus ::\n                 (Area :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_reverb_bus cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_reverb_bus (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_reverb_bus\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.Area.set_reverb_bus\n\n{-# NOINLINE bindArea_set_reverb_uniformity #-}\n\n-- | The degree to which this area's reverb is a uniform effect. Ranges from @0@ to @1@ with @0.1@ precision.\nbindArea_set_reverb_uniformity :: MethodBind\nbindArea_set_reverb_uniformity\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_reverb_uniformity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The degree to which this area's reverb is a uniform effect. Ranges from @0@ to @1@ with @0.1@ precision.\nset_reverb_uniformity ::\n                        (Area :< cls, Object :< cls) => cls -> Float -> IO ()\nset_reverb_uniformity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_reverb_uniformity (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_reverb_uniformity\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Area.set_reverb_uniformity\n\n{-# NOINLINE bindArea_set_space_override_mode #-}\n\n-- | Override mode for gravity and damping calculations within this area. See @enum SpaceOverride@ for possible values.\nbindArea_set_space_override_mode :: MethodBind\nbindArea_set_space_override_mode\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_space_override_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override mode for gravity and damping calculations within this area. See @enum SpaceOverride@ for possible values.\nset_space_override_mode ::\n                          (Area :< cls, Object :< cls) => cls -> Int -> IO ()\nset_space_override_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_space_override_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_space_override_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Area.set_space_override_mode\n\n{-# NOINLINE bindArea_set_use_reverb_bus #-}\n\n-- | If @true@, the area applies reverb to its associated audio.\nbindArea_set_use_reverb_bus :: MethodBind\nbindArea_set_use_reverb_bus\n  = unsafePerformIO $\n      withCString \"Area\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_reverb_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the area applies reverb to its associated audio.\nset_use_reverb_bus ::\n                     (Area :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_reverb_bus cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea_set_use_reverb_bus (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area \"set_use_reverb_bus\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Area.set_use_reverb_bus"
  },
  {
    "path": "src/Godot/Core/Area2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Area2D\n       (Godot.Core.Area2D._SPACE_OVERRIDE_REPLACE,\n        Godot.Core.Area2D._SPACE_OVERRIDE_DISABLED,\n        Godot.Core.Area2D._SPACE_OVERRIDE_COMBINE_REPLACE,\n        Godot.Core.Area2D._SPACE_OVERRIDE_REPLACE_COMBINE,\n        Godot.Core.Area2D._SPACE_OVERRIDE_COMBINE,\n        Godot.Core.Area2D.sig_area_entered,\n        Godot.Core.Area2D.sig_area_exited,\n        Godot.Core.Area2D.sig_area_shape_entered,\n        Godot.Core.Area2D.sig_area_shape_exited,\n        Godot.Core.Area2D.sig_body_entered,\n        Godot.Core.Area2D.sig_body_exited,\n        Godot.Core.Area2D.sig_body_shape_entered,\n        Godot.Core.Area2D.sig_body_shape_exited,\n        Godot.Core.Area2D._area_enter_tree,\n        Godot.Core.Area2D._area_exit_tree, Godot.Core.Area2D._area_inout,\n        Godot.Core.Area2D._body_enter_tree,\n        Godot.Core.Area2D._body_exit_tree, Godot.Core.Area2D._body_inout,\n        Godot.Core.Area2D.get_angular_damp,\n        Godot.Core.Area2D.get_audio_bus_name,\n        Godot.Core.Area2D.get_collision_layer,\n        Godot.Core.Area2D.get_collision_layer_bit,\n        Godot.Core.Area2D.get_collision_mask,\n        Godot.Core.Area2D.get_collision_mask_bit,\n        Godot.Core.Area2D.get_gravity,\n        Godot.Core.Area2D.get_gravity_distance_scale,\n        Godot.Core.Area2D.get_gravity_vector,\n        Godot.Core.Area2D.get_linear_damp,\n        Godot.Core.Area2D.get_overlapping_areas,\n        Godot.Core.Area2D.get_overlapping_bodies,\n        Godot.Core.Area2D.get_priority,\n        Godot.Core.Area2D.get_space_override_mode,\n        Godot.Core.Area2D.is_gravity_a_point,\n        Godot.Core.Area2D.is_monitorable, Godot.Core.Area2D.is_monitoring,\n        Godot.Core.Area2D.is_overriding_audio_bus,\n        Godot.Core.Area2D.overlaps_area, Godot.Core.Area2D.overlaps_body,\n        Godot.Core.Area2D.set_angular_damp,\n        Godot.Core.Area2D.set_audio_bus_name,\n        Godot.Core.Area2D.set_audio_bus_override,\n        Godot.Core.Area2D.set_collision_layer,\n        Godot.Core.Area2D.set_collision_layer_bit,\n        Godot.Core.Area2D.set_collision_mask,\n        Godot.Core.Area2D.set_collision_mask_bit,\n        Godot.Core.Area2D.set_gravity,\n        Godot.Core.Area2D.set_gravity_distance_scale,\n        Godot.Core.Area2D.set_gravity_is_point,\n        Godot.Core.Area2D.set_gravity_vector,\n        Godot.Core.Area2D.set_linear_damp,\n        Godot.Core.Area2D.set_monitorable,\n        Godot.Core.Area2D.set_monitoring, Godot.Core.Area2D.set_priority,\n        Godot.Core.Area2D.set_space_override_mode)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.CollisionObject2D()\n\n_SPACE_OVERRIDE_REPLACE :: Int\n_SPACE_OVERRIDE_REPLACE = 3\n\n_SPACE_OVERRIDE_DISABLED :: Int\n_SPACE_OVERRIDE_DISABLED = 0\n\n_SPACE_OVERRIDE_COMBINE_REPLACE :: Int\n_SPACE_OVERRIDE_COMBINE_REPLACE = 2\n\n_SPACE_OVERRIDE_REPLACE_COMBINE :: Int\n_SPACE_OVERRIDE_REPLACE_COMBINE = 4\n\n_SPACE_OVERRIDE_COMBINE :: Int\n_SPACE_OVERRIDE_COMBINE = 1\n\n-- | Emitted when another area enters.\nsig_area_entered :: Godot.Internal.Dispatch.Signal Area2D\nsig_area_entered = Godot.Internal.Dispatch.Signal \"area_entered\"\n\ninstance NodeSignal Area2D \"area_entered\" '[Area2D]\n\n-- | Emitted when another area exits.\nsig_area_exited :: Godot.Internal.Dispatch.Signal Area2D\nsig_area_exited = Godot.Internal.Dispatch.Signal \"area_exited\"\n\ninstance NodeSignal Area2D \"area_exited\" '[Area2D]\n\n-- | Emitted when another area enters, reporting which shapes overlapped. @shape_owner_get_owner(shape_find_owner(shape))@ returns the parent object of the owner of the @shape@.\nsig_area_shape_entered :: Godot.Internal.Dispatch.Signal Area2D\nsig_area_shape_entered\n  = Godot.Internal.Dispatch.Signal \"area_shape_entered\"\n\ninstance NodeSignal Area2D \"area_shape_entered\"\n           '[Int, Area2D, Int, Int]\n\n-- | Emitted when another area exits, reporting which shapes were overlapping.\nsig_area_shape_exited :: Godot.Internal.Dispatch.Signal Area2D\nsig_area_shape_exited\n  = Godot.Internal.Dispatch.Signal \"area_shape_exited\"\n\ninstance NodeSignal Area2D \"area_shape_exited\"\n           '[Int, Area2D, Int, Int]\n\n-- | Emitted when a physics body enters.\n--   \t\t\t\tThe @body@ argument can either be a @PhysicsBody2D@ or a @TileMap@ instance (while TileMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body).\nsig_body_entered :: Godot.Internal.Dispatch.Signal Area2D\nsig_body_entered = Godot.Internal.Dispatch.Signal \"body_entered\"\n\ninstance NodeSignal Area2D \"body_entered\" '[Node]\n\n-- | Emitted when a physics body exits.\n--   \t\t\t\tThe @body@ argument can either be a @PhysicsBody2D@ or a @TileMap@ instance (while TileMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body).\nsig_body_exited :: Godot.Internal.Dispatch.Signal Area2D\nsig_body_exited = Godot.Internal.Dispatch.Signal \"body_exited\"\n\ninstance NodeSignal Area2D \"body_exited\" '[Node]\n\n-- | Emitted when a physics body enters, reporting which shapes overlapped.\n--   \t\t\t\tThe @body@ argument can either be a @PhysicsBody2D@ or a @TileMap@ instance (while TileMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body).\nsig_body_shape_entered :: Godot.Internal.Dispatch.Signal Area2D\nsig_body_shape_entered\n  = Godot.Internal.Dispatch.Signal \"body_shape_entered\"\n\ninstance NodeSignal Area2D \"body_shape_entered\"\n           '[Int, Node, Int, Int]\n\n-- | Emitted when a physics body exits, reporting which shapes were overlapping.\n--   \t\t\t\tThe @body@ argument can either be a @PhysicsBody2D@ or a @TileMap@ instance (while TileMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body).\nsig_body_shape_exited :: Godot.Internal.Dispatch.Signal Area2D\nsig_body_shape_exited\n  = Godot.Internal.Dispatch.Signal \"body_shape_exited\"\n\ninstance NodeSignal Area2D \"body_shape_exited\"\n           '[Int, Node, Int, Int]\n\ninstance NodeProperty Area2D \"angular_damp\" Float 'False where\n        nodeProperty\n          = (get_angular_damp, wrapDroppingSetter set_angular_damp, Nothing)\n\ninstance NodeProperty Area2D \"audio_bus_name\" GodotString 'False\n         where\n        nodeProperty\n          = (get_audio_bus_name, wrapDroppingSetter set_audio_bus_name,\n             Nothing)\n\ninstance NodeProperty Area2D \"audio_bus_override\" Bool 'False where\n        nodeProperty\n          = (is_overriding_audio_bus,\n             wrapDroppingSetter set_audio_bus_override, Nothing)\n\ninstance NodeProperty Area2D \"collision_layer\" Int 'False where\n        nodeProperty\n          = (get_collision_layer, wrapDroppingSetter set_collision_layer,\n             Nothing)\n\ninstance NodeProperty Area2D \"collision_mask\" Int 'False where\n        nodeProperty\n          = (get_collision_mask, wrapDroppingSetter set_collision_mask,\n             Nothing)\n\ninstance NodeProperty Area2D \"gravity\" Float 'False where\n        nodeProperty\n          = (get_gravity, wrapDroppingSetter set_gravity, Nothing)\n\ninstance NodeProperty Area2D \"gravity_distance_scale\" Float 'False\n         where\n        nodeProperty\n          = (get_gravity_distance_scale,\n             wrapDroppingSetter set_gravity_distance_scale, Nothing)\n\ninstance NodeProperty Area2D \"gravity_point\" Bool 'False where\n        nodeProperty\n          = (is_gravity_a_point, wrapDroppingSetter set_gravity_is_point,\n             Nothing)\n\ninstance NodeProperty Area2D \"gravity_vec\" Vector2 'False where\n        nodeProperty\n          = (get_gravity_vector, wrapDroppingSetter set_gravity_vector,\n             Nothing)\n\ninstance NodeProperty Area2D \"linear_damp\" Float 'False where\n        nodeProperty\n          = (get_linear_damp, wrapDroppingSetter set_linear_damp, Nothing)\n\ninstance NodeProperty Area2D \"monitorable\" Bool 'False where\n        nodeProperty\n          = (is_monitorable, wrapDroppingSetter set_monitorable, Nothing)\n\ninstance NodeProperty Area2D \"monitoring\" Bool 'False where\n        nodeProperty\n          = (is_monitoring, wrapDroppingSetter set_monitoring, Nothing)\n\ninstance NodeProperty Area2D \"priority\" Float 'False where\n        nodeProperty\n          = (get_priority, wrapDroppingSetter set_priority, Nothing)\n\ninstance NodeProperty Area2D \"space_override\" Int 'False where\n        nodeProperty\n          = (get_space_override_mode,\n             wrapDroppingSetter set_space_override_mode, Nothing)\n\n{-# NOINLINE bindArea2D__area_enter_tree #-}\n\nbindArea2D__area_enter_tree :: MethodBind\nbindArea2D__area_enter_tree\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"_area_enter_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_area_enter_tree ::\n                   (Area2D :< cls, Object :< cls) => cls -> Int -> IO ()\n_area_enter_tree cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D__area_enter_tree (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"_area_enter_tree\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Area2D._area_enter_tree\n\n{-# NOINLINE bindArea2D__area_exit_tree #-}\n\nbindArea2D__area_exit_tree :: MethodBind\nbindArea2D__area_exit_tree\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"_area_exit_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_area_exit_tree ::\n                  (Area2D :< cls, Object :< cls) => cls -> Int -> IO ()\n_area_exit_tree cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D__area_exit_tree (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"_area_exit_tree\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Area2D._area_exit_tree\n\n{-# NOINLINE bindArea2D__area_inout #-}\n\nbindArea2D__area_inout :: MethodBind\nbindArea2D__area_inout\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"_area_inout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_area_inout ::\n              (Area2D :< cls, Object :< cls) =>\n              cls -> Int -> Rid -> Int -> Int -> Int -> IO ()\n_area_inout cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D__area_inout (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"_area_inout\" '[Int, Rid, Int, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Area2D._area_inout\n\n{-# NOINLINE bindArea2D__body_enter_tree #-}\n\nbindArea2D__body_enter_tree :: MethodBind\nbindArea2D__body_enter_tree\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"_body_enter_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_body_enter_tree ::\n                   (Area2D :< cls, Object :< cls) => cls -> Int -> IO ()\n_body_enter_tree cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D__body_enter_tree (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"_body_enter_tree\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Area2D._body_enter_tree\n\n{-# NOINLINE bindArea2D__body_exit_tree #-}\n\nbindArea2D__body_exit_tree :: MethodBind\nbindArea2D__body_exit_tree\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"_body_exit_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_body_exit_tree ::\n                  (Area2D :< cls, Object :< cls) => cls -> Int -> IO ()\n_body_exit_tree cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D__body_exit_tree (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"_body_exit_tree\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Area2D._body_exit_tree\n\n{-# NOINLINE bindArea2D__body_inout #-}\n\nbindArea2D__body_inout :: MethodBind\nbindArea2D__body_inout\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"_body_inout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_body_inout ::\n              (Area2D :< cls, Object :< cls) =>\n              cls -> Int -> Rid -> Int -> Int -> Int -> IO ()\n_body_inout cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D__body_inout (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"_body_inout\" '[Int, Rid, Int, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Area2D._body_inout\n\n{-# NOINLINE bindArea2D_get_angular_damp #-}\n\n-- | The rate at which objects stop spinning in this area. Represents the angular velocity lost per second. Values range from @0@ (no damping) to @1@ (full damping).\nbindArea2D_get_angular_damp :: MethodBind\nbindArea2D_get_angular_damp\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_angular_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rate at which objects stop spinning in this area. Represents the angular velocity lost per second. Values range from @0@ (no damping) to @1@ (full damping).\nget_angular_damp ::\n                   (Area2D :< cls, Object :< cls) => cls -> IO Float\nget_angular_damp cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_get_angular_damp (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"get_angular_damp\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Area2D.get_angular_damp\n\n{-# NOINLINE bindArea2D_get_audio_bus_name #-}\n\n-- | The name of the area's audio bus.\nbindArea2D_get_audio_bus_name :: MethodBind\nbindArea2D_get_audio_bus_name\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_audio_bus_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The name of the area's audio bus.\nget_audio_bus_name ::\n                     (Area2D :< cls, Object :< cls) => cls -> IO GodotString\nget_audio_bus_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_get_audio_bus_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"get_audio_bus_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Area2D.get_audio_bus_name\n\n{-# NOINLINE bindArea2D_get_collision_layer #-}\n\n-- | The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also @collision_mask@. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindArea2D_get_collision_layer :: MethodBind\nbindArea2D_get_collision_layer\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also @collision_mask@. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nget_collision_layer ::\n                      (Area2D :< cls, Object :< cls) => cls -> IO Int\nget_collision_layer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_get_collision_layer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"get_collision_layer\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Area2D.get_collision_layer\n\n{-# NOINLINE bindArea2D_get_collision_layer_bit #-}\n\n-- | Returns an individual bit on the layer mask. Describes whether other areas will collide with this one on the given layer.\nbindArea2D_get_collision_layer_bit :: MethodBind\nbindArea2D_get_collision_layer_bit\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_layer_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an individual bit on the layer mask. Describes whether other areas will collide with this one on the given layer.\nget_collision_layer_bit ::\n                          (Area2D :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_layer_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_get_collision_layer_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"get_collision_layer_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Area2D.get_collision_layer_bit\n\n{-# NOINLINE bindArea2D_get_collision_mask #-}\n\n-- | The physics layers this area scans to determine collision detection. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindArea2D_get_collision_mask :: MethodBind\nbindArea2D_get_collision_mask\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layers this area scans to determine collision detection. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nget_collision_mask ::\n                     (Area2D :< cls, Object :< cls) => cls -> IO Int\nget_collision_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_get_collision_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"get_collision_mask\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Area2D.get_collision_mask\n\n{-# NOINLINE bindArea2D_get_collision_mask_bit #-}\n\n-- | Returns an individual bit on the collision mask. Describes whether this area will collide with others on the given layer.\nbindArea2D_get_collision_mask_bit :: MethodBind\nbindArea2D_get_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an individual bit on the collision mask. Describes whether this area will collide with others on the given layer.\nget_collision_mask_bit ::\n                         (Area2D :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_mask_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_get_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"get_collision_mask_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Area2D.get_collision_mask_bit\n\n{-# NOINLINE bindArea2D_get_gravity #-}\n\n-- | The area's gravity intensity (ranges from -1024 to 1024). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction.\nbindArea2D_get_gravity :: MethodBind\nbindArea2D_get_gravity\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_gravity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The area's gravity intensity (ranges from -1024 to 1024). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction.\nget_gravity :: (Area2D :< cls, Object :< cls) => cls -> IO Float\nget_gravity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_get_gravity (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"get_gravity\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Area2D.get_gravity\n\n{-# NOINLINE bindArea2D_get_gravity_distance_scale #-}\n\n-- | The falloff factor for point gravity. The greater the value, the faster gravity decreases with distance.\nbindArea2D_get_gravity_distance_scale :: MethodBind\nbindArea2D_get_gravity_distance_scale\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_gravity_distance_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The falloff factor for point gravity. The greater the value, the faster gravity decreases with distance.\nget_gravity_distance_scale ::\n                             (Area2D :< cls, Object :< cls) => cls -> IO Float\nget_gravity_distance_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_get_gravity_distance_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"get_gravity_distance_scale\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Area2D.get_gravity_distance_scale\n\n{-# NOINLINE bindArea2D_get_gravity_vector #-}\n\n-- | The area's gravity vector (not normalized). If gravity is a point (see @gravity_point@), this will be the point of attraction.\nbindArea2D_get_gravity_vector :: MethodBind\nbindArea2D_get_gravity_vector\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_gravity_vector\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The area's gravity vector (not normalized). If gravity is a point (see @gravity_point@), this will be the point of attraction.\nget_gravity_vector ::\n                     (Area2D :< cls, Object :< cls) => cls -> IO Vector2\nget_gravity_vector cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_get_gravity_vector (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"get_gravity_vector\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Area2D.get_gravity_vector\n\n{-# NOINLINE bindArea2D_get_linear_damp #-}\n\n-- | The rate at which objects stop moving in this area. Represents the linear velocity lost per second. Values range from @0@ (no damping) to @1@ (full damping).\nbindArea2D_get_linear_damp :: MethodBind\nbindArea2D_get_linear_damp\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_linear_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rate at which objects stop moving in this area. Represents the linear velocity lost per second. Values range from @0@ (no damping) to @1@ (full damping).\nget_linear_damp ::\n                  (Area2D :< cls, Object :< cls) => cls -> IO Float\nget_linear_damp cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_get_linear_damp (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"get_linear_damp\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Area2D.get_linear_damp\n\n{-# NOINLINE bindArea2D_get_overlapping_areas #-}\n\n-- | Returns a list of intersecting @Area2D@s. For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.\nbindArea2D_get_overlapping_areas :: MethodBind\nbindArea2D_get_overlapping_areas\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_overlapping_areas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a list of intersecting @Area2D@s. For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.\nget_overlapping_areas ::\n                        (Area2D :< cls, Object :< cls) => cls -> IO Array\nget_overlapping_areas cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_get_overlapping_areas\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"get_overlapping_areas\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.Area2D.get_overlapping_areas\n\n{-# NOINLINE bindArea2D_get_overlapping_bodies #-}\n\n-- | Returns a list of intersecting @PhysicsBody2D@s. For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.\nbindArea2D_get_overlapping_bodies :: MethodBind\nbindArea2D_get_overlapping_bodies\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_overlapping_bodies\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a list of intersecting @PhysicsBody2D@s. For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.\nget_overlapping_bodies ::\n                         (Area2D :< cls, Object :< cls) => cls -> IO Array\nget_overlapping_bodies cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_get_overlapping_bodies\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"get_overlapping_bodies\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.Area2D.get_overlapping_bodies\n\n{-# NOINLINE bindArea2D_get_priority #-}\n\n-- | The area's priority. Higher priority areas are processed first.\nbindArea2D_get_priority :: MethodBind\nbindArea2D_get_priority\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The area's priority. Higher priority areas are processed first.\nget_priority :: (Area2D :< cls, Object :< cls) => cls -> IO Float\nget_priority cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_get_priority (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"get_priority\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Area2D.get_priority\n\n{-# NOINLINE bindArea2D_get_space_override_mode #-}\n\n-- | Override mode for gravity and damping calculations within this area. See @enum SpaceOverride@ for possible values.\nbindArea2D_get_space_override_mode :: MethodBind\nbindArea2D_get_space_override_mode\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_space_override_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override mode for gravity and damping calculations within this area. See @enum SpaceOverride@ for possible values.\nget_space_override_mode ::\n                          (Area2D :< cls, Object :< cls) => cls -> IO Int\nget_space_override_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_get_space_override_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"get_space_override_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Area2D.get_space_override_mode\n\n{-# NOINLINE bindArea2D_is_gravity_a_point #-}\n\n-- | If @true@, gravity is calculated from a point (set via @gravity_vec@). See also @space_override@.\nbindArea2D_is_gravity_a_point :: MethodBind\nbindArea2D_is_gravity_a_point\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_gravity_a_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, gravity is calculated from a point (set via @gravity_vec@). See also @space_override@.\nis_gravity_a_point ::\n                     (Area2D :< cls, Object :< cls) => cls -> IO Bool\nis_gravity_a_point cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_is_gravity_a_point (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"is_gravity_a_point\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Area2D.is_gravity_a_point\n\n{-# NOINLINE bindArea2D_is_monitorable #-}\n\n-- | If @true@, other monitoring areas can detect this area.\nbindArea2D_is_monitorable :: MethodBind\nbindArea2D_is_monitorable\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_monitorable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, other monitoring areas can detect this area.\nis_monitorable :: (Area2D :< cls, Object :< cls) => cls -> IO Bool\nis_monitorable cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_is_monitorable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"is_monitorable\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Area2D.is_monitorable\n\n{-# NOINLINE bindArea2D_is_monitoring #-}\n\n-- | If @true@, the area detects bodies or areas entering and exiting it.\nbindArea2D_is_monitoring :: MethodBind\nbindArea2D_is_monitoring\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_monitoring\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the area detects bodies or areas entering and exiting it.\nis_monitoring :: (Area2D :< cls, Object :< cls) => cls -> IO Bool\nis_monitoring cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_is_monitoring (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"is_monitoring\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Area2D.is_monitoring\n\n{-# NOINLINE bindArea2D_is_overriding_audio_bus #-}\n\n-- | If @true@, the area's audio bus overrides the default audio bus.\nbindArea2D_is_overriding_audio_bus :: MethodBind\nbindArea2D_is_overriding_audio_bus\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_overriding_audio_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the area's audio bus overrides the default audio bus.\nis_overriding_audio_bus ::\n                          (Area2D :< cls, Object :< cls) => cls -> IO Bool\nis_overriding_audio_bus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_is_overriding_audio_bus\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"is_overriding_audio_bus\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Area2D.is_overriding_audio_bus\n\n{-# NOINLINE bindArea2D_overlaps_area #-}\n\n-- | If @true@, the given area overlaps the Area2D.\n--   \t\t\t\t__Note:__ The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.\nbindArea2D_overlaps_area :: MethodBind\nbindArea2D_overlaps_area\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"overlaps_area\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the given area overlaps the Area2D.\n--   \t\t\t\t__Note:__ The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.\noverlaps_area ::\n                (Area2D :< cls, Object :< cls) => cls -> Node -> IO Bool\noverlaps_area cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_overlaps_area (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"overlaps_area\" '[Node] (IO Bool) where\n        nodeMethod = Godot.Core.Area2D.overlaps_area\n\n{-# NOINLINE bindArea2D_overlaps_body #-}\n\n-- | If @true@, the given physics body overlaps the Area2D.\n--   \t\t\t\t__Note:__ The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.\n--   \t\t\t\tThe @body@ argument can either be a @PhysicsBody2D@ or a @TileMap@ instance (while TileMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body).\nbindArea2D_overlaps_body :: MethodBind\nbindArea2D_overlaps_body\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"overlaps_body\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the given physics body overlaps the Area2D.\n--   \t\t\t\t__Note:__ The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.\n--   \t\t\t\tThe @body@ argument can either be a @PhysicsBody2D@ or a @TileMap@ instance (while TileMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body).\noverlaps_body ::\n                (Area2D :< cls, Object :< cls) => cls -> Node -> IO Bool\noverlaps_body cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_overlaps_body (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"overlaps_body\" '[Node] (IO Bool) where\n        nodeMethod = Godot.Core.Area2D.overlaps_body\n\n{-# NOINLINE bindArea2D_set_angular_damp #-}\n\n-- | The rate at which objects stop spinning in this area. Represents the angular velocity lost per second. Values range from @0@ (no damping) to @1@ (full damping).\nbindArea2D_set_angular_damp :: MethodBind\nbindArea2D_set_angular_damp\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_angular_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rate at which objects stop spinning in this area. Represents the angular velocity lost per second. Values range from @0@ (no damping) to @1@ (full damping).\nset_angular_damp ::\n                   (Area2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_angular_damp cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_set_angular_damp (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"set_angular_damp\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Area2D.set_angular_damp\n\n{-# NOINLINE bindArea2D_set_audio_bus_name #-}\n\n-- | The name of the area's audio bus.\nbindArea2D_set_audio_bus_name :: MethodBind\nbindArea2D_set_audio_bus_name\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_audio_bus_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The name of the area's audio bus.\nset_audio_bus_name ::\n                     (Area2D :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_audio_bus_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_set_audio_bus_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"set_audio_bus_name\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Area2D.set_audio_bus_name\n\n{-# NOINLINE bindArea2D_set_audio_bus_override #-}\n\n-- | If @true@, the area's audio bus overrides the default audio bus.\nbindArea2D_set_audio_bus_override :: MethodBind\nbindArea2D_set_audio_bus_override\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_audio_bus_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the area's audio bus overrides the default audio bus.\nset_audio_bus_override ::\n                         (Area2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_audio_bus_override cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_set_audio_bus_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"set_audio_bus_override\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Area2D.set_audio_bus_override\n\n{-# NOINLINE bindArea2D_set_collision_layer #-}\n\n-- | The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also @collision_mask@. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindArea2D_set_collision_layer :: MethodBind\nbindArea2D_set_collision_layer\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also @collision_mask@. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nset_collision_layer ::\n                      (Area2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_layer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_set_collision_layer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"set_collision_layer\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Area2D.set_collision_layer\n\n{-# NOINLINE bindArea2D_set_collision_layer_bit #-}\n\n-- | Set/clear individual bits on the layer mask. This makes getting an area in/out of only one layer easier.\nbindArea2D_set_collision_layer_bit :: MethodBind\nbindArea2D_set_collision_layer_bit\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_layer_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Set/clear individual bits on the layer mask. This makes getting an area in/out of only one layer easier.\nset_collision_layer_bit ::\n                          (Area2D :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_collision_layer_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_set_collision_layer_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"set_collision_layer_bit\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Area2D.set_collision_layer_bit\n\n{-# NOINLINE bindArea2D_set_collision_mask #-}\n\n-- | The physics layers this area scans to determine collision detection. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindArea2D_set_collision_mask :: MethodBind\nbindArea2D_set_collision_mask\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layers this area scans to determine collision detection. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nset_collision_mask ::\n                     (Area2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_set_collision_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"set_collision_mask\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Area2D.set_collision_mask\n\n{-# NOINLINE bindArea2D_set_collision_mask_bit #-}\n\n-- | Set/clear individual bits on the collision mask. This makes selecting the areas scanned easier.\nbindArea2D_set_collision_mask_bit :: MethodBind\nbindArea2D_set_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Set/clear individual bits on the collision mask. This makes selecting the areas scanned easier.\nset_collision_mask_bit ::\n                         (Area2D :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_collision_mask_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_set_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"set_collision_mask_bit\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Area2D.set_collision_mask_bit\n\n{-# NOINLINE bindArea2D_set_gravity #-}\n\n-- | The area's gravity intensity (ranges from -1024 to 1024). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction.\nbindArea2D_set_gravity :: MethodBind\nbindArea2D_set_gravity\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_gravity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The area's gravity intensity (ranges from -1024 to 1024). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction.\nset_gravity ::\n              (Area2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_gravity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_set_gravity (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"set_gravity\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Area2D.set_gravity\n\n{-# NOINLINE bindArea2D_set_gravity_distance_scale #-}\n\n-- | The falloff factor for point gravity. The greater the value, the faster gravity decreases with distance.\nbindArea2D_set_gravity_distance_scale :: MethodBind\nbindArea2D_set_gravity_distance_scale\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_gravity_distance_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The falloff factor for point gravity. The greater the value, the faster gravity decreases with distance.\nset_gravity_distance_scale ::\n                             (Area2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_gravity_distance_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_set_gravity_distance_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"set_gravity_distance_scale\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Area2D.set_gravity_distance_scale\n\n{-# NOINLINE bindArea2D_set_gravity_is_point #-}\n\n-- | If @true@, gravity is calculated from a point (set via @gravity_vec@). See also @space_override@.\nbindArea2D_set_gravity_is_point :: MethodBind\nbindArea2D_set_gravity_is_point\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_gravity_is_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, gravity is calculated from a point (set via @gravity_vec@). See also @space_override@.\nset_gravity_is_point ::\n                       (Area2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_gravity_is_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_set_gravity_is_point (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"set_gravity_is_point\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Area2D.set_gravity_is_point\n\n{-# NOINLINE bindArea2D_set_gravity_vector #-}\n\n-- | The area's gravity vector (not normalized). If gravity is a point (see @gravity_point@), this will be the point of attraction.\nbindArea2D_set_gravity_vector :: MethodBind\nbindArea2D_set_gravity_vector\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_gravity_vector\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The area's gravity vector (not normalized). If gravity is a point (see @gravity_point@), this will be the point of attraction.\nset_gravity_vector ::\n                     (Area2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_gravity_vector cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_set_gravity_vector (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"set_gravity_vector\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.Area2D.set_gravity_vector\n\n{-# NOINLINE bindArea2D_set_linear_damp #-}\n\n-- | The rate at which objects stop moving in this area. Represents the linear velocity lost per second. Values range from @0@ (no damping) to @1@ (full damping).\nbindArea2D_set_linear_damp :: MethodBind\nbindArea2D_set_linear_damp\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_linear_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rate at which objects stop moving in this area. Represents the linear velocity lost per second. Values range from @0@ (no damping) to @1@ (full damping).\nset_linear_damp ::\n                  (Area2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_linear_damp cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_set_linear_damp (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"set_linear_damp\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Area2D.set_linear_damp\n\n{-# NOINLINE bindArea2D_set_monitorable #-}\n\n-- | If @true@, other monitoring areas can detect this area.\nbindArea2D_set_monitorable :: MethodBind\nbindArea2D_set_monitorable\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_monitorable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, other monitoring areas can detect this area.\nset_monitorable ::\n                  (Area2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_monitorable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_set_monitorable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"set_monitorable\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Area2D.set_monitorable\n\n{-# NOINLINE bindArea2D_set_monitoring #-}\n\n-- | If @true@, the area detects bodies or areas entering and exiting it.\nbindArea2D_set_monitoring :: MethodBind\nbindArea2D_set_monitoring\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_monitoring\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the area detects bodies or areas entering and exiting it.\nset_monitoring ::\n                 (Area2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_monitoring cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_set_monitoring (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"set_monitoring\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Area2D.set_monitoring\n\n{-# NOINLINE bindArea2D_set_priority #-}\n\n-- | The area's priority. Higher priority areas are processed first.\nbindArea2D_set_priority :: MethodBind\nbindArea2D_set_priority\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The area's priority. Higher priority areas are processed first.\nset_priority ::\n               (Area2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_priority cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_set_priority (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"set_priority\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Area2D.set_priority\n\n{-# NOINLINE bindArea2D_set_space_override_mode #-}\n\n-- | Override mode for gravity and damping calculations within this area. See @enum SpaceOverride@ for possible values.\nbindArea2D_set_space_override_mode :: MethodBind\nbindArea2D_set_space_override_mode\n  = unsafePerformIO $\n      withCString \"Area2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_space_override_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override mode for gravity and damping calculations within this area. See @enum SpaceOverride@ for possible values.\nset_space_override_mode ::\n                          (Area2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_space_override_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArea2D_set_space_override_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Area2D \"set_space_override_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Area2D.set_space_override_mode"
  },
  {
    "path": "src/Godot/Core/ArrayMesh.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ArrayMesh\n       (Godot.Core.ArrayMesh._ARRAY_FORMAT_INDEX,\n        Godot.Core.ArrayMesh._ARRAY_FORMAT_COLOR,\n        Godot.Core.ArrayMesh._ARRAY_FORMAT_TEX_UV,\n        Godot.Core.ArrayMesh._ARRAY_FORMAT_VERTEX,\n        Godot.Core.ArrayMesh._ARRAY_MAX,\n        Godot.Core.ArrayMesh._ARRAY_NORMAL,\n        Godot.Core.ArrayMesh._ARRAY_FORMAT_TEX_UV2,\n        Godot.Core.ArrayMesh._ARRAY_INDEX,\n        Godot.Core.ArrayMesh._ARRAY_COLOR,\n        Godot.Core.ArrayMesh._ARRAY_TEX_UV,\n        Godot.Core.ArrayMesh._ARRAY_FORMAT_NORMAL,\n        Godot.Core.ArrayMesh._ARRAY_TEX_UV2,\n        Godot.Core.ArrayMesh._ARRAY_FORMAT_BONES,\n        Godot.Core.ArrayMesh._ARRAY_WEIGHTS_SIZE,\n        Godot.Core.ArrayMesh._ARRAY_WEIGHTS,\n        Godot.Core.ArrayMesh._ARRAY_TANGENT,\n        Godot.Core.ArrayMesh._ARRAY_BONES,\n        Godot.Core.ArrayMesh._NO_INDEX_ARRAY,\n        Godot.Core.ArrayMesh._ARRAY_VERTEX,\n        Godot.Core.ArrayMesh._ARRAY_FORMAT_WEIGHTS,\n        Godot.Core.ArrayMesh._ARRAY_FORMAT_TANGENT,\n        Godot.Core.ArrayMesh.add_blend_shape,\n        Godot.Core.ArrayMesh.add_surface_from_arrays,\n        Godot.Core.ArrayMesh.clear_blend_shapes,\n        Godot.Core.ArrayMesh.get_blend_shape_count,\n        Godot.Core.ArrayMesh.get_blend_shape_mode,\n        Godot.Core.ArrayMesh.get_blend_shape_name,\n        Godot.Core.ArrayMesh.get_custom_aabb,\n        Godot.Core.ArrayMesh.lightmap_unwrap,\n        Godot.Core.ArrayMesh.regen_normalmaps,\n        Godot.Core.ArrayMesh.set_blend_shape_mode,\n        Godot.Core.ArrayMesh.set_custom_aabb,\n        Godot.Core.ArrayMesh.surface_find_by_name,\n        Godot.Core.ArrayMesh.surface_get_array_index_len,\n        Godot.Core.ArrayMesh.surface_get_array_len,\n        Godot.Core.ArrayMesh.surface_get_format,\n        Godot.Core.ArrayMesh.surface_get_name,\n        Godot.Core.ArrayMesh.surface_get_primitive_type,\n        Godot.Core.ArrayMesh.surface_remove,\n        Godot.Core.ArrayMesh.surface_set_name,\n        Godot.Core.ArrayMesh.surface_update_region)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Mesh()\n\n_ARRAY_FORMAT_INDEX :: Int\n_ARRAY_FORMAT_INDEX = 256\n\n_ARRAY_FORMAT_COLOR :: Int\n_ARRAY_FORMAT_COLOR = 8\n\n_ARRAY_FORMAT_TEX_UV :: Int\n_ARRAY_FORMAT_TEX_UV = 16\n\n_ARRAY_FORMAT_VERTEX :: Int\n_ARRAY_FORMAT_VERTEX = 1\n\n_ARRAY_MAX :: Int\n_ARRAY_MAX = 9\n\n_ARRAY_NORMAL :: Int\n_ARRAY_NORMAL = 1\n\n_ARRAY_FORMAT_TEX_UV2 :: Int\n_ARRAY_FORMAT_TEX_UV2 = 32\n\n_ARRAY_INDEX :: Int\n_ARRAY_INDEX = 8\n\n_ARRAY_COLOR :: Int\n_ARRAY_COLOR = 3\n\n_ARRAY_TEX_UV :: Int\n_ARRAY_TEX_UV = 4\n\n_ARRAY_FORMAT_NORMAL :: Int\n_ARRAY_FORMAT_NORMAL = 2\n\n_ARRAY_TEX_UV2 :: Int\n_ARRAY_TEX_UV2 = 5\n\n_ARRAY_FORMAT_BONES :: Int\n_ARRAY_FORMAT_BONES = 64\n\n_ARRAY_WEIGHTS_SIZE :: Int\n_ARRAY_WEIGHTS_SIZE = 4\n\n_ARRAY_WEIGHTS :: Int\n_ARRAY_WEIGHTS = 7\n\n_ARRAY_TANGENT :: Int\n_ARRAY_TANGENT = 2\n\n_ARRAY_BONES :: Int\n_ARRAY_BONES = 6\n\n_NO_INDEX_ARRAY :: Int\n_NO_INDEX_ARRAY = -1\n\n_ARRAY_VERTEX :: Int\n_ARRAY_VERTEX = 0\n\n_ARRAY_FORMAT_WEIGHTS :: Int\n_ARRAY_FORMAT_WEIGHTS = 128\n\n_ARRAY_FORMAT_TANGENT :: Int\n_ARRAY_FORMAT_TANGENT = 4\n\ninstance NodeProperty ArrayMesh \"blend_shape_mode\" Int 'False where\n        nodeProperty\n          = (get_blend_shape_mode, wrapDroppingSetter set_blend_shape_mode,\n             Nothing)\n\ninstance NodeProperty ArrayMesh \"custom_aabb\" Aabb 'False where\n        nodeProperty\n          = (get_custom_aabb, wrapDroppingSetter set_custom_aabb, Nothing)\n\n{-# NOINLINE bindArrayMesh_add_blend_shape #-}\n\n-- | Adds name for a blend shape that will be added with @method add_surface_from_arrays@. Must be called before surface is added.\nbindArrayMesh_add_blend_shape :: MethodBind\nbindArrayMesh_add_blend_shape\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"add_blend_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds name for a blend shape that will be added with @method add_surface_from_arrays@. Must be called before surface is added.\nadd_blend_shape ::\n                  (ArrayMesh :< cls, Object :< cls) => cls -> GodotString -> IO ()\nadd_blend_shape cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_add_blend_shape (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"add_blend_shape\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ArrayMesh.add_blend_shape\n\n{-# NOINLINE bindArrayMesh_add_surface_from_arrays #-}\n\n-- | Creates a new surface.\n--   \t\t\t\tSurfaces are created to be rendered using a @primitive@, which may be any of the types defined in @enum Mesh.PrimitiveType@. (As a note, when using indices, it is recommended to only use points, lines or triangles.) @method Mesh.get_surface_count@ will become the @surf_idx@ for this new surface.\n--   \t\t\t\tThe @arrays@ argument is an array of arrays. See @enum ArrayType@ for the values used in this array. For example, @arrays@0@@ is the array of vertices. That first vertex sub-array is always required; the others are optional. Adding an index array puts this function into \"index mode\" where the vertex and other arrays become the sources of data and the index array defines the vertex order. All sub-arrays must have the same length as the vertex array or be empty, except for @ARRAY_INDEX@ if it is used.\n--   \t\t\t\tAdding an index array puts this function into \"index mode\" where the vertex and other arrays become the sources of data, and the index array defines the order of the vertices.\nbindArrayMesh_add_surface_from_arrays :: MethodBind\nbindArrayMesh_add_surface_from_arrays\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"add_surface_from_arrays\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a new surface.\n--   \t\t\t\tSurfaces are created to be rendered using a @primitive@, which may be any of the types defined in @enum Mesh.PrimitiveType@. (As a note, when using indices, it is recommended to only use points, lines or triangles.) @method Mesh.get_surface_count@ will become the @surf_idx@ for this new surface.\n--   \t\t\t\tThe @arrays@ argument is an array of arrays. See @enum ArrayType@ for the values used in this array. For example, @arrays@0@@ is the array of vertices. That first vertex sub-array is always required; the others are optional. Adding an index array puts this function into \"index mode\" where the vertex and other arrays become the sources of data and the index array defines the vertex order. All sub-arrays must have the same length as the vertex array or be empty, except for @ARRAY_INDEX@ if it is used.\n--   \t\t\t\tAdding an index array puts this function into \"index mode\" where the vertex and other arrays become the sources of data, and the index array defines the order of the vertices.\nadd_surface_from_arrays ::\n                          (ArrayMesh :< cls, Object :< cls) =>\n                          cls -> Int -> Array -> Maybe Array -> Maybe Int -> IO ()\nadd_surface_from_arrays cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantArray V.empty arg3,\n       maybe (VariantInt (97280)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_add_surface_from_arrays\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"add_surface_from_arrays\"\n           '[Int, Array, Maybe Array, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ArrayMesh.add_surface_from_arrays\n\n{-# NOINLINE bindArrayMesh_clear_blend_shapes #-}\n\n-- | Removes all blend shapes from this @ArrayMesh@.\nbindArrayMesh_clear_blend_shapes :: MethodBind\nbindArrayMesh_clear_blend_shapes\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"clear_blend_shapes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all blend shapes from this @ArrayMesh@.\nclear_blend_shapes ::\n                     (ArrayMesh :< cls, Object :< cls) => cls -> IO ()\nclear_blend_shapes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_clear_blend_shapes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"clear_blend_shapes\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.ArrayMesh.clear_blend_shapes\n\n{-# NOINLINE bindArrayMesh_get_blend_shape_count #-}\n\n-- | Returns the number of blend shapes that the @ArrayMesh@ holds.\nbindArrayMesh_get_blend_shape_count :: MethodBind\nbindArrayMesh_get_blend_shape_count\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_blend_shape_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of blend shapes that the @ArrayMesh@ holds.\nget_blend_shape_count ::\n                        (ArrayMesh :< cls, Object :< cls) => cls -> IO Int\nget_blend_shape_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_get_blend_shape_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"get_blend_shape_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ArrayMesh.get_blend_shape_count\n\n{-# NOINLINE bindArrayMesh_get_blend_shape_mode #-}\n\n-- | Sets the blend shape mode to one of @enum Mesh.BlendShapeMode@.\nbindArrayMesh_get_blend_shape_mode :: MethodBind\nbindArrayMesh_get_blend_shape_mode\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_blend_shape_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the blend shape mode to one of @enum Mesh.BlendShapeMode@.\nget_blend_shape_mode ::\n                       (ArrayMesh :< cls, Object :< cls) => cls -> IO Int\nget_blend_shape_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_get_blend_shape_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"get_blend_shape_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ArrayMesh.get_blend_shape_mode\n\n{-# NOINLINE bindArrayMesh_get_blend_shape_name #-}\n\n-- | Returns the name of the blend shape at this index.\nbindArrayMesh_get_blend_shape_name :: MethodBind\nbindArrayMesh_get_blend_shape_name\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_blend_shape_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of the blend shape at this index.\nget_blend_shape_name ::\n                       (ArrayMesh :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_blend_shape_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_get_blend_shape_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"get_blend_shape_name\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.ArrayMesh.get_blend_shape_name\n\n{-# NOINLINE bindArrayMesh_get_custom_aabb #-}\n\n-- | Overrides the @AABB@ with one defined by user for use with frustum culling. Especially useful to avoid unexpected culling when using a shader to offset vertices.\nbindArrayMesh_get_custom_aabb :: MethodBind\nbindArrayMesh_get_custom_aabb\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_custom_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Overrides the @AABB@ with one defined by user for use with frustum culling. Especially useful to avoid unexpected culling when using a shader to offset vertices.\nget_custom_aabb ::\n                  (ArrayMesh :< cls, Object :< cls) => cls -> IO Aabb\nget_custom_aabb cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_get_custom_aabb (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"get_custom_aabb\" '[] (IO Aabb) where\n        nodeMethod = Godot.Core.ArrayMesh.get_custom_aabb\n\n{-# NOINLINE bindArrayMesh_lightmap_unwrap #-}\n\n-- | Will perform a UV unwrap on the @ArrayMesh@ to prepare the mesh for lightmapping.\nbindArrayMesh_lightmap_unwrap :: MethodBind\nbindArrayMesh_lightmap_unwrap\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"lightmap_unwrap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Will perform a UV unwrap on the @ArrayMesh@ to prepare the mesh for lightmapping.\nlightmap_unwrap ::\n                  (ArrayMesh :< cls, Object :< cls) =>\n                  cls -> Transform -> Float -> IO Int\nlightmap_unwrap cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_lightmap_unwrap (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"lightmap_unwrap\" '[Transform, Float]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ArrayMesh.lightmap_unwrap\n\n{-# NOINLINE bindArrayMesh_regen_normalmaps #-}\n\n-- | Will regenerate normal maps for the @ArrayMesh@.\nbindArrayMesh_regen_normalmaps :: MethodBind\nbindArrayMesh_regen_normalmaps\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"regen_normalmaps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Will regenerate normal maps for the @ArrayMesh@.\nregen_normalmaps ::\n                   (ArrayMesh :< cls, Object :< cls) => cls -> IO ()\nregen_normalmaps cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_regen_normalmaps (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"regen_normalmaps\" '[] (IO ()) where\n        nodeMethod = Godot.Core.ArrayMesh.regen_normalmaps\n\n{-# NOINLINE bindArrayMesh_set_blend_shape_mode #-}\n\n-- | Sets the blend shape mode to one of @enum Mesh.BlendShapeMode@.\nbindArrayMesh_set_blend_shape_mode :: MethodBind\nbindArrayMesh_set_blend_shape_mode\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_blend_shape_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the blend shape mode to one of @enum Mesh.BlendShapeMode@.\nset_blend_shape_mode ::\n                       (ArrayMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_blend_shape_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_set_blend_shape_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"set_blend_shape_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.ArrayMesh.set_blend_shape_mode\n\n{-# NOINLINE bindArrayMesh_set_custom_aabb #-}\n\n-- | Overrides the @AABB@ with one defined by user for use with frustum culling. Especially useful to avoid unexpected culling when using a shader to offset vertices.\nbindArrayMesh_set_custom_aabb :: MethodBind\nbindArrayMesh_set_custom_aabb\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_custom_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Overrides the @AABB@ with one defined by user for use with frustum culling. Especially useful to avoid unexpected culling when using a shader to offset vertices.\nset_custom_aabb ::\n                  (ArrayMesh :< cls, Object :< cls) => cls -> Aabb -> IO ()\nset_custom_aabb cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_set_custom_aabb (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"set_custom_aabb\" '[Aabb] (IO ())\n         where\n        nodeMethod = Godot.Core.ArrayMesh.set_custom_aabb\n\n{-# NOINLINE bindArrayMesh_surface_find_by_name #-}\n\n-- | Returns the index of the first surface with this name held within this @ArrayMesh@. If none are found, -1 is returned.\nbindArrayMesh_surface_find_by_name :: MethodBind\nbindArrayMesh_surface_find_by_name\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"surface_find_by_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the index of the first surface with this name held within this @ArrayMesh@. If none are found, -1 is returned.\nsurface_find_by_name ::\n                       (ArrayMesh :< cls, Object :< cls) => cls -> GodotString -> IO Int\nsurface_find_by_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_surface_find_by_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"surface_find_by_name\" '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ArrayMesh.surface_find_by_name\n\n{-# NOINLINE bindArrayMesh_surface_get_array_index_len #-}\n\n-- | Returns the length in indices of the index array in the requested surface (see @method add_surface_from_arrays@).\nbindArrayMesh_surface_get_array_index_len :: MethodBind\nbindArrayMesh_surface_get_array_index_len\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"surface_get_array_index_len\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the length in indices of the index array in the requested surface (see @method add_surface_from_arrays@).\nsurface_get_array_index_len ::\n                              (ArrayMesh :< cls, Object :< cls) => cls -> Int -> IO Int\nsurface_get_array_index_len cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_surface_get_array_index_len\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"surface_get_array_index_len\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ArrayMesh.surface_get_array_index_len\n\n{-# NOINLINE bindArrayMesh_surface_get_array_len #-}\n\n-- | Returns the length in vertices of the vertex array in the requested surface (see @method add_surface_from_arrays@).\nbindArrayMesh_surface_get_array_len :: MethodBind\nbindArrayMesh_surface_get_array_len\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"surface_get_array_len\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the length in vertices of the vertex array in the requested surface (see @method add_surface_from_arrays@).\nsurface_get_array_len ::\n                        (ArrayMesh :< cls, Object :< cls) => cls -> Int -> IO Int\nsurface_get_array_len cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_surface_get_array_len\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"surface_get_array_len\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ArrayMesh.surface_get_array_len\n\n{-# NOINLINE bindArrayMesh_surface_get_format #-}\n\n-- | Returns the format mask of the requested surface (see @method add_surface_from_arrays@).\nbindArrayMesh_surface_get_format :: MethodBind\nbindArrayMesh_surface_get_format\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"surface_get_format\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the format mask of the requested surface (see @method add_surface_from_arrays@).\nsurface_get_format ::\n                     (ArrayMesh :< cls, Object :< cls) => cls -> Int -> IO Int\nsurface_get_format cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_surface_get_format\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"surface_get_format\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.ArrayMesh.surface_get_format\n\n{-# NOINLINE bindArrayMesh_surface_get_name #-}\n\n-- | Gets the name assigned to this surface.\nbindArrayMesh_surface_get_name :: MethodBind\nbindArrayMesh_surface_get_name\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"surface_get_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the name assigned to this surface.\nsurface_get_name ::\n                   (ArrayMesh :< cls, Object :< cls) => cls -> Int -> IO GodotString\nsurface_get_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_surface_get_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"surface_get_name\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.ArrayMesh.surface_get_name\n\n{-# NOINLINE bindArrayMesh_surface_get_primitive_type #-}\n\n-- | Returns the primitive type of the requested surface (see @method add_surface_from_arrays@).\nbindArrayMesh_surface_get_primitive_type :: MethodBind\nbindArrayMesh_surface_get_primitive_type\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"surface_get_primitive_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the primitive type of the requested surface (see @method add_surface_from_arrays@).\nsurface_get_primitive_type ::\n                             (ArrayMesh :< cls, Object :< cls) => cls -> Int -> IO Int\nsurface_get_primitive_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_surface_get_primitive_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"surface_get_primitive_type\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ArrayMesh.surface_get_primitive_type\n\n{-# NOINLINE bindArrayMesh_surface_remove #-}\n\n-- | Removes a surface at position @surf_idx@, shifting greater surfaces one @surf_idx@ slot down.\nbindArrayMesh_surface_remove :: MethodBind\nbindArrayMesh_surface_remove\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"surface_remove\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a surface at position @surf_idx@, shifting greater surfaces one @surf_idx@ slot down.\nsurface_remove ::\n                 (ArrayMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nsurface_remove cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_surface_remove (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"surface_remove\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.ArrayMesh.surface_remove\n\n{-# NOINLINE bindArrayMesh_surface_set_name #-}\n\n-- | Sets a name for a given surface.\nbindArrayMesh_surface_set_name :: MethodBind\nbindArrayMesh_surface_set_name\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"surface_set_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a name for a given surface.\nsurface_set_name ::\n                   (ArrayMesh :< cls, Object :< cls) =>\n                   cls -> Int -> GodotString -> IO ()\nsurface_set_name cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_surface_set_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"surface_set_name\"\n           '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ArrayMesh.surface_set_name\n\n{-# NOINLINE bindArrayMesh_surface_update_region #-}\n\n-- | Updates a specified region of mesh arrays on the GPU.\n--   \t\t\t\t__Warning:__ Only use if you know what you are doing. You can easily cause crashes by calling this function with improper arguments.\nbindArrayMesh_surface_update_region :: MethodBind\nbindArrayMesh_surface_update_region\n  = unsafePerformIO $\n      withCString \"ArrayMesh\" $\n        \\ clsNamePtr ->\n          withCString \"surface_update_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Updates a specified region of mesh arrays on the GPU.\n--   \t\t\t\t__Warning:__ Only use if you know what you are doing. You can easily cause crashes by calling this function with improper arguments.\nsurface_update_region ::\n                        (ArrayMesh :< cls, Object :< cls) =>\n                        cls -> Int -> Int -> PoolByteArray -> IO ()\nsurface_update_region cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindArrayMesh_surface_update_region\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ArrayMesh \"surface_update_region\"\n           '[Int, Int, PoolByteArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ArrayMesh.surface_update_region"
  },
  {
    "path": "src/Godot/Core/AtlasTexture.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AtlasTexture\n       (Godot.Core.AtlasTexture.get_atlas,\n        Godot.Core.AtlasTexture.get_margin,\n        Godot.Core.AtlasTexture.get_region,\n        Godot.Core.AtlasTexture.has_filter_clip,\n        Godot.Core.AtlasTexture.set_atlas,\n        Godot.Core.AtlasTexture.set_filter_clip,\n        Godot.Core.AtlasTexture.set_margin,\n        Godot.Core.AtlasTexture.set_region)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Texture()\n\ninstance NodeProperty AtlasTexture \"atlas\" Texture 'False where\n        nodeProperty = (get_atlas, wrapDroppingSetter set_atlas, Nothing)\n\ninstance NodeProperty AtlasTexture \"filter_clip\" Bool 'False where\n        nodeProperty\n          = (has_filter_clip, wrapDroppingSetter set_filter_clip, Nothing)\n\ninstance NodeProperty AtlasTexture \"margin\" Rect2 'False where\n        nodeProperty = (get_margin, wrapDroppingSetter set_margin, Nothing)\n\ninstance NodeProperty AtlasTexture \"region\" Rect2 'False where\n        nodeProperty = (get_region, wrapDroppingSetter set_region, Nothing)\n\n{-# NOINLINE bindAtlasTexture_get_atlas #-}\n\n-- | The texture that contains the atlas. Can be any @Texture@ subtype.\nbindAtlasTexture_get_atlas :: MethodBind\nbindAtlasTexture_get_atlas\n  = unsafePerformIO $\n      withCString \"AtlasTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_atlas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The texture that contains the atlas. Can be any @Texture@ subtype.\nget_atlas ::\n            (AtlasTexture :< cls, Object :< cls) => cls -> IO Texture\nget_atlas cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAtlasTexture_get_atlas (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AtlasTexture \"get_atlas\" '[] (IO Texture) where\n        nodeMethod = Godot.Core.AtlasTexture.get_atlas\n\n{-# NOINLINE bindAtlasTexture_get_margin #-}\n\n-- | The margin around the region. The @Rect2@'s @Rect2.size@ parameter (\"w\" and \"h\" in the editor) resizes the texture so it fits within the margin.\nbindAtlasTexture_get_margin :: MethodBind\nbindAtlasTexture_get_margin\n  = unsafePerformIO $\n      withCString \"AtlasTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The margin around the region. The @Rect2@'s @Rect2.size@ parameter (\"w\" and \"h\" in the editor) resizes the texture so it fits within the margin.\nget_margin ::\n             (AtlasTexture :< cls, Object :< cls) => cls -> IO Rect2\nget_margin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAtlasTexture_get_margin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AtlasTexture \"get_margin\" '[] (IO Rect2) where\n        nodeMethod = Godot.Core.AtlasTexture.get_margin\n\n{-# NOINLINE bindAtlasTexture_get_region #-}\n\n-- | The AtlasTexture's used region.\nbindAtlasTexture_get_region :: MethodBind\nbindAtlasTexture_get_region\n  = unsafePerformIO $\n      withCString \"AtlasTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The AtlasTexture's used region.\nget_region ::\n             (AtlasTexture :< cls, Object :< cls) => cls -> IO Rect2\nget_region cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAtlasTexture_get_region (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AtlasTexture \"get_region\" '[] (IO Rect2) where\n        nodeMethod = Godot.Core.AtlasTexture.get_region\n\n{-# NOINLINE bindAtlasTexture_has_filter_clip #-}\n\n-- | If @true@, clips the area outside of the region to avoid bleeding of the surrounding texture pixels.\nbindAtlasTexture_has_filter_clip :: MethodBind\nbindAtlasTexture_has_filter_clip\n  = unsafePerformIO $\n      withCString \"AtlasTexture\" $\n        \\ clsNamePtr ->\n          withCString \"has_filter_clip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, clips the area outside of the region to avoid bleeding of the surrounding texture pixels.\nhas_filter_clip ::\n                  (AtlasTexture :< cls, Object :< cls) => cls -> IO Bool\nhas_filter_clip cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAtlasTexture_has_filter_clip\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AtlasTexture \"has_filter_clip\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AtlasTexture.has_filter_clip\n\n{-# NOINLINE bindAtlasTexture_set_atlas #-}\n\n-- | The texture that contains the atlas. Can be any @Texture@ subtype.\nbindAtlasTexture_set_atlas :: MethodBind\nbindAtlasTexture_set_atlas\n  = unsafePerformIO $\n      withCString \"AtlasTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_atlas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The texture that contains the atlas. Can be any @Texture@ subtype.\nset_atlas ::\n            (AtlasTexture :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_atlas cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAtlasTexture_set_atlas (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AtlasTexture \"set_atlas\" '[Texture] (IO ())\n         where\n        nodeMethod = Godot.Core.AtlasTexture.set_atlas\n\n{-# NOINLINE bindAtlasTexture_set_filter_clip #-}\n\n-- | If @true@, clips the area outside of the region to avoid bleeding of the surrounding texture pixels.\nbindAtlasTexture_set_filter_clip :: MethodBind\nbindAtlasTexture_set_filter_clip\n  = unsafePerformIO $\n      withCString \"AtlasTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_filter_clip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, clips the area outside of the region to avoid bleeding of the surrounding texture pixels.\nset_filter_clip ::\n                  (AtlasTexture :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_filter_clip cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAtlasTexture_set_filter_clip\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AtlasTexture \"set_filter_clip\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.AtlasTexture.set_filter_clip\n\n{-# NOINLINE bindAtlasTexture_set_margin #-}\n\n-- | The margin around the region. The @Rect2@'s @Rect2.size@ parameter (\"w\" and \"h\" in the editor) resizes the texture so it fits within the margin.\nbindAtlasTexture_set_margin :: MethodBind\nbindAtlasTexture_set_margin\n  = unsafePerformIO $\n      withCString \"AtlasTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The margin around the region. The @Rect2@'s @Rect2.size@ parameter (\"w\" and \"h\" in the editor) resizes the texture so it fits within the margin.\nset_margin ::\n             (AtlasTexture :< cls, Object :< cls) => cls -> Rect2 -> IO ()\nset_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAtlasTexture_set_margin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AtlasTexture \"set_margin\" '[Rect2] (IO ())\n         where\n        nodeMethod = Godot.Core.AtlasTexture.set_margin\n\n{-# NOINLINE bindAtlasTexture_set_region #-}\n\n-- | The AtlasTexture's used region.\nbindAtlasTexture_set_region :: MethodBind\nbindAtlasTexture_set_region\n  = unsafePerformIO $\n      withCString \"AtlasTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The AtlasTexture's used region.\nset_region ::\n             (AtlasTexture :< cls, Object :< cls) => cls -> Rect2 -> IO ()\nset_region cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAtlasTexture_set_region (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AtlasTexture \"set_region\" '[Rect2] (IO ())\n         where\n        nodeMethod = Godot.Core.AtlasTexture.set_region"
  },
  {
    "path": "src/Godot/Core/AudioBusLayout.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioBusLayout () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()"
  },
  {
    "path": "src/Godot/Core/AudioEffect.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffect () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()"
  },
  {
    "path": "src/Godot/Core/AudioEffectAmplify.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectAmplify\n       (Godot.Core.AudioEffectAmplify.get_volume_db,\n        Godot.Core.AudioEffectAmplify.set_volume_db)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffect()\n\ninstance NodeProperty AudioEffectAmplify \"volume_db\" Float 'False\n         where\n        nodeProperty\n          = (get_volume_db, wrapDroppingSetter set_volume_db, Nothing)\n\n{-# NOINLINE bindAudioEffectAmplify_get_volume_db #-}\n\n-- | Amount of amplification in decibels. Positive values make the sound louder, negative values make it quieter. Value can range from -80 to 24.\nbindAudioEffectAmplify_get_volume_db :: MethodBind\nbindAudioEffectAmplify_get_volume_db\n  = unsafePerformIO $\n      withCString \"AudioEffectAmplify\" $\n        \\ clsNamePtr ->\n          withCString \"get_volume_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of amplification in decibels. Positive values make the sound louder, negative values make it quieter. Value can range from -80 to 24.\nget_volume_db ::\n                (AudioEffectAmplify :< cls, Object :< cls) => cls -> IO Float\nget_volume_db cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectAmplify_get_volume_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectAmplify \"get_volume_db\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectAmplify.get_volume_db\n\n{-# NOINLINE bindAudioEffectAmplify_set_volume_db #-}\n\n-- | Amount of amplification in decibels. Positive values make the sound louder, negative values make it quieter. Value can range from -80 to 24.\nbindAudioEffectAmplify_set_volume_db :: MethodBind\nbindAudioEffectAmplify_set_volume_db\n  = unsafePerformIO $\n      withCString \"AudioEffectAmplify\" $\n        \\ clsNamePtr ->\n          withCString \"set_volume_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of amplification in decibels. Positive values make the sound louder, negative values make it quieter. Value can range from -80 to 24.\nset_volume_db ::\n                (AudioEffectAmplify :< cls, Object :< cls) => cls -> Float -> IO ()\nset_volume_db cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectAmplify_set_volume_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectAmplify \"set_volume_db\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectAmplify.set_volume_db"
  },
  {
    "path": "src/Godot/Core/AudioEffectBandLimitFilter.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectBandLimitFilter () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffectFilter()"
  },
  {
    "path": "src/Godot/Core/AudioEffectBandPassFilter.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectBandPassFilter () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffectFilter()"
  },
  {
    "path": "src/Godot/Core/AudioEffectChorus.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectChorus\n       (Godot.Core.AudioEffectChorus.get_dry,\n        Godot.Core.AudioEffectChorus.get_voice_count,\n        Godot.Core.AudioEffectChorus.get_voice_cutoff_hz,\n        Godot.Core.AudioEffectChorus.get_voice_delay_ms,\n        Godot.Core.AudioEffectChorus.get_voice_depth_ms,\n        Godot.Core.AudioEffectChorus.get_voice_level_db,\n        Godot.Core.AudioEffectChorus.get_voice_pan,\n        Godot.Core.AudioEffectChorus.get_voice_rate_hz,\n        Godot.Core.AudioEffectChorus.get_wet,\n        Godot.Core.AudioEffectChorus.set_dry,\n        Godot.Core.AudioEffectChorus.set_voice_count,\n        Godot.Core.AudioEffectChorus.set_voice_cutoff_hz,\n        Godot.Core.AudioEffectChorus.set_voice_delay_ms,\n        Godot.Core.AudioEffectChorus.set_voice_depth_ms,\n        Godot.Core.AudioEffectChorus.set_voice_level_db,\n        Godot.Core.AudioEffectChorus.set_voice_pan,\n        Godot.Core.AudioEffectChorus.set_voice_rate_hz,\n        Godot.Core.AudioEffectChorus.set_wet)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffect()\n\ninstance NodeProperty AudioEffectChorus \"dry\" Float 'False where\n        nodeProperty = (get_dry, wrapDroppingSetter set_dry, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/1/cutoff_hz\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_voice_cutoff_hz,\n             wrapIndexedSetter 0 set_voice_cutoff_hz, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/1/delay_ms\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_voice_delay_ms,\n             wrapIndexedSetter 0 set_voice_delay_ms, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/1/depth_ms\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_voice_depth_ms,\n             wrapIndexedSetter 0 set_voice_depth_ms, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/1/level_db\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_voice_level_db,\n             wrapIndexedSetter 0 set_voice_level_db, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/1/pan\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_voice_pan,\n             wrapIndexedSetter 0 set_voice_pan, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/1/rate_hz\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_voice_rate_hz,\n             wrapIndexedSetter 0 set_voice_rate_hz, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/2/cutoff_hz\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_voice_cutoff_hz,\n             wrapIndexedSetter 1 set_voice_cutoff_hz, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/2/delay_ms\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_voice_delay_ms,\n             wrapIndexedSetter 1 set_voice_delay_ms, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/2/depth_ms\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_voice_depth_ms,\n             wrapIndexedSetter 1 set_voice_depth_ms, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/2/level_db\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_voice_level_db,\n             wrapIndexedSetter 1 set_voice_level_db, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/2/pan\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_voice_pan,\n             wrapIndexedSetter 1 set_voice_pan, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/2/rate_hz\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_voice_rate_hz,\n             wrapIndexedSetter 1 set_voice_rate_hz, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/3/cutoff_hz\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_voice_cutoff_hz,\n             wrapIndexedSetter 2 set_voice_cutoff_hz, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/3/delay_ms\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_voice_delay_ms,\n             wrapIndexedSetter 2 set_voice_delay_ms, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/3/depth_ms\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_voice_depth_ms,\n             wrapIndexedSetter 2 set_voice_depth_ms, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/3/level_db\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_voice_level_db,\n             wrapIndexedSetter 2 set_voice_level_db, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/3/pan\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_voice_pan,\n             wrapIndexedSetter 2 set_voice_pan, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/3/rate_hz\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_voice_rate_hz,\n             wrapIndexedSetter 2 set_voice_rate_hz, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/4/cutoff_hz\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_voice_cutoff_hz,\n             wrapIndexedSetter 3 set_voice_cutoff_hz, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/4/delay_ms\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_voice_delay_ms,\n             wrapIndexedSetter 3 set_voice_delay_ms, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/4/depth_ms\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_voice_depth_ms,\n             wrapIndexedSetter 3 set_voice_depth_ms, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/4/level_db\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_voice_level_db,\n             wrapIndexedSetter 3 set_voice_level_db, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/4/pan\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_voice_pan,\n             wrapIndexedSetter 3 set_voice_pan, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice/4/rate_hz\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_voice_rate_hz,\n             wrapIndexedSetter 3 set_voice_rate_hz, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"voice_count\" Int 'False\n         where\n        nodeProperty\n          = (get_voice_count, wrapDroppingSetter set_voice_count, Nothing)\n\ninstance NodeProperty AudioEffectChorus \"wet\" Float 'False where\n        nodeProperty = (get_wet, wrapDroppingSetter set_wet, Nothing)\n\n{-# NOINLINE bindAudioEffectChorus_get_dry #-}\n\n-- | The effect's raw signal.\nbindAudioEffectChorus_get_dry :: MethodBind\nbindAudioEffectChorus_get_dry\n  = unsafePerformIO $\n      withCString \"AudioEffectChorus\" $\n        \\ clsNamePtr ->\n          withCString \"get_dry\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The effect's raw signal.\nget_dry ::\n          (AudioEffectChorus :< cls, Object :< cls) => cls -> IO Float\nget_dry cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectChorus_get_dry (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectChorus \"get_dry\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectChorus.get_dry\n\n{-# NOINLINE bindAudioEffectChorus_get_voice_count #-}\n\n-- | The amount of voices in the effect.\nbindAudioEffectChorus_get_voice_count :: MethodBind\nbindAudioEffectChorus_get_voice_count\n  = unsafePerformIO $\n      withCString \"AudioEffectChorus\" $\n        \\ clsNamePtr ->\n          withCString \"get_voice_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount of voices in the effect.\nget_voice_count ::\n                  (AudioEffectChorus :< cls, Object :< cls) => cls -> IO Int\nget_voice_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectChorus_get_voice_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectChorus \"get_voice_count\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioEffectChorus.get_voice_count\n\n{-# NOINLINE bindAudioEffectChorus_get_voice_cutoff_hz #-}\n\n-- | The voice's cutoff frequency.\nbindAudioEffectChorus_get_voice_cutoff_hz :: MethodBind\nbindAudioEffectChorus_get_voice_cutoff_hz\n  = unsafePerformIO $\n      withCString \"AudioEffectChorus\" $\n        \\ clsNamePtr ->\n          withCString \"get_voice_cutoff_hz\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The voice's cutoff frequency.\nget_voice_cutoff_hz ::\n                      (AudioEffectChorus :< cls, Object :< cls) => cls -> Int -> IO Float\nget_voice_cutoff_hz cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectChorus_get_voice_cutoff_hz\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectChorus \"get_voice_cutoff_hz\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectChorus.get_voice_cutoff_hz\n\n{-# NOINLINE bindAudioEffectChorus_get_voice_delay_ms #-}\n\n-- | The voice's signal delay.\nbindAudioEffectChorus_get_voice_delay_ms :: MethodBind\nbindAudioEffectChorus_get_voice_delay_ms\n  = unsafePerformIO $\n      withCString \"AudioEffectChorus\" $\n        \\ clsNamePtr ->\n          withCString \"get_voice_delay_ms\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The voice's signal delay.\nget_voice_delay_ms ::\n                     (AudioEffectChorus :< cls, Object :< cls) => cls -> Int -> IO Float\nget_voice_delay_ms cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectChorus_get_voice_delay_ms\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectChorus \"get_voice_delay_ms\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectChorus.get_voice_delay_ms\n\n{-# NOINLINE bindAudioEffectChorus_get_voice_depth_ms #-}\n\n-- | The voice filter's depth.\nbindAudioEffectChorus_get_voice_depth_ms :: MethodBind\nbindAudioEffectChorus_get_voice_depth_ms\n  = unsafePerformIO $\n      withCString \"AudioEffectChorus\" $\n        \\ clsNamePtr ->\n          withCString \"get_voice_depth_ms\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The voice filter's depth.\nget_voice_depth_ms ::\n                     (AudioEffectChorus :< cls, Object :< cls) => cls -> Int -> IO Float\nget_voice_depth_ms cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectChorus_get_voice_depth_ms\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectChorus \"get_voice_depth_ms\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectChorus.get_voice_depth_ms\n\n{-# NOINLINE bindAudioEffectChorus_get_voice_level_db #-}\n\n-- | The voice's volume.\nbindAudioEffectChorus_get_voice_level_db :: MethodBind\nbindAudioEffectChorus_get_voice_level_db\n  = unsafePerformIO $\n      withCString \"AudioEffectChorus\" $\n        \\ clsNamePtr ->\n          withCString \"get_voice_level_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The voice's volume.\nget_voice_level_db ::\n                     (AudioEffectChorus :< cls, Object :< cls) => cls -> Int -> IO Float\nget_voice_level_db cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectChorus_get_voice_level_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectChorus \"get_voice_level_db\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectChorus.get_voice_level_db\n\n{-# NOINLINE bindAudioEffectChorus_get_voice_pan #-}\n\n-- | The voice's pan level.\nbindAudioEffectChorus_get_voice_pan :: MethodBind\nbindAudioEffectChorus_get_voice_pan\n  = unsafePerformIO $\n      withCString \"AudioEffectChorus\" $\n        \\ clsNamePtr ->\n          withCString \"get_voice_pan\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The voice's pan level.\nget_voice_pan ::\n                (AudioEffectChorus :< cls, Object :< cls) => cls -> Int -> IO Float\nget_voice_pan cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectChorus_get_voice_pan\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectChorus \"get_voice_pan\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectChorus.get_voice_pan\n\n{-# NOINLINE bindAudioEffectChorus_get_voice_rate_hz #-}\n\n-- | The voice's filter rate.\nbindAudioEffectChorus_get_voice_rate_hz :: MethodBind\nbindAudioEffectChorus_get_voice_rate_hz\n  = unsafePerformIO $\n      withCString \"AudioEffectChorus\" $\n        \\ clsNamePtr ->\n          withCString \"get_voice_rate_hz\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The voice's filter rate.\nget_voice_rate_hz ::\n                    (AudioEffectChorus :< cls, Object :< cls) => cls -> Int -> IO Float\nget_voice_rate_hz cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectChorus_get_voice_rate_hz\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectChorus \"get_voice_rate_hz\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectChorus.get_voice_rate_hz\n\n{-# NOINLINE bindAudioEffectChorus_get_wet #-}\n\n-- | The effect's processed signal.\nbindAudioEffectChorus_get_wet :: MethodBind\nbindAudioEffectChorus_get_wet\n  = unsafePerformIO $\n      withCString \"AudioEffectChorus\" $\n        \\ clsNamePtr ->\n          withCString \"get_wet\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The effect's processed signal.\nget_wet ::\n          (AudioEffectChorus :< cls, Object :< cls) => cls -> IO Float\nget_wet cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectChorus_get_wet (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectChorus \"get_wet\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectChorus.get_wet\n\n{-# NOINLINE bindAudioEffectChorus_set_dry #-}\n\n-- | The effect's raw signal.\nbindAudioEffectChorus_set_dry :: MethodBind\nbindAudioEffectChorus_set_dry\n  = unsafePerformIO $\n      withCString \"AudioEffectChorus\" $\n        \\ clsNamePtr ->\n          withCString \"set_dry\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The effect's raw signal.\nset_dry ::\n          (AudioEffectChorus :< cls, Object :< cls) => cls -> Float -> IO ()\nset_dry cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectChorus_set_dry (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectChorus \"set_dry\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectChorus.set_dry\n\n{-# NOINLINE bindAudioEffectChorus_set_voice_count #-}\n\n-- | The amount of voices in the effect.\nbindAudioEffectChorus_set_voice_count :: MethodBind\nbindAudioEffectChorus_set_voice_count\n  = unsafePerformIO $\n      withCString \"AudioEffectChorus\" $\n        \\ clsNamePtr ->\n          withCString \"set_voice_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount of voices in the effect.\nset_voice_count ::\n                  (AudioEffectChorus :< cls, Object :< cls) => cls -> Int -> IO ()\nset_voice_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectChorus_set_voice_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectChorus \"set_voice_count\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectChorus.set_voice_count\n\n{-# NOINLINE bindAudioEffectChorus_set_voice_cutoff_hz #-}\n\n-- | The voice's cutoff frequency.\nbindAudioEffectChorus_set_voice_cutoff_hz :: MethodBind\nbindAudioEffectChorus_set_voice_cutoff_hz\n  = unsafePerformIO $\n      withCString \"AudioEffectChorus\" $\n        \\ clsNamePtr ->\n          withCString \"set_voice_cutoff_hz\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The voice's cutoff frequency.\nset_voice_cutoff_hz ::\n                      (AudioEffectChorus :< cls, Object :< cls) =>\n                      cls -> Int -> Float -> IO ()\nset_voice_cutoff_hz cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectChorus_set_voice_cutoff_hz\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectChorus \"set_voice_cutoff_hz\"\n           '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectChorus.set_voice_cutoff_hz\n\n{-# NOINLINE bindAudioEffectChorus_set_voice_delay_ms #-}\n\n-- | The voice's signal delay.\nbindAudioEffectChorus_set_voice_delay_ms :: MethodBind\nbindAudioEffectChorus_set_voice_delay_ms\n  = unsafePerformIO $\n      withCString \"AudioEffectChorus\" $\n        \\ clsNamePtr ->\n          withCString \"set_voice_delay_ms\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The voice's signal delay.\nset_voice_delay_ms ::\n                     (AudioEffectChorus :< cls, Object :< cls) =>\n                     cls -> Int -> Float -> IO ()\nset_voice_delay_ms cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectChorus_set_voice_delay_ms\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectChorus \"set_voice_delay_ms\"\n           '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectChorus.set_voice_delay_ms\n\n{-# NOINLINE bindAudioEffectChorus_set_voice_depth_ms #-}\n\n-- | The voice filter's depth.\nbindAudioEffectChorus_set_voice_depth_ms :: MethodBind\nbindAudioEffectChorus_set_voice_depth_ms\n  = unsafePerformIO $\n      withCString \"AudioEffectChorus\" $\n        \\ clsNamePtr ->\n          withCString \"set_voice_depth_ms\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The voice filter's depth.\nset_voice_depth_ms ::\n                     (AudioEffectChorus :< cls, Object :< cls) =>\n                     cls -> Int -> Float -> IO ()\nset_voice_depth_ms cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectChorus_set_voice_depth_ms\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectChorus \"set_voice_depth_ms\"\n           '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectChorus.set_voice_depth_ms\n\n{-# NOINLINE bindAudioEffectChorus_set_voice_level_db #-}\n\n-- | The voice's volume.\nbindAudioEffectChorus_set_voice_level_db :: MethodBind\nbindAudioEffectChorus_set_voice_level_db\n  = unsafePerformIO $\n      withCString \"AudioEffectChorus\" $\n        \\ clsNamePtr ->\n          withCString \"set_voice_level_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The voice's volume.\nset_voice_level_db ::\n                     (AudioEffectChorus :< cls, Object :< cls) =>\n                     cls -> Int -> Float -> IO ()\nset_voice_level_db cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectChorus_set_voice_level_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectChorus \"set_voice_level_db\"\n           '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectChorus.set_voice_level_db\n\n{-# NOINLINE bindAudioEffectChorus_set_voice_pan #-}\n\n-- | The voice's pan level.\nbindAudioEffectChorus_set_voice_pan :: MethodBind\nbindAudioEffectChorus_set_voice_pan\n  = unsafePerformIO $\n      withCString \"AudioEffectChorus\" $\n        \\ clsNamePtr ->\n          withCString \"set_voice_pan\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The voice's pan level.\nset_voice_pan ::\n                (AudioEffectChorus :< cls, Object :< cls) =>\n                cls -> Int -> Float -> IO ()\nset_voice_pan cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectChorus_set_voice_pan\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectChorus \"set_voice_pan\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectChorus.set_voice_pan\n\n{-# NOINLINE bindAudioEffectChorus_set_voice_rate_hz #-}\n\n-- | The voice's filter rate.\nbindAudioEffectChorus_set_voice_rate_hz :: MethodBind\nbindAudioEffectChorus_set_voice_rate_hz\n  = unsafePerformIO $\n      withCString \"AudioEffectChorus\" $\n        \\ clsNamePtr ->\n          withCString \"set_voice_rate_hz\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The voice's filter rate.\nset_voice_rate_hz ::\n                    (AudioEffectChorus :< cls, Object :< cls) =>\n                    cls -> Int -> Float -> IO ()\nset_voice_rate_hz cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectChorus_set_voice_rate_hz\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectChorus \"set_voice_rate_hz\"\n           '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectChorus.set_voice_rate_hz\n\n{-# NOINLINE bindAudioEffectChorus_set_wet #-}\n\n-- | The effect's processed signal.\nbindAudioEffectChorus_set_wet :: MethodBind\nbindAudioEffectChorus_set_wet\n  = unsafePerformIO $\n      withCString \"AudioEffectChorus\" $\n        \\ clsNamePtr ->\n          withCString \"set_wet\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The effect's processed signal.\nset_wet ::\n          (AudioEffectChorus :< cls, Object :< cls) => cls -> Float -> IO ()\nset_wet cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectChorus_set_wet (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectChorus \"set_wet\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectChorus.set_wet"
  },
  {
    "path": "src/Godot/Core/AudioEffectCompressor.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectCompressor\n       (Godot.Core.AudioEffectCompressor.get_attack_us,\n        Godot.Core.AudioEffectCompressor.get_gain,\n        Godot.Core.AudioEffectCompressor.get_mix,\n        Godot.Core.AudioEffectCompressor.get_ratio,\n        Godot.Core.AudioEffectCompressor.get_release_ms,\n        Godot.Core.AudioEffectCompressor.get_sidechain,\n        Godot.Core.AudioEffectCompressor.get_threshold,\n        Godot.Core.AudioEffectCompressor.set_attack_us,\n        Godot.Core.AudioEffectCompressor.set_gain,\n        Godot.Core.AudioEffectCompressor.set_mix,\n        Godot.Core.AudioEffectCompressor.set_ratio,\n        Godot.Core.AudioEffectCompressor.set_release_ms,\n        Godot.Core.AudioEffectCompressor.set_sidechain,\n        Godot.Core.AudioEffectCompressor.set_threshold)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffect()\n\ninstance NodeProperty AudioEffectCompressor \"attack_us\" Float\n           'False\n         where\n        nodeProperty\n          = (get_attack_us, wrapDroppingSetter set_attack_us, Nothing)\n\ninstance NodeProperty AudioEffectCompressor \"gain\" Float 'False\n         where\n        nodeProperty = (get_gain, wrapDroppingSetter set_gain, Nothing)\n\ninstance NodeProperty AudioEffectCompressor \"mix\" Float 'False\n         where\n        nodeProperty = (get_mix, wrapDroppingSetter set_mix, Nothing)\n\ninstance NodeProperty AudioEffectCompressor \"ratio\" Float 'False\n         where\n        nodeProperty = (get_ratio, wrapDroppingSetter set_ratio, Nothing)\n\ninstance NodeProperty AudioEffectCompressor \"release_ms\" Float\n           'False\n         where\n        nodeProperty\n          = (get_release_ms, wrapDroppingSetter set_release_ms, Nothing)\n\ninstance NodeProperty AudioEffectCompressor \"sidechain\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_sidechain, wrapDroppingSetter set_sidechain, Nothing)\n\ninstance NodeProperty AudioEffectCompressor \"threshold\" Float\n           'False\n         where\n        nodeProperty\n          = (get_threshold, wrapDroppingSetter set_threshold, Nothing)\n\n{-# NOINLINE bindAudioEffectCompressor_get_attack_us #-}\n\n-- | Compressor's reaction time when the signal exceeds the threshold, in microseconds. Value can range from 20 to 2000.\nbindAudioEffectCompressor_get_attack_us :: MethodBind\nbindAudioEffectCompressor_get_attack_us\n  = unsafePerformIO $\n      withCString \"AudioEffectCompressor\" $\n        \\ clsNamePtr ->\n          withCString \"get_attack_us\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Compressor's reaction time when the signal exceeds the threshold, in microseconds. Value can range from 20 to 2000.\nget_attack_us ::\n                (AudioEffectCompressor :< cls, Object :< cls) => cls -> IO Float\nget_attack_us cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectCompressor_get_attack_us\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectCompressor \"get_attack_us\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectCompressor.get_attack_us\n\n{-# NOINLINE bindAudioEffectCompressor_get_gain #-}\n\n-- | Gain applied to the output signal.\nbindAudioEffectCompressor_get_gain :: MethodBind\nbindAudioEffectCompressor_get_gain\n  = unsafePerformIO $\n      withCString \"AudioEffectCompressor\" $\n        \\ clsNamePtr ->\n          withCString \"get_gain\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gain applied to the output signal.\nget_gain ::\n           (AudioEffectCompressor :< cls, Object :< cls) => cls -> IO Float\nget_gain cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectCompressor_get_gain\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectCompressor \"get_gain\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectCompressor.get_gain\n\n{-# NOINLINE bindAudioEffectCompressor_get_mix #-}\n\n-- | Balance between original signal and effect signal. Value can range from 0 (totally dry) to 1 (totally wet).\nbindAudioEffectCompressor_get_mix :: MethodBind\nbindAudioEffectCompressor_get_mix\n  = unsafePerformIO $\n      withCString \"AudioEffectCompressor\" $\n        \\ clsNamePtr ->\n          withCString \"get_mix\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Balance between original signal and effect signal. Value can range from 0 (totally dry) to 1 (totally wet).\nget_mix ::\n          (AudioEffectCompressor :< cls, Object :< cls) => cls -> IO Float\nget_mix cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectCompressor_get_mix\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectCompressor \"get_mix\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectCompressor.get_mix\n\n{-# NOINLINE bindAudioEffectCompressor_get_ratio #-}\n\n-- | Amount of compression applied to the audio once it passes the threshold level. The higher the ratio, the more the loud parts of the audio will be compressed. Value can range from 1 to 48.\nbindAudioEffectCompressor_get_ratio :: MethodBind\nbindAudioEffectCompressor_get_ratio\n  = unsafePerformIO $\n      withCString \"AudioEffectCompressor\" $\n        \\ clsNamePtr ->\n          withCString \"get_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of compression applied to the audio once it passes the threshold level. The higher the ratio, the more the loud parts of the audio will be compressed. Value can range from 1 to 48.\nget_ratio ::\n            (AudioEffectCompressor :< cls, Object :< cls) => cls -> IO Float\nget_ratio cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectCompressor_get_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectCompressor \"get_ratio\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectCompressor.get_ratio\n\n{-# NOINLINE bindAudioEffectCompressor_get_release_ms #-}\n\n-- | Compressor's delay time to stop reducing the signal after the signal level falls below the threshold, in milliseconds. Value can range from 20 to 2000.\nbindAudioEffectCompressor_get_release_ms :: MethodBind\nbindAudioEffectCompressor_get_release_ms\n  = unsafePerformIO $\n      withCString \"AudioEffectCompressor\" $\n        \\ clsNamePtr ->\n          withCString \"get_release_ms\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Compressor's delay time to stop reducing the signal after the signal level falls below the threshold, in milliseconds. Value can range from 20 to 2000.\nget_release_ms ::\n                 (AudioEffectCompressor :< cls, Object :< cls) => cls -> IO Float\nget_release_ms cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectCompressor_get_release_ms\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectCompressor \"get_release_ms\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectCompressor.get_release_ms\n\n{-# NOINLINE bindAudioEffectCompressor_get_sidechain #-}\n\n-- | Reduce the sound level using another audio bus for threshold detection.\nbindAudioEffectCompressor_get_sidechain :: MethodBind\nbindAudioEffectCompressor_get_sidechain\n  = unsafePerformIO $\n      withCString \"AudioEffectCompressor\" $\n        \\ clsNamePtr ->\n          withCString \"get_sidechain\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Reduce the sound level using another audio bus for threshold detection.\nget_sidechain ::\n                (AudioEffectCompressor :< cls, Object :< cls) =>\n                cls -> IO GodotString\nget_sidechain cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectCompressor_get_sidechain\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectCompressor \"get_sidechain\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AudioEffectCompressor.get_sidechain\n\n{-# NOINLINE bindAudioEffectCompressor_get_threshold #-}\n\n-- | The level above which compression is applied to the audio. Value can range from -60 to 0.\nbindAudioEffectCompressor_get_threshold :: MethodBind\nbindAudioEffectCompressor_get_threshold\n  = unsafePerformIO $\n      withCString \"AudioEffectCompressor\" $\n        \\ clsNamePtr ->\n          withCString \"get_threshold\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The level above which compression is applied to the audio. Value can range from -60 to 0.\nget_threshold ::\n                (AudioEffectCompressor :< cls, Object :< cls) => cls -> IO Float\nget_threshold cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectCompressor_get_threshold\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectCompressor \"get_threshold\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectCompressor.get_threshold\n\n{-# NOINLINE bindAudioEffectCompressor_set_attack_us #-}\n\n-- | Compressor's reaction time when the signal exceeds the threshold, in microseconds. Value can range from 20 to 2000.\nbindAudioEffectCompressor_set_attack_us :: MethodBind\nbindAudioEffectCompressor_set_attack_us\n  = unsafePerformIO $\n      withCString \"AudioEffectCompressor\" $\n        \\ clsNamePtr ->\n          withCString \"set_attack_us\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Compressor's reaction time when the signal exceeds the threshold, in microseconds. Value can range from 20 to 2000.\nset_attack_us ::\n                (AudioEffectCompressor :< cls, Object :< cls) =>\n                cls -> Float -> IO ()\nset_attack_us cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectCompressor_set_attack_us\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectCompressor \"set_attack_us\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectCompressor.set_attack_us\n\n{-# NOINLINE bindAudioEffectCompressor_set_gain #-}\n\n-- | Gain applied to the output signal.\nbindAudioEffectCompressor_set_gain :: MethodBind\nbindAudioEffectCompressor_set_gain\n  = unsafePerformIO $\n      withCString \"AudioEffectCompressor\" $\n        \\ clsNamePtr ->\n          withCString \"set_gain\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gain applied to the output signal.\nset_gain ::\n           (AudioEffectCompressor :< cls, Object :< cls) =>\n           cls -> Float -> IO ()\nset_gain cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectCompressor_set_gain\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectCompressor \"set_gain\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectCompressor.set_gain\n\n{-# NOINLINE bindAudioEffectCompressor_set_mix #-}\n\n-- | Balance between original signal and effect signal. Value can range from 0 (totally dry) to 1 (totally wet).\nbindAudioEffectCompressor_set_mix :: MethodBind\nbindAudioEffectCompressor_set_mix\n  = unsafePerformIO $\n      withCString \"AudioEffectCompressor\" $\n        \\ clsNamePtr ->\n          withCString \"set_mix\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Balance between original signal and effect signal. Value can range from 0 (totally dry) to 1 (totally wet).\nset_mix ::\n          (AudioEffectCompressor :< cls, Object :< cls) =>\n          cls -> Float -> IO ()\nset_mix cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectCompressor_set_mix\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectCompressor \"set_mix\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectCompressor.set_mix\n\n{-# NOINLINE bindAudioEffectCompressor_set_ratio #-}\n\n-- | Amount of compression applied to the audio once it passes the threshold level. The higher the ratio, the more the loud parts of the audio will be compressed. Value can range from 1 to 48.\nbindAudioEffectCompressor_set_ratio :: MethodBind\nbindAudioEffectCompressor_set_ratio\n  = unsafePerformIO $\n      withCString \"AudioEffectCompressor\" $\n        \\ clsNamePtr ->\n          withCString \"set_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of compression applied to the audio once it passes the threshold level. The higher the ratio, the more the loud parts of the audio will be compressed. Value can range from 1 to 48.\nset_ratio ::\n            (AudioEffectCompressor :< cls, Object :< cls) =>\n            cls -> Float -> IO ()\nset_ratio cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectCompressor_set_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectCompressor \"set_ratio\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectCompressor.set_ratio\n\n{-# NOINLINE bindAudioEffectCompressor_set_release_ms #-}\n\n-- | Compressor's delay time to stop reducing the signal after the signal level falls below the threshold, in milliseconds. Value can range from 20 to 2000.\nbindAudioEffectCompressor_set_release_ms :: MethodBind\nbindAudioEffectCompressor_set_release_ms\n  = unsafePerformIO $\n      withCString \"AudioEffectCompressor\" $\n        \\ clsNamePtr ->\n          withCString \"set_release_ms\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Compressor's delay time to stop reducing the signal after the signal level falls below the threshold, in milliseconds. Value can range from 20 to 2000.\nset_release_ms ::\n                 (AudioEffectCompressor :< cls, Object :< cls) =>\n                 cls -> Float -> IO ()\nset_release_ms cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectCompressor_set_release_ms\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectCompressor \"set_release_ms\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectCompressor.set_release_ms\n\n{-# NOINLINE bindAudioEffectCompressor_set_sidechain #-}\n\n-- | Reduce the sound level using another audio bus for threshold detection.\nbindAudioEffectCompressor_set_sidechain :: MethodBind\nbindAudioEffectCompressor_set_sidechain\n  = unsafePerformIO $\n      withCString \"AudioEffectCompressor\" $\n        \\ clsNamePtr ->\n          withCString \"set_sidechain\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Reduce the sound level using another audio bus for threshold detection.\nset_sidechain ::\n                (AudioEffectCompressor :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\nset_sidechain cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectCompressor_set_sidechain\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectCompressor \"set_sidechain\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectCompressor.set_sidechain\n\n{-# NOINLINE bindAudioEffectCompressor_set_threshold #-}\n\n-- | The level above which compression is applied to the audio. Value can range from -60 to 0.\nbindAudioEffectCompressor_set_threshold :: MethodBind\nbindAudioEffectCompressor_set_threshold\n  = unsafePerformIO $\n      withCString \"AudioEffectCompressor\" $\n        \\ clsNamePtr ->\n          withCString \"set_threshold\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The level above which compression is applied to the audio. Value can range from -60 to 0.\nset_threshold ::\n                (AudioEffectCompressor :< cls, Object :< cls) =>\n                cls -> Float -> IO ()\nset_threshold cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectCompressor_set_threshold\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectCompressor \"set_threshold\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectCompressor.set_threshold"
  },
  {
    "path": "src/Godot/Core/AudioEffectDelay.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectDelay\n       (Godot.Core.AudioEffectDelay.get_dry,\n        Godot.Core.AudioEffectDelay.get_feedback_delay_ms,\n        Godot.Core.AudioEffectDelay.get_feedback_level_db,\n        Godot.Core.AudioEffectDelay.get_feedback_lowpass,\n        Godot.Core.AudioEffectDelay.get_tap1_delay_ms,\n        Godot.Core.AudioEffectDelay.get_tap1_level_db,\n        Godot.Core.AudioEffectDelay.get_tap1_pan,\n        Godot.Core.AudioEffectDelay.get_tap2_delay_ms,\n        Godot.Core.AudioEffectDelay.get_tap2_level_db,\n        Godot.Core.AudioEffectDelay.get_tap2_pan,\n        Godot.Core.AudioEffectDelay.is_feedback_active,\n        Godot.Core.AudioEffectDelay.is_tap1_active,\n        Godot.Core.AudioEffectDelay.is_tap2_active,\n        Godot.Core.AudioEffectDelay.set_dry,\n        Godot.Core.AudioEffectDelay.set_feedback_active,\n        Godot.Core.AudioEffectDelay.set_feedback_delay_ms,\n        Godot.Core.AudioEffectDelay.set_feedback_level_db,\n        Godot.Core.AudioEffectDelay.set_feedback_lowpass,\n        Godot.Core.AudioEffectDelay.set_tap1_active,\n        Godot.Core.AudioEffectDelay.set_tap1_delay_ms,\n        Godot.Core.AudioEffectDelay.set_tap1_level_db,\n        Godot.Core.AudioEffectDelay.set_tap1_pan,\n        Godot.Core.AudioEffectDelay.set_tap2_active,\n        Godot.Core.AudioEffectDelay.set_tap2_delay_ms,\n        Godot.Core.AudioEffectDelay.set_tap2_level_db,\n        Godot.Core.AudioEffectDelay.set_tap2_pan)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffect()\n\ninstance NodeProperty AudioEffectDelay \"dry\" Float 'False where\n        nodeProperty = (get_dry, wrapDroppingSetter set_dry, Nothing)\n\ninstance NodeProperty AudioEffectDelay \"feedback/active\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_feedback_active, wrapDroppingSetter set_feedback_active,\n             Nothing)\n\ninstance NodeProperty AudioEffectDelay \"feedback/delay_ms\" Float\n           'False\n         where\n        nodeProperty\n          = (get_feedback_delay_ms, wrapDroppingSetter set_feedback_delay_ms,\n             Nothing)\n\ninstance NodeProperty AudioEffectDelay \"feedback/level_db\" Float\n           'False\n         where\n        nodeProperty\n          = (get_feedback_level_db, wrapDroppingSetter set_feedback_level_db,\n             Nothing)\n\ninstance NodeProperty AudioEffectDelay \"feedback/lowpass\" Float\n           'False\n         where\n        nodeProperty\n          = (get_feedback_lowpass, wrapDroppingSetter set_feedback_lowpass,\n             Nothing)\n\ninstance NodeProperty AudioEffectDelay \"tap1/active\" Bool 'False\n         where\n        nodeProperty\n          = (is_tap1_active, wrapDroppingSetter set_tap1_active, Nothing)\n\ninstance NodeProperty AudioEffectDelay \"tap1/delay_ms\" Float 'False\n         where\n        nodeProperty\n          = (get_tap1_delay_ms, wrapDroppingSetter set_tap1_delay_ms,\n             Nothing)\n\ninstance NodeProperty AudioEffectDelay \"tap1/level_db\" Float 'False\n         where\n        nodeProperty\n          = (get_tap1_level_db, wrapDroppingSetter set_tap1_level_db,\n             Nothing)\n\ninstance NodeProperty AudioEffectDelay \"tap1/pan\" Float 'False\n         where\n        nodeProperty\n          = (get_tap1_pan, wrapDroppingSetter set_tap1_pan, Nothing)\n\ninstance NodeProperty AudioEffectDelay \"tap2/active\" Bool 'False\n         where\n        nodeProperty\n          = (is_tap2_active, wrapDroppingSetter set_tap2_active, Nothing)\n\ninstance NodeProperty AudioEffectDelay \"tap2/delay_ms\" Float 'False\n         where\n        nodeProperty\n          = (get_tap2_delay_ms, wrapDroppingSetter set_tap2_delay_ms,\n             Nothing)\n\ninstance NodeProperty AudioEffectDelay \"tap2/level_db\" Float 'False\n         where\n        nodeProperty\n          = (get_tap2_level_db, wrapDroppingSetter set_tap2_level_db,\n             Nothing)\n\ninstance NodeProperty AudioEffectDelay \"tap2/pan\" Float 'False\n         where\n        nodeProperty\n          = (get_tap2_pan, wrapDroppingSetter set_tap2_pan, Nothing)\n\n{-# NOINLINE bindAudioEffectDelay_get_dry #-}\n\n-- | Output percent of original sound. At 0, only delayed sounds are output. Value can range from 0 to 1.\nbindAudioEffectDelay_get_dry :: MethodBind\nbindAudioEffectDelay_get_dry\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"get_dry\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Output percent of original sound. At 0, only delayed sounds are output. Value can range from 0 to 1.\nget_dry ::\n          (AudioEffectDelay :< cls, Object :< cls) => cls -> IO Float\nget_dry cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_get_dry (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"get_dry\" '[] (IO Float) where\n        nodeMethod = Godot.Core.AudioEffectDelay.get_dry\n\n{-# NOINLINE bindAudioEffectDelay_get_feedback_delay_ms #-}\n\n-- | Feedback delay time in milliseconds.\nbindAudioEffectDelay_get_feedback_delay_ms :: MethodBind\nbindAudioEffectDelay_get_feedback_delay_ms\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"get_feedback_delay_ms\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Feedback delay time in milliseconds.\nget_feedback_delay_ms ::\n                        (AudioEffectDelay :< cls, Object :< cls) => cls -> IO Float\nget_feedback_delay_ms cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_get_feedback_delay_ms\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"get_feedback_delay_ms\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.get_feedback_delay_ms\n\n{-# NOINLINE bindAudioEffectDelay_get_feedback_level_db #-}\n\n-- | Sound level for @tap1@.\nbindAudioEffectDelay_get_feedback_level_db :: MethodBind\nbindAudioEffectDelay_get_feedback_level_db\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"get_feedback_level_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sound level for @tap1@.\nget_feedback_level_db ::\n                        (AudioEffectDelay :< cls, Object :< cls) => cls -> IO Float\nget_feedback_level_db cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_get_feedback_level_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"get_feedback_level_db\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.get_feedback_level_db\n\n{-# NOINLINE bindAudioEffectDelay_get_feedback_lowpass #-}\n\n-- | Low-pass filter for feedback, in Hz. Frequencies below this value are filtered out of the source signal.\nbindAudioEffectDelay_get_feedback_lowpass :: MethodBind\nbindAudioEffectDelay_get_feedback_lowpass\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"get_feedback_lowpass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Low-pass filter for feedback, in Hz. Frequencies below this value are filtered out of the source signal.\nget_feedback_lowpass ::\n                       (AudioEffectDelay :< cls, Object :< cls) => cls -> IO Float\nget_feedback_lowpass cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_get_feedback_lowpass\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"get_feedback_lowpass\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.get_feedback_lowpass\n\n{-# NOINLINE bindAudioEffectDelay_get_tap1_delay_ms #-}\n\n-- | @tap1@ delay time in milliseconds.\nbindAudioEffectDelay_get_tap1_delay_ms :: MethodBind\nbindAudioEffectDelay_get_tap1_delay_ms\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"get_tap1_delay_ms\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @tap1@ delay time in milliseconds.\nget_tap1_delay_ms ::\n                    (AudioEffectDelay :< cls, Object :< cls) => cls -> IO Float\nget_tap1_delay_ms cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_get_tap1_delay_ms\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"get_tap1_delay_ms\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.get_tap1_delay_ms\n\n{-# NOINLINE bindAudioEffectDelay_get_tap1_level_db #-}\n\n-- | Sound level for @tap1@.\nbindAudioEffectDelay_get_tap1_level_db :: MethodBind\nbindAudioEffectDelay_get_tap1_level_db\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"get_tap1_level_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sound level for @tap1@.\nget_tap1_level_db ::\n                    (AudioEffectDelay :< cls, Object :< cls) => cls -> IO Float\nget_tap1_level_db cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_get_tap1_level_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"get_tap1_level_db\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.get_tap1_level_db\n\n{-# NOINLINE bindAudioEffectDelay_get_tap1_pan #-}\n\n-- | Pan position for @tap1@. Value can range from -1 (fully left) to 1 (fully right).\nbindAudioEffectDelay_get_tap1_pan :: MethodBind\nbindAudioEffectDelay_get_tap1_pan\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"get_tap1_pan\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Pan position for @tap1@. Value can range from -1 (fully left) to 1 (fully right).\nget_tap1_pan ::\n               (AudioEffectDelay :< cls, Object :< cls) => cls -> IO Float\nget_tap1_pan cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_get_tap1_pan\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"get_tap1_pan\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.get_tap1_pan\n\n{-# NOINLINE bindAudioEffectDelay_get_tap2_delay_ms #-}\n\n-- | __Tap2__ delay time in milliseconds.\nbindAudioEffectDelay_get_tap2_delay_ms :: MethodBind\nbindAudioEffectDelay_get_tap2_delay_ms\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"get_tap2_delay_ms\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | __Tap2__ delay time in milliseconds.\nget_tap2_delay_ms ::\n                    (AudioEffectDelay :< cls, Object :< cls) => cls -> IO Float\nget_tap2_delay_ms cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_get_tap2_delay_ms\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"get_tap2_delay_ms\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.get_tap2_delay_ms\n\n{-# NOINLINE bindAudioEffectDelay_get_tap2_level_db #-}\n\n-- | Sound level for @tap2@.\nbindAudioEffectDelay_get_tap2_level_db :: MethodBind\nbindAudioEffectDelay_get_tap2_level_db\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"get_tap2_level_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sound level for @tap2@.\nget_tap2_level_db ::\n                    (AudioEffectDelay :< cls, Object :< cls) => cls -> IO Float\nget_tap2_level_db cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_get_tap2_level_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"get_tap2_level_db\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.get_tap2_level_db\n\n{-# NOINLINE bindAudioEffectDelay_get_tap2_pan #-}\n\n-- | Pan position for @tap2@. Value can range from -1 (fully left) to 1 (fully right).\nbindAudioEffectDelay_get_tap2_pan :: MethodBind\nbindAudioEffectDelay_get_tap2_pan\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"get_tap2_pan\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Pan position for @tap2@. Value can range from -1 (fully left) to 1 (fully right).\nget_tap2_pan ::\n               (AudioEffectDelay :< cls, Object :< cls) => cls -> IO Float\nget_tap2_pan cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_get_tap2_pan\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"get_tap2_pan\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.get_tap2_pan\n\n{-# NOINLINE bindAudioEffectDelay_is_feedback_active #-}\n\n-- | If @true@, feedback is enabled.\nbindAudioEffectDelay_is_feedback_active :: MethodBind\nbindAudioEffectDelay_is_feedback_active\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"is_feedback_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, feedback is enabled.\nis_feedback_active ::\n                     (AudioEffectDelay :< cls, Object :< cls) => cls -> IO Bool\nis_feedback_active cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_is_feedback_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"is_feedback_active\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.is_feedback_active\n\n{-# NOINLINE bindAudioEffectDelay_is_tap1_active #-}\n\n-- | If @true@, @tap1@ will be enabled.\nbindAudioEffectDelay_is_tap1_active :: MethodBind\nbindAudioEffectDelay_is_tap1_active\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"is_tap1_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, @tap1@ will be enabled.\nis_tap1_active ::\n                 (AudioEffectDelay :< cls, Object :< cls) => cls -> IO Bool\nis_tap1_active cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_is_tap1_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"is_tap1_active\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.is_tap1_active\n\n{-# NOINLINE bindAudioEffectDelay_is_tap2_active #-}\n\n-- | If @true@, @tap2@ will be enabled.\nbindAudioEffectDelay_is_tap2_active :: MethodBind\nbindAudioEffectDelay_is_tap2_active\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"is_tap2_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, @tap2@ will be enabled.\nis_tap2_active ::\n                 (AudioEffectDelay :< cls, Object :< cls) => cls -> IO Bool\nis_tap2_active cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_is_tap2_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"is_tap2_active\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.is_tap2_active\n\n{-# NOINLINE bindAudioEffectDelay_set_dry #-}\n\n-- | Output percent of original sound. At 0, only delayed sounds are output. Value can range from 0 to 1.\nbindAudioEffectDelay_set_dry :: MethodBind\nbindAudioEffectDelay_set_dry\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"set_dry\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Output percent of original sound. At 0, only delayed sounds are output. Value can range from 0 to 1.\nset_dry ::\n          (AudioEffectDelay :< cls, Object :< cls) => cls -> Float -> IO ()\nset_dry cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_set_dry (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"set_dry\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.set_dry\n\n{-# NOINLINE bindAudioEffectDelay_set_feedback_active #-}\n\n-- | If @true@, feedback is enabled.\nbindAudioEffectDelay_set_feedback_active :: MethodBind\nbindAudioEffectDelay_set_feedback_active\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"set_feedback_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, feedback is enabled.\nset_feedback_active ::\n                      (AudioEffectDelay :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_feedback_active cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_set_feedback_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"set_feedback_active\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.set_feedback_active\n\n{-# NOINLINE bindAudioEffectDelay_set_feedback_delay_ms #-}\n\n-- | Feedback delay time in milliseconds.\nbindAudioEffectDelay_set_feedback_delay_ms :: MethodBind\nbindAudioEffectDelay_set_feedback_delay_ms\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"set_feedback_delay_ms\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Feedback delay time in milliseconds.\nset_feedback_delay_ms ::\n                        (AudioEffectDelay :< cls, Object :< cls) => cls -> Float -> IO ()\nset_feedback_delay_ms cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_set_feedback_delay_ms\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"set_feedback_delay_ms\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.set_feedback_delay_ms\n\n{-# NOINLINE bindAudioEffectDelay_set_feedback_level_db #-}\n\n-- | Sound level for @tap1@.\nbindAudioEffectDelay_set_feedback_level_db :: MethodBind\nbindAudioEffectDelay_set_feedback_level_db\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"set_feedback_level_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sound level for @tap1@.\nset_feedback_level_db ::\n                        (AudioEffectDelay :< cls, Object :< cls) => cls -> Float -> IO ()\nset_feedback_level_db cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_set_feedback_level_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"set_feedback_level_db\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.set_feedback_level_db\n\n{-# NOINLINE bindAudioEffectDelay_set_feedback_lowpass #-}\n\n-- | Low-pass filter for feedback, in Hz. Frequencies below this value are filtered out of the source signal.\nbindAudioEffectDelay_set_feedback_lowpass :: MethodBind\nbindAudioEffectDelay_set_feedback_lowpass\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"set_feedback_lowpass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Low-pass filter for feedback, in Hz. Frequencies below this value are filtered out of the source signal.\nset_feedback_lowpass ::\n                       (AudioEffectDelay :< cls, Object :< cls) => cls -> Float -> IO ()\nset_feedback_lowpass cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_set_feedback_lowpass\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"set_feedback_lowpass\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.set_feedback_lowpass\n\n{-# NOINLINE bindAudioEffectDelay_set_tap1_active #-}\n\n-- | If @true@, @tap1@ will be enabled.\nbindAudioEffectDelay_set_tap1_active :: MethodBind\nbindAudioEffectDelay_set_tap1_active\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"set_tap1_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, @tap1@ will be enabled.\nset_tap1_active ::\n                  (AudioEffectDelay :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_tap1_active cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_set_tap1_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"set_tap1_active\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.set_tap1_active\n\n{-# NOINLINE bindAudioEffectDelay_set_tap1_delay_ms #-}\n\n-- | @tap1@ delay time in milliseconds.\nbindAudioEffectDelay_set_tap1_delay_ms :: MethodBind\nbindAudioEffectDelay_set_tap1_delay_ms\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"set_tap1_delay_ms\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @tap1@ delay time in milliseconds.\nset_tap1_delay_ms ::\n                    (AudioEffectDelay :< cls, Object :< cls) => cls -> Float -> IO ()\nset_tap1_delay_ms cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_set_tap1_delay_ms\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"set_tap1_delay_ms\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.set_tap1_delay_ms\n\n{-# NOINLINE bindAudioEffectDelay_set_tap1_level_db #-}\n\n-- | Sound level for @tap1@.\nbindAudioEffectDelay_set_tap1_level_db :: MethodBind\nbindAudioEffectDelay_set_tap1_level_db\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"set_tap1_level_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sound level for @tap1@.\nset_tap1_level_db ::\n                    (AudioEffectDelay :< cls, Object :< cls) => cls -> Float -> IO ()\nset_tap1_level_db cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_set_tap1_level_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"set_tap1_level_db\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.set_tap1_level_db\n\n{-# NOINLINE bindAudioEffectDelay_set_tap1_pan #-}\n\n-- | Pan position for @tap1@. Value can range from -1 (fully left) to 1 (fully right).\nbindAudioEffectDelay_set_tap1_pan :: MethodBind\nbindAudioEffectDelay_set_tap1_pan\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"set_tap1_pan\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Pan position for @tap1@. Value can range from -1 (fully left) to 1 (fully right).\nset_tap1_pan ::\n               (AudioEffectDelay :< cls, Object :< cls) => cls -> Float -> IO ()\nset_tap1_pan cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_set_tap1_pan\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"set_tap1_pan\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.set_tap1_pan\n\n{-# NOINLINE bindAudioEffectDelay_set_tap2_active #-}\n\n-- | If @true@, @tap2@ will be enabled.\nbindAudioEffectDelay_set_tap2_active :: MethodBind\nbindAudioEffectDelay_set_tap2_active\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"set_tap2_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, @tap2@ will be enabled.\nset_tap2_active ::\n                  (AudioEffectDelay :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_tap2_active cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_set_tap2_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"set_tap2_active\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.set_tap2_active\n\n{-# NOINLINE bindAudioEffectDelay_set_tap2_delay_ms #-}\n\n-- | __Tap2__ delay time in milliseconds.\nbindAudioEffectDelay_set_tap2_delay_ms :: MethodBind\nbindAudioEffectDelay_set_tap2_delay_ms\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"set_tap2_delay_ms\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | __Tap2__ delay time in milliseconds.\nset_tap2_delay_ms ::\n                    (AudioEffectDelay :< cls, Object :< cls) => cls -> Float -> IO ()\nset_tap2_delay_ms cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_set_tap2_delay_ms\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"set_tap2_delay_ms\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.set_tap2_delay_ms\n\n{-# NOINLINE bindAudioEffectDelay_set_tap2_level_db #-}\n\n-- | Sound level for @tap2@.\nbindAudioEffectDelay_set_tap2_level_db :: MethodBind\nbindAudioEffectDelay_set_tap2_level_db\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"set_tap2_level_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sound level for @tap2@.\nset_tap2_level_db ::\n                    (AudioEffectDelay :< cls, Object :< cls) => cls -> Float -> IO ()\nset_tap2_level_db cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_set_tap2_level_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"set_tap2_level_db\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.set_tap2_level_db\n\n{-# NOINLINE bindAudioEffectDelay_set_tap2_pan #-}\n\n-- | Pan position for @tap2@. Value can range from -1 (fully left) to 1 (fully right).\nbindAudioEffectDelay_set_tap2_pan :: MethodBind\nbindAudioEffectDelay_set_tap2_pan\n  = unsafePerformIO $\n      withCString \"AudioEffectDelay\" $\n        \\ clsNamePtr ->\n          withCString \"set_tap2_pan\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Pan position for @tap2@. Value can range from -1 (fully left) to 1 (fully right).\nset_tap2_pan ::\n               (AudioEffectDelay :< cls, Object :< cls) => cls -> Float -> IO ()\nset_tap2_pan cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDelay_set_tap2_pan\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDelay \"set_tap2_pan\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectDelay.set_tap2_pan"
  },
  {
    "path": "src/Godot/Core/AudioEffectDistortion.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectDistortion\n       (Godot.Core.AudioEffectDistortion._MODE_CLIP,\n        Godot.Core.AudioEffectDistortion._MODE_LOFI,\n        Godot.Core.AudioEffectDistortion._MODE_OVERDRIVE,\n        Godot.Core.AudioEffectDistortion._MODE_WAVESHAPE,\n        Godot.Core.AudioEffectDistortion._MODE_ATAN,\n        Godot.Core.AudioEffectDistortion.get_drive,\n        Godot.Core.AudioEffectDistortion.get_keep_hf_hz,\n        Godot.Core.AudioEffectDistortion.get_mode,\n        Godot.Core.AudioEffectDistortion.get_post_gain,\n        Godot.Core.AudioEffectDistortion.get_pre_gain,\n        Godot.Core.AudioEffectDistortion.set_drive,\n        Godot.Core.AudioEffectDistortion.set_keep_hf_hz,\n        Godot.Core.AudioEffectDistortion.set_mode,\n        Godot.Core.AudioEffectDistortion.set_post_gain,\n        Godot.Core.AudioEffectDistortion.set_pre_gain)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffect()\n\n_MODE_CLIP :: Int\n_MODE_CLIP = 0\n\n_MODE_LOFI :: Int\n_MODE_LOFI = 2\n\n_MODE_OVERDRIVE :: Int\n_MODE_OVERDRIVE = 3\n\n_MODE_WAVESHAPE :: Int\n_MODE_WAVESHAPE = 4\n\n_MODE_ATAN :: Int\n_MODE_ATAN = 1\n\ninstance NodeProperty AudioEffectDistortion \"drive\" Float 'False\n         where\n        nodeProperty = (get_drive, wrapDroppingSetter set_drive, Nothing)\n\ninstance NodeProperty AudioEffectDistortion \"keep_hf_hz\" Float\n           'False\n         where\n        nodeProperty\n          = (get_keep_hf_hz, wrapDroppingSetter set_keep_hf_hz, Nothing)\n\ninstance NodeProperty AudioEffectDistortion \"mode\" Int 'False where\n        nodeProperty = (get_mode, wrapDroppingSetter set_mode, Nothing)\n\ninstance NodeProperty AudioEffectDistortion \"post_gain\" Float\n           'False\n         where\n        nodeProperty\n          = (get_post_gain, wrapDroppingSetter set_post_gain, Nothing)\n\ninstance NodeProperty AudioEffectDistortion \"pre_gain\" Float 'False\n         where\n        nodeProperty\n          = (get_pre_gain, wrapDroppingSetter set_pre_gain, Nothing)\n\n{-# NOINLINE bindAudioEffectDistortion_get_drive #-}\n\n-- | Distortion power. Value can range from 0 to 1.\nbindAudioEffectDistortion_get_drive :: MethodBind\nbindAudioEffectDistortion_get_drive\n  = unsafePerformIO $\n      withCString \"AudioEffectDistortion\" $\n        \\ clsNamePtr ->\n          withCString \"get_drive\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Distortion power. Value can range from 0 to 1.\nget_drive ::\n            (AudioEffectDistortion :< cls, Object :< cls) => cls -> IO Float\nget_drive cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDistortion_get_drive\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDistortion \"get_drive\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectDistortion.get_drive\n\n{-# NOINLINE bindAudioEffectDistortion_get_keep_hf_hz #-}\n\n-- | High-pass filter, in Hz. Frequencies higher than this value will not be affected by the distortion. Value can range from 1 to 20000.\nbindAudioEffectDistortion_get_keep_hf_hz :: MethodBind\nbindAudioEffectDistortion_get_keep_hf_hz\n  = unsafePerformIO $\n      withCString \"AudioEffectDistortion\" $\n        \\ clsNamePtr ->\n          withCString \"get_keep_hf_hz\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | High-pass filter, in Hz. Frequencies higher than this value will not be affected by the distortion. Value can range from 1 to 20000.\nget_keep_hf_hz ::\n                 (AudioEffectDistortion :< cls, Object :< cls) => cls -> IO Float\nget_keep_hf_hz cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDistortion_get_keep_hf_hz\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDistortion \"get_keep_hf_hz\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectDistortion.get_keep_hf_hz\n\n{-# NOINLINE bindAudioEffectDistortion_get_mode #-}\n\n-- | Distortion type.\nbindAudioEffectDistortion_get_mode :: MethodBind\nbindAudioEffectDistortion_get_mode\n  = unsafePerformIO $\n      withCString \"AudioEffectDistortion\" $\n        \\ clsNamePtr ->\n          withCString \"get_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Distortion type.\nget_mode ::\n           (AudioEffectDistortion :< cls, Object :< cls) => cls -> IO Int\nget_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDistortion_get_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDistortion \"get_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioEffectDistortion.get_mode\n\n{-# NOINLINE bindAudioEffectDistortion_get_post_gain #-}\n\n-- | Increases or decreases the volume after the effect. Value can range from -80 to 24.\nbindAudioEffectDistortion_get_post_gain :: MethodBind\nbindAudioEffectDistortion_get_post_gain\n  = unsafePerformIO $\n      withCString \"AudioEffectDistortion\" $\n        \\ clsNamePtr ->\n          withCString \"get_post_gain\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Increases or decreases the volume after the effect. Value can range from -80 to 24.\nget_post_gain ::\n                (AudioEffectDistortion :< cls, Object :< cls) => cls -> IO Float\nget_post_gain cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDistortion_get_post_gain\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDistortion \"get_post_gain\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectDistortion.get_post_gain\n\n{-# NOINLINE bindAudioEffectDistortion_get_pre_gain #-}\n\n-- | Increases or decreases the volume before the effect. Value can range from -60 to 60.\nbindAudioEffectDistortion_get_pre_gain :: MethodBind\nbindAudioEffectDistortion_get_pre_gain\n  = unsafePerformIO $\n      withCString \"AudioEffectDistortion\" $\n        \\ clsNamePtr ->\n          withCString \"get_pre_gain\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Increases or decreases the volume before the effect. Value can range from -60 to 60.\nget_pre_gain ::\n               (AudioEffectDistortion :< cls, Object :< cls) => cls -> IO Float\nget_pre_gain cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDistortion_get_pre_gain\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDistortion \"get_pre_gain\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectDistortion.get_pre_gain\n\n{-# NOINLINE bindAudioEffectDistortion_set_drive #-}\n\n-- | Distortion power. Value can range from 0 to 1.\nbindAudioEffectDistortion_set_drive :: MethodBind\nbindAudioEffectDistortion_set_drive\n  = unsafePerformIO $\n      withCString \"AudioEffectDistortion\" $\n        \\ clsNamePtr ->\n          withCString \"set_drive\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Distortion power. Value can range from 0 to 1.\nset_drive ::\n            (AudioEffectDistortion :< cls, Object :< cls) =>\n            cls -> Float -> IO ()\nset_drive cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDistortion_set_drive\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDistortion \"set_drive\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectDistortion.set_drive\n\n{-# NOINLINE bindAudioEffectDistortion_set_keep_hf_hz #-}\n\n-- | High-pass filter, in Hz. Frequencies higher than this value will not be affected by the distortion. Value can range from 1 to 20000.\nbindAudioEffectDistortion_set_keep_hf_hz :: MethodBind\nbindAudioEffectDistortion_set_keep_hf_hz\n  = unsafePerformIO $\n      withCString \"AudioEffectDistortion\" $\n        \\ clsNamePtr ->\n          withCString \"set_keep_hf_hz\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | High-pass filter, in Hz. Frequencies higher than this value will not be affected by the distortion. Value can range from 1 to 20000.\nset_keep_hf_hz ::\n                 (AudioEffectDistortion :< cls, Object :< cls) =>\n                 cls -> Float -> IO ()\nset_keep_hf_hz cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDistortion_set_keep_hf_hz\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDistortion \"set_keep_hf_hz\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectDistortion.set_keep_hf_hz\n\n{-# NOINLINE bindAudioEffectDistortion_set_mode #-}\n\n-- | Distortion type.\nbindAudioEffectDistortion_set_mode :: MethodBind\nbindAudioEffectDistortion_set_mode\n  = unsafePerformIO $\n      withCString \"AudioEffectDistortion\" $\n        \\ clsNamePtr ->\n          withCString \"set_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Distortion type.\nset_mode ::\n           (AudioEffectDistortion :< cls, Object :< cls) =>\n           cls -> Int -> IO ()\nset_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDistortion_set_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDistortion \"set_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectDistortion.set_mode\n\n{-# NOINLINE bindAudioEffectDistortion_set_post_gain #-}\n\n-- | Increases or decreases the volume after the effect. Value can range from -80 to 24.\nbindAudioEffectDistortion_set_post_gain :: MethodBind\nbindAudioEffectDistortion_set_post_gain\n  = unsafePerformIO $\n      withCString \"AudioEffectDistortion\" $\n        \\ clsNamePtr ->\n          withCString \"set_post_gain\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Increases or decreases the volume after the effect. Value can range from -80 to 24.\nset_post_gain ::\n                (AudioEffectDistortion :< cls, Object :< cls) =>\n                cls -> Float -> IO ()\nset_post_gain cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDistortion_set_post_gain\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDistortion \"set_post_gain\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectDistortion.set_post_gain\n\n{-# NOINLINE bindAudioEffectDistortion_set_pre_gain #-}\n\n-- | Increases or decreases the volume before the effect. Value can range from -60 to 60.\nbindAudioEffectDistortion_set_pre_gain :: MethodBind\nbindAudioEffectDistortion_set_pre_gain\n  = unsafePerformIO $\n      withCString \"AudioEffectDistortion\" $\n        \\ clsNamePtr ->\n          withCString \"set_pre_gain\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Increases or decreases the volume before the effect. Value can range from -60 to 60.\nset_pre_gain ::\n               (AudioEffectDistortion :< cls, Object :< cls) =>\n               cls -> Float -> IO ()\nset_pre_gain cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectDistortion_set_pre_gain\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectDistortion \"set_pre_gain\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectDistortion.set_pre_gain"
  },
  {
    "path": "src/Godot/Core/AudioEffectEQ.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectEQ\n       (Godot.Core.AudioEffectEQ.get_band_count,\n        Godot.Core.AudioEffectEQ.get_band_gain_db,\n        Godot.Core.AudioEffectEQ.set_band_gain_db)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffect()\n\n{-# NOINLINE bindAudioEffectEQ_get_band_count #-}\n\n-- | Returns the number of bands of the equalizer.\nbindAudioEffectEQ_get_band_count :: MethodBind\nbindAudioEffectEQ_get_band_count\n  = unsafePerformIO $\n      withCString \"AudioEffectEQ\" $\n        \\ clsNamePtr ->\n          withCString \"get_band_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of bands of the equalizer.\nget_band_count ::\n                 (AudioEffectEQ :< cls, Object :< cls) => cls -> IO Int\nget_band_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectEQ_get_band_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectEQ \"get_band_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioEffectEQ.get_band_count\n\n{-# NOINLINE bindAudioEffectEQ_get_band_gain_db #-}\n\n-- | Returns the band's gain at the specified index, in dB.\nbindAudioEffectEQ_get_band_gain_db :: MethodBind\nbindAudioEffectEQ_get_band_gain_db\n  = unsafePerformIO $\n      withCString \"AudioEffectEQ\" $\n        \\ clsNamePtr ->\n          withCString \"get_band_gain_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the band's gain at the specified index, in dB.\nget_band_gain_db ::\n                   (AudioEffectEQ :< cls, Object :< cls) => cls -> Int -> IO Float\nget_band_gain_db cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectEQ_get_band_gain_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectEQ \"get_band_gain_db\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectEQ.get_band_gain_db\n\n{-# NOINLINE bindAudioEffectEQ_set_band_gain_db #-}\n\n-- | Sets band's gain at the specified index, in dB.\nbindAudioEffectEQ_set_band_gain_db :: MethodBind\nbindAudioEffectEQ_set_band_gain_db\n  = unsafePerformIO $\n      withCString \"AudioEffectEQ\" $\n        \\ clsNamePtr ->\n          withCString \"set_band_gain_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets band's gain at the specified index, in dB.\nset_band_gain_db ::\n                   (AudioEffectEQ :< cls, Object :< cls) =>\n                   cls -> Int -> Float -> IO ()\nset_band_gain_db cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectEQ_set_band_gain_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectEQ \"set_band_gain_db\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectEQ.set_band_gain_db"
  },
  {
    "path": "src/Godot/Core/AudioEffectEQ10.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectEQ10 () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffectEQ()"
  },
  {
    "path": "src/Godot/Core/AudioEffectEQ21.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectEQ21 () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffectEQ()"
  },
  {
    "path": "src/Godot/Core/AudioEffectEQ6.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectEQ6 () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffectEQ()"
  },
  {
    "path": "src/Godot/Core/AudioEffectFilter.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectFilter\n       (Godot.Core.AudioEffectFilter._FILTER_24DB,\n        Godot.Core.AudioEffectFilter._FILTER_12DB,\n        Godot.Core.AudioEffectFilter._FILTER_18DB,\n        Godot.Core.AudioEffectFilter._FILTER_6DB,\n        Godot.Core.AudioEffectFilter.get_cutoff,\n        Godot.Core.AudioEffectFilter.get_db,\n        Godot.Core.AudioEffectFilter.get_gain,\n        Godot.Core.AudioEffectFilter.get_resonance,\n        Godot.Core.AudioEffectFilter.set_cutoff,\n        Godot.Core.AudioEffectFilter.set_db,\n        Godot.Core.AudioEffectFilter.set_gain,\n        Godot.Core.AudioEffectFilter.set_resonance)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffect()\n\n_FILTER_24DB :: Int\n_FILTER_24DB = 3\n\n_FILTER_12DB :: Int\n_FILTER_12DB = 1\n\n_FILTER_18DB :: Int\n_FILTER_18DB = 2\n\n_FILTER_6DB :: Int\n_FILTER_6DB = 0\n\ninstance NodeProperty AudioEffectFilter \"cutoff_hz\" Float 'False\n         where\n        nodeProperty = (get_cutoff, wrapDroppingSetter set_cutoff, Nothing)\n\ninstance NodeProperty AudioEffectFilter \"db\" Int 'False where\n        nodeProperty = (get_db, wrapDroppingSetter set_db, Nothing)\n\ninstance NodeProperty AudioEffectFilter \"gain\" Float 'False where\n        nodeProperty = (get_gain, wrapDroppingSetter set_gain, Nothing)\n\ninstance NodeProperty AudioEffectFilter \"resonance\" Float 'False\n         where\n        nodeProperty\n          = (get_resonance, wrapDroppingSetter set_resonance, Nothing)\n\n{-# NOINLINE bindAudioEffectFilter_get_cutoff #-}\n\n-- | Threshold frequency for the filter, in Hz.\nbindAudioEffectFilter_get_cutoff :: MethodBind\nbindAudioEffectFilter_get_cutoff\n  = unsafePerformIO $\n      withCString \"AudioEffectFilter\" $\n        \\ clsNamePtr ->\n          withCString \"get_cutoff\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Threshold frequency for the filter, in Hz.\nget_cutoff ::\n             (AudioEffectFilter :< cls, Object :< cls) => cls -> IO Float\nget_cutoff cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectFilter_get_cutoff\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectFilter \"get_cutoff\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectFilter.get_cutoff\n\n{-# NOINLINE bindAudioEffectFilter_get_db #-}\n\nbindAudioEffectFilter_get_db :: MethodBind\nbindAudioEffectFilter_get_db\n  = unsafePerformIO $\n      withCString \"AudioEffectFilter\" $\n        \\ clsNamePtr ->\n          withCString \"get_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_db ::\n         (AudioEffectFilter :< cls, Object :< cls) => cls -> IO Int\nget_db cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectFilter_get_db (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectFilter \"get_db\" '[] (IO Int) where\n        nodeMethod = Godot.Core.AudioEffectFilter.get_db\n\n{-# NOINLINE bindAudioEffectFilter_get_gain #-}\n\n-- | Gain amount of the frequencies after the filter.\nbindAudioEffectFilter_get_gain :: MethodBind\nbindAudioEffectFilter_get_gain\n  = unsafePerformIO $\n      withCString \"AudioEffectFilter\" $\n        \\ clsNamePtr ->\n          withCString \"get_gain\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gain amount of the frequencies after the filter.\nget_gain ::\n           (AudioEffectFilter :< cls, Object :< cls) => cls -> IO Float\nget_gain cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectFilter_get_gain (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectFilter \"get_gain\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectFilter.get_gain\n\n{-# NOINLINE bindAudioEffectFilter_get_resonance #-}\n\n-- | Amount of boost in the frequency range near the cutoff frequency.\nbindAudioEffectFilter_get_resonance :: MethodBind\nbindAudioEffectFilter_get_resonance\n  = unsafePerformIO $\n      withCString \"AudioEffectFilter\" $\n        \\ clsNamePtr ->\n          withCString \"get_resonance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of boost in the frequency range near the cutoff frequency.\nget_resonance ::\n                (AudioEffectFilter :< cls, Object :< cls) => cls -> IO Float\nget_resonance cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectFilter_get_resonance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectFilter \"get_resonance\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectFilter.get_resonance\n\n{-# NOINLINE bindAudioEffectFilter_set_cutoff #-}\n\n-- | Threshold frequency for the filter, in Hz.\nbindAudioEffectFilter_set_cutoff :: MethodBind\nbindAudioEffectFilter_set_cutoff\n  = unsafePerformIO $\n      withCString \"AudioEffectFilter\" $\n        \\ clsNamePtr ->\n          withCString \"set_cutoff\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Threshold frequency for the filter, in Hz.\nset_cutoff ::\n             (AudioEffectFilter :< cls, Object :< cls) => cls -> Float -> IO ()\nset_cutoff cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectFilter_set_cutoff\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectFilter \"set_cutoff\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectFilter.set_cutoff\n\n{-# NOINLINE bindAudioEffectFilter_set_db #-}\n\nbindAudioEffectFilter_set_db :: MethodBind\nbindAudioEffectFilter_set_db\n  = unsafePerformIO $\n      withCString \"AudioEffectFilter\" $\n        \\ clsNamePtr ->\n          withCString \"set_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_db ::\n         (AudioEffectFilter :< cls, Object :< cls) => cls -> Int -> IO ()\nset_db cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectFilter_set_db (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectFilter \"set_db\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.AudioEffectFilter.set_db\n\n{-# NOINLINE bindAudioEffectFilter_set_gain #-}\n\n-- | Gain amount of the frequencies after the filter.\nbindAudioEffectFilter_set_gain :: MethodBind\nbindAudioEffectFilter_set_gain\n  = unsafePerformIO $\n      withCString \"AudioEffectFilter\" $\n        \\ clsNamePtr ->\n          withCString \"set_gain\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gain amount of the frequencies after the filter.\nset_gain ::\n           (AudioEffectFilter :< cls, Object :< cls) => cls -> Float -> IO ()\nset_gain cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectFilter_set_gain (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectFilter \"set_gain\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectFilter.set_gain\n\n{-# NOINLINE bindAudioEffectFilter_set_resonance #-}\n\n-- | Amount of boost in the frequency range near the cutoff frequency.\nbindAudioEffectFilter_set_resonance :: MethodBind\nbindAudioEffectFilter_set_resonance\n  = unsafePerformIO $\n      withCString \"AudioEffectFilter\" $\n        \\ clsNamePtr ->\n          withCString \"set_resonance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of boost in the frequency range near the cutoff frequency.\nset_resonance ::\n                (AudioEffectFilter :< cls, Object :< cls) => cls -> Float -> IO ()\nset_resonance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectFilter_set_resonance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectFilter \"set_resonance\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectFilter.set_resonance"
  },
  {
    "path": "src/Godot/Core/AudioEffectHighPassFilter.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectHighPassFilter () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffectFilter()"
  },
  {
    "path": "src/Godot/Core/AudioEffectHighShelfFilter.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectHighShelfFilter () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffectFilter()"
  },
  {
    "path": "src/Godot/Core/AudioEffectInstance.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectInstance () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()"
  },
  {
    "path": "src/Godot/Core/AudioEffectLimiter.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectLimiter\n       (Godot.Core.AudioEffectLimiter.get_ceiling_db,\n        Godot.Core.AudioEffectLimiter.get_soft_clip_db,\n        Godot.Core.AudioEffectLimiter.get_soft_clip_ratio,\n        Godot.Core.AudioEffectLimiter.get_threshold_db,\n        Godot.Core.AudioEffectLimiter.set_ceiling_db,\n        Godot.Core.AudioEffectLimiter.set_soft_clip_db,\n        Godot.Core.AudioEffectLimiter.set_soft_clip_ratio,\n        Godot.Core.AudioEffectLimiter.set_threshold_db)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffect()\n\ninstance NodeProperty AudioEffectLimiter \"ceiling_db\" Float 'False\n         where\n        nodeProperty\n          = (get_ceiling_db, wrapDroppingSetter set_ceiling_db, Nothing)\n\ninstance NodeProperty AudioEffectLimiter \"soft_clip_db\" Float\n           'False\n         where\n        nodeProperty\n          = (get_soft_clip_db, wrapDroppingSetter set_soft_clip_db, Nothing)\n\ninstance NodeProperty AudioEffectLimiter \"soft_clip_ratio\" Float\n           'False\n         where\n        nodeProperty\n          = (get_soft_clip_ratio, wrapDroppingSetter set_soft_clip_ratio,\n             Nothing)\n\ninstance NodeProperty AudioEffectLimiter \"threshold_db\" Float\n           'False\n         where\n        nodeProperty\n          = (get_threshold_db, wrapDroppingSetter set_threshold_db, Nothing)\n\n{-# NOINLINE bindAudioEffectLimiter_get_ceiling_db #-}\n\n-- | The waveform's maximum allowed value, in decibels. Value can range from -20 to -0.1.\nbindAudioEffectLimiter_get_ceiling_db :: MethodBind\nbindAudioEffectLimiter_get_ceiling_db\n  = unsafePerformIO $\n      withCString \"AudioEffectLimiter\" $\n        \\ clsNamePtr ->\n          withCString \"get_ceiling_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The waveform's maximum allowed value, in decibels. Value can range from -20 to -0.1.\nget_ceiling_db ::\n                 (AudioEffectLimiter :< cls, Object :< cls) => cls -> IO Float\nget_ceiling_db cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectLimiter_get_ceiling_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectLimiter \"get_ceiling_db\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectLimiter.get_ceiling_db\n\n{-# NOINLINE bindAudioEffectLimiter_get_soft_clip_db #-}\n\n-- | Applies a gain to the limited waves, in decibels. Value can range from 0 to 6.\nbindAudioEffectLimiter_get_soft_clip_db :: MethodBind\nbindAudioEffectLimiter_get_soft_clip_db\n  = unsafePerformIO $\n      withCString \"AudioEffectLimiter\" $\n        \\ clsNamePtr ->\n          withCString \"get_soft_clip_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies a gain to the limited waves, in decibels. Value can range from 0 to 6.\nget_soft_clip_db ::\n                   (AudioEffectLimiter :< cls, Object :< cls) => cls -> IO Float\nget_soft_clip_db cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectLimiter_get_soft_clip_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectLimiter \"get_soft_clip_db\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectLimiter.get_soft_clip_db\n\n{-# NOINLINE bindAudioEffectLimiter_get_soft_clip_ratio #-}\n\nbindAudioEffectLimiter_get_soft_clip_ratio :: MethodBind\nbindAudioEffectLimiter_get_soft_clip_ratio\n  = unsafePerformIO $\n      withCString \"AudioEffectLimiter\" $\n        \\ clsNamePtr ->\n          withCString \"get_soft_clip_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_soft_clip_ratio ::\n                      (AudioEffectLimiter :< cls, Object :< cls) => cls -> IO Float\nget_soft_clip_ratio cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectLimiter_get_soft_clip_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectLimiter \"get_soft_clip_ratio\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectLimiter.get_soft_clip_ratio\n\n{-# NOINLINE bindAudioEffectLimiter_get_threshold_db #-}\n\n-- | Threshold from which the limiter begins to be active, in decibels. Value can range from -30 to 0.\nbindAudioEffectLimiter_get_threshold_db :: MethodBind\nbindAudioEffectLimiter_get_threshold_db\n  = unsafePerformIO $\n      withCString \"AudioEffectLimiter\" $\n        \\ clsNamePtr ->\n          withCString \"get_threshold_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Threshold from which the limiter begins to be active, in decibels. Value can range from -30 to 0.\nget_threshold_db ::\n                   (AudioEffectLimiter :< cls, Object :< cls) => cls -> IO Float\nget_threshold_db cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectLimiter_get_threshold_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectLimiter \"get_threshold_db\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectLimiter.get_threshold_db\n\n{-# NOINLINE bindAudioEffectLimiter_set_ceiling_db #-}\n\n-- | The waveform's maximum allowed value, in decibels. Value can range from -20 to -0.1.\nbindAudioEffectLimiter_set_ceiling_db :: MethodBind\nbindAudioEffectLimiter_set_ceiling_db\n  = unsafePerformIO $\n      withCString \"AudioEffectLimiter\" $\n        \\ clsNamePtr ->\n          withCString \"set_ceiling_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The waveform's maximum allowed value, in decibels. Value can range from -20 to -0.1.\nset_ceiling_db ::\n                 (AudioEffectLimiter :< cls, Object :< cls) => cls -> Float -> IO ()\nset_ceiling_db cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectLimiter_set_ceiling_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectLimiter \"set_ceiling_db\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectLimiter.set_ceiling_db\n\n{-# NOINLINE bindAudioEffectLimiter_set_soft_clip_db #-}\n\n-- | Applies a gain to the limited waves, in decibels. Value can range from 0 to 6.\nbindAudioEffectLimiter_set_soft_clip_db :: MethodBind\nbindAudioEffectLimiter_set_soft_clip_db\n  = unsafePerformIO $\n      withCString \"AudioEffectLimiter\" $\n        \\ clsNamePtr ->\n          withCString \"set_soft_clip_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies a gain to the limited waves, in decibels. Value can range from 0 to 6.\nset_soft_clip_db ::\n                   (AudioEffectLimiter :< cls, Object :< cls) => cls -> Float -> IO ()\nset_soft_clip_db cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectLimiter_set_soft_clip_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectLimiter \"set_soft_clip_db\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectLimiter.set_soft_clip_db\n\n{-# NOINLINE bindAudioEffectLimiter_set_soft_clip_ratio #-}\n\nbindAudioEffectLimiter_set_soft_clip_ratio :: MethodBind\nbindAudioEffectLimiter_set_soft_clip_ratio\n  = unsafePerformIO $\n      withCString \"AudioEffectLimiter\" $\n        \\ clsNamePtr ->\n          withCString \"set_soft_clip_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_soft_clip_ratio ::\n                      (AudioEffectLimiter :< cls, Object :< cls) => cls -> Float -> IO ()\nset_soft_clip_ratio cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectLimiter_set_soft_clip_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectLimiter \"set_soft_clip_ratio\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectLimiter.set_soft_clip_ratio\n\n{-# NOINLINE bindAudioEffectLimiter_set_threshold_db #-}\n\n-- | Threshold from which the limiter begins to be active, in decibels. Value can range from -30 to 0.\nbindAudioEffectLimiter_set_threshold_db :: MethodBind\nbindAudioEffectLimiter_set_threshold_db\n  = unsafePerformIO $\n      withCString \"AudioEffectLimiter\" $\n        \\ clsNamePtr ->\n          withCString \"set_threshold_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Threshold from which the limiter begins to be active, in decibels. Value can range from -30 to 0.\nset_threshold_db ::\n                   (AudioEffectLimiter :< cls, Object :< cls) => cls -> Float -> IO ()\nset_threshold_db cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectLimiter_set_threshold_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectLimiter \"set_threshold_db\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectLimiter.set_threshold_db"
  },
  {
    "path": "src/Godot/Core/AudioEffectLowPassFilter.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectLowPassFilter () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffectFilter()"
  },
  {
    "path": "src/Godot/Core/AudioEffectLowShelfFilter.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectLowShelfFilter () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffectFilter()"
  },
  {
    "path": "src/Godot/Core/AudioEffectNotchFilter.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectNotchFilter () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffectFilter()"
  },
  {
    "path": "src/Godot/Core/AudioEffectPanner.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectPanner\n       (Godot.Core.AudioEffectPanner.get_pan,\n        Godot.Core.AudioEffectPanner.set_pan)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffect()\n\ninstance NodeProperty AudioEffectPanner \"pan\" Float 'False where\n        nodeProperty = (get_pan, wrapDroppingSetter set_pan, Nothing)\n\n{-# NOINLINE bindAudioEffectPanner_get_pan #-}\n\n-- | Pan position. Value can range from -1 (fully left) to 1 (fully right).\nbindAudioEffectPanner_get_pan :: MethodBind\nbindAudioEffectPanner_get_pan\n  = unsafePerformIO $\n      withCString \"AudioEffectPanner\" $\n        \\ clsNamePtr ->\n          withCString \"get_pan\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Pan position. Value can range from -1 (fully left) to 1 (fully right).\nget_pan ::\n          (AudioEffectPanner :< cls, Object :< cls) => cls -> IO Float\nget_pan cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectPanner_get_pan (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectPanner \"get_pan\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectPanner.get_pan\n\n{-# NOINLINE bindAudioEffectPanner_set_pan #-}\n\n-- | Pan position. Value can range from -1 (fully left) to 1 (fully right).\nbindAudioEffectPanner_set_pan :: MethodBind\nbindAudioEffectPanner_set_pan\n  = unsafePerformIO $\n      withCString \"AudioEffectPanner\" $\n        \\ clsNamePtr ->\n          withCString \"set_pan\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Pan position. Value can range from -1 (fully left) to 1 (fully right).\nset_pan ::\n          (AudioEffectPanner :< cls, Object :< cls) => cls -> Float -> IO ()\nset_pan cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectPanner_set_pan (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectPanner \"set_pan\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectPanner.set_pan"
  },
  {
    "path": "src/Godot/Core/AudioEffectPhaser.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectPhaser\n       (Godot.Core.AudioEffectPhaser.get_depth,\n        Godot.Core.AudioEffectPhaser.get_feedback,\n        Godot.Core.AudioEffectPhaser.get_range_max_hz,\n        Godot.Core.AudioEffectPhaser.get_range_min_hz,\n        Godot.Core.AudioEffectPhaser.get_rate_hz,\n        Godot.Core.AudioEffectPhaser.set_depth,\n        Godot.Core.AudioEffectPhaser.set_feedback,\n        Godot.Core.AudioEffectPhaser.set_range_max_hz,\n        Godot.Core.AudioEffectPhaser.set_range_min_hz,\n        Godot.Core.AudioEffectPhaser.set_rate_hz)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffect()\n\ninstance NodeProperty AudioEffectPhaser \"depth\" Float 'False where\n        nodeProperty = (get_depth, wrapDroppingSetter set_depth, Nothing)\n\ninstance NodeProperty AudioEffectPhaser \"feedback\" Float 'False\n         where\n        nodeProperty\n          = (get_feedback, wrapDroppingSetter set_feedback, Nothing)\n\ninstance NodeProperty AudioEffectPhaser \"range_max_hz\" Float 'False\n         where\n        nodeProperty\n          = (get_range_max_hz, wrapDroppingSetter set_range_max_hz, Nothing)\n\ninstance NodeProperty AudioEffectPhaser \"range_min_hz\" Float 'False\n         where\n        nodeProperty\n          = (get_range_min_hz, wrapDroppingSetter set_range_min_hz, Nothing)\n\ninstance NodeProperty AudioEffectPhaser \"rate_hz\" Float 'False\n         where\n        nodeProperty\n          = (get_rate_hz, wrapDroppingSetter set_rate_hz, Nothing)\n\n{-# NOINLINE bindAudioEffectPhaser_get_depth #-}\n\n-- | Governs how high the filter frequencies sweep. Low value will primarily affect bass frequencies. High value can sweep high into the treble. Value can range from 0.1 to 4.\nbindAudioEffectPhaser_get_depth :: MethodBind\nbindAudioEffectPhaser_get_depth\n  = unsafePerformIO $\n      withCString \"AudioEffectPhaser\" $\n        \\ clsNamePtr ->\n          withCString \"get_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Governs how high the filter frequencies sweep. Low value will primarily affect bass frequencies. High value can sweep high into the treble. Value can range from 0.1 to 4.\nget_depth ::\n            (AudioEffectPhaser :< cls, Object :< cls) => cls -> IO Float\nget_depth cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectPhaser_get_depth (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectPhaser \"get_depth\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectPhaser.get_depth\n\n{-# NOINLINE bindAudioEffectPhaser_get_feedback #-}\n\n-- | Output percent of modified sound. Value can range from 0.1 to 0.9.\nbindAudioEffectPhaser_get_feedback :: MethodBind\nbindAudioEffectPhaser_get_feedback\n  = unsafePerformIO $\n      withCString \"AudioEffectPhaser\" $\n        \\ clsNamePtr ->\n          withCString \"get_feedback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Output percent of modified sound. Value can range from 0.1 to 0.9.\nget_feedback ::\n               (AudioEffectPhaser :< cls, Object :< cls) => cls -> IO Float\nget_feedback cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectPhaser_get_feedback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectPhaser \"get_feedback\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectPhaser.get_feedback\n\n{-# NOINLINE bindAudioEffectPhaser_get_range_max_hz #-}\n\n-- | Determines the maximum frequency affected by the LFO modulations, in Hz. Value can range from 10 to 10000.\nbindAudioEffectPhaser_get_range_max_hz :: MethodBind\nbindAudioEffectPhaser_get_range_max_hz\n  = unsafePerformIO $\n      withCString \"AudioEffectPhaser\" $\n        \\ clsNamePtr ->\n          withCString \"get_range_max_hz\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Determines the maximum frequency affected by the LFO modulations, in Hz. Value can range from 10 to 10000.\nget_range_max_hz ::\n                   (AudioEffectPhaser :< cls, Object :< cls) => cls -> IO Float\nget_range_max_hz cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectPhaser_get_range_max_hz\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectPhaser \"get_range_max_hz\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectPhaser.get_range_max_hz\n\n{-# NOINLINE bindAudioEffectPhaser_get_range_min_hz #-}\n\n-- | Determines the minimum frequency affected by the LFO modulations, in Hz. Value can range from 10 to 10000.\nbindAudioEffectPhaser_get_range_min_hz :: MethodBind\nbindAudioEffectPhaser_get_range_min_hz\n  = unsafePerformIO $\n      withCString \"AudioEffectPhaser\" $\n        \\ clsNamePtr ->\n          withCString \"get_range_min_hz\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Determines the minimum frequency affected by the LFO modulations, in Hz. Value can range from 10 to 10000.\nget_range_min_hz ::\n                   (AudioEffectPhaser :< cls, Object :< cls) => cls -> IO Float\nget_range_min_hz cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectPhaser_get_range_min_hz\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectPhaser \"get_range_min_hz\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectPhaser.get_range_min_hz\n\n{-# NOINLINE bindAudioEffectPhaser_get_rate_hz #-}\n\n-- | Adjusts the rate in Hz at which the effect sweeps up and down across the frequency range.\nbindAudioEffectPhaser_get_rate_hz :: MethodBind\nbindAudioEffectPhaser_get_rate_hz\n  = unsafePerformIO $\n      withCString \"AudioEffectPhaser\" $\n        \\ clsNamePtr ->\n          withCString \"get_rate_hz\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adjusts the rate in Hz at which the effect sweeps up and down across the frequency range.\nget_rate_hz ::\n              (AudioEffectPhaser :< cls, Object :< cls) => cls -> IO Float\nget_rate_hz cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectPhaser_get_rate_hz\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectPhaser \"get_rate_hz\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectPhaser.get_rate_hz\n\n{-# NOINLINE bindAudioEffectPhaser_set_depth #-}\n\n-- | Governs how high the filter frequencies sweep. Low value will primarily affect bass frequencies. High value can sweep high into the treble. Value can range from 0.1 to 4.\nbindAudioEffectPhaser_set_depth :: MethodBind\nbindAudioEffectPhaser_set_depth\n  = unsafePerformIO $\n      withCString \"AudioEffectPhaser\" $\n        \\ clsNamePtr ->\n          withCString \"set_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Governs how high the filter frequencies sweep. Low value will primarily affect bass frequencies. High value can sweep high into the treble. Value can range from 0.1 to 4.\nset_depth ::\n            (AudioEffectPhaser :< cls, Object :< cls) => cls -> Float -> IO ()\nset_depth cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectPhaser_set_depth (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectPhaser \"set_depth\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectPhaser.set_depth\n\n{-# NOINLINE bindAudioEffectPhaser_set_feedback #-}\n\n-- | Output percent of modified sound. Value can range from 0.1 to 0.9.\nbindAudioEffectPhaser_set_feedback :: MethodBind\nbindAudioEffectPhaser_set_feedback\n  = unsafePerformIO $\n      withCString \"AudioEffectPhaser\" $\n        \\ clsNamePtr ->\n          withCString \"set_feedback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Output percent of modified sound. Value can range from 0.1 to 0.9.\nset_feedback ::\n               (AudioEffectPhaser :< cls, Object :< cls) => cls -> Float -> IO ()\nset_feedback cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectPhaser_set_feedback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectPhaser \"set_feedback\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectPhaser.set_feedback\n\n{-# NOINLINE bindAudioEffectPhaser_set_range_max_hz #-}\n\n-- | Determines the maximum frequency affected by the LFO modulations, in Hz. Value can range from 10 to 10000.\nbindAudioEffectPhaser_set_range_max_hz :: MethodBind\nbindAudioEffectPhaser_set_range_max_hz\n  = unsafePerformIO $\n      withCString \"AudioEffectPhaser\" $\n        \\ clsNamePtr ->\n          withCString \"set_range_max_hz\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Determines the maximum frequency affected by the LFO modulations, in Hz. Value can range from 10 to 10000.\nset_range_max_hz ::\n                   (AudioEffectPhaser :< cls, Object :< cls) => cls -> Float -> IO ()\nset_range_max_hz cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectPhaser_set_range_max_hz\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectPhaser \"set_range_max_hz\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectPhaser.set_range_max_hz\n\n{-# NOINLINE bindAudioEffectPhaser_set_range_min_hz #-}\n\n-- | Determines the minimum frequency affected by the LFO modulations, in Hz. Value can range from 10 to 10000.\nbindAudioEffectPhaser_set_range_min_hz :: MethodBind\nbindAudioEffectPhaser_set_range_min_hz\n  = unsafePerformIO $\n      withCString \"AudioEffectPhaser\" $\n        \\ clsNamePtr ->\n          withCString \"set_range_min_hz\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Determines the minimum frequency affected by the LFO modulations, in Hz. Value can range from 10 to 10000.\nset_range_min_hz ::\n                   (AudioEffectPhaser :< cls, Object :< cls) => cls -> Float -> IO ()\nset_range_min_hz cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectPhaser_set_range_min_hz\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectPhaser \"set_range_min_hz\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectPhaser.set_range_min_hz\n\n{-# NOINLINE bindAudioEffectPhaser_set_rate_hz #-}\n\n-- | Adjusts the rate in Hz at which the effect sweeps up and down across the frequency range.\nbindAudioEffectPhaser_set_rate_hz :: MethodBind\nbindAudioEffectPhaser_set_rate_hz\n  = unsafePerformIO $\n      withCString \"AudioEffectPhaser\" $\n        \\ clsNamePtr ->\n          withCString \"set_rate_hz\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adjusts the rate in Hz at which the effect sweeps up and down across the frequency range.\nset_rate_hz ::\n              (AudioEffectPhaser :< cls, Object :< cls) => cls -> Float -> IO ()\nset_rate_hz cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectPhaser_set_rate_hz\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectPhaser \"set_rate_hz\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectPhaser.set_rate_hz"
  },
  {
    "path": "src/Godot/Core/AudioEffectPitchShift.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectPitchShift\n       (Godot.Core.AudioEffectPitchShift._FFT_SIZE_2048,\n        Godot.Core.AudioEffectPitchShift._FFT_SIZE_4096,\n        Godot.Core.AudioEffectPitchShift._FFT_SIZE_MAX,\n        Godot.Core.AudioEffectPitchShift._FFT_SIZE_512,\n        Godot.Core.AudioEffectPitchShift._FFT_SIZE_256,\n        Godot.Core.AudioEffectPitchShift._FFT_SIZE_1024,\n        Godot.Core.AudioEffectPitchShift.get_fft_size,\n        Godot.Core.AudioEffectPitchShift.get_oversampling,\n        Godot.Core.AudioEffectPitchShift.get_pitch_scale,\n        Godot.Core.AudioEffectPitchShift.set_fft_size,\n        Godot.Core.AudioEffectPitchShift.set_oversampling,\n        Godot.Core.AudioEffectPitchShift.set_pitch_scale)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffect()\n\n_FFT_SIZE_2048 :: Int\n_FFT_SIZE_2048 = 3\n\n_FFT_SIZE_4096 :: Int\n_FFT_SIZE_4096 = 4\n\n_FFT_SIZE_MAX :: Int\n_FFT_SIZE_MAX = 5\n\n_FFT_SIZE_512 :: Int\n_FFT_SIZE_512 = 1\n\n_FFT_SIZE_256 :: Int\n_FFT_SIZE_256 = 0\n\n_FFT_SIZE_1024 :: Int\n_FFT_SIZE_1024 = 2\n\ninstance NodeProperty AudioEffectPitchShift \"fft_size\" Int 'False\n         where\n        nodeProperty\n          = (get_fft_size, wrapDroppingSetter set_fft_size, Nothing)\n\ninstance NodeProperty AudioEffectPitchShift \"oversampling\" Int\n           'False\n         where\n        nodeProperty\n          = (get_oversampling, wrapDroppingSetter set_oversampling, Nothing)\n\ninstance NodeProperty AudioEffectPitchShift \"pitch_scale\" Float\n           'False\n         where\n        nodeProperty\n          = (get_pitch_scale, wrapDroppingSetter set_pitch_scale, Nothing)\n\n{-# NOINLINE bindAudioEffectPitchShift_get_fft_size #-}\n\nbindAudioEffectPitchShift_get_fft_size :: MethodBind\nbindAudioEffectPitchShift_get_fft_size\n  = unsafePerformIO $\n      withCString \"AudioEffectPitchShift\" $\n        \\ clsNamePtr ->\n          withCString \"get_fft_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_fft_size ::\n               (AudioEffectPitchShift :< cls, Object :< cls) => cls -> IO Int\nget_fft_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectPitchShift_get_fft_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectPitchShift \"get_fft_size\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioEffectPitchShift.get_fft_size\n\n{-# NOINLINE bindAudioEffectPitchShift_get_oversampling #-}\n\nbindAudioEffectPitchShift_get_oversampling :: MethodBind\nbindAudioEffectPitchShift_get_oversampling\n  = unsafePerformIO $\n      withCString \"AudioEffectPitchShift\" $\n        \\ clsNamePtr ->\n          withCString \"get_oversampling\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_oversampling ::\n                   (AudioEffectPitchShift :< cls, Object :< cls) => cls -> IO Int\nget_oversampling cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectPitchShift_get_oversampling\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectPitchShift \"get_oversampling\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioEffectPitchShift.get_oversampling\n\n{-# NOINLINE bindAudioEffectPitchShift_get_pitch_scale #-}\n\n-- | Pitch value. Can range from 0 (-1 octave) to 16 (+16 octaves).\nbindAudioEffectPitchShift_get_pitch_scale :: MethodBind\nbindAudioEffectPitchShift_get_pitch_scale\n  = unsafePerformIO $\n      withCString \"AudioEffectPitchShift\" $\n        \\ clsNamePtr ->\n          withCString \"get_pitch_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Pitch value. Can range from 0 (-1 octave) to 16 (+16 octaves).\nget_pitch_scale ::\n                  (AudioEffectPitchShift :< cls, Object :< cls) => cls -> IO Float\nget_pitch_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectPitchShift_get_pitch_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectPitchShift \"get_pitch_scale\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectPitchShift.get_pitch_scale\n\n{-# NOINLINE bindAudioEffectPitchShift_set_fft_size #-}\n\nbindAudioEffectPitchShift_set_fft_size :: MethodBind\nbindAudioEffectPitchShift_set_fft_size\n  = unsafePerformIO $\n      withCString \"AudioEffectPitchShift\" $\n        \\ clsNamePtr ->\n          withCString \"set_fft_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_fft_size ::\n               (AudioEffectPitchShift :< cls, Object :< cls) =>\n               cls -> Int -> IO ()\nset_fft_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectPitchShift_set_fft_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectPitchShift \"set_fft_size\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectPitchShift.set_fft_size\n\n{-# NOINLINE bindAudioEffectPitchShift_set_oversampling #-}\n\nbindAudioEffectPitchShift_set_oversampling :: MethodBind\nbindAudioEffectPitchShift_set_oversampling\n  = unsafePerformIO $\n      withCString \"AudioEffectPitchShift\" $\n        \\ clsNamePtr ->\n          withCString \"set_oversampling\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_oversampling ::\n                   (AudioEffectPitchShift :< cls, Object :< cls) =>\n                   cls -> Int -> IO ()\nset_oversampling cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectPitchShift_set_oversampling\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectPitchShift \"set_oversampling\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectPitchShift.set_oversampling\n\n{-# NOINLINE bindAudioEffectPitchShift_set_pitch_scale #-}\n\n-- | Pitch value. Can range from 0 (-1 octave) to 16 (+16 octaves).\nbindAudioEffectPitchShift_set_pitch_scale :: MethodBind\nbindAudioEffectPitchShift_set_pitch_scale\n  = unsafePerformIO $\n      withCString \"AudioEffectPitchShift\" $\n        \\ clsNamePtr ->\n          withCString \"set_pitch_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Pitch value. Can range from 0 (-1 octave) to 16 (+16 octaves).\nset_pitch_scale ::\n                  (AudioEffectPitchShift :< cls, Object :< cls) =>\n                  cls -> Float -> IO ()\nset_pitch_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectPitchShift_set_pitch_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectPitchShift \"set_pitch_scale\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectPitchShift.set_pitch_scale"
  },
  {
    "path": "src/Godot/Core/AudioEffectRecord.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectRecord\n       (Godot.Core.AudioEffectRecord.get_format,\n        Godot.Core.AudioEffectRecord.get_recording,\n        Godot.Core.AudioEffectRecord.is_recording_active,\n        Godot.Core.AudioEffectRecord.set_format,\n        Godot.Core.AudioEffectRecord.set_recording_active)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffect()\n\ninstance NodeProperty AudioEffectRecord \"format\" Int 'False where\n        nodeProperty = (get_format, wrapDroppingSetter set_format, Nothing)\n\n{-# NOINLINE bindAudioEffectRecord_get_format #-}\n\n-- | Specifies the format in which the sample will be recorded. See @enum AudioStreamSample.Format@ for available formats.\nbindAudioEffectRecord_get_format :: MethodBind\nbindAudioEffectRecord_get_format\n  = unsafePerformIO $\n      withCString \"AudioEffectRecord\" $\n        \\ clsNamePtr ->\n          withCString \"get_format\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies the format in which the sample will be recorded. See @enum AudioStreamSample.Format@ for available formats.\nget_format ::\n             (AudioEffectRecord :< cls, Object :< cls) => cls -> IO Int\nget_format cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectRecord_get_format\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectRecord \"get_format\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioEffectRecord.get_format\n\n{-# NOINLINE bindAudioEffectRecord_get_recording #-}\n\n-- | Returns the recorded sample.\nbindAudioEffectRecord_get_recording :: MethodBind\nbindAudioEffectRecord_get_recording\n  = unsafePerformIO $\n      withCString \"AudioEffectRecord\" $\n        \\ clsNamePtr ->\n          withCString \"get_recording\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the recorded sample.\nget_recording ::\n                (AudioEffectRecord :< cls, Object :< cls) =>\n                cls -> IO AudioStreamSample\nget_recording cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectRecord_get_recording\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectRecord \"get_recording\" '[]\n           (IO AudioStreamSample)\n         where\n        nodeMethod = Godot.Core.AudioEffectRecord.get_recording\n\n{-# NOINLINE bindAudioEffectRecord_is_recording_active #-}\n\n-- | Returns whether the recording is active or not.\nbindAudioEffectRecord_is_recording_active :: MethodBind\nbindAudioEffectRecord_is_recording_active\n  = unsafePerformIO $\n      withCString \"AudioEffectRecord\" $\n        \\ clsNamePtr ->\n          withCString \"is_recording_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether the recording is active or not.\nis_recording_active ::\n                      (AudioEffectRecord :< cls, Object :< cls) => cls -> IO Bool\nis_recording_active cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectRecord_is_recording_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectRecord \"is_recording_active\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioEffectRecord.is_recording_active\n\n{-# NOINLINE bindAudioEffectRecord_set_format #-}\n\n-- | Specifies the format in which the sample will be recorded. See @enum AudioStreamSample.Format@ for available formats.\nbindAudioEffectRecord_set_format :: MethodBind\nbindAudioEffectRecord_set_format\n  = unsafePerformIO $\n      withCString \"AudioEffectRecord\" $\n        \\ clsNamePtr ->\n          withCString \"set_format\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies the format in which the sample will be recorded. See @enum AudioStreamSample.Format@ for available formats.\nset_format ::\n             (AudioEffectRecord :< cls, Object :< cls) => cls -> Int -> IO ()\nset_format cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectRecord_set_format\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectRecord \"set_format\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectRecord.set_format\n\n{-# NOINLINE bindAudioEffectRecord_set_recording_active #-}\n\n-- | If @true@, the sound will be recorded. Note that restarting the recording will remove the previously recorded sample.\nbindAudioEffectRecord_set_recording_active :: MethodBind\nbindAudioEffectRecord_set_recording_active\n  = unsafePerformIO $\n      withCString \"AudioEffectRecord\" $\n        \\ clsNamePtr ->\n          withCString \"set_recording_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the sound will be recorded. Note that restarting the recording will remove the previously recorded sample.\nset_recording_active ::\n                       (AudioEffectRecord :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_recording_active cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectRecord_set_recording_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectRecord \"set_recording_active\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectRecord.set_recording_active"
  },
  {
    "path": "src/Godot/Core/AudioEffectReverb.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectReverb\n       (Godot.Core.AudioEffectReverb.get_damping,\n        Godot.Core.AudioEffectReverb.get_dry,\n        Godot.Core.AudioEffectReverb.get_hpf,\n        Godot.Core.AudioEffectReverb.get_predelay_feedback,\n        Godot.Core.AudioEffectReverb.get_predelay_msec,\n        Godot.Core.AudioEffectReverb.get_room_size,\n        Godot.Core.AudioEffectReverb.get_spread,\n        Godot.Core.AudioEffectReverb.get_wet,\n        Godot.Core.AudioEffectReverb.set_damping,\n        Godot.Core.AudioEffectReverb.set_dry,\n        Godot.Core.AudioEffectReverb.set_hpf,\n        Godot.Core.AudioEffectReverb.set_predelay_feedback,\n        Godot.Core.AudioEffectReverb.set_predelay_msec,\n        Godot.Core.AudioEffectReverb.set_room_size,\n        Godot.Core.AudioEffectReverb.set_spread,\n        Godot.Core.AudioEffectReverb.set_wet)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffect()\n\ninstance NodeProperty AudioEffectReverb \"damping\" Float 'False\n         where\n        nodeProperty\n          = (get_damping, wrapDroppingSetter set_damping, Nothing)\n\ninstance NodeProperty AudioEffectReverb \"dry\" Float 'False where\n        nodeProperty = (get_dry, wrapDroppingSetter set_dry, Nothing)\n\ninstance NodeProperty AudioEffectReverb \"hipass\" Float 'False where\n        nodeProperty = (get_hpf, wrapDroppingSetter set_hpf, Nothing)\n\ninstance NodeProperty AudioEffectReverb \"predelay_feedback\" Float\n           'False\n         where\n        nodeProperty\n          = (get_predelay_feedback, wrapDroppingSetter set_predelay_feedback,\n             Nothing)\n\ninstance NodeProperty AudioEffectReverb \"predelay_msec\" Float\n           'False\n         where\n        nodeProperty\n          = (get_predelay_msec, wrapDroppingSetter set_predelay_msec,\n             Nothing)\n\ninstance NodeProperty AudioEffectReverb \"room_size\" Float 'False\n         where\n        nodeProperty\n          = (get_room_size, wrapDroppingSetter set_room_size, Nothing)\n\ninstance NodeProperty AudioEffectReverb \"spread\" Float 'False where\n        nodeProperty = (get_spread, wrapDroppingSetter set_spread, Nothing)\n\ninstance NodeProperty AudioEffectReverb \"wet\" Float 'False where\n        nodeProperty = (get_wet, wrapDroppingSetter set_wet, Nothing)\n\n{-# NOINLINE bindAudioEffectReverb_get_damping #-}\n\n-- | Defines how reflective the imaginary room's walls are. Value can range from 0 to 1.\nbindAudioEffectReverb_get_damping :: MethodBind\nbindAudioEffectReverb_get_damping\n  = unsafePerformIO $\n      withCString \"AudioEffectReverb\" $\n        \\ clsNamePtr ->\n          withCString \"get_damping\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines how reflective the imaginary room's walls are. Value can range from 0 to 1.\nget_damping ::\n              (AudioEffectReverb :< cls, Object :< cls) => cls -> IO Float\nget_damping cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectReverb_get_damping\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectReverb \"get_damping\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectReverb.get_damping\n\n{-# NOINLINE bindAudioEffectReverb_get_dry #-}\n\n-- | Output percent of original sound. At 0, only modified sound is outputted. Value can range from 0 to 1.\nbindAudioEffectReverb_get_dry :: MethodBind\nbindAudioEffectReverb_get_dry\n  = unsafePerformIO $\n      withCString \"AudioEffectReverb\" $\n        \\ clsNamePtr ->\n          withCString \"get_dry\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Output percent of original sound. At 0, only modified sound is outputted. Value can range from 0 to 1.\nget_dry ::\n          (AudioEffectReverb :< cls, Object :< cls) => cls -> IO Float\nget_dry cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectReverb_get_dry (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectReverb \"get_dry\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectReverb.get_dry\n\n{-# NOINLINE bindAudioEffectReverb_get_hpf #-}\n\n-- | High-pass filter passes signals with a frequency higher than a certain cutoff frequency and attenuates signals with frequencies lower than the cutoff frequency. Value can range from 0 to 1.\nbindAudioEffectReverb_get_hpf :: MethodBind\nbindAudioEffectReverb_get_hpf\n  = unsafePerformIO $\n      withCString \"AudioEffectReverb\" $\n        \\ clsNamePtr ->\n          withCString \"get_hpf\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | High-pass filter passes signals with a frequency higher than a certain cutoff frequency and attenuates signals with frequencies lower than the cutoff frequency. Value can range from 0 to 1.\nget_hpf ::\n          (AudioEffectReverb :< cls, Object :< cls) => cls -> IO Float\nget_hpf cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectReverb_get_hpf (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectReverb \"get_hpf\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectReverb.get_hpf\n\n{-# NOINLINE bindAudioEffectReverb_get_predelay_feedback #-}\n\n-- | Output percent of predelay. Value can range from 0 to 1.\nbindAudioEffectReverb_get_predelay_feedback :: MethodBind\nbindAudioEffectReverb_get_predelay_feedback\n  = unsafePerformIO $\n      withCString \"AudioEffectReverb\" $\n        \\ clsNamePtr ->\n          withCString \"get_predelay_feedback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Output percent of predelay. Value can range from 0 to 1.\nget_predelay_feedback ::\n                        (AudioEffectReverb :< cls, Object :< cls) => cls -> IO Float\nget_predelay_feedback cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectReverb_get_predelay_feedback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectReverb \"get_predelay_feedback\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectReverb.get_predelay_feedback\n\n{-# NOINLINE bindAudioEffectReverb_get_predelay_msec #-}\n\n-- | Time between the original signal and the early reflections of the reverb signal, in milliseconds.\nbindAudioEffectReverb_get_predelay_msec :: MethodBind\nbindAudioEffectReverb_get_predelay_msec\n  = unsafePerformIO $\n      withCString \"AudioEffectReverb\" $\n        \\ clsNamePtr ->\n          withCString \"get_predelay_msec\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Time between the original signal and the early reflections of the reverb signal, in milliseconds.\nget_predelay_msec ::\n                    (AudioEffectReverb :< cls, Object :< cls) => cls -> IO Float\nget_predelay_msec cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectReverb_get_predelay_msec\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectReverb \"get_predelay_msec\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectReverb.get_predelay_msec\n\n{-# NOINLINE bindAudioEffectReverb_get_room_size #-}\n\n-- | Dimensions of simulated room. Bigger means more echoes. Value can range from 0 to 1.\nbindAudioEffectReverb_get_room_size :: MethodBind\nbindAudioEffectReverb_get_room_size\n  = unsafePerformIO $\n      withCString \"AudioEffectReverb\" $\n        \\ clsNamePtr ->\n          withCString \"get_room_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Dimensions of simulated room. Bigger means more echoes. Value can range from 0 to 1.\nget_room_size ::\n                (AudioEffectReverb :< cls, Object :< cls) => cls -> IO Float\nget_room_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectReverb_get_room_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectReverb \"get_room_size\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectReverb.get_room_size\n\n{-# NOINLINE bindAudioEffectReverb_get_spread #-}\n\n-- | Widens or narrows the stereo image of the reverb tail. 1 means fully widens. Value can range from 0 to 1.\nbindAudioEffectReverb_get_spread :: MethodBind\nbindAudioEffectReverb_get_spread\n  = unsafePerformIO $\n      withCString \"AudioEffectReverb\" $\n        \\ clsNamePtr ->\n          withCString \"get_spread\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Widens or narrows the stereo image of the reverb tail. 1 means fully widens. Value can range from 0 to 1.\nget_spread ::\n             (AudioEffectReverb :< cls, Object :< cls) => cls -> IO Float\nget_spread cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectReverb_get_spread\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectReverb \"get_spread\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectReverb.get_spread\n\n{-# NOINLINE bindAudioEffectReverb_get_wet #-}\n\n-- | Output percent of modified sound. At 0, only original sound is outputted. Value can range from 0 to 1.\nbindAudioEffectReverb_get_wet :: MethodBind\nbindAudioEffectReverb_get_wet\n  = unsafePerformIO $\n      withCString \"AudioEffectReverb\" $\n        \\ clsNamePtr ->\n          withCString \"get_wet\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Output percent of modified sound. At 0, only original sound is outputted. Value can range from 0 to 1.\nget_wet ::\n          (AudioEffectReverb :< cls, Object :< cls) => cls -> IO Float\nget_wet cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectReverb_get_wet (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectReverb \"get_wet\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectReverb.get_wet\n\n{-# NOINLINE bindAudioEffectReverb_set_damping #-}\n\n-- | Defines how reflective the imaginary room's walls are. Value can range from 0 to 1.\nbindAudioEffectReverb_set_damping :: MethodBind\nbindAudioEffectReverb_set_damping\n  = unsafePerformIO $\n      withCString \"AudioEffectReverb\" $\n        \\ clsNamePtr ->\n          withCString \"set_damping\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines how reflective the imaginary room's walls are. Value can range from 0 to 1.\nset_damping ::\n              (AudioEffectReverb :< cls, Object :< cls) => cls -> Float -> IO ()\nset_damping cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectReverb_set_damping\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectReverb \"set_damping\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectReverb.set_damping\n\n{-# NOINLINE bindAudioEffectReverb_set_dry #-}\n\n-- | Output percent of original sound. At 0, only modified sound is outputted. Value can range from 0 to 1.\nbindAudioEffectReverb_set_dry :: MethodBind\nbindAudioEffectReverb_set_dry\n  = unsafePerformIO $\n      withCString \"AudioEffectReverb\" $\n        \\ clsNamePtr ->\n          withCString \"set_dry\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Output percent of original sound. At 0, only modified sound is outputted. Value can range from 0 to 1.\nset_dry ::\n          (AudioEffectReverb :< cls, Object :< cls) => cls -> Float -> IO ()\nset_dry cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectReverb_set_dry (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectReverb \"set_dry\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectReverb.set_dry\n\n{-# NOINLINE bindAudioEffectReverb_set_hpf #-}\n\n-- | High-pass filter passes signals with a frequency higher than a certain cutoff frequency and attenuates signals with frequencies lower than the cutoff frequency. Value can range from 0 to 1.\nbindAudioEffectReverb_set_hpf :: MethodBind\nbindAudioEffectReverb_set_hpf\n  = unsafePerformIO $\n      withCString \"AudioEffectReverb\" $\n        \\ clsNamePtr ->\n          withCString \"set_hpf\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | High-pass filter passes signals with a frequency higher than a certain cutoff frequency and attenuates signals with frequencies lower than the cutoff frequency. Value can range from 0 to 1.\nset_hpf ::\n          (AudioEffectReverb :< cls, Object :< cls) => cls -> Float -> IO ()\nset_hpf cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectReverb_set_hpf (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectReverb \"set_hpf\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectReverb.set_hpf\n\n{-# NOINLINE bindAudioEffectReverb_set_predelay_feedback #-}\n\n-- | Output percent of predelay. Value can range from 0 to 1.\nbindAudioEffectReverb_set_predelay_feedback :: MethodBind\nbindAudioEffectReverb_set_predelay_feedback\n  = unsafePerformIO $\n      withCString \"AudioEffectReverb\" $\n        \\ clsNamePtr ->\n          withCString \"set_predelay_feedback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Output percent of predelay. Value can range from 0 to 1.\nset_predelay_feedback ::\n                        (AudioEffectReverb :< cls, Object :< cls) => cls -> Float -> IO ()\nset_predelay_feedback cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectReverb_set_predelay_feedback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectReverb \"set_predelay_feedback\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectReverb.set_predelay_feedback\n\n{-# NOINLINE bindAudioEffectReverb_set_predelay_msec #-}\n\n-- | Time between the original signal and the early reflections of the reverb signal, in milliseconds.\nbindAudioEffectReverb_set_predelay_msec :: MethodBind\nbindAudioEffectReverb_set_predelay_msec\n  = unsafePerformIO $\n      withCString \"AudioEffectReverb\" $\n        \\ clsNamePtr ->\n          withCString \"set_predelay_msec\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Time between the original signal and the early reflections of the reverb signal, in milliseconds.\nset_predelay_msec ::\n                    (AudioEffectReverb :< cls, Object :< cls) => cls -> Float -> IO ()\nset_predelay_msec cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectReverb_set_predelay_msec\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectReverb \"set_predelay_msec\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectReverb.set_predelay_msec\n\n{-# NOINLINE bindAudioEffectReverb_set_room_size #-}\n\n-- | Dimensions of simulated room. Bigger means more echoes. Value can range from 0 to 1.\nbindAudioEffectReverb_set_room_size :: MethodBind\nbindAudioEffectReverb_set_room_size\n  = unsafePerformIO $\n      withCString \"AudioEffectReverb\" $\n        \\ clsNamePtr ->\n          withCString \"set_room_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Dimensions of simulated room. Bigger means more echoes. Value can range from 0 to 1.\nset_room_size ::\n                (AudioEffectReverb :< cls, Object :< cls) => cls -> Float -> IO ()\nset_room_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectReverb_set_room_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectReverb \"set_room_size\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectReverb.set_room_size\n\n{-# NOINLINE bindAudioEffectReverb_set_spread #-}\n\n-- | Widens or narrows the stereo image of the reverb tail. 1 means fully widens. Value can range from 0 to 1.\nbindAudioEffectReverb_set_spread :: MethodBind\nbindAudioEffectReverb_set_spread\n  = unsafePerformIO $\n      withCString \"AudioEffectReverb\" $\n        \\ clsNamePtr ->\n          withCString \"set_spread\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Widens or narrows the stereo image of the reverb tail. 1 means fully widens. Value can range from 0 to 1.\nset_spread ::\n             (AudioEffectReverb :< cls, Object :< cls) => cls -> Float -> IO ()\nset_spread cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectReverb_set_spread\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectReverb \"set_spread\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectReverb.set_spread\n\n{-# NOINLINE bindAudioEffectReverb_set_wet #-}\n\n-- | Output percent of modified sound. At 0, only original sound is outputted. Value can range from 0 to 1.\nbindAudioEffectReverb_set_wet :: MethodBind\nbindAudioEffectReverb_set_wet\n  = unsafePerformIO $\n      withCString \"AudioEffectReverb\" $\n        \\ clsNamePtr ->\n          withCString \"set_wet\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Output percent of modified sound. At 0, only original sound is outputted. Value can range from 0 to 1.\nset_wet ::\n          (AudioEffectReverb :< cls, Object :< cls) => cls -> Float -> IO ()\nset_wet cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectReverb_set_wet (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectReverb \"set_wet\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectReverb.set_wet"
  },
  {
    "path": "src/Godot/Core/AudioEffectSpectrumAnalyzer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectSpectrumAnalyzer\n       (Godot.Core.AudioEffectSpectrumAnalyzer._FFT_SIZE_2048,\n        Godot.Core.AudioEffectSpectrumAnalyzer._FFT_SIZE_4096,\n        Godot.Core.AudioEffectSpectrumAnalyzer._FFT_SIZE_MAX,\n        Godot.Core.AudioEffectSpectrumAnalyzer._FFT_SIZE_512,\n        Godot.Core.AudioEffectSpectrumAnalyzer._FFT_SIZE_256,\n        Godot.Core.AudioEffectSpectrumAnalyzer._FFT_SIZE_1024,\n        Godot.Core.AudioEffectSpectrumAnalyzer.get_buffer_length,\n        Godot.Core.AudioEffectSpectrumAnalyzer.get_fft_size,\n        Godot.Core.AudioEffectSpectrumAnalyzer.get_tap_back_pos,\n        Godot.Core.AudioEffectSpectrumAnalyzer.set_buffer_length,\n        Godot.Core.AudioEffectSpectrumAnalyzer.set_fft_size,\n        Godot.Core.AudioEffectSpectrumAnalyzer.set_tap_back_pos)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffect()\n\n_FFT_SIZE_2048 :: Int\n_FFT_SIZE_2048 = 3\n\n_FFT_SIZE_4096 :: Int\n_FFT_SIZE_4096 = 4\n\n_FFT_SIZE_MAX :: Int\n_FFT_SIZE_MAX = 5\n\n_FFT_SIZE_512 :: Int\n_FFT_SIZE_512 = 1\n\n_FFT_SIZE_256 :: Int\n_FFT_SIZE_256 = 0\n\n_FFT_SIZE_1024 :: Int\n_FFT_SIZE_1024 = 2\n\ninstance NodeProperty AudioEffectSpectrumAnalyzer \"buffer_length\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_buffer_length, wrapDroppingSetter set_buffer_length,\n             Nothing)\n\ninstance NodeProperty AudioEffectSpectrumAnalyzer \"fft_size\" Int\n           'False\n         where\n        nodeProperty\n          = (get_fft_size, wrapDroppingSetter set_fft_size, Nothing)\n\ninstance NodeProperty AudioEffectSpectrumAnalyzer \"tap_back_pos\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_tap_back_pos, wrapDroppingSetter set_tap_back_pos, Nothing)\n\n{-# NOINLINE bindAudioEffectSpectrumAnalyzer_get_buffer_length #-}\n\nbindAudioEffectSpectrumAnalyzer_get_buffer_length :: MethodBind\nbindAudioEffectSpectrumAnalyzer_get_buffer_length\n  = unsafePerformIO $\n      withCString \"AudioEffectSpectrumAnalyzer\" $\n        \\ clsNamePtr ->\n          withCString \"get_buffer_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_buffer_length ::\n                    (AudioEffectSpectrumAnalyzer :< cls, Object :< cls) =>\n                    cls -> IO Float\nget_buffer_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioEffectSpectrumAnalyzer_get_buffer_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectSpectrumAnalyzer \"get_buffer_length\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.AudioEffectSpectrumAnalyzer.get_buffer_length\n\n{-# NOINLINE bindAudioEffectSpectrumAnalyzer_get_fft_size #-}\n\nbindAudioEffectSpectrumAnalyzer_get_fft_size :: MethodBind\nbindAudioEffectSpectrumAnalyzer_get_fft_size\n  = unsafePerformIO $\n      withCString \"AudioEffectSpectrumAnalyzer\" $\n        \\ clsNamePtr ->\n          withCString \"get_fft_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_fft_size ::\n               (AudioEffectSpectrumAnalyzer :< cls, Object :< cls) =>\n               cls -> IO Int\nget_fft_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectSpectrumAnalyzer_get_fft_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectSpectrumAnalyzer \"get_fft_size\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioEffectSpectrumAnalyzer.get_fft_size\n\n{-# NOINLINE bindAudioEffectSpectrumAnalyzer_get_tap_back_pos #-}\n\nbindAudioEffectSpectrumAnalyzer_get_tap_back_pos :: MethodBind\nbindAudioEffectSpectrumAnalyzer_get_tap_back_pos\n  = unsafePerformIO $\n      withCString \"AudioEffectSpectrumAnalyzer\" $\n        \\ clsNamePtr ->\n          withCString \"get_tap_back_pos\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_tap_back_pos ::\n                   (AudioEffectSpectrumAnalyzer :< cls, Object :< cls) =>\n                   cls -> IO Float\nget_tap_back_pos cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioEffectSpectrumAnalyzer_get_tap_back_pos\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectSpectrumAnalyzer \"get_tap_back_pos\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.AudioEffectSpectrumAnalyzer.get_tap_back_pos\n\n{-# NOINLINE bindAudioEffectSpectrumAnalyzer_set_buffer_length #-}\n\nbindAudioEffectSpectrumAnalyzer_set_buffer_length :: MethodBind\nbindAudioEffectSpectrumAnalyzer_set_buffer_length\n  = unsafePerformIO $\n      withCString \"AudioEffectSpectrumAnalyzer\" $\n        \\ clsNamePtr ->\n          withCString \"set_buffer_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_buffer_length ::\n                    (AudioEffectSpectrumAnalyzer :< cls, Object :< cls) =>\n                    cls -> Float -> IO ()\nset_buffer_length cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioEffectSpectrumAnalyzer_set_buffer_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectSpectrumAnalyzer \"set_buffer_length\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AudioEffectSpectrumAnalyzer.set_buffer_length\n\n{-# NOINLINE bindAudioEffectSpectrumAnalyzer_set_fft_size #-}\n\nbindAudioEffectSpectrumAnalyzer_set_fft_size :: MethodBind\nbindAudioEffectSpectrumAnalyzer_set_fft_size\n  = unsafePerformIO $\n      withCString \"AudioEffectSpectrumAnalyzer\" $\n        \\ clsNamePtr ->\n          withCString \"set_fft_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_fft_size ::\n               (AudioEffectSpectrumAnalyzer :< cls, Object :< cls) =>\n               cls -> Int -> IO ()\nset_fft_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectSpectrumAnalyzer_set_fft_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectSpectrumAnalyzer \"set_fft_size\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectSpectrumAnalyzer.set_fft_size\n\n{-# NOINLINE bindAudioEffectSpectrumAnalyzer_set_tap_back_pos #-}\n\nbindAudioEffectSpectrumAnalyzer_set_tap_back_pos :: MethodBind\nbindAudioEffectSpectrumAnalyzer_set_tap_back_pos\n  = unsafePerformIO $\n      withCString \"AudioEffectSpectrumAnalyzer\" $\n        \\ clsNamePtr ->\n          withCString \"set_tap_back_pos\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_tap_back_pos ::\n                   (AudioEffectSpectrumAnalyzer :< cls, Object :< cls) =>\n                   cls -> Float -> IO ()\nset_tap_back_pos cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioEffectSpectrumAnalyzer_set_tap_back_pos\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectSpectrumAnalyzer \"set_tap_back_pos\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AudioEffectSpectrumAnalyzer.set_tap_back_pos"
  },
  {
    "path": "src/Godot/Core/AudioEffectSpectrumAnalyzerInstance.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectSpectrumAnalyzerInstance\n       (Godot.Core.AudioEffectSpectrumAnalyzerInstance._MAGNITUDE_MAX,\n        Godot.Core.AudioEffectSpectrumAnalyzerInstance._MAGNITUDE_AVERAGE,\n        Godot.Core.AudioEffectSpectrumAnalyzerInstance.get_magnitude_for_frequency_range)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffectInstance()\n\n_MAGNITUDE_MAX :: Int\n_MAGNITUDE_MAX = 1\n\n_MAGNITUDE_AVERAGE :: Int\n_MAGNITUDE_AVERAGE = 0\n\n{-# NOINLINE bindAudioEffectSpectrumAnalyzerInstance_get_magnitude_for_frequency_range\n             #-}\n\nbindAudioEffectSpectrumAnalyzerInstance_get_magnitude_for_frequency_range ::\n                                                                          MethodBind\nbindAudioEffectSpectrumAnalyzerInstance_get_magnitude_for_frequency_range\n  = unsafePerformIO $\n      withCString \"AudioEffectSpectrumAnalyzerInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_magnitude_for_frequency_range\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_magnitude_for_frequency_range ::\n                                    (AudioEffectSpectrumAnalyzerInstance :< cls, Object :< cls) =>\n                                    cls -> Float -> Float -> Maybe Int -> IO Vector2\nget_magnitude_for_frequency_range cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (1)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioEffectSpectrumAnalyzerInstance_get_magnitude_for_frequency_range\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectSpectrumAnalyzerInstance\n           \"get_magnitude_for_frequency_range\"\n           '[Float, Float, Maybe Int]\n           (IO Vector2)\n         where\n        nodeMethod\n          = Godot.Core.AudioEffectSpectrumAnalyzerInstance.get_magnitude_for_frequency_range"
  },
  {
    "path": "src/Godot/Core/AudioEffectStereoEnhance.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioEffectStereoEnhance\n       (Godot.Core.AudioEffectStereoEnhance.get_pan_pullout,\n        Godot.Core.AudioEffectStereoEnhance.get_surround,\n        Godot.Core.AudioEffectStereoEnhance.get_time_pullout,\n        Godot.Core.AudioEffectStereoEnhance.set_pan_pullout,\n        Godot.Core.AudioEffectStereoEnhance.set_surround,\n        Godot.Core.AudioEffectStereoEnhance.set_time_pullout)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioEffect()\n\ninstance NodeProperty AudioEffectStereoEnhance \"pan_pullout\" Float\n           'False\n         where\n        nodeProperty\n          = (get_pan_pullout, wrapDroppingSetter set_pan_pullout, Nothing)\n\ninstance NodeProperty AudioEffectStereoEnhance \"surround\" Float\n           'False\n         where\n        nodeProperty\n          = (get_surround, wrapDroppingSetter set_surround, Nothing)\n\ninstance NodeProperty AudioEffectStereoEnhance \"time_pullout_ms\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_time_pullout, wrapDroppingSetter set_time_pullout, Nothing)\n\n{-# NOINLINE bindAudioEffectStereoEnhance_get_pan_pullout #-}\n\nbindAudioEffectStereoEnhance_get_pan_pullout :: MethodBind\nbindAudioEffectStereoEnhance_get_pan_pullout\n  = unsafePerformIO $\n      withCString \"AudioEffectStereoEnhance\" $\n        \\ clsNamePtr ->\n          withCString \"get_pan_pullout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_pan_pullout ::\n                  (AudioEffectStereoEnhance :< cls, Object :< cls) => cls -> IO Float\nget_pan_pullout cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectStereoEnhance_get_pan_pullout\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectStereoEnhance \"get_pan_pullout\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectStereoEnhance.get_pan_pullout\n\n{-# NOINLINE bindAudioEffectStereoEnhance_get_surround #-}\n\nbindAudioEffectStereoEnhance_get_surround :: MethodBind\nbindAudioEffectStereoEnhance_get_surround\n  = unsafePerformIO $\n      withCString \"AudioEffectStereoEnhance\" $\n        \\ clsNamePtr ->\n          withCString \"get_surround\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_surround ::\n               (AudioEffectStereoEnhance :< cls, Object :< cls) => cls -> IO Float\nget_surround cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectStereoEnhance_get_surround\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectStereoEnhance \"get_surround\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectStereoEnhance.get_surround\n\n{-# NOINLINE bindAudioEffectStereoEnhance_get_time_pullout #-}\n\nbindAudioEffectStereoEnhance_get_time_pullout :: MethodBind\nbindAudioEffectStereoEnhance_get_time_pullout\n  = unsafePerformIO $\n      withCString \"AudioEffectStereoEnhance\" $\n        \\ clsNamePtr ->\n          withCString \"get_time_pullout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_time_pullout ::\n                   (AudioEffectStereoEnhance :< cls, Object :< cls) => cls -> IO Float\nget_time_pullout cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioEffectStereoEnhance_get_time_pullout\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectStereoEnhance \"get_time_pullout\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioEffectStereoEnhance.get_time_pullout\n\n{-# NOINLINE bindAudioEffectStereoEnhance_set_pan_pullout #-}\n\nbindAudioEffectStereoEnhance_set_pan_pullout :: MethodBind\nbindAudioEffectStereoEnhance_set_pan_pullout\n  = unsafePerformIO $\n      withCString \"AudioEffectStereoEnhance\" $\n        \\ clsNamePtr ->\n          withCString \"set_pan_pullout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_pan_pullout ::\n                  (AudioEffectStereoEnhance :< cls, Object :< cls) =>\n                  cls -> Float -> IO ()\nset_pan_pullout cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectStereoEnhance_set_pan_pullout\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectStereoEnhance \"set_pan_pullout\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectStereoEnhance.set_pan_pullout\n\n{-# NOINLINE bindAudioEffectStereoEnhance_set_surround #-}\n\nbindAudioEffectStereoEnhance_set_surround :: MethodBind\nbindAudioEffectStereoEnhance_set_surround\n  = unsafePerformIO $\n      withCString \"AudioEffectStereoEnhance\" $\n        \\ clsNamePtr ->\n          withCString \"set_surround\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_surround ::\n               (AudioEffectStereoEnhance :< cls, Object :< cls) =>\n               cls -> Float -> IO ()\nset_surround cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioEffectStereoEnhance_set_surround\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectStereoEnhance \"set_surround\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectStereoEnhance.set_surround\n\n{-# NOINLINE bindAudioEffectStereoEnhance_set_time_pullout #-}\n\nbindAudioEffectStereoEnhance_set_time_pullout :: MethodBind\nbindAudioEffectStereoEnhance_set_time_pullout\n  = unsafePerformIO $\n      withCString \"AudioEffectStereoEnhance\" $\n        \\ clsNamePtr ->\n          withCString \"set_time_pullout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_time_pullout ::\n                   (AudioEffectStereoEnhance :< cls, Object :< cls) =>\n                   cls -> Float -> IO ()\nset_time_pullout cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioEffectStereoEnhance_set_time_pullout\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioEffectStereoEnhance \"set_time_pullout\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioEffectStereoEnhance.set_time_pullout"
  },
  {
    "path": "src/Godot/Core/AudioServer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioServer\n       (Godot.Core.AudioServer._SPEAKER_SURROUND_71,\n        Godot.Core.AudioServer._SPEAKER_SURROUND_31,\n        Godot.Core.AudioServer._SPEAKER_MODE_STEREO,\n        Godot.Core.AudioServer._SPEAKER_SURROUND_51,\n        Godot.Core.AudioServer.sig_bus_layout_changed,\n        Godot.Core.AudioServer.add_bus,\n        Godot.Core.AudioServer.add_bus_effect,\n        Godot.Core.AudioServer.capture_get_device,\n        Godot.Core.AudioServer.capture_get_device_list,\n        Godot.Core.AudioServer.capture_set_device,\n        Godot.Core.AudioServer.generate_bus_layout,\n        Godot.Core.AudioServer.get_bus_channels,\n        Godot.Core.AudioServer.get_bus_count,\n        Godot.Core.AudioServer.get_bus_effect,\n        Godot.Core.AudioServer.get_bus_effect_count,\n        Godot.Core.AudioServer.get_bus_effect_instance,\n        Godot.Core.AudioServer.get_bus_index,\n        Godot.Core.AudioServer.get_bus_name,\n        Godot.Core.AudioServer.get_bus_peak_volume_left_db,\n        Godot.Core.AudioServer.get_bus_peak_volume_right_db,\n        Godot.Core.AudioServer.get_bus_send,\n        Godot.Core.AudioServer.get_bus_volume_db,\n        Godot.Core.AudioServer.get_device,\n        Godot.Core.AudioServer.get_device_list,\n        Godot.Core.AudioServer.get_global_rate_scale,\n        Godot.Core.AudioServer.get_mix_rate,\n        Godot.Core.AudioServer.get_output_latency,\n        Godot.Core.AudioServer.get_speaker_mode,\n        Godot.Core.AudioServer.get_time_since_last_mix,\n        Godot.Core.AudioServer.get_time_to_next_mix,\n        Godot.Core.AudioServer.is_bus_bypassing_effects,\n        Godot.Core.AudioServer.is_bus_effect_enabled,\n        Godot.Core.AudioServer.is_bus_mute,\n        Godot.Core.AudioServer.is_bus_solo, Godot.Core.AudioServer.lock,\n        Godot.Core.AudioServer.move_bus, Godot.Core.AudioServer.remove_bus,\n        Godot.Core.AudioServer.remove_bus_effect,\n        Godot.Core.AudioServer.set_bus_bypass_effects,\n        Godot.Core.AudioServer.set_bus_count,\n        Godot.Core.AudioServer.set_bus_effect_enabled,\n        Godot.Core.AudioServer.set_bus_layout,\n        Godot.Core.AudioServer.set_bus_mute,\n        Godot.Core.AudioServer.set_bus_name,\n        Godot.Core.AudioServer.set_bus_send,\n        Godot.Core.AudioServer.set_bus_solo,\n        Godot.Core.AudioServer.set_bus_volume_db,\n        Godot.Core.AudioServer.set_device,\n        Godot.Core.AudioServer.set_global_rate_scale,\n        Godot.Core.AudioServer.swap_bus_effects,\n        Godot.Core.AudioServer.unlock)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n_SPEAKER_SURROUND_71 :: Int\n_SPEAKER_SURROUND_71 = 3\n\n_SPEAKER_SURROUND_31 :: Int\n_SPEAKER_SURROUND_31 = 1\n\n_SPEAKER_MODE_STEREO :: Int\n_SPEAKER_MODE_STEREO = 0\n\n_SPEAKER_SURROUND_51 :: Int\n_SPEAKER_SURROUND_51 = 2\n\n-- | Emitted when the @AudioBusLayout@ changes.\nsig_bus_layout_changed ::\n                       Godot.Internal.Dispatch.Signal AudioServer\nsig_bus_layout_changed\n  = Godot.Internal.Dispatch.Signal \"bus_layout_changed\"\n\ninstance NodeSignal AudioServer \"bus_layout_changed\" '[]\n\ninstance NodeProperty AudioServer \"bus_count\" Int 'False where\n        nodeProperty\n          = (get_bus_count, wrapDroppingSetter set_bus_count, Nothing)\n\ninstance NodeProperty AudioServer \"device\" GodotString 'False where\n        nodeProperty = (get_device, wrapDroppingSetter set_device, Nothing)\n\ninstance NodeProperty AudioServer \"global_rate_scale\" Float 'False\n         where\n        nodeProperty\n          = (get_global_rate_scale, wrapDroppingSetter set_global_rate_scale,\n             Nothing)\n\n{-# NOINLINE bindAudioServer_add_bus #-}\n\n-- | Adds a bus at @at_position@.\nbindAudioServer_add_bus :: MethodBind\nbindAudioServer_add_bus\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"add_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a bus at @at_position@.\nadd_bus ::\n          (AudioServer :< cls, Object :< cls) => cls -> Maybe Int -> IO ()\nadd_bus cls arg1\n  = withVariantArray [maybe (VariantInt (-1)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_add_bus (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"add_bus\" '[Maybe Int] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioServer.add_bus\n\n{-# NOINLINE bindAudioServer_add_bus_effect #-}\n\n-- | Adds an @AudioEffect@ effect to the bus @bus_idx@ at @at_position@.\nbindAudioServer_add_bus_effect :: MethodBind\nbindAudioServer_add_bus_effect\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"add_bus_effect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an @AudioEffect@ effect to the bus @bus_idx@ at @at_position@.\nadd_bus_effect ::\n                 (AudioServer :< cls, Object :< cls) =>\n                 cls -> Int -> AudioEffect -> Maybe Int -> IO ()\nadd_bus_effect cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (-1)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_add_bus_effect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"add_bus_effect\"\n           '[Int, AudioEffect, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioServer.add_bus_effect\n\n{-# NOINLINE bindAudioServer_capture_get_device #-}\n\n-- | Name of the current device for audio input (see @method capture_get_device_list@).\nbindAudioServer_capture_get_device :: MethodBind\nbindAudioServer_capture_get_device\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"capture_get_device\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Name of the current device for audio input (see @method capture_get_device_list@).\ncapture_get_device ::\n                     (AudioServer :< cls, Object :< cls) => cls -> IO GodotString\ncapture_get_device cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_capture_get_device\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"capture_get_device\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AudioServer.capture_get_device\n\n{-# NOINLINE bindAudioServer_capture_get_device_list #-}\n\n-- | Returns the names of all audio input devices detected on the system.\nbindAudioServer_capture_get_device_list :: MethodBind\nbindAudioServer_capture_get_device_list\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"capture_get_device_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the names of all audio input devices detected on the system.\ncapture_get_device_list ::\n                          (AudioServer :< cls, Object :< cls) => cls -> IO Array\ncapture_get_device_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_capture_get_device_list\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"capture_get_device_list\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.AudioServer.capture_get_device_list\n\n{-# NOINLINE bindAudioServer_capture_set_device #-}\n\n-- | Sets which audio input device is used for audio capture.\nbindAudioServer_capture_set_device :: MethodBind\nbindAudioServer_capture_set_device\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"capture_set_device\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets which audio input device is used for audio capture.\ncapture_set_device ::\n                     (AudioServer :< cls, Object :< cls) => cls -> GodotString -> IO ()\ncapture_set_device cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_capture_set_device\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"capture_set_device\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioServer.capture_set_device\n\n{-# NOINLINE bindAudioServer_generate_bus_layout #-}\n\n-- | Generates an @AudioBusLayout@ using the available buses and effects.\nbindAudioServer_generate_bus_layout :: MethodBind\nbindAudioServer_generate_bus_layout\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"generate_bus_layout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Generates an @AudioBusLayout@ using the available buses and effects.\ngenerate_bus_layout ::\n                      (AudioServer :< cls, Object :< cls) => cls -> IO AudioBusLayout\ngenerate_bus_layout cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_generate_bus_layout\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"generate_bus_layout\" '[]\n           (IO AudioBusLayout)\n         where\n        nodeMethod = Godot.Core.AudioServer.generate_bus_layout\n\n{-# NOINLINE bindAudioServer_get_bus_channels #-}\n\n-- | Returns the amount of channels of the bus at index @bus_idx@.\nbindAudioServer_get_bus_channels :: MethodBind\nbindAudioServer_get_bus_channels\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_bus_channels\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the amount of channels of the bus at index @bus_idx@.\nget_bus_channels ::\n                   (AudioServer :< cls, Object :< cls) => cls -> Int -> IO Int\nget_bus_channels cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_bus_channels\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_bus_channels\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioServer.get_bus_channels\n\n{-# NOINLINE bindAudioServer_get_bus_count #-}\n\n-- | Number of available audio buses.\nbindAudioServer_get_bus_count :: MethodBind\nbindAudioServer_get_bus_count\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_bus_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of available audio buses.\nget_bus_count ::\n                (AudioServer :< cls, Object :< cls) => cls -> IO Int\nget_bus_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_bus_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_bus_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.AudioServer.get_bus_count\n\n{-# NOINLINE bindAudioServer_get_bus_effect #-}\n\n-- | Returns the @AudioEffect@ at position @effect_idx@ in bus @bus_idx@.\nbindAudioServer_get_bus_effect :: MethodBind\nbindAudioServer_get_bus_effect\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_bus_effect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @AudioEffect@ at position @effect_idx@ in bus @bus_idx@.\nget_bus_effect ::\n                 (AudioServer :< cls, Object :< cls) =>\n                 cls -> Int -> Int -> IO AudioEffect\nget_bus_effect cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_bus_effect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_bus_effect\" '[Int, Int]\n           (IO AudioEffect)\n         where\n        nodeMethod = Godot.Core.AudioServer.get_bus_effect\n\n{-# NOINLINE bindAudioServer_get_bus_effect_count #-}\n\n-- | Returns the number of effects on the bus at @bus_idx@.\nbindAudioServer_get_bus_effect_count :: MethodBind\nbindAudioServer_get_bus_effect_count\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_bus_effect_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of effects on the bus at @bus_idx@.\nget_bus_effect_count ::\n                       (AudioServer :< cls, Object :< cls) => cls -> Int -> IO Int\nget_bus_effect_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_bus_effect_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_bus_effect_count\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioServer.get_bus_effect_count\n\n{-# NOINLINE bindAudioServer_get_bus_effect_instance #-}\n\n-- | Returns the @AudioEffectInstance@ assigned to the given bus and effect indices (and optionally channel).\nbindAudioServer_get_bus_effect_instance :: MethodBind\nbindAudioServer_get_bus_effect_instance\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_bus_effect_instance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @AudioEffectInstance@ assigned to the given bus and effect indices (and optionally channel).\nget_bus_effect_instance ::\n                          (AudioServer :< cls, Object :< cls) =>\n                          cls -> Int -> Int -> Maybe Int -> IO AudioEffectInstance\nget_bus_effect_instance cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (0)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_bus_effect_instance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_bus_effect_instance\"\n           '[Int, Int, Maybe Int]\n           (IO AudioEffectInstance)\n         where\n        nodeMethod = Godot.Core.AudioServer.get_bus_effect_instance\n\n{-# NOINLINE bindAudioServer_get_bus_index #-}\n\n-- | Returns the index of the bus with the name @bus_name@.\nbindAudioServer_get_bus_index :: MethodBind\nbindAudioServer_get_bus_index\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_bus_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the index of the bus with the name @bus_name@.\nget_bus_index ::\n                (AudioServer :< cls, Object :< cls) => cls -> GodotString -> IO Int\nget_bus_index cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_bus_index (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_bus_index\" '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioServer.get_bus_index\n\n{-# NOINLINE bindAudioServer_get_bus_name #-}\n\n-- | Returns the name of the bus with the index @bus_idx@.\nbindAudioServer_get_bus_name :: MethodBind\nbindAudioServer_get_bus_name\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_bus_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of the bus with the index @bus_idx@.\nget_bus_name ::\n               (AudioServer :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_bus_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_bus_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_bus_name\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AudioServer.get_bus_name\n\n{-# NOINLINE bindAudioServer_get_bus_peak_volume_left_db #-}\n\n-- | Returns the peak volume of the left speaker at bus index @bus_idx@ and channel index @channel@.\nbindAudioServer_get_bus_peak_volume_left_db :: MethodBind\nbindAudioServer_get_bus_peak_volume_left_db\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_bus_peak_volume_left_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the peak volume of the left speaker at bus index @bus_idx@ and channel index @channel@.\nget_bus_peak_volume_left_db ::\n                              (AudioServer :< cls, Object :< cls) =>\n                              cls -> Int -> Int -> IO Float\nget_bus_peak_volume_left_db cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_bus_peak_volume_left_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_bus_peak_volume_left_db\"\n           '[Int, Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioServer.get_bus_peak_volume_left_db\n\n{-# NOINLINE bindAudioServer_get_bus_peak_volume_right_db #-}\n\n-- | Returns the peak volume of the right speaker at bus index @bus_idx@ and channel index @channel@.\nbindAudioServer_get_bus_peak_volume_right_db :: MethodBind\nbindAudioServer_get_bus_peak_volume_right_db\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_bus_peak_volume_right_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the peak volume of the right speaker at bus index @bus_idx@ and channel index @channel@.\nget_bus_peak_volume_right_db ::\n                               (AudioServer :< cls, Object :< cls) =>\n                               cls -> Int -> Int -> IO Float\nget_bus_peak_volume_right_db cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_bus_peak_volume_right_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_bus_peak_volume_right_db\"\n           '[Int, Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioServer.get_bus_peak_volume_right_db\n\n{-# NOINLINE bindAudioServer_get_bus_send #-}\n\n-- | Returns the name of the bus that the bus at index @bus_idx@ sends to.\nbindAudioServer_get_bus_send :: MethodBind\nbindAudioServer_get_bus_send\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_bus_send\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of the bus that the bus at index @bus_idx@ sends to.\nget_bus_send ::\n               (AudioServer :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_bus_send cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_bus_send (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_bus_send\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AudioServer.get_bus_send\n\n{-# NOINLINE bindAudioServer_get_bus_volume_db #-}\n\n-- | Returns the volume of the bus at index @bus_idx@ in dB.\nbindAudioServer_get_bus_volume_db :: MethodBind\nbindAudioServer_get_bus_volume_db\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_bus_volume_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the volume of the bus at index @bus_idx@ in dB.\nget_bus_volume_db ::\n                    (AudioServer :< cls, Object :< cls) => cls -> Int -> IO Float\nget_bus_volume_db cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_bus_volume_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_bus_volume_db\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioServer.get_bus_volume_db\n\n{-# NOINLINE bindAudioServer_get_device #-}\n\n-- | Name of the current device for audio output (see @method get_device_list@).\nbindAudioServer_get_device :: MethodBind\nbindAudioServer_get_device\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_device\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Name of the current device for audio output (see @method get_device_list@).\nget_device ::\n             (AudioServer :< cls, Object :< cls) => cls -> IO GodotString\nget_device cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_device (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_device\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AudioServer.get_device\n\n{-# NOINLINE bindAudioServer_get_device_list #-}\n\n-- | Returns the names of all audio devices detected on the system.\nbindAudioServer_get_device_list :: MethodBind\nbindAudioServer_get_device_list\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_device_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the names of all audio devices detected on the system.\nget_device_list ::\n                  (AudioServer :< cls, Object :< cls) => cls -> IO Array\nget_device_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_device_list (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_device_list\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.AudioServer.get_device_list\n\n{-# NOINLINE bindAudioServer_get_global_rate_scale #-}\n\n-- | Scales the rate at which audio is played (i.e. setting it to @0.5@ will make the audio be played twice as fast).\nbindAudioServer_get_global_rate_scale :: MethodBind\nbindAudioServer_get_global_rate_scale\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_global_rate_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Scales the rate at which audio is played (i.e. setting it to @0.5@ will make the audio be played twice as fast).\nget_global_rate_scale ::\n                        (AudioServer :< cls, Object :< cls) => cls -> IO Float\nget_global_rate_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_global_rate_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_global_rate_scale\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioServer.get_global_rate_scale\n\n{-# NOINLINE bindAudioServer_get_mix_rate #-}\n\n-- | Returns the sample rate at the output of the @AudioServer@.\nbindAudioServer_get_mix_rate :: MethodBind\nbindAudioServer_get_mix_rate\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_mix_rate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the sample rate at the output of the @AudioServer@.\nget_mix_rate ::\n               (AudioServer :< cls, Object :< cls) => cls -> IO Float\nget_mix_rate cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_mix_rate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_mix_rate\" '[] (IO Float) where\n        nodeMethod = Godot.Core.AudioServer.get_mix_rate\n\n{-# NOINLINE bindAudioServer_get_output_latency #-}\n\n-- | Returns the audio driver's output latency.\nbindAudioServer_get_output_latency :: MethodBind\nbindAudioServer_get_output_latency\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_output_latency\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the audio driver's output latency.\nget_output_latency ::\n                     (AudioServer :< cls, Object :< cls) => cls -> IO Float\nget_output_latency cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_output_latency\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_output_latency\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioServer.get_output_latency\n\n{-# NOINLINE bindAudioServer_get_speaker_mode #-}\n\n-- | Returns the speaker configuration.\nbindAudioServer_get_speaker_mode :: MethodBind\nbindAudioServer_get_speaker_mode\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_speaker_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the speaker configuration.\nget_speaker_mode ::\n                   (AudioServer :< cls, Object :< cls) => cls -> IO Int\nget_speaker_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_speaker_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_speaker_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioServer.get_speaker_mode\n\n{-# NOINLINE bindAudioServer_get_time_since_last_mix #-}\n\n-- | Returns the relative time since the last mix occurred.\nbindAudioServer_get_time_since_last_mix :: MethodBind\nbindAudioServer_get_time_since_last_mix\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_time_since_last_mix\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the relative time since the last mix occurred.\nget_time_since_last_mix ::\n                          (AudioServer :< cls, Object :< cls) => cls -> IO Float\nget_time_since_last_mix cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_time_since_last_mix\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_time_since_last_mix\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioServer.get_time_since_last_mix\n\n{-# NOINLINE bindAudioServer_get_time_to_next_mix #-}\n\n-- | Returns the relative time until the next mix occurs.\nbindAudioServer_get_time_to_next_mix :: MethodBind\nbindAudioServer_get_time_to_next_mix\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_time_to_next_mix\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the relative time until the next mix occurs.\nget_time_to_next_mix ::\n                       (AudioServer :< cls, Object :< cls) => cls -> IO Float\nget_time_to_next_mix cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_get_time_to_next_mix\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"get_time_to_next_mix\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioServer.get_time_to_next_mix\n\n{-# NOINLINE bindAudioServer_is_bus_bypassing_effects #-}\n\n-- | If @true@, the bus at index @bus_idx@ is bypassing effects.\nbindAudioServer_is_bus_bypassing_effects :: MethodBind\nbindAudioServer_is_bus_bypassing_effects\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"is_bus_bypassing_effects\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the bus at index @bus_idx@ is bypassing effects.\nis_bus_bypassing_effects ::\n                           (AudioServer :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_bus_bypassing_effects cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_is_bus_bypassing_effects\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"is_bus_bypassing_effects\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioServer.is_bus_bypassing_effects\n\n{-# NOINLINE bindAudioServer_is_bus_effect_enabled #-}\n\n-- | If @true@, the effect at index @effect_idx@ on the bus at index @bus_idx@ is enabled.\nbindAudioServer_is_bus_effect_enabled :: MethodBind\nbindAudioServer_is_bus_effect_enabled\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"is_bus_effect_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the effect at index @effect_idx@ on the bus at index @bus_idx@ is enabled.\nis_bus_effect_enabled ::\n                        (AudioServer :< cls, Object :< cls) => cls -> Int -> Int -> IO Bool\nis_bus_effect_enabled cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_is_bus_effect_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"is_bus_effect_enabled\" '[Int, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioServer.is_bus_effect_enabled\n\n{-# NOINLINE bindAudioServer_is_bus_mute #-}\n\n-- | If @true@, the bus at index @bus_idx@ is muted.\nbindAudioServer_is_bus_mute :: MethodBind\nbindAudioServer_is_bus_mute\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"is_bus_mute\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the bus at index @bus_idx@ is muted.\nis_bus_mute ::\n              (AudioServer :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_bus_mute cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_is_bus_mute (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"is_bus_mute\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioServer.is_bus_mute\n\n{-# NOINLINE bindAudioServer_is_bus_solo #-}\n\n-- | If @true@, the bus at index @bus_idx@ is in solo mode.\nbindAudioServer_is_bus_solo :: MethodBind\nbindAudioServer_is_bus_solo\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"is_bus_solo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the bus at index @bus_idx@ is in solo mode.\nis_bus_solo ::\n              (AudioServer :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_bus_solo cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_is_bus_solo (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"is_bus_solo\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioServer.is_bus_solo\n\n{-# NOINLINE bindAudioServer_lock #-}\n\n-- | Locks the audio driver's main loop.\n--   \t\t\t\t__Note:__ Remember to unlock it afterwards.\nbindAudioServer_lock :: MethodBind\nbindAudioServer_lock\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"lock\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Locks the audio driver's main loop.\n--   \t\t\t\t__Note:__ Remember to unlock it afterwards.\nlock :: (AudioServer :< cls, Object :< cls) => cls -> IO ()\nlock cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_lock (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"lock\" '[] (IO ()) where\n        nodeMethod = Godot.Core.AudioServer.lock\n\n{-# NOINLINE bindAudioServer_move_bus #-}\n\n-- | Moves the bus from index @index@ to index @to_index@.\nbindAudioServer_move_bus :: MethodBind\nbindAudioServer_move_bus\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"move_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves the bus from index @index@ to index @to_index@.\nmove_bus ::\n           (AudioServer :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nmove_bus cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_move_bus (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"move_bus\" '[Int, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioServer.move_bus\n\n{-# NOINLINE bindAudioServer_remove_bus #-}\n\n-- | Removes the bus at index @index@.\nbindAudioServer_remove_bus :: MethodBind\nbindAudioServer_remove_bus\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"remove_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the bus at index @index@.\nremove_bus ::\n             (AudioServer :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_bus cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_remove_bus (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"remove_bus\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.AudioServer.remove_bus\n\n{-# NOINLINE bindAudioServer_remove_bus_effect #-}\n\n-- | Removes the effect at index @effect_idx@ from the bus at index @bus_idx@.\nbindAudioServer_remove_bus_effect :: MethodBind\nbindAudioServer_remove_bus_effect\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"remove_bus_effect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the effect at index @effect_idx@ from the bus at index @bus_idx@.\nremove_bus_effect ::\n                    (AudioServer :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nremove_bus_effect cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_remove_bus_effect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"remove_bus_effect\" '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioServer.remove_bus_effect\n\n{-# NOINLINE bindAudioServer_set_bus_bypass_effects #-}\n\n-- | If @true@, the bus at index @bus_idx@ is bypassing effects.\nbindAudioServer_set_bus_bypass_effects :: MethodBind\nbindAudioServer_set_bus_bypass_effects\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_bus_bypass_effects\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the bus at index @bus_idx@ is bypassing effects.\nset_bus_bypass_effects ::\n                         (AudioServer :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_bus_bypass_effects cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_set_bus_bypass_effects\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"set_bus_bypass_effects\"\n           '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioServer.set_bus_bypass_effects\n\n{-# NOINLINE bindAudioServer_set_bus_count #-}\n\n-- | Number of available audio buses.\nbindAudioServer_set_bus_count :: MethodBind\nbindAudioServer_set_bus_count\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_bus_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of available audio buses.\nset_bus_count ::\n                (AudioServer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_bus_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_set_bus_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"set_bus_count\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioServer.set_bus_count\n\n{-# NOINLINE bindAudioServer_set_bus_effect_enabled #-}\n\n-- | If @true@, the effect at index @effect_idx@ on the bus at index @bus_idx@ is enabled.\nbindAudioServer_set_bus_effect_enabled :: MethodBind\nbindAudioServer_set_bus_effect_enabled\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_bus_effect_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the effect at index @effect_idx@ on the bus at index @bus_idx@ is enabled.\nset_bus_effect_enabled ::\n                         (AudioServer :< cls, Object :< cls) =>\n                         cls -> Int -> Int -> Bool -> IO ()\nset_bus_effect_enabled cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_set_bus_effect_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"set_bus_effect_enabled\"\n           '[Int, Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioServer.set_bus_effect_enabled\n\n{-# NOINLINE bindAudioServer_set_bus_layout #-}\n\n-- | Overwrites the currently used @AudioBusLayout@.\nbindAudioServer_set_bus_layout :: MethodBind\nbindAudioServer_set_bus_layout\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_bus_layout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Overwrites the currently used @AudioBusLayout@.\nset_bus_layout ::\n                 (AudioServer :< cls, Object :< cls) =>\n                 cls -> AudioBusLayout -> IO ()\nset_bus_layout cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_set_bus_layout (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"set_bus_layout\" '[AudioBusLayout]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioServer.set_bus_layout\n\n{-# NOINLINE bindAudioServer_set_bus_mute #-}\n\n-- | If @true@, the bus at index @bus_idx@ is muted.\nbindAudioServer_set_bus_mute :: MethodBind\nbindAudioServer_set_bus_mute\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_bus_mute\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the bus at index @bus_idx@ is muted.\nset_bus_mute ::\n               (AudioServer :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_bus_mute cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_set_bus_mute (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"set_bus_mute\" '[Int, Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioServer.set_bus_mute\n\n{-# NOINLINE bindAudioServer_set_bus_name #-}\n\n-- | Sets the name of the bus at index @bus_idx@ to @name@.\nbindAudioServer_set_bus_name :: MethodBind\nbindAudioServer_set_bus_name\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_bus_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the name of the bus at index @bus_idx@ to @name@.\nset_bus_name ::\n               (AudioServer :< cls, Object :< cls) =>\n               cls -> Int -> GodotString -> IO ()\nset_bus_name cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_set_bus_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"set_bus_name\" '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioServer.set_bus_name\n\n{-# NOINLINE bindAudioServer_set_bus_send #-}\n\n-- | Connects the output of the bus at @bus_idx@ to the bus named @send@.\nbindAudioServer_set_bus_send :: MethodBind\nbindAudioServer_set_bus_send\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_bus_send\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Connects the output of the bus at @bus_idx@ to the bus named @send@.\nset_bus_send ::\n               (AudioServer :< cls, Object :< cls) =>\n               cls -> Int -> GodotString -> IO ()\nset_bus_send cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_set_bus_send (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"set_bus_send\" '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioServer.set_bus_send\n\n{-# NOINLINE bindAudioServer_set_bus_solo #-}\n\n-- | If @true@, the bus at index @bus_idx@ is in solo mode.\nbindAudioServer_set_bus_solo :: MethodBind\nbindAudioServer_set_bus_solo\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_bus_solo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the bus at index @bus_idx@ is in solo mode.\nset_bus_solo ::\n               (AudioServer :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_bus_solo cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_set_bus_solo (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"set_bus_solo\" '[Int, Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioServer.set_bus_solo\n\n{-# NOINLINE bindAudioServer_set_bus_volume_db #-}\n\n-- | Sets the volume of the bus at index @bus_idx@ to @volume_db@.\nbindAudioServer_set_bus_volume_db :: MethodBind\nbindAudioServer_set_bus_volume_db\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_bus_volume_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the volume of the bus at index @bus_idx@ to @volume_db@.\nset_bus_volume_db ::\n                    (AudioServer :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\nset_bus_volume_db cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_set_bus_volume_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"set_bus_volume_db\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioServer.set_bus_volume_db\n\n{-# NOINLINE bindAudioServer_set_device #-}\n\n-- | Name of the current device for audio output (see @method get_device_list@).\nbindAudioServer_set_device :: MethodBind\nbindAudioServer_set_device\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_device\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Name of the current device for audio output (see @method get_device_list@).\nset_device ::\n             (AudioServer :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_device cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_set_device (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"set_device\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioServer.set_device\n\n{-# NOINLINE bindAudioServer_set_global_rate_scale #-}\n\n-- | Scales the rate at which audio is played (i.e. setting it to @0.5@ will make the audio be played twice as fast).\nbindAudioServer_set_global_rate_scale :: MethodBind\nbindAudioServer_set_global_rate_scale\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_global_rate_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Scales the rate at which audio is played (i.e. setting it to @0.5@ will make the audio be played twice as fast).\nset_global_rate_scale ::\n                        (AudioServer :< cls, Object :< cls) => cls -> Float -> IO ()\nset_global_rate_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_set_global_rate_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"set_global_rate_scale\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioServer.set_global_rate_scale\n\n{-# NOINLINE bindAudioServer_swap_bus_effects #-}\n\n-- | Swaps the position of two effects in bus @bus_idx@.\nbindAudioServer_swap_bus_effects :: MethodBind\nbindAudioServer_swap_bus_effects\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"swap_bus_effects\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Swaps the position of two effects in bus @bus_idx@.\nswap_bus_effects ::\n                   (AudioServer :< cls, Object :< cls) =>\n                   cls -> Int -> Int -> Int -> IO ()\nswap_bus_effects cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_swap_bus_effects\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"swap_bus_effects\" '[Int, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioServer.swap_bus_effects\n\n{-# NOINLINE bindAudioServer_unlock #-}\n\n-- | Unlocks the audio driver's main loop. (After locking it, you should always unlock it.)\nbindAudioServer_unlock :: MethodBind\nbindAudioServer_unlock\n  = unsafePerformIO $\n      withCString \"AudioServer\" $\n        \\ clsNamePtr ->\n          withCString \"unlock\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Unlocks the audio driver's main loop. (After locking it, you should always unlock it.)\nunlock :: (AudioServer :< cls, Object :< cls) => cls -> IO ()\nunlock cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioServer_unlock (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioServer \"unlock\" '[] (IO ()) where\n        nodeMethod = Godot.Core.AudioServer.unlock"
  },
  {
    "path": "src/Godot/Core/AudioStream.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioStream (Godot.Core.AudioStream.get_length)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n{-# NOINLINE bindAudioStream_get_length #-}\n\n-- | Returns the length of the audio stream in seconds.\nbindAudioStream_get_length :: MethodBind\nbindAudioStream_get_length\n  = unsafePerformIO $\n      withCString \"AudioStream\" $\n        \\ clsNamePtr ->\n          withCString \"get_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the length of the audio stream in seconds.\nget_length ::\n             (AudioStream :< cls, Object :< cls) => cls -> IO Float\nget_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStream_get_length (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStream \"get_length\" '[] (IO Float) where\n        nodeMethod = Godot.Core.AudioStream.get_length"
  },
  {
    "path": "src/Godot/Core/AudioStreamGenerator.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioStreamGenerator\n       (Godot.Core.AudioStreamGenerator.get_buffer_length,\n        Godot.Core.AudioStreamGenerator.get_mix_rate,\n        Godot.Core.AudioStreamGenerator.set_buffer_length,\n        Godot.Core.AudioStreamGenerator.set_mix_rate)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioStream()\n\ninstance NodeProperty AudioStreamGenerator \"buffer_length\" Float\n           'False\n         where\n        nodeProperty\n          = (get_buffer_length, wrapDroppingSetter set_buffer_length,\n             Nothing)\n\ninstance NodeProperty AudioStreamGenerator \"mix_rate\" Float 'False\n         where\n        nodeProperty\n          = (get_mix_rate, wrapDroppingSetter set_mix_rate, Nothing)\n\n{-# NOINLINE bindAudioStreamGenerator_get_buffer_length #-}\n\nbindAudioStreamGenerator_get_buffer_length :: MethodBind\nbindAudioStreamGenerator_get_buffer_length\n  = unsafePerformIO $\n      withCString \"AudioStreamGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"get_buffer_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_buffer_length ::\n                    (AudioStreamGenerator :< cls, Object :< cls) => cls -> IO Float\nget_buffer_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamGenerator_get_buffer_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamGenerator \"get_buffer_length\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamGenerator.get_buffer_length\n\n{-# NOINLINE bindAudioStreamGenerator_get_mix_rate #-}\n\nbindAudioStreamGenerator_get_mix_rate :: MethodBind\nbindAudioStreamGenerator_get_mix_rate\n  = unsafePerformIO $\n      withCString \"AudioStreamGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"get_mix_rate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_mix_rate ::\n               (AudioStreamGenerator :< cls, Object :< cls) => cls -> IO Float\nget_mix_rate cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamGenerator_get_mix_rate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamGenerator \"get_mix_rate\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamGenerator.get_mix_rate\n\n{-# NOINLINE bindAudioStreamGenerator_set_buffer_length #-}\n\nbindAudioStreamGenerator_set_buffer_length :: MethodBind\nbindAudioStreamGenerator_set_buffer_length\n  = unsafePerformIO $\n      withCString \"AudioStreamGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"set_buffer_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_buffer_length ::\n                    (AudioStreamGenerator :< cls, Object :< cls) =>\n                    cls -> Float -> IO ()\nset_buffer_length cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamGenerator_set_buffer_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamGenerator \"set_buffer_length\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamGenerator.set_buffer_length\n\n{-# NOINLINE bindAudioStreamGenerator_set_mix_rate #-}\n\nbindAudioStreamGenerator_set_mix_rate :: MethodBind\nbindAudioStreamGenerator_set_mix_rate\n  = unsafePerformIO $\n      withCString \"AudioStreamGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"set_mix_rate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_mix_rate ::\n               (AudioStreamGenerator :< cls, Object :< cls) =>\n               cls -> Float -> IO ()\nset_mix_rate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamGenerator_set_mix_rate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamGenerator \"set_mix_rate\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamGenerator.set_mix_rate"
  },
  {
    "path": "src/Godot/Core/AudioStreamGeneratorPlayback.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioStreamGeneratorPlayback\n       (Godot.Core.AudioStreamGeneratorPlayback.can_push_buffer,\n        Godot.Core.AudioStreamGeneratorPlayback.clear_buffer,\n        Godot.Core.AudioStreamGeneratorPlayback.get_frames_available,\n        Godot.Core.AudioStreamGeneratorPlayback.get_skips,\n        Godot.Core.AudioStreamGeneratorPlayback.push_buffer,\n        Godot.Core.AudioStreamGeneratorPlayback.push_frame)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioStreamPlaybackResampled()\n\n{-# NOINLINE bindAudioStreamGeneratorPlayback_can_push_buffer #-}\n\nbindAudioStreamGeneratorPlayback_can_push_buffer :: MethodBind\nbindAudioStreamGeneratorPlayback_can_push_buffer\n  = unsafePerformIO $\n      withCString \"AudioStreamGeneratorPlayback\" $\n        \\ clsNamePtr ->\n          withCString \"can_push_buffer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncan_push_buffer ::\n                  (AudioStreamGeneratorPlayback :< cls, Object :< cls) =>\n                  cls -> Int -> IO Bool\ncan_push_buffer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioStreamGeneratorPlayback_can_push_buffer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamGeneratorPlayback \"can_push_buffer\"\n           '[Int]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.AudioStreamGeneratorPlayback.can_push_buffer\n\n{-# NOINLINE bindAudioStreamGeneratorPlayback_clear_buffer #-}\n\nbindAudioStreamGeneratorPlayback_clear_buffer :: MethodBind\nbindAudioStreamGeneratorPlayback_clear_buffer\n  = unsafePerformIO $\n      withCString \"AudioStreamGeneratorPlayback\" $\n        \\ clsNamePtr ->\n          withCString \"clear_buffer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nclear_buffer ::\n               (AudioStreamGeneratorPlayback :< cls, Object :< cls) =>\n               cls -> IO ()\nclear_buffer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioStreamGeneratorPlayback_clear_buffer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamGeneratorPlayback \"clear_buffer\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamGeneratorPlayback.clear_buffer\n\n{-# NOINLINE bindAudioStreamGeneratorPlayback_get_frames_available\n             #-}\n\nbindAudioStreamGeneratorPlayback_get_frames_available :: MethodBind\nbindAudioStreamGeneratorPlayback_get_frames_available\n  = unsafePerformIO $\n      withCString \"AudioStreamGeneratorPlayback\" $\n        \\ clsNamePtr ->\n          withCString \"get_frames_available\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_frames_available ::\n                       (AudioStreamGeneratorPlayback :< cls, Object :< cls) =>\n                       cls -> IO Int\nget_frames_available cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioStreamGeneratorPlayback_get_frames_available\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamGeneratorPlayback\n           \"get_frames_available\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.AudioStreamGeneratorPlayback.get_frames_available\n\n{-# NOINLINE bindAudioStreamGeneratorPlayback_get_skips #-}\n\nbindAudioStreamGeneratorPlayback_get_skips :: MethodBind\nbindAudioStreamGeneratorPlayback_get_skips\n  = unsafePerformIO $\n      withCString \"AudioStreamGeneratorPlayback\" $\n        \\ clsNamePtr ->\n          withCString \"get_skips\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_skips ::\n            (AudioStreamGeneratorPlayback :< cls, Object :< cls) =>\n            cls -> IO Int\nget_skips cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamGeneratorPlayback_get_skips\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamGeneratorPlayback \"get_skips\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioStreamGeneratorPlayback.get_skips\n\n{-# NOINLINE bindAudioStreamGeneratorPlayback_push_buffer #-}\n\nbindAudioStreamGeneratorPlayback_push_buffer :: MethodBind\nbindAudioStreamGeneratorPlayback_push_buffer\n  = unsafePerformIO $\n      withCString \"AudioStreamGeneratorPlayback\" $\n        \\ clsNamePtr ->\n          withCString \"push_buffer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\npush_buffer ::\n              (AudioStreamGeneratorPlayback :< cls, Object :< cls) =>\n              cls -> PoolVector2Array -> IO Bool\npush_buffer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamGeneratorPlayback_push_buffer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamGeneratorPlayback \"push_buffer\"\n           '[PoolVector2Array]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioStreamGeneratorPlayback.push_buffer\n\n{-# NOINLINE bindAudioStreamGeneratorPlayback_push_frame #-}\n\nbindAudioStreamGeneratorPlayback_push_frame :: MethodBind\nbindAudioStreamGeneratorPlayback_push_frame\n  = unsafePerformIO $\n      withCString \"AudioStreamGeneratorPlayback\" $\n        \\ clsNamePtr ->\n          withCString \"push_frame\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\npush_frame ::\n             (AudioStreamGeneratorPlayback :< cls, Object :< cls) =>\n             cls -> Vector2 -> IO Bool\npush_frame cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamGeneratorPlayback_push_frame\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamGeneratorPlayback \"push_frame\"\n           '[Vector2]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioStreamGeneratorPlayback.push_frame"
  },
  {
    "path": "src/Godot/Core/AudioStreamMicrophone.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioStreamMicrophone () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioStream()"
  },
  {
    "path": "src/Godot/Core/AudioStreamOGGVorbis.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioStreamOGGVorbis\n       (Godot.Core.AudioStreamOGGVorbis.get_data,\n        Godot.Core.AudioStreamOGGVorbis.get_loop_offset,\n        Godot.Core.AudioStreamOGGVorbis.has_loop,\n        Godot.Core.AudioStreamOGGVorbis.set_data,\n        Godot.Core.AudioStreamOGGVorbis.set_loop,\n        Godot.Core.AudioStreamOGGVorbis.set_loop_offset)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioStream()\n\ninstance NodeProperty AudioStreamOGGVorbis \"data\" PoolByteArray\n           'False\n         where\n        nodeProperty = (get_data, wrapDroppingSetter set_data, Nothing)\n\ninstance NodeProperty AudioStreamOGGVorbis \"loop\" Bool 'False where\n        nodeProperty = (has_loop, wrapDroppingSetter set_loop, Nothing)\n\ninstance NodeProperty AudioStreamOGGVorbis \"loop_offset\" Float\n           'False\n         where\n        nodeProperty\n          = (get_loop_offset, wrapDroppingSetter set_loop_offset, Nothing)\n\n{-# NOINLINE bindAudioStreamOGGVorbis_get_data #-}\n\nbindAudioStreamOGGVorbis_get_data :: MethodBind\nbindAudioStreamOGGVorbis_get_data\n  = unsafePerformIO $\n      withCString \"AudioStreamOGGVorbis\" $\n        \\ clsNamePtr ->\n          withCString \"get_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_data ::\n           (AudioStreamOGGVorbis :< cls, Object :< cls) =>\n           cls -> IO PoolByteArray\nget_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamOGGVorbis_get_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamOGGVorbis \"get_data\" '[]\n           (IO PoolByteArray)\n         where\n        nodeMethod = Godot.Core.AudioStreamOGGVorbis.get_data\n\n{-# NOINLINE bindAudioStreamOGGVorbis_get_loop_offset #-}\n\nbindAudioStreamOGGVorbis_get_loop_offset :: MethodBind\nbindAudioStreamOGGVorbis_get_loop_offset\n  = unsafePerformIO $\n      withCString \"AudioStreamOGGVorbis\" $\n        \\ clsNamePtr ->\n          withCString \"get_loop_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_loop_offset ::\n                  (AudioStreamOGGVorbis :< cls, Object :< cls) => cls -> IO Float\nget_loop_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamOGGVorbis_get_loop_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamOGGVorbis \"get_loop_offset\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamOGGVorbis.get_loop_offset\n\n{-# NOINLINE bindAudioStreamOGGVorbis_has_loop #-}\n\nbindAudioStreamOGGVorbis_has_loop :: MethodBind\nbindAudioStreamOGGVorbis_has_loop\n  = unsafePerformIO $\n      withCString \"AudioStreamOGGVorbis\" $\n        \\ clsNamePtr ->\n          withCString \"has_loop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nhas_loop ::\n           (AudioStreamOGGVorbis :< cls, Object :< cls) => cls -> IO Bool\nhas_loop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamOGGVorbis_has_loop\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamOGGVorbis \"has_loop\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioStreamOGGVorbis.has_loop\n\n{-# NOINLINE bindAudioStreamOGGVorbis_set_data #-}\n\nbindAudioStreamOGGVorbis_set_data :: MethodBind\nbindAudioStreamOGGVorbis_set_data\n  = unsafePerformIO $\n      withCString \"AudioStreamOGGVorbis\" $\n        \\ clsNamePtr ->\n          withCString \"set_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_data ::\n           (AudioStreamOGGVorbis :< cls, Object :< cls) =>\n           cls -> PoolByteArray -> IO ()\nset_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamOGGVorbis_set_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamOGGVorbis \"set_data\"\n           '[PoolByteArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamOGGVorbis.set_data\n\n{-# NOINLINE bindAudioStreamOGGVorbis_set_loop #-}\n\nbindAudioStreamOGGVorbis_set_loop :: MethodBind\nbindAudioStreamOGGVorbis_set_loop\n  = unsafePerformIO $\n      withCString \"AudioStreamOGGVorbis\" $\n        \\ clsNamePtr ->\n          withCString \"set_loop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_loop ::\n           (AudioStreamOGGVorbis :< cls, Object :< cls) =>\n           cls -> Bool -> IO ()\nset_loop cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamOGGVorbis_set_loop\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamOGGVorbis \"set_loop\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamOGGVorbis.set_loop\n\n{-# NOINLINE bindAudioStreamOGGVorbis_set_loop_offset #-}\n\nbindAudioStreamOGGVorbis_set_loop_offset :: MethodBind\nbindAudioStreamOGGVorbis_set_loop_offset\n  = unsafePerformIO $\n      withCString \"AudioStreamOGGVorbis\" $\n        \\ clsNamePtr ->\n          withCString \"set_loop_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_loop_offset ::\n                  (AudioStreamOGGVorbis :< cls, Object :< cls) =>\n                  cls -> Float -> IO ()\nset_loop_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamOGGVorbis_set_loop_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamOGGVorbis \"set_loop_offset\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamOGGVorbis.set_loop_offset"
  },
  {
    "path": "src/Godot/Core/AudioStreamPlayback.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioStreamPlayback () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()"
  },
  {
    "path": "src/Godot/Core/AudioStreamPlaybackResampled.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioStreamPlaybackResampled () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioStreamPlayback()"
  },
  {
    "path": "src/Godot/Core/AudioStreamPlayer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioStreamPlayer\n       (Godot.Core.AudioStreamPlayer._MIX_TARGET_SURROUND,\n        Godot.Core.AudioStreamPlayer._MIX_TARGET_STEREO,\n        Godot.Core.AudioStreamPlayer._MIX_TARGET_CENTER,\n        Godot.Core.AudioStreamPlayer.sig_finished,\n        Godot.Core.AudioStreamPlayer._bus_layout_changed,\n        Godot.Core.AudioStreamPlayer._is_active,\n        Godot.Core.AudioStreamPlayer._set_playing,\n        Godot.Core.AudioStreamPlayer.get_bus,\n        Godot.Core.AudioStreamPlayer.get_mix_target,\n        Godot.Core.AudioStreamPlayer.get_pitch_scale,\n        Godot.Core.AudioStreamPlayer.get_playback_position,\n        Godot.Core.AudioStreamPlayer.get_stream,\n        Godot.Core.AudioStreamPlayer.get_stream_paused,\n        Godot.Core.AudioStreamPlayer.get_stream_playback,\n        Godot.Core.AudioStreamPlayer.get_volume_db,\n        Godot.Core.AudioStreamPlayer.is_autoplay_enabled,\n        Godot.Core.AudioStreamPlayer.is_playing,\n        Godot.Core.AudioStreamPlayer.play,\n        Godot.Core.AudioStreamPlayer.seek,\n        Godot.Core.AudioStreamPlayer.set_autoplay,\n        Godot.Core.AudioStreamPlayer.set_bus,\n        Godot.Core.AudioStreamPlayer.set_mix_target,\n        Godot.Core.AudioStreamPlayer.set_pitch_scale,\n        Godot.Core.AudioStreamPlayer.set_stream,\n        Godot.Core.AudioStreamPlayer.set_stream_paused,\n        Godot.Core.AudioStreamPlayer.set_volume_db,\n        Godot.Core.AudioStreamPlayer.stop)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\n_MIX_TARGET_SURROUND :: Int\n_MIX_TARGET_SURROUND = 1\n\n_MIX_TARGET_STEREO :: Int\n_MIX_TARGET_STEREO = 0\n\n_MIX_TARGET_CENTER :: Int\n_MIX_TARGET_CENTER = 2\n\n-- | Emitted when the audio stops playing.\nsig_finished :: Godot.Internal.Dispatch.Signal AudioStreamPlayer\nsig_finished = Godot.Internal.Dispatch.Signal \"finished\"\n\ninstance NodeSignal AudioStreamPlayer \"finished\" '[]\n\ninstance NodeProperty AudioStreamPlayer \"autoplay\" Bool 'False\n         where\n        nodeProperty\n          = (is_autoplay_enabled, wrapDroppingSetter set_autoplay, Nothing)\n\ninstance NodeProperty AudioStreamPlayer \"bus\" GodotString 'False\n         where\n        nodeProperty = (get_bus, wrapDroppingSetter set_bus, Nothing)\n\ninstance NodeProperty AudioStreamPlayer \"mix_target\" Int 'False\n         where\n        nodeProperty\n          = (get_mix_target, wrapDroppingSetter set_mix_target, Nothing)\n\ninstance NodeProperty AudioStreamPlayer \"pitch_scale\" Float 'False\n         where\n        nodeProperty\n          = (get_pitch_scale, wrapDroppingSetter set_pitch_scale, Nothing)\n\ninstance NodeProperty AudioStreamPlayer \"playing\" Bool 'False where\n        nodeProperty\n          = (is_playing, wrapDroppingSetter _set_playing, Nothing)\n\ninstance NodeProperty AudioStreamPlayer \"stream\" AudioStream 'False\n         where\n        nodeProperty = (get_stream, wrapDroppingSetter set_stream, Nothing)\n\ninstance NodeProperty AudioStreamPlayer \"stream_paused\" Bool 'False\n         where\n        nodeProperty\n          = (get_stream_paused, wrapDroppingSetter set_stream_paused,\n             Nothing)\n\ninstance NodeProperty AudioStreamPlayer \"volume_db\" Float 'False\n         where\n        nodeProperty\n          = (get_volume_db, wrapDroppingSetter set_volume_db, Nothing)\n\n{-# NOINLINE bindAudioStreamPlayer__bus_layout_changed #-}\n\nbindAudioStreamPlayer__bus_layout_changed :: MethodBind\nbindAudioStreamPlayer__bus_layout_changed\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"_bus_layout_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_bus_layout_changed ::\n                      (AudioStreamPlayer :< cls, Object :< cls) => cls -> IO ()\n_bus_layout_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer__bus_layout_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"_bus_layout_changed\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer._bus_layout_changed\n\n{-# NOINLINE bindAudioStreamPlayer__is_active #-}\n\nbindAudioStreamPlayer__is_active :: MethodBind\nbindAudioStreamPlayer__is_active\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"_is_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_is_active ::\n             (AudioStreamPlayer :< cls, Object :< cls) => cls -> IO Bool\n_is_active cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer__is_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"_is_active\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer._is_active\n\n{-# NOINLINE bindAudioStreamPlayer__set_playing #-}\n\n-- | If @true@, audio is playing.\nbindAudioStreamPlayer__set_playing :: MethodBind\nbindAudioStreamPlayer__set_playing\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"_set_playing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, audio is playing.\n_set_playing ::\n               (AudioStreamPlayer :< cls, Object :< cls) => cls -> Bool -> IO ()\n_set_playing cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer__set_playing\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"_set_playing\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer._set_playing\n\n{-# NOINLINE bindAudioStreamPlayer_get_bus #-}\n\n-- | Bus on which this audio is playing.\nbindAudioStreamPlayer_get_bus :: MethodBind\nbindAudioStreamPlayer_get_bus\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Bus on which this audio is playing.\nget_bus ::\n          (AudioStreamPlayer :< cls, Object :< cls) => cls -> IO GodotString\nget_bus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_get_bus (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"get_bus\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer.get_bus\n\n{-# NOINLINE bindAudioStreamPlayer_get_mix_target #-}\n\n-- | If the audio configuration has more than two speakers, this sets the target channels. See @enum MixTarget@ constants.\nbindAudioStreamPlayer_get_mix_target :: MethodBind\nbindAudioStreamPlayer_get_mix_target\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_mix_target\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If the audio configuration has more than two speakers, this sets the target channels. See @enum MixTarget@ constants.\nget_mix_target ::\n                 (AudioStreamPlayer :< cls, Object :< cls) => cls -> IO Int\nget_mix_target cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_get_mix_target\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"get_mix_target\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer.get_mix_target\n\n{-# NOINLINE bindAudioStreamPlayer_get_pitch_scale #-}\n\n-- | The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate.\nbindAudioStreamPlayer_get_pitch_scale :: MethodBind\nbindAudioStreamPlayer_get_pitch_scale\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_pitch_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate.\nget_pitch_scale ::\n                  (AudioStreamPlayer :< cls, Object :< cls) => cls -> IO Float\nget_pitch_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_get_pitch_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"get_pitch_scale\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer.get_pitch_scale\n\n{-# NOINLINE bindAudioStreamPlayer_get_playback_position #-}\n\n-- | Returns the position in the @AudioStream@ in seconds.\nbindAudioStreamPlayer_get_playback_position :: MethodBind\nbindAudioStreamPlayer_get_playback_position\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_playback_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position in the @AudioStream@ in seconds.\nget_playback_position ::\n                        (AudioStreamPlayer :< cls, Object :< cls) => cls -> IO Float\nget_playback_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_get_playback_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"get_playback_position\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer.get_playback_position\n\n{-# NOINLINE bindAudioStreamPlayer_get_stream #-}\n\n-- | The @AudioStream@ object to be played.\nbindAudioStreamPlayer_get_stream :: MethodBind\nbindAudioStreamPlayer_get_stream\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_stream\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @AudioStream@ object to be played.\nget_stream ::\n             (AudioStreamPlayer :< cls, Object :< cls) => cls -> IO AudioStream\nget_stream cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_get_stream\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"get_stream\" '[]\n           (IO AudioStream)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer.get_stream\n\n{-# NOINLINE bindAudioStreamPlayer_get_stream_paused #-}\n\n-- | If @true@, the playback is paused. You can resume it by setting @stream_paused@ to @false@.\nbindAudioStreamPlayer_get_stream_paused :: MethodBind\nbindAudioStreamPlayer_get_stream_paused\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_stream_paused\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the playback is paused. You can resume it by setting @stream_paused@ to @false@.\nget_stream_paused ::\n                    (AudioStreamPlayer :< cls, Object :< cls) => cls -> IO Bool\nget_stream_paused cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_get_stream_paused\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"get_stream_paused\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer.get_stream_paused\n\n{-# NOINLINE bindAudioStreamPlayer_get_stream_playback #-}\n\n-- | Returns the @AudioStreamPlayback@ object associated with this @AudioStreamPlayer@.\nbindAudioStreamPlayer_get_stream_playback :: MethodBind\nbindAudioStreamPlayer_get_stream_playback\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_stream_playback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @AudioStreamPlayback@ object associated with this @AudioStreamPlayer@.\nget_stream_playback ::\n                      (AudioStreamPlayer :< cls, Object :< cls) =>\n                      cls -> IO AudioStreamPlayback\nget_stream_playback cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_get_stream_playback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"get_stream_playback\" '[]\n           (IO AudioStreamPlayback)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer.get_stream_playback\n\n{-# NOINLINE bindAudioStreamPlayer_get_volume_db #-}\n\n-- | Volume of sound, in dB.\nbindAudioStreamPlayer_get_volume_db :: MethodBind\nbindAudioStreamPlayer_get_volume_db\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_volume_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Volume of sound, in dB.\nget_volume_db ::\n                (AudioStreamPlayer :< cls, Object :< cls) => cls -> IO Float\nget_volume_db cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_get_volume_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"get_volume_db\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer.get_volume_db\n\n{-# NOINLINE bindAudioStreamPlayer_is_autoplay_enabled #-}\n\n-- | If @true@, audio plays when added to scene tree.\nbindAudioStreamPlayer_is_autoplay_enabled :: MethodBind\nbindAudioStreamPlayer_is_autoplay_enabled\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"is_autoplay_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, audio plays when added to scene tree.\nis_autoplay_enabled ::\n                      (AudioStreamPlayer :< cls, Object :< cls) => cls -> IO Bool\nis_autoplay_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_is_autoplay_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"is_autoplay_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer.is_autoplay_enabled\n\n{-# NOINLINE bindAudioStreamPlayer_is_playing #-}\n\n-- | If @true@, audio is playing.\nbindAudioStreamPlayer_is_playing :: MethodBind\nbindAudioStreamPlayer_is_playing\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"is_playing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, audio is playing.\nis_playing ::\n             (AudioStreamPlayer :< cls, Object :< cls) => cls -> IO Bool\nis_playing cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_is_playing\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"is_playing\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer.is_playing\n\n{-# NOINLINE bindAudioStreamPlayer_play #-}\n\n-- | Plays the audio from the given @from_position@, in seconds.\nbindAudioStreamPlayer_play :: MethodBind\nbindAudioStreamPlayer_play\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"play\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Plays the audio from the given @from_position@, in seconds.\nplay ::\n       (AudioStreamPlayer :< cls, Object :< cls) =>\n       cls -> Maybe Float -> IO ()\nplay cls arg1\n  = withVariantArray [maybe (VariantReal (0)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_play (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"play\" '[Maybe Float] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer.play\n\n{-# NOINLINE bindAudioStreamPlayer_seek #-}\n\n-- | Sets the position from which audio will be played, in seconds.\nbindAudioStreamPlayer_seek :: MethodBind\nbindAudioStreamPlayer_seek\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"seek\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the position from which audio will be played, in seconds.\nseek ::\n       (AudioStreamPlayer :< cls, Object :< cls) => cls -> Float -> IO ()\nseek cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_seek (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"seek\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.AudioStreamPlayer.seek\n\n{-# NOINLINE bindAudioStreamPlayer_set_autoplay #-}\n\n-- | If @true@, audio plays when added to scene tree.\nbindAudioStreamPlayer_set_autoplay :: MethodBind\nbindAudioStreamPlayer_set_autoplay\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_autoplay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, audio plays when added to scene tree.\nset_autoplay ::\n               (AudioStreamPlayer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_autoplay cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_set_autoplay\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"set_autoplay\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer.set_autoplay\n\n{-# NOINLINE bindAudioStreamPlayer_set_bus #-}\n\n-- | Bus on which this audio is playing.\nbindAudioStreamPlayer_set_bus :: MethodBind\nbindAudioStreamPlayer_set_bus\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Bus on which this audio is playing.\nset_bus ::\n          (AudioStreamPlayer :< cls, Object :< cls) =>\n          cls -> GodotString -> IO ()\nset_bus cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_set_bus (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"set_bus\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer.set_bus\n\n{-# NOINLINE bindAudioStreamPlayer_set_mix_target #-}\n\n-- | If the audio configuration has more than two speakers, this sets the target channels. See @enum MixTarget@ constants.\nbindAudioStreamPlayer_set_mix_target :: MethodBind\nbindAudioStreamPlayer_set_mix_target\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_mix_target\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If the audio configuration has more than two speakers, this sets the target channels. See @enum MixTarget@ constants.\nset_mix_target ::\n                 (AudioStreamPlayer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_mix_target cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_set_mix_target\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"set_mix_target\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer.set_mix_target\n\n{-# NOINLINE bindAudioStreamPlayer_set_pitch_scale #-}\n\n-- | The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate.\nbindAudioStreamPlayer_set_pitch_scale :: MethodBind\nbindAudioStreamPlayer_set_pitch_scale\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_pitch_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate.\nset_pitch_scale ::\n                  (AudioStreamPlayer :< cls, Object :< cls) => cls -> Float -> IO ()\nset_pitch_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_set_pitch_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"set_pitch_scale\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer.set_pitch_scale\n\n{-# NOINLINE bindAudioStreamPlayer_set_stream #-}\n\n-- | The @AudioStream@ object to be played.\nbindAudioStreamPlayer_set_stream :: MethodBind\nbindAudioStreamPlayer_set_stream\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_stream\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @AudioStream@ object to be played.\nset_stream ::\n             (AudioStreamPlayer :< cls, Object :< cls) =>\n             cls -> AudioStream -> IO ()\nset_stream cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_set_stream\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"set_stream\" '[AudioStream]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer.set_stream\n\n{-# NOINLINE bindAudioStreamPlayer_set_stream_paused #-}\n\n-- | If @true@, the playback is paused. You can resume it by setting @stream_paused@ to @false@.\nbindAudioStreamPlayer_set_stream_paused :: MethodBind\nbindAudioStreamPlayer_set_stream_paused\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_stream_paused\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the playback is paused. You can resume it by setting @stream_paused@ to @false@.\nset_stream_paused ::\n                    (AudioStreamPlayer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_stream_paused cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_set_stream_paused\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"set_stream_paused\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer.set_stream_paused\n\n{-# NOINLINE bindAudioStreamPlayer_set_volume_db #-}\n\n-- | Volume of sound, in dB.\nbindAudioStreamPlayer_set_volume_db :: MethodBind\nbindAudioStreamPlayer_set_volume_db\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_volume_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Volume of sound, in dB.\nset_volume_db ::\n                (AudioStreamPlayer :< cls, Object :< cls) => cls -> Float -> IO ()\nset_volume_db cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_set_volume_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"set_volume_db\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer.set_volume_db\n\n{-# NOINLINE bindAudioStreamPlayer_stop #-}\n\n-- | Stops the audio.\nbindAudioStreamPlayer_stop :: MethodBind\nbindAudioStreamPlayer_stop\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"stop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops the audio.\nstop :: (AudioStreamPlayer :< cls, Object :< cls) => cls -> IO ()\nstop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer_stop (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer \"stop\" '[] (IO ()) where\n        nodeMethod = Godot.Core.AudioStreamPlayer.stop"
  },
  {
    "path": "src/Godot/Core/AudioStreamPlayer2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioStreamPlayer2D\n       (Godot.Core.AudioStreamPlayer2D.sig_finished,\n        Godot.Core.AudioStreamPlayer2D._bus_layout_changed,\n        Godot.Core.AudioStreamPlayer2D._is_active,\n        Godot.Core.AudioStreamPlayer2D._set_playing,\n        Godot.Core.AudioStreamPlayer2D.get_area_mask,\n        Godot.Core.AudioStreamPlayer2D.get_attenuation,\n        Godot.Core.AudioStreamPlayer2D.get_bus,\n        Godot.Core.AudioStreamPlayer2D.get_max_distance,\n        Godot.Core.AudioStreamPlayer2D.get_pitch_scale,\n        Godot.Core.AudioStreamPlayer2D.get_playback_position,\n        Godot.Core.AudioStreamPlayer2D.get_stream,\n        Godot.Core.AudioStreamPlayer2D.get_stream_paused,\n        Godot.Core.AudioStreamPlayer2D.get_stream_playback,\n        Godot.Core.AudioStreamPlayer2D.get_volume_db,\n        Godot.Core.AudioStreamPlayer2D.is_autoplay_enabled,\n        Godot.Core.AudioStreamPlayer2D.is_playing,\n        Godot.Core.AudioStreamPlayer2D.play,\n        Godot.Core.AudioStreamPlayer2D.seek,\n        Godot.Core.AudioStreamPlayer2D.set_area_mask,\n        Godot.Core.AudioStreamPlayer2D.set_attenuation,\n        Godot.Core.AudioStreamPlayer2D.set_autoplay,\n        Godot.Core.AudioStreamPlayer2D.set_bus,\n        Godot.Core.AudioStreamPlayer2D.set_max_distance,\n        Godot.Core.AudioStreamPlayer2D.set_pitch_scale,\n        Godot.Core.AudioStreamPlayer2D.set_stream,\n        Godot.Core.AudioStreamPlayer2D.set_stream_paused,\n        Godot.Core.AudioStreamPlayer2D.set_volume_db,\n        Godot.Core.AudioStreamPlayer2D.stop)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\n-- | Emitted when the audio stops playing.\nsig_finished :: Godot.Internal.Dispatch.Signal AudioStreamPlayer2D\nsig_finished = Godot.Internal.Dispatch.Signal \"finished\"\n\ninstance NodeSignal AudioStreamPlayer2D \"finished\" '[]\n\ninstance NodeProperty AudioStreamPlayer2D \"area_mask\" Int 'False\n         where\n        nodeProperty\n          = (get_area_mask, wrapDroppingSetter set_area_mask, Nothing)\n\ninstance NodeProperty AudioStreamPlayer2D \"attenuation\" Float\n           'False\n         where\n        nodeProperty\n          = (get_attenuation, wrapDroppingSetter set_attenuation, Nothing)\n\ninstance NodeProperty AudioStreamPlayer2D \"autoplay\" Bool 'False\n         where\n        nodeProperty\n          = (is_autoplay_enabled, wrapDroppingSetter set_autoplay, Nothing)\n\ninstance NodeProperty AudioStreamPlayer2D \"bus\" GodotString 'False\n         where\n        nodeProperty = (get_bus, wrapDroppingSetter set_bus, Nothing)\n\ninstance NodeProperty AudioStreamPlayer2D \"max_distance\" Float\n           'False\n         where\n        nodeProperty\n          = (get_max_distance, wrapDroppingSetter set_max_distance, Nothing)\n\ninstance NodeProperty AudioStreamPlayer2D \"pitch_scale\" Float\n           'False\n         where\n        nodeProperty\n          = (get_pitch_scale, wrapDroppingSetter set_pitch_scale, Nothing)\n\ninstance NodeProperty AudioStreamPlayer2D \"playing\" Bool 'False\n         where\n        nodeProperty\n          = (is_playing, wrapDroppingSetter _set_playing, Nothing)\n\ninstance NodeProperty AudioStreamPlayer2D \"stream\" AudioStream\n           'False\n         where\n        nodeProperty = (get_stream, wrapDroppingSetter set_stream, Nothing)\n\ninstance NodeProperty AudioStreamPlayer2D \"stream_paused\" Bool\n           'False\n         where\n        nodeProperty\n          = (get_stream_paused, wrapDroppingSetter set_stream_paused,\n             Nothing)\n\ninstance NodeProperty AudioStreamPlayer2D \"volume_db\" Float 'False\n         where\n        nodeProperty\n          = (get_volume_db, wrapDroppingSetter set_volume_db, Nothing)\n\n{-# NOINLINE bindAudioStreamPlayer2D__bus_layout_changed #-}\n\nbindAudioStreamPlayer2D__bus_layout_changed :: MethodBind\nbindAudioStreamPlayer2D__bus_layout_changed\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"_bus_layout_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_bus_layout_changed ::\n                      (AudioStreamPlayer2D :< cls, Object :< cls) => cls -> IO ()\n_bus_layout_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D__bus_layout_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"_bus_layout_changed\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D._bus_layout_changed\n\n{-# NOINLINE bindAudioStreamPlayer2D__is_active #-}\n\nbindAudioStreamPlayer2D__is_active :: MethodBind\nbindAudioStreamPlayer2D__is_active\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"_is_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_is_active ::\n             (AudioStreamPlayer2D :< cls, Object :< cls) => cls -> IO Bool\n_is_active cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D__is_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"_is_active\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D._is_active\n\n{-# NOINLINE bindAudioStreamPlayer2D__set_playing #-}\n\n-- | If @true@, audio is playing.\nbindAudioStreamPlayer2D__set_playing :: MethodBind\nbindAudioStreamPlayer2D__set_playing\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"_set_playing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, audio is playing.\n_set_playing ::\n               (AudioStreamPlayer2D :< cls, Object :< cls) => cls -> Bool -> IO ()\n_set_playing cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D__set_playing\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"_set_playing\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D._set_playing\n\n{-# NOINLINE bindAudioStreamPlayer2D_get_area_mask #-}\n\n-- | Areas in which this sound plays.\nbindAudioStreamPlayer2D_get_area_mask :: MethodBind\nbindAudioStreamPlayer2D_get_area_mask\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_area_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Areas in which this sound plays.\nget_area_mask ::\n                (AudioStreamPlayer2D :< cls, Object :< cls) => cls -> IO Int\nget_area_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_get_area_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"get_area_mask\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.get_area_mask\n\n{-# NOINLINE bindAudioStreamPlayer2D_get_attenuation #-}\n\n-- | Dampens audio over distance with this as an exponent.\nbindAudioStreamPlayer2D_get_attenuation :: MethodBind\nbindAudioStreamPlayer2D_get_attenuation\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_attenuation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Dampens audio over distance with this as an exponent.\nget_attenuation ::\n                  (AudioStreamPlayer2D :< cls, Object :< cls) => cls -> IO Float\nget_attenuation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_get_attenuation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"get_attenuation\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.get_attenuation\n\n{-# NOINLINE bindAudioStreamPlayer2D_get_bus #-}\n\n-- | Bus on which this audio is playing.\nbindAudioStreamPlayer2D_get_bus :: MethodBind\nbindAudioStreamPlayer2D_get_bus\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Bus on which this audio is playing.\nget_bus ::\n          (AudioStreamPlayer2D :< cls, Object :< cls) =>\n          cls -> IO GodotString\nget_bus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_get_bus (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"get_bus\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.get_bus\n\n{-# NOINLINE bindAudioStreamPlayer2D_get_max_distance #-}\n\n-- | Maximum distance from which audio is still hearable.\nbindAudioStreamPlayer2D_get_max_distance :: MethodBind\nbindAudioStreamPlayer2D_get_max_distance\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_max_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum distance from which audio is still hearable.\nget_max_distance ::\n                   (AudioStreamPlayer2D :< cls, Object :< cls) => cls -> IO Float\nget_max_distance cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_get_max_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"get_max_distance\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.get_max_distance\n\n{-# NOINLINE bindAudioStreamPlayer2D_get_pitch_scale #-}\n\n-- | The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate.\nbindAudioStreamPlayer2D_get_pitch_scale :: MethodBind\nbindAudioStreamPlayer2D_get_pitch_scale\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_pitch_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate.\nget_pitch_scale ::\n                  (AudioStreamPlayer2D :< cls, Object :< cls) => cls -> IO Float\nget_pitch_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_get_pitch_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"get_pitch_scale\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.get_pitch_scale\n\n{-# NOINLINE bindAudioStreamPlayer2D_get_playback_position #-}\n\n-- | Returns the position in the @AudioStream@.\nbindAudioStreamPlayer2D_get_playback_position :: MethodBind\nbindAudioStreamPlayer2D_get_playback_position\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_playback_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position in the @AudioStream@.\nget_playback_position ::\n                        (AudioStreamPlayer2D :< cls, Object :< cls) => cls -> IO Float\nget_playback_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioStreamPlayer2D_get_playback_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"get_playback_position\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.get_playback_position\n\n{-# NOINLINE bindAudioStreamPlayer2D_get_stream #-}\n\n-- | The @AudioStream@ object to be played.\nbindAudioStreamPlayer2D_get_stream :: MethodBind\nbindAudioStreamPlayer2D_get_stream\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_stream\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @AudioStream@ object to be played.\nget_stream ::\n             (AudioStreamPlayer2D :< cls, Object :< cls) =>\n             cls -> IO AudioStream\nget_stream cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_get_stream\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"get_stream\" '[]\n           (IO AudioStream)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.get_stream\n\n{-# NOINLINE bindAudioStreamPlayer2D_get_stream_paused #-}\n\n-- | If @true@, the playback is paused. You can resume it by setting @stream_paused@ to @false@.\nbindAudioStreamPlayer2D_get_stream_paused :: MethodBind\nbindAudioStreamPlayer2D_get_stream_paused\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_stream_paused\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the playback is paused. You can resume it by setting @stream_paused@ to @false@.\nget_stream_paused ::\n                    (AudioStreamPlayer2D :< cls, Object :< cls) => cls -> IO Bool\nget_stream_paused cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_get_stream_paused\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"get_stream_paused\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.get_stream_paused\n\n{-# NOINLINE bindAudioStreamPlayer2D_get_stream_playback #-}\n\n-- | Returns the @AudioStreamPlayback@ object associated with this @AudioStreamPlayer2D@.\nbindAudioStreamPlayer2D_get_stream_playback :: MethodBind\nbindAudioStreamPlayer2D_get_stream_playback\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_stream_playback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @AudioStreamPlayback@ object associated with this @AudioStreamPlayer2D@.\nget_stream_playback ::\n                      (AudioStreamPlayer2D :< cls, Object :< cls) =>\n                      cls -> IO AudioStreamPlayback\nget_stream_playback cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_get_stream_playback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"get_stream_playback\" '[]\n           (IO AudioStreamPlayback)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.get_stream_playback\n\n{-# NOINLINE bindAudioStreamPlayer2D_get_volume_db #-}\n\n-- | Base volume without dampening.\nbindAudioStreamPlayer2D_get_volume_db :: MethodBind\nbindAudioStreamPlayer2D_get_volume_db\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_volume_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Base volume without dampening.\nget_volume_db ::\n                (AudioStreamPlayer2D :< cls, Object :< cls) => cls -> IO Float\nget_volume_db cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_get_volume_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"get_volume_db\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.get_volume_db\n\n{-# NOINLINE bindAudioStreamPlayer2D_is_autoplay_enabled #-}\n\n-- | If @true@, audio plays when added to scene tree.\nbindAudioStreamPlayer2D_is_autoplay_enabled :: MethodBind\nbindAudioStreamPlayer2D_is_autoplay_enabled\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_autoplay_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, audio plays when added to scene tree.\nis_autoplay_enabled ::\n                      (AudioStreamPlayer2D :< cls, Object :< cls) => cls -> IO Bool\nis_autoplay_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_is_autoplay_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"is_autoplay_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.is_autoplay_enabled\n\n{-# NOINLINE bindAudioStreamPlayer2D_is_playing #-}\n\n-- | If @true@, audio is playing.\nbindAudioStreamPlayer2D_is_playing :: MethodBind\nbindAudioStreamPlayer2D_is_playing\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_playing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, audio is playing.\nis_playing ::\n             (AudioStreamPlayer2D :< cls, Object :< cls) => cls -> IO Bool\nis_playing cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_is_playing\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"is_playing\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.is_playing\n\n{-# NOINLINE bindAudioStreamPlayer2D_play #-}\n\n-- | Plays the audio from the given position @from_position@, in seconds.\nbindAudioStreamPlayer2D_play :: MethodBind\nbindAudioStreamPlayer2D_play\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"play\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Plays the audio from the given position @from_position@, in seconds.\nplay ::\n       (AudioStreamPlayer2D :< cls, Object :< cls) =>\n       cls -> Maybe Float -> IO ()\nplay cls arg1\n  = withVariantArray [maybe (VariantReal (0)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_play (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"play\" '[Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.play\n\n{-# NOINLINE bindAudioStreamPlayer2D_seek #-}\n\n-- | Sets the position from which audio will be played, in seconds.\nbindAudioStreamPlayer2D_seek :: MethodBind\nbindAudioStreamPlayer2D_seek\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"seek\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the position from which audio will be played, in seconds.\nseek ::\n       (AudioStreamPlayer2D :< cls, Object :< cls) =>\n       cls -> Float -> IO ()\nseek cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_seek (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"seek\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.seek\n\n{-# NOINLINE bindAudioStreamPlayer2D_set_area_mask #-}\n\n-- | Areas in which this sound plays.\nbindAudioStreamPlayer2D_set_area_mask :: MethodBind\nbindAudioStreamPlayer2D_set_area_mask\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_area_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Areas in which this sound plays.\nset_area_mask ::\n                (AudioStreamPlayer2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_area_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_set_area_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"set_area_mask\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.set_area_mask\n\n{-# NOINLINE bindAudioStreamPlayer2D_set_attenuation #-}\n\n-- | Dampens audio over distance with this as an exponent.\nbindAudioStreamPlayer2D_set_attenuation :: MethodBind\nbindAudioStreamPlayer2D_set_attenuation\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_attenuation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Dampens audio over distance with this as an exponent.\nset_attenuation ::\n                  (AudioStreamPlayer2D :< cls, Object :< cls) =>\n                  cls -> Float -> IO ()\nset_attenuation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_set_attenuation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"set_attenuation\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.set_attenuation\n\n{-# NOINLINE bindAudioStreamPlayer2D_set_autoplay #-}\n\n-- | If @true@, audio plays when added to scene tree.\nbindAudioStreamPlayer2D_set_autoplay :: MethodBind\nbindAudioStreamPlayer2D_set_autoplay\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_autoplay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, audio plays when added to scene tree.\nset_autoplay ::\n               (AudioStreamPlayer2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_autoplay cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_set_autoplay\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"set_autoplay\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.set_autoplay\n\n{-# NOINLINE bindAudioStreamPlayer2D_set_bus #-}\n\n-- | Bus on which this audio is playing.\nbindAudioStreamPlayer2D_set_bus :: MethodBind\nbindAudioStreamPlayer2D_set_bus\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Bus on which this audio is playing.\nset_bus ::\n          (AudioStreamPlayer2D :< cls, Object :< cls) =>\n          cls -> GodotString -> IO ()\nset_bus cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_set_bus (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"set_bus\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.set_bus\n\n{-# NOINLINE bindAudioStreamPlayer2D_set_max_distance #-}\n\n-- | Maximum distance from which audio is still hearable.\nbindAudioStreamPlayer2D_set_max_distance :: MethodBind\nbindAudioStreamPlayer2D_set_max_distance\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_max_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum distance from which audio is still hearable.\nset_max_distance ::\n                   (AudioStreamPlayer2D :< cls, Object :< cls) =>\n                   cls -> Float -> IO ()\nset_max_distance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_set_max_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"set_max_distance\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.set_max_distance\n\n{-# NOINLINE bindAudioStreamPlayer2D_set_pitch_scale #-}\n\n-- | The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate.\nbindAudioStreamPlayer2D_set_pitch_scale :: MethodBind\nbindAudioStreamPlayer2D_set_pitch_scale\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_pitch_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate.\nset_pitch_scale ::\n                  (AudioStreamPlayer2D :< cls, Object :< cls) =>\n                  cls -> Float -> IO ()\nset_pitch_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_set_pitch_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"set_pitch_scale\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.set_pitch_scale\n\n{-# NOINLINE bindAudioStreamPlayer2D_set_stream #-}\n\n-- | The @AudioStream@ object to be played.\nbindAudioStreamPlayer2D_set_stream :: MethodBind\nbindAudioStreamPlayer2D_set_stream\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_stream\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @AudioStream@ object to be played.\nset_stream ::\n             (AudioStreamPlayer2D :< cls, Object :< cls) =>\n             cls -> AudioStream -> IO ()\nset_stream cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_set_stream\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"set_stream\" '[AudioStream]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.set_stream\n\n{-# NOINLINE bindAudioStreamPlayer2D_set_stream_paused #-}\n\n-- | If @true@, the playback is paused. You can resume it by setting @stream_paused@ to @false@.\nbindAudioStreamPlayer2D_set_stream_paused :: MethodBind\nbindAudioStreamPlayer2D_set_stream_paused\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_stream_paused\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the playback is paused. You can resume it by setting @stream_paused@ to @false@.\nset_stream_paused ::\n                    (AudioStreamPlayer2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_stream_paused cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_set_stream_paused\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"set_stream_paused\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.set_stream_paused\n\n{-# NOINLINE bindAudioStreamPlayer2D_set_volume_db #-}\n\n-- | Base volume without dampening.\nbindAudioStreamPlayer2D_set_volume_db :: MethodBind\nbindAudioStreamPlayer2D_set_volume_db\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_volume_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Base volume without dampening.\nset_volume_db ::\n                (AudioStreamPlayer2D :< cls, Object :< cls) =>\n                cls -> Float -> IO ()\nset_volume_db cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_set_volume_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"set_volume_db\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.set_volume_db\n\n{-# NOINLINE bindAudioStreamPlayer2D_stop #-}\n\n-- | Stops the audio.\nbindAudioStreamPlayer2D_stop :: MethodBind\nbindAudioStreamPlayer2D_stop\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer2D\" $\n        \\ clsNamePtr ->\n          withCString \"stop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops the audio.\nstop :: (AudioStreamPlayer2D :< cls, Object :< cls) => cls -> IO ()\nstop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer2D_stop (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer2D \"stop\" '[] (IO ()) where\n        nodeMethod = Godot.Core.AudioStreamPlayer2D.stop"
  },
  {
    "path": "src/Godot/Core/AudioStreamPlayer3D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioStreamPlayer3D\n       (Godot.Core.AudioStreamPlayer3D._ATTENUATION_INVERSE_SQUARE_DISTANCE,\n        Godot.Core.AudioStreamPlayer3D._ATTENUATION_INVERSE_DISTANCE,\n        Godot.Core.AudioStreamPlayer3D._DOPPLER_TRACKING_PHYSICS_STEP,\n        Godot.Core.AudioStreamPlayer3D._DOPPLER_TRACKING_DISABLED,\n        Godot.Core.AudioStreamPlayer3D._ATTENUATION_DISABLED,\n        Godot.Core.AudioStreamPlayer3D._OUT_OF_RANGE_PAUSE,\n        Godot.Core.AudioStreamPlayer3D._ATTENUATION_LOGARITHMIC,\n        Godot.Core.AudioStreamPlayer3D._OUT_OF_RANGE_MIX,\n        Godot.Core.AudioStreamPlayer3D._DOPPLER_TRACKING_IDLE_STEP,\n        Godot.Core.AudioStreamPlayer3D.sig_finished,\n        Godot.Core.AudioStreamPlayer3D._bus_layout_changed,\n        Godot.Core.AudioStreamPlayer3D._is_active,\n        Godot.Core.AudioStreamPlayer3D._set_playing,\n        Godot.Core.AudioStreamPlayer3D.get_area_mask,\n        Godot.Core.AudioStreamPlayer3D.get_attenuation_filter_cutoff_hz,\n        Godot.Core.AudioStreamPlayer3D.get_attenuation_filter_db,\n        Godot.Core.AudioStreamPlayer3D.get_attenuation_model,\n        Godot.Core.AudioStreamPlayer3D.get_bus,\n        Godot.Core.AudioStreamPlayer3D.get_doppler_tracking,\n        Godot.Core.AudioStreamPlayer3D.get_emission_angle,\n        Godot.Core.AudioStreamPlayer3D.get_emission_angle_filter_attenuation_db,\n        Godot.Core.AudioStreamPlayer3D.get_max_db,\n        Godot.Core.AudioStreamPlayer3D.get_max_distance,\n        Godot.Core.AudioStreamPlayer3D.get_out_of_range_mode,\n        Godot.Core.AudioStreamPlayer3D.get_pitch_scale,\n        Godot.Core.AudioStreamPlayer3D.get_playback_position,\n        Godot.Core.AudioStreamPlayer3D.get_stream,\n        Godot.Core.AudioStreamPlayer3D.get_stream_paused,\n        Godot.Core.AudioStreamPlayer3D.get_stream_playback,\n        Godot.Core.AudioStreamPlayer3D.get_unit_db,\n        Godot.Core.AudioStreamPlayer3D.get_unit_size,\n        Godot.Core.AudioStreamPlayer3D.is_autoplay_enabled,\n        Godot.Core.AudioStreamPlayer3D.is_emission_angle_enabled,\n        Godot.Core.AudioStreamPlayer3D.is_playing,\n        Godot.Core.AudioStreamPlayer3D.play,\n        Godot.Core.AudioStreamPlayer3D.seek,\n        Godot.Core.AudioStreamPlayer3D.set_area_mask,\n        Godot.Core.AudioStreamPlayer3D.set_attenuation_filter_cutoff_hz,\n        Godot.Core.AudioStreamPlayer3D.set_attenuation_filter_db,\n        Godot.Core.AudioStreamPlayer3D.set_attenuation_model,\n        Godot.Core.AudioStreamPlayer3D.set_autoplay,\n        Godot.Core.AudioStreamPlayer3D.set_bus,\n        Godot.Core.AudioStreamPlayer3D.set_doppler_tracking,\n        Godot.Core.AudioStreamPlayer3D.set_emission_angle,\n        Godot.Core.AudioStreamPlayer3D.set_emission_angle_enabled,\n        Godot.Core.AudioStreamPlayer3D.set_emission_angle_filter_attenuation_db,\n        Godot.Core.AudioStreamPlayer3D.set_max_db,\n        Godot.Core.AudioStreamPlayer3D.set_max_distance,\n        Godot.Core.AudioStreamPlayer3D.set_out_of_range_mode,\n        Godot.Core.AudioStreamPlayer3D.set_pitch_scale,\n        Godot.Core.AudioStreamPlayer3D.set_stream,\n        Godot.Core.AudioStreamPlayer3D.set_stream_paused,\n        Godot.Core.AudioStreamPlayer3D.set_unit_db,\n        Godot.Core.AudioStreamPlayer3D.set_unit_size,\n        Godot.Core.AudioStreamPlayer3D.stop)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\n_ATTENUATION_INVERSE_SQUARE_DISTANCE :: Int\n_ATTENUATION_INVERSE_SQUARE_DISTANCE = 1\n\n_ATTENUATION_INVERSE_DISTANCE :: Int\n_ATTENUATION_INVERSE_DISTANCE = 0\n\n_DOPPLER_TRACKING_PHYSICS_STEP :: Int\n_DOPPLER_TRACKING_PHYSICS_STEP = 2\n\n_DOPPLER_TRACKING_DISABLED :: Int\n_DOPPLER_TRACKING_DISABLED = 0\n\n_ATTENUATION_DISABLED :: Int\n_ATTENUATION_DISABLED = 3\n\n_OUT_OF_RANGE_PAUSE :: Int\n_OUT_OF_RANGE_PAUSE = 1\n\n_ATTENUATION_LOGARITHMIC :: Int\n_ATTENUATION_LOGARITHMIC = 2\n\n_OUT_OF_RANGE_MIX :: Int\n_OUT_OF_RANGE_MIX = 0\n\n_DOPPLER_TRACKING_IDLE_STEP :: Int\n_DOPPLER_TRACKING_IDLE_STEP = 1\n\n-- | Emitted when the audio stops playing.\nsig_finished :: Godot.Internal.Dispatch.Signal AudioStreamPlayer3D\nsig_finished = Godot.Internal.Dispatch.Signal \"finished\"\n\ninstance NodeSignal AudioStreamPlayer3D \"finished\" '[]\n\ninstance NodeProperty AudioStreamPlayer3D \"area_mask\" Int 'False\n         where\n        nodeProperty\n          = (get_area_mask, wrapDroppingSetter set_area_mask, Nothing)\n\ninstance NodeProperty AudioStreamPlayer3D\n           \"attenuation_filter_cutoff_hz\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_attenuation_filter_cutoff_hz,\n             wrapDroppingSetter set_attenuation_filter_cutoff_hz, Nothing)\n\ninstance NodeProperty AudioStreamPlayer3D \"attenuation_filter_db\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_attenuation_filter_db,\n             wrapDroppingSetter set_attenuation_filter_db, Nothing)\n\ninstance NodeProperty AudioStreamPlayer3D \"attenuation_model\" Int\n           'False\n         where\n        nodeProperty\n          = (get_attenuation_model, wrapDroppingSetter set_attenuation_model,\n             Nothing)\n\ninstance NodeProperty AudioStreamPlayer3D \"autoplay\" Bool 'False\n         where\n        nodeProperty\n          = (is_autoplay_enabled, wrapDroppingSetter set_autoplay, Nothing)\n\ninstance NodeProperty AudioStreamPlayer3D \"bus\" GodotString 'False\n         where\n        nodeProperty = (get_bus, wrapDroppingSetter set_bus, Nothing)\n\ninstance NodeProperty AudioStreamPlayer3D \"doppler_tracking\" Int\n           'False\n         where\n        nodeProperty\n          = (get_doppler_tracking, wrapDroppingSetter set_doppler_tracking,\n             Nothing)\n\ninstance NodeProperty AudioStreamPlayer3D \"emission_angle_degrees\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_emission_angle, wrapDroppingSetter set_emission_angle,\n             Nothing)\n\ninstance NodeProperty AudioStreamPlayer3D \"emission_angle_enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (is_emission_angle_enabled,\n             wrapDroppingSetter set_emission_angle_enabled, Nothing)\n\ninstance NodeProperty AudioStreamPlayer3D\n           \"emission_angle_filter_attenuation_db\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_emission_angle_filter_attenuation_db,\n             wrapDroppingSetter set_emission_angle_filter_attenuation_db,\n             Nothing)\n\ninstance NodeProperty AudioStreamPlayer3D \"max_db\" Float 'False\n         where\n        nodeProperty = (get_max_db, wrapDroppingSetter set_max_db, Nothing)\n\ninstance NodeProperty AudioStreamPlayer3D \"max_distance\" Float\n           'False\n         where\n        nodeProperty\n          = (get_max_distance, wrapDroppingSetter set_max_distance, Nothing)\n\ninstance NodeProperty AudioStreamPlayer3D \"out_of_range_mode\" Int\n           'False\n         where\n        nodeProperty\n          = (get_out_of_range_mode, wrapDroppingSetter set_out_of_range_mode,\n             Nothing)\n\ninstance NodeProperty AudioStreamPlayer3D \"pitch_scale\" Float\n           'False\n         where\n        nodeProperty\n          = (get_pitch_scale, wrapDroppingSetter set_pitch_scale, Nothing)\n\ninstance NodeProperty AudioStreamPlayer3D \"playing\" Bool 'False\n         where\n        nodeProperty\n          = (is_playing, wrapDroppingSetter _set_playing, Nothing)\n\ninstance NodeProperty AudioStreamPlayer3D \"stream\" AudioStream\n           'False\n         where\n        nodeProperty = (get_stream, wrapDroppingSetter set_stream, Nothing)\n\ninstance NodeProperty AudioStreamPlayer3D \"stream_paused\" Bool\n           'False\n         where\n        nodeProperty\n          = (get_stream_paused, wrapDroppingSetter set_stream_paused,\n             Nothing)\n\ninstance NodeProperty AudioStreamPlayer3D \"unit_db\" Float 'False\n         where\n        nodeProperty\n          = (get_unit_db, wrapDroppingSetter set_unit_db, Nothing)\n\ninstance NodeProperty AudioStreamPlayer3D \"unit_size\" Float 'False\n         where\n        nodeProperty\n          = (get_unit_size, wrapDroppingSetter set_unit_size, Nothing)\n\n{-# NOINLINE bindAudioStreamPlayer3D__bus_layout_changed #-}\n\nbindAudioStreamPlayer3D__bus_layout_changed :: MethodBind\nbindAudioStreamPlayer3D__bus_layout_changed\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"_bus_layout_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_bus_layout_changed ::\n                      (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO ()\n_bus_layout_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D__bus_layout_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"_bus_layout_changed\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D._bus_layout_changed\n\n{-# NOINLINE bindAudioStreamPlayer3D__is_active #-}\n\nbindAudioStreamPlayer3D__is_active :: MethodBind\nbindAudioStreamPlayer3D__is_active\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"_is_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_is_active ::\n             (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO Bool\n_is_active cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D__is_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"_is_active\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D._is_active\n\n{-# NOINLINE bindAudioStreamPlayer3D__set_playing #-}\n\n-- | If @true@, audio is playing.\nbindAudioStreamPlayer3D__set_playing :: MethodBind\nbindAudioStreamPlayer3D__set_playing\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"_set_playing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, audio is playing.\n_set_playing ::\n               (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> Bool -> IO ()\n_set_playing cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D__set_playing\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"_set_playing\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D._set_playing\n\n{-# NOINLINE bindAudioStreamPlayer3D_get_area_mask #-}\n\n-- | Areas in which this sound plays.\nbindAudioStreamPlayer3D_get_area_mask :: MethodBind\nbindAudioStreamPlayer3D_get_area_mask\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_area_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Areas in which this sound plays.\nget_area_mask ::\n                (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO Int\nget_area_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_get_area_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"get_area_mask\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.get_area_mask\n\n{-# NOINLINE bindAudioStreamPlayer3D_get_attenuation_filter_cutoff_hz\n             #-}\n\n-- | Dampens audio above this frequency, in Hz.\nbindAudioStreamPlayer3D_get_attenuation_filter_cutoff_hz ::\n                                                         MethodBind\nbindAudioStreamPlayer3D_get_attenuation_filter_cutoff_hz\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_attenuation_filter_cutoff_hz\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Dampens audio above this frequency, in Hz.\nget_attenuation_filter_cutoff_hz ::\n                                   (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO Float\nget_attenuation_filter_cutoff_hz cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioStreamPlayer3D_get_attenuation_filter_cutoff_hz\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D\n           \"get_attenuation_filter_cutoff_hz\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.AudioStreamPlayer3D.get_attenuation_filter_cutoff_hz\n\n{-# NOINLINE bindAudioStreamPlayer3D_get_attenuation_filter_db #-}\n\n-- | Amount how much the filter affects the loudness, in dB.\nbindAudioStreamPlayer3D_get_attenuation_filter_db :: MethodBind\nbindAudioStreamPlayer3D_get_attenuation_filter_db\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_attenuation_filter_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount how much the filter affects the loudness, in dB.\nget_attenuation_filter_db ::\n                            (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO Float\nget_attenuation_filter_db cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioStreamPlayer3D_get_attenuation_filter_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"get_attenuation_filter_db\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.AudioStreamPlayer3D.get_attenuation_filter_db\n\n{-# NOINLINE bindAudioStreamPlayer3D_get_attenuation_model #-}\n\n-- | Decides if audio should get quieter with distance linearly, quadratically, logarithmically, or not be affected by distance, effectively disabling attenuation.\nbindAudioStreamPlayer3D_get_attenuation_model :: MethodBind\nbindAudioStreamPlayer3D_get_attenuation_model\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_attenuation_model\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Decides if audio should get quieter with distance linearly, quadratically, logarithmically, or not be affected by distance, effectively disabling attenuation.\nget_attenuation_model ::\n                        (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO Int\nget_attenuation_model cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioStreamPlayer3D_get_attenuation_model\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"get_attenuation_model\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.get_attenuation_model\n\n{-# NOINLINE bindAudioStreamPlayer3D_get_bus #-}\n\n-- | Bus on which this audio is playing.\nbindAudioStreamPlayer3D_get_bus :: MethodBind\nbindAudioStreamPlayer3D_get_bus\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Bus on which this audio is playing.\nget_bus ::\n          (AudioStreamPlayer3D :< cls, Object :< cls) =>\n          cls -> IO GodotString\nget_bus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_get_bus (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"get_bus\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.get_bus\n\n{-# NOINLINE bindAudioStreamPlayer3D_get_doppler_tracking #-}\n\n-- | Decides in which step the Doppler effect should be calculated.\nbindAudioStreamPlayer3D_get_doppler_tracking :: MethodBind\nbindAudioStreamPlayer3D_get_doppler_tracking\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_doppler_tracking\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Decides in which step the Doppler effect should be calculated.\nget_doppler_tracking ::\n                       (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO Int\nget_doppler_tracking cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_get_doppler_tracking\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"get_doppler_tracking\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.get_doppler_tracking\n\n{-# NOINLINE bindAudioStreamPlayer3D_get_emission_angle #-}\n\n-- | The angle in which the audio reaches cameras undampened.\nbindAudioStreamPlayer3D_get_emission_angle :: MethodBind\nbindAudioStreamPlayer3D_get_emission_angle\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_angle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The angle in which the audio reaches cameras undampened.\nget_emission_angle ::\n                     (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO Float\nget_emission_angle cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_get_emission_angle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"get_emission_angle\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.get_emission_angle\n\n{-# NOINLINE bindAudioStreamPlayer3D_get_emission_angle_filter_attenuation_db\n             #-}\n\n-- | Dampens audio if camera is outside of @emission_angle_degrees@ and @emission_angle_enabled@ is set by this factor, in dB.\nbindAudioStreamPlayer3D_get_emission_angle_filter_attenuation_db ::\n                                                                 MethodBind\nbindAudioStreamPlayer3D_get_emission_angle_filter_attenuation_db\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_angle_filter_attenuation_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Dampens audio if camera is outside of @emission_angle_degrees@ and @emission_angle_enabled@ is set by this factor, in dB.\nget_emission_angle_filter_attenuation_db ::\n                                           (AudioStreamPlayer3D :< cls, Object :< cls) =>\n                                           cls -> IO Float\nget_emission_angle_filter_attenuation_db cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioStreamPlayer3D_get_emission_angle_filter_attenuation_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D\n           \"get_emission_angle_filter_attenuation_db\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.AudioStreamPlayer3D.get_emission_angle_filter_attenuation_db\n\n{-# NOINLINE bindAudioStreamPlayer3D_get_max_db #-}\n\n-- | Sets the absolute maximum of the soundlevel, in dB.\nbindAudioStreamPlayer3D_get_max_db :: MethodBind\nbindAudioStreamPlayer3D_get_max_db\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_max_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the absolute maximum of the soundlevel, in dB.\nget_max_db ::\n             (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO Float\nget_max_db cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_get_max_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"get_max_db\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.get_max_db\n\n{-# NOINLINE bindAudioStreamPlayer3D_get_max_distance #-}\n\n-- | Sets the distance from which the @out_of_range_mode@ takes effect. Has no effect if set to 0.\nbindAudioStreamPlayer3D_get_max_distance :: MethodBind\nbindAudioStreamPlayer3D_get_max_distance\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_max_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the distance from which the @out_of_range_mode@ takes effect. Has no effect if set to 0.\nget_max_distance ::\n                   (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO Float\nget_max_distance cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_get_max_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"get_max_distance\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.get_max_distance\n\n{-# NOINLINE bindAudioStreamPlayer3D_get_out_of_range_mode #-}\n\n-- | Decides if audio should pause when source is outside of @max_distance@ range.\nbindAudioStreamPlayer3D_get_out_of_range_mode :: MethodBind\nbindAudioStreamPlayer3D_get_out_of_range_mode\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_out_of_range_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Decides if audio should pause when source is outside of @max_distance@ range.\nget_out_of_range_mode ::\n                        (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO Int\nget_out_of_range_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioStreamPlayer3D_get_out_of_range_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"get_out_of_range_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.get_out_of_range_mode\n\n{-# NOINLINE bindAudioStreamPlayer3D_get_pitch_scale #-}\n\n-- | The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate.\nbindAudioStreamPlayer3D_get_pitch_scale :: MethodBind\nbindAudioStreamPlayer3D_get_pitch_scale\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_pitch_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate.\nget_pitch_scale ::\n                  (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO Float\nget_pitch_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_get_pitch_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"get_pitch_scale\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.get_pitch_scale\n\n{-# NOINLINE bindAudioStreamPlayer3D_get_playback_position #-}\n\n-- | Returns the position in the @AudioStream@.\nbindAudioStreamPlayer3D_get_playback_position :: MethodBind\nbindAudioStreamPlayer3D_get_playback_position\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_playback_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position in the @AudioStream@.\nget_playback_position ::\n                        (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO Float\nget_playback_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioStreamPlayer3D_get_playback_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"get_playback_position\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.get_playback_position\n\n{-# NOINLINE bindAudioStreamPlayer3D_get_stream #-}\n\n-- | The @AudioStream@ object to be played.\nbindAudioStreamPlayer3D_get_stream :: MethodBind\nbindAudioStreamPlayer3D_get_stream\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_stream\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @AudioStream@ object to be played.\nget_stream ::\n             (AudioStreamPlayer3D :< cls, Object :< cls) =>\n             cls -> IO AudioStream\nget_stream cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_get_stream\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"get_stream\" '[]\n           (IO AudioStream)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.get_stream\n\n{-# NOINLINE bindAudioStreamPlayer3D_get_stream_paused #-}\n\n-- | If @true@, the playback is paused. You can resume it by setting @stream_paused@ to @false@.\nbindAudioStreamPlayer3D_get_stream_paused :: MethodBind\nbindAudioStreamPlayer3D_get_stream_paused\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_stream_paused\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the playback is paused. You can resume it by setting @stream_paused@ to @false@.\nget_stream_paused ::\n                    (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO Bool\nget_stream_paused cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_get_stream_paused\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"get_stream_paused\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.get_stream_paused\n\n{-# NOINLINE bindAudioStreamPlayer3D_get_stream_playback #-}\n\n-- | Returns the @AudioStreamPlayback@ object associated with this @AudioStreamPlayer3D@.\nbindAudioStreamPlayer3D_get_stream_playback :: MethodBind\nbindAudioStreamPlayer3D_get_stream_playback\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_stream_playback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @AudioStreamPlayback@ object associated with this @AudioStreamPlayer3D@.\nget_stream_playback ::\n                      (AudioStreamPlayer3D :< cls, Object :< cls) =>\n                      cls -> IO AudioStreamPlayback\nget_stream_playback cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_get_stream_playback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"get_stream_playback\" '[]\n           (IO AudioStreamPlayback)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.get_stream_playback\n\n{-# NOINLINE bindAudioStreamPlayer3D_get_unit_db #-}\n\n-- | Base sound level unaffected by dampening, in dB.\nbindAudioStreamPlayer3D_get_unit_db :: MethodBind\nbindAudioStreamPlayer3D_get_unit_db\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_unit_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Base sound level unaffected by dampening, in dB.\nget_unit_db ::\n              (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO Float\nget_unit_db cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_get_unit_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"get_unit_db\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.get_unit_db\n\n{-# NOINLINE bindAudioStreamPlayer3D_get_unit_size #-}\n\n-- | Factor for the attenuation effect.\nbindAudioStreamPlayer3D_get_unit_size :: MethodBind\nbindAudioStreamPlayer3D_get_unit_size\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_unit_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Factor for the attenuation effect.\nget_unit_size ::\n                (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO Float\nget_unit_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_get_unit_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"get_unit_size\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.get_unit_size\n\n{-# NOINLINE bindAudioStreamPlayer3D_is_autoplay_enabled #-}\n\n-- | If @true@, audio plays when added to scene tree.\nbindAudioStreamPlayer3D_is_autoplay_enabled :: MethodBind\nbindAudioStreamPlayer3D_is_autoplay_enabled\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"is_autoplay_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, audio plays when added to scene tree.\nis_autoplay_enabled ::\n                      (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO Bool\nis_autoplay_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_is_autoplay_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"is_autoplay_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.is_autoplay_enabled\n\n{-# NOINLINE bindAudioStreamPlayer3D_is_emission_angle_enabled #-}\n\n-- | If @true@, the audio should be dampened according to the direction of the sound.\nbindAudioStreamPlayer3D_is_emission_angle_enabled :: MethodBind\nbindAudioStreamPlayer3D_is_emission_angle_enabled\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"is_emission_angle_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the audio should be dampened according to the direction of the sound.\nis_emission_angle_enabled ::\n                            (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO Bool\nis_emission_angle_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioStreamPlayer3D_is_emission_angle_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"is_emission_angle_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.AudioStreamPlayer3D.is_emission_angle_enabled\n\n{-# NOINLINE bindAudioStreamPlayer3D_is_playing #-}\n\n-- | If @true@, audio is playing.\nbindAudioStreamPlayer3D_is_playing :: MethodBind\nbindAudioStreamPlayer3D_is_playing\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"is_playing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, audio is playing.\nis_playing ::\n             (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO Bool\nis_playing cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_is_playing\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"is_playing\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.is_playing\n\n{-# NOINLINE bindAudioStreamPlayer3D_play #-}\n\n-- | Plays the audio from the given position @from_position@, in seconds.\nbindAudioStreamPlayer3D_play :: MethodBind\nbindAudioStreamPlayer3D_play\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"play\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Plays the audio from the given position @from_position@, in seconds.\nplay ::\n       (AudioStreamPlayer3D :< cls, Object :< cls) =>\n       cls -> Maybe Float -> IO ()\nplay cls arg1\n  = withVariantArray [maybe (VariantReal (0)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_play (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"play\" '[Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.play\n\n{-# NOINLINE bindAudioStreamPlayer3D_seek #-}\n\n-- | Sets the position from which audio will be played, in seconds.\nbindAudioStreamPlayer3D_seek :: MethodBind\nbindAudioStreamPlayer3D_seek\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"seek\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the position from which audio will be played, in seconds.\nseek ::\n       (AudioStreamPlayer3D :< cls, Object :< cls) =>\n       cls -> Float -> IO ()\nseek cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_seek (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"seek\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.seek\n\n{-# NOINLINE bindAudioStreamPlayer3D_set_area_mask #-}\n\n-- | Areas in which this sound plays.\nbindAudioStreamPlayer3D_set_area_mask :: MethodBind\nbindAudioStreamPlayer3D_set_area_mask\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_area_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Areas in which this sound plays.\nset_area_mask ::\n                (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_area_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_set_area_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"set_area_mask\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.set_area_mask\n\n{-# NOINLINE bindAudioStreamPlayer3D_set_attenuation_filter_cutoff_hz\n             #-}\n\n-- | Dampens audio above this frequency, in Hz.\nbindAudioStreamPlayer3D_set_attenuation_filter_cutoff_hz ::\n                                                         MethodBind\nbindAudioStreamPlayer3D_set_attenuation_filter_cutoff_hz\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_attenuation_filter_cutoff_hz\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Dampens audio above this frequency, in Hz.\nset_attenuation_filter_cutoff_hz ::\n                                   (AudioStreamPlayer3D :< cls, Object :< cls) =>\n                                   cls -> Float -> IO ()\nset_attenuation_filter_cutoff_hz cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioStreamPlayer3D_set_attenuation_filter_cutoff_hz\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D\n           \"set_attenuation_filter_cutoff_hz\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AudioStreamPlayer3D.set_attenuation_filter_cutoff_hz\n\n{-# NOINLINE bindAudioStreamPlayer3D_set_attenuation_filter_db #-}\n\n-- | Amount how much the filter affects the loudness, in dB.\nbindAudioStreamPlayer3D_set_attenuation_filter_db :: MethodBind\nbindAudioStreamPlayer3D_set_attenuation_filter_db\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_attenuation_filter_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount how much the filter affects the loudness, in dB.\nset_attenuation_filter_db ::\n                            (AudioStreamPlayer3D :< cls, Object :< cls) =>\n                            cls -> Float -> IO ()\nset_attenuation_filter_db cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioStreamPlayer3D_set_attenuation_filter_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"set_attenuation_filter_db\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AudioStreamPlayer3D.set_attenuation_filter_db\n\n{-# NOINLINE bindAudioStreamPlayer3D_set_attenuation_model #-}\n\n-- | Decides if audio should get quieter with distance linearly, quadratically, logarithmically, or not be affected by distance, effectively disabling attenuation.\nbindAudioStreamPlayer3D_set_attenuation_model :: MethodBind\nbindAudioStreamPlayer3D_set_attenuation_model\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_attenuation_model\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Decides if audio should get quieter with distance linearly, quadratically, logarithmically, or not be affected by distance, effectively disabling attenuation.\nset_attenuation_model ::\n                        (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_attenuation_model cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioStreamPlayer3D_set_attenuation_model\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"set_attenuation_model\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.set_attenuation_model\n\n{-# NOINLINE bindAudioStreamPlayer3D_set_autoplay #-}\n\n-- | If @true@, audio plays when added to scene tree.\nbindAudioStreamPlayer3D_set_autoplay :: MethodBind\nbindAudioStreamPlayer3D_set_autoplay\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_autoplay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, audio plays when added to scene tree.\nset_autoplay ::\n               (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_autoplay cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_set_autoplay\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"set_autoplay\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.set_autoplay\n\n{-# NOINLINE bindAudioStreamPlayer3D_set_bus #-}\n\n-- | Bus on which this audio is playing.\nbindAudioStreamPlayer3D_set_bus :: MethodBind\nbindAudioStreamPlayer3D_set_bus\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Bus on which this audio is playing.\nset_bus ::\n          (AudioStreamPlayer3D :< cls, Object :< cls) =>\n          cls -> GodotString -> IO ()\nset_bus cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_set_bus (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"set_bus\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.set_bus\n\n{-# NOINLINE bindAudioStreamPlayer3D_set_doppler_tracking #-}\n\n-- | Decides in which step the Doppler effect should be calculated.\nbindAudioStreamPlayer3D_set_doppler_tracking :: MethodBind\nbindAudioStreamPlayer3D_set_doppler_tracking\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_doppler_tracking\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Decides in which step the Doppler effect should be calculated.\nset_doppler_tracking ::\n                       (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_doppler_tracking cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_set_doppler_tracking\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"set_doppler_tracking\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.set_doppler_tracking\n\n{-# NOINLINE bindAudioStreamPlayer3D_set_emission_angle #-}\n\n-- | The angle in which the audio reaches cameras undampened.\nbindAudioStreamPlayer3D_set_emission_angle :: MethodBind\nbindAudioStreamPlayer3D_set_emission_angle\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_angle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The angle in which the audio reaches cameras undampened.\nset_emission_angle ::\n                     (AudioStreamPlayer3D :< cls, Object :< cls) =>\n                     cls -> Float -> IO ()\nset_emission_angle cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_set_emission_angle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"set_emission_angle\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.set_emission_angle\n\n{-# NOINLINE bindAudioStreamPlayer3D_set_emission_angle_enabled #-}\n\n-- | If @true@, the audio should be dampened according to the direction of the sound.\nbindAudioStreamPlayer3D_set_emission_angle_enabled :: MethodBind\nbindAudioStreamPlayer3D_set_emission_angle_enabled\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_angle_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the audio should be dampened according to the direction of the sound.\nset_emission_angle_enabled ::\n                             (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_emission_angle_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioStreamPlayer3D_set_emission_angle_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D\n           \"set_emission_angle_enabled\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AudioStreamPlayer3D.set_emission_angle_enabled\n\n{-# NOINLINE bindAudioStreamPlayer3D_set_emission_angle_filter_attenuation_db\n             #-}\n\n-- | Dampens audio if camera is outside of @emission_angle_degrees@ and @emission_angle_enabled@ is set by this factor, in dB.\nbindAudioStreamPlayer3D_set_emission_angle_filter_attenuation_db ::\n                                                                 MethodBind\nbindAudioStreamPlayer3D_set_emission_angle_filter_attenuation_db\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_angle_filter_attenuation_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Dampens audio if camera is outside of @emission_angle_degrees@ and @emission_angle_enabled@ is set by this factor, in dB.\nset_emission_angle_filter_attenuation_db ::\n                                           (AudioStreamPlayer3D :< cls, Object :< cls) =>\n                                           cls -> Float -> IO ()\nset_emission_angle_filter_attenuation_db cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioStreamPlayer3D_set_emission_angle_filter_attenuation_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D\n           \"set_emission_angle_filter_attenuation_db\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.AudioStreamPlayer3D.set_emission_angle_filter_attenuation_db\n\n{-# NOINLINE bindAudioStreamPlayer3D_set_max_db #-}\n\n-- | Sets the absolute maximum of the soundlevel, in dB.\nbindAudioStreamPlayer3D_set_max_db :: MethodBind\nbindAudioStreamPlayer3D_set_max_db\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_max_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the absolute maximum of the soundlevel, in dB.\nset_max_db ::\n             (AudioStreamPlayer3D :< cls, Object :< cls) =>\n             cls -> Float -> IO ()\nset_max_db cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_set_max_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"set_max_db\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.set_max_db\n\n{-# NOINLINE bindAudioStreamPlayer3D_set_max_distance #-}\n\n-- | Sets the distance from which the @out_of_range_mode@ takes effect. Has no effect if set to 0.\nbindAudioStreamPlayer3D_set_max_distance :: MethodBind\nbindAudioStreamPlayer3D_set_max_distance\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_max_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the distance from which the @out_of_range_mode@ takes effect. Has no effect if set to 0.\nset_max_distance ::\n                   (AudioStreamPlayer3D :< cls, Object :< cls) =>\n                   cls -> Float -> IO ()\nset_max_distance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_set_max_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"set_max_distance\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.set_max_distance\n\n{-# NOINLINE bindAudioStreamPlayer3D_set_out_of_range_mode #-}\n\n-- | Decides if audio should pause when source is outside of @max_distance@ range.\nbindAudioStreamPlayer3D_set_out_of_range_mode :: MethodBind\nbindAudioStreamPlayer3D_set_out_of_range_mode\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_out_of_range_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Decides if audio should pause when source is outside of @max_distance@ range.\nset_out_of_range_mode ::\n                        (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_out_of_range_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindAudioStreamPlayer3D_set_out_of_range_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"set_out_of_range_mode\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.set_out_of_range_mode\n\n{-# NOINLINE bindAudioStreamPlayer3D_set_pitch_scale #-}\n\n-- | The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate.\nbindAudioStreamPlayer3D_set_pitch_scale :: MethodBind\nbindAudioStreamPlayer3D_set_pitch_scale\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_pitch_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate.\nset_pitch_scale ::\n                  (AudioStreamPlayer3D :< cls, Object :< cls) =>\n                  cls -> Float -> IO ()\nset_pitch_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_set_pitch_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"set_pitch_scale\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.set_pitch_scale\n\n{-# NOINLINE bindAudioStreamPlayer3D_set_stream #-}\n\n-- | The @AudioStream@ object to be played.\nbindAudioStreamPlayer3D_set_stream :: MethodBind\nbindAudioStreamPlayer3D_set_stream\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_stream\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @AudioStream@ object to be played.\nset_stream ::\n             (AudioStreamPlayer3D :< cls, Object :< cls) =>\n             cls -> AudioStream -> IO ()\nset_stream cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_set_stream\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"set_stream\" '[AudioStream]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.set_stream\n\n{-# NOINLINE bindAudioStreamPlayer3D_set_stream_paused #-}\n\n-- | If @true@, the playback is paused. You can resume it by setting @stream_paused@ to @false@.\nbindAudioStreamPlayer3D_set_stream_paused :: MethodBind\nbindAudioStreamPlayer3D_set_stream_paused\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_stream_paused\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the playback is paused. You can resume it by setting @stream_paused@ to @false@.\nset_stream_paused ::\n                    (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_stream_paused cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_set_stream_paused\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"set_stream_paused\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.set_stream_paused\n\n{-# NOINLINE bindAudioStreamPlayer3D_set_unit_db #-}\n\n-- | Base sound level unaffected by dampening, in dB.\nbindAudioStreamPlayer3D_set_unit_db :: MethodBind\nbindAudioStreamPlayer3D_set_unit_db\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_unit_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Base sound level unaffected by dampening, in dB.\nset_unit_db ::\n              (AudioStreamPlayer3D :< cls, Object :< cls) =>\n              cls -> Float -> IO ()\nset_unit_db cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_set_unit_db\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"set_unit_db\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.set_unit_db\n\n{-# NOINLINE bindAudioStreamPlayer3D_set_unit_size #-}\n\n-- | Factor for the attenuation effect.\nbindAudioStreamPlayer3D_set_unit_size :: MethodBind\nbindAudioStreamPlayer3D_set_unit_size\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_unit_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Factor for the attenuation effect.\nset_unit_size ::\n                (AudioStreamPlayer3D :< cls, Object :< cls) =>\n                cls -> Float -> IO ()\nset_unit_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_set_unit_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"set_unit_size\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.set_unit_size\n\n{-# NOINLINE bindAudioStreamPlayer3D_stop #-}\n\n-- | Stops the audio.\nbindAudioStreamPlayer3D_stop :: MethodBind\nbindAudioStreamPlayer3D_stop\n  = unsafePerformIO $\n      withCString \"AudioStreamPlayer3D\" $\n        \\ clsNamePtr ->\n          withCString \"stop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops the audio.\nstop :: (AudioStreamPlayer3D :< cls, Object :< cls) => cls -> IO ()\nstop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamPlayer3D_stop (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamPlayer3D \"stop\" '[] (IO ()) where\n        nodeMethod = Godot.Core.AudioStreamPlayer3D.stop"
  },
  {
    "path": "src/Godot/Core/AudioStreamRandomPitch.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioStreamRandomPitch\n       (Godot.Core.AudioStreamRandomPitch.get_audio_stream,\n        Godot.Core.AudioStreamRandomPitch.get_random_pitch,\n        Godot.Core.AudioStreamRandomPitch.set_audio_stream,\n        Godot.Core.AudioStreamRandomPitch.set_random_pitch)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioStream()\n\ninstance NodeProperty AudioStreamRandomPitch \"audio_stream\"\n           AudioStream\n           'False\n         where\n        nodeProperty\n          = (get_audio_stream, wrapDroppingSetter set_audio_stream, Nothing)\n\ninstance NodeProperty AudioStreamRandomPitch \"random_pitch\" Float\n           'False\n         where\n        nodeProperty\n          = (get_random_pitch, wrapDroppingSetter set_random_pitch, Nothing)\n\n{-# NOINLINE bindAudioStreamRandomPitch_get_audio_stream #-}\n\n-- | The current @AudioStream@.\nbindAudioStreamRandomPitch_get_audio_stream :: MethodBind\nbindAudioStreamRandomPitch_get_audio_stream\n  = unsafePerformIO $\n      withCString \"AudioStreamRandomPitch\" $\n        \\ clsNamePtr ->\n          withCString \"get_audio_stream\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current @AudioStream@.\nget_audio_stream ::\n                   (AudioStreamRandomPitch :< cls, Object :< cls) =>\n                   cls -> IO AudioStream\nget_audio_stream cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamRandomPitch_get_audio_stream\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamRandomPitch \"get_audio_stream\" '[]\n           (IO AudioStream)\n         where\n        nodeMethod = Godot.Core.AudioStreamRandomPitch.get_audio_stream\n\n{-# NOINLINE bindAudioStreamRandomPitch_get_random_pitch #-}\n\n-- | The intensity of random pitch variation.\nbindAudioStreamRandomPitch_get_random_pitch :: MethodBind\nbindAudioStreamRandomPitch_get_random_pitch\n  = unsafePerformIO $\n      withCString \"AudioStreamRandomPitch\" $\n        \\ clsNamePtr ->\n          withCString \"get_random_pitch\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The intensity of random pitch variation.\nget_random_pitch ::\n                   (AudioStreamRandomPitch :< cls, Object :< cls) => cls -> IO Float\nget_random_pitch cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamRandomPitch_get_random_pitch\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamRandomPitch \"get_random_pitch\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.AudioStreamRandomPitch.get_random_pitch\n\n{-# NOINLINE bindAudioStreamRandomPitch_set_audio_stream #-}\n\n-- | The current @AudioStream@.\nbindAudioStreamRandomPitch_set_audio_stream :: MethodBind\nbindAudioStreamRandomPitch_set_audio_stream\n  = unsafePerformIO $\n      withCString \"AudioStreamRandomPitch\" $\n        \\ clsNamePtr ->\n          withCString \"set_audio_stream\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current @AudioStream@.\nset_audio_stream ::\n                   (AudioStreamRandomPitch :< cls, Object :< cls) =>\n                   cls -> AudioStream -> IO ()\nset_audio_stream cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamRandomPitch_set_audio_stream\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamRandomPitch \"set_audio_stream\"\n           '[AudioStream]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamRandomPitch.set_audio_stream\n\n{-# NOINLINE bindAudioStreamRandomPitch_set_random_pitch #-}\n\n-- | The intensity of random pitch variation.\nbindAudioStreamRandomPitch_set_random_pitch :: MethodBind\nbindAudioStreamRandomPitch_set_random_pitch\n  = unsafePerformIO $\n      withCString \"AudioStreamRandomPitch\" $\n        \\ clsNamePtr ->\n          withCString \"set_random_pitch\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The intensity of random pitch variation.\nset_random_pitch ::\n                   (AudioStreamRandomPitch :< cls, Object :< cls) =>\n                   cls -> Float -> IO ()\nset_random_pitch cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamRandomPitch_set_random_pitch\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamRandomPitch \"set_random_pitch\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamRandomPitch.set_random_pitch"
  },
  {
    "path": "src/Godot/Core/AudioStreamSample.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.AudioStreamSample\n       (Godot.Core.AudioStreamSample._FORMAT_8_BITS,\n        Godot.Core.AudioStreamSample._LOOP_PING_PONG,\n        Godot.Core.AudioStreamSample._LOOP_BACKWARD,\n        Godot.Core.AudioStreamSample._LOOP_DISABLED,\n        Godot.Core.AudioStreamSample._FORMAT_IMA_ADPCM,\n        Godot.Core.AudioStreamSample._LOOP_FORWARD,\n        Godot.Core.AudioStreamSample._FORMAT_16_BITS,\n        Godot.Core.AudioStreamSample.get_data,\n        Godot.Core.AudioStreamSample.get_format,\n        Godot.Core.AudioStreamSample.get_loop_begin,\n        Godot.Core.AudioStreamSample.get_loop_end,\n        Godot.Core.AudioStreamSample.get_loop_mode,\n        Godot.Core.AudioStreamSample.get_mix_rate,\n        Godot.Core.AudioStreamSample.is_stereo,\n        Godot.Core.AudioStreamSample.save_to_wav,\n        Godot.Core.AudioStreamSample.set_data,\n        Godot.Core.AudioStreamSample.set_format,\n        Godot.Core.AudioStreamSample.set_loop_begin,\n        Godot.Core.AudioStreamSample.set_loop_end,\n        Godot.Core.AudioStreamSample.set_loop_mode,\n        Godot.Core.AudioStreamSample.set_mix_rate,\n        Godot.Core.AudioStreamSample.set_stereo)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AudioStream()\n\n_FORMAT_8_BITS :: Int\n_FORMAT_8_BITS = 0\n\n_LOOP_PING_PONG :: Int\n_LOOP_PING_PONG = 2\n\n_LOOP_BACKWARD :: Int\n_LOOP_BACKWARD = 3\n\n_LOOP_DISABLED :: Int\n_LOOP_DISABLED = 0\n\n_FORMAT_IMA_ADPCM :: Int\n_FORMAT_IMA_ADPCM = 2\n\n_LOOP_FORWARD :: Int\n_LOOP_FORWARD = 1\n\n_FORMAT_16_BITS :: Int\n_FORMAT_16_BITS = 1\n\ninstance NodeProperty AudioStreamSample \"data\" PoolByteArray 'False\n         where\n        nodeProperty = (get_data, wrapDroppingSetter set_data, Nothing)\n\ninstance NodeProperty AudioStreamSample \"format\" Int 'False where\n        nodeProperty = (get_format, wrapDroppingSetter set_format, Nothing)\n\ninstance NodeProperty AudioStreamSample \"loop_begin\" Int 'False\n         where\n        nodeProperty\n          = (get_loop_begin, wrapDroppingSetter set_loop_begin, Nothing)\n\ninstance NodeProperty AudioStreamSample \"loop_end\" Int 'False where\n        nodeProperty\n          = (get_loop_end, wrapDroppingSetter set_loop_end, Nothing)\n\ninstance NodeProperty AudioStreamSample \"loop_mode\" Int 'False\n         where\n        nodeProperty\n          = (get_loop_mode, wrapDroppingSetter set_loop_mode, Nothing)\n\ninstance NodeProperty AudioStreamSample \"mix_rate\" Int 'False where\n        nodeProperty\n          = (get_mix_rate, wrapDroppingSetter set_mix_rate, Nothing)\n\ninstance NodeProperty AudioStreamSample \"stereo\" Bool 'False where\n        nodeProperty = (is_stereo, wrapDroppingSetter set_stereo, Nothing)\n\n{-# NOINLINE bindAudioStreamSample_get_data #-}\n\n-- | Contains the audio data in bytes.\n--   \t\t\t__Note:__ This property expects signed PCM8 data. To convert unsigned PCM8 to signed PCM8, subtract 128 from each byte.\nbindAudioStreamSample_get_data :: MethodBind\nbindAudioStreamSample_get_data\n  = unsafePerformIO $\n      withCString \"AudioStreamSample\" $\n        \\ clsNamePtr ->\n          withCString \"get_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Contains the audio data in bytes.\n--   \t\t\t__Note:__ This property expects signed PCM8 data. To convert unsigned PCM8 to signed PCM8, subtract 128 from each byte.\nget_data ::\n           (AudioStreamSample :< cls, Object :< cls) =>\n           cls -> IO PoolByteArray\nget_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamSample_get_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamSample \"get_data\" '[]\n           (IO PoolByteArray)\n         where\n        nodeMethod = Godot.Core.AudioStreamSample.get_data\n\n{-# NOINLINE bindAudioStreamSample_get_format #-}\n\n-- | Audio format. See @enum Format@ constants for values.\nbindAudioStreamSample_get_format :: MethodBind\nbindAudioStreamSample_get_format\n  = unsafePerformIO $\n      withCString \"AudioStreamSample\" $\n        \\ clsNamePtr ->\n          withCString \"get_format\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Audio format. See @enum Format@ constants for values.\nget_format ::\n             (AudioStreamSample :< cls, Object :< cls) => cls -> IO Int\nget_format cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamSample_get_format\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamSample \"get_format\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioStreamSample.get_format\n\n{-# NOINLINE bindAudioStreamSample_get_loop_begin #-}\n\n-- | The loop start point (in number of samples, relative to the beginning of the sample). This information will be imported automatically from the WAV file if present.\nbindAudioStreamSample_get_loop_begin :: MethodBind\nbindAudioStreamSample_get_loop_begin\n  = unsafePerformIO $\n      withCString \"AudioStreamSample\" $\n        \\ clsNamePtr ->\n          withCString \"get_loop_begin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The loop start point (in number of samples, relative to the beginning of the sample). This information will be imported automatically from the WAV file if present.\nget_loop_begin ::\n                 (AudioStreamSample :< cls, Object :< cls) => cls -> IO Int\nget_loop_begin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamSample_get_loop_begin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamSample \"get_loop_begin\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioStreamSample.get_loop_begin\n\n{-# NOINLINE bindAudioStreamSample_get_loop_end #-}\n\n-- | The loop end point (in number of samples, relative to the beginning of the sample). This information will be imported automatically from the WAV file if present.\nbindAudioStreamSample_get_loop_end :: MethodBind\nbindAudioStreamSample_get_loop_end\n  = unsafePerformIO $\n      withCString \"AudioStreamSample\" $\n        \\ clsNamePtr ->\n          withCString \"get_loop_end\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The loop end point (in number of samples, relative to the beginning of the sample). This information will be imported automatically from the WAV file if present.\nget_loop_end ::\n               (AudioStreamSample :< cls, Object :< cls) => cls -> IO Int\nget_loop_end cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamSample_get_loop_end\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamSample \"get_loop_end\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioStreamSample.get_loop_end\n\n{-# NOINLINE bindAudioStreamSample_get_loop_mode #-}\n\n-- | The loop mode. This information will be imported automatically from the WAV file if present. See @enum LoopMode@ constants for values.\nbindAudioStreamSample_get_loop_mode :: MethodBind\nbindAudioStreamSample_get_loop_mode\n  = unsafePerformIO $\n      withCString \"AudioStreamSample\" $\n        \\ clsNamePtr ->\n          withCString \"get_loop_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The loop mode. This information will be imported automatically from the WAV file if present. See @enum LoopMode@ constants for values.\nget_loop_mode ::\n                (AudioStreamSample :< cls, Object :< cls) => cls -> IO Int\nget_loop_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamSample_get_loop_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamSample \"get_loop_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioStreamSample.get_loop_mode\n\n{-# NOINLINE bindAudioStreamSample_get_mix_rate #-}\n\n-- | The sample rate for mixing this audio.\nbindAudioStreamSample_get_mix_rate :: MethodBind\nbindAudioStreamSample_get_mix_rate\n  = unsafePerformIO $\n      withCString \"AudioStreamSample\" $\n        \\ clsNamePtr ->\n          withCString \"get_mix_rate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The sample rate for mixing this audio.\nget_mix_rate ::\n               (AudioStreamSample :< cls, Object :< cls) => cls -> IO Int\nget_mix_rate cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamSample_get_mix_rate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamSample \"get_mix_rate\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioStreamSample.get_mix_rate\n\n{-# NOINLINE bindAudioStreamSample_is_stereo #-}\n\n-- | If @true@, audio is stereo.\nbindAudioStreamSample_is_stereo :: MethodBind\nbindAudioStreamSample_is_stereo\n  = unsafePerformIO $\n      withCString \"AudioStreamSample\" $\n        \\ clsNamePtr ->\n          withCString \"is_stereo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, audio is stereo.\nis_stereo ::\n            (AudioStreamSample :< cls, Object :< cls) => cls -> IO Bool\nis_stereo cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamSample_is_stereo (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamSample \"is_stereo\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.AudioStreamSample.is_stereo\n\n{-# NOINLINE bindAudioStreamSample_save_to_wav #-}\n\n-- | Saves the AudioStreamSample as a WAV file to @path@. Samples with IMA ADPCM format can't be saved.\n--   \t\t\t\t__Note:__ A @.wav@ extension is automatically appended to @path@ if it is missing.\nbindAudioStreamSample_save_to_wav :: MethodBind\nbindAudioStreamSample_save_to_wav\n  = unsafePerformIO $\n      withCString \"AudioStreamSample\" $\n        \\ clsNamePtr ->\n          withCString \"save_to_wav\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Saves the AudioStreamSample as a WAV file to @path@. Samples with IMA ADPCM format can't be saved.\n--   \t\t\t\t__Note:__ A @.wav@ extension is automatically appended to @path@ if it is missing.\nsave_to_wav ::\n              (AudioStreamSample :< cls, Object :< cls) =>\n              cls -> GodotString -> IO Int\nsave_to_wav cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamSample_save_to_wav\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamSample \"save_to_wav\" '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.AudioStreamSample.save_to_wav\n\n{-# NOINLINE bindAudioStreamSample_set_data #-}\n\n-- | Contains the audio data in bytes.\n--   \t\t\t__Note:__ This property expects signed PCM8 data. To convert unsigned PCM8 to signed PCM8, subtract 128 from each byte.\nbindAudioStreamSample_set_data :: MethodBind\nbindAudioStreamSample_set_data\n  = unsafePerformIO $\n      withCString \"AudioStreamSample\" $\n        \\ clsNamePtr ->\n          withCString \"set_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Contains the audio data in bytes.\n--   \t\t\t__Note:__ This property expects signed PCM8 data. To convert unsigned PCM8 to signed PCM8, subtract 128 from each byte.\nset_data ::\n           (AudioStreamSample :< cls, Object :< cls) =>\n           cls -> PoolByteArray -> IO ()\nset_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamSample_set_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamSample \"set_data\" '[PoolByteArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamSample.set_data\n\n{-# NOINLINE bindAudioStreamSample_set_format #-}\n\n-- | Audio format. See @enum Format@ constants for values.\nbindAudioStreamSample_set_format :: MethodBind\nbindAudioStreamSample_set_format\n  = unsafePerformIO $\n      withCString \"AudioStreamSample\" $\n        \\ clsNamePtr ->\n          withCString \"set_format\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Audio format. See @enum Format@ constants for values.\nset_format ::\n             (AudioStreamSample :< cls, Object :< cls) => cls -> Int -> IO ()\nset_format cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamSample_set_format\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamSample \"set_format\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamSample.set_format\n\n{-# NOINLINE bindAudioStreamSample_set_loop_begin #-}\n\n-- | The loop start point (in number of samples, relative to the beginning of the sample). This information will be imported automatically from the WAV file if present.\nbindAudioStreamSample_set_loop_begin :: MethodBind\nbindAudioStreamSample_set_loop_begin\n  = unsafePerformIO $\n      withCString \"AudioStreamSample\" $\n        \\ clsNamePtr ->\n          withCString \"set_loop_begin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The loop start point (in number of samples, relative to the beginning of the sample). This information will be imported automatically from the WAV file if present.\nset_loop_begin ::\n                 (AudioStreamSample :< cls, Object :< cls) => cls -> Int -> IO ()\nset_loop_begin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamSample_set_loop_begin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamSample \"set_loop_begin\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamSample.set_loop_begin\n\n{-# NOINLINE bindAudioStreamSample_set_loop_end #-}\n\n-- | The loop end point (in number of samples, relative to the beginning of the sample). This information will be imported automatically from the WAV file if present.\nbindAudioStreamSample_set_loop_end :: MethodBind\nbindAudioStreamSample_set_loop_end\n  = unsafePerformIO $\n      withCString \"AudioStreamSample\" $\n        \\ clsNamePtr ->\n          withCString \"set_loop_end\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The loop end point (in number of samples, relative to the beginning of the sample). This information will be imported automatically from the WAV file if present.\nset_loop_end ::\n               (AudioStreamSample :< cls, Object :< cls) => cls -> Int -> IO ()\nset_loop_end cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamSample_set_loop_end\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamSample \"set_loop_end\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamSample.set_loop_end\n\n{-# NOINLINE bindAudioStreamSample_set_loop_mode #-}\n\n-- | The loop mode. This information will be imported automatically from the WAV file if present. See @enum LoopMode@ constants for values.\nbindAudioStreamSample_set_loop_mode :: MethodBind\nbindAudioStreamSample_set_loop_mode\n  = unsafePerformIO $\n      withCString \"AudioStreamSample\" $\n        \\ clsNamePtr ->\n          withCString \"set_loop_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The loop mode. This information will be imported automatically from the WAV file if present. See @enum LoopMode@ constants for values.\nset_loop_mode ::\n                (AudioStreamSample :< cls, Object :< cls) => cls -> Int -> IO ()\nset_loop_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamSample_set_loop_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamSample \"set_loop_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamSample.set_loop_mode\n\n{-# NOINLINE bindAudioStreamSample_set_mix_rate #-}\n\n-- | The sample rate for mixing this audio.\nbindAudioStreamSample_set_mix_rate :: MethodBind\nbindAudioStreamSample_set_mix_rate\n  = unsafePerformIO $\n      withCString \"AudioStreamSample\" $\n        \\ clsNamePtr ->\n          withCString \"set_mix_rate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The sample rate for mixing this audio.\nset_mix_rate ::\n               (AudioStreamSample :< cls, Object :< cls) => cls -> Int -> IO ()\nset_mix_rate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamSample_set_mix_rate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamSample \"set_mix_rate\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamSample.set_mix_rate\n\n{-# NOINLINE bindAudioStreamSample_set_stereo #-}\n\n-- | If @true@, audio is stereo.\nbindAudioStreamSample_set_stereo :: MethodBind\nbindAudioStreamSample_set_stereo\n  = unsafePerformIO $\n      withCString \"AudioStreamSample\" $\n        \\ clsNamePtr ->\n          withCString \"set_stereo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, audio is stereo.\nset_stereo ::\n             (AudioStreamSample :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_stereo cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindAudioStreamSample_set_stereo\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod AudioStreamSample \"set_stereo\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.AudioStreamSample.set_stereo"
  },
  {
    "path": "src/Godot/Core/BackBufferCopy.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.BackBufferCopy\n       (Godot.Core.BackBufferCopy._COPY_MODE_VIEWPORT,\n        Godot.Core.BackBufferCopy._COPY_MODE_RECT,\n        Godot.Core.BackBufferCopy._COPY_MODE_DISABLED,\n        Godot.Core.BackBufferCopy.get_copy_mode,\n        Godot.Core.BackBufferCopy.get_rect,\n        Godot.Core.BackBufferCopy.set_copy_mode,\n        Godot.Core.BackBufferCopy.set_rect)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\n_COPY_MODE_VIEWPORT :: Int\n_COPY_MODE_VIEWPORT = 2\n\n_COPY_MODE_RECT :: Int\n_COPY_MODE_RECT = 1\n\n_COPY_MODE_DISABLED :: Int\n_COPY_MODE_DISABLED = 0\n\ninstance NodeProperty BackBufferCopy \"copy_mode\" Int 'False where\n        nodeProperty\n          = (get_copy_mode, wrapDroppingSetter set_copy_mode, Nothing)\n\ninstance NodeProperty BackBufferCopy \"rect\" Rect2 'False where\n        nodeProperty = (get_rect, wrapDroppingSetter set_rect, Nothing)\n\n{-# NOINLINE bindBackBufferCopy_get_copy_mode #-}\n\n-- | Buffer mode. See @enum CopyMode@ constants.\nbindBackBufferCopy_get_copy_mode :: MethodBind\nbindBackBufferCopy_get_copy_mode\n  = unsafePerformIO $\n      withCString \"BackBufferCopy\" $\n        \\ clsNamePtr ->\n          withCString \"get_copy_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Buffer mode. See @enum CopyMode@ constants.\nget_copy_mode ::\n                (BackBufferCopy :< cls, Object :< cls) => cls -> IO Int\nget_copy_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBackBufferCopy_get_copy_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BackBufferCopy \"get_copy_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.BackBufferCopy.get_copy_mode\n\n{-# NOINLINE bindBackBufferCopy_get_rect #-}\n\n-- | The area covered by the BackBufferCopy. Only used if @copy_mode@ is @COPY_MODE_RECT@.\nbindBackBufferCopy_get_rect :: MethodBind\nbindBackBufferCopy_get_rect\n  = unsafePerformIO $\n      withCString \"BackBufferCopy\" $\n        \\ clsNamePtr ->\n          withCString \"get_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The area covered by the BackBufferCopy. Only used if @copy_mode@ is @COPY_MODE_RECT@.\nget_rect ::\n           (BackBufferCopy :< cls, Object :< cls) => cls -> IO Rect2\nget_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBackBufferCopy_get_rect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BackBufferCopy \"get_rect\" '[] (IO Rect2) where\n        nodeMethod = Godot.Core.BackBufferCopy.get_rect\n\n{-# NOINLINE bindBackBufferCopy_set_copy_mode #-}\n\n-- | Buffer mode. See @enum CopyMode@ constants.\nbindBackBufferCopy_set_copy_mode :: MethodBind\nbindBackBufferCopy_set_copy_mode\n  = unsafePerformIO $\n      withCString \"BackBufferCopy\" $\n        \\ clsNamePtr ->\n          withCString \"set_copy_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Buffer mode. See @enum CopyMode@ constants.\nset_copy_mode ::\n                (BackBufferCopy :< cls, Object :< cls) => cls -> Int -> IO ()\nset_copy_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBackBufferCopy_set_copy_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BackBufferCopy \"set_copy_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.BackBufferCopy.set_copy_mode\n\n{-# NOINLINE bindBackBufferCopy_set_rect #-}\n\n-- | The area covered by the BackBufferCopy. Only used if @copy_mode@ is @COPY_MODE_RECT@.\nbindBackBufferCopy_set_rect :: MethodBind\nbindBackBufferCopy_set_rect\n  = unsafePerformIO $\n      withCString \"BackBufferCopy\" $\n        \\ clsNamePtr ->\n          withCString \"set_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The area covered by the BackBufferCopy. Only used if @copy_mode@ is @COPY_MODE_RECT@.\nset_rect ::\n           (BackBufferCopy :< cls, Object :< cls) => cls -> Rect2 -> IO ()\nset_rect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBackBufferCopy_set_rect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BackBufferCopy \"set_rect\" '[Rect2] (IO ())\n         where\n        nodeMethod = Godot.Core.BackBufferCopy.set_rect"
  },
  {
    "path": "src/Godot/Core/BakedLightmap.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.BakedLightmap\n       (Godot.Core.BakedLightmap._BAKE_QUALITY_LOW,\n        Godot.Core.BakedLightmap._BAKE_QUALITY_MEDIUM,\n        Godot.Core.BakedLightmap._BAKE_ERROR_CANT_CREATE_IMAGE,\n        Godot.Core.BakedLightmap._BAKE_ERROR_NO_MESHES,\n        Godot.Core.BakedLightmap._BAKE_ERROR_OK,\n        Godot.Core.BakedLightmap._BAKE_MODE_CONE_TRACE,\n        Godot.Core.BakedLightmap._BAKE_MODE_RAY_TRACE,\n        Godot.Core.BakedLightmap._BAKE_ERROR_NO_SAVE_PATH,\n        Godot.Core.BakedLightmap._BAKE_ERROR_USER_ABORTED,\n        Godot.Core.BakedLightmap._BAKE_QUALITY_HIGH,\n        Godot.Core.BakedLightmap.bake, Godot.Core.BakedLightmap.debug_bake,\n        Godot.Core.BakedLightmap.get_bake_cell_size,\n        Godot.Core.BakedLightmap.get_bake_default_texels_per_unit,\n        Godot.Core.BakedLightmap.get_bake_mode,\n        Godot.Core.BakedLightmap.get_bake_quality,\n        Godot.Core.BakedLightmap.get_capture_cell_size,\n        Godot.Core.BakedLightmap.get_energy,\n        Godot.Core.BakedLightmap.get_extents,\n        Godot.Core.BakedLightmap.get_image_path,\n        Godot.Core.BakedLightmap.get_light_data,\n        Godot.Core.BakedLightmap.get_propagation,\n        Godot.Core.BakedLightmap.is_hdr,\n        Godot.Core.BakedLightmap.set_bake_cell_size,\n        Godot.Core.BakedLightmap.set_bake_default_texels_per_unit,\n        Godot.Core.BakedLightmap.set_bake_mode,\n        Godot.Core.BakedLightmap.set_bake_quality,\n        Godot.Core.BakedLightmap.set_capture_cell_size,\n        Godot.Core.BakedLightmap.set_energy,\n        Godot.Core.BakedLightmap.set_extents,\n        Godot.Core.BakedLightmap.set_hdr,\n        Godot.Core.BakedLightmap.set_image_path,\n        Godot.Core.BakedLightmap.set_light_data,\n        Godot.Core.BakedLightmap.set_propagation)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualInstance()\n\n_BAKE_QUALITY_LOW :: Int\n_BAKE_QUALITY_LOW = 0\n\n_BAKE_QUALITY_MEDIUM :: Int\n_BAKE_QUALITY_MEDIUM = 1\n\n_BAKE_ERROR_CANT_CREATE_IMAGE :: Int\n_BAKE_ERROR_CANT_CREATE_IMAGE = 3\n\n_BAKE_ERROR_NO_MESHES :: Int\n_BAKE_ERROR_NO_MESHES = 2\n\n_BAKE_ERROR_OK :: Int\n_BAKE_ERROR_OK = 0\n\n_BAKE_MODE_CONE_TRACE :: Int\n_BAKE_MODE_CONE_TRACE = 0\n\n_BAKE_MODE_RAY_TRACE :: Int\n_BAKE_MODE_RAY_TRACE = 1\n\n_BAKE_ERROR_NO_SAVE_PATH :: Int\n_BAKE_ERROR_NO_SAVE_PATH = 1\n\n_BAKE_ERROR_USER_ABORTED :: Int\n_BAKE_ERROR_USER_ABORTED = 4\n\n_BAKE_QUALITY_HIGH :: Int\n_BAKE_QUALITY_HIGH = 2\n\ninstance NodeProperty BakedLightmap \"bake_cell_size\" Float 'False\n         where\n        nodeProperty\n          = (get_bake_cell_size, wrapDroppingSetter set_bake_cell_size,\n             Nothing)\n\ninstance NodeProperty BakedLightmap \"bake_default_texels_per_unit\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_bake_default_texels_per_unit,\n             wrapDroppingSetter set_bake_default_texels_per_unit, Nothing)\n\ninstance NodeProperty BakedLightmap \"bake_energy\" Float 'False\n         where\n        nodeProperty = (get_energy, wrapDroppingSetter set_energy, Nothing)\n\ninstance NodeProperty BakedLightmap \"bake_extents\" Vector3 'False\n         where\n        nodeProperty\n          = (get_extents, wrapDroppingSetter set_extents, Nothing)\n\ninstance NodeProperty BakedLightmap \"bake_hdr\" Bool 'False where\n        nodeProperty = (is_hdr, wrapDroppingSetter set_hdr, Nothing)\n\ninstance NodeProperty BakedLightmap \"bake_mode\" Int 'False where\n        nodeProperty\n          = (get_bake_mode, wrapDroppingSetter set_bake_mode, Nothing)\n\ninstance NodeProperty BakedLightmap \"bake_propagation\" Float 'False\n         where\n        nodeProperty\n          = (get_propagation, wrapDroppingSetter set_propagation, Nothing)\n\ninstance NodeProperty BakedLightmap \"bake_quality\" Int 'False where\n        nodeProperty\n          = (get_bake_quality, wrapDroppingSetter set_bake_quality, Nothing)\n\ninstance NodeProperty BakedLightmap \"capture_cell_size\" Float\n           'False\n         where\n        nodeProperty\n          = (get_capture_cell_size, wrapDroppingSetter set_capture_cell_size,\n             Nothing)\n\ninstance NodeProperty BakedLightmap \"image_path\" GodotString 'False\n         where\n        nodeProperty\n          = (get_image_path, wrapDroppingSetter set_image_path, Nothing)\n\ninstance NodeProperty BakedLightmap \"light_data\" BakedLightmapData\n           'False\n         where\n        nodeProperty\n          = (get_light_data, wrapDroppingSetter set_light_data, Nothing)\n\n{-# NOINLINE bindBakedLightmap_bake #-}\n\n-- | Bakes the lightmaps within the currently edited scene. Returns a @enum BakeError@ to signify if the bake was successful, or if unsuccessful, how the bake failed.\nbindBakedLightmap_bake :: MethodBind\nbindBakedLightmap_bake\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"bake\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Bakes the lightmaps within the currently edited scene. Returns a @enum BakeError@ to signify if the bake was successful, or if unsuccessful, how the bake failed.\nbake ::\n       (BakedLightmap :< cls, Object :< cls) =>\n       cls -> Maybe Node -> Maybe Bool -> IO Int\nbake cls arg1 arg2\n  = withVariantArray\n      [maybe VariantNil toVariant arg1,\n       maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_bake (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"bake\" '[Maybe Node, Maybe Bool]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.BakedLightmap.bake\n\n{-# NOINLINE bindBakedLightmap_debug_bake #-}\n\n-- | Executes a dry run bake of lightmaps within the currently edited scene.\nbindBakedLightmap_debug_bake :: MethodBind\nbindBakedLightmap_debug_bake\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"debug_bake\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Executes a dry run bake of lightmaps within the currently edited scene.\ndebug_bake :: (BakedLightmap :< cls, Object :< cls) => cls -> IO ()\ndebug_bake cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_debug_bake (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"debug_bake\" '[] (IO ()) where\n        nodeMethod = Godot.Core.BakedLightmap.debug_bake\n\n{-# NOINLINE bindBakedLightmap_get_bake_cell_size #-}\n\n-- | Grid subdivision size for lightmapper calculation. The default value will work for most cases. Increase for better lighting on small details or if your scene is very large.\nbindBakedLightmap_get_bake_cell_size :: MethodBind\nbindBakedLightmap_get_bake_cell_size\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"get_bake_cell_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Grid subdivision size for lightmapper calculation. The default value will work for most cases. Increase for better lighting on small details or if your scene is very large.\nget_bake_cell_size ::\n                     (BakedLightmap :< cls, Object :< cls) => cls -> IO Float\nget_bake_cell_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_get_bake_cell_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"get_bake_cell_size\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.BakedLightmap.get_bake_cell_size\n\n{-# NOINLINE bindBakedLightmap_get_bake_default_texels_per_unit #-}\n\n-- | If a @Mesh.lightmap_size_hint@ isn't specified, the lightmap baker will dynamically set the lightmap size using this value. This value is measured in texels per world unit. The maximum lightmap texture size is 4096x4096.\nbindBakedLightmap_get_bake_default_texels_per_unit :: MethodBind\nbindBakedLightmap_get_bake_default_texels_per_unit\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"get_bake_default_texels_per_unit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If a @Mesh.lightmap_size_hint@ isn't specified, the lightmap baker will dynamically set the lightmap size using this value. This value is measured in texels per world unit. The maximum lightmap texture size is 4096x4096.\nget_bake_default_texels_per_unit ::\n                                   (BakedLightmap :< cls, Object :< cls) => cls -> IO Float\nget_bake_default_texels_per_unit cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindBakedLightmap_get_bake_default_texels_per_unit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap\n           \"get_bake_default_texels_per_unit\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.BakedLightmap.get_bake_default_texels_per_unit\n\n{-# NOINLINE bindBakedLightmap_get_bake_mode #-}\n\n-- | Lightmapping mode. See @enum BakeMode@.\nbindBakedLightmap_get_bake_mode :: MethodBind\nbindBakedLightmap_get_bake_mode\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"get_bake_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Lightmapping mode. See @enum BakeMode@.\nget_bake_mode ::\n                (BakedLightmap :< cls, Object :< cls) => cls -> IO Int\nget_bake_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_get_bake_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"get_bake_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.BakedLightmap.get_bake_mode\n\n{-# NOINLINE bindBakedLightmap_get_bake_quality #-}\n\n-- | Three quality modes are available. Higher quality requires more rendering time. See @enum BakeQuality@.\nbindBakedLightmap_get_bake_quality :: MethodBind\nbindBakedLightmap_get_bake_quality\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"get_bake_quality\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Three quality modes are available. Higher quality requires more rendering time. See @enum BakeQuality@.\nget_bake_quality ::\n                   (BakedLightmap :< cls, Object :< cls) => cls -> IO Int\nget_bake_quality cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_get_bake_quality\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"get_bake_quality\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.BakedLightmap.get_bake_quality\n\n{-# NOINLINE bindBakedLightmap_get_capture_cell_size #-}\n\n-- | Grid size used for real-time capture information on dynamic objects. Cannot be larger than @bake_cell_size@.\nbindBakedLightmap_get_capture_cell_size :: MethodBind\nbindBakedLightmap_get_capture_cell_size\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"get_capture_cell_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Grid size used for real-time capture information on dynamic objects. Cannot be larger than @bake_cell_size@.\nget_capture_cell_size ::\n                        (BakedLightmap :< cls, Object :< cls) => cls -> IO Float\nget_capture_cell_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_get_capture_cell_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"get_capture_cell_size\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.BakedLightmap.get_capture_cell_size\n\n{-# NOINLINE bindBakedLightmap_get_energy #-}\n\n-- | Multiplies the light sources' intensity by this value. For instance, if the value is set to 2, lights will be twice as bright. If the value is set to 0.5, lights will be half as bright.\nbindBakedLightmap_get_energy :: MethodBind\nbindBakedLightmap_get_energy\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"get_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Multiplies the light sources' intensity by this value. For instance, if the value is set to 2, lights will be twice as bright. If the value is set to 0.5, lights will be half as bright.\nget_energy ::\n             (BakedLightmap :< cls, Object :< cls) => cls -> IO Float\nget_energy cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_get_energy (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"get_energy\" '[] (IO Float) where\n        nodeMethod = Godot.Core.BakedLightmap.get_energy\n\n{-# NOINLINE bindBakedLightmap_get_extents #-}\n\n-- | The size of the affected area.\nbindBakedLightmap_get_extents :: MethodBind\nbindBakedLightmap_get_extents\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"get_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size of the affected area.\nget_extents ::\n              (BakedLightmap :< cls, Object :< cls) => cls -> IO Vector3\nget_extents cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_get_extents (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"get_extents\" '[] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.BakedLightmap.get_extents\n\n{-# NOINLINE bindBakedLightmap_get_image_path #-}\n\n-- | The location where lightmaps will be saved.\nbindBakedLightmap_get_image_path :: MethodBind\nbindBakedLightmap_get_image_path\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"get_image_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The location where lightmaps will be saved.\nget_image_path ::\n                 (BakedLightmap :< cls, Object :< cls) => cls -> IO GodotString\nget_image_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_get_image_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"get_image_path\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.BakedLightmap.get_image_path\n\n{-# NOINLINE bindBakedLightmap_get_light_data #-}\n\n-- | The calculated light data.\nbindBakedLightmap_get_light_data :: MethodBind\nbindBakedLightmap_get_light_data\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"get_light_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The calculated light data.\nget_light_data ::\n                 (BakedLightmap :< cls, Object :< cls) =>\n                 cls -> IO BakedLightmapData\nget_light_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_get_light_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"get_light_data\" '[]\n           (IO BakedLightmapData)\n         where\n        nodeMethod = Godot.Core.BakedLightmap.get_light_data\n\n{-# NOINLINE bindBakedLightmap_get_propagation #-}\n\n-- | Defines how far the light will travel before it is no longer effective. The higher the number, the farther the light will travel. For instance, if the value is set to 2, the light will go twice as far. If the value is set to 0.5, the light will only go half as far.\nbindBakedLightmap_get_propagation :: MethodBind\nbindBakedLightmap_get_propagation\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"get_propagation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines how far the light will travel before it is no longer effective. The higher the number, the farther the light will travel. For instance, if the value is set to 2, the light will go twice as far. If the value is set to 0.5, the light will only go half as far.\nget_propagation ::\n                  (BakedLightmap :< cls, Object :< cls) => cls -> IO Float\nget_propagation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_get_propagation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"get_propagation\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.BakedLightmap.get_propagation\n\n{-# NOINLINE bindBakedLightmap_is_hdr #-}\n\n-- | If @true@, the lightmap can capture light values greater than @1.0@. Turning this off will result in a smaller file size.\nbindBakedLightmap_is_hdr :: MethodBind\nbindBakedLightmap_is_hdr\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"is_hdr\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the lightmap can capture light values greater than @1.0@. Turning this off will result in a smaller file size.\nis_hdr :: (BakedLightmap :< cls, Object :< cls) => cls -> IO Bool\nis_hdr cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_is_hdr (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"is_hdr\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.BakedLightmap.is_hdr\n\n{-# NOINLINE bindBakedLightmap_set_bake_cell_size #-}\n\n-- | Grid subdivision size for lightmapper calculation. The default value will work for most cases. Increase for better lighting on small details or if your scene is very large.\nbindBakedLightmap_set_bake_cell_size :: MethodBind\nbindBakedLightmap_set_bake_cell_size\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"set_bake_cell_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Grid subdivision size for lightmapper calculation. The default value will work for most cases. Increase for better lighting on small details or if your scene is very large.\nset_bake_cell_size ::\n                     (BakedLightmap :< cls, Object :< cls) => cls -> Float -> IO ()\nset_bake_cell_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_set_bake_cell_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"set_bake_cell_size\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BakedLightmap.set_bake_cell_size\n\n{-# NOINLINE bindBakedLightmap_set_bake_default_texels_per_unit #-}\n\n-- | If a @Mesh.lightmap_size_hint@ isn't specified, the lightmap baker will dynamically set the lightmap size using this value. This value is measured in texels per world unit. The maximum lightmap texture size is 4096x4096.\nbindBakedLightmap_set_bake_default_texels_per_unit :: MethodBind\nbindBakedLightmap_set_bake_default_texels_per_unit\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"set_bake_default_texels_per_unit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If a @Mesh.lightmap_size_hint@ isn't specified, the lightmap baker will dynamically set the lightmap size using this value. This value is measured in texels per world unit. The maximum lightmap texture size is 4096x4096.\nset_bake_default_texels_per_unit ::\n                                   (BakedLightmap :< cls, Object :< cls) => cls -> Float -> IO ()\nset_bake_default_texels_per_unit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindBakedLightmap_set_bake_default_texels_per_unit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap\n           \"set_bake_default_texels_per_unit\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.BakedLightmap.set_bake_default_texels_per_unit\n\n{-# NOINLINE bindBakedLightmap_set_bake_mode #-}\n\n-- | Lightmapping mode. See @enum BakeMode@.\nbindBakedLightmap_set_bake_mode :: MethodBind\nbindBakedLightmap_set_bake_mode\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"set_bake_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Lightmapping mode. See @enum BakeMode@.\nset_bake_mode ::\n                (BakedLightmap :< cls, Object :< cls) => cls -> Int -> IO ()\nset_bake_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_set_bake_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"set_bake_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.BakedLightmap.set_bake_mode\n\n{-# NOINLINE bindBakedLightmap_set_bake_quality #-}\n\n-- | Three quality modes are available. Higher quality requires more rendering time. See @enum BakeQuality@.\nbindBakedLightmap_set_bake_quality :: MethodBind\nbindBakedLightmap_set_bake_quality\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"set_bake_quality\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Three quality modes are available. Higher quality requires more rendering time. See @enum BakeQuality@.\nset_bake_quality ::\n                   (BakedLightmap :< cls, Object :< cls) => cls -> Int -> IO ()\nset_bake_quality cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_set_bake_quality\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"set_bake_quality\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.BakedLightmap.set_bake_quality\n\n{-# NOINLINE bindBakedLightmap_set_capture_cell_size #-}\n\n-- | Grid size used for real-time capture information on dynamic objects. Cannot be larger than @bake_cell_size@.\nbindBakedLightmap_set_capture_cell_size :: MethodBind\nbindBakedLightmap_set_capture_cell_size\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"set_capture_cell_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Grid size used for real-time capture information on dynamic objects. Cannot be larger than @bake_cell_size@.\nset_capture_cell_size ::\n                        (BakedLightmap :< cls, Object :< cls) => cls -> Float -> IO ()\nset_capture_cell_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_set_capture_cell_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"set_capture_cell_size\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BakedLightmap.set_capture_cell_size\n\n{-# NOINLINE bindBakedLightmap_set_energy #-}\n\n-- | Multiplies the light sources' intensity by this value. For instance, if the value is set to 2, lights will be twice as bright. If the value is set to 0.5, lights will be half as bright.\nbindBakedLightmap_set_energy :: MethodBind\nbindBakedLightmap_set_energy\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"set_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Multiplies the light sources' intensity by this value. For instance, if the value is set to 2, lights will be twice as bright. If the value is set to 0.5, lights will be half as bright.\nset_energy ::\n             (BakedLightmap :< cls, Object :< cls) => cls -> Float -> IO ()\nset_energy cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_set_energy (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"set_energy\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.BakedLightmap.set_energy\n\n{-# NOINLINE bindBakedLightmap_set_extents #-}\n\n-- | The size of the affected area.\nbindBakedLightmap_set_extents :: MethodBind\nbindBakedLightmap_set_extents\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"set_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size of the affected area.\nset_extents ::\n              (BakedLightmap :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_extents cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_set_extents (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"set_extents\" '[Vector3] (IO ())\n         where\n        nodeMethod = Godot.Core.BakedLightmap.set_extents\n\n{-# NOINLINE bindBakedLightmap_set_hdr #-}\n\n-- | If @true@, the lightmap can capture light values greater than @1.0@. Turning this off will result in a smaller file size.\nbindBakedLightmap_set_hdr :: MethodBind\nbindBakedLightmap_set_hdr\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"set_hdr\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the lightmap can capture light values greater than @1.0@. Turning this off will result in a smaller file size.\nset_hdr ::\n          (BakedLightmap :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_hdr cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_set_hdr (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"set_hdr\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.BakedLightmap.set_hdr\n\n{-# NOINLINE bindBakedLightmap_set_image_path #-}\n\n-- | The location where lightmaps will be saved.\nbindBakedLightmap_set_image_path :: MethodBind\nbindBakedLightmap_set_image_path\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"set_image_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The location where lightmaps will be saved.\nset_image_path ::\n                 (BakedLightmap :< cls, Object :< cls) =>\n                 cls -> GodotString -> IO ()\nset_image_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_set_image_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"set_image_path\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BakedLightmap.set_image_path\n\n{-# NOINLINE bindBakedLightmap_set_light_data #-}\n\n-- | The calculated light data.\nbindBakedLightmap_set_light_data :: MethodBind\nbindBakedLightmap_set_light_data\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"set_light_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The calculated light data.\nset_light_data ::\n                 (BakedLightmap :< cls, Object :< cls) =>\n                 cls -> BakedLightmapData -> IO ()\nset_light_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_set_light_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"set_light_data\"\n           '[BakedLightmapData]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BakedLightmap.set_light_data\n\n{-# NOINLINE bindBakedLightmap_set_propagation #-}\n\n-- | Defines how far the light will travel before it is no longer effective. The higher the number, the farther the light will travel. For instance, if the value is set to 2, the light will go twice as far. If the value is set to 0.5, the light will only go half as far.\nbindBakedLightmap_set_propagation :: MethodBind\nbindBakedLightmap_set_propagation\n  = unsafePerformIO $\n      withCString \"BakedLightmap\" $\n        \\ clsNamePtr ->\n          withCString \"set_propagation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines how far the light will travel before it is no longer effective. The higher the number, the farther the light will travel. For instance, if the value is set to 2, the light will go twice as far. If the value is set to 0.5, the light will only go half as far.\nset_propagation ::\n                  (BakedLightmap :< cls, Object :< cls) => cls -> Float -> IO ()\nset_propagation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmap_set_propagation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmap \"set_propagation\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BakedLightmap.set_propagation"
  },
  {
    "path": "src/Godot/Core/BakedLightmapData.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.BakedLightmapData\n       (Godot.Core.BakedLightmapData._get_user_data,\n        Godot.Core.BakedLightmapData._set_user_data,\n        Godot.Core.BakedLightmapData.add_user,\n        Godot.Core.BakedLightmapData.clear_users,\n        Godot.Core.BakedLightmapData.get_bounds,\n        Godot.Core.BakedLightmapData.get_cell_space_transform,\n        Godot.Core.BakedLightmapData.get_cell_subdiv,\n        Godot.Core.BakedLightmapData.get_energy,\n        Godot.Core.BakedLightmapData.get_octree,\n        Godot.Core.BakedLightmapData.get_user_count,\n        Godot.Core.BakedLightmapData.get_user_lightmap,\n        Godot.Core.BakedLightmapData.get_user_path,\n        Godot.Core.BakedLightmapData.set_bounds,\n        Godot.Core.BakedLightmapData.set_cell_space_transform,\n        Godot.Core.BakedLightmapData.set_cell_subdiv,\n        Godot.Core.BakedLightmapData.set_energy,\n        Godot.Core.BakedLightmapData.set_octree)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty BakedLightmapData \"bounds\" Aabb 'False where\n        nodeProperty = (get_bounds, wrapDroppingSetter set_bounds, Nothing)\n\ninstance NodeProperty BakedLightmapData \"cell_space_transform\"\n           Transform\n           'False\n         where\n        nodeProperty\n          = (get_cell_space_transform,\n             wrapDroppingSetter set_cell_space_transform, Nothing)\n\ninstance NodeProperty BakedLightmapData \"cell_subdiv\" Int 'False\n         where\n        nodeProperty\n          = (get_cell_subdiv, wrapDroppingSetter set_cell_subdiv, Nothing)\n\ninstance NodeProperty BakedLightmapData \"energy\" Float 'False where\n        nodeProperty = (get_energy, wrapDroppingSetter set_energy, Nothing)\n\ninstance NodeProperty BakedLightmapData \"octree\" PoolByteArray\n           'False\n         where\n        nodeProperty = (get_octree, wrapDroppingSetter set_octree, Nothing)\n\ninstance NodeProperty BakedLightmapData \"user_data\" Array 'False\n         where\n        nodeProperty\n          = (_get_user_data, wrapDroppingSetter _set_user_data, Nothing)\n\n{-# NOINLINE bindBakedLightmapData__get_user_data #-}\n\nbindBakedLightmapData__get_user_data :: MethodBind\nbindBakedLightmapData__get_user_data\n  = unsafePerformIO $\n      withCString \"BakedLightmapData\" $\n        \\ clsNamePtr ->\n          withCString \"_get_user_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_user_data ::\n                 (BakedLightmapData :< cls, Object :< cls) => cls -> IO Array\n_get_user_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmapData__get_user_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmapData \"_get_user_data\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.BakedLightmapData._get_user_data\n\n{-# NOINLINE bindBakedLightmapData__set_user_data #-}\n\nbindBakedLightmapData__set_user_data :: MethodBind\nbindBakedLightmapData__set_user_data\n  = unsafePerformIO $\n      withCString \"BakedLightmapData\" $\n        \\ clsNamePtr ->\n          withCString \"_set_user_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_user_data ::\n                 (BakedLightmapData :< cls, Object :< cls) => cls -> Array -> IO ()\n_set_user_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmapData__set_user_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmapData \"_set_user_data\" '[Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BakedLightmapData._set_user_data\n\n{-# NOINLINE bindBakedLightmapData_add_user #-}\n\nbindBakedLightmapData_add_user :: MethodBind\nbindBakedLightmapData_add_user\n  = unsafePerformIO $\n      withCString \"BakedLightmapData\" $\n        \\ clsNamePtr ->\n          withCString \"add_user\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_user ::\n           (BakedLightmapData :< cls, Object :< cls) =>\n           cls -> NodePath -> Texture -> Int -> IO ()\nadd_user cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmapData_add_user (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmapData \"add_user\"\n           '[NodePath, Texture, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BakedLightmapData.add_user\n\n{-# NOINLINE bindBakedLightmapData_clear_users #-}\n\nbindBakedLightmapData_clear_users :: MethodBind\nbindBakedLightmapData_clear_users\n  = unsafePerformIO $\n      withCString \"BakedLightmapData\" $\n        \\ clsNamePtr ->\n          withCString \"clear_users\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nclear_users ::\n              (BakedLightmapData :< cls, Object :< cls) => cls -> IO ()\nclear_users cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmapData_clear_users\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmapData \"clear_users\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.BakedLightmapData.clear_users\n\n{-# NOINLINE bindBakedLightmapData_get_bounds #-}\n\nbindBakedLightmapData_get_bounds :: MethodBind\nbindBakedLightmapData_get_bounds\n  = unsafePerformIO $\n      withCString \"BakedLightmapData\" $\n        \\ clsNamePtr ->\n          withCString \"get_bounds\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_bounds ::\n             (BakedLightmapData :< cls, Object :< cls) => cls -> IO Aabb\nget_bounds cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmapData_get_bounds\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmapData \"get_bounds\" '[] (IO Aabb)\n         where\n        nodeMethod = Godot.Core.BakedLightmapData.get_bounds\n\n{-# NOINLINE bindBakedLightmapData_get_cell_space_transform #-}\n\nbindBakedLightmapData_get_cell_space_transform :: MethodBind\nbindBakedLightmapData_get_cell_space_transform\n  = unsafePerformIO $\n      withCString \"BakedLightmapData\" $\n        \\ clsNamePtr ->\n          withCString \"get_cell_space_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_cell_space_transform ::\n                           (BakedLightmapData :< cls, Object :< cls) => cls -> IO Transform\nget_cell_space_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindBakedLightmapData_get_cell_space_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmapData \"get_cell_space_transform\"\n           '[]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.BakedLightmapData.get_cell_space_transform\n\n{-# NOINLINE bindBakedLightmapData_get_cell_subdiv #-}\n\nbindBakedLightmapData_get_cell_subdiv :: MethodBind\nbindBakedLightmapData_get_cell_subdiv\n  = unsafePerformIO $\n      withCString \"BakedLightmapData\" $\n        \\ clsNamePtr ->\n          withCString \"get_cell_subdiv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_cell_subdiv ::\n                  (BakedLightmapData :< cls, Object :< cls) => cls -> IO Int\nget_cell_subdiv cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmapData_get_cell_subdiv\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmapData \"get_cell_subdiv\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.BakedLightmapData.get_cell_subdiv\n\n{-# NOINLINE bindBakedLightmapData_get_energy #-}\n\nbindBakedLightmapData_get_energy :: MethodBind\nbindBakedLightmapData_get_energy\n  = unsafePerformIO $\n      withCString \"BakedLightmapData\" $\n        \\ clsNamePtr ->\n          withCString \"get_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_energy ::\n             (BakedLightmapData :< cls, Object :< cls) => cls -> IO Float\nget_energy cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmapData_get_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmapData \"get_energy\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.BakedLightmapData.get_energy\n\n{-# NOINLINE bindBakedLightmapData_get_octree #-}\n\nbindBakedLightmapData_get_octree :: MethodBind\nbindBakedLightmapData_get_octree\n  = unsafePerformIO $\n      withCString \"BakedLightmapData\" $\n        \\ clsNamePtr ->\n          withCString \"get_octree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_octree ::\n             (BakedLightmapData :< cls, Object :< cls) =>\n             cls -> IO PoolByteArray\nget_octree cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmapData_get_octree\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmapData \"get_octree\" '[]\n           (IO PoolByteArray)\n         where\n        nodeMethod = Godot.Core.BakedLightmapData.get_octree\n\n{-# NOINLINE bindBakedLightmapData_get_user_count #-}\n\nbindBakedLightmapData_get_user_count :: MethodBind\nbindBakedLightmapData_get_user_count\n  = unsafePerformIO $\n      withCString \"BakedLightmapData\" $\n        \\ clsNamePtr ->\n          withCString \"get_user_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_user_count ::\n                 (BakedLightmapData :< cls, Object :< cls) => cls -> IO Int\nget_user_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmapData_get_user_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmapData \"get_user_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.BakedLightmapData.get_user_count\n\n{-# NOINLINE bindBakedLightmapData_get_user_lightmap #-}\n\nbindBakedLightmapData_get_user_lightmap :: MethodBind\nbindBakedLightmapData_get_user_lightmap\n  = unsafePerformIO $\n      withCString \"BakedLightmapData\" $\n        \\ clsNamePtr ->\n          withCString \"get_user_lightmap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_user_lightmap ::\n                    (BakedLightmapData :< cls, Object :< cls) =>\n                    cls -> Int -> IO Texture\nget_user_lightmap cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmapData_get_user_lightmap\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmapData \"get_user_lightmap\" '[Int]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.BakedLightmapData.get_user_lightmap\n\n{-# NOINLINE bindBakedLightmapData_get_user_path #-}\n\nbindBakedLightmapData_get_user_path :: MethodBind\nbindBakedLightmapData_get_user_path\n  = unsafePerformIO $\n      withCString \"BakedLightmapData\" $\n        \\ clsNamePtr ->\n          withCString \"get_user_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_user_path ::\n                (BakedLightmapData :< cls, Object :< cls) =>\n                cls -> Int -> IO NodePath\nget_user_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmapData_get_user_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmapData \"get_user_path\" '[Int]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.BakedLightmapData.get_user_path\n\n{-# NOINLINE bindBakedLightmapData_set_bounds #-}\n\nbindBakedLightmapData_set_bounds :: MethodBind\nbindBakedLightmapData_set_bounds\n  = unsafePerformIO $\n      withCString \"BakedLightmapData\" $\n        \\ clsNamePtr ->\n          withCString \"set_bounds\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_bounds ::\n             (BakedLightmapData :< cls, Object :< cls) => cls -> Aabb -> IO ()\nset_bounds cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmapData_set_bounds\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmapData \"set_bounds\" '[Aabb] (IO ())\n         where\n        nodeMethod = Godot.Core.BakedLightmapData.set_bounds\n\n{-# NOINLINE bindBakedLightmapData_set_cell_space_transform #-}\n\nbindBakedLightmapData_set_cell_space_transform :: MethodBind\nbindBakedLightmapData_set_cell_space_transform\n  = unsafePerformIO $\n      withCString \"BakedLightmapData\" $\n        \\ clsNamePtr ->\n          withCString \"set_cell_space_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_cell_space_transform ::\n                           (BakedLightmapData :< cls, Object :< cls) =>\n                           cls -> Transform -> IO ()\nset_cell_space_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindBakedLightmapData_set_cell_space_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmapData \"set_cell_space_transform\"\n           '[Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BakedLightmapData.set_cell_space_transform\n\n{-# NOINLINE bindBakedLightmapData_set_cell_subdiv #-}\n\nbindBakedLightmapData_set_cell_subdiv :: MethodBind\nbindBakedLightmapData_set_cell_subdiv\n  = unsafePerformIO $\n      withCString \"BakedLightmapData\" $\n        \\ clsNamePtr ->\n          withCString \"set_cell_subdiv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_cell_subdiv ::\n                  (BakedLightmapData :< cls, Object :< cls) => cls -> Int -> IO ()\nset_cell_subdiv cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmapData_set_cell_subdiv\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmapData \"set_cell_subdiv\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BakedLightmapData.set_cell_subdiv\n\n{-# NOINLINE bindBakedLightmapData_set_energy #-}\n\nbindBakedLightmapData_set_energy :: MethodBind\nbindBakedLightmapData_set_energy\n  = unsafePerformIO $\n      withCString \"BakedLightmapData\" $\n        \\ clsNamePtr ->\n          withCString \"set_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_energy ::\n             (BakedLightmapData :< cls, Object :< cls) => cls -> Float -> IO ()\nset_energy cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmapData_set_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmapData \"set_energy\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.BakedLightmapData.set_energy\n\n{-# NOINLINE bindBakedLightmapData_set_octree #-}\n\nbindBakedLightmapData_set_octree :: MethodBind\nbindBakedLightmapData_set_octree\n  = unsafePerformIO $\n      withCString \"BakedLightmapData\" $\n        \\ clsNamePtr ->\n          withCString \"set_octree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_octree ::\n             (BakedLightmapData :< cls, Object :< cls) =>\n             cls -> PoolByteArray -> IO ()\nset_octree cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBakedLightmapData_set_octree\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BakedLightmapData \"set_octree\" '[PoolByteArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BakedLightmapData.set_octree"
  },
  {
    "path": "src/Godot/Core/BaseButton.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.BaseButton\n       (Godot.Core.BaseButton._DRAW_NORMAL,\n        Godot.Core.BaseButton._DRAW_DISABLED,\n        Godot.Core.BaseButton._ACTION_MODE_BUTTON_RELEASE,\n        Godot.Core.BaseButton._DRAW_HOVER_PRESSED,\n        Godot.Core.BaseButton._ACTION_MODE_BUTTON_PRESS,\n        Godot.Core.BaseButton._DRAW_PRESSED,\n        Godot.Core.BaseButton._DRAW_HOVER,\n        Godot.Core.BaseButton.sig_button_down,\n        Godot.Core.BaseButton.sig_button_up,\n        Godot.Core.BaseButton.sig_pressed,\n        Godot.Core.BaseButton.sig_toggled,\n        Godot.Core.BaseButton._gui_input, Godot.Core.BaseButton._pressed,\n        Godot.Core.BaseButton._toggled,\n        Godot.Core.BaseButton._unhandled_input,\n        Godot.Core.BaseButton.get_action_mode,\n        Godot.Core.BaseButton.get_button_group,\n        Godot.Core.BaseButton.get_button_mask,\n        Godot.Core.BaseButton.get_draw_mode,\n        Godot.Core.BaseButton.get_enabled_focus_mode,\n        Godot.Core.BaseButton.get_shortcut,\n        Godot.Core.BaseButton.is_disabled,\n        Godot.Core.BaseButton.is_hovered,\n        Godot.Core.BaseButton.is_keep_pressed_outside,\n        Godot.Core.BaseButton.is_pressed,\n        Godot.Core.BaseButton.is_shortcut_in_tooltip_enabled,\n        Godot.Core.BaseButton.is_toggle_mode,\n        Godot.Core.BaseButton.set_action_mode,\n        Godot.Core.BaseButton.set_button_group,\n        Godot.Core.BaseButton.set_button_mask,\n        Godot.Core.BaseButton.set_disabled,\n        Godot.Core.BaseButton.set_enabled_focus_mode,\n        Godot.Core.BaseButton.set_keep_pressed_outside,\n        Godot.Core.BaseButton.set_pressed,\n        Godot.Core.BaseButton.set_shortcut,\n        Godot.Core.BaseButton.set_shortcut_in_tooltip,\n        Godot.Core.BaseButton.set_toggle_mode)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()\n\n_DRAW_NORMAL :: Int\n_DRAW_NORMAL = 0\n\n_DRAW_DISABLED :: Int\n_DRAW_DISABLED = 3\n\n_ACTION_MODE_BUTTON_RELEASE :: Int\n_ACTION_MODE_BUTTON_RELEASE = 1\n\n_DRAW_HOVER_PRESSED :: Int\n_DRAW_HOVER_PRESSED = 4\n\n_ACTION_MODE_BUTTON_PRESS :: Int\n_ACTION_MODE_BUTTON_PRESS = 0\n\n_DRAW_PRESSED :: Int\n_DRAW_PRESSED = 1\n\n_DRAW_HOVER :: Int\n_DRAW_HOVER = 2\n\n-- | Emitted when the button starts being held down.\nsig_button_down :: Godot.Internal.Dispatch.Signal BaseButton\nsig_button_down = Godot.Internal.Dispatch.Signal \"button_down\"\n\ninstance NodeSignal BaseButton \"button_down\" '[]\n\n-- | Emitted when the button stops being held down.\nsig_button_up :: Godot.Internal.Dispatch.Signal BaseButton\nsig_button_up = Godot.Internal.Dispatch.Signal \"button_up\"\n\ninstance NodeSignal BaseButton \"button_up\" '[]\n\n-- | Emitted when the button is toggled or pressed. This is on @signal button_down@ if @action_mode@ is @ACTION_MODE_BUTTON_PRESS@ and on @signal button_up@ otherwise.\n--   \t\t\t\tIf you need to know the button's pressed state (and @toggle_mode@ is active), use @signal toggled@ instead.\nsig_pressed :: Godot.Internal.Dispatch.Signal BaseButton\nsig_pressed = Godot.Internal.Dispatch.Signal \"pressed\"\n\ninstance NodeSignal BaseButton \"pressed\" '[]\n\n-- | Emitted when the button was just toggled between pressed and normal states (only if @toggle_mode@ is active). The new state is contained in the @button_pressed@ argument.\nsig_toggled :: Godot.Internal.Dispatch.Signal BaseButton\nsig_toggled = Godot.Internal.Dispatch.Signal \"toggled\"\n\ninstance NodeSignal BaseButton \"toggled\" '[Bool]\n\ninstance NodeProperty BaseButton \"action_mode\" Int 'False where\n        nodeProperty\n          = (get_action_mode, wrapDroppingSetter set_action_mode, Nothing)\n\ninstance NodeProperty BaseButton \"button_mask\" Int 'False where\n        nodeProperty\n          = (get_button_mask, wrapDroppingSetter set_button_mask, Nothing)\n\ninstance NodeProperty BaseButton \"disabled\" Bool 'False where\n        nodeProperty\n          = (is_disabled, wrapDroppingSetter set_disabled, Nothing)\n\ninstance NodeProperty BaseButton \"enabled_focus_mode\" Int 'False\n         where\n        nodeProperty\n          = (get_enabled_focus_mode,\n             wrapDroppingSetter set_enabled_focus_mode, Nothing)\n\ninstance NodeProperty BaseButton \"group\" ButtonGroup 'False where\n        nodeProperty\n          = (get_button_group, wrapDroppingSetter set_button_group, Nothing)\n\ninstance NodeProperty BaseButton \"keep_pressed_outside\" Bool 'False\n         where\n        nodeProperty\n          = (is_keep_pressed_outside,\n             wrapDroppingSetter set_keep_pressed_outside, Nothing)\n\ninstance NodeProperty BaseButton \"pressed\" Bool 'False where\n        nodeProperty\n          = (is_pressed, wrapDroppingSetter set_pressed, Nothing)\n\ninstance NodeProperty BaseButton \"shortcut\" ShortCut 'False where\n        nodeProperty\n          = (get_shortcut, wrapDroppingSetter set_shortcut, Nothing)\n\ninstance NodeProperty BaseButton \"shortcut_in_tooltip\" Bool 'False\n         where\n        nodeProperty\n          = (is_shortcut_in_tooltip_enabled,\n             wrapDroppingSetter set_shortcut_in_tooltip, Nothing)\n\ninstance NodeProperty BaseButton \"toggle_mode\" Bool 'False where\n        nodeProperty\n          = (is_toggle_mode, wrapDroppingSetter set_toggle_mode, Nothing)\n\n{-# NOINLINE bindBaseButton__gui_input #-}\n\nbindBaseButton__gui_input :: MethodBind\nbindBaseButton__gui_input\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (BaseButton :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton__gui_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"_gui_input\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.BaseButton._gui_input\n\n{-# NOINLINE bindBaseButton__pressed #-}\n\n-- | Called when the button is pressed. If you need to know the button's pressed state (and @toggle_mode@ is active), use @method _toggled@ instead.\nbindBaseButton__pressed :: MethodBind\nbindBaseButton__pressed\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called when the button is pressed. If you need to know the button's pressed state (and @toggle_mode@ is active), use @method _toggled@ instead.\n_pressed :: (BaseButton :< cls, Object :< cls) => cls -> IO ()\n_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton__pressed (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"_pressed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.BaseButton._pressed\n\n{-# NOINLINE bindBaseButton__toggled #-}\n\n-- | Called when the button is toggled (only if @toggle_mode@ is active).\nbindBaseButton__toggled :: MethodBind\nbindBaseButton__toggled\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"_toggled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called when the button is toggled (only if @toggle_mode@ is active).\n_toggled ::\n           (BaseButton :< cls, Object :< cls) => cls -> Bool -> IO ()\n_toggled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton__toggled (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"_toggled\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.BaseButton._toggled\n\n{-# NOINLINE bindBaseButton__unhandled_input #-}\n\nbindBaseButton__unhandled_input :: MethodBind\nbindBaseButton__unhandled_input\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"_unhandled_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_unhandled_input ::\n                   (BaseButton :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_unhandled_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton__unhandled_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"_unhandled_input\" '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BaseButton._unhandled_input\n\n{-# NOINLINE bindBaseButton_get_action_mode #-}\n\n-- | Determines when the button is considered clicked, one of the @enum ActionMode@ constants.\nbindBaseButton_get_action_mode :: MethodBind\nbindBaseButton_get_action_mode\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_action_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Determines when the button is considered clicked, one of the @enum ActionMode@ constants.\nget_action_mode ::\n                  (BaseButton :< cls, Object :< cls) => cls -> IO Int\nget_action_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_get_action_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"get_action_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.BaseButton.get_action_mode\n\n{-# NOINLINE bindBaseButton_get_button_group #-}\n\n-- | @ButtonGroup@ associated to the button.\nbindBaseButton_get_button_group :: MethodBind\nbindBaseButton_get_button_group\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_button_group\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @ButtonGroup@ associated to the button.\nget_button_group ::\n                   (BaseButton :< cls, Object :< cls) => cls -> IO ButtonGroup\nget_button_group cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_get_button_group (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"get_button_group\" '[]\n           (IO ButtonGroup)\n         where\n        nodeMethod = Godot.Core.BaseButton.get_button_group\n\n{-# NOINLINE bindBaseButton_get_button_mask #-}\n\n-- | Binary mask to choose which mouse buttons this button will respond to.\n--   \t\t\tTo allow both left-click and right-click, use @BUTTON_MASK_LEFT | BUTTON_MASK_RIGHT@.\nbindBaseButton_get_button_mask :: MethodBind\nbindBaseButton_get_button_mask\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_button_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Binary mask to choose which mouse buttons this button will respond to.\n--   \t\t\tTo allow both left-click and right-click, use @BUTTON_MASK_LEFT | BUTTON_MASK_RIGHT@.\nget_button_mask ::\n                  (BaseButton :< cls, Object :< cls) => cls -> IO Int\nget_button_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_get_button_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"get_button_mask\" '[] (IO Int) where\n        nodeMethod = Godot.Core.BaseButton.get_button_mask\n\n{-# NOINLINE bindBaseButton_get_draw_mode #-}\n\n-- | Returns the visual state used to draw the button. This is useful mainly when implementing your own draw code by either overriding _draw() or connecting to \"draw\" signal. The visual state of the button is defined by the @enum DrawMode@ enum.\nbindBaseButton_get_draw_mode :: MethodBind\nbindBaseButton_get_draw_mode\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_draw_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the visual state used to draw the button. This is useful mainly when implementing your own draw code by either overriding _draw() or connecting to \"draw\" signal. The visual state of the button is defined by the @enum DrawMode@ enum.\nget_draw_mode ::\n                (BaseButton :< cls, Object :< cls) => cls -> IO Int\nget_draw_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_get_draw_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"get_draw_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.BaseButton.get_draw_mode\n\n{-# NOINLINE bindBaseButton_get_enabled_focus_mode #-}\n\n-- | Focus access mode to use when switching between enabled/disabled (see @Control.focus_mode@ and @disabled@).\nbindBaseButton_get_enabled_focus_mode :: MethodBind\nbindBaseButton_get_enabled_focus_mode\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_enabled_focus_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Focus access mode to use when switching between enabled/disabled (see @Control.focus_mode@ and @disabled@).\nget_enabled_focus_mode ::\n                         (BaseButton :< cls, Object :< cls) => cls -> IO Int\nget_enabled_focus_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_get_enabled_focus_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"get_enabled_focus_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.BaseButton.get_enabled_focus_mode\n\n{-# NOINLINE bindBaseButton_get_shortcut #-}\n\n-- | @ShortCut@ associated to the button.\nbindBaseButton_get_shortcut :: MethodBind\nbindBaseButton_get_shortcut\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_shortcut\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @ShortCut@ associated to the button.\nget_shortcut ::\n               (BaseButton :< cls, Object :< cls) => cls -> IO ShortCut\nget_shortcut cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_get_shortcut (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"get_shortcut\" '[] (IO ShortCut)\n         where\n        nodeMethod = Godot.Core.BaseButton.get_shortcut\n\n{-# NOINLINE bindBaseButton_is_disabled #-}\n\n-- | If @true@, the button is in disabled state and can't be clicked or toggled.\nbindBaseButton_is_disabled :: MethodBind\nbindBaseButton_is_disabled\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"is_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the button is in disabled state and can't be clicked or toggled.\nis_disabled :: (BaseButton :< cls, Object :< cls) => cls -> IO Bool\nis_disabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_is_disabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"is_disabled\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.BaseButton.is_disabled\n\n{-# NOINLINE bindBaseButton_is_hovered #-}\n\n-- | Returns @true@ if the mouse has entered the button and has not left it yet.\nbindBaseButton_is_hovered :: MethodBind\nbindBaseButton_is_hovered\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"is_hovered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the mouse has entered the button and has not left it yet.\nis_hovered :: (BaseButton :< cls, Object :< cls) => cls -> IO Bool\nis_hovered cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_is_hovered (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"is_hovered\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.BaseButton.is_hovered\n\n{-# NOINLINE bindBaseButton_is_keep_pressed_outside #-}\n\n-- | If @true@, the button stays pressed when moving the cursor outside the button while pressing it.\n--   \t\t\t__Note:__ This property only affects the button's visual appearance. Signals will be emitted at the same moment regardless of this property's value.\nbindBaseButton_is_keep_pressed_outside :: MethodBind\nbindBaseButton_is_keep_pressed_outside\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"is_keep_pressed_outside\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the button stays pressed when moving the cursor outside the button while pressing it.\n--   \t\t\t__Note:__ This property only affects the button's visual appearance. Signals will be emitted at the same moment regardless of this property's value.\nis_keep_pressed_outside ::\n                          (BaseButton :< cls, Object :< cls) => cls -> IO Bool\nis_keep_pressed_outside cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_is_keep_pressed_outside\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"is_keep_pressed_outside\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.BaseButton.is_keep_pressed_outside\n\n{-# NOINLINE bindBaseButton_is_pressed #-}\n\n-- | If @true@, the button's state is pressed. Means the button is pressed down or toggled (if @toggle_mode@ is active).\nbindBaseButton_is_pressed :: MethodBind\nbindBaseButton_is_pressed\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"is_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the button's state is pressed. Means the button is pressed down or toggled (if @toggle_mode@ is active).\nis_pressed :: (BaseButton :< cls, Object :< cls) => cls -> IO Bool\nis_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_is_pressed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"is_pressed\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.BaseButton.is_pressed\n\n{-# NOINLINE bindBaseButton_is_shortcut_in_tooltip_enabled #-}\n\n-- | If @true@, the button will add information about its shortcut in the tooltip.\nbindBaseButton_is_shortcut_in_tooltip_enabled :: MethodBind\nbindBaseButton_is_shortcut_in_tooltip_enabled\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"is_shortcut_in_tooltip_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the button will add information about its shortcut in the tooltip.\nis_shortcut_in_tooltip_enabled ::\n                                 (BaseButton :< cls, Object :< cls) => cls -> IO Bool\nis_shortcut_in_tooltip_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindBaseButton_is_shortcut_in_tooltip_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"is_shortcut_in_tooltip_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.BaseButton.is_shortcut_in_tooltip_enabled\n\n{-# NOINLINE bindBaseButton_is_toggle_mode #-}\n\n-- | If @true@, the button is in toggle mode. Makes the button flip state between pressed and unpressed each time its area is clicked.\nbindBaseButton_is_toggle_mode :: MethodBind\nbindBaseButton_is_toggle_mode\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"is_toggle_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the button is in toggle mode. Makes the button flip state between pressed and unpressed each time its area is clicked.\nis_toggle_mode ::\n                 (BaseButton :< cls, Object :< cls) => cls -> IO Bool\nis_toggle_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_is_toggle_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"is_toggle_mode\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.BaseButton.is_toggle_mode\n\n{-# NOINLINE bindBaseButton_set_action_mode #-}\n\n-- | Determines when the button is considered clicked, one of the @enum ActionMode@ constants.\nbindBaseButton_set_action_mode :: MethodBind\nbindBaseButton_set_action_mode\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_action_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Determines when the button is considered clicked, one of the @enum ActionMode@ constants.\nset_action_mode ::\n                  (BaseButton :< cls, Object :< cls) => cls -> Int -> IO ()\nset_action_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_set_action_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"set_action_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.BaseButton.set_action_mode\n\n{-# NOINLINE bindBaseButton_set_button_group #-}\n\n-- | @ButtonGroup@ associated to the button.\nbindBaseButton_set_button_group :: MethodBind\nbindBaseButton_set_button_group\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_button_group\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @ButtonGroup@ associated to the button.\nset_button_group ::\n                   (BaseButton :< cls, Object :< cls) => cls -> ButtonGroup -> IO ()\nset_button_group cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_set_button_group (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"set_button_group\" '[ButtonGroup]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BaseButton.set_button_group\n\n{-# NOINLINE bindBaseButton_set_button_mask #-}\n\n-- | Binary mask to choose which mouse buttons this button will respond to.\n--   \t\t\tTo allow both left-click and right-click, use @BUTTON_MASK_LEFT | BUTTON_MASK_RIGHT@.\nbindBaseButton_set_button_mask :: MethodBind\nbindBaseButton_set_button_mask\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_button_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Binary mask to choose which mouse buttons this button will respond to.\n--   \t\t\tTo allow both left-click and right-click, use @BUTTON_MASK_LEFT | BUTTON_MASK_RIGHT@.\nset_button_mask ::\n                  (BaseButton :< cls, Object :< cls) => cls -> Int -> IO ()\nset_button_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_set_button_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"set_button_mask\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.BaseButton.set_button_mask\n\n{-# NOINLINE bindBaseButton_set_disabled #-}\n\n-- | If @true@, the button is in disabled state and can't be clicked or toggled.\nbindBaseButton_set_disabled :: MethodBind\nbindBaseButton_set_disabled\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the button is in disabled state and can't be clicked or toggled.\nset_disabled ::\n               (BaseButton :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_set_disabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"set_disabled\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.BaseButton.set_disabled\n\n{-# NOINLINE bindBaseButton_set_enabled_focus_mode #-}\n\n-- | Focus access mode to use when switching between enabled/disabled (see @Control.focus_mode@ and @disabled@).\nbindBaseButton_set_enabled_focus_mode :: MethodBind\nbindBaseButton_set_enabled_focus_mode\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_enabled_focus_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Focus access mode to use when switching between enabled/disabled (see @Control.focus_mode@ and @disabled@).\nset_enabled_focus_mode ::\n                         (BaseButton :< cls, Object :< cls) => cls -> Int -> IO ()\nset_enabled_focus_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_set_enabled_focus_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"set_enabled_focus_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BaseButton.set_enabled_focus_mode\n\n{-# NOINLINE bindBaseButton_set_keep_pressed_outside #-}\n\n-- | If @true@, the button stays pressed when moving the cursor outside the button while pressing it.\n--   \t\t\t__Note:__ This property only affects the button's visual appearance. Signals will be emitted at the same moment regardless of this property's value.\nbindBaseButton_set_keep_pressed_outside :: MethodBind\nbindBaseButton_set_keep_pressed_outside\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_keep_pressed_outside\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the button stays pressed when moving the cursor outside the button while pressing it.\n--   \t\t\t__Note:__ This property only affects the button's visual appearance. Signals will be emitted at the same moment regardless of this property's value.\nset_keep_pressed_outside ::\n                           (BaseButton :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_keep_pressed_outside cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_set_keep_pressed_outside\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"set_keep_pressed_outside\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BaseButton.set_keep_pressed_outside\n\n{-# NOINLINE bindBaseButton_set_pressed #-}\n\n-- | If @true@, the button's state is pressed. Means the button is pressed down or toggled (if @toggle_mode@ is active).\nbindBaseButton_set_pressed :: MethodBind\nbindBaseButton_set_pressed\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the button's state is pressed. Means the button is pressed down or toggled (if @toggle_mode@ is active).\nset_pressed ::\n              (BaseButton :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_pressed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_set_pressed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"set_pressed\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.BaseButton.set_pressed\n\n{-# NOINLINE bindBaseButton_set_shortcut #-}\n\n-- | @ShortCut@ associated to the button.\nbindBaseButton_set_shortcut :: MethodBind\nbindBaseButton_set_shortcut\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_shortcut\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @ShortCut@ associated to the button.\nset_shortcut ::\n               (BaseButton :< cls, Object :< cls) => cls -> ShortCut -> IO ()\nset_shortcut cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_set_shortcut (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"set_shortcut\" '[ShortCut] (IO ())\n         where\n        nodeMethod = Godot.Core.BaseButton.set_shortcut\n\n{-# NOINLINE bindBaseButton_set_shortcut_in_tooltip #-}\n\n-- | If @true@, the button will add information about its shortcut in the tooltip.\nbindBaseButton_set_shortcut_in_tooltip :: MethodBind\nbindBaseButton_set_shortcut_in_tooltip\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_shortcut_in_tooltip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the button will add information about its shortcut in the tooltip.\nset_shortcut_in_tooltip ::\n                          (BaseButton :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_shortcut_in_tooltip cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_set_shortcut_in_tooltip\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"set_shortcut_in_tooltip\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BaseButton.set_shortcut_in_tooltip\n\n{-# NOINLINE bindBaseButton_set_toggle_mode #-}\n\n-- | If @true@, the button is in toggle mode. Makes the button flip state between pressed and unpressed each time its area is clicked.\nbindBaseButton_set_toggle_mode :: MethodBind\nbindBaseButton_set_toggle_mode\n  = unsafePerformIO $\n      withCString \"BaseButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_toggle_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the button is in toggle mode. Makes the button flip state between pressed and unpressed each time its area is clicked.\nset_toggle_mode ::\n                  (BaseButton :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_toggle_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBaseButton_set_toggle_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BaseButton \"set_toggle_mode\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.BaseButton.set_toggle_mode"
  },
  {
    "path": "src/Godot/Core/BitMap.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.BitMap\n       (Godot.Core.BitMap._get_data, Godot.Core.BitMap._set_data,\n        Godot.Core.BitMap.create,\n        Godot.Core.BitMap.create_from_image_alpha,\n        Godot.Core.BitMap.get_bit, Godot.Core.BitMap.get_size,\n        Godot.Core.BitMap.get_true_bit_count, Godot.Core.BitMap.grow_mask,\n        Godot.Core.BitMap.opaque_to_polygons, Godot.Core.BitMap.set_bit,\n        Godot.Core.BitMap.set_bit_rect)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty BitMap \"data\" Dictionary 'False where\n        nodeProperty = (_get_data, wrapDroppingSetter _set_data, Nothing)\n\n{-# NOINLINE bindBitMap__get_data #-}\n\nbindBitMap__get_data :: MethodBind\nbindBitMap__get_data\n  = unsafePerformIO $\n      withCString \"BitMap\" $\n        \\ clsNamePtr ->\n          withCString \"_get_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_data :: (BitMap :< cls, Object :< cls) => cls -> IO Dictionary\n_get_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitMap__get_data (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitMap \"_get_data\" '[] (IO Dictionary) where\n        nodeMethod = Godot.Core.BitMap._get_data\n\n{-# NOINLINE bindBitMap__set_data #-}\n\nbindBitMap__set_data :: MethodBind\nbindBitMap__set_data\n  = unsafePerformIO $\n      withCString \"BitMap\" $\n        \\ clsNamePtr ->\n          withCString \"_set_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_data ::\n            (BitMap :< cls, Object :< cls) => cls -> Dictionary -> IO ()\n_set_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitMap__set_data (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitMap \"_set_data\" '[Dictionary] (IO ()) where\n        nodeMethod = Godot.Core.BitMap._set_data\n\n{-# NOINLINE bindBitMap_create #-}\n\n-- | Creates a bitmap with the specified size, filled with @false@.\nbindBitMap_create :: MethodBind\nbindBitMap_create\n  = unsafePerformIO $\n      withCString \"BitMap\" $\n        \\ clsNamePtr ->\n          withCString \"create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a bitmap with the specified size, filled with @false@.\ncreate :: (BitMap :< cls, Object :< cls) => cls -> Vector2 -> IO ()\ncreate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitMap_create (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitMap \"create\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.BitMap.create\n\n{-# NOINLINE bindBitMap_create_from_image_alpha #-}\n\n-- | Creates a bitmap that matches the given image dimensions, every element of the bitmap is set to @false@ if the alpha value of the image at that position is equal to @threshold@ or less, and @true@ in other case.\nbindBitMap_create_from_image_alpha :: MethodBind\nbindBitMap_create_from_image_alpha\n  = unsafePerformIO $\n      withCString \"BitMap\" $\n        \\ clsNamePtr ->\n          withCString \"create_from_image_alpha\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a bitmap that matches the given image dimensions, every element of the bitmap is set to @false@ if the alpha value of the image at that position is equal to @threshold@ or less, and @true@ in other case.\ncreate_from_image_alpha ::\n                          (BitMap :< cls, Object :< cls) =>\n                          cls -> Image -> Maybe Float -> IO ()\ncreate_from_image_alpha cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantReal (0.1)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitMap_create_from_image_alpha\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitMap \"create_from_image_alpha\"\n           '[Image, Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BitMap.create_from_image_alpha\n\n{-# NOINLINE bindBitMap_get_bit #-}\n\n-- | Returns bitmap's value at the specified position.\nbindBitMap_get_bit :: MethodBind\nbindBitMap_get_bit\n  = unsafePerformIO $\n      withCString \"BitMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns bitmap's value at the specified position.\nget_bit ::\n          (BitMap :< cls, Object :< cls) => cls -> Vector2 -> IO Bool\nget_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitMap_get_bit (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitMap \"get_bit\" '[Vector2] (IO Bool) where\n        nodeMethod = Godot.Core.BitMap.get_bit\n\n{-# NOINLINE bindBitMap_get_size #-}\n\n-- | Returns bitmap's dimensions.\nbindBitMap_get_size :: MethodBind\nbindBitMap_get_size\n  = unsafePerformIO $\n      withCString \"BitMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns bitmap's dimensions.\nget_size :: (BitMap :< cls, Object :< cls) => cls -> IO Vector2\nget_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitMap_get_size (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitMap \"get_size\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.BitMap.get_size\n\n{-# NOINLINE bindBitMap_get_true_bit_count #-}\n\n-- | Returns the amount of bitmap elements that are set to @true@.\nbindBitMap_get_true_bit_count :: MethodBind\nbindBitMap_get_true_bit_count\n  = unsafePerformIO $\n      withCString \"BitMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_true_bit_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the amount of bitmap elements that are set to @true@.\nget_true_bit_count ::\n                     (BitMap :< cls, Object :< cls) => cls -> IO Int\nget_true_bit_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitMap_get_true_bit_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitMap \"get_true_bit_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.BitMap.get_true_bit_count\n\n{-# NOINLINE bindBitMap_grow_mask #-}\n\n-- | Applies morphological dilation to the bitmap. The first argument is the dilation amount, Rect2 is the area where the dilation will be applied.\nbindBitMap_grow_mask :: MethodBind\nbindBitMap_grow_mask\n  = unsafePerformIO $\n      withCString \"BitMap\" $\n        \\ clsNamePtr ->\n          withCString \"grow_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies morphological dilation to the bitmap. The first argument is the dilation amount, Rect2 is the area where the dilation will be applied.\ngrow_mask ::\n            (BitMap :< cls, Object :< cls) => cls -> Int -> Rect2 -> IO ()\ngrow_mask cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitMap_grow_mask (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitMap \"grow_mask\" '[Int, Rect2] (IO ()) where\n        nodeMethod = Godot.Core.BitMap.grow_mask\n\n{-# NOINLINE bindBitMap_opaque_to_polygons #-}\n\nbindBitMap_opaque_to_polygons :: MethodBind\nbindBitMap_opaque_to_polygons\n  = unsafePerformIO $\n      withCString \"BitMap\" $\n        \\ clsNamePtr ->\n          withCString \"opaque_to_polygons\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nopaque_to_polygons ::\n                     (BitMap :< cls, Object :< cls) =>\n                     cls -> Rect2 -> Maybe Float -> IO Array\nopaque_to_polygons cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantReal (2)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitMap_opaque_to_polygons (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitMap \"opaque_to_polygons\"\n           '[Rect2, Maybe Float]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.BitMap.opaque_to_polygons\n\n{-# NOINLINE bindBitMap_set_bit #-}\n\n-- | Sets the bitmap's element at the specified position, to the specified value.\nbindBitMap_set_bit :: MethodBind\nbindBitMap_set_bit\n  = unsafePerformIO $\n      withCString \"BitMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the bitmap's element at the specified position, to the specified value.\nset_bit ::\n          (BitMap :< cls, Object :< cls) => cls -> Vector2 -> Bool -> IO ()\nset_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitMap_set_bit (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitMap \"set_bit\" '[Vector2, Bool] (IO ()) where\n        nodeMethod = Godot.Core.BitMap.set_bit\n\n{-# NOINLINE bindBitMap_set_bit_rect #-}\n\n-- | Sets a rectangular portion of the bitmap to the specified value.\nbindBitMap_set_bit_rect :: MethodBind\nbindBitMap_set_bit_rect\n  = unsafePerformIO $\n      withCString \"BitMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_bit_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a rectangular portion of the bitmap to the specified value.\nset_bit_rect ::\n               (BitMap :< cls, Object :< cls) => cls -> Rect2 -> Bool -> IO ()\nset_bit_rect cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitMap_set_bit_rect (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitMap \"set_bit_rect\" '[Rect2, Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.BitMap.set_bit_rect"
  },
  {
    "path": "src/Godot/Core/BitmapFont.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.BitmapFont\n       (Godot.Core.BitmapFont.get_ascent,\n        Godot.Core.BitmapFont.is_distance_field_hint,\n        Godot.Core.BitmapFont.get_height, Godot.Core.BitmapFont._get_chars,\n        Godot.Core.BitmapFont._get_kernings,\n        Godot.Core.BitmapFont._get_textures,\n        Godot.Core.BitmapFont._set_chars,\n        Godot.Core.BitmapFont._set_kernings,\n        Godot.Core.BitmapFont._set_textures,\n        Godot.Core.BitmapFont.add_char,\n        Godot.Core.BitmapFont.add_kerning_pair,\n        Godot.Core.BitmapFont.add_texture, Godot.Core.BitmapFont.clear,\n        Godot.Core.BitmapFont.create_from_fnt,\n        Godot.Core.BitmapFont.get_char_size,\n        Godot.Core.BitmapFont.get_fallback,\n        Godot.Core.BitmapFont.get_kerning_pair,\n        Godot.Core.BitmapFont.get_texture,\n        Godot.Core.BitmapFont.get_texture_count,\n        Godot.Core.BitmapFont.set_ascent,\n        Godot.Core.BitmapFont.set_distance_field_hint,\n        Godot.Core.BitmapFont.set_fallback,\n        Godot.Core.BitmapFont.set_height)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Font()\n\n{-# NOINLINE bindBitmapFont_get_ascent #-}\n\n-- | Ascent (number of pixels above the baseline).\nbindBitmapFont_get_ascent :: MethodBind\nbindBitmapFont_get_ascent\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"get_ascent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Ascent (number of pixels above the baseline).\nget_ascent :: (BitmapFont :< cls, Object :< cls) => cls -> IO Float\nget_ascent cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont_get_ascent (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"get_ascent\" '[] (IO Float) where\n        nodeMethod = Godot.Core.BitmapFont.get_ascent\n\ninstance NodeProperty BitmapFont \"ascent\" Float 'False where\n        nodeProperty = (get_ascent, wrapDroppingSetter set_ascent, Nothing)\n\ninstance NodeProperty BitmapFont \"chars\" PoolIntArray 'False where\n        nodeProperty = (_get_chars, wrapDroppingSetter _set_chars, Nothing)\n\n{-# NOINLINE bindBitmapFont_is_distance_field_hint #-}\n\n-- | If @true@, distance field hint is enabled.\nbindBitmapFont_is_distance_field_hint :: MethodBind\nbindBitmapFont_is_distance_field_hint\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"is_distance_field_hint\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, distance field hint is enabled.\nis_distance_field_hint ::\n                         (BitmapFont :< cls, Object :< cls) => cls -> IO Bool\nis_distance_field_hint cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont_is_distance_field_hint\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"is_distance_field_hint\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.BitmapFont.is_distance_field_hint\n\ninstance NodeProperty BitmapFont \"distance_field\" Bool 'False where\n        nodeProperty\n          = (is_distance_field_hint,\n             wrapDroppingSetter set_distance_field_hint, Nothing)\n\ninstance NodeProperty BitmapFont \"fallback\" BitmapFont 'False where\n        nodeProperty\n          = (get_fallback, wrapDroppingSetter set_fallback, Nothing)\n\n{-# NOINLINE bindBitmapFont_get_height #-}\n\n-- | Total font height (ascent plus descent) in pixels.\nbindBitmapFont_get_height :: MethodBind\nbindBitmapFont_get_height\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"get_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Total font height (ascent plus descent) in pixels.\nget_height :: (BitmapFont :< cls, Object :< cls) => cls -> IO Float\nget_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont_get_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"get_height\" '[] (IO Float) where\n        nodeMethod = Godot.Core.BitmapFont.get_height\n\ninstance NodeProperty BitmapFont \"height\" Float 'False where\n        nodeProperty = (get_height, wrapDroppingSetter set_height, Nothing)\n\ninstance NodeProperty BitmapFont \"kernings\" PoolIntArray 'False\n         where\n        nodeProperty\n          = (_get_kernings, wrapDroppingSetter _set_kernings, Nothing)\n\ninstance NodeProperty BitmapFont \"textures\" Array 'False where\n        nodeProperty\n          = (_get_textures, wrapDroppingSetter _set_textures, Nothing)\n\n{-# NOINLINE bindBitmapFont__get_chars #-}\n\nbindBitmapFont__get_chars :: MethodBind\nbindBitmapFont__get_chars\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"_get_chars\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_chars ::\n             (BitmapFont :< cls, Object :< cls) => cls -> IO PoolIntArray\n_get_chars cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont__get_chars (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"_get_chars\" '[] (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.BitmapFont._get_chars\n\n{-# NOINLINE bindBitmapFont__get_kernings #-}\n\nbindBitmapFont__get_kernings :: MethodBind\nbindBitmapFont__get_kernings\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"_get_kernings\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_kernings ::\n                (BitmapFont :< cls, Object :< cls) => cls -> IO PoolIntArray\n_get_kernings cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont__get_kernings (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"_get_kernings\" '[]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.BitmapFont._get_kernings\n\n{-# NOINLINE bindBitmapFont__get_textures #-}\n\nbindBitmapFont__get_textures :: MethodBind\nbindBitmapFont__get_textures\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"_get_textures\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_textures ::\n                (BitmapFont :< cls, Object :< cls) => cls -> IO Array\n_get_textures cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont__get_textures (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"_get_textures\" '[] (IO Array) where\n        nodeMethod = Godot.Core.BitmapFont._get_textures\n\n{-# NOINLINE bindBitmapFont__set_chars #-}\n\nbindBitmapFont__set_chars :: MethodBind\nbindBitmapFont__set_chars\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"_set_chars\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_chars ::\n             (BitmapFont :< cls, Object :< cls) => cls -> PoolIntArray -> IO ()\n_set_chars cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont__set_chars (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"_set_chars\" '[PoolIntArray] (IO ())\n         where\n        nodeMethod = Godot.Core.BitmapFont._set_chars\n\n{-# NOINLINE bindBitmapFont__set_kernings #-}\n\nbindBitmapFont__set_kernings :: MethodBind\nbindBitmapFont__set_kernings\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"_set_kernings\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_kernings ::\n                (BitmapFont :< cls, Object :< cls) => cls -> PoolIntArray -> IO ()\n_set_kernings cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont__set_kernings (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"_set_kernings\" '[PoolIntArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BitmapFont._set_kernings\n\n{-# NOINLINE bindBitmapFont__set_textures #-}\n\nbindBitmapFont__set_textures :: MethodBind\nbindBitmapFont__set_textures\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"_set_textures\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_textures ::\n                (BitmapFont :< cls, Object :< cls) => cls -> Array -> IO ()\n_set_textures cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont__set_textures (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"_set_textures\" '[Array] (IO ())\n         where\n        nodeMethod = Godot.Core.BitmapFont._set_textures\n\n{-# NOINLINE bindBitmapFont_add_char #-}\n\n-- | Adds a character to the font, where @character@ is the Unicode value, @texture@ is the texture index, @rect@ is the region in the texture (in pixels!), @align@ is the (optional) alignment for the character and @advance@ is the (optional) advance.\nbindBitmapFont_add_char :: MethodBind\nbindBitmapFont_add_char\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"add_char\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a character to the font, where @character@ is the Unicode value, @texture@ is the texture index, @rect@ is the region in the texture (in pixels!), @align@ is the (optional) alignment for the character and @advance@ is the (optional) advance.\nadd_char ::\n           (BitmapFont :< cls, Object :< cls) =>\n           cls -> Int -> Int -> Rect2 -> Maybe Vector2 -> Maybe Float -> IO ()\nadd_char cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       defaultedVariant VariantVector2 (V2 0 0) arg4,\n       maybe (VariantReal (-1)) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont_add_char (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"add_char\"\n           '[Int, Int, Rect2, Maybe Vector2, Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BitmapFont.add_char\n\n{-# NOINLINE bindBitmapFont_add_kerning_pair #-}\n\n-- | Adds a kerning pair to the @BitmapFont@ as a difference. Kerning pairs are special cases where a typeface advance is determined by the next character.\nbindBitmapFont_add_kerning_pair :: MethodBind\nbindBitmapFont_add_kerning_pair\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"add_kerning_pair\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a kerning pair to the @BitmapFont@ as a difference. Kerning pairs are special cases where a typeface advance is determined by the next character.\nadd_kerning_pair ::\n                   (BitmapFont :< cls, Object :< cls) =>\n                   cls -> Int -> Int -> Int -> IO ()\nadd_kerning_pair cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont_add_kerning_pair (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"add_kerning_pair\" '[Int, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BitmapFont.add_kerning_pair\n\n{-# NOINLINE bindBitmapFont_add_texture #-}\n\n-- | Adds a texture to the @BitmapFont@.\nbindBitmapFont_add_texture :: MethodBind\nbindBitmapFont_add_texture\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"add_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a texture to the @BitmapFont@.\nadd_texture ::\n              (BitmapFont :< cls, Object :< cls) => cls -> Texture -> IO ()\nadd_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont_add_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"add_texture\" '[Texture] (IO ())\n         where\n        nodeMethod = Godot.Core.BitmapFont.add_texture\n\n{-# NOINLINE bindBitmapFont_clear #-}\n\n-- | Clears all the font data and settings.\nbindBitmapFont_clear :: MethodBind\nbindBitmapFont_clear\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears all the font data and settings.\nclear :: (BitmapFont :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont_clear (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.BitmapFont.clear\n\n{-# NOINLINE bindBitmapFont_create_from_fnt #-}\n\n-- | Creates a BitmapFont from the @*.fnt@ file at @path@.\nbindBitmapFont_create_from_fnt :: MethodBind\nbindBitmapFont_create_from_fnt\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"create_from_fnt\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a BitmapFont from the @*.fnt@ file at @path@.\ncreate_from_fnt ::\n                  (BitmapFont :< cls, Object :< cls) => cls -> GodotString -> IO Int\ncreate_from_fnt cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont_create_from_fnt (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"create_from_fnt\" '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.BitmapFont.create_from_fnt\n\n{-# NOINLINE bindBitmapFont_get_char_size #-}\n\nbindBitmapFont_get_char_size :: MethodBind\nbindBitmapFont_get_char_size\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"get_char_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_char_size ::\n                (BitmapFont :< cls, Object :< cls) =>\n                cls -> Int -> Maybe Int -> IO Vector2\nget_char_size cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (0)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont_get_char_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"get_char_size\" '[Int, Maybe Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.BitmapFont.get_char_size\n\n{-# NOINLINE bindBitmapFont_get_fallback #-}\n\n-- | The fallback font.\nbindBitmapFont_get_fallback :: MethodBind\nbindBitmapFont_get_fallback\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"get_fallback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The fallback font.\nget_fallback ::\n               (BitmapFont :< cls, Object :< cls) => cls -> IO BitmapFont\nget_fallback cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont_get_fallback (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"get_fallback\" '[] (IO BitmapFont)\n         where\n        nodeMethod = Godot.Core.BitmapFont.get_fallback\n\n{-# NOINLINE bindBitmapFont_get_kerning_pair #-}\n\n-- | Returns a kerning pair as a difference.\nbindBitmapFont_get_kerning_pair :: MethodBind\nbindBitmapFont_get_kerning_pair\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"get_kerning_pair\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a kerning pair as a difference.\nget_kerning_pair ::\n                   (BitmapFont :< cls, Object :< cls) => cls -> Int -> Int -> IO Int\nget_kerning_pair cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont_get_kerning_pair (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"get_kerning_pair\" '[Int, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.BitmapFont.get_kerning_pair\n\n{-# NOINLINE bindBitmapFont_get_texture #-}\n\n-- | Returns the font atlas texture at index @idx@.\nbindBitmapFont_get_texture :: MethodBind\nbindBitmapFont_get_texture\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the font atlas texture at index @idx@.\nget_texture ::\n              (BitmapFont :< cls, Object :< cls) => cls -> Int -> IO Texture\nget_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont_get_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"get_texture\" '[Int] (IO Texture)\n         where\n        nodeMethod = Godot.Core.BitmapFont.get_texture\n\n{-# NOINLINE bindBitmapFont_get_texture_count #-}\n\n-- | Returns the number of textures in the BitmapFont atlas.\nbindBitmapFont_get_texture_count :: MethodBind\nbindBitmapFont_get_texture_count\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of textures in the BitmapFont atlas.\nget_texture_count ::\n                    (BitmapFont :< cls, Object :< cls) => cls -> IO Int\nget_texture_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont_get_texture_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"get_texture_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.BitmapFont.get_texture_count\n\n{-# NOINLINE bindBitmapFont_set_ascent #-}\n\n-- | Ascent (number of pixels above the baseline).\nbindBitmapFont_set_ascent :: MethodBind\nbindBitmapFont_set_ascent\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"set_ascent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Ascent (number of pixels above the baseline).\nset_ascent ::\n             (BitmapFont :< cls, Object :< cls) => cls -> Float -> IO ()\nset_ascent cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont_set_ascent (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"set_ascent\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.BitmapFont.set_ascent\n\n{-# NOINLINE bindBitmapFont_set_distance_field_hint #-}\n\n-- | If @true@, distance field hint is enabled.\nbindBitmapFont_set_distance_field_hint :: MethodBind\nbindBitmapFont_set_distance_field_hint\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"set_distance_field_hint\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, distance field hint is enabled.\nset_distance_field_hint ::\n                          (BitmapFont :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_distance_field_hint cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont_set_distance_field_hint\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"set_distance_field_hint\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BitmapFont.set_distance_field_hint\n\n{-# NOINLINE bindBitmapFont_set_fallback #-}\n\n-- | The fallback font.\nbindBitmapFont_set_fallback :: MethodBind\nbindBitmapFont_set_fallback\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"set_fallback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The fallback font.\nset_fallback ::\n               (BitmapFont :< cls, Object :< cls) => cls -> BitmapFont -> IO ()\nset_fallback cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont_set_fallback (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"set_fallback\" '[BitmapFont] (IO ())\n         where\n        nodeMethod = Godot.Core.BitmapFont.set_fallback\n\n{-# NOINLINE bindBitmapFont_set_height #-}\n\n-- | Total font height (ascent plus descent) in pixels.\nbindBitmapFont_set_height :: MethodBind\nbindBitmapFont_set_height\n  = unsafePerformIO $\n      withCString \"BitmapFont\" $\n        \\ clsNamePtr ->\n          withCString \"set_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Total font height (ascent plus descent) in pixels.\nset_height ::\n             (BitmapFont :< cls, Object :< cls) => cls -> Float -> IO ()\nset_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBitmapFont_set_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BitmapFont \"set_height\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.BitmapFont.set_height"
  },
  {
    "path": "src/Godot/Core/Bone2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Bone2D\n       (Godot.Core.Bone2D.apply_rest,\n        Godot.Core.Bone2D.get_default_length,\n        Godot.Core.Bone2D.get_index_in_skeleton,\n        Godot.Core.Bone2D.get_rest, Godot.Core.Bone2D.get_skeleton_rest,\n        Godot.Core.Bone2D.set_default_length, Godot.Core.Bone2D.set_rest)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\ninstance NodeProperty Bone2D \"default_length\" Float 'False where\n        nodeProperty\n          = (get_default_length, wrapDroppingSetter set_default_length,\n             Nothing)\n\ninstance NodeProperty Bone2D \"rest\" Transform2d 'False where\n        nodeProperty = (get_rest, wrapDroppingSetter set_rest, Nothing)\n\n{-# NOINLINE bindBone2D_apply_rest #-}\n\n-- | Stores the node's current transforms in @rest@.\nbindBone2D_apply_rest :: MethodBind\nbindBone2D_apply_rest\n  = unsafePerformIO $\n      withCString \"Bone2D\" $\n        \\ clsNamePtr ->\n          withCString \"apply_rest\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stores the node's current transforms in @rest@.\napply_rest :: (Bone2D :< cls, Object :< cls) => cls -> IO ()\napply_rest cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBone2D_apply_rest (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Bone2D \"apply_rest\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Bone2D.apply_rest\n\n{-# NOINLINE bindBone2D_get_default_length #-}\n\n-- | Length of the bone's representation drawn in the editor's viewport in pixels.\nbindBone2D_get_default_length :: MethodBind\nbindBone2D_get_default_length\n  = unsafePerformIO $\n      withCString \"Bone2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_default_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Length of the bone's representation drawn in the editor's viewport in pixels.\nget_default_length ::\n                     (Bone2D :< cls, Object :< cls) => cls -> IO Float\nget_default_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBone2D_get_default_length (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Bone2D \"get_default_length\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Bone2D.get_default_length\n\n{-# NOINLINE bindBone2D_get_index_in_skeleton #-}\n\n-- | Returns the node's index as part of the entire skeleton. See @Skeleton2D@.\nbindBone2D_get_index_in_skeleton :: MethodBind\nbindBone2D_get_index_in_skeleton\n  = unsafePerformIO $\n      withCString \"Bone2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_index_in_skeleton\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the node's index as part of the entire skeleton. See @Skeleton2D@.\nget_index_in_skeleton ::\n                        (Bone2D :< cls, Object :< cls) => cls -> IO Int\nget_index_in_skeleton cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBone2D_get_index_in_skeleton\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Bone2D \"get_index_in_skeleton\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Bone2D.get_index_in_skeleton\n\n{-# NOINLINE bindBone2D_get_rest #-}\n\n-- | Rest transform of the bone. You can reset the node's transforms to this value using @method apply_rest@.\nbindBone2D_get_rest :: MethodBind\nbindBone2D_get_rest\n  = unsafePerformIO $\n      withCString \"Bone2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_rest\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rest transform of the bone. You can reset the node's transforms to this value using @method apply_rest@.\nget_rest :: (Bone2D :< cls, Object :< cls) => cls -> IO Transform2d\nget_rest cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBone2D_get_rest (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Bone2D \"get_rest\" '[] (IO Transform2d) where\n        nodeMethod = Godot.Core.Bone2D.get_rest\n\n{-# NOINLINE bindBone2D_get_skeleton_rest #-}\n\n-- | Returns the node's @rest@ @Transform2D@ if it doesn't have a parent, or its rest pose relative to its parent.\nbindBone2D_get_skeleton_rest :: MethodBind\nbindBone2D_get_skeleton_rest\n  = unsafePerformIO $\n      withCString \"Bone2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_skeleton_rest\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the node's @rest@ @Transform2D@ if it doesn't have a parent, or its rest pose relative to its parent.\nget_skeleton_rest ::\n                    (Bone2D :< cls, Object :< cls) => cls -> IO Transform2d\nget_skeleton_rest cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBone2D_get_skeleton_rest (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Bone2D \"get_skeleton_rest\" '[] (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.Bone2D.get_skeleton_rest\n\n{-# NOINLINE bindBone2D_set_default_length #-}\n\n-- | Length of the bone's representation drawn in the editor's viewport in pixels.\nbindBone2D_set_default_length :: MethodBind\nbindBone2D_set_default_length\n  = unsafePerformIO $\n      withCString \"Bone2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_default_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Length of the bone's representation drawn in the editor's viewport in pixels.\nset_default_length ::\n                     (Bone2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_default_length cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBone2D_set_default_length (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Bone2D \"set_default_length\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Bone2D.set_default_length\n\n{-# NOINLINE bindBone2D_set_rest #-}\n\n-- | Rest transform of the bone. You can reset the node's transforms to this value using @method apply_rest@.\nbindBone2D_set_rest :: MethodBind\nbindBone2D_set_rest\n  = unsafePerformIO $\n      withCString \"Bone2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_rest\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rest transform of the bone. You can reset the node's transforms to this value using @method apply_rest@.\nset_rest ::\n           (Bone2D :< cls, Object :< cls) => cls -> Transform2d -> IO ()\nset_rest cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBone2D_set_rest (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Bone2D \"set_rest\" '[Transform2d] (IO ()) where\n        nodeMethod = Godot.Core.Bone2D.set_rest"
  },
  {
    "path": "src/Godot/Core/BoneAttachment.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.BoneAttachment\n       (Godot.Core.BoneAttachment.get_bone_name,\n        Godot.Core.BoneAttachment.set_bone_name)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\ninstance NodeProperty BoneAttachment \"bone_name\" GodotString 'False\n         where\n        nodeProperty\n          = (get_bone_name, wrapDroppingSetter set_bone_name, Nothing)\n\n{-# NOINLINE bindBoneAttachment_get_bone_name #-}\n\n-- | The name of the attached bone.\nbindBoneAttachment_get_bone_name :: MethodBind\nbindBoneAttachment_get_bone_name\n  = unsafePerformIO $\n      withCString \"BoneAttachment\" $\n        \\ clsNamePtr ->\n          withCString \"get_bone_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The name of the attached bone.\nget_bone_name ::\n                (BoneAttachment :< cls, Object :< cls) => cls -> IO GodotString\nget_bone_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBoneAttachment_get_bone_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BoneAttachment \"get_bone_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.BoneAttachment.get_bone_name\n\n{-# NOINLINE bindBoneAttachment_set_bone_name #-}\n\n-- | The name of the attached bone.\nbindBoneAttachment_set_bone_name :: MethodBind\nbindBoneAttachment_set_bone_name\n  = unsafePerformIO $\n      withCString \"BoneAttachment\" $\n        \\ clsNamePtr ->\n          withCString \"set_bone_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The name of the attached bone.\nset_bone_name ::\n                (BoneAttachment :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\nset_bone_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBoneAttachment_set_bone_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BoneAttachment \"set_bone_name\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.BoneAttachment.set_bone_name"
  },
  {
    "path": "src/Godot/Core/BoxContainer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.BoxContainer\n       (Godot.Core.BoxContainer._ALIGN_END,\n        Godot.Core.BoxContainer._ALIGN_BEGIN,\n        Godot.Core.BoxContainer._ALIGN_CENTER,\n        Godot.Core.BoxContainer.add_spacer,\n        Godot.Core.BoxContainer.get_alignment,\n        Godot.Core.BoxContainer.set_alignment)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Container()\n\n_ALIGN_END :: Int\n_ALIGN_END = 2\n\n_ALIGN_BEGIN :: Int\n_ALIGN_BEGIN = 0\n\n_ALIGN_CENTER :: Int\n_ALIGN_CENTER = 1\n\ninstance NodeProperty BoxContainer \"alignment\" Int 'False where\n        nodeProperty\n          = (get_alignment, wrapDroppingSetter set_alignment, Nothing)\n\n{-# NOINLINE bindBoxContainer_add_spacer #-}\n\n-- | Adds a control to the box as a spacer. If @true@, @begin@ will insert the spacer control in front of other children.\nbindBoxContainer_add_spacer :: MethodBind\nbindBoxContainer_add_spacer\n  = unsafePerformIO $\n      withCString \"BoxContainer\" $\n        \\ clsNamePtr ->\n          withCString \"add_spacer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a control to the box as a spacer. If @true@, @begin@ will insert the spacer control in front of other children.\nadd_spacer ::\n             (BoxContainer :< cls, Object :< cls) => cls -> Bool -> IO ()\nadd_spacer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBoxContainer_add_spacer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BoxContainer \"add_spacer\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.BoxContainer.add_spacer\n\n{-# NOINLINE bindBoxContainer_get_alignment #-}\n\n-- | The alignment of the container's children (must be one of @ALIGN_BEGIN@, @ALIGN_CENTER@ or @ALIGN_END@).\nbindBoxContainer_get_alignment :: MethodBind\nbindBoxContainer_get_alignment\n  = unsafePerformIO $\n      withCString \"BoxContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_alignment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The alignment of the container's children (must be one of @ALIGN_BEGIN@, @ALIGN_CENTER@ or @ALIGN_END@).\nget_alignment ::\n                (BoxContainer :< cls, Object :< cls) => cls -> IO Int\nget_alignment cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBoxContainer_get_alignment (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BoxContainer \"get_alignment\" '[] (IO Int) where\n        nodeMethod = Godot.Core.BoxContainer.get_alignment\n\n{-# NOINLINE bindBoxContainer_set_alignment #-}\n\n-- | The alignment of the container's children (must be one of @ALIGN_BEGIN@, @ALIGN_CENTER@ or @ALIGN_END@).\nbindBoxContainer_set_alignment :: MethodBind\nbindBoxContainer_set_alignment\n  = unsafePerformIO $\n      withCString \"BoxContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_alignment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The alignment of the container's children (must be one of @ALIGN_BEGIN@, @ALIGN_CENTER@ or @ALIGN_END@).\nset_alignment ::\n                (BoxContainer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_alignment cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBoxContainer_set_alignment (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BoxContainer \"set_alignment\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.BoxContainer.set_alignment"
  },
  {
    "path": "src/Godot/Core/BoxShape.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.BoxShape\n       (Godot.Core.BoxShape.get_extents, Godot.Core.BoxShape.set_extents)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Shape()\n\ninstance NodeProperty BoxShape \"extents\" Vector3 'False where\n        nodeProperty\n          = (get_extents, wrapDroppingSetter set_extents, Nothing)\n\n{-# NOINLINE bindBoxShape_get_extents #-}\n\n-- | The box's half extents. The width, height and depth of this shape is twice the half extents.\nbindBoxShape_get_extents :: MethodBind\nbindBoxShape_get_extents\n  = unsafePerformIO $\n      withCString \"BoxShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The box's half extents. The width, height and depth of this shape is twice the half extents.\nget_extents ::\n              (BoxShape :< cls, Object :< cls) => cls -> IO Vector3\nget_extents cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBoxShape_get_extents (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BoxShape \"get_extents\" '[] (IO Vector3) where\n        nodeMethod = Godot.Core.BoxShape.get_extents\n\n{-# NOINLINE bindBoxShape_set_extents #-}\n\n-- | The box's half extents. The width, height and depth of this shape is twice the half extents.\nbindBoxShape_set_extents :: MethodBind\nbindBoxShape_set_extents\n  = unsafePerformIO $\n      withCString \"BoxShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The box's half extents. The width, height and depth of this shape is twice the half extents.\nset_extents ::\n              (BoxShape :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_extents cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindBoxShape_set_extents (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod BoxShape \"set_extents\" '[Vector3] (IO ()) where\n        nodeMethod = Godot.Core.BoxShape.set_extents"
  },
  {
    "path": "src/Godot/Core/BulletPhysicsDirectBodyState.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.BulletPhysicsDirectBodyState () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PhysicsDirectBodyState()"
  },
  {
    "path": "src/Godot/Core/BulletPhysicsServer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.BulletPhysicsServer () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PhysicsServer()"
  },
  {
    "path": "src/Godot/Core/Button.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Button\n       (Godot.Core.Button._ALIGN_RIGHT, Godot.Core.Button._ALIGN_LEFT,\n        Godot.Core.Button._ALIGN_CENTER, Godot.Core.Button.get_button_icon,\n        Godot.Core.Button.get_clip_text, Godot.Core.Button.get_text,\n        Godot.Core.Button.get_text_align, Godot.Core.Button.is_expand_icon,\n        Godot.Core.Button.is_flat, Godot.Core.Button.set_button_icon,\n        Godot.Core.Button.set_clip_text, Godot.Core.Button.set_expand_icon,\n        Godot.Core.Button.set_flat, Godot.Core.Button.set_text,\n        Godot.Core.Button.set_text_align)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.BaseButton()\n\n_ALIGN_RIGHT :: Int\n_ALIGN_RIGHT = 2\n\n_ALIGN_LEFT :: Int\n_ALIGN_LEFT = 0\n\n_ALIGN_CENTER :: Int\n_ALIGN_CENTER = 1\n\ninstance NodeProperty Button \"align\" Int 'False where\n        nodeProperty\n          = (get_text_align, wrapDroppingSetter set_text_align, Nothing)\n\ninstance NodeProperty Button \"clip_text\" Bool 'False where\n        nodeProperty\n          = (get_clip_text, wrapDroppingSetter set_clip_text, Nothing)\n\ninstance NodeProperty Button \"expand_icon\" Bool 'False where\n        nodeProperty\n          = (is_expand_icon, wrapDroppingSetter set_expand_icon, Nothing)\n\ninstance NodeProperty Button \"flat\" Bool 'False where\n        nodeProperty = (is_flat, wrapDroppingSetter set_flat, Nothing)\n\ninstance NodeProperty Button \"icon\" Texture 'False where\n        nodeProperty\n          = (get_button_icon, wrapDroppingSetter set_button_icon, Nothing)\n\ninstance NodeProperty Button \"text\" GodotString 'False where\n        nodeProperty = (get_text, wrapDroppingSetter set_text, Nothing)\n\n{-# NOINLINE bindButton_get_button_icon #-}\n\n-- | Button's icon, if text is present the icon will be placed before the text.\nbindButton_get_button_icon :: MethodBind\nbindButton_get_button_icon\n  = unsafePerformIO $\n      withCString \"Button\" $\n        \\ clsNamePtr ->\n          withCString \"get_button_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Button's icon, if text is present the icon will be placed before the text.\nget_button_icon ::\n                  (Button :< cls, Object :< cls) => cls -> IO Texture\nget_button_icon cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindButton_get_button_icon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Button \"get_button_icon\" '[] (IO Texture) where\n        nodeMethod = Godot.Core.Button.get_button_icon\n\n{-# NOINLINE bindButton_get_clip_text #-}\n\n-- | When this property is enabled, text that is too large to fit the button is clipped, when disabled the Button will always be wide enough to hold the text.\nbindButton_get_clip_text :: MethodBind\nbindButton_get_clip_text\n  = unsafePerformIO $\n      withCString \"Button\" $\n        \\ clsNamePtr ->\n          withCString \"get_clip_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | When this property is enabled, text that is too large to fit the button is clipped, when disabled the Button will always be wide enough to hold the text.\nget_clip_text :: (Button :< cls, Object :< cls) => cls -> IO Bool\nget_clip_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindButton_get_clip_text (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Button \"get_clip_text\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Button.get_clip_text\n\n{-# NOINLINE bindButton_get_text #-}\n\n-- | The button's text that will be displayed inside the button's area.\nbindButton_get_text :: MethodBind\nbindButton_get_text\n  = unsafePerformIO $\n      withCString \"Button\" $\n        \\ clsNamePtr ->\n          withCString \"get_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The button's text that will be displayed inside the button's area.\nget_text :: (Button :< cls, Object :< cls) => cls -> IO GodotString\nget_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindButton_get_text (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Button \"get_text\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.Button.get_text\n\n{-# NOINLINE bindButton_get_text_align #-}\n\n-- | Text alignment policy for the button's text, use one of the @enum TextAlign@ constants.\nbindButton_get_text_align :: MethodBind\nbindButton_get_text_align\n  = unsafePerformIO $\n      withCString \"Button\" $\n        \\ clsNamePtr ->\n          withCString \"get_text_align\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Text alignment policy for the button's text, use one of the @enum TextAlign@ constants.\nget_text_align :: (Button :< cls, Object :< cls) => cls -> IO Int\nget_text_align cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindButton_get_text_align (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Button \"get_text_align\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Button.get_text_align\n\n{-# NOINLINE bindButton_is_expand_icon #-}\n\n-- | When enabled, the button's icon will expand/shrink to fit the button's size while keeping its aspect.\nbindButton_is_expand_icon :: MethodBind\nbindButton_is_expand_icon\n  = unsafePerformIO $\n      withCString \"Button\" $\n        \\ clsNamePtr ->\n          withCString \"is_expand_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | When enabled, the button's icon will expand/shrink to fit the button's size while keeping its aspect.\nis_expand_icon :: (Button :< cls, Object :< cls) => cls -> IO Bool\nis_expand_icon cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindButton_is_expand_icon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Button \"is_expand_icon\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Button.is_expand_icon\n\n{-# NOINLINE bindButton_is_flat #-}\n\n-- | Flat buttons don't display decoration.\nbindButton_is_flat :: MethodBind\nbindButton_is_flat\n  = unsafePerformIO $\n      withCString \"Button\" $\n        \\ clsNamePtr ->\n          withCString \"is_flat\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Flat buttons don't display decoration.\nis_flat :: (Button :< cls, Object :< cls) => cls -> IO Bool\nis_flat cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindButton_is_flat (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Button \"is_flat\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Button.is_flat\n\n{-# NOINLINE bindButton_set_button_icon #-}\n\n-- | Button's icon, if text is present the icon will be placed before the text.\nbindButton_set_button_icon :: MethodBind\nbindButton_set_button_icon\n  = unsafePerformIO $\n      withCString \"Button\" $\n        \\ clsNamePtr ->\n          withCString \"set_button_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Button's icon, if text is present the icon will be placed before the text.\nset_button_icon ::\n                  (Button :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_button_icon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindButton_set_button_icon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Button \"set_button_icon\" '[Texture] (IO ())\n         where\n        nodeMethod = Godot.Core.Button.set_button_icon\n\n{-# NOINLINE bindButton_set_clip_text #-}\n\n-- | When this property is enabled, text that is too large to fit the button is clipped, when disabled the Button will always be wide enough to hold the text.\nbindButton_set_clip_text :: MethodBind\nbindButton_set_clip_text\n  = unsafePerformIO $\n      withCString \"Button\" $\n        \\ clsNamePtr ->\n          withCString \"set_clip_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | When this property is enabled, text that is too large to fit the button is clipped, when disabled the Button will always be wide enough to hold the text.\nset_clip_text ::\n                (Button :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_clip_text cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindButton_set_clip_text (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Button \"set_clip_text\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Button.set_clip_text\n\n{-# NOINLINE bindButton_set_expand_icon #-}\n\n-- | When enabled, the button's icon will expand/shrink to fit the button's size while keeping its aspect.\nbindButton_set_expand_icon :: MethodBind\nbindButton_set_expand_icon\n  = unsafePerformIO $\n      withCString \"Button\" $\n        \\ clsNamePtr ->\n          withCString \"set_expand_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | When enabled, the button's icon will expand/shrink to fit the button's size while keeping its aspect.\nset_expand_icon ::\n                  (Button :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_expand_icon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindButton_set_expand_icon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Button \"set_expand_icon\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Button.set_expand_icon\n\n{-# NOINLINE bindButton_set_flat #-}\n\n-- | Flat buttons don't display decoration.\nbindButton_set_flat :: MethodBind\nbindButton_set_flat\n  = unsafePerformIO $\n      withCString \"Button\" $\n        \\ clsNamePtr ->\n          withCString \"set_flat\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Flat buttons don't display decoration.\nset_flat :: (Button :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_flat cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindButton_set_flat (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Button \"set_flat\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Button.set_flat\n\n{-# NOINLINE bindButton_set_text #-}\n\n-- | The button's text that will be displayed inside the button's area.\nbindButton_set_text :: MethodBind\nbindButton_set_text\n  = unsafePerformIO $\n      withCString \"Button\" $\n        \\ clsNamePtr ->\n          withCString \"set_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The button's text that will be displayed inside the button's area.\nset_text ::\n           (Button :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_text cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindButton_set_text (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Button \"set_text\" '[GodotString] (IO ()) where\n        nodeMethod = Godot.Core.Button.set_text\n\n{-# NOINLINE bindButton_set_text_align #-}\n\n-- | Text alignment policy for the button's text, use one of the @enum TextAlign@ constants.\nbindButton_set_text_align :: MethodBind\nbindButton_set_text_align\n  = unsafePerformIO $\n      withCString \"Button\" $\n        \\ clsNamePtr ->\n          withCString \"set_text_align\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Text alignment policy for the button's text, use one of the @enum TextAlign@ constants.\nset_text_align ::\n                 (Button :< cls, Object :< cls) => cls -> Int -> IO ()\nset_text_align cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindButton_set_text_align (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Button \"set_text_align\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Button.set_text_align"
  },
  {
    "path": "src/Godot/Core/ButtonGroup.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ButtonGroup\n       (Godot.Core.ButtonGroup.get_buttons,\n        Godot.Core.ButtonGroup.get_pressed_button)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n{-# NOINLINE bindButtonGroup_get_buttons #-}\n\n-- | Returns an @Array@ of @Button@s who have this as their @ButtonGroup@ (see @BaseButton.group@).\nbindButtonGroup_get_buttons :: MethodBind\nbindButtonGroup_get_buttons\n  = unsafePerformIO $\n      withCString \"ButtonGroup\" $\n        \\ clsNamePtr ->\n          withCString \"get_buttons\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an @Array@ of @Button@s who have this as their @ButtonGroup@ (see @BaseButton.group@).\nget_buttons ::\n              (ButtonGroup :< cls, Object :< cls) => cls -> IO Array\nget_buttons cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindButtonGroup_get_buttons (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ButtonGroup \"get_buttons\" '[] (IO Array) where\n        nodeMethod = Godot.Core.ButtonGroup.get_buttons\n\n{-# NOINLINE bindButtonGroup_get_pressed_button #-}\n\n-- | Returns the current pressed button.\nbindButtonGroup_get_pressed_button :: MethodBind\nbindButtonGroup_get_pressed_button\n  = unsafePerformIO $\n      withCString \"ButtonGroup\" $\n        \\ clsNamePtr ->\n          withCString \"get_pressed_button\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current pressed button.\nget_pressed_button ::\n                     (ButtonGroup :< cls, Object :< cls) => cls -> IO BaseButton\nget_pressed_button cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindButtonGroup_get_pressed_button\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ButtonGroup \"get_pressed_button\" '[]\n           (IO BaseButton)\n         where\n        nodeMethod = Godot.Core.ButtonGroup.get_pressed_button"
  },
  {
    "path": "src/Godot/Core/CPUParticles.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CPUParticles\n       (Godot.Core.CPUParticles._FLAG_ALIGN_Y_TO_VELOCITY,\n        Godot.Core.CPUParticles._PARAM_RADIAL_ACCEL,\n        Godot.Core.CPUParticles._FLAG_ROTATE_Y,\n        Godot.Core.CPUParticles._EMISSION_SHAPE_SPHERE,\n        Godot.Core.CPUParticles._FLAG_DISABLE_Z,\n        Godot.Core.CPUParticles._PARAM_ANGULAR_VELOCITY,\n        Godot.Core.CPUParticles._EMISSION_SHAPE_MAX,\n        Godot.Core.CPUParticles._PARAM_TANGENTIAL_ACCEL,\n        Godot.Core.CPUParticles._PARAM_ANIM_SPEED,\n        Godot.Core.CPUParticles._EMISSION_SHAPE_BOX,\n        Godot.Core.CPUParticles._EMISSION_SHAPE_POINTS,\n        Godot.Core.CPUParticles._PARAM_MAX,\n        Godot.Core.CPUParticles._PARAM_INITIAL_LINEAR_VELOCITY,\n        Godot.Core.CPUParticles._FLAG_MAX,\n        Godot.Core.CPUParticles._PARAM_LINEAR_ACCEL,\n        Godot.Core.CPUParticles._EMISSION_SHAPE_DIRECTED_POINTS,\n        Godot.Core.CPUParticles._EMISSION_SHAPE_POINT,\n        Godot.Core.CPUParticles._PARAM_ORBIT_VELOCITY,\n        Godot.Core.CPUParticles._DRAW_ORDER_LIFETIME,\n        Godot.Core.CPUParticles._PARAM_SCALE,\n        Godot.Core.CPUParticles._DRAW_ORDER_INDEX,\n        Godot.Core.CPUParticles._PARAM_DAMPING,\n        Godot.Core.CPUParticles._PARAM_HUE_VARIATION,\n        Godot.Core.CPUParticles._PARAM_ANIM_OFFSET,\n        Godot.Core.CPUParticles._PARAM_ANGLE,\n        Godot.Core.CPUParticles._DRAW_ORDER_VIEW_DEPTH,\n        Godot.Core.CPUParticles._update_render_thread,\n        Godot.Core.CPUParticles.convert_from_particles,\n        Godot.Core.CPUParticles.get_amount,\n        Godot.Core.CPUParticles.get_color,\n        Godot.Core.CPUParticles.get_color_ramp,\n        Godot.Core.CPUParticles.get_direction,\n        Godot.Core.CPUParticles.get_draw_order,\n        Godot.Core.CPUParticles.get_emission_box_extents,\n        Godot.Core.CPUParticles.get_emission_colors,\n        Godot.Core.CPUParticles.get_emission_normals,\n        Godot.Core.CPUParticles.get_emission_points,\n        Godot.Core.CPUParticles.get_emission_shape,\n        Godot.Core.CPUParticles.get_emission_sphere_radius,\n        Godot.Core.CPUParticles.get_explosiveness_ratio,\n        Godot.Core.CPUParticles.get_fixed_fps,\n        Godot.Core.CPUParticles.get_flatness,\n        Godot.Core.CPUParticles.get_fractional_delta,\n        Godot.Core.CPUParticles.get_gravity,\n        Godot.Core.CPUParticles.get_lifetime,\n        Godot.Core.CPUParticles.get_lifetime_randomness,\n        Godot.Core.CPUParticles.get_mesh,\n        Godot.Core.CPUParticles.get_one_shot,\n        Godot.Core.CPUParticles.get_param,\n        Godot.Core.CPUParticles.get_param_curve,\n        Godot.Core.CPUParticles.get_param_randomness,\n        Godot.Core.CPUParticles.get_particle_flag,\n        Godot.Core.CPUParticles.get_pre_process_time,\n        Godot.Core.CPUParticles.get_randomness_ratio,\n        Godot.Core.CPUParticles.get_speed_scale,\n        Godot.Core.CPUParticles.get_spread,\n        Godot.Core.CPUParticles.get_use_local_coordinates,\n        Godot.Core.CPUParticles.is_emitting,\n        Godot.Core.CPUParticles.restart,\n        Godot.Core.CPUParticles.set_amount,\n        Godot.Core.CPUParticles.set_color,\n        Godot.Core.CPUParticles.set_color_ramp,\n        Godot.Core.CPUParticles.set_direction,\n        Godot.Core.CPUParticles.set_draw_order,\n        Godot.Core.CPUParticles.set_emission_box_extents,\n        Godot.Core.CPUParticles.set_emission_colors,\n        Godot.Core.CPUParticles.set_emission_normals,\n        Godot.Core.CPUParticles.set_emission_points,\n        Godot.Core.CPUParticles.set_emission_shape,\n        Godot.Core.CPUParticles.set_emission_sphere_radius,\n        Godot.Core.CPUParticles.set_emitting,\n        Godot.Core.CPUParticles.set_explosiveness_ratio,\n        Godot.Core.CPUParticles.set_fixed_fps,\n        Godot.Core.CPUParticles.set_flatness,\n        Godot.Core.CPUParticles.set_fractional_delta,\n        Godot.Core.CPUParticles.set_gravity,\n        Godot.Core.CPUParticles.set_lifetime,\n        Godot.Core.CPUParticles.set_lifetime_randomness,\n        Godot.Core.CPUParticles.set_mesh,\n        Godot.Core.CPUParticles.set_one_shot,\n        Godot.Core.CPUParticles.set_param,\n        Godot.Core.CPUParticles.set_param_curve,\n        Godot.Core.CPUParticles.set_param_randomness,\n        Godot.Core.CPUParticles.set_particle_flag,\n        Godot.Core.CPUParticles.set_pre_process_time,\n        Godot.Core.CPUParticles.set_randomness_ratio,\n        Godot.Core.CPUParticles.set_speed_scale,\n        Godot.Core.CPUParticles.set_spread,\n        Godot.Core.CPUParticles.set_use_local_coordinates)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.GeometryInstance()\n\n_FLAG_ALIGN_Y_TO_VELOCITY :: Int\n_FLAG_ALIGN_Y_TO_VELOCITY = 0\n\n_PARAM_RADIAL_ACCEL :: Int\n_PARAM_RADIAL_ACCEL = 4\n\n_FLAG_ROTATE_Y :: Int\n_FLAG_ROTATE_Y = 1\n\n_EMISSION_SHAPE_SPHERE :: Int\n_EMISSION_SHAPE_SPHERE = 1\n\n_FLAG_DISABLE_Z :: Int\n_FLAG_DISABLE_Z = 2\n\n_PARAM_ANGULAR_VELOCITY :: Int\n_PARAM_ANGULAR_VELOCITY = 1\n\n_EMISSION_SHAPE_MAX :: Int\n_EMISSION_SHAPE_MAX = 5\n\n_PARAM_TANGENTIAL_ACCEL :: Int\n_PARAM_TANGENTIAL_ACCEL = 5\n\n_PARAM_ANIM_SPEED :: Int\n_PARAM_ANIM_SPEED = 10\n\n_EMISSION_SHAPE_BOX :: Int\n_EMISSION_SHAPE_BOX = 2\n\n_EMISSION_SHAPE_POINTS :: Int\n_EMISSION_SHAPE_POINTS = 3\n\n_PARAM_MAX :: Int\n_PARAM_MAX = 12\n\n_PARAM_INITIAL_LINEAR_VELOCITY :: Int\n_PARAM_INITIAL_LINEAR_VELOCITY = 0\n\n_FLAG_MAX :: Int\n_FLAG_MAX = 3\n\n_PARAM_LINEAR_ACCEL :: Int\n_PARAM_LINEAR_ACCEL = 3\n\n_EMISSION_SHAPE_DIRECTED_POINTS :: Int\n_EMISSION_SHAPE_DIRECTED_POINTS = 4\n\n_EMISSION_SHAPE_POINT :: Int\n_EMISSION_SHAPE_POINT = 0\n\n_PARAM_ORBIT_VELOCITY :: Int\n_PARAM_ORBIT_VELOCITY = 2\n\n_DRAW_ORDER_LIFETIME :: Int\n_DRAW_ORDER_LIFETIME = 1\n\n_PARAM_SCALE :: Int\n_PARAM_SCALE = 8\n\n_DRAW_ORDER_INDEX :: Int\n_DRAW_ORDER_INDEX = 0\n\n_PARAM_DAMPING :: Int\n_PARAM_DAMPING = 6\n\n_PARAM_HUE_VARIATION :: Int\n_PARAM_HUE_VARIATION = 9\n\n_PARAM_ANIM_OFFSET :: Int\n_PARAM_ANIM_OFFSET = 11\n\n_PARAM_ANGLE :: Int\n_PARAM_ANGLE = 7\n\n_DRAW_ORDER_VIEW_DEPTH :: Int\n_DRAW_ORDER_VIEW_DEPTH = 2\n\ninstance NodeProperty CPUParticles \"amount\" Int 'False where\n        nodeProperty = (get_amount, wrapDroppingSetter set_amount, Nothing)\n\ninstance NodeProperty CPUParticles \"angle\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_param, wrapIndexedSetter 7 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"angle_curve\" Curve 'False where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_param_curve,\n             wrapIndexedSetter 7 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles \"angle_random\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_param_randomness,\n             wrapIndexedSetter 7 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles \"angular_velocity\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_param, wrapIndexedSetter 1 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"angular_velocity_curve\" Curve\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_param_curve,\n             wrapIndexedSetter 1 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles \"angular_velocity_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_param_randomness,\n             wrapIndexedSetter 1 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles \"anim_offset\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_param, wrapIndexedSetter 11 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"anim_offset_curve\" Curve 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_param_curve,\n             wrapIndexedSetter 11 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles \"anim_offset_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_param_randomness,\n             wrapIndexedSetter 11 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles \"anim_speed\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_param, wrapIndexedSetter 10 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"anim_speed_curve\" Curve 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_param_curve,\n             wrapIndexedSetter 10 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles \"anim_speed_random\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_param_randomness,\n             wrapIndexedSetter 10 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles \"color\" Color 'False where\n        nodeProperty = (get_color, wrapDroppingSetter set_color, Nothing)\n\ninstance NodeProperty CPUParticles \"color_ramp\" Gradient 'False\n         where\n        nodeProperty\n          = (get_color_ramp, wrapDroppingSetter set_color_ramp, Nothing)\n\ninstance NodeProperty CPUParticles \"damping\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_param, wrapIndexedSetter 6 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"damping_curve\" Curve 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_param_curve,\n             wrapIndexedSetter 6 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles \"damping_random\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_param_randomness,\n             wrapIndexedSetter 6 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles \"direction\" Vector3 'False where\n        nodeProperty\n          = (get_direction, wrapDroppingSetter set_direction, Nothing)\n\ninstance NodeProperty CPUParticles \"draw_order\" Int 'False where\n        nodeProperty\n          = (get_draw_order, wrapDroppingSetter set_draw_order, Nothing)\n\ninstance NodeProperty CPUParticles \"emission_box_extents\" Vector3\n           'False\n         where\n        nodeProperty\n          = (get_emission_box_extents,\n             wrapDroppingSetter set_emission_box_extents, Nothing)\n\ninstance NodeProperty CPUParticles \"emission_colors\" PoolColorArray\n           'False\n         where\n        nodeProperty\n          = (get_emission_colors, wrapDroppingSetter set_emission_colors,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"emission_normals\"\n           PoolVector3Array\n           'False\n         where\n        nodeProperty\n          = (get_emission_normals, wrapDroppingSetter set_emission_normals,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"emission_points\"\n           PoolVector3Array\n           'False\n         where\n        nodeProperty\n          = (get_emission_points, wrapDroppingSetter set_emission_points,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"emission_shape\" Int 'False\n         where\n        nodeProperty\n          = (get_emission_shape, wrapDroppingSetter set_emission_shape,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"emission_sphere_radius\" Float\n           'False\n         where\n        nodeProperty\n          = (get_emission_sphere_radius,\n             wrapDroppingSetter set_emission_sphere_radius, Nothing)\n\ninstance NodeProperty CPUParticles \"emitting\" Bool 'False where\n        nodeProperty\n          = (is_emitting, wrapDroppingSetter set_emitting, Nothing)\n\ninstance NodeProperty CPUParticles \"explosiveness\" Float 'False\n         where\n        nodeProperty\n          = (get_explosiveness_ratio,\n             wrapDroppingSetter set_explosiveness_ratio, Nothing)\n\ninstance NodeProperty CPUParticles \"fixed_fps\" Int 'False where\n        nodeProperty\n          = (get_fixed_fps, wrapDroppingSetter set_fixed_fps, Nothing)\n\ninstance NodeProperty CPUParticles \"flag_align_y\" Bool 'False where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_particle_flag,\n             wrapIndexedSetter 0 set_particle_flag, Nothing)\n\ninstance NodeProperty CPUParticles \"flag_disable_z\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_particle_flag,\n             wrapIndexedSetter 2 set_particle_flag, Nothing)\n\ninstance NodeProperty CPUParticles \"flag_rotate_y\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_particle_flag,\n             wrapIndexedSetter 1 set_particle_flag, Nothing)\n\ninstance NodeProperty CPUParticles \"flatness\" Float 'False where\n        nodeProperty\n          = (get_flatness, wrapDroppingSetter set_flatness, Nothing)\n\ninstance NodeProperty CPUParticles \"fract_delta\" Bool 'False where\n        nodeProperty\n          = (get_fractional_delta, wrapDroppingSetter set_fractional_delta,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"gravity\" Vector3 'False where\n        nodeProperty\n          = (get_gravity, wrapDroppingSetter set_gravity, Nothing)\n\ninstance NodeProperty CPUParticles \"hue_variation\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_param, wrapIndexedSetter 9 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"hue_variation_curve\" Curve\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_param_curve,\n             wrapIndexedSetter 9 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles \"hue_variation_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_param_randomness,\n             wrapIndexedSetter 9 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles \"initial_velocity\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_param, wrapIndexedSetter 0 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"initial_velocity_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_param_randomness,\n             wrapIndexedSetter 0 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles \"lifetime\" Float 'False where\n        nodeProperty\n          = (get_lifetime, wrapDroppingSetter set_lifetime, Nothing)\n\ninstance NodeProperty CPUParticles \"lifetime_randomness\" Float\n           'False\n         where\n        nodeProperty\n          = (get_lifetime_randomness,\n             wrapDroppingSetter set_lifetime_randomness, Nothing)\n\ninstance NodeProperty CPUParticles \"linear_accel\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_param, wrapIndexedSetter 3 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"linear_accel_curve\" Curve\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_param_curve,\n             wrapIndexedSetter 3 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles \"linear_accel_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_param_randomness,\n             wrapIndexedSetter 3 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles \"local_coords\" Bool 'False where\n        nodeProperty\n          = (get_use_local_coordinates,\n             wrapDroppingSetter set_use_local_coordinates, Nothing)\n\ninstance NodeProperty CPUParticles \"mesh\" Mesh 'False where\n        nodeProperty = (get_mesh, wrapDroppingSetter set_mesh, Nothing)\n\ninstance NodeProperty CPUParticles \"one_shot\" Bool 'False where\n        nodeProperty\n          = (get_one_shot, wrapDroppingSetter set_one_shot, Nothing)\n\ninstance NodeProperty CPUParticles \"orbit_velocity\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_param, wrapIndexedSetter 2 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"orbit_velocity_curve\" Curve\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_param_curve,\n             wrapIndexedSetter 2 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles \"orbit_velocity_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_param_randomness,\n             wrapIndexedSetter 2 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles \"preprocess\" Float 'False where\n        nodeProperty\n          = (get_pre_process_time, wrapDroppingSetter set_pre_process_time,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"radial_accel\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_param, wrapIndexedSetter 4 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"radial_accel_curve\" Curve\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_param_curve,\n             wrapIndexedSetter 4 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles \"radial_accel_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_param_randomness,\n             wrapIndexedSetter 4 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles \"randomness\" Float 'False where\n        nodeProperty\n          = (get_randomness_ratio, wrapDroppingSetter set_randomness_ratio,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"scale_amount\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_param, wrapIndexedSetter 8 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"scale_amount_curve\" Curve\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_param_curve,\n             wrapIndexedSetter 8 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles \"scale_amount_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_param_randomness,\n             wrapIndexedSetter 8 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles \"speed_scale\" Float 'False where\n        nodeProperty\n          = (get_speed_scale, wrapDroppingSetter set_speed_scale, Nothing)\n\ninstance NodeProperty CPUParticles \"spread\" Float 'False where\n        nodeProperty = (get_spread, wrapDroppingSetter set_spread, Nothing)\n\ninstance NodeProperty CPUParticles \"tangential_accel\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_param, wrapIndexedSetter 5 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles \"tangential_accel_curve\" Curve\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_param_curve,\n             wrapIndexedSetter 5 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles \"tangential_accel_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_param_randomness,\n             wrapIndexedSetter 5 set_param_randomness, Nothing)\n\n{-# NOINLINE bindCPUParticles__update_render_thread #-}\n\nbindCPUParticles__update_render_thread :: MethodBind\nbindCPUParticles__update_render_thread\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"_update_render_thread\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_render_thread ::\n                        (CPUParticles :< cls, Object :< cls) => cls -> IO ()\n_update_render_thread cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles__update_render_thread\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"_update_render_thread\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles._update_render_thread\n\n{-# NOINLINE bindCPUParticles_convert_from_particles #-}\n\n-- | Sets this node's properties to match a given @Particles@ node with an assigned @ParticlesMaterial@.\nbindCPUParticles_convert_from_particles :: MethodBind\nbindCPUParticles_convert_from_particles\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"convert_from_particles\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets this node's properties to match a given @Particles@ node with an assigned @ParticlesMaterial@.\nconvert_from_particles ::\n                         (CPUParticles :< cls, Object :< cls) => cls -> Node -> IO ()\nconvert_from_particles cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_convert_from_particles\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"convert_from_particles\" '[Node]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.convert_from_particles\n\n{-# NOINLINE bindCPUParticles_get_amount #-}\n\n-- | Number of particles emitted in one emission cycle.\nbindCPUParticles_get_amount :: MethodBind\nbindCPUParticles_get_amount\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of particles emitted in one emission cycle.\nget_amount :: (CPUParticles :< cls, Object :< cls) => cls -> IO Int\nget_amount cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_amount (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_amount\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CPUParticles.get_amount\n\n{-# NOINLINE bindCPUParticles_get_color #-}\n\n-- | Unused for 3D particles.\nbindCPUParticles_get_color :: MethodBind\nbindCPUParticles_get_color\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Unused for 3D particles.\nget_color ::\n            (CPUParticles :< cls, Object :< cls) => cls -> IO Color\nget_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_color\" '[] (IO Color) where\n        nodeMethod = Godot.Core.CPUParticles.get_color\n\n{-# NOINLINE bindCPUParticles_get_color_ramp #-}\n\n-- | Unused for 3D particles.\nbindCPUParticles_get_color_ramp :: MethodBind\nbindCPUParticles_get_color_ramp\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_color_ramp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Unused for 3D particles.\nget_color_ramp ::\n                 (CPUParticles :< cls, Object :< cls) => cls -> IO Gradient\nget_color_ramp cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_color_ramp (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_color_ramp\" '[] (IO Gradient)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_color_ramp\n\n{-# NOINLINE bindCPUParticles_get_direction #-}\n\n-- | Unit vector specifying the particles' emission direction.\nbindCPUParticles_get_direction :: MethodBind\nbindCPUParticles_get_direction\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_direction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Unit vector specifying the particles' emission direction.\nget_direction ::\n                (CPUParticles :< cls, Object :< cls) => cls -> IO Vector3\nget_direction cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_direction (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_direction\" '[] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_direction\n\n{-# NOINLINE bindCPUParticles_get_draw_order #-}\n\n-- | Particle draw order. Uses @enum DrawOrder@ values.\nbindCPUParticles_get_draw_order :: MethodBind\nbindCPUParticles_get_draw_order\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_draw_order\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle draw order. Uses @enum DrawOrder@ values.\nget_draw_order ::\n                 (CPUParticles :< cls, Object :< cls) => cls -> IO Int\nget_draw_order cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_draw_order (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_draw_order\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_draw_order\n\n{-# NOINLINE bindCPUParticles_get_emission_box_extents #-}\n\n-- | The rectangle's extents if @emission_shape@ is set to @EMISSION_SHAPE_BOX@.\nbindCPUParticles_get_emission_box_extents :: MethodBind\nbindCPUParticles_get_emission_box_extents\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_box_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rectangle's extents if @emission_shape@ is set to @EMISSION_SHAPE_BOX@.\nget_emission_box_extents ::\n                           (CPUParticles :< cls, Object :< cls) => cls -> IO Vector3\nget_emission_box_extents cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_emission_box_extents\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_emission_box_extents\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_emission_box_extents\n\n{-# NOINLINE bindCPUParticles_get_emission_colors #-}\n\n-- | Sets the @Color@s to modulate particles by when using @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nbindCPUParticles_get_emission_colors :: MethodBind\nbindCPUParticles_get_emission_colors\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_colors\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Color@s to modulate particles by when using @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nget_emission_colors ::\n                      (CPUParticles :< cls, Object :< cls) => cls -> IO PoolColorArray\nget_emission_colors cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_emission_colors\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_emission_colors\" '[]\n           (IO PoolColorArray)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_emission_colors\n\n{-# NOINLINE bindCPUParticles_get_emission_normals #-}\n\n-- | Sets the direction the particles will be emitted in when using @EMISSION_SHAPE_DIRECTED_POINTS@.\nbindCPUParticles_get_emission_normals :: MethodBind\nbindCPUParticles_get_emission_normals\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_normals\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the direction the particles will be emitted in when using @EMISSION_SHAPE_DIRECTED_POINTS@.\nget_emission_normals ::\n                       (CPUParticles :< cls, Object :< cls) => cls -> IO PoolVector3Array\nget_emission_normals cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_emission_normals\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_emission_normals\" '[]\n           (IO PoolVector3Array)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_emission_normals\n\n{-# NOINLINE bindCPUParticles_get_emission_points #-}\n\n-- | Sets the initial positions to spawn particles when using @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nbindCPUParticles_get_emission_points :: MethodBind\nbindCPUParticles_get_emission_points\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the initial positions to spawn particles when using @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nget_emission_points ::\n                      (CPUParticles :< cls, Object :< cls) => cls -> IO PoolVector3Array\nget_emission_points cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_emission_points\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_emission_points\" '[]\n           (IO PoolVector3Array)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_emission_points\n\n{-# NOINLINE bindCPUParticles_get_emission_shape #-}\n\n-- | Particles will be emitted inside this region. See @enum EmissionShape@ for possible values.\nbindCPUParticles_get_emission_shape :: MethodBind\nbindCPUParticles_get_emission_shape\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particles will be emitted inside this region. See @enum EmissionShape@ for possible values.\nget_emission_shape ::\n                     (CPUParticles :< cls, Object :< cls) => cls -> IO Int\nget_emission_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_emission_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_emission_shape\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_emission_shape\n\n{-# NOINLINE bindCPUParticles_get_emission_sphere_radius #-}\n\n-- | The sphere's radius if @enum EmissionShape@ is set to @EMISSION_SHAPE_SPHERE@.\nbindCPUParticles_get_emission_sphere_radius :: MethodBind\nbindCPUParticles_get_emission_sphere_radius\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_sphere_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The sphere's radius if @enum EmissionShape@ is set to @EMISSION_SHAPE_SPHERE@.\nget_emission_sphere_radius ::\n                             (CPUParticles :< cls, Object :< cls) => cls -> IO Float\nget_emission_sphere_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_emission_sphere_radius\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_emission_sphere_radius\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_emission_sphere_radius\n\n{-# NOINLINE bindCPUParticles_get_explosiveness_ratio #-}\n\n-- | How rapidly particles in an emission cycle are emitted. If greater than @0@, there will be a gap in emissions before the next cycle begins.\nbindCPUParticles_get_explosiveness_ratio :: MethodBind\nbindCPUParticles_get_explosiveness_ratio\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_explosiveness_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How rapidly particles in an emission cycle are emitted. If greater than @0@, there will be a gap in emissions before the next cycle begins.\nget_explosiveness_ratio ::\n                          (CPUParticles :< cls, Object :< cls) => cls -> IO Float\nget_explosiveness_ratio cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_explosiveness_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_explosiveness_ratio\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_explosiveness_ratio\n\n{-# NOINLINE bindCPUParticles_get_fixed_fps #-}\n\n-- | The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the particle system itself.\nbindCPUParticles_get_fixed_fps :: MethodBind\nbindCPUParticles_get_fixed_fps\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_fixed_fps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the particle system itself.\nget_fixed_fps ::\n                (CPUParticles :< cls, Object :< cls) => cls -> IO Int\nget_fixed_fps cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_fixed_fps (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_fixed_fps\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CPUParticles.get_fixed_fps\n\n{-# NOINLINE bindCPUParticles_get_flatness #-}\n\n-- | Amount of @spread@ in Y/Z plane. A value of @1@ restricts particles to X/Z plane.\nbindCPUParticles_get_flatness :: MethodBind\nbindCPUParticles_get_flatness\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_flatness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of @spread@ in Y/Z plane. A value of @1@ restricts particles to X/Z plane.\nget_flatness ::\n               (CPUParticles :< cls, Object :< cls) => cls -> IO Float\nget_flatness cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_flatness (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_flatness\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_flatness\n\n{-# NOINLINE bindCPUParticles_get_fractional_delta #-}\n\n-- | If @true@, results in fractional delta calculation which has a smoother particles display effect.\nbindCPUParticles_get_fractional_delta :: MethodBind\nbindCPUParticles_get_fractional_delta\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_fractional_delta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, results in fractional delta calculation which has a smoother particles display effect.\nget_fractional_delta ::\n                       (CPUParticles :< cls, Object :< cls) => cls -> IO Bool\nget_fractional_delta cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_fractional_delta\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_fractional_delta\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_fractional_delta\n\n{-# NOINLINE bindCPUParticles_get_gravity #-}\n\n-- | Gravity applied to every particle.\nbindCPUParticles_get_gravity :: MethodBind\nbindCPUParticles_get_gravity\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_gravity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gravity applied to every particle.\nget_gravity ::\n              (CPUParticles :< cls, Object :< cls) => cls -> IO Vector3\nget_gravity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_gravity (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_gravity\" '[] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_gravity\n\n{-# NOINLINE bindCPUParticles_get_lifetime #-}\n\n-- | Amount of time each particle will exist.\nbindCPUParticles_get_lifetime :: MethodBind\nbindCPUParticles_get_lifetime\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_lifetime\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of time each particle will exist.\nget_lifetime ::\n               (CPUParticles :< cls, Object :< cls) => cls -> IO Float\nget_lifetime cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_lifetime (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_lifetime\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_lifetime\n\n{-# NOINLINE bindCPUParticles_get_lifetime_randomness #-}\n\n-- | Particle lifetime randomness ratio.\nbindCPUParticles_get_lifetime_randomness :: MethodBind\nbindCPUParticles_get_lifetime_randomness\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_lifetime_randomness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle lifetime randomness ratio.\nget_lifetime_randomness ::\n                          (CPUParticles :< cls, Object :< cls) => cls -> IO Float\nget_lifetime_randomness cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_lifetime_randomness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_lifetime_randomness\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_lifetime_randomness\n\n{-# NOINLINE bindCPUParticles_get_mesh #-}\n\n-- | The @Mesh@ used for each particle. If @null@, particles will be spheres.\nbindCPUParticles_get_mesh :: MethodBind\nbindCPUParticles_get_mesh\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Mesh@ used for each particle. If @null@, particles will be spheres.\nget_mesh :: (CPUParticles :< cls, Object :< cls) => cls -> IO Mesh\nget_mesh cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_mesh (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_mesh\" '[] (IO Mesh) where\n        nodeMethod = Godot.Core.CPUParticles.get_mesh\n\n{-# NOINLINE bindCPUParticles_get_one_shot #-}\n\n-- | If @true@, only one emission cycle occurs. If set @true@ during a cycle, emission will stop at the cycle's end.\nbindCPUParticles_get_one_shot :: MethodBind\nbindCPUParticles_get_one_shot\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_one_shot\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, only one emission cycle occurs. If set @true@ during a cycle, emission will stop at the cycle's end.\nget_one_shot ::\n               (CPUParticles :< cls, Object :< cls) => cls -> IO Bool\nget_one_shot cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_one_shot (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_one_shot\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.CPUParticles.get_one_shot\n\n{-# NOINLINE bindCPUParticles_get_param #-}\n\n-- | Returns the base value of the parameter specified by @enum Parameter@.\nbindCPUParticles_get_param :: MethodBind\nbindCPUParticles_get_param\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the base value of the parameter specified by @enum Parameter@.\nget_param ::\n            (CPUParticles :< cls, Object :< cls) => cls -> Int -> IO Float\nget_param cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_param (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_param\" '[Int] (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_param\n\n{-# NOINLINE bindCPUParticles_get_param_curve #-}\n\n-- | Returns the @Curve@ of the parameter specified by @enum Parameter@.\nbindCPUParticles_get_param_curve :: MethodBind\nbindCPUParticles_get_param_curve\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_param_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Curve@ of the parameter specified by @enum Parameter@.\nget_param_curve ::\n                  (CPUParticles :< cls, Object :< cls) => cls -> Int -> IO Curve\nget_param_curve cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_param_curve\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_param_curve\" '[Int]\n           (IO Curve)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_param_curve\n\n{-# NOINLINE bindCPUParticles_get_param_randomness #-}\n\n-- | Returns the randomness factor of the parameter specified by @enum Parameter@.\nbindCPUParticles_get_param_randomness :: MethodBind\nbindCPUParticles_get_param_randomness\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_param_randomness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the randomness factor of the parameter specified by @enum Parameter@.\nget_param_randomness ::\n                       (CPUParticles :< cls, Object :< cls) => cls -> Int -> IO Float\nget_param_randomness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_param_randomness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_param_randomness\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_param_randomness\n\n{-# NOINLINE bindCPUParticles_get_particle_flag #-}\n\n-- | Returns the enabled state of the given flag (see @enum Flags@ for options).\nbindCPUParticles_get_particle_flag :: MethodBind\nbindCPUParticles_get_particle_flag\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_particle_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the enabled state of the given flag (see @enum Flags@ for options).\nget_particle_flag ::\n                    (CPUParticles :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_particle_flag cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_particle_flag\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_particle_flag\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_particle_flag\n\n{-# NOINLINE bindCPUParticles_get_pre_process_time #-}\n\n-- | Particle system starts as if it had already run for this many seconds.\nbindCPUParticles_get_pre_process_time :: MethodBind\nbindCPUParticles_get_pre_process_time\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_pre_process_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle system starts as if it had already run for this many seconds.\nget_pre_process_time ::\n                       (CPUParticles :< cls, Object :< cls) => cls -> IO Float\nget_pre_process_time cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_pre_process_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_pre_process_time\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_pre_process_time\n\n{-# NOINLINE bindCPUParticles_get_randomness_ratio #-}\n\n-- | Emission lifetime randomness ratio.\nbindCPUParticles_get_randomness_ratio :: MethodBind\nbindCPUParticles_get_randomness_ratio\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_randomness_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Emission lifetime randomness ratio.\nget_randomness_ratio ::\n                       (CPUParticles :< cls, Object :< cls) => cls -> IO Float\nget_randomness_ratio cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_randomness_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_randomness_ratio\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_randomness_ratio\n\n{-# NOINLINE bindCPUParticles_get_speed_scale #-}\n\n-- | Particle system's running speed scaling ratio. A value of @0@ can be used to pause the particles.\nbindCPUParticles_get_speed_scale :: MethodBind\nbindCPUParticles_get_speed_scale\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_speed_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle system's running speed scaling ratio. A value of @0@ can be used to pause the particles.\nget_speed_scale ::\n                  (CPUParticles :< cls, Object :< cls) => cls -> IO Float\nget_speed_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_speed_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_speed_scale\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_speed_scale\n\n{-# NOINLINE bindCPUParticles_get_spread #-}\n\n-- | Each particle's initial direction range from @+spread@ to @-spread@ degrees. Applied to X/Z plane and Y/Z planes.\nbindCPUParticles_get_spread :: MethodBind\nbindCPUParticles_get_spread\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_spread\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Each particle's initial direction range from @+spread@ to @-spread@ degrees. Applied to X/Z plane and Y/Z planes.\nget_spread ::\n             (CPUParticles :< cls, Object :< cls) => cls -> IO Float\nget_spread cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_spread (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_spread\" '[] (IO Float) where\n        nodeMethod = Godot.Core.CPUParticles.get_spread\n\n{-# NOINLINE bindCPUParticles_get_use_local_coordinates #-}\n\n-- | If @true@, particles use the parent node's coordinate space. If @false@, they use global coordinates.\nbindCPUParticles_get_use_local_coordinates :: MethodBind\nbindCPUParticles_get_use_local_coordinates\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"get_use_local_coordinates\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles use the parent node's coordinate space. If @false@, they use global coordinates.\nget_use_local_coordinates ::\n                            (CPUParticles :< cls, Object :< cls) => cls -> IO Bool\nget_use_local_coordinates cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_get_use_local_coordinates\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"get_use_local_coordinates\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CPUParticles.get_use_local_coordinates\n\n{-# NOINLINE bindCPUParticles_is_emitting #-}\n\n-- | If @true@, particles are being emitted.\nbindCPUParticles_is_emitting :: MethodBind\nbindCPUParticles_is_emitting\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"is_emitting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles are being emitted.\nis_emitting ::\n              (CPUParticles :< cls, Object :< cls) => cls -> IO Bool\nis_emitting cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_is_emitting (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"is_emitting\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.CPUParticles.is_emitting\n\n{-# NOINLINE bindCPUParticles_restart #-}\n\n-- | Restarts the particle emitter.\nbindCPUParticles_restart :: MethodBind\nbindCPUParticles_restart\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"restart\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Restarts the particle emitter.\nrestart :: (CPUParticles :< cls, Object :< cls) => cls -> IO ()\nrestart cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_restart (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"restart\" '[] (IO ()) where\n        nodeMethod = Godot.Core.CPUParticles.restart\n\n{-# NOINLINE bindCPUParticles_set_amount #-}\n\n-- | Number of particles emitted in one emission cycle.\nbindCPUParticles_set_amount :: MethodBind\nbindCPUParticles_set_amount\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of particles emitted in one emission cycle.\nset_amount ::\n             (CPUParticles :< cls, Object :< cls) => cls -> Int -> IO ()\nset_amount cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_amount (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_amount\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.CPUParticles.set_amount\n\n{-# NOINLINE bindCPUParticles_set_color #-}\n\n-- | Unused for 3D particles.\nbindCPUParticles_set_color :: MethodBind\nbindCPUParticles_set_color\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Unused for 3D particles.\nset_color ::\n            (CPUParticles :< cls, Object :< cls) => cls -> Color -> IO ()\nset_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_color\" '[Color] (IO ()) where\n        nodeMethod = Godot.Core.CPUParticles.set_color\n\n{-# NOINLINE bindCPUParticles_set_color_ramp #-}\n\n-- | Unused for 3D particles.\nbindCPUParticles_set_color_ramp :: MethodBind\nbindCPUParticles_set_color_ramp\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_color_ramp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Unused for 3D particles.\nset_color_ramp ::\n                 (CPUParticles :< cls, Object :< cls) => cls -> Gradient -> IO ()\nset_color_ramp cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_color_ramp (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_color_ramp\" '[Gradient]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_color_ramp\n\n{-# NOINLINE bindCPUParticles_set_direction #-}\n\n-- | Unit vector specifying the particles' emission direction.\nbindCPUParticles_set_direction :: MethodBind\nbindCPUParticles_set_direction\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_direction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Unit vector specifying the particles' emission direction.\nset_direction ::\n                (CPUParticles :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_direction cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_direction (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_direction\" '[Vector3] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_direction\n\n{-# NOINLINE bindCPUParticles_set_draw_order #-}\n\n-- | Particle draw order. Uses @enum DrawOrder@ values.\nbindCPUParticles_set_draw_order :: MethodBind\nbindCPUParticles_set_draw_order\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_draw_order\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle draw order. Uses @enum DrawOrder@ values.\nset_draw_order ::\n                 (CPUParticles :< cls, Object :< cls) => cls -> Int -> IO ()\nset_draw_order cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_draw_order (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_draw_order\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_draw_order\n\n{-# NOINLINE bindCPUParticles_set_emission_box_extents #-}\n\n-- | The rectangle's extents if @emission_shape@ is set to @EMISSION_SHAPE_BOX@.\nbindCPUParticles_set_emission_box_extents :: MethodBind\nbindCPUParticles_set_emission_box_extents\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_box_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rectangle's extents if @emission_shape@ is set to @EMISSION_SHAPE_BOX@.\nset_emission_box_extents ::\n                           (CPUParticles :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_emission_box_extents cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_emission_box_extents\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_emission_box_extents\"\n           '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_emission_box_extents\n\n{-# NOINLINE bindCPUParticles_set_emission_colors #-}\n\n-- | Sets the @Color@s to modulate particles by when using @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nbindCPUParticles_set_emission_colors :: MethodBind\nbindCPUParticles_set_emission_colors\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_colors\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Color@s to modulate particles by when using @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nset_emission_colors ::\n                      (CPUParticles :< cls, Object :< cls) =>\n                      cls -> PoolColorArray -> IO ()\nset_emission_colors cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_emission_colors\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_emission_colors\"\n           '[PoolColorArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_emission_colors\n\n{-# NOINLINE bindCPUParticles_set_emission_normals #-}\n\n-- | Sets the direction the particles will be emitted in when using @EMISSION_SHAPE_DIRECTED_POINTS@.\nbindCPUParticles_set_emission_normals :: MethodBind\nbindCPUParticles_set_emission_normals\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_normals\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the direction the particles will be emitted in when using @EMISSION_SHAPE_DIRECTED_POINTS@.\nset_emission_normals ::\n                       (CPUParticles :< cls, Object :< cls) =>\n                       cls -> PoolVector3Array -> IO ()\nset_emission_normals cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_emission_normals\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_emission_normals\"\n           '[PoolVector3Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_emission_normals\n\n{-# NOINLINE bindCPUParticles_set_emission_points #-}\n\n-- | Sets the initial positions to spawn particles when using @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nbindCPUParticles_set_emission_points :: MethodBind\nbindCPUParticles_set_emission_points\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the initial positions to spawn particles when using @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nset_emission_points ::\n                      (CPUParticles :< cls, Object :< cls) =>\n                      cls -> PoolVector3Array -> IO ()\nset_emission_points cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_emission_points\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_emission_points\"\n           '[PoolVector3Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_emission_points\n\n{-# NOINLINE bindCPUParticles_set_emission_shape #-}\n\n-- | Particles will be emitted inside this region. See @enum EmissionShape@ for possible values.\nbindCPUParticles_set_emission_shape :: MethodBind\nbindCPUParticles_set_emission_shape\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particles will be emitted inside this region. See @enum EmissionShape@ for possible values.\nset_emission_shape ::\n                     (CPUParticles :< cls, Object :< cls) => cls -> Int -> IO ()\nset_emission_shape cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_emission_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_emission_shape\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_emission_shape\n\n{-# NOINLINE bindCPUParticles_set_emission_sphere_radius #-}\n\n-- | The sphere's radius if @enum EmissionShape@ is set to @EMISSION_SHAPE_SPHERE@.\nbindCPUParticles_set_emission_sphere_radius :: MethodBind\nbindCPUParticles_set_emission_sphere_radius\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_sphere_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The sphere's radius if @enum EmissionShape@ is set to @EMISSION_SHAPE_SPHERE@.\nset_emission_sphere_radius ::\n                             (CPUParticles :< cls, Object :< cls) => cls -> Float -> IO ()\nset_emission_sphere_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_emission_sphere_radius\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_emission_sphere_radius\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_emission_sphere_radius\n\n{-# NOINLINE bindCPUParticles_set_emitting #-}\n\n-- | If @true@, particles are being emitted.\nbindCPUParticles_set_emitting :: MethodBind\nbindCPUParticles_set_emitting\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_emitting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles are being emitted.\nset_emitting ::\n               (CPUParticles :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_emitting cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_emitting (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_emitting\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_emitting\n\n{-# NOINLINE bindCPUParticles_set_explosiveness_ratio #-}\n\n-- | How rapidly particles in an emission cycle are emitted. If greater than @0@, there will be a gap in emissions before the next cycle begins.\nbindCPUParticles_set_explosiveness_ratio :: MethodBind\nbindCPUParticles_set_explosiveness_ratio\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_explosiveness_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How rapidly particles in an emission cycle are emitted. If greater than @0@, there will be a gap in emissions before the next cycle begins.\nset_explosiveness_ratio ::\n                          (CPUParticles :< cls, Object :< cls) => cls -> Float -> IO ()\nset_explosiveness_ratio cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_explosiveness_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_explosiveness_ratio\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_explosiveness_ratio\n\n{-# NOINLINE bindCPUParticles_set_fixed_fps #-}\n\n-- | The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the particle system itself.\nbindCPUParticles_set_fixed_fps :: MethodBind\nbindCPUParticles_set_fixed_fps\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_fixed_fps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the particle system itself.\nset_fixed_fps ::\n                (CPUParticles :< cls, Object :< cls) => cls -> Int -> IO ()\nset_fixed_fps cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_fixed_fps (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_fixed_fps\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_fixed_fps\n\n{-# NOINLINE bindCPUParticles_set_flatness #-}\n\n-- | Amount of @spread@ in Y/Z plane. A value of @1@ restricts particles to X/Z plane.\nbindCPUParticles_set_flatness :: MethodBind\nbindCPUParticles_set_flatness\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_flatness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of @spread@ in Y/Z plane. A value of @1@ restricts particles to X/Z plane.\nset_flatness ::\n               (CPUParticles :< cls, Object :< cls) => cls -> Float -> IO ()\nset_flatness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_flatness (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_flatness\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_flatness\n\n{-# NOINLINE bindCPUParticles_set_fractional_delta #-}\n\n-- | If @true@, results in fractional delta calculation which has a smoother particles display effect.\nbindCPUParticles_set_fractional_delta :: MethodBind\nbindCPUParticles_set_fractional_delta\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_fractional_delta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, results in fractional delta calculation which has a smoother particles display effect.\nset_fractional_delta ::\n                       (CPUParticles :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_fractional_delta cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_fractional_delta\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_fractional_delta\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_fractional_delta\n\n{-# NOINLINE bindCPUParticles_set_gravity #-}\n\n-- | Gravity applied to every particle.\nbindCPUParticles_set_gravity :: MethodBind\nbindCPUParticles_set_gravity\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_gravity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gravity applied to every particle.\nset_gravity ::\n              (CPUParticles :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_gravity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_gravity (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_gravity\" '[Vector3] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_gravity\n\n{-# NOINLINE bindCPUParticles_set_lifetime #-}\n\n-- | Amount of time each particle will exist.\nbindCPUParticles_set_lifetime :: MethodBind\nbindCPUParticles_set_lifetime\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_lifetime\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of time each particle will exist.\nset_lifetime ::\n               (CPUParticles :< cls, Object :< cls) => cls -> Float -> IO ()\nset_lifetime cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_lifetime (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_lifetime\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_lifetime\n\n{-# NOINLINE bindCPUParticles_set_lifetime_randomness #-}\n\n-- | Particle lifetime randomness ratio.\nbindCPUParticles_set_lifetime_randomness :: MethodBind\nbindCPUParticles_set_lifetime_randomness\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_lifetime_randomness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle lifetime randomness ratio.\nset_lifetime_randomness ::\n                          (CPUParticles :< cls, Object :< cls) => cls -> Float -> IO ()\nset_lifetime_randomness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_lifetime_randomness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_lifetime_randomness\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_lifetime_randomness\n\n{-# NOINLINE bindCPUParticles_set_mesh #-}\n\n-- | The @Mesh@ used for each particle. If @null@, particles will be spheres.\nbindCPUParticles_set_mesh :: MethodBind\nbindCPUParticles_set_mesh\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Mesh@ used for each particle. If @null@, particles will be spheres.\nset_mesh ::\n           (CPUParticles :< cls, Object :< cls) => cls -> Mesh -> IO ()\nset_mesh cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_mesh (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_mesh\" '[Mesh] (IO ()) where\n        nodeMethod = Godot.Core.CPUParticles.set_mesh\n\n{-# NOINLINE bindCPUParticles_set_one_shot #-}\n\n-- | If @true@, only one emission cycle occurs. If set @true@ during a cycle, emission will stop at the cycle's end.\nbindCPUParticles_set_one_shot :: MethodBind\nbindCPUParticles_set_one_shot\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_one_shot\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, only one emission cycle occurs. If set @true@ during a cycle, emission will stop at the cycle's end.\nset_one_shot ::\n               (CPUParticles :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_one_shot cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_one_shot (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_one_shot\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_one_shot\n\n{-# NOINLINE bindCPUParticles_set_param #-}\n\n-- | Sets the base value of the parameter specified by @enum Parameter@.\nbindCPUParticles_set_param :: MethodBind\nbindCPUParticles_set_param\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the base value of the parameter specified by @enum Parameter@.\nset_param ::\n            (CPUParticles :< cls, Object :< cls) =>\n            cls -> Int -> Float -> IO ()\nset_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_param (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_param\" '[Int, Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_param\n\n{-# NOINLINE bindCPUParticles_set_param_curve #-}\n\n-- | Sets the @Curve@ of the parameter specified by @enum Parameter@.\nbindCPUParticles_set_param_curve :: MethodBind\nbindCPUParticles_set_param_curve\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_param_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Curve@ of the parameter specified by @enum Parameter@.\nset_param_curve ::\n                  (CPUParticles :< cls, Object :< cls) =>\n                  cls -> Int -> Curve -> IO ()\nset_param_curve cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_param_curve\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_param_curve\" '[Int, Curve]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_param_curve\n\n{-# NOINLINE bindCPUParticles_set_param_randomness #-}\n\n-- | Sets the randomness factor of the parameter specified by @enum Parameter@.\nbindCPUParticles_set_param_randomness :: MethodBind\nbindCPUParticles_set_param_randomness\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_param_randomness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the randomness factor of the parameter specified by @enum Parameter@.\nset_param_randomness ::\n                       (CPUParticles :< cls, Object :< cls) =>\n                       cls -> Int -> Float -> IO ()\nset_param_randomness cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_param_randomness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_param_randomness\"\n           '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_param_randomness\n\n{-# NOINLINE bindCPUParticles_set_particle_flag #-}\n\n-- | Enables or disables the given flag (see @enum Flags@ for options).\nbindCPUParticles_set_particle_flag :: MethodBind\nbindCPUParticles_set_particle_flag\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_particle_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables or disables the given flag (see @enum Flags@ for options).\nset_particle_flag ::\n                    (CPUParticles :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_particle_flag cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_particle_flag\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_particle_flag\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_particle_flag\n\n{-# NOINLINE bindCPUParticles_set_pre_process_time #-}\n\n-- | Particle system starts as if it had already run for this many seconds.\nbindCPUParticles_set_pre_process_time :: MethodBind\nbindCPUParticles_set_pre_process_time\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_pre_process_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle system starts as if it had already run for this many seconds.\nset_pre_process_time ::\n                       (CPUParticles :< cls, Object :< cls) => cls -> Float -> IO ()\nset_pre_process_time cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_pre_process_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_pre_process_time\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_pre_process_time\n\n{-# NOINLINE bindCPUParticles_set_randomness_ratio #-}\n\n-- | Emission lifetime randomness ratio.\nbindCPUParticles_set_randomness_ratio :: MethodBind\nbindCPUParticles_set_randomness_ratio\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_randomness_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Emission lifetime randomness ratio.\nset_randomness_ratio ::\n                       (CPUParticles :< cls, Object :< cls) => cls -> Float -> IO ()\nset_randomness_ratio cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_randomness_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_randomness_ratio\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_randomness_ratio\n\n{-# NOINLINE bindCPUParticles_set_speed_scale #-}\n\n-- | Particle system's running speed scaling ratio. A value of @0@ can be used to pause the particles.\nbindCPUParticles_set_speed_scale :: MethodBind\nbindCPUParticles_set_speed_scale\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_speed_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle system's running speed scaling ratio. A value of @0@ can be used to pause the particles.\nset_speed_scale ::\n                  (CPUParticles :< cls, Object :< cls) => cls -> Float -> IO ()\nset_speed_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_speed_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_speed_scale\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_speed_scale\n\n{-# NOINLINE bindCPUParticles_set_spread #-}\n\n-- | Each particle's initial direction range from @+spread@ to @-spread@ degrees. Applied to X/Z plane and Y/Z planes.\nbindCPUParticles_set_spread :: MethodBind\nbindCPUParticles_set_spread\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_spread\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Each particle's initial direction range from @+spread@ to @-spread@ degrees. Applied to X/Z plane and Y/Z planes.\nset_spread ::\n             (CPUParticles :< cls, Object :< cls) => cls -> Float -> IO ()\nset_spread cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_spread (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_spread\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_spread\n\n{-# NOINLINE bindCPUParticles_set_use_local_coordinates #-}\n\n-- | If @true@, particles use the parent node's coordinate space. If @false@, they use global coordinates.\nbindCPUParticles_set_use_local_coordinates :: MethodBind\nbindCPUParticles_set_use_local_coordinates\n  = unsafePerformIO $\n      withCString \"CPUParticles\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_local_coordinates\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles use the parent node's coordinate space. If @false@, they use global coordinates.\nset_use_local_coordinates ::\n                            (CPUParticles :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_local_coordinates cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles_set_use_local_coordinates\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles \"set_use_local_coordinates\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles.set_use_local_coordinates"
  },
  {
    "path": "src/Godot/Core/CPUParticles2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CPUParticles2D\n       (Godot.Core.CPUParticles2D._FLAG_ALIGN_Y_TO_VELOCITY,\n        Godot.Core.CPUParticles2D._PARAM_RADIAL_ACCEL,\n        Godot.Core.CPUParticles2D._FLAG_ROTATE_Y,\n        Godot.Core.CPUParticles2D._EMISSION_SHAPE_SPHERE,\n        Godot.Core.CPUParticles2D._FLAG_DISABLE_Z,\n        Godot.Core.CPUParticles2D._PARAM_ANGULAR_VELOCITY,\n        Godot.Core.CPUParticles2D._EMISSION_SHAPE_MAX,\n        Godot.Core.CPUParticles2D._PARAM_TANGENTIAL_ACCEL,\n        Godot.Core.CPUParticles2D._PARAM_ANIM_SPEED,\n        Godot.Core.CPUParticles2D._EMISSION_SHAPE_POINTS,\n        Godot.Core.CPUParticles2D._PARAM_MAX,\n        Godot.Core.CPUParticles2D._PARAM_INITIAL_LINEAR_VELOCITY,\n        Godot.Core.CPUParticles2D._FLAG_MAX,\n        Godot.Core.CPUParticles2D._EMISSION_SHAPE_RECTANGLE,\n        Godot.Core.CPUParticles2D._PARAM_LINEAR_ACCEL,\n        Godot.Core.CPUParticles2D._EMISSION_SHAPE_DIRECTED_POINTS,\n        Godot.Core.CPUParticles2D._EMISSION_SHAPE_POINT,\n        Godot.Core.CPUParticles2D._PARAM_ORBIT_VELOCITY,\n        Godot.Core.CPUParticles2D._DRAW_ORDER_LIFETIME,\n        Godot.Core.CPUParticles2D._PARAM_SCALE,\n        Godot.Core.CPUParticles2D._DRAW_ORDER_INDEX,\n        Godot.Core.CPUParticles2D._PARAM_DAMPING,\n        Godot.Core.CPUParticles2D._PARAM_HUE_VARIATION,\n        Godot.Core.CPUParticles2D._PARAM_ANIM_OFFSET,\n        Godot.Core.CPUParticles2D._PARAM_ANGLE,\n        Godot.Core.CPUParticles2D._update_render_thread,\n        Godot.Core.CPUParticles2D.convert_from_particles,\n        Godot.Core.CPUParticles2D.get_amount,\n        Godot.Core.CPUParticles2D.get_color,\n        Godot.Core.CPUParticles2D.get_color_ramp,\n        Godot.Core.CPUParticles2D.get_direction,\n        Godot.Core.CPUParticles2D.get_draw_order,\n        Godot.Core.CPUParticles2D.get_emission_colors,\n        Godot.Core.CPUParticles2D.get_emission_normals,\n        Godot.Core.CPUParticles2D.get_emission_points,\n        Godot.Core.CPUParticles2D.get_emission_rect_extents,\n        Godot.Core.CPUParticles2D.get_emission_shape,\n        Godot.Core.CPUParticles2D.get_emission_sphere_radius,\n        Godot.Core.CPUParticles2D.get_explosiveness_ratio,\n        Godot.Core.CPUParticles2D.get_fixed_fps,\n        Godot.Core.CPUParticles2D.get_fractional_delta,\n        Godot.Core.CPUParticles2D.get_gravity,\n        Godot.Core.CPUParticles2D.get_lifetime,\n        Godot.Core.CPUParticles2D.get_lifetime_randomness,\n        Godot.Core.CPUParticles2D.get_normalmap,\n        Godot.Core.CPUParticles2D.get_one_shot,\n        Godot.Core.CPUParticles2D.get_param,\n        Godot.Core.CPUParticles2D.get_param_curve,\n        Godot.Core.CPUParticles2D.get_param_randomness,\n        Godot.Core.CPUParticles2D.get_particle_flag,\n        Godot.Core.CPUParticles2D.get_pre_process_time,\n        Godot.Core.CPUParticles2D.get_randomness_ratio,\n        Godot.Core.CPUParticles2D.get_speed_scale,\n        Godot.Core.CPUParticles2D.get_spread,\n        Godot.Core.CPUParticles2D.get_texture,\n        Godot.Core.CPUParticles2D.get_use_local_coordinates,\n        Godot.Core.CPUParticles2D.is_emitting,\n        Godot.Core.CPUParticles2D.restart,\n        Godot.Core.CPUParticles2D.set_amount,\n        Godot.Core.CPUParticles2D.set_color,\n        Godot.Core.CPUParticles2D.set_color_ramp,\n        Godot.Core.CPUParticles2D.set_direction,\n        Godot.Core.CPUParticles2D.set_draw_order,\n        Godot.Core.CPUParticles2D.set_emission_colors,\n        Godot.Core.CPUParticles2D.set_emission_normals,\n        Godot.Core.CPUParticles2D.set_emission_points,\n        Godot.Core.CPUParticles2D.set_emission_rect_extents,\n        Godot.Core.CPUParticles2D.set_emission_shape,\n        Godot.Core.CPUParticles2D.set_emission_sphere_radius,\n        Godot.Core.CPUParticles2D.set_emitting,\n        Godot.Core.CPUParticles2D.set_explosiveness_ratio,\n        Godot.Core.CPUParticles2D.set_fixed_fps,\n        Godot.Core.CPUParticles2D.set_fractional_delta,\n        Godot.Core.CPUParticles2D.set_gravity,\n        Godot.Core.CPUParticles2D.set_lifetime,\n        Godot.Core.CPUParticles2D.set_lifetime_randomness,\n        Godot.Core.CPUParticles2D.set_normalmap,\n        Godot.Core.CPUParticles2D.set_one_shot,\n        Godot.Core.CPUParticles2D.set_param,\n        Godot.Core.CPUParticles2D.set_param_curve,\n        Godot.Core.CPUParticles2D.set_param_randomness,\n        Godot.Core.CPUParticles2D.set_particle_flag,\n        Godot.Core.CPUParticles2D.set_pre_process_time,\n        Godot.Core.CPUParticles2D.set_randomness_ratio,\n        Godot.Core.CPUParticles2D.set_speed_scale,\n        Godot.Core.CPUParticles2D.set_spread,\n        Godot.Core.CPUParticles2D.set_texture,\n        Godot.Core.CPUParticles2D.set_use_local_coordinates)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\n_FLAG_ALIGN_Y_TO_VELOCITY :: Int\n_FLAG_ALIGN_Y_TO_VELOCITY = 0\n\n_PARAM_RADIAL_ACCEL :: Int\n_PARAM_RADIAL_ACCEL = 4\n\n_FLAG_ROTATE_Y :: Int\n_FLAG_ROTATE_Y = 1\n\n_EMISSION_SHAPE_SPHERE :: Int\n_EMISSION_SHAPE_SPHERE = 1\n\n_FLAG_DISABLE_Z :: Int\n_FLAG_DISABLE_Z = 2\n\n_PARAM_ANGULAR_VELOCITY :: Int\n_PARAM_ANGULAR_VELOCITY = 1\n\n_EMISSION_SHAPE_MAX :: Int\n_EMISSION_SHAPE_MAX = 5\n\n_PARAM_TANGENTIAL_ACCEL :: Int\n_PARAM_TANGENTIAL_ACCEL = 5\n\n_PARAM_ANIM_SPEED :: Int\n_PARAM_ANIM_SPEED = 10\n\n_EMISSION_SHAPE_POINTS :: Int\n_EMISSION_SHAPE_POINTS = 3\n\n_PARAM_MAX :: Int\n_PARAM_MAX = 12\n\n_PARAM_INITIAL_LINEAR_VELOCITY :: Int\n_PARAM_INITIAL_LINEAR_VELOCITY = 0\n\n_FLAG_MAX :: Int\n_FLAG_MAX = 3\n\n_EMISSION_SHAPE_RECTANGLE :: Int\n_EMISSION_SHAPE_RECTANGLE = 2\n\n_PARAM_LINEAR_ACCEL :: Int\n_PARAM_LINEAR_ACCEL = 3\n\n_EMISSION_SHAPE_DIRECTED_POINTS :: Int\n_EMISSION_SHAPE_DIRECTED_POINTS = 4\n\n_EMISSION_SHAPE_POINT :: Int\n_EMISSION_SHAPE_POINT = 0\n\n_PARAM_ORBIT_VELOCITY :: Int\n_PARAM_ORBIT_VELOCITY = 2\n\n_DRAW_ORDER_LIFETIME :: Int\n_DRAW_ORDER_LIFETIME = 1\n\n_PARAM_SCALE :: Int\n_PARAM_SCALE = 8\n\n_DRAW_ORDER_INDEX :: Int\n_DRAW_ORDER_INDEX = 0\n\n_PARAM_DAMPING :: Int\n_PARAM_DAMPING = 6\n\n_PARAM_HUE_VARIATION :: Int\n_PARAM_HUE_VARIATION = 9\n\n_PARAM_ANIM_OFFSET :: Int\n_PARAM_ANIM_OFFSET = 11\n\n_PARAM_ANGLE :: Int\n_PARAM_ANGLE = 7\n\ninstance NodeProperty CPUParticles2D \"amount\" Int 'False where\n        nodeProperty = (get_amount, wrapDroppingSetter set_amount, Nothing)\n\ninstance NodeProperty CPUParticles2D \"angle\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_param, wrapIndexedSetter 7 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"angle_curve\" Curve 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_param_curve,\n             wrapIndexedSetter 7 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles2D \"angle_random\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_param_randomness,\n             wrapIndexedSetter 7 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles2D \"angular_velocity\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_param, wrapIndexedSetter 1 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"angular_velocity_curve\" Curve\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_param_curve,\n             wrapIndexedSetter 1 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles2D \"angular_velocity_random\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_param_randomness,\n             wrapIndexedSetter 1 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles2D \"anim_offset\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_param, wrapIndexedSetter 11 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"anim_offset_curve\" Curve\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_param_curve,\n             wrapIndexedSetter 11 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles2D \"anim_offset_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_param_randomness,\n             wrapIndexedSetter 11 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles2D \"anim_speed\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_param, wrapIndexedSetter 10 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"anim_speed_curve\" Curve\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_param_curve,\n             wrapIndexedSetter 10 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles2D \"anim_speed_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_param_randomness,\n             wrapIndexedSetter 10 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles2D \"color\" Color 'False where\n        nodeProperty = (get_color, wrapDroppingSetter set_color, Nothing)\n\ninstance NodeProperty CPUParticles2D \"color_ramp\" Gradient 'False\n         where\n        nodeProperty\n          = (get_color_ramp, wrapDroppingSetter set_color_ramp, Nothing)\n\ninstance NodeProperty CPUParticles2D \"damping\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_param, wrapIndexedSetter 6 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"damping_curve\" Curve 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_param_curve,\n             wrapIndexedSetter 6 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles2D \"damping_random\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_param_randomness,\n             wrapIndexedSetter 6 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles2D \"direction\" Vector2 'False\n         where\n        nodeProperty\n          = (get_direction, wrapDroppingSetter set_direction, Nothing)\n\ninstance NodeProperty CPUParticles2D \"draw_order\" Int 'False where\n        nodeProperty\n          = (get_draw_order, wrapDroppingSetter set_draw_order, Nothing)\n\ninstance NodeProperty CPUParticles2D \"emission_colors\"\n           PoolColorArray\n           'False\n         where\n        nodeProperty\n          = (get_emission_colors, wrapDroppingSetter set_emission_colors,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"emission_normals\"\n           PoolVector2Array\n           'False\n         where\n        nodeProperty\n          = (get_emission_normals, wrapDroppingSetter set_emission_normals,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"emission_points\"\n           PoolVector2Array\n           'False\n         where\n        nodeProperty\n          = (get_emission_points, wrapDroppingSetter set_emission_points,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"emission_rect_extents\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (get_emission_rect_extents,\n             wrapDroppingSetter set_emission_rect_extents, Nothing)\n\ninstance NodeProperty CPUParticles2D \"emission_shape\" Int 'False\n         where\n        nodeProperty\n          = (get_emission_shape, wrapDroppingSetter set_emission_shape,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"emission_sphere_radius\" Float\n           'False\n         where\n        nodeProperty\n          = (get_emission_sphere_radius,\n             wrapDroppingSetter set_emission_sphere_radius, Nothing)\n\ninstance NodeProperty CPUParticles2D \"emitting\" Bool 'False where\n        nodeProperty\n          = (is_emitting, wrapDroppingSetter set_emitting, Nothing)\n\ninstance NodeProperty CPUParticles2D \"explosiveness\" Float 'False\n         where\n        nodeProperty\n          = (get_explosiveness_ratio,\n             wrapDroppingSetter set_explosiveness_ratio, Nothing)\n\ninstance NodeProperty CPUParticles2D \"fixed_fps\" Int 'False where\n        nodeProperty\n          = (get_fixed_fps, wrapDroppingSetter set_fixed_fps, Nothing)\n\ninstance NodeProperty CPUParticles2D \"flag_align_y\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_particle_flag,\n             wrapIndexedSetter 0 set_particle_flag, Nothing)\n\ninstance NodeProperty CPUParticles2D \"fract_delta\" Bool 'False\n         where\n        nodeProperty\n          = (get_fractional_delta, wrapDroppingSetter set_fractional_delta,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"gravity\" Vector2 'False where\n        nodeProperty\n          = (get_gravity, wrapDroppingSetter set_gravity, Nothing)\n\ninstance NodeProperty CPUParticles2D \"hue_variation\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_param, wrapIndexedSetter 9 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"hue_variation_curve\" Curve\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_param_curve,\n             wrapIndexedSetter 9 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles2D \"hue_variation_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_param_randomness,\n             wrapIndexedSetter 9 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles2D \"initial_velocity\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_param, wrapIndexedSetter 0 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"initial_velocity_random\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_param_randomness,\n             wrapIndexedSetter 0 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles2D \"lifetime\" Float 'False where\n        nodeProperty\n          = (get_lifetime, wrapDroppingSetter set_lifetime, Nothing)\n\ninstance NodeProperty CPUParticles2D \"lifetime_randomness\" Float\n           'False\n         where\n        nodeProperty\n          = (get_lifetime_randomness,\n             wrapDroppingSetter set_lifetime_randomness, Nothing)\n\ninstance NodeProperty CPUParticles2D \"linear_accel\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_param, wrapIndexedSetter 3 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"linear_accel_curve\" Curve\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_param_curve,\n             wrapIndexedSetter 3 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles2D \"linear_accel_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_param_randomness,\n             wrapIndexedSetter 3 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles2D \"local_coords\" Bool 'False\n         where\n        nodeProperty\n          = (get_use_local_coordinates,\n             wrapDroppingSetter set_use_local_coordinates, Nothing)\n\ninstance NodeProperty CPUParticles2D \"normalmap\" Texture 'False\n         where\n        nodeProperty\n          = (get_normalmap, wrapDroppingSetter set_normalmap, Nothing)\n\ninstance NodeProperty CPUParticles2D \"one_shot\" Bool 'False where\n        nodeProperty\n          = (get_one_shot, wrapDroppingSetter set_one_shot, Nothing)\n\ninstance NodeProperty CPUParticles2D \"orbit_velocity\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_param, wrapIndexedSetter 2 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"orbit_velocity_curve\" Curve\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_param_curve,\n             wrapIndexedSetter 2 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles2D \"orbit_velocity_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_param_randomness,\n             wrapIndexedSetter 2 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles2D \"preprocess\" Float 'False\n         where\n        nodeProperty\n          = (get_pre_process_time, wrapDroppingSetter set_pre_process_time,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"radial_accel\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_param, wrapIndexedSetter 4 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"radial_accel_curve\" Curve\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_param_curve,\n             wrapIndexedSetter 4 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles2D \"radial_accel_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_param_randomness,\n             wrapIndexedSetter 4 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles2D \"randomness\" Float 'False\n         where\n        nodeProperty\n          = (get_randomness_ratio, wrapDroppingSetter set_randomness_ratio,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"scale_amount\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_param, wrapIndexedSetter 8 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"scale_amount_curve\" Curve\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_param_curve,\n             wrapIndexedSetter 8 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles2D \"scale_amount_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_param_randomness,\n             wrapIndexedSetter 8 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles2D \"speed_scale\" Float 'False\n         where\n        nodeProperty\n          = (get_speed_scale, wrapDroppingSetter set_speed_scale, Nothing)\n\ninstance NodeProperty CPUParticles2D \"spread\" Float 'False where\n        nodeProperty = (get_spread, wrapDroppingSetter set_spread, Nothing)\n\ninstance NodeProperty CPUParticles2D \"tangential_accel\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_param, wrapIndexedSetter 5 set_param,\n             Nothing)\n\ninstance NodeProperty CPUParticles2D \"tangential_accel_curve\" Curve\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_param_curve,\n             wrapIndexedSetter 5 set_param_curve, Nothing)\n\ninstance NodeProperty CPUParticles2D \"tangential_accel_random\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_param_randomness,\n             wrapIndexedSetter 5 set_param_randomness, Nothing)\n\ninstance NodeProperty CPUParticles2D \"texture\" Texture 'False where\n        nodeProperty\n          = (get_texture, wrapDroppingSetter set_texture, Nothing)\n\n{-# NOINLINE bindCPUParticles2D__update_render_thread #-}\n\nbindCPUParticles2D__update_render_thread :: MethodBind\nbindCPUParticles2D__update_render_thread\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"_update_render_thread\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_render_thread ::\n                        (CPUParticles2D :< cls, Object :< cls) => cls -> IO ()\n_update_render_thread cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D__update_render_thread\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"_update_render_thread\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D._update_render_thread\n\n{-# NOINLINE bindCPUParticles2D_convert_from_particles #-}\n\n-- | Sets this node's properties to match a given @Particles2D@ node with an assigned @ParticlesMaterial@.\nbindCPUParticles2D_convert_from_particles :: MethodBind\nbindCPUParticles2D_convert_from_particles\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"convert_from_particles\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets this node's properties to match a given @Particles2D@ node with an assigned @ParticlesMaterial@.\nconvert_from_particles ::\n                         (CPUParticles2D :< cls, Object :< cls) => cls -> Node -> IO ()\nconvert_from_particles cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_convert_from_particles\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"convert_from_particles\" '[Node]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.convert_from_particles\n\n{-# NOINLINE bindCPUParticles2D_get_amount #-}\n\n-- | Number of particles emitted in one emission cycle.\nbindCPUParticles2D_get_amount :: MethodBind\nbindCPUParticles2D_get_amount\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of particles emitted in one emission cycle.\nget_amount ::\n             (CPUParticles2D :< cls, Object :< cls) => cls -> IO Int\nget_amount cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_amount (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_amount\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CPUParticles2D.get_amount\n\n{-# NOINLINE bindCPUParticles2D_get_color #-}\n\n-- | Each particle's initial color. If @texture@ is defined, it will be multiplied by this color.\nbindCPUParticles2D_get_color :: MethodBind\nbindCPUParticles2D_get_color\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Each particle's initial color. If @texture@ is defined, it will be multiplied by this color.\nget_color ::\n            (CPUParticles2D :< cls, Object :< cls) => cls -> IO Color\nget_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_color\" '[] (IO Color) where\n        nodeMethod = Godot.Core.CPUParticles2D.get_color\n\n{-# NOINLINE bindCPUParticles2D_get_color_ramp #-}\n\n-- | Each particle's color will vary along this @Gradient@.\nbindCPUParticles2D_get_color_ramp :: MethodBind\nbindCPUParticles2D_get_color_ramp\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_color_ramp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Each particle's color will vary along this @Gradient@.\nget_color_ramp ::\n                 (CPUParticles2D :< cls, Object :< cls) => cls -> IO Gradient\nget_color_ramp cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_color_ramp\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_color_ramp\" '[]\n           (IO Gradient)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_color_ramp\n\n{-# NOINLINE bindCPUParticles2D_get_direction #-}\n\n-- | Unit vector specifying the particles' emission direction.\nbindCPUParticles2D_get_direction :: MethodBind\nbindCPUParticles2D_get_direction\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_direction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Unit vector specifying the particles' emission direction.\nget_direction ::\n                (CPUParticles2D :< cls, Object :< cls) => cls -> IO Vector2\nget_direction cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_direction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_direction\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_direction\n\n{-# NOINLINE bindCPUParticles2D_get_draw_order #-}\n\n-- | Particle draw order. Uses @enum DrawOrder@ values.\nbindCPUParticles2D_get_draw_order :: MethodBind\nbindCPUParticles2D_get_draw_order\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_draw_order\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle draw order. Uses @enum DrawOrder@ values.\nget_draw_order ::\n                 (CPUParticles2D :< cls, Object :< cls) => cls -> IO Int\nget_draw_order cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_draw_order\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_draw_order\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_draw_order\n\n{-# NOINLINE bindCPUParticles2D_get_emission_colors #-}\n\n-- | Sets the @Color@s to modulate particles by when using @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nbindCPUParticles2D_get_emission_colors :: MethodBind\nbindCPUParticles2D_get_emission_colors\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_colors\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Color@s to modulate particles by when using @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nget_emission_colors ::\n                      (CPUParticles2D :< cls, Object :< cls) => cls -> IO PoolColorArray\nget_emission_colors cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_emission_colors\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_emission_colors\" '[]\n           (IO PoolColorArray)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_emission_colors\n\n{-# NOINLINE bindCPUParticles2D_get_emission_normals #-}\n\n-- | Sets the direction the particles will be emitted in when using @EMISSION_SHAPE_DIRECTED_POINTS@.\nbindCPUParticles2D_get_emission_normals :: MethodBind\nbindCPUParticles2D_get_emission_normals\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_normals\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the direction the particles will be emitted in when using @EMISSION_SHAPE_DIRECTED_POINTS@.\nget_emission_normals ::\n                       (CPUParticles2D :< cls, Object :< cls) =>\n                       cls -> IO PoolVector2Array\nget_emission_normals cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_emission_normals\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_emission_normals\" '[]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_emission_normals\n\n{-# NOINLINE bindCPUParticles2D_get_emission_points #-}\n\n-- | Sets the initial positions to spawn particles when using @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nbindCPUParticles2D_get_emission_points :: MethodBind\nbindCPUParticles2D_get_emission_points\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the initial positions to spawn particles when using @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nget_emission_points ::\n                      (CPUParticles2D :< cls, Object :< cls) =>\n                      cls -> IO PoolVector2Array\nget_emission_points cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_emission_points\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_emission_points\" '[]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_emission_points\n\n{-# NOINLINE bindCPUParticles2D_get_emission_rect_extents #-}\n\n-- | The rectangle's extents if @emission_shape@ is set to @EMISSION_SHAPE_RECTANGLE@.\nbindCPUParticles2D_get_emission_rect_extents :: MethodBind\nbindCPUParticles2D_get_emission_rect_extents\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_rect_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rectangle's extents if @emission_shape@ is set to @EMISSION_SHAPE_RECTANGLE@.\nget_emission_rect_extents ::\n                            (CPUParticles2D :< cls, Object :< cls) => cls -> IO Vector2\nget_emission_rect_extents cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_emission_rect_extents\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_emission_rect_extents\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_emission_rect_extents\n\n{-# NOINLINE bindCPUParticles2D_get_emission_shape #-}\n\n-- | Particles will be emitted inside this region. See @enum EmissionShape@ for possible values.\nbindCPUParticles2D_get_emission_shape :: MethodBind\nbindCPUParticles2D_get_emission_shape\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particles will be emitted inside this region. See @enum EmissionShape@ for possible values.\nget_emission_shape ::\n                     (CPUParticles2D :< cls, Object :< cls) => cls -> IO Int\nget_emission_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_emission_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_emission_shape\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_emission_shape\n\n{-# NOINLINE bindCPUParticles2D_get_emission_sphere_radius #-}\n\n-- | The sphere's radius if @emission_shape@ is set to @EMISSION_SHAPE_SPHERE@.\nbindCPUParticles2D_get_emission_sphere_radius :: MethodBind\nbindCPUParticles2D_get_emission_sphere_radius\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_sphere_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The sphere's radius if @emission_shape@ is set to @EMISSION_SHAPE_SPHERE@.\nget_emission_sphere_radius ::\n                             (CPUParticles2D :< cls, Object :< cls) => cls -> IO Float\nget_emission_sphere_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCPUParticles2D_get_emission_sphere_radius\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_emission_sphere_radius\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_emission_sphere_radius\n\n{-# NOINLINE bindCPUParticles2D_get_explosiveness_ratio #-}\n\n-- | How rapidly particles in an emission cycle are emitted. If greater than @0@, there will be a gap in emissions before the next cycle begins.\nbindCPUParticles2D_get_explosiveness_ratio :: MethodBind\nbindCPUParticles2D_get_explosiveness_ratio\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_explosiveness_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How rapidly particles in an emission cycle are emitted. If greater than @0@, there will be a gap in emissions before the next cycle begins.\nget_explosiveness_ratio ::\n                          (CPUParticles2D :< cls, Object :< cls) => cls -> IO Float\nget_explosiveness_ratio cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_explosiveness_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_explosiveness_ratio\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_explosiveness_ratio\n\n{-# NOINLINE bindCPUParticles2D_get_fixed_fps #-}\n\n-- | The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.\nbindCPUParticles2D_get_fixed_fps :: MethodBind\nbindCPUParticles2D_get_fixed_fps\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_fixed_fps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.\nget_fixed_fps ::\n                (CPUParticles2D :< cls, Object :< cls) => cls -> IO Int\nget_fixed_fps cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_fixed_fps\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_fixed_fps\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_fixed_fps\n\n{-# NOINLINE bindCPUParticles2D_get_fractional_delta #-}\n\n-- | If @true@, results in fractional delta calculation which has a smoother particles display effect.\nbindCPUParticles2D_get_fractional_delta :: MethodBind\nbindCPUParticles2D_get_fractional_delta\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_fractional_delta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, results in fractional delta calculation which has a smoother particles display effect.\nget_fractional_delta ::\n                       (CPUParticles2D :< cls, Object :< cls) => cls -> IO Bool\nget_fractional_delta cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_fractional_delta\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_fractional_delta\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_fractional_delta\n\n{-# NOINLINE bindCPUParticles2D_get_gravity #-}\n\n-- | Gravity applied to every particle.\nbindCPUParticles2D_get_gravity :: MethodBind\nbindCPUParticles2D_get_gravity\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_gravity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gravity applied to every particle.\nget_gravity ::\n              (CPUParticles2D :< cls, Object :< cls) => cls -> IO Vector2\nget_gravity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_gravity (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_gravity\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_gravity\n\n{-# NOINLINE bindCPUParticles2D_get_lifetime #-}\n\n-- | Amount of time each particle will exist.\nbindCPUParticles2D_get_lifetime :: MethodBind\nbindCPUParticles2D_get_lifetime\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_lifetime\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of time each particle will exist.\nget_lifetime ::\n               (CPUParticles2D :< cls, Object :< cls) => cls -> IO Float\nget_lifetime cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_lifetime (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_lifetime\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_lifetime\n\n{-# NOINLINE bindCPUParticles2D_get_lifetime_randomness #-}\n\n-- | Particle lifetime randomness ratio.\nbindCPUParticles2D_get_lifetime_randomness :: MethodBind\nbindCPUParticles2D_get_lifetime_randomness\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_lifetime_randomness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle lifetime randomness ratio.\nget_lifetime_randomness ::\n                          (CPUParticles2D :< cls, Object :< cls) => cls -> IO Float\nget_lifetime_randomness cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_lifetime_randomness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_lifetime_randomness\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_lifetime_randomness\n\n{-# NOINLINE bindCPUParticles2D_get_normalmap #-}\n\n-- | Normal map to be used for the @texture@ property.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nbindCPUParticles2D_get_normalmap :: MethodBind\nbindCPUParticles2D_get_normalmap\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_normalmap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Normal map to be used for the @texture@ property.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nget_normalmap ::\n                (CPUParticles2D :< cls, Object :< cls) => cls -> IO Texture\nget_normalmap cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_normalmap\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_normalmap\" '[] (IO Texture)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_normalmap\n\n{-# NOINLINE bindCPUParticles2D_get_one_shot #-}\n\n-- | If @true@, only one emission cycle occurs. If set @true@ during a cycle, emission will stop at the cycle's end.\nbindCPUParticles2D_get_one_shot :: MethodBind\nbindCPUParticles2D_get_one_shot\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_one_shot\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, only one emission cycle occurs. If set @true@ during a cycle, emission will stop at the cycle's end.\nget_one_shot ::\n               (CPUParticles2D :< cls, Object :< cls) => cls -> IO Bool\nget_one_shot cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_one_shot (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_one_shot\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_one_shot\n\n{-# NOINLINE bindCPUParticles2D_get_param #-}\n\n-- | Returns the base value of the parameter specified by @enum Parameter@.\nbindCPUParticles2D_get_param :: MethodBind\nbindCPUParticles2D_get_param\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the base value of the parameter specified by @enum Parameter@.\nget_param ::\n            (CPUParticles2D :< cls, Object :< cls) => cls -> Int -> IO Float\nget_param cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_param (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_param\" '[Int] (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_param\n\n{-# NOINLINE bindCPUParticles2D_get_param_curve #-}\n\n-- | Returns the @Curve@ of the parameter specified by @enum Parameter@.\nbindCPUParticles2D_get_param_curve :: MethodBind\nbindCPUParticles2D_get_param_curve\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_param_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Curve@ of the parameter specified by @enum Parameter@.\nget_param_curve ::\n                  (CPUParticles2D :< cls, Object :< cls) => cls -> Int -> IO Curve\nget_param_curve cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_param_curve\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_param_curve\" '[Int]\n           (IO Curve)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_param_curve\n\n{-# NOINLINE bindCPUParticles2D_get_param_randomness #-}\n\n-- | Returns the randomness factor of the parameter specified by @enum Parameter@.\nbindCPUParticles2D_get_param_randomness :: MethodBind\nbindCPUParticles2D_get_param_randomness\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_param_randomness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the randomness factor of the parameter specified by @enum Parameter@.\nget_param_randomness ::\n                       (CPUParticles2D :< cls, Object :< cls) => cls -> Int -> IO Float\nget_param_randomness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_param_randomness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_param_randomness\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_param_randomness\n\n{-# NOINLINE bindCPUParticles2D_get_particle_flag #-}\n\n-- | Returns the enabled state of the given flag (see @enum Flags@ for options).\nbindCPUParticles2D_get_particle_flag :: MethodBind\nbindCPUParticles2D_get_particle_flag\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_particle_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the enabled state of the given flag (see @enum Flags@ for options).\nget_particle_flag ::\n                    (CPUParticles2D :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_particle_flag cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_particle_flag\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_particle_flag\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_particle_flag\n\n{-# NOINLINE bindCPUParticles2D_get_pre_process_time #-}\n\n-- | Particle system starts as if it had already run for this many seconds.\nbindCPUParticles2D_get_pre_process_time :: MethodBind\nbindCPUParticles2D_get_pre_process_time\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_pre_process_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle system starts as if it had already run for this many seconds.\nget_pre_process_time ::\n                       (CPUParticles2D :< cls, Object :< cls) => cls -> IO Float\nget_pre_process_time cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_pre_process_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_pre_process_time\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_pre_process_time\n\n{-# NOINLINE bindCPUParticles2D_get_randomness_ratio #-}\n\n-- | Emission lifetime randomness ratio.\nbindCPUParticles2D_get_randomness_ratio :: MethodBind\nbindCPUParticles2D_get_randomness_ratio\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_randomness_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Emission lifetime randomness ratio.\nget_randomness_ratio ::\n                       (CPUParticles2D :< cls, Object :< cls) => cls -> IO Float\nget_randomness_ratio cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_randomness_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_randomness_ratio\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_randomness_ratio\n\n{-# NOINLINE bindCPUParticles2D_get_speed_scale #-}\n\n-- | Particle system's running speed scaling ratio. A value of @0@ can be used to pause the particles.\nbindCPUParticles2D_get_speed_scale :: MethodBind\nbindCPUParticles2D_get_speed_scale\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_speed_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle system's running speed scaling ratio. A value of @0@ can be used to pause the particles.\nget_speed_scale ::\n                  (CPUParticles2D :< cls, Object :< cls) => cls -> IO Float\nget_speed_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_speed_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_speed_scale\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_speed_scale\n\n{-# NOINLINE bindCPUParticles2D_get_spread #-}\n\n-- | Each particle's initial direction range from @+spread@ to @-spread@ degrees.\nbindCPUParticles2D_get_spread :: MethodBind\nbindCPUParticles2D_get_spread\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_spread\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Each particle's initial direction range from @+spread@ to @-spread@ degrees.\nget_spread ::\n             (CPUParticles2D :< cls, Object :< cls) => cls -> IO Float\nget_spread cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_spread (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_spread\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_spread\n\n{-# NOINLINE bindCPUParticles2D_get_texture #-}\n\n-- | Particle texture. If @null@, particles will be squares.\nbindCPUParticles2D_get_texture :: MethodBind\nbindCPUParticles2D_get_texture\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle texture. If @null@, particles will be squares.\nget_texture ::\n              (CPUParticles2D :< cls, Object :< cls) => cls -> IO Texture\nget_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_texture\" '[] (IO Texture)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_texture\n\n{-# NOINLINE bindCPUParticles2D_get_use_local_coordinates #-}\n\n-- | If @true@, particles use the parent node's coordinate space. If @false@, they use global coordinates.\nbindCPUParticles2D_get_use_local_coordinates :: MethodBind\nbindCPUParticles2D_get_use_local_coordinates\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_use_local_coordinates\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles use the parent node's coordinate space. If @false@, they use global coordinates.\nget_use_local_coordinates ::\n                            (CPUParticles2D :< cls, Object :< cls) => cls -> IO Bool\nget_use_local_coordinates cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_get_use_local_coordinates\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"get_use_local_coordinates\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.get_use_local_coordinates\n\n{-# NOINLINE bindCPUParticles2D_is_emitting #-}\n\n-- | If @true@, particles are being emitted.\nbindCPUParticles2D_is_emitting :: MethodBind\nbindCPUParticles2D_is_emitting\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_emitting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles are being emitted.\nis_emitting ::\n              (CPUParticles2D :< cls, Object :< cls) => cls -> IO Bool\nis_emitting cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_is_emitting (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"is_emitting\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.is_emitting\n\n{-# NOINLINE bindCPUParticles2D_restart #-}\n\n-- | Restarts the particle emitter.\nbindCPUParticles2D_restart :: MethodBind\nbindCPUParticles2D_restart\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"restart\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Restarts the particle emitter.\nrestart :: (CPUParticles2D :< cls, Object :< cls) => cls -> IO ()\nrestart cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_restart (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"restart\" '[] (IO ()) where\n        nodeMethod = Godot.Core.CPUParticles2D.restart\n\n{-# NOINLINE bindCPUParticles2D_set_amount #-}\n\n-- | Number of particles emitted in one emission cycle.\nbindCPUParticles2D_set_amount :: MethodBind\nbindCPUParticles2D_set_amount\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of particles emitted in one emission cycle.\nset_amount ::\n             (CPUParticles2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_amount cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_amount (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_amount\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_amount\n\n{-# NOINLINE bindCPUParticles2D_set_color #-}\n\n-- | Each particle's initial color. If @texture@ is defined, it will be multiplied by this color.\nbindCPUParticles2D_set_color :: MethodBind\nbindCPUParticles2D_set_color\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Each particle's initial color. If @texture@ is defined, it will be multiplied by this color.\nset_color ::\n            (CPUParticles2D :< cls, Object :< cls) => cls -> Color -> IO ()\nset_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_color\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_color\n\n{-# NOINLINE bindCPUParticles2D_set_color_ramp #-}\n\n-- | Each particle's color will vary along this @Gradient@.\nbindCPUParticles2D_set_color_ramp :: MethodBind\nbindCPUParticles2D_set_color_ramp\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_color_ramp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Each particle's color will vary along this @Gradient@.\nset_color_ramp ::\n                 (CPUParticles2D :< cls, Object :< cls) => cls -> Gradient -> IO ()\nset_color_ramp cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_color_ramp\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_color_ramp\" '[Gradient]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_color_ramp\n\n{-# NOINLINE bindCPUParticles2D_set_direction #-}\n\n-- | Unit vector specifying the particles' emission direction.\nbindCPUParticles2D_set_direction :: MethodBind\nbindCPUParticles2D_set_direction\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_direction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Unit vector specifying the particles' emission direction.\nset_direction ::\n                (CPUParticles2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_direction cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_direction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_direction\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_direction\n\n{-# NOINLINE bindCPUParticles2D_set_draw_order #-}\n\n-- | Particle draw order. Uses @enum DrawOrder@ values.\nbindCPUParticles2D_set_draw_order :: MethodBind\nbindCPUParticles2D_set_draw_order\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_draw_order\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle draw order. Uses @enum DrawOrder@ values.\nset_draw_order ::\n                 (CPUParticles2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_draw_order cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_draw_order\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_draw_order\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_draw_order\n\n{-# NOINLINE bindCPUParticles2D_set_emission_colors #-}\n\n-- | Sets the @Color@s to modulate particles by when using @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nbindCPUParticles2D_set_emission_colors :: MethodBind\nbindCPUParticles2D_set_emission_colors\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_colors\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Color@s to modulate particles by when using @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nset_emission_colors ::\n                      (CPUParticles2D :< cls, Object :< cls) =>\n                      cls -> PoolColorArray -> IO ()\nset_emission_colors cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_emission_colors\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_emission_colors\"\n           '[PoolColorArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_emission_colors\n\n{-# NOINLINE bindCPUParticles2D_set_emission_normals #-}\n\n-- | Sets the direction the particles will be emitted in when using @EMISSION_SHAPE_DIRECTED_POINTS@.\nbindCPUParticles2D_set_emission_normals :: MethodBind\nbindCPUParticles2D_set_emission_normals\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_normals\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the direction the particles will be emitted in when using @EMISSION_SHAPE_DIRECTED_POINTS@.\nset_emission_normals ::\n                       (CPUParticles2D :< cls, Object :< cls) =>\n                       cls -> PoolVector2Array -> IO ()\nset_emission_normals cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_emission_normals\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_emission_normals\"\n           '[PoolVector2Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_emission_normals\n\n{-# NOINLINE bindCPUParticles2D_set_emission_points #-}\n\n-- | Sets the initial positions to spawn particles when using @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nbindCPUParticles2D_set_emission_points :: MethodBind\nbindCPUParticles2D_set_emission_points\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the initial positions to spawn particles when using @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nset_emission_points ::\n                      (CPUParticles2D :< cls, Object :< cls) =>\n                      cls -> PoolVector2Array -> IO ()\nset_emission_points cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_emission_points\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_emission_points\"\n           '[PoolVector2Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_emission_points\n\n{-# NOINLINE bindCPUParticles2D_set_emission_rect_extents #-}\n\n-- | The rectangle's extents if @emission_shape@ is set to @EMISSION_SHAPE_RECTANGLE@.\nbindCPUParticles2D_set_emission_rect_extents :: MethodBind\nbindCPUParticles2D_set_emission_rect_extents\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_rect_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rectangle's extents if @emission_shape@ is set to @EMISSION_SHAPE_RECTANGLE@.\nset_emission_rect_extents ::\n                            (CPUParticles2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_emission_rect_extents cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_emission_rect_extents\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_emission_rect_extents\"\n           '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_emission_rect_extents\n\n{-# NOINLINE bindCPUParticles2D_set_emission_shape #-}\n\n-- | Particles will be emitted inside this region. See @enum EmissionShape@ for possible values.\nbindCPUParticles2D_set_emission_shape :: MethodBind\nbindCPUParticles2D_set_emission_shape\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particles will be emitted inside this region. See @enum EmissionShape@ for possible values.\nset_emission_shape ::\n                     (CPUParticles2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_emission_shape cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_emission_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_emission_shape\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_emission_shape\n\n{-# NOINLINE bindCPUParticles2D_set_emission_sphere_radius #-}\n\n-- | The sphere's radius if @emission_shape@ is set to @EMISSION_SHAPE_SPHERE@.\nbindCPUParticles2D_set_emission_sphere_radius :: MethodBind\nbindCPUParticles2D_set_emission_sphere_radius\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_sphere_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The sphere's radius if @emission_shape@ is set to @EMISSION_SHAPE_SPHERE@.\nset_emission_sphere_radius ::\n                             (CPUParticles2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_emission_sphere_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCPUParticles2D_set_emission_sphere_radius\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_emission_sphere_radius\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_emission_sphere_radius\n\n{-# NOINLINE bindCPUParticles2D_set_emitting #-}\n\n-- | If @true@, particles are being emitted.\nbindCPUParticles2D_set_emitting :: MethodBind\nbindCPUParticles2D_set_emitting\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_emitting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles are being emitted.\nset_emitting ::\n               (CPUParticles2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_emitting cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_emitting (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_emitting\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_emitting\n\n{-# NOINLINE bindCPUParticles2D_set_explosiveness_ratio #-}\n\n-- | How rapidly particles in an emission cycle are emitted. If greater than @0@, there will be a gap in emissions before the next cycle begins.\nbindCPUParticles2D_set_explosiveness_ratio :: MethodBind\nbindCPUParticles2D_set_explosiveness_ratio\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_explosiveness_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How rapidly particles in an emission cycle are emitted. If greater than @0@, there will be a gap in emissions before the next cycle begins.\nset_explosiveness_ratio ::\n                          (CPUParticles2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_explosiveness_ratio cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_explosiveness_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_explosiveness_ratio\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_explosiveness_ratio\n\n{-# NOINLINE bindCPUParticles2D_set_fixed_fps #-}\n\n-- | The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.\nbindCPUParticles2D_set_fixed_fps :: MethodBind\nbindCPUParticles2D_set_fixed_fps\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_fixed_fps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.\nset_fixed_fps ::\n                (CPUParticles2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_fixed_fps cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_fixed_fps\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_fixed_fps\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_fixed_fps\n\n{-# NOINLINE bindCPUParticles2D_set_fractional_delta #-}\n\n-- | If @true@, results in fractional delta calculation which has a smoother particles display effect.\nbindCPUParticles2D_set_fractional_delta :: MethodBind\nbindCPUParticles2D_set_fractional_delta\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_fractional_delta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, results in fractional delta calculation which has a smoother particles display effect.\nset_fractional_delta ::\n                       (CPUParticles2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_fractional_delta cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_fractional_delta\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_fractional_delta\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_fractional_delta\n\n{-# NOINLINE bindCPUParticles2D_set_gravity #-}\n\n-- | Gravity applied to every particle.\nbindCPUParticles2D_set_gravity :: MethodBind\nbindCPUParticles2D_set_gravity\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_gravity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gravity applied to every particle.\nset_gravity ::\n              (CPUParticles2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_gravity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_gravity (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_gravity\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_gravity\n\n{-# NOINLINE bindCPUParticles2D_set_lifetime #-}\n\n-- | Amount of time each particle will exist.\nbindCPUParticles2D_set_lifetime :: MethodBind\nbindCPUParticles2D_set_lifetime\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_lifetime\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of time each particle will exist.\nset_lifetime ::\n               (CPUParticles2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_lifetime cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_lifetime (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_lifetime\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_lifetime\n\n{-# NOINLINE bindCPUParticles2D_set_lifetime_randomness #-}\n\n-- | Particle lifetime randomness ratio.\nbindCPUParticles2D_set_lifetime_randomness :: MethodBind\nbindCPUParticles2D_set_lifetime_randomness\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_lifetime_randomness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle lifetime randomness ratio.\nset_lifetime_randomness ::\n                          (CPUParticles2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_lifetime_randomness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_lifetime_randomness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_lifetime_randomness\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_lifetime_randomness\n\n{-# NOINLINE bindCPUParticles2D_set_normalmap #-}\n\n-- | Normal map to be used for the @texture@ property.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nbindCPUParticles2D_set_normalmap :: MethodBind\nbindCPUParticles2D_set_normalmap\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_normalmap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Normal map to be used for the @texture@ property.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nset_normalmap ::\n                (CPUParticles2D :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_normalmap cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_normalmap\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_normalmap\" '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_normalmap\n\n{-# NOINLINE bindCPUParticles2D_set_one_shot #-}\n\n-- | If @true@, only one emission cycle occurs. If set @true@ during a cycle, emission will stop at the cycle's end.\nbindCPUParticles2D_set_one_shot :: MethodBind\nbindCPUParticles2D_set_one_shot\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_one_shot\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, only one emission cycle occurs. If set @true@ during a cycle, emission will stop at the cycle's end.\nset_one_shot ::\n               (CPUParticles2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_one_shot cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_one_shot (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_one_shot\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_one_shot\n\n{-# NOINLINE bindCPUParticles2D_set_param #-}\n\n-- | Sets the base value of the parameter specified by @enum Parameter@.\nbindCPUParticles2D_set_param :: MethodBind\nbindCPUParticles2D_set_param\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the base value of the parameter specified by @enum Parameter@.\nset_param ::\n            (CPUParticles2D :< cls, Object :< cls) =>\n            cls -> Int -> Float -> IO ()\nset_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_param (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_param\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_param\n\n{-# NOINLINE bindCPUParticles2D_set_param_curve #-}\n\n-- | Sets the @Curve@ of the parameter specified by @enum Parameter@.\nbindCPUParticles2D_set_param_curve :: MethodBind\nbindCPUParticles2D_set_param_curve\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_param_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Curve@ of the parameter specified by @enum Parameter@.\nset_param_curve ::\n                  (CPUParticles2D :< cls, Object :< cls) =>\n                  cls -> Int -> Curve -> IO ()\nset_param_curve cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_param_curve\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_param_curve\" '[Int, Curve]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_param_curve\n\n{-# NOINLINE bindCPUParticles2D_set_param_randomness #-}\n\n-- | Sets the randomness factor of the parameter specified by @enum Parameter@.\nbindCPUParticles2D_set_param_randomness :: MethodBind\nbindCPUParticles2D_set_param_randomness\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_param_randomness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the randomness factor of the parameter specified by @enum Parameter@.\nset_param_randomness ::\n                       (CPUParticles2D :< cls, Object :< cls) =>\n                       cls -> Int -> Float -> IO ()\nset_param_randomness cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_param_randomness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_param_randomness\"\n           '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_param_randomness\n\n{-# NOINLINE bindCPUParticles2D_set_particle_flag #-}\n\n-- | Enables or disables the given flag (see @enum Flags@ for options).\nbindCPUParticles2D_set_particle_flag :: MethodBind\nbindCPUParticles2D_set_particle_flag\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_particle_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables or disables the given flag (see @enum Flags@ for options).\nset_particle_flag ::\n                    (CPUParticles2D :< cls, Object :< cls) =>\n                    cls -> Int -> Bool -> IO ()\nset_particle_flag cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_particle_flag\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_particle_flag\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_particle_flag\n\n{-# NOINLINE bindCPUParticles2D_set_pre_process_time #-}\n\n-- | Particle system starts as if it had already run for this many seconds.\nbindCPUParticles2D_set_pre_process_time :: MethodBind\nbindCPUParticles2D_set_pre_process_time\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_pre_process_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle system starts as if it had already run for this many seconds.\nset_pre_process_time ::\n                       (CPUParticles2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_pre_process_time cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_pre_process_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_pre_process_time\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_pre_process_time\n\n{-# NOINLINE bindCPUParticles2D_set_randomness_ratio #-}\n\n-- | Emission lifetime randomness ratio.\nbindCPUParticles2D_set_randomness_ratio :: MethodBind\nbindCPUParticles2D_set_randomness_ratio\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_randomness_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Emission lifetime randomness ratio.\nset_randomness_ratio ::\n                       (CPUParticles2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_randomness_ratio cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_randomness_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_randomness_ratio\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_randomness_ratio\n\n{-# NOINLINE bindCPUParticles2D_set_speed_scale #-}\n\n-- | Particle system's running speed scaling ratio. A value of @0@ can be used to pause the particles.\nbindCPUParticles2D_set_speed_scale :: MethodBind\nbindCPUParticles2D_set_speed_scale\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_speed_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle system's running speed scaling ratio. A value of @0@ can be used to pause the particles.\nset_speed_scale ::\n                  (CPUParticles2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_speed_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_speed_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_speed_scale\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_speed_scale\n\n{-# NOINLINE bindCPUParticles2D_set_spread #-}\n\n-- | Each particle's initial direction range from @+spread@ to @-spread@ degrees.\nbindCPUParticles2D_set_spread :: MethodBind\nbindCPUParticles2D_set_spread\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_spread\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Each particle's initial direction range from @+spread@ to @-spread@ degrees.\nset_spread ::\n             (CPUParticles2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_spread cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_spread (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_spread\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_spread\n\n{-# NOINLINE bindCPUParticles2D_set_texture #-}\n\n-- | Particle texture. If @null@, particles will be squares.\nbindCPUParticles2D_set_texture :: MethodBind\nbindCPUParticles2D_set_texture\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle texture. If @null@, particles will be squares.\nset_texture ::\n              (CPUParticles2D :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_texture\" '[Texture] (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_texture\n\n{-# NOINLINE bindCPUParticles2D_set_use_local_coordinates #-}\n\n-- | If @true@, particles use the parent node's coordinate space. If @false@, they use global coordinates.\nbindCPUParticles2D_set_use_local_coordinates :: MethodBind\nbindCPUParticles2D_set_use_local_coordinates\n  = unsafePerformIO $\n      withCString \"CPUParticles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_local_coordinates\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles use the parent node's coordinate space. If @false@, they use global coordinates.\nset_use_local_coordinates ::\n                            (CPUParticles2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_local_coordinates cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCPUParticles2D_set_use_local_coordinates\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CPUParticles2D \"set_use_local_coordinates\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CPUParticles2D.set_use_local_coordinates"
  },
  {
    "path": "src/Godot/Core/CSGBox.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CSGBox\n       (Godot.Core.CSGBox.get_depth, Godot.Core.CSGBox.get_height,\n        Godot.Core.CSGBox.get_material, Godot.Core.CSGBox.get_width,\n        Godot.Core.CSGBox.set_depth, Godot.Core.CSGBox.set_height,\n        Godot.Core.CSGBox.set_material, Godot.Core.CSGBox.set_width)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.CSGPrimitive()\n\ninstance NodeProperty CSGBox \"depth\" Float 'False where\n        nodeProperty = (get_depth, wrapDroppingSetter set_depth, Nothing)\n\ninstance NodeProperty CSGBox \"height\" Float 'False where\n        nodeProperty = (get_height, wrapDroppingSetter set_height, Nothing)\n\ninstance NodeProperty CSGBox \"material\" Material 'False where\n        nodeProperty\n          = (get_material, wrapDroppingSetter set_material, Nothing)\n\ninstance NodeProperty CSGBox \"width\" Float 'False where\n        nodeProperty = (get_width, wrapDroppingSetter set_width, Nothing)\n\n{-# NOINLINE bindCSGBox_get_depth #-}\n\nbindCSGBox_get_depth :: MethodBind\nbindCSGBox_get_depth\n  = unsafePerformIO $\n      withCString \"CSGBox\" $\n        \\ clsNamePtr ->\n          withCString \"get_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_depth :: (CSGBox :< cls, Object :< cls) => cls -> IO Float\nget_depth cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGBox_get_depth (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGBox \"get_depth\" '[] (IO Float) where\n        nodeMethod = Godot.Core.CSGBox.get_depth\n\n{-# NOINLINE bindCSGBox_get_height #-}\n\nbindCSGBox_get_height :: MethodBind\nbindCSGBox_get_height\n  = unsafePerformIO $\n      withCString \"CSGBox\" $\n        \\ clsNamePtr ->\n          withCString \"get_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_height :: (CSGBox :< cls, Object :< cls) => cls -> IO Float\nget_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGBox_get_height (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGBox \"get_height\" '[] (IO Float) where\n        nodeMethod = Godot.Core.CSGBox.get_height\n\n{-# NOINLINE bindCSGBox_get_material #-}\n\nbindCSGBox_get_material :: MethodBind\nbindCSGBox_get_material\n  = unsafePerformIO $\n      withCString \"CSGBox\" $\n        \\ clsNamePtr ->\n          withCString \"get_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_material ::\n               (CSGBox :< cls, Object :< cls) => cls -> IO Material\nget_material cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGBox_get_material (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGBox \"get_material\" '[] (IO Material) where\n        nodeMethod = Godot.Core.CSGBox.get_material\n\n{-# NOINLINE bindCSGBox_get_width #-}\n\nbindCSGBox_get_width :: MethodBind\nbindCSGBox_get_width\n  = unsafePerformIO $\n      withCString \"CSGBox\" $\n        \\ clsNamePtr ->\n          withCString \"get_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_width :: (CSGBox :< cls, Object :< cls) => cls -> IO Float\nget_width cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGBox_get_width (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGBox \"get_width\" '[] (IO Float) where\n        nodeMethod = Godot.Core.CSGBox.get_width\n\n{-# NOINLINE bindCSGBox_set_depth #-}\n\nbindCSGBox_set_depth :: MethodBind\nbindCSGBox_set_depth\n  = unsafePerformIO $\n      withCString \"CSGBox\" $\n        \\ clsNamePtr ->\n          withCString \"set_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_depth ::\n            (CSGBox :< cls, Object :< cls) => cls -> Float -> IO ()\nset_depth cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGBox_set_depth (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGBox \"set_depth\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.CSGBox.set_depth\n\n{-# NOINLINE bindCSGBox_set_height #-}\n\nbindCSGBox_set_height :: MethodBind\nbindCSGBox_set_height\n  = unsafePerformIO $\n      withCString \"CSGBox\" $\n        \\ clsNamePtr ->\n          withCString \"set_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_height ::\n             (CSGBox :< cls, Object :< cls) => cls -> Float -> IO ()\nset_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGBox_set_height (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGBox \"set_height\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.CSGBox.set_height\n\n{-# NOINLINE bindCSGBox_set_material #-}\n\nbindCSGBox_set_material :: MethodBind\nbindCSGBox_set_material\n  = unsafePerformIO $\n      withCString \"CSGBox\" $\n        \\ clsNamePtr ->\n          withCString \"set_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_material ::\n               (CSGBox :< cls, Object :< cls) => cls -> Material -> IO ()\nset_material cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGBox_set_material (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGBox \"set_material\" '[Material] (IO ()) where\n        nodeMethod = Godot.Core.CSGBox.set_material\n\n{-# NOINLINE bindCSGBox_set_width #-}\n\nbindCSGBox_set_width :: MethodBind\nbindCSGBox_set_width\n  = unsafePerformIO $\n      withCString \"CSGBox\" $\n        \\ clsNamePtr ->\n          withCString \"set_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_width ::\n            (CSGBox :< cls, Object :< cls) => cls -> Float -> IO ()\nset_width cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGBox_set_width (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGBox \"set_width\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.CSGBox.set_width"
  },
  {
    "path": "src/Godot/Core/CSGCombiner.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CSGCombiner () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.CSGShape()"
  },
  {
    "path": "src/Godot/Core/CSGCylinder.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CSGCylinder\n       (Godot.Core.CSGCylinder.get_height,\n        Godot.Core.CSGCylinder.get_material,\n        Godot.Core.CSGCylinder.get_radius,\n        Godot.Core.CSGCylinder.get_sides,\n        Godot.Core.CSGCylinder.get_smooth_faces,\n        Godot.Core.CSGCylinder.is_cone, Godot.Core.CSGCylinder.set_cone,\n        Godot.Core.CSGCylinder.set_height,\n        Godot.Core.CSGCylinder.set_material,\n        Godot.Core.CSGCylinder.set_radius,\n        Godot.Core.CSGCylinder.set_sides,\n        Godot.Core.CSGCylinder.set_smooth_faces)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.CSGPrimitive()\n\ninstance NodeProperty CSGCylinder \"cone\" Bool 'False where\n        nodeProperty = (is_cone, wrapDroppingSetter set_cone, Nothing)\n\ninstance NodeProperty CSGCylinder \"height\" Float 'False where\n        nodeProperty = (get_height, wrapDroppingSetter set_height, Nothing)\n\ninstance NodeProperty CSGCylinder \"material\" Material 'False where\n        nodeProperty\n          = (get_material, wrapDroppingSetter set_material, Nothing)\n\ninstance NodeProperty CSGCylinder \"radius\" Float 'False where\n        nodeProperty = (get_radius, wrapDroppingSetter set_radius, Nothing)\n\ninstance NodeProperty CSGCylinder \"sides\" Int 'False where\n        nodeProperty = (get_sides, wrapDroppingSetter set_sides, Nothing)\n\ninstance NodeProperty CSGCylinder \"smooth_faces\" Bool 'False where\n        nodeProperty\n          = (get_smooth_faces, wrapDroppingSetter set_smooth_faces, Nothing)\n\n{-# NOINLINE bindCSGCylinder_get_height #-}\n\nbindCSGCylinder_get_height :: MethodBind\nbindCSGCylinder_get_height\n  = unsafePerformIO $\n      withCString \"CSGCylinder\" $\n        \\ clsNamePtr ->\n          withCString \"get_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_height ::\n             (CSGCylinder :< cls, Object :< cls) => cls -> IO Float\nget_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGCylinder_get_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGCylinder \"get_height\" '[] (IO Float) where\n        nodeMethod = Godot.Core.CSGCylinder.get_height\n\n{-# NOINLINE bindCSGCylinder_get_material #-}\n\nbindCSGCylinder_get_material :: MethodBind\nbindCSGCylinder_get_material\n  = unsafePerformIO $\n      withCString \"CSGCylinder\" $\n        \\ clsNamePtr ->\n          withCString \"get_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_material ::\n               (CSGCylinder :< cls, Object :< cls) => cls -> IO Material\nget_material cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGCylinder_get_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGCylinder \"get_material\" '[] (IO Material)\n         where\n        nodeMethod = Godot.Core.CSGCylinder.get_material\n\n{-# NOINLINE bindCSGCylinder_get_radius #-}\n\nbindCSGCylinder_get_radius :: MethodBind\nbindCSGCylinder_get_radius\n  = unsafePerformIO $\n      withCString \"CSGCylinder\" $\n        \\ clsNamePtr ->\n          withCString \"get_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_radius ::\n             (CSGCylinder :< cls, Object :< cls) => cls -> IO Float\nget_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGCylinder_get_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGCylinder \"get_radius\" '[] (IO Float) where\n        nodeMethod = Godot.Core.CSGCylinder.get_radius\n\n{-# NOINLINE bindCSGCylinder_get_sides #-}\n\nbindCSGCylinder_get_sides :: MethodBind\nbindCSGCylinder_get_sides\n  = unsafePerformIO $\n      withCString \"CSGCylinder\" $\n        \\ clsNamePtr ->\n          withCString \"get_sides\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_sides :: (CSGCylinder :< cls, Object :< cls) => cls -> IO Int\nget_sides cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGCylinder_get_sides (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGCylinder \"get_sides\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CSGCylinder.get_sides\n\n{-# NOINLINE bindCSGCylinder_get_smooth_faces #-}\n\nbindCSGCylinder_get_smooth_faces :: MethodBind\nbindCSGCylinder_get_smooth_faces\n  = unsafePerformIO $\n      withCString \"CSGCylinder\" $\n        \\ clsNamePtr ->\n          withCString \"get_smooth_faces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_smooth_faces ::\n                   (CSGCylinder :< cls, Object :< cls) => cls -> IO Bool\nget_smooth_faces cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGCylinder_get_smooth_faces\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGCylinder \"get_smooth_faces\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CSGCylinder.get_smooth_faces\n\n{-# NOINLINE bindCSGCylinder_is_cone #-}\n\nbindCSGCylinder_is_cone :: MethodBind\nbindCSGCylinder_is_cone\n  = unsafePerformIO $\n      withCString \"CSGCylinder\" $\n        \\ clsNamePtr ->\n          withCString \"is_cone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_cone :: (CSGCylinder :< cls, Object :< cls) => cls -> IO Bool\nis_cone cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGCylinder_is_cone (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGCylinder \"is_cone\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.CSGCylinder.is_cone\n\n{-# NOINLINE bindCSGCylinder_set_cone #-}\n\nbindCSGCylinder_set_cone :: MethodBind\nbindCSGCylinder_set_cone\n  = unsafePerformIO $\n      withCString \"CSGCylinder\" $\n        \\ clsNamePtr ->\n          withCString \"set_cone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_cone ::\n           (CSGCylinder :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_cone cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGCylinder_set_cone (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGCylinder \"set_cone\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.CSGCylinder.set_cone\n\n{-# NOINLINE bindCSGCylinder_set_height #-}\n\nbindCSGCylinder_set_height :: MethodBind\nbindCSGCylinder_set_height\n  = unsafePerformIO $\n      withCString \"CSGCylinder\" $\n        \\ clsNamePtr ->\n          withCString \"set_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_height ::\n             (CSGCylinder :< cls, Object :< cls) => cls -> Float -> IO ()\nset_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGCylinder_set_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGCylinder \"set_height\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.CSGCylinder.set_height\n\n{-# NOINLINE bindCSGCylinder_set_material #-}\n\nbindCSGCylinder_set_material :: MethodBind\nbindCSGCylinder_set_material\n  = unsafePerformIO $\n      withCString \"CSGCylinder\" $\n        \\ clsNamePtr ->\n          withCString \"set_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_material ::\n               (CSGCylinder :< cls, Object :< cls) => cls -> Material -> IO ()\nset_material cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGCylinder_set_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGCylinder \"set_material\" '[Material] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGCylinder.set_material\n\n{-# NOINLINE bindCSGCylinder_set_radius #-}\n\nbindCSGCylinder_set_radius :: MethodBind\nbindCSGCylinder_set_radius\n  = unsafePerformIO $\n      withCString \"CSGCylinder\" $\n        \\ clsNamePtr ->\n          withCString \"set_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_radius ::\n             (CSGCylinder :< cls, Object :< cls) => cls -> Float -> IO ()\nset_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGCylinder_set_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGCylinder \"set_radius\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.CSGCylinder.set_radius\n\n{-# NOINLINE bindCSGCylinder_set_sides #-}\n\nbindCSGCylinder_set_sides :: MethodBind\nbindCSGCylinder_set_sides\n  = unsafePerformIO $\n      withCString \"CSGCylinder\" $\n        \\ clsNamePtr ->\n          withCString \"set_sides\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_sides ::\n            (CSGCylinder :< cls, Object :< cls) => cls -> Int -> IO ()\nset_sides cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGCylinder_set_sides (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGCylinder \"set_sides\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.CSGCylinder.set_sides\n\n{-# NOINLINE bindCSGCylinder_set_smooth_faces #-}\n\nbindCSGCylinder_set_smooth_faces :: MethodBind\nbindCSGCylinder_set_smooth_faces\n  = unsafePerformIO $\n      withCString \"CSGCylinder\" $\n        \\ clsNamePtr ->\n          withCString \"set_smooth_faces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_smooth_faces ::\n                   (CSGCylinder :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_smooth_faces cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGCylinder_set_smooth_faces\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGCylinder \"set_smooth_faces\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGCylinder.set_smooth_faces"
  },
  {
    "path": "src/Godot/Core/CSGMesh.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CSGMesh\n       (Godot.Core.CSGMesh._mesh_changed, Godot.Core.CSGMesh.get_material,\n        Godot.Core.CSGMesh.get_mesh, Godot.Core.CSGMesh.set_material,\n        Godot.Core.CSGMesh.set_mesh)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.CSGPrimitive()\n\ninstance NodeProperty CSGMesh \"material\" Material 'False where\n        nodeProperty\n          = (get_material, wrapDroppingSetter set_material, Nothing)\n\ninstance NodeProperty CSGMesh \"mesh\" Mesh 'False where\n        nodeProperty = (get_mesh, wrapDroppingSetter set_mesh, Nothing)\n\n{-# NOINLINE bindCSGMesh__mesh_changed #-}\n\nbindCSGMesh__mesh_changed :: MethodBind\nbindCSGMesh__mesh_changed\n  = unsafePerformIO $\n      withCString \"CSGMesh\" $\n        \\ clsNamePtr ->\n          withCString \"_mesh_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_mesh_changed :: (CSGMesh :< cls, Object :< cls) => cls -> IO ()\n_mesh_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGMesh__mesh_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGMesh \"_mesh_changed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.CSGMesh._mesh_changed\n\n{-# NOINLINE bindCSGMesh_get_material #-}\n\nbindCSGMesh_get_material :: MethodBind\nbindCSGMesh_get_material\n  = unsafePerformIO $\n      withCString \"CSGMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_material ::\n               (CSGMesh :< cls, Object :< cls) => cls -> IO Material\nget_material cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGMesh_get_material (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGMesh \"get_material\" '[] (IO Material) where\n        nodeMethod = Godot.Core.CSGMesh.get_material\n\n{-# NOINLINE bindCSGMesh_get_mesh #-}\n\nbindCSGMesh_get_mesh :: MethodBind\nbindCSGMesh_get_mesh\n  = unsafePerformIO $\n      withCString \"CSGMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_mesh :: (CSGMesh :< cls, Object :< cls) => cls -> IO Mesh\nget_mesh cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGMesh_get_mesh (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGMesh \"get_mesh\" '[] (IO Mesh) where\n        nodeMethod = Godot.Core.CSGMesh.get_mesh\n\n{-# NOINLINE bindCSGMesh_set_material #-}\n\nbindCSGMesh_set_material :: MethodBind\nbindCSGMesh_set_material\n  = unsafePerformIO $\n      withCString \"CSGMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_material ::\n               (CSGMesh :< cls, Object :< cls) => cls -> Material -> IO ()\nset_material cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGMesh_set_material (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGMesh \"set_material\" '[Material] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGMesh.set_material\n\n{-# NOINLINE bindCSGMesh_set_mesh #-}\n\nbindCSGMesh_set_mesh :: MethodBind\nbindCSGMesh_set_mesh\n  = unsafePerformIO $\n      withCString \"CSGMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_mesh :: (CSGMesh :< cls, Object :< cls) => cls -> Mesh -> IO ()\nset_mesh cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGMesh_set_mesh (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGMesh \"set_mesh\" '[Mesh] (IO ()) where\n        nodeMethod = Godot.Core.CSGMesh.set_mesh"
  },
  {
    "path": "src/Godot/Core/CSGPolygon.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CSGPolygon\n       (Godot.Core.CSGPolygon._MODE_PATH,\n        Godot.Core.CSGPolygon._PATH_ROTATION_PATH,\n        Godot.Core.CSGPolygon._PATH_ROTATION_PATH_FOLLOW,\n        Godot.Core.CSGPolygon._PATH_ROTATION_POLYGON,\n        Godot.Core.CSGPolygon._MODE_SPIN,\n        Godot.Core.CSGPolygon._MODE_DEPTH,\n        Godot.Core.CSGPolygon._has_editable_3d_polygon_no_depth,\n        Godot.Core.CSGPolygon._is_editable_3d_polygon,\n        Godot.Core.CSGPolygon._path_changed,\n        Godot.Core.CSGPolygon._path_exited,\n        Godot.Core.CSGPolygon.get_depth,\n        Godot.Core.CSGPolygon.get_material, Godot.Core.CSGPolygon.get_mode,\n        Godot.Core.CSGPolygon.get_path_interval,\n        Godot.Core.CSGPolygon.get_path_node,\n        Godot.Core.CSGPolygon.get_path_rotation,\n        Godot.Core.CSGPolygon.get_polygon,\n        Godot.Core.CSGPolygon.get_smooth_faces,\n        Godot.Core.CSGPolygon.get_spin_degrees,\n        Godot.Core.CSGPolygon.get_spin_sides,\n        Godot.Core.CSGPolygon.is_path_continuous_u,\n        Godot.Core.CSGPolygon.is_path_joined,\n        Godot.Core.CSGPolygon.is_path_local,\n        Godot.Core.CSGPolygon.set_depth,\n        Godot.Core.CSGPolygon.set_material, Godot.Core.CSGPolygon.set_mode,\n        Godot.Core.CSGPolygon.set_path_continuous_u,\n        Godot.Core.CSGPolygon.set_path_interval,\n        Godot.Core.CSGPolygon.set_path_joined,\n        Godot.Core.CSGPolygon.set_path_local,\n        Godot.Core.CSGPolygon.set_path_node,\n        Godot.Core.CSGPolygon.set_path_rotation,\n        Godot.Core.CSGPolygon.set_polygon,\n        Godot.Core.CSGPolygon.set_smooth_faces,\n        Godot.Core.CSGPolygon.set_spin_degrees,\n        Godot.Core.CSGPolygon.set_spin_sides)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.CSGPrimitive()\n\n_MODE_PATH :: Int\n_MODE_PATH = 2\n\n_PATH_ROTATION_PATH :: Int\n_PATH_ROTATION_PATH = 1\n\n_PATH_ROTATION_PATH_FOLLOW :: Int\n_PATH_ROTATION_PATH_FOLLOW = 2\n\n_PATH_ROTATION_POLYGON :: Int\n_PATH_ROTATION_POLYGON = 0\n\n_MODE_SPIN :: Int\n_MODE_SPIN = 1\n\n_MODE_DEPTH :: Int\n_MODE_DEPTH = 0\n\ninstance NodeProperty CSGPolygon \"depth\" Float 'False where\n        nodeProperty = (get_depth, wrapDroppingSetter set_depth, Nothing)\n\ninstance NodeProperty CSGPolygon \"material\" Material 'False where\n        nodeProperty\n          = (get_material, wrapDroppingSetter set_material, Nothing)\n\ninstance NodeProperty CSGPolygon \"mode\" Int 'False where\n        nodeProperty = (get_mode, wrapDroppingSetter set_mode, Nothing)\n\ninstance NodeProperty CSGPolygon \"path_continuous_u\" Bool 'False\n         where\n        nodeProperty\n          = (is_path_continuous_u, wrapDroppingSetter set_path_continuous_u,\n             Nothing)\n\ninstance NodeProperty CSGPolygon \"path_interval\" Float 'False where\n        nodeProperty\n          = (get_path_interval, wrapDroppingSetter set_path_interval,\n             Nothing)\n\ninstance NodeProperty CSGPolygon \"path_joined\" Bool 'False where\n        nodeProperty\n          = (is_path_joined, wrapDroppingSetter set_path_joined, Nothing)\n\ninstance NodeProperty CSGPolygon \"path_local\" Bool 'False where\n        nodeProperty\n          = (is_path_local, wrapDroppingSetter set_path_local, Nothing)\n\ninstance NodeProperty CSGPolygon \"path_node\" NodePath 'False where\n        nodeProperty\n          = (get_path_node, wrapDroppingSetter set_path_node, Nothing)\n\ninstance NodeProperty CSGPolygon \"path_rotation\" Int 'False where\n        nodeProperty\n          = (get_path_rotation, wrapDroppingSetter set_path_rotation,\n             Nothing)\n\ninstance NodeProperty CSGPolygon \"polygon\" PoolVector2Array 'False\n         where\n        nodeProperty\n          = (get_polygon, wrapDroppingSetter set_polygon, Nothing)\n\ninstance NodeProperty CSGPolygon \"smooth_faces\" Bool 'False where\n        nodeProperty\n          = (get_smooth_faces, wrapDroppingSetter set_smooth_faces, Nothing)\n\ninstance NodeProperty CSGPolygon \"spin_degrees\" Float 'False where\n        nodeProperty\n          = (get_spin_degrees, wrapDroppingSetter set_spin_degrees, Nothing)\n\ninstance NodeProperty CSGPolygon \"spin_sides\" Int 'False where\n        nodeProperty\n          = (get_spin_sides, wrapDroppingSetter set_spin_sides, Nothing)\n\n{-# NOINLINE bindCSGPolygon__has_editable_3d_polygon_no_depth #-}\n\nbindCSGPolygon__has_editable_3d_polygon_no_depth :: MethodBind\nbindCSGPolygon__has_editable_3d_polygon_no_depth\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"_has_editable_3d_polygon_no_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_has_editable_3d_polygon_no_depth ::\n                                    (CSGPolygon :< cls, Object :< cls) => cls -> IO Bool\n_has_editable_3d_polygon_no_depth cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCSGPolygon__has_editable_3d_polygon_no_depth\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"_has_editable_3d_polygon_no_depth\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.CSGPolygon._has_editable_3d_polygon_no_depth\n\n{-# NOINLINE bindCSGPolygon__is_editable_3d_polygon #-}\n\nbindCSGPolygon__is_editable_3d_polygon :: MethodBind\nbindCSGPolygon__is_editable_3d_polygon\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"_is_editable_3d_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_is_editable_3d_polygon ::\n                          (CSGPolygon :< cls, Object :< cls) => cls -> IO Bool\n_is_editable_3d_polygon cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon__is_editable_3d_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"_is_editable_3d_polygon\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CSGPolygon._is_editable_3d_polygon\n\n{-# NOINLINE bindCSGPolygon__path_changed #-}\n\nbindCSGPolygon__path_changed :: MethodBind\nbindCSGPolygon__path_changed\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"_path_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_path_changed :: (CSGPolygon :< cls, Object :< cls) => cls -> IO ()\n_path_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon__path_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"_path_changed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.CSGPolygon._path_changed\n\n{-# NOINLINE bindCSGPolygon__path_exited #-}\n\nbindCSGPolygon__path_exited :: MethodBind\nbindCSGPolygon__path_exited\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"_path_exited\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_path_exited :: (CSGPolygon :< cls, Object :< cls) => cls -> IO ()\n_path_exited cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon__path_exited (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"_path_exited\" '[] (IO ()) where\n        nodeMethod = Godot.Core.CSGPolygon._path_exited\n\n{-# NOINLINE bindCSGPolygon_get_depth #-}\n\nbindCSGPolygon_get_depth :: MethodBind\nbindCSGPolygon_get_depth\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"get_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_depth :: (CSGPolygon :< cls, Object :< cls) => cls -> IO Float\nget_depth cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_get_depth (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"get_depth\" '[] (IO Float) where\n        nodeMethod = Godot.Core.CSGPolygon.get_depth\n\n{-# NOINLINE bindCSGPolygon_get_material #-}\n\nbindCSGPolygon_get_material :: MethodBind\nbindCSGPolygon_get_material\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"get_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_material ::\n               (CSGPolygon :< cls, Object :< cls) => cls -> IO Material\nget_material cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_get_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"get_material\" '[] (IO Material)\n         where\n        nodeMethod = Godot.Core.CSGPolygon.get_material\n\n{-# NOINLINE bindCSGPolygon_get_mode #-}\n\nbindCSGPolygon_get_mode :: MethodBind\nbindCSGPolygon_get_mode\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"get_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_mode :: (CSGPolygon :< cls, Object :< cls) => cls -> IO Int\nget_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_get_mode (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"get_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CSGPolygon.get_mode\n\n{-# NOINLINE bindCSGPolygon_get_path_interval #-}\n\nbindCSGPolygon_get_path_interval :: MethodBind\nbindCSGPolygon_get_path_interval\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"get_path_interval\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_path_interval ::\n                    (CSGPolygon :< cls, Object :< cls) => cls -> IO Float\nget_path_interval cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_get_path_interval\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"get_path_interval\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.CSGPolygon.get_path_interval\n\n{-# NOINLINE bindCSGPolygon_get_path_node #-}\n\nbindCSGPolygon_get_path_node :: MethodBind\nbindCSGPolygon_get_path_node\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"get_path_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_path_node ::\n                (CSGPolygon :< cls, Object :< cls) => cls -> IO NodePath\nget_path_node cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_get_path_node (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"get_path_node\" '[] (IO NodePath)\n         where\n        nodeMethod = Godot.Core.CSGPolygon.get_path_node\n\n{-# NOINLINE bindCSGPolygon_get_path_rotation #-}\n\nbindCSGPolygon_get_path_rotation :: MethodBind\nbindCSGPolygon_get_path_rotation\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"get_path_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_path_rotation ::\n                    (CSGPolygon :< cls, Object :< cls) => cls -> IO Int\nget_path_rotation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_get_path_rotation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"get_path_rotation\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.CSGPolygon.get_path_rotation\n\n{-# NOINLINE bindCSGPolygon_get_polygon #-}\n\nbindCSGPolygon_get_polygon :: MethodBind\nbindCSGPolygon_get_polygon\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"get_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_polygon ::\n              (CSGPolygon :< cls, Object :< cls) => cls -> IO PoolVector2Array\nget_polygon cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_get_polygon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"get_polygon\" '[]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.CSGPolygon.get_polygon\n\n{-# NOINLINE bindCSGPolygon_get_smooth_faces #-}\n\nbindCSGPolygon_get_smooth_faces :: MethodBind\nbindCSGPolygon_get_smooth_faces\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"get_smooth_faces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_smooth_faces ::\n                   (CSGPolygon :< cls, Object :< cls) => cls -> IO Bool\nget_smooth_faces cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_get_smooth_faces (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"get_smooth_faces\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CSGPolygon.get_smooth_faces\n\n{-# NOINLINE bindCSGPolygon_get_spin_degrees #-}\n\nbindCSGPolygon_get_spin_degrees :: MethodBind\nbindCSGPolygon_get_spin_degrees\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"get_spin_degrees\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_spin_degrees ::\n                   (CSGPolygon :< cls, Object :< cls) => cls -> IO Float\nget_spin_degrees cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_get_spin_degrees (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"get_spin_degrees\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.CSGPolygon.get_spin_degrees\n\n{-# NOINLINE bindCSGPolygon_get_spin_sides #-}\n\nbindCSGPolygon_get_spin_sides :: MethodBind\nbindCSGPolygon_get_spin_sides\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"get_spin_sides\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_spin_sides ::\n                 (CSGPolygon :< cls, Object :< cls) => cls -> IO Int\nget_spin_sides cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_get_spin_sides (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"get_spin_sides\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CSGPolygon.get_spin_sides\n\n{-# NOINLINE bindCSGPolygon_is_path_continuous_u #-}\n\nbindCSGPolygon_is_path_continuous_u :: MethodBind\nbindCSGPolygon_is_path_continuous_u\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"is_path_continuous_u\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_path_continuous_u ::\n                       (CSGPolygon :< cls, Object :< cls) => cls -> IO Bool\nis_path_continuous_u cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_is_path_continuous_u\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"is_path_continuous_u\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CSGPolygon.is_path_continuous_u\n\n{-# NOINLINE bindCSGPolygon_is_path_joined #-}\n\nbindCSGPolygon_is_path_joined :: MethodBind\nbindCSGPolygon_is_path_joined\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"is_path_joined\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_path_joined ::\n                 (CSGPolygon :< cls, Object :< cls) => cls -> IO Bool\nis_path_joined cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_is_path_joined (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"is_path_joined\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.CSGPolygon.is_path_joined\n\n{-# NOINLINE bindCSGPolygon_is_path_local #-}\n\nbindCSGPolygon_is_path_local :: MethodBind\nbindCSGPolygon_is_path_local\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"is_path_local\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_path_local ::\n                (CSGPolygon :< cls, Object :< cls) => cls -> IO Bool\nis_path_local cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_is_path_local (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"is_path_local\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.CSGPolygon.is_path_local\n\n{-# NOINLINE bindCSGPolygon_set_depth #-}\n\nbindCSGPolygon_set_depth :: MethodBind\nbindCSGPolygon_set_depth\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"set_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_depth ::\n            (CSGPolygon :< cls, Object :< cls) => cls -> Float -> IO ()\nset_depth cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_set_depth (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"set_depth\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.CSGPolygon.set_depth\n\n{-# NOINLINE bindCSGPolygon_set_material #-}\n\nbindCSGPolygon_set_material :: MethodBind\nbindCSGPolygon_set_material\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"set_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_material ::\n               (CSGPolygon :< cls, Object :< cls) => cls -> Material -> IO ()\nset_material cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_set_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"set_material\" '[Material] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGPolygon.set_material\n\n{-# NOINLINE bindCSGPolygon_set_mode #-}\n\nbindCSGPolygon_set_mode :: MethodBind\nbindCSGPolygon_set_mode\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"set_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_mode ::\n           (CSGPolygon :< cls, Object :< cls) => cls -> Int -> IO ()\nset_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_set_mode (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"set_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.CSGPolygon.set_mode\n\n{-# NOINLINE bindCSGPolygon_set_path_continuous_u #-}\n\nbindCSGPolygon_set_path_continuous_u :: MethodBind\nbindCSGPolygon_set_path_continuous_u\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"set_path_continuous_u\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_path_continuous_u ::\n                        (CSGPolygon :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_path_continuous_u cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_set_path_continuous_u\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"set_path_continuous_u\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CSGPolygon.set_path_continuous_u\n\n{-# NOINLINE bindCSGPolygon_set_path_interval #-}\n\nbindCSGPolygon_set_path_interval :: MethodBind\nbindCSGPolygon_set_path_interval\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"set_path_interval\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_path_interval ::\n                    (CSGPolygon :< cls, Object :< cls) => cls -> Float -> IO ()\nset_path_interval cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_set_path_interval\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"set_path_interval\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGPolygon.set_path_interval\n\n{-# NOINLINE bindCSGPolygon_set_path_joined #-}\n\nbindCSGPolygon_set_path_joined :: MethodBind\nbindCSGPolygon_set_path_joined\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"set_path_joined\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_path_joined ::\n                  (CSGPolygon :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_path_joined cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_set_path_joined (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"set_path_joined\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGPolygon.set_path_joined\n\n{-# NOINLINE bindCSGPolygon_set_path_local #-}\n\nbindCSGPolygon_set_path_local :: MethodBind\nbindCSGPolygon_set_path_local\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"set_path_local\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_path_local ::\n                 (CSGPolygon :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_path_local cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_set_path_local (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"set_path_local\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGPolygon.set_path_local\n\n{-# NOINLINE bindCSGPolygon_set_path_node #-}\n\nbindCSGPolygon_set_path_node :: MethodBind\nbindCSGPolygon_set_path_node\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"set_path_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_path_node ::\n                (CSGPolygon :< cls, Object :< cls) => cls -> NodePath -> IO ()\nset_path_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_set_path_node (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"set_path_node\" '[NodePath] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGPolygon.set_path_node\n\n{-# NOINLINE bindCSGPolygon_set_path_rotation #-}\n\nbindCSGPolygon_set_path_rotation :: MethodBind\nbindCSGPolygon_set_path_rotation\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"set_path_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_path_rotation ::\n                    (CSGPolygon :< cls, Object :< cls) => cls -> Int -> IO ()\nset_path_rotation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_set_path_rotation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"set_path_rotation\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGPolygon.set_path_rotation\n\n{-# NOINLINE bindCSGPolygon_set_polygon #-}\n\nbindCSGPolygon_set_polygon :: MethodBind\nbindCSGPolygon_set_polygon\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"set_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_polygon ::\n              (CSGPolygon :< cls, Object :< cls) =>\n              cls -> PoolVector2Array -> IO ()\nset_polygon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_set_polygon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"set_polygon\" '[PoolVector2Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CSGPolygon.set_polygon\n\n{-# NOINLINE bindCSGPolygon_set_smooth_faces #-}\n\nbindCSGPolygon_set_smooth_faces :: MethodBind\nbindCSGPolygon_set_smooth_faces\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"set_smooth_faces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_smooth_faces ::\n                   (CSGPolygon :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_smooth_faces cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_set_smooth_faces (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"set_smooth_faces\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGPolygon.set_smooth_faces\n\n{-# NOINLINE bindCSGPolygon_set_spin_degrees #-}\n\nbindCSGPolygon_set_spin_degrees :: MethodBind\nbindCSGPolygon_set_spin_degrees\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"set_spin_degrees\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_spin_degrees ::\n                   (CSGPolygon :< cls, Object :< cls) => cls -> Float -> IO ()\nset_spin_degrees cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_set_spin_degrees (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"set_spin_degrees\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGPolygon.set_spin_degrees\n\n{-# NOINLINE bindCSGPolygon_set_spin_sides #-}\n\nbindCSGPolygon_set_spin_sides :: MethodBind\nbindCSGPolygon_set_spin_sides\n  = unsafePerformIO $\n      withCString \"CSGPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"set_spin_sides\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_spin_sides ::\n                 (CSGPolygon :< cls, Object :< cls) => cls -> Int -> IO ()\nset_spin_sides cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPolygon_set_spin_sides (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPolygon \"set_spin_sides\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGPolygon.set_spin_sides"
  },
  {
    "path": "src/Godot/Core/CSGPrimitive.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CSGPrimitive\n       (Godot.Core.CSGPrimitive.is_inverting_faces,\n        Godot.Core.CSGPrimitive.set_invert_faces)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.CSGShape()\n\ninstance NodeProperty CSGPrimitive \"invert_faces\" Bool 'False where\n        nodeProperty\n          = (is_inverting_faces, wrapDroppingSetter set_invert_faces,\n             Nothing)\n\n{-# NOINLINE bindCSGPrimitive_is_inverting_faces #-}\n\nbindCSGPrimitive_is_inverting_faces :: MethodBind\nbindCSGPrimitive_is_inverting_faces\n  = unsafePerformIO $\n      withCString \"CSGPrimitive\" $\n        \\ clsNamePtr ->\n          withCString \"is_inverting_faces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_inverting_faces ::\n                     (CSGPrimitive :< cls, Object :< cls) => cls -> IO Bool\nis_inverting_faces cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPrimitive_is_inverting_faces\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPrimitive \"is_inverting_faces\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CSGPrimitive.is_inverting_faces\n\n{-# NOINLINE bindCSGPrimitive_set_invert_faces #-}\n\nbindCSGPrimitive_set_invert_faces :: MethodBind\nbindCSGPrimitive_set_invert_faces\n  = unsafePerformIO $\n      withCString \"CSGPrimitive\" $\n        \\ clsNamePtr ->\n          withCString \"set_invert_faces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_invert_faces ::\n                   (CSGPrimitive :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_invert_faces cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGPrimitive_set_invert_faces\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGPrimitive \"set_invert_faces\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGPrimitive.set_invert_faces"
  },
  {
    "path": "src/Godot/Core/CSGShape.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CSGShape\n       (Godot.Core.CSGShape._OPERATION_SUBTRACTION,\n        Godot.Core.CSGShape._OPERATION_UNION,\n        Godot.Core.CSGShape._OPERATION_INTERSECTION,\n        Godot.Core.CSGShape._update_shape,\n        Godot.Core.CSGShape.get_collision_layer,\n        Godot.Core.CSGShape.get_collision_layer_bit,\n        Godot.Core.CSGShape.get_collision_mask,\n        Godot.Core.CSGShape.get_collision_mask_bit,\n        Godot.Core.CSGShape.get_meshes, Godot.Core.CSGShape.get_operation,\n        Godot.Core.CSGShape.get_snap,\n        Godot.Core.CSGShape.is_calculating_tangents,\n        Godot.Core.CSGShape.is_root_shape,\n        Godot.Core.CSGShape.is_using_collision,\n        Godot.Core.CSGShape.set_calculate_tangents,\n        Godot.Core.CSGShape.set_collision_layer,\n        Godot.Core.CSGShape.set_collision_layer_bit,\n        Godot.Core.CSGShape.set_collision_mask,\n        Godot.Core.CSGShape.set_collision_mask_bit,\n        Godot.Core.CSGShape.set_operation, Godot.Core.CSGShape.set_snap,\n        Godot.Core.CSGShape.set_use_collision)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.GeometryInstance()\n\n_OPERATION_SUBTRACTION :: Int\n_OPERATION_SUBTRACTION = 2\n\n_OPERATION_UNION :: Int\n_OPERATION_UNION = 0\n\n_OPERATION_INTERSECTION :: Int\n_OPERATION_INTERSECTION = 1\n\ninstance NodeProperty CSGShape \"calculate_tangents\" Bool 'False\n         where\n        nodeProperty\n          = (is_calculating_tangents,\n             wrapDroppingSetter set_calculate_tangents, Nothing)\n\ninstance NodeProperty CSGShape \"collision_layer\" Int 'False where\n        nodeProperty\n          = (get_collision_layer, wrapDroppingSetter set_collision_layer,\n             Nothing)\n\ninstance NodeProperty CSGShape \"collision_mask\" Int 'False where\n        nodeProperty\n          = (get_collision_mask, wrapDroppingSetter set_collision_mask,\n             Nothing)\n\ninstance NodeProperty CSGShape \"operation\" Int 'False where\n        nodeProperty\n          = (get_operation, wrapDroppingSetter set_operation, Nothing)\n\ninstance NodeProperty CSGShape \"snap\" Float 'False where\n        nodeProperty = (get_snap, wrapDroppingSetter set_snap, Nothing)\n\ninstance NodeProperty CSGShape \"use_collision\" Bool 'False where\n        nodeProperty\n          = (is_using_collision, wrapDroppingSetter set_use_collision,\n             Nothing)\n\n{-# NOINLINE bindCSGShape__update_shape #-}\n\nbindCSGShape__update_shape :: MethodBind\nbindCSGShape__update_shape\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"_update_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_shape :: (CSGShape :< cls, Object :< cls) => cls -> IO ()\n_update_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape__update_shape (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"_update_shape\" '[] (IO ()) where\n        nodeMethod = Godot.Core.CSGShape._update_shape\n\n{-# NOINLINE bindCSGShape_get_collision_layer #-}\n\nbindCSGShape_get_collision_layer :: MethodBind\nbindCSGShape_get_collision_layer\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_collision_layer ::\n                      (CSGShape :< cls, Object :< cls) => cls -> IO Int\nget_collision_layer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape_get_collision_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"get_collision_layer\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.CSGShape.get_collision_layer\n\n{-# NOINLINE bindCSGShape_get_collision_layer_bit #-}\n\nbindCSGShape_get_collision_layer_bit :: MethodBind\nbindCSGShape_get_collision_layer_bit\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_layer_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_collision_layer_bit ::\n                          (CSGShape :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_layer_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape_get_collision_layer_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"get_collision_layer_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CSGShape.get_collision_layer_bit\n\n{-# NOINLINE bindCSGShape_get_collision_mask #-}\n\nbindCSGShape_get_collision_mask :: MethodBind\nbindCSGShape_get_collision_mask\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_collision_mask ::\n                     (CSGShape :< cls, Object :< cls) => cls -> IO Int\nget_collision_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape_get_collision_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"get_collision_mask\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.CSGShape.get_collision_mask\n\n{-# NOINLINE bindCSGShape_get_collision_mask_bit #-}\n\nbindCSGShape_get_collision_mask_bit :: MethodBind\nbindCSGShape_get_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_collision_mask_bit ::\n                         (CSGShape :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_mask_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape_get_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"get_collision_mask_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CSGShape.get_collision_mask_bit\n\n{-# NOINLINE bindCSGShape_get_meshes #-}\n\nbindCSGShape_get_meshes :: MethodBind\nbindCSGShape_get_meshes\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_meshes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_meshes :: (CSGShape :< cls, Object :< cls) => cls -> IO Array\nget_meshes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape_get_meshes (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"get_meshes\" '[] (IO Array) where\n        nodeMethod = Godot.Core.CSGShape.get_meshes\n\n{-# NOINLINE bindCSGShape_get_operation #-}\n\nbindCSGShape_get_operation :: MethodBind\nbindCSGShape_get_operation\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_operation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_operation :: (CSGShape :< cls, Object :< cls) => cls -> IO Int\nget_operation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape_get_operation (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"get_operation\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CSGShape.get_operation\n\n{-# NOINLINE bindCSGShape_get_snap #-}\n\nbindCSGShape_get_snap :: MethodBind\nbindCSGShape_get_snap\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_snap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_snap :: (CSGShape :< cls, Object :< cls) => cls -> IO Float\nget_snap cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape_get_snap (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"get_snap\" '[] (IO Float) where\n        nodeMethod = Godot.Core.CSGShape.get_snap\n\n{-# NOINLINE bindCSGShape_is_calculating_tangents #-}\n\nbindCSGShape_is_calculating_tangents :: MethodBind\nbindCSGShape_is_calculating_tangents\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"is_calculating_tangents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_calculating_tangents ::\n                          (CSGShape :< cls, Object :< cls) => cls -> IO Bool\nis_calculating_tangents cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape_is_calculating_tangents\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"is_calculating_tangents\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CSGShape.is_calculating_tangents\n\n{-# NOINLINE bindCSGShape_is_root_shape #-}\n\nbindCSGShape_is_root_shape :: MethodBind\nbindCSGShape_is_root_shape\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"is_root_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_root_shape :: (CSGShape :< cls, Object :< cls) => cls -> IO Bool\nis_root_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape_is_root_shape (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"is_root_shape\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.CSGShape.is_root_shape\n\n{-# NOINLINE bindCSGShape_is_using_collision #-}\n\nbindCSGShape_is_using_collision :: MethodBind\nbindCSGShape_is_using_collision\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_collision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_using_collision ::\n                     (CSGShape :< cls, Object :< cls) => cls -> IO Bool\nis_using_collision cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape_is_using_collision (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"is_using_collision\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CSGShape.is_using_collision\n\n{-# NOINLINE bindCSGShape_set_calculate_tangents #-}\n\nbindCSGShape_set_calculate_tangents :: MethodBind\nbindCSGShape_set_calculate_tangents\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_calculate_tangents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_calculate_tangents ::\n                         (CSGShape :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_calculate_tangents cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape_set_calculate_tangents\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"set_calculate_tangents\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CSGShape.set_calculate_tangents\n\n{-# NOINLINE bindCSGShape_set_collision_layer #-}\n\nbindCSGShape_set_collision_layer :: MethodBind\nbindCSGShape_set_collision_layer\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_collision_layer ::\n                      (CSGShape :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_layer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape_set_collision_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"set_collision_layer\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGShape.set_collision_layer\n\n{-# NOINLINE bindCSGShape_set_collision_layer_bit #-}\n\nbindCSGShape_set_collision_layer_bit :: MethodBind\nbindCSGShape_set_collision_layer_bit\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_layer_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_collision_layer_bit ::\n                          (CSGShape :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_collision_layer_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape_set_collision_layer_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"set_collision_layer_bit\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CSGShape.set_collision_layer_bit\n\n{-# NOINLINE bindCSGShape_set_collision_mask #-}\n\nbindCSGShape_set_collision_mask :: MethodBind\nbindCSGShape_set_collision_mask\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_collision_mask ::\n                     (CSGShape :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape_set_collision_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"set_collision_mask\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGShape.set_collision_mask\n\n{-# NOINLINE bindCSGShape_set_collision_mask_bit #-}\n\nbindCSGShape_set_collision_mask_bit :: MethodBind\nbindCSGShape_set_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_collision_mask_bit ::\n                         (CSGShape :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_collision_mask_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape_set_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"set_collision_mask_bit\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CSGShape.set_collision_mask_bit\n\n{-# NOINLINE bindCSGShape_set_operation #-}\n\nbindCSGShape_set_operation :: MethodBind\nbindCSGShape_set_operation\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_operation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_operation ::\n                (CSGShape :< cls, Object :< cls) => cls -> Int -> IO ()\nset_operation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape_set_operation (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"set_operation\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.CSGShape.set_operation\n\n{-# NOINLINE bindCSGShape_set_snap #-}\n\nbindCSGShape_set_snap :: MethodBind\nbindCSGShape_set_snap\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_snap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_snap ::\n           (CSGShape :< cls, Object :< cls) => cls -> Float -> IO ()\nset_snap cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape_set_snap (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"set_snap\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.CSGShape.set_snap\n\n{-# NOINLINE bindCSGShape_set_use_collision #-}\n\nbindCSGShape_set_use_collision :: MethodBind\nbindCSGShape_set_use_collision\n  = unsafePerformIO $\n      withCString \"CSGShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_collision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_use_collision ::\n                    (CSGShape :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_collision cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGShape_set_use_collision (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGShape \"set_use_collision\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGShape.set_use_collision"
  },
  {
    "path": "src/Godot/Core/CSGSphere.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CSGSphere\n       (Godot.Core.CSGSphere.get_material,\n        Godot.Core.CSGSphere.get_radial_segments,\n        Godot.Core.CSGSphere.get_radius, Godot.Core.CSGSphere.get_rings,\n        Godot.Core.CSGSphere.get_smooth_faces,\n        Godot.Core.CSGSphere.set_material,\n        Godot.Core.CSGSphere.set_radial_segments,\n        Godot.Core.CSGSphere.set_radius, Godot.Core.CSGSphere.set_rings,\n        Godot.Core.CSGSphere.set_smooth_faces)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.CSGPrimitive()\n\ninstance NodeProperty CSGSphere \"material\" Material 'False where\n        nodeProperty\n          = (get_material, wrapDroppingSetter set_material, Nothing)\n\ninstance NodeProperty CSGSphere \"radial_segments\" Int 'False where\n        nodeProperty\n          = (get_radial_segments, wrapDroppingSetter set_radial_segments,\n             Nothing)\n\ninstance NodeProperty CSGSphere \"radius\" Float 'False where\n        nodeProperty = (get_radius, wrapDroppingSetter set_radius, Nothing)\n\ninstance NodeProperty CSGSphere \"rings\" Int 'False where\n        nodeProperty = (get_rings, wrapDroppingSetter set_rings, Nothing)\n\ninstance NodeProperty CSGSphere \"smooth_faces\" Bool 'False where\n        nodeProperty\n          = (get_smooth_faces, wrapDroppingSetter set_smooth_faces, Nothing)\n\n{-# NOINLINE bindCSGSphere_get_material #-}\n\nbindCSGSphere_get_material :: MethodBind\nbindCSGSphere_get_material\n  = unsafePerformIO $\n      withCString \"CSGSphere\" $\n        \\ clsNamePtr ->\n          withCString \"get_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_material ::\n               (CSGSphere :< cls, Object :< cls) => cls -> IO Material\nget_material cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGSphere_get_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGSphere \"get_material\" '[] (IO Material)\n         where\n        nodeMethod = Godot.Core.CSGSphere.get_material\n\n{-# NOINLINE bindCSGSphere_get_radial_segments #-}\n\nbindCSGSphere_get_radial_segments :: MethodBind\nbindCSGSphere_get_radial_segments\n  = unsafePerformIO $\n      withCString \"CSGSphere\" $\n        \\ clsNamePtr ->\n          withCString \"get_radial_segments\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_radial_segments ::\n                      (CSGSphere :< cls, Object :< cls) => cls -> IO Int\nget_radial_segments cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGSphere_get_radial_segments\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGSphere \"get_radial_segments\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.CSGSphere.get_radial_segments\n\n{-# NOINLINE bindCSGSphere_get_radius #-}\n\nbindCSGSphere_get_radius :: MethodBind\nbindCSGSphere_get_radius\n  = unsafePerformIO $\n      withCString \"CSGSphere\" $\n        \\ clsNamePtr ->\n          withCString \"get_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_radius :: (CSGSphere :< cls, Object :< cls) => cls -> IO Float\nget_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGSphere_get_radius (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGSphere \"get_radius\" '[] (IO Float) where\n        nodeMethod = Godot.Core.CSGSphere.get_radius\n\n{-# NOINLINE bindCSGSphere_get_rings #-}\n\nbindCSGSphere_get_rings :: MethodBind\nbindCSGSphere_get_rings\n  = unsafePerformIO $\n      withCString \"CSGSphere\" $\n        \\ clsNamePtr ->\n          withCString \"get_rings\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_rings :: (CSGSphere :< cls, Object :< cls) => cls -> IO Int\nget_rings cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGSphere_get_rings (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGSphere \"get_rings\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CSGSphere.get_rings\n\n{-# NOINLINE bindCSGSphere_get_smooth_faces #-}\n\nbindCSGSphere_get_smooth_faces :: MethodBind\nbindCSGSphere_get_smooth_faces\n  = unsafePerformIO $\n      withCString \"CSGSphere\" $\n        \\ clsNamePtr ->\n          withCString \"get_smooth_faces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_smooth_faces ::\n                   (CSGSphere :< cls, Object :< cls) => cls -> IO Bool\nget_smooth_faces cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGSphere_get_smooth_faces (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGSphere \"get_smooth_faces\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CSGSphere.get_smooth_faces\n\n{-# NOINLINE bindCSGSphere_set_material #-}\n\nbindCSGSphere_set_material :: MethodBind\nbindCSGSphere_set_material\n  = unsafePerformIO $\n      withCString \"CSGSphere\" $\n        \\ clsNamePtr ->\n          withCString \"set_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_material ::\n               (CSGSphere :< cls, Object :< cls) => cls -> Material -> IO ()\nset_material cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGSphere_set_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGSphere \"set_material\" '[Material] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGSphere.set_material\n\n{-# NOINLINE bindCSGSphere_set_radial_segments #-}\n\nbindCSGSphere_set_radial_segments :: MethodBind\nbindCSGSphere_set_radial_segments\n  = unsafePerformIO $\n      withCString \"CSGSphere\" $\n        \\ clsNamePtr ->\n          withCString \"set_radial_segments\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_radial_segments ::\n                      (CSGSphere :< cls, Object :< cls) => cls -> Int -> IO ()\nset_radial_segments cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGSphere_set_radial_segments\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGSphere \"set_radial_segments\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGSphere.set_radial_segments\n\n{-# NOINLINE bindCSGSphere_set_radius #-}\n\nbindCSGSphere_set_radius :: MethodBind\nbindCSGSphere_set_radius\n  = unsafePerformIO $\n      withCString \"CSGSphere\" $\n        \\ clsNamePtr ->\n          withCString \"set_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_radius ::\n             (CSGSphere :< cls, Object :< cls) => cls -> Float -> IO ()\nset_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGSphere_set_radius (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGSphere \"set_radius\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.CSGSphere.set_radius\n\n{-# NOINLINE bindCSGSphere_set_rings #-}\n\nbindCSGSphere_set_rings :: MethodBind\nbindCSGSphere_set_rings\n  = unsafePerformIO $\n      withCString \"CSGSphere\" $\n        \\ clsNamePtr ->\n          withCString \"set_rings\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_rings ::\n            (CSGSphere :< cls, Object :< cls) => cls -> Int -> IO ()\nset_rings cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGSphere_set_rings (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGSphere \"set_rings\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.CSGSphere.set_rings\n\n{-# NOINLINE bindCSGSphere_set_smooth_faces #-}\n\nbindCSGSphere_set_smooth_faces :: MethodBind\nbindCSGSphere_set_smooth_faces\n  = unsafePerformIO $\n      withCString \"CSGSphere\" $\n        \\ clsNamePtr ->\n          withCString \"set_smooth_faces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_smooth_faces ::\n                   (CSGSphere :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_smooth_faces cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGSphere_set_smooth_faces (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGSphere \"set_smooth_faces\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGSphere.set_smooth_faces"
  },
  {
    "path": "src/Godot/Core/CSGTorus.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CSGTorus\n       (Godot.Core.CSGTorus.get_inner_radius,\n        Godot.Core.CSGTorus.get_material,\n        Godot.Core.CSGTorus.get_outer_radius,\n        Godot.Core.CSGTorus.get_ring_sides, Godot.Core.CSGTorus.get_sides,\n        Godot.Core.CSGTorus.get_smooth_faces,\n        Godot.Core.CSGTorus.set_inner_radius,\n        Godot.Core.CSGTorus.set_material,\n        Godot.Core.CSGTorus.set_outer_radius,\n        Godot.Core.CSGTorus.set_ring_sides, Godot.Core.CSGTorus.set_sides,\n        Godot.Core.CSGTorus.set_smooth_faces)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.CSGPrimitive()\n\ninstance NodeProperty CSGTorus \"inner_radius\" Float 'False where\n        nodeProperty\n          = (get_inner_radius, wrapDroppingSetter set_inner_radius, Nothing)\n\ninstance NodeProperty CSGTorus \"material\" Material 'False where\n        nodeProperty\n          = (get_material, wrapDroppingSetter set_material, Nothing)\n\ninstance NodeProperty CSGTorus \"outer_radius\" Float 'False where\n        nodeProperty\n          = (get_outer_radius, wrapDroppingSetter set_outer_radius, Nothing)\n\ninstance NodeProperty CSGTorus \"ring_sides\" Int 'False where\n        nodeProperty\n          = (get_ring_sides, wrapDroppingSetter set_ring_sides, Nothing)\n\ninstance NodeProperty CSGTorus \"sides\" Int 'False where\n        nodeProperty = (get_sides, wrapDroppingSetter set_sides, Nothing)\n\ninstance NodeProperty CSGTorus \"smooth_faces\" Bool 'False where\n        nodeProperty\n          = (get_smooth_faces, wrapDroppingSetter set_smooth_faces, Nothing)\n\n{-# NOINLINE bindCSGTorus_get_inner_radius #-}\n\nbindCSGTorus_get_inner_radius :: MethodBind\nbindCSGTorus_get_inner_radius\n  = unsafePerformIO $\n      withCString \"CSGTorus\" $\n        \\ clsNamePtr ->\n          withCString \"get_inner_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_inner_radius ::\n                   (CSGTorus :< cls, Object :< cls) => cls -> IO Float\nget_inner_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGTorus_get_inner_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGTorus \"get_inner_radius\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.CSGTorus.get_inner_radius\n\n{-# NOINLINE bindCSGTorus_get_material #-}\n\nbindCSGTorus_get_material :: MethodBind\nbindCSGTorus_get_material\n  = unsafePerformIO $\n      withCString \"CSGTorus\" $\n        \\ clsNamePtr ->\n          withCString \"get_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_material ::\n               (CSGTorus :< cls, Object :< cls) => cls -> IO Material\nget_material cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGTorus_get_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGTorus \"get_material\" '[] (IO Material) where\n        nodeMethod = Godot.Core.CSGTorus.get_material\n\n{-# NOINLINE bindCSGTorus_get_outer_radius #-}\n\nbindCSGTorus_get_outer_radius :: MethodBind\nbindCSGTorus_get_outer_radius\n  = unsafePerformIO $\n      withCString \"CSGTorus\" $\n        \\ clsNamePtr ->\n          withCString \"get_outer_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_outer_radius ::\n                   (CSGTorus :< cls, Object :< cls) => cls -> IO Float\nget_outer_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGTorus_get_outer_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGTorus \"get_outer_radius\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.CSGTorus.get_outer_radius\n\n{-# NOINLINE bindCSGTorus_get_ring_sides #-}\n\nbindCSGTorus_get_ring_sides :: MethodBind\nbindCSGTorus_get_ring_sides\n  = unsafePerformIO $\n      withCString \"CSGTorus\" $\n        \\ clsNamePtr ->\n          withCString \"get_ring_sides\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_ring_sides :: (CSGTorus :< cls, Object :< cls) => cls -> IO Int\nget_ring_sides cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGTorus_get_ring_sides (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGTorus \"get_ring_sides\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CSGTorus.get_ring_sides\n\n{-# NOINLINE bindCSGTorus_get_sides #-}\n\nbindCSGTorus_get_sides :: MethodBind\nbindCSGTorus_get_sides\n  = unsafePerformIO $\n      withCString \"CSGTorus\" $\n        \\ clsNamePtr ->\n          withCString \"get_sides\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_sides :: (CSGTorus :< cls, Object :< cls) => cls -> IO Int\nget_sides cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGTorus_get_sides (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGTorus \"get_sides\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CSGTorus.get_sides\n\n{-# NOINLINE bindCSGTorus_get_smooth_faces #-}\n\nbindCSGTorus_get_smooth_faces :: MethodBind\nbindCSGTorus_get_smooth_faces\n  = unsafePerformIO $\n      withCString \"CSGTorus\" $\n        \\ clsNamePtr ->\n          withCString \"get_smooth_faces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_smooth_faces ::\n                   (CSGTorus :< cls, Object :< cls) => cls -> IO Bool\nget_smooth_faces cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGTorus_get_smooth_faces (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGTorus \"get_smooth_faces\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.CSGTorus.get_smooth_faces\n\n{-# NOINLINE bindCSGTorus_set_inner_radius #-}\n\nbindCSGTorus_set_inner_radius :: MethodBind\nbindCSGTorus_set_inner_radius\n  = unsafePerformIO $\n      withCString \"CSGTorus\" $\n        \\ clsNamePtr ->\n          withCString \"set_inner_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_inner_radius ::\n                   (CSGTorus :< cls, Object :< cls) => cls -> Float -> IO ()\nset_inner_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGTorus_set_inner_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGTorus \"set_inner_radius\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGTorus.set_inner_radius\n\n{-# NOINLINE bindCSGTorus_set_material #-}\n\nbindCSGTorus_set_material :: MethodBind\nbindCSGTorus_set_material\n  = unsafePerformIO $\n      withCString \"CSGTorus\" $\n        \\ clsNamePtr ->\n          withCString \"set_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_material ::\n               (CSGTorus :< cls, Object :< cls) => cls -> Material -> IO ()\nset_material cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGTorus_set_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGTorus \"set_material\" '[Material] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGTorus.set_material\n\n{-# NOINLINE bindCSGTorus_set_outer_radius #-}\n\nbindCSGTorus_set_outer_radius :: MethodBind\nbindCSGTorus_set_outer_radius\n  = unsafePerformIO $\n      withCString \"CSGTorus\" $\n        \\ clsNamePtr ->\n          withCString \"set_outer_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_outer_radius ::\n                   (CSGTorus :< cls, Object :< cls) => cls -> Float -> IO ()\nset_outer_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGTorus_set_outer_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGTorus \"set_outer_radius\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGTorus.set_outer_radius\n\n{-# NOINLINE bindCSGTorus_set_ring_sides #-}\n\nbindCSGTorus_set_ring_sides :: MethodBind\nbindCSGTorus_set_ring_sides\n  = unsafePerformIO $\n      withCString \"CSGTorus\" $\n        \\ clsNamePtr ->\n          withCString \"set_ring_sides\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_ring_sides ::\n                 (CSGTorus :< cls, Object :< cls) => cls -> Int -> IO ()\nset_ring_sides cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGTorus_set_ring_sides (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGTorus \"set_ring_sides\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.CSGTorus.set_ring_sides\n\n{-# NOINLINE bindCSGTorus_set_sides #-}\n\nbindCSGTorus_set_sides :: MethodBind\nbindCSGTorus_set_sides\n  = unsafePerformIO $\n      withCString \"CSGTorus\" $\n        \\ clsNamePtr ->\n          withCString \"set_sides\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_sides ::\n            (CSGTorus :< cls, Object :< cls) => cls -> Int -> IO ()\nset_sides cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGTorus_set_sides (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGTorus \"set_sides\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.CSGTorus.set_sides\n\n{-# NOINLINE bindCSGTorus_set_smooth_faces #-}\n\nbindCSGTorus_set_smooth_faces :: MethodBind\nbindCSGTorus_set_smooth_faces\n  = unsafePerformIO $\n      withCString \"CSGTorus\" $\n        \\ clsNamePtr ->\n          withCString \"set_smooth_faces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_smooth_faces ::\n                   (CSGTorus :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_smooth_faces cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCSGTorus_set_smooth_faces (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CSGTorus \"set_smooth_faces\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.CSGTorus.set_smooth_faces"
  },
  {
    "path": "src/Godot/Core/Camera.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Camera\n       (Godot.Core.Camera._PROJECTION_FRUSTUM,\n        Godot.Core.Camera._PROJECTION_ORTHOGONAL,\n        Godot.Core.Camera._KEEP_HEIGHT,\n        Godot.Core.Camera._DOPPLER_TRACKING_PHYSICS_STEP,\n        Godot.Core.Camera._DOPPLER_TRACKING_DISABLED,\n        Godot.Core.Camera._KEEP_WIDTH,\n        Godot.Core.Camera._DOPPLER_TRACKING_IDLE_STEP,\n        Godot.Core.Camera._PROJECTION_PERSPECTIVE,\n        Godot.Core.Camera.clear_current, Godot.Core.Camera.get_camera_rid,\n        Godot.Core.Camera.get_camera_transform,\n        Godot.Core.Camera.get_cull_mask,\n        Godot.Core.Camera.get_cull_mask_bit,\n        Godot.Core.Camera.get_doppler_tracking,\n        Godot.Core.Camera.get_environment, Godot.Core.Camera.get_fov,\n        Godot.Core.Camera.get_frustum,\n        Godot.Core.Camera.get_frustum_offset,\n        Godot.Core.Camera.get_h_offset,\n        Godot.Core.Camera.get_keep_aspect_mode,\n        Godot.Core.Camera.get_projection, Godot.Core.Camera.get_size,\n        Godot.Core.Camera.get_v_offset, Godot.Core.Camera.get_zfar,\n        Godot.Core.Camera.get_znear, Godot.Core.Camera.is_current,\n        Godot.Core.Camera.is_position_behind,\n        Godot.Core.Camera.make_current,\n        Godot.Core.Camera.project_local_ray_normal,\n        Godot.Core.Camera.project_position,\n        Godot.Core.Camera.project_ray_normal,\n        Godot.Core.Camera.project_ray_origin,\n        Godot.Core.Camera.set_cull_mask,\n        Godot.Core.Camera.set_cull_mask_bit, Godot.Core.Camera.set_current,\n        Godot.Core.Camera.set_doppler_tracking,\n        Godot.Core.Camera.set_environment, Godot.Core.Camera.set_fov,\n        Godot.Core.Camera.set_frustum,\n        Godot.Core.Camera.set_frustum_offset,\n        Godot.Core.Camera.set_h_offset,\n        Godot.Core.Camera.set_keep_aspect_mode,\n        Godot.Core.Camera.set_orthogonal,\n        Godot.Core.Camera.set_perspective,\n        Godot.Core.Camera.set_projection, Godot.Core.Camera.set_size,\n        Godot.Core.Camera.set_v_offset, Godot.Core.Camera.set_zfar,\n        Godot.Core.Camera.set_znear, Godot.Core.Camera.unproject_position)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\n_PROJECTION_FRUSTUM :: Int\n_PROJECTION_FRUSTUM = 2\n\n_PROJECTION_ORTHOGONAL :: Int\n_PROJECTION_ORTHOGONAL = 1\n\n_KEEP_HEIGHT :: Int\n_KEEP_HEIGHT = 1\n\n_DOPPLER_TRACKING_PHYSICS_STEP :: Int\n_DOPPLER_TRACKING_PHYSICS_STEP = 2\n\n_DOPPLER_TRACKING_DISABLED :: Int\n_DOPPLER_TRACKING_DISABLED = 0\n\n_KEEP_WIDTH :: Int\n_KEEP_WIDTH = 0\n\n_DOPPLER_TRACKING_IDLE_STEP :: Int\n_DOPPLER_TRACKING_IDLE_STEP = 1\n\n_PROJECTION_PERSPECTIVE :: Int\n_PROJECTION_PERSPECTIVE = 0\n\ninstance NodeProperty Camera \"cull_mask\" Int 'False where\n        nodeProperty\n          = (get_cull_mask, wrapDroppingSetter set_cull_mask, Nothing)\n\ninstance NodeProperty Camera \"current\" Bool 'False where\n        nodeProperty\n          = (is_current, wrapDroppingSetter set_current, Nothing)\n\ninstance NodeProperty Camera \"doppler_tracking\" Int 'False where\n        nodeProperty\n          = (get_doppler_tracking, wrapDroppingSetter set_doppler_tracking,\n             Nothing)\n\ninstance NodeProperty Camera \"environment\" Environment 'False where\n        nodeProperty\n          = (get_environment, wrapDroppingSetter set_environment, Nothing)\n\ninstance NodeProperty Camera \"far\" Float 'False where\n        nodeProperty = (get_zfar, wrapDroppingSetter set_zfar, Nothing)\n\ninstance NodeProperty Camera \"fov\" Float 'False where\n        nodeProperty = (get_fov, wrapDroppingSetter set_fov, Nothing)\n\ninstance NodeProperty Camera \"frustum_offset\" Vector2 'False where\n        nodeProperty\n          = (get_frustum_offset, wrapDroppingSetter set_frustum_offset,\n             Nothing)\n\ninstance NodeProperty Camera \"h_offset\" Float 'False where\n        nodeProperty\n          = (get_h_offset, wrapDroppingSetter set_h_offset, Nothing)\n\ninstance NodeProperty Camera \"keep_aspect\" Int 'False where\n        nodeProperty\n          = (get_keep_aspect_mode, wrapDroppingSetter set_keep_aspect_mode,\n             Nothing)\n\ninstance NodeProperty Camera \"near\" Float 'False where\n        nodeProperty = (get_znear, wrapDroppingSetter set_znear, Nothing)\n\ninstance NodeProperty Camera \"projection\" Int 'False where\n        nodeProperty\n          = (get_projection, wrapDroppingSetter set_projection, Nothing)\n\ninstance NodeProperty Camera \"size\" Float 'False where\n        nodeProperty = (get_size, wrapDroppingSetter set_size, Nothing)\n\ninstance NodeProperty Camera \"v_offset\" Float 'False where\n        nodeProperty\n          = (get_v_offset, wrapDroppingSetter set_v_offset, Nothing)\n\n{-# NOINLINE bindCamera_clear_current #-}\n\n-- | If this is the current camera, remove it from being current. If @enable_next@ is @true@, request to make the next camera current, if any.\nbindCamera_clear_current :: MethodBind\nbindCamera_clear_current\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"clear_current\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If this is the current camera, remove it from being current. If @enable_next@ is @true@, request to make the next camera current, if any.\nclear_current ::\n                (Camera :< cls, Object :< cls) => cls -> Maybe Bool -> IO ()\nclear_current cls arg1\n  = withVariantArray [maybe (VariantBool True) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_clear_current (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"clear_current\" '[Maybe Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Camera.clear_current\n\n{-# NOINLINE bindCamera_get_camera_rid #-}\n\n-- | Returns the camera's RID from the @VisualServer@.\nbindCamera_get_camera_rid :: MethodBind\nbindCamera_get_camera_rid\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"get_camera_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the camera's RID from the @VisualServer@.\nget_camera_rid :: (Camera :< cls, Object :< cls) => cls -> IO Rid\nget_camera_rid cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_get_camera_rid (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"get_camera_rid\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.Camera.get_camera_rid\n\n{-# NOINLINE bindCamera_get_camera_transform #-}\n\n-- | Gets the camera transform. Subclassed cameras such as @InterpolatedCamera@ may provide different transforms than the @Node@ transform.\nbindCamera_get_camera_transform :: MethodBind\nbindCamera_get_camera_transform\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"get_camera_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the camera transform. Subclassed cameras such as @InterpolatedCamera@ may provide different transforms than the @Node@ transform.\nget_camera_transform ::\n                       (Camera :< cls, Object :< cls) => cls -> IO Transform\nget_camera_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_get_camera_transform (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"get_camera_transform\" '[]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.Camera.get_camera_transform\n\n{-# NOINLINE bindCamera_get_cull_mask #-}\n\n-- | The culling mask that describes which 3D render layers are rendered by this camera.\nbindCamera_get_cull_mask :: MethodBind\nbindCamera_get_cull_mask\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"get_cull_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The culling mask that describes which 3D render layers are rendered by this camera.\nget_cull_mask :: (Camera :< cls, Object :< cls) => cls -> IO Int\nget_cull_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_get_cull_mask (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"get_cull_mask\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Camera.get_cull_mask\n\n{-# NOINLINE bindCamera_get_cull_mask_bit #-}\n\n-- | Returns @true@ if the given @layer@ in the @cull_mask@ is enabled, @false@ otherwise.\nbindCamera_get_cull_mask_bit :: MethodBind\nbindCamera_get_cull_mask_bit\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"get_cull_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the given @layer@ in the @cull_mask@ is enabled, @false@ otherwise.\nget_cull_mask_bit ::\n                    (Camera :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_cull_mask_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_get_cull_mask_bit (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"get_cull_mask_bit\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Camera.get_cull_mask_bit\n\n{-# NOINLINE bindCamera_get_doppler_tracking #-}\n\n-- | If not @DOPPLER_TRACKING_DISABLED@, this camera will simulate the @url=https://en.wikipedia.org/wiki/Doppler_effect@Doppler effect@/url@ for objects changed in particular @_process@ methods. See @enum DopplerTracking@ for possible values.\nbindCamera_get_doppler_tracking :: MethodBind\nbindCamera_get_doppler_tracking\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"get_doppler_tracking\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If not @DOPPLER_TRACKING_DISABLED@, this camera will simulate the @url=https://en.wikipedia.org/wiki/Doppler_effect@Doppler effect@/url@ for objects changed in particular @_process@ methods. See @enum DopplerTracking@ for possible values.\nget_doppler_tracking ::\n                       (Camera :< cls, Object :< cls) => cls -> IO Int\nget_doppler_tracking cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_get_doppler_tracking (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"get_doppler_tracking\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Camera.get_doppler_tracking\n\n{-# NOINLINE bindCamera_get_environment #-}\n\n-- | The @Environment@ to use for this camera.\nbindCamera_get_environment :: MethodBind\nbindCamera_get_environment\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"get_environment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Environment@ to use for this camera.\nget_environment ::\n                  (Camera :< cls, Object :< cls) => cls -> IO Environment\nget_environment cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_get_environment (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"get_environment\" '[] (IO Environment)\n         where\n        nodeMethod = Godot.Core.Camera.get_environment\n\n{-# NOINLINE bindCamera_get_fov #-}\n\n-- | The camera's field of view angle (in degrees). Only applicable in perspective mode. Since @keep_aspect@ locks one axis, @fov@ sets the other axis' field of view angle.\nbindCamera_get_fov :: MethodBind\nbindCamera_get_fov\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"get_fov\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's field of view angle (in degrees). Only applicable in perspective mode. Since @keep_aspect@ locks one axis, @fov@ sets the other axis' field of view angle.\nget_fov :: (Camera :< cls, Object :< cls) => cls -> IO Float\nget_fov cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_get_fov (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"get_fov\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Camera.get_fov\n\n{-# NOINLINE bindCamera_get_frustum #-}\n\n-- | Returns the camera's frustum planes in world-space units as an array of @Plane@s in the following order: near, far, left, top, right, bottom. Not to be confused with @frustum_offset@.\nbindCamera_get_frustum :: MethodBind\nbindCamera_get_frustum\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"get_frustum\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the camera's frustum planes in world-space units as an array of @Plane@s in the following order: near, far, left, top, right, bottom. Not to be confused with @frustum_offset@.\nget_frustum :: (Camera :< cls, Object :< cls) => cls -> IO Array\nget_frustum cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_get_frustum (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"get_frustum\" '[] (IO Array) where\n        nodeMethod = Godot.Core.Camera.get_frustum\n\n{-# NOINLINE bindCamera_get_frustum_offset #-}\n\n-- | The camera's frustum offset. This can be changed from the default to create \"tilted frustum\" effects such as @url=https://zdoom.org/wiki/Y-shearing@Y-shearing@/url@.\nbindCamera_get_frustum_offset :: MethodBind\nbindCamera_get_frustum_offset\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"get_frustum_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's frustum offset. This can be changed from the default to create \"tilted frustum\" effects such as @url=https://zdoom.org/wiki/Y-shearing@Y-shearing@/url@.\nget_frustum_offset ::\n                     (Camera :< cls, Object :< cls) => cls -> IO Vector2\nget_frustum_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_get_frustum_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"get_frustum_offset\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Camera.get_frustum_offset\n\n{-# NOINLINE bindCamera_get_h_offset #-}\n\n-- | The horizontal (X) offset of the camera viewport.\nbindCamera_get_h_offset :: MethodBind\nbindCamera_get_h_offset\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"get_h_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The horizontal (X) offset of the camera viewport.\nget_h_offset :: (Camera :< cls, Object :< cls) => cls -> IO Float\nget_h_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_get_h_offset (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"get_h_offset\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Camera.get_h_offset\n\n{-# NOINLINE bindCamera_get_keep_aspect_mode #-}\n\n-- | The axis to lock during @fov@/@size@ adjustments. Can be either @KEEP_WIDTH@ or @KEEP_HEIGHT@.\nbindCamera_get_keep_aspect_mode :: MethodBind\nbindCamera_get_keep_aspect_mode\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"get_keep_aspect_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The axis to lock during @fov@/@size@ adjustments. Can be either @KEEP_WIDTH@ or @KEEP_HEIGHT@.\nget_keep_aspect_mode ::\n                       (Camera :< cls, Object :< cls) => cls -> IO Int\nget_keep_aspect_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_get_keep_aspect_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"get_keep_aspect_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Camera.get_keep_aspect_mode\n\n{-# NOINLINE bindCamera_get_projection #-}\n\n-- | The camera's projection mode. In @PROJECTION_PERSPECTIVE@ mode, objects' Z distance from the camera's local space scales their perceived size.\nbindCamera_get_projection :: MethodBind\nbindCamera_get_projection\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"get_projection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's projection mode. In @PROJECTION_PERSPECTIVE@ mode, objects' Z distance from the camera's local space scales their perceived size.\nget_projection :: (Camera :< cls, Object :< cls) => cls -> IO Int\nget_projection cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_get_projection (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"get_projection\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Camera.get_projection\n\n{-# NOINLINE bindCamera_get_size #-}\n\n-- | The camera's size measured as 1/2 the width or height. Only applicable in orthogonal mode. Since @keep_aspect@ locks on axis, @size@ sets the other axis' size length.\nbindCamera_get_size :: MethodBind\nbindCamera_get_size\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"get_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's size measured as 1/2 the width or height. Only applicable in orthogonal mode. Since @keep_aspect@ locks on axis, @size@ sets the other axis' size length.\nget_size :: (Camera :< cls, Object :< cls) => cls -> IO Float\nget_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_get_size (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"get_size\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Camera.get_size\n\n{-# NOINLINE bindCamera_get_v_offset #-}\n\n-- | The vertical (Y) offset of the camera viewport.\nbindCamera_get_v_offset :: MethodBind\nbindCamera_get_v_offset\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"get_v_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The vertical (Y) offset of the camera viewport.\nget_v_offset :: (Camera :< cls, Object :< cls) => cls -> IO Float\nget_v_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_get_v_offset (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"get_v_offset\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Camera.get_v_offset\n\n{-# NOINLINE bindCamera_get_zfar #-}\n\n-- | The distance to the far culling boundary for this camera relative to its local Z axis.\nbindCamera_get_zfar :: MethodBind\nbindCamera_get_zfar\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"get_zfar\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance to the far culling boundary for this camera relative to its local Z axis.\nget_zfar :: (Camera :< cls, Object :< cls) => cls -> IO Float\nget_zfar cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_get_zfar (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"get_zfar\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Camera.get_zfar\n\n{-# NOINLINE bindCamera_get_znear #-}\n\n-- | The distance to the near culling boundary for this camera relative to its local Z axis.\nbindCamera_get_znear :: MethodBind\nbindCamera_get_znear\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"get_znear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance to the near culling boundary for this camera relative to its local Z axis.\nget_znear :: (Camera :< cls, Object :< cls) => cls -> IO Float\nget_znear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_get_znear (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"get_znear\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Camera.get_znear\n\n{-# NOINLINE bindCamera_is_current #-}\n\n-- | If @true@, the ancestor @Viewport@ is currently using this camera.\nbindCamera_is_current :: MethodBind\nbindCamera_is_current\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"is_current\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the ancestor @Viewport@ is currently using this camera.\nis_current :: (Camera :< cls, Object :< cls) => cls -> IO Bool\nis_current cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_is_current (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"is_current\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Camera.is_current\n\n{-# NOINLINE bindCamera_is_position_behind #-}\n\n-- | Returns @true@ if the given position is behind the camera.\n--   \t\t\t\t__Note:__ A position which returns @false@ may still be outside the camera's field of view.\nbindCamera_is_position_behind :: MethodBind\nbindCamera_is_position_behind\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"is_position_behind\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the given position is behind the camera.\n--   \t\t\t\t__Note:__ A position which returns @false@ may still be outside the camera's field of view.\nis_position_behind ::\n                     (Camera :< cls, Object :< cls) => cls -> Vector3 -> IO Bool\nis_position_behind cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_is_position_behind (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"is_position_behind\" '[Vector3]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Camera.is_position_behind\n\n{-# NOINLINE bindCamera_make_current #-}\n\n-- | Makes this camera the current camera for the @Viewport@ (see class description). If the camera node is outside the scene tree, it will attempt to become current once it's added.\nbindCamera_make_current :: MethodBind\nbindCamera_make_current\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"make_current\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Makes this camera the current camera for the @Viewport@ (see class description). If the camera node is outside the scene tree, it will attempt to become current once it's added.\nmake_current :: (Camera :< cls, Object :< cls) => cls -> IO ()\nmake_current cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_make_current (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"make_current\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Camera.make_current\n\n{-# NOINLINE bindCamera_project_local_ray_normal #-}\n\n-- | Returns a normal vector from the screen point location directed along the camera. Orthogonal cameras are normalized. Perspective cameras account for perspective, screen width/height, etc.\nbindCamera_project_local_ray_normal :: MethodBind\nbindCamera_project_local_ray_normal\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"project_local_ray_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a normal vector from the screen point location directed along the camera. Orthogonal cameras are normalized. Perspective cameras account for perspective, screen width/height, etc.\nproject_local_ray_normal ::\n                           (Camera :< cls, Object :< cls) => cls -> Vector2 -> IO Vector3\nproject_local_ray_normal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_project_local_ray_normal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"project_local_ray_normal\" '[Vector2]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Camera.project_local_ray_normal\n\n{-# NOINLINE bindCamera_project_position #-}\n\n-- | Returns the 3D point in worldspace that maps to the given 2D coordinate in the @Viewport@ rectangle on a plane that is the given @z_depth@ distance into the scene away from the camera.\nbindCamera_project_position :: MethodBind\nbindCamera_project_position\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"project_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the 3D point in worldspace that maps to the given 2D coordinate in the @Viewport@ rectangle on a plane that is the given @z_depth@ distance into the scene away from the camera.\nproject_position ::\n                   (Camera :< cls, Object :< cls) =>\n                   cls -> Vector2 -> Float -> IO Vector3\nproject_position cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_project_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"project_position\" '[Vector2, Float]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Camera.project_position\n\n{-# NOINLINE bindCamera_project_ray_normal #-}\n\n-- | Returns a normal vector in worldspace, that is the result of projecting a point on the @Viewport@ rectangle by the camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking.\nbindCamera_project_ray_normal :: MethodBind\nbindCamera_project_ray_normal\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"project_ray_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a normal vector in worldspace, that is the result of projecting a point on the @Viewport@ rectangle by the camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking.\nproject_ray_normal ::\n                     (Camera :< cls, Object :< cls) => cls -> Vector2 -> IO Vector3\nproject_ray_normal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_project_ray_normal (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"project_ray_normal\" '[Vector2]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Camera.project_ray_normal\n\n{-# NOINLINE bindCamera_project_ray_origin #-}\n\n-- | Returns a 3D position in worldspace, that is the result of projecting a point on the @Viewport@ rectangle by the camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking.\nbindCamera_project_ray_origin :: MethodBind\nbindCamera_project_ray_origin\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"project_ray_origin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a 3D position in worldspace, that is the result of projecting a point on the @Viewport@ rectangle by the camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking.\nproject_ray_origin ::\n                     (Camera :< cls, Object :< cls) => cls -> Vector2 -> IO Vector3\nproject_ray_origin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_project_ray_origin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"project_ray_origin\" '[Vector2]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Camera.project_ray_origin\n\n{-# NOINLINE bindCamera_set_cull_mask #-}\n\n-- | The culling mask that describes which 3D render layers are rendered by this camera.\nbindCamera_set_cull_mask :: MethodBind\nbindCamera_set_cull_mask\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"set_cull_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The culling mask that describes which 3D render layers are rendered by this camera.\nset_cull_mask ::\n                (Camera :< cls, Object :< cls) => cls -> Int -> IO ()\nset_cull_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_set_cull_mask (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"set_cull_mask\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Camera.set_cull_mask\n\n{-# NOINLINE bindCamera_set_cull_mask_bit #-}\n\n-- | Enables or disables the given @layer@ in the @cull_mask@.\nbindCamera_set_cull_mask_bit :: MethodBind\nbindCamera_set_cull_mask_bit\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"set_cull_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables or disables the given @layer@ in the @cull_mask@.\nset_cull_mask_bit ::\n                    (Camera :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_cull_mask_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_set_cull_mask_bit (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"set_cull_mask_bit\" '[Int, Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Camera.set_cull_mask_bit\n\n{-# NOINLINE bindCamera_set_current #-}\n\n-- | If @true@, the ancestor @Viewport@ is currently using this camera.\nbindCamera_set_current :: MethodBind\nbindCamera_set_current\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"set_current\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the ancestor @Viewport@ is currently using this camera.\nset_current ::\n              (Camera :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_current cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_set_current (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"set_current\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Camera.set_current\n\n{-# NOINLINE bindCamera_set_doppler_tracking #-}\n\n-- | If not @DOPPLER_TRACKING_DISABLED@, this camera will simulate the @url=https://en.wikipedia.org/wiki/Doppler_effect@Doppler effect@/url@ for objects changed in particular @_process@ methods. See @enum DopplerTracking@ for possible values.\nbindCamera_set_doppler_tracking :: MethodBind\nbindCamera_set_doppler_tracking\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"set_doppler_tracking\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If not @DOPPLER_TRACKING_DISABLED@, this camera will simulate the @url=https://en.wikipedia.org/wiki/Doppler_effect@Doppler effect@/url@ for objects changed in particular @_process@ methods. See @enum DopplerTracking@ for possible values.\nset_doppler_tracking ::\n                       (Camera :< cls, Object :< cls) => cls -> Int -> IO ()\nset_doppler_tracking cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_set_doppler_tracking (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"set_doppler_tracking\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Camera.set_doppler_tracking\n\n{-# NOINLINE bindCamera_set_environment #-}\n\n-- | The @Environment@ to use for this camera.\nbindCamera_set_environment :: MethodBind\nbindCamera_set_environment\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"set_environment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Environment@ to use for this camera.\nset_environment ::\n                  (Camera :< cls, Object :< cls) => cls -> Environment -> IO ()\nset_environment cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_set_environment (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"set_environment\" '[Environment] (IO ())\n         where\n        nodeMethod = Godot.Core.Camera.set_environment\n\n{-# NOINLINE bindCamera_set_fov #-}\n\n-- | The camera's field of view angle (in degrees). Only applicable in perspective mode. Since @keep_aspect@ locks one axis, @fov@ sets the other axis' field of view angle.\nbindCamera_set_fov :: MethodBind\nbindCamera_set_fov\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"set_fov\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's field of view angle (in degrees). Only applicable in perspective mode. Since @keep_aspect@ locks one axis, @fov@ sets the other axis' field of view angle.\nset_fov :: (Camera :< cls, Object :< cls) => cls -> Float -> IO ()\nset_fov cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_set_fov (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"set_fov\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Camera.set_fov\n\n{-# NOINLINE bindCamera_set_frustum #-}\n\n-- | Sets the camera projection to frustum mode (see @PROJECTION_FRUSTUM@), by specifying a @size@, an @offset@, and the @z_near@ and @z_far@ clip planes in world-space units.\nbindCamera_set_frustum :: MethodBind\nbindCamera_set_frustum\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"set_frustum\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the camera projection to frustum mode (see @PROJECTION_FRUSTUM@), by specifying a @size@, an @offset@, and the @z_near@ and @z_far@ clip planes in world-space units.\nset_frustum ::\n              (Camera :< cls, Object :< cls) =>\n              cls -> Float -> Vector2 -> Float -> Float -> IO ()\nset_frustum cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_set_frustum (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"set_frustum\"\n           '[Float, Vector2, Float, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Camera.set_frustum\n\n{-# NOINLINE bindCamera_set_frustum_offset #-}\n\n-- | The camera's frustum offset. This can be changed from the default to create \"tilted frustum\" effects such as @url=https://zdoom.org/wiki/Y-shearing@Y-shearing@/url@.\nbindCamera_set_frustum_offset :: MethodBind\nbindCamera_set_frustum_offset\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"set_frustum_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's frustum offset. This can be changed from the default to create \"tilted frustum\" effects such as @url=https://zdoom.org/wiki/Y-shearing@Y-shearing@/url@.\nset_frustum_offset ::\n                     (Camera :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_frustum_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_set_frustum_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"set_frustum_offset\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.Camera.set_frustum_offset\n\n{-# NOINLINE bindCamera_set_h_offset #-}\n\n-- | The horizontal (X) offset of the camera viewport.\nbindCamera_set_h_offset :: MethodBind\nbindCamera_set_h_offset\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"set_h_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The horizontal (X) offset of the camera viewport.\nset_h_offset ::\n               (Camera :< cls, Object :< cls) => cls -> Float -> IO ()\nset_h_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_set_h_offset (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"set_h_offset\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Camera.set_h_offset\n\n{-# NOINLINE bindCamera_set_keep_aspect_mode #-}\n\n-- | The axis to lock during @fov@/@size@ adjustments. Can be either @KEEP_WIDTH@ or @KEEP_HEIGHT@.\nbindCamera_set_keep_aspect_mode :: MethodBind\nbindCamera_set_keep_aspect_mode\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"set_keep_aspect_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The axis to lock during @fov@/@size@ adjustments. Can be either @KEEP_WIDTH@ or @KEEP_HEIGHT@.\nset_keep_aspect_mode ::\n                       (Camera :< cls, Object :< cls) => cls -> Int -> IO ()\nset_keep_aspect_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_set_keep_aspect_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"set_keep_aspect_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Camera.set_keep_aspect_mode\n\n{-# NOINLINE bindCamera_set_orthogonal #-}\n\n-- | Sets the camera projection to orthogonal mode (see @PROJECTION_ORTHOGONAL@), by specifying a @size@, and the @z_near@ and @z_far@ clip planes in world-space units. (As a hint, 2D games often use this projection, with values specified in pixels.)\nbindCamera_set_orthogonal :: MethodBind\nbindCamera_set_orthogonal\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"set_orthogonal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the camera projection to orthogonal mode (see @PROJECTION_ORTHOGONAL@), by specifying a @size@, and the @z_near@ and @z_far@ clip planes in world-space units. (As a hint, 2D games often use this projection, with values specified in pixels.)\nset_orthogonal ::\n                 (Camera :< cls, Object :< cls) =>\n                 cls -> Float -> Float -> Float -> IO ()\nset_orthogonal cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_set_orthogonal (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"set_orthogonal\" '[Float, Float, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Camera.set_orthogonal\n\n{-# NOINLINE bindCamera_set_perspective #-}\n\n-- | Sets the camera projection to perspective mode (see @PROJECTION_PERSPECTIVE@), by specifying a @fov@ (field of view) angle in degrees, and the @z_near@ and @z_far@ clip planes in world-space units.\nbindCamera_set_perspective :: MethodBind\nbindCamera_set_perspective\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"set_perspective\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the camera projection to perspective mode (see @PROJECTION_PERSPECTIVE@), by specifying a @fov@ (field of view) angle in degrees, and the @z_near@ and @z_far@ clip planes in world-space units.\nset_perspective ::\n                  (Camera :< cls, Object :< cls) =>\n                  cls -> Float -> Float -> Float -> IO ()\nset_perspective cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_set_perspective (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"set_perspective\" '[Float, Float, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Camera.set_perspective\n\n{-# NOINLINE bindCamera_set_projection #-}\n\n-- | The camera's projection mode. In @PROJECTION_PERSPECTIVE@ mode, objects' Z distance from the camera's local space scales their perceived size.\nbindCamera_set_projection :: MethodBind\nbindCamera_set_projection\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"set_projection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's projection mode. In @PROJECTION_PERSPECTIVE@ mode, objects' Z distance from the camera's local space scales their perceived size.\nset_projection ::\n                 (Camera :< cls, Object :< cls) => cls -> Int -> IO ()\nset_projection cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_set_projection (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"set_projection\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Camera.set_projection\n\n{-# NOINLINE bindCamera_set_size #-}\n\n-- | The camera's size measured as 1/2 the width or height. Only applicable in orthogonal mode. Since @keep_aspect@ locks on axis, @size@ sets the other axis' size length.\nbindCamera_set_size :: MethodBind\nbindCamera_set_size\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"set_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's size measured as 1/2 the width or height. Only applicable in orthogonal mode. Since @keep_aspect@ locks on axis, @size@ sets the other axis' size length.\nset_size :: (Camera :< cls, Object :< cls) => cls -> Float -> IO ()\nset_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_set_size (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"set_size\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Camera.set_size\n\n{-# NOINLINE bindCamera_set_v_offset #-}\n\n-- | The vertical (Y) offset of the camera viewport.\nbindCamera_set_v_offset :: MethodBind\nbindCamera_set_v_offset\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"set_v_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The vertical (Y) offset of the camera viewport.\nset_v_offset ::\n               (Camera :< cls, Object :< cls) => cls -> Float -> IO ()\nset_v_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_set_v_offset (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"set_v_offset\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Camera.set_v_offset\n\n{-# NOINLINE bindCamera_set_zfar #-}\n\n-- | The distance to the far culling boundary for this camera relative to its local Z axis.\nbindCamera_set_zfar :: MethodBind\nbindCamera_set_zfar\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"set_zfar\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance to the far culling boundary for this camera relative to its local Z axis.\nset_zfar :: (Camera :< cls, Object :< cls) => cls -> Float -> IO ()\nset_zfar cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_set_zfar (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"set_zfar\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Camera.set_zfar\n\n{-# NOINLINE bindCamera_set_znear #-}\n\n-- | The distance to the near culling boundary for this camera relative to its local Z axis.\nbindCamera_set_znear :: MethodBind\nbindCamera_set_znear\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"set_znear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance to the near culling boundary for this camera relative to its local Z axis.\nset_znear ::\n            (Camera :< cls, Object :< cls) => cls -> Float -> IO ()\nset_znear cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_set_znear (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"set_znear\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Camera.set_znear\n\n{-# NOINLINE bindCamera_unproject_position #-}\n\n-- | Returns the 2D coordinate in the @Viewport@ rectangle that maps to the given 3D point in worldspace.\nbindCamera_unproject_position :: MethodBind\nbindCamera_unproject_position\n  = unsafePerformIO $\n      withCString \"Camera\" $\n        \\ clsNamePtr ->\n          withCString \"unproject_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the 2D coordinate in the @Viewport@ rectangle that maps to the given 3D point in worldspace.\nunproject_position ::\n                     (Camera :< cls, Object :< cls) => cls -> Vector3 -> IO Vector2\nunproject_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera_unproject_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera \"unproject_position\" '[Vector3]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Camera.unproject_position"
  },
  {
    "path": "src/Godot/Core/Camera2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Camera2D\n       (Godot.Core.Camera2D._ANCHOR_MODE_FIXED_TOP_LEFT,\n        Godot.Core.Camera2D._CAMERA2D_PROCESS_PHYSICS,\n        Godot.Core.Camera2D._CAMERA2D_PROCESS_IDLE,\n        Godot.Core.Camera2D._ANCHOR_MODE_DRAG_CENTER,\n        Godot.Core.Camera2D._make_current,\n        Godot.Core.Camera2D._set_current,\n        Godot.Core.Camera2D._set_old_smoothing,\n        Godot.Core.Camera2D._update_scroll, Godot.Core.Camera2D.align,\n        Godot.Core.Camera2D.clear_current,\n        Godot.Core.Camera2D.force_update_scroll,\n        Godot.Core.Camera2D.get_anchor_mode,\n        Godot.Core.Camera2D.get_camera_position,\n        Godot.Core.Camera2D.get_camera_screen_center,\n        Godot.Core.Camera2D.get_custom_viewport,\n        Godot.Core.Camera2D.get_drag_margin,\n        Godot.Core.Camera2D.get_follow_smoothing,\n        Godot.Core.Camera2D.get_h_offset, Godot.Core.Camera2D.get_limit,\n        Godot.Core.Camera2D.get_offset,\n        Godot.Core.Camera2D.get_process_mode,\n        Godot.Core.Camera2D.get_v_offset, Godot.Core.Camera2D.get_zoom,\n        Godot.Core.Camera2D.is_current,\n        Godot.Core.Camera2D.is_follow_smoothing_enabled,\n        Godot.Core.Camera2D.is_h_drag_enabled,\n        Godot.Core.Camera2D.is_limit_drawing_enabled,\n        Godot.Core.Camera2D.is_limit_smoothing_enabled,\n        Godot.Core.Camera2D.is_margin_drawing_enabled,\n        Godot.Core.Camera2D.is_rotating,\n        Godot.Core.Camera2D.is_screen_drawing_enabled,\n        Godot.Core.Camera2D.is_v_drag_enabled,\n        Godot.Core.Camera2D.make_current,\n        Godot.Core.Camera2D.reset_smoothing,\n        Godot.Core.Camera2D.set_anchor_mode,\n        Godot.Core.Camera2D.set_custom_viewport,\n        Godot.Core.Camera2D.set_drag_margin,\n        Godot.Core.Camera2D.set_enable_follow_smoothing,\n        Godot.Core.Camera2D.set_follow_smoothing,\n        Godot.Core.Camera2D.set_h_drag_enabled,\n        Godot.Core.Camera2D.set_h_offset, Godot.Core.Camera2D.set_limit,\n        Godot.Core.Camera2D.set_limit_drawing_enabled,\n        Godot.Core.Camera2D.set_limit_smoothing_enabled,\n        Godot.Core.Camera2D.set_margin_drawing_enabled,\n        Godot.Core.Camera2D.set_offset,\n        Godot.Core.Camera2D.set_process_mode,\n        Godot.Core.Camera2D.set_rotating,\n        Godot.Core.Camera2D.set_screen_drawing_enabled,\n        Godot.Core.Camera2D.set_v_drag_enabled,\n        Godot.Core.Camera2D.set_v_offset, Godot.Core.Camera2D.set_zoom)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\n_ANCHOR_MODE_FIXED_TOP_LEFT :: Int\n_ANCHOR_MODE_FIXED_TOP_LEFT = 0\n\n_CAMERA2D_PROCESS_PHYSICS :: Int\n_CAMERA2D_PROCESS_PHYSICS = 0\n\n_CAMERA2D_PROCESS_IDLE :: Int\n_CAMERA2D_PROCESS_IDLE = 1\n\n_ANCHOR_MODE_DRAG_CENTER :: Int\n_ANCHOR_MODE_DRAG_CENTER = 1\n\ninstance NodeProperty Camera2D \"anchor_mode\" Int 'False where\n        nodeProperty\n          = (get_anchor_mode, wrapDroppingSetter set_anchor_mode, Nothing)\n\ninstance NodeProperty Camera2D \"current\" Bool 'False where\n        nodeProperty\n          = (is_current, wrapDroppingSetter _set_current, Nothing)\n\ninstance NodeProperty Camera2D \"custom_viewport\" Node 'False where\n        nodeProperty\n          = (get_custom_viewport, wrapDroppingSetter set_custom_viewport,\n             Nothing)\n\ninstance NodeProperty Camera2D \"drag_margin_bottom\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_drag_margin,\n             wrapIndexedSetter 3 set_drag_margin, Nothing)\n\ninstance NodeProperty Camera2D \"drag_margin_h_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_h_drag_enabled, wrapDroppingSetter set_h_drag_enabled,\n             Nothing)\n\ninstance NodeProperty Camera2D \"drag_margin_left\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_drag_margin,\n             wrapIndexedSetter 0 set_drag_margin, Nothing)\n\ninstance NodeProperty Camera2D \"drag_margin_right\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_drag_margin,\n             wrapIndexedSetter 2 set_drag_margin, Nothing)\n\ninstance NodeProperty Camera2D \"drag_margin_top\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_drag_margin,\n             wrapIndexedSetter 1 set_drag_margin, Nothing)\n\ninstance NodeProperty Camera2D \"drag_margin_v_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_v_drag_enabled, wrapDroppingSetter set_v_drag_enabled,\n             Nothing)\n\ninstance NodeProperty Camera2D \"editor_draw_drag_margin\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_margin_drawing_enabled,\n             wrapDroppingSetter set_margin_drawing_enabled, Nothing)\n\ninstance NodeProperty Camera2D \"editor_draw_limits\" Bool 'False\n         where\n        nodeProperty\n          = (is_limit_drawing_enabled,\n             wrapDroppingSetter set_limit_drawing_enabled, Nothing)\n\ninstance NodeProperty Camera2D \"editor_draw_screen\" Bool 'False\n         where\n        nodeProperty\n          = (is_screen_drawing_enabled,\n             wrapDroppingSetter set_screen_drawing_enabled, Nothing)\n\ninstance NodeProperty Camera2D \"limit_bottom\" Int 'False where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_limit, wrapIndexedSetter 3 set_limit,\n             Nothing)\n\ninstance NodeProperty Camera2D \"limit_left\" Int 'False where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_limit, wrapIndexedSetter 0 set_limit,\n             Nothing)\n\ninstance NodeProperty Camera2D \"limit_right\" Int 'False where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_limit, wrapIndexedSetter 2 set_limit,\n             Nothing)\n\ninstance NodeProperty Camera2D \"limit_smoothed\" Bool 'False where\n        nodeProperty\n          = (is_limit_smoothing_enabled,\n             wrapDroppingSetter set_limit_smoothing_enabled, Nothing)\n\ninstance NodeProperty Camera2D \"limit_top\" Int 'False where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_limit, wrapIndexedSetter 1 set_limit,\n             Nothing)\n\ninstance NodeProperty Camera2D \"offset\" Vector2 'False where\n        nodeProperty = (get_offset, wrapDroppingSetter set_offset, Nothing)\n\ninstance NodeProperty Camera2D \"offset_h\" Float 'False where\n        nodeProperty\n          = (get_h_offset, wrapDroppingSetter set_h_offset, Nothing)\n\ninstance NodeProperty Camera2D \"offset_v\" Float 'False where\n        nodeProperty\n          = (get_v_offset, wrapDroppingSetter set_v_offset, Nothing)\n\ninstance NodeProperty Camera2D \"process_mode\" Int 'False where\n        nodeProperty\n          = (get_process_mode, wrapDroppingSetter set_process_mode, Nothing)\n\ninstance NodeProperty Camera2D \"rotating\" Bool 'False where\n        nodeProperty\n          = (is_rotating, wrapDroppingSetter set_rotating, Nothing)\n\ninstance NodeProperty Camera2D \"smoothing_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_follow_smoothing_enabled,\n             wrapDroppingSetter set_enable_follow_smoothing, Nothing)\n\ninstance NodeProperty Camera2D \"smoothing_speed\" Float 'False where\n        nodeProperty\n          = (get_follow_smoothing, wrapDroppingSetter set_follow_smoothing,\n             Nothing)\n\ninstance NodeProperty Camera2D \"zoom\" Vector2 'False where\n        nodeProperty = (get_zoom, wrapDroppingSetter set_zoom, Nothing)\n\n{-# NOINLINE bindCamera2D__make_current #-}\n\nbindCamera2D__make_current :: MethodBind\nbindCamera2D__make_current\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"_make_current\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_make_current ::\n                (Camera2D :< cls, Object :< cls) => cls -> Object -> IO ()\n_make_current cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D__make_current (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"_make_current\" '[Object] (IO ())\n         where\n        nodeMethod = Godot.Core.Camera2D._make_current\n\n{-# NOINLINE bindCamera2D__set_current #-}\n\n-- | If @true@, the camera is the active camera for the current scene. Only one camera can be current, so setting a different camera @current@ will disable this one.\nbindCamera2D__set_current :: MethodBind\nbindCamera2D__set_current\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"_set_current\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the camera is the active camera for the current scene. Only one camera can be current, so setting a different camera @current@ will disable this one.\n_set_current ::\n               (Camera2D :< cls, Object :< cls) => cls -> Bool -> IO ()\n_set_current cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D__set_current (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"_set_current\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Camera2D._set_current\n\n{-# NOINLINE bindCamera2D__set_old_smoothing #-}\n\nbindCamera2D__set_old_smoothing :: MethodBind\nbindCamera2D__set_old_smoothing\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"_set_old_smoothing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_old_smoothing ::\n                     (Camera2D :< cls, Object :< cls) => cls -> Float -> IO ()\n_set_old_smoothing cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D__set_old_smoothing (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"_set_old_smoothing\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Camera2D._set_old_smoothing\n\n{-# NOINLINE bindCamera2D__update_scroll #-}\n\nbindCamera2D__update_scroll :: MethodBind\nbindCamera2D__update_scroll\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"_update_scroll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_scroll :: (Camera2D :< cls, Object :< cls) => cls -> IO ()\n_update_scroll cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D__update_scroll (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"_update_scroll\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Camera2D._update_scroll\n\n{-# NOINLINE bindCamera2D_align #-}\n\n-- | Aligns the camera to the tracked node.\nbindCamera2D_align :: MethodBind\nbindCamera2D_align\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"align\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Aligns the camera to the tracked node.\nalign :: (Camera2D :< cls, Object :< cls) => cls -> IO ()\nalign cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_align (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"align\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Camera2D.align\n\n{-# NOINLINE bindCamera2D_clear_current #-}\n\n-- | Removes any @Camera2D@ from the ancestor @Viewport@'s internal currently-assigned camera.\nbindCamera2D_clear_current :: MethodBind\nbindCamera2D_clear_current\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"clear_current\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes any @Camera2D@ from the ancestor @Viewport@'s internal currently-assigned camera.\nclear_current :: (Camera2D :< cls, Object :< cls) => cls -> IO ()\nclear_current cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_clear_current (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"clear_current\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Camera2D.clear_current\n\n{-# NOINLINE bindCamera2D_force_update_scroll #-}\n\n-- | Forces the camera to update scroll immediately.\nbindCamera2D_force_update_scroll :: MethodBind\nbindCamera2D_force_update_scroll\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"force_update_scroll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Forces the camera to update scroll immediately.\nforce_update_scroll ::\n                      (Camera2D :< cls, Object :< cls) => cls -> IO ()\nforce_update_scroll cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_force_update_scroll\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"force_update_scroll\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.Camera2D.force_update_scroll\n\n{-# NOINLINE bindCamera2D_get_anchor_mode #-}\n\n-- | The Camera2D's anchor point. See @enum AnchorMode@ constants.\nbindCamera2D_get_anchor_mode :: MethodBind\nbindCamera2D_get_anchor_mode\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_anchor_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The Camera2D's anchor point. See @enum AnchorMode@ constants.\nget_anchor_mode ::\n                  (Camera2D :< cls, Object :< cls) => cls -> IO Int\nget_anchor_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_get_anchor_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"get_anchor_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Camera2D.get_anchor_mode\n\n{-# NOINLINE bindCamera2D_get_camera_position #-}\n\n-- | Returns the camera position.\nbindCamera2D_get_camera_position :: MethodBind\nbindCamera2D_get_camera_position\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_camera_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the camera position.\nget_camera_position ::\n                      (Camera2D :< cls, Object :< cls) => cls -> IO Vector2\nget_camera_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_get_camera_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"get_camera_position\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Camera2D.get_camera_position\n\n{-# NOINLINE bindCamera2D_get_camera_screen_center #-}\n\n-- | Returns the location of the @Camera2D@'s screen-center, relative to the origin.\nbindCamera2D_get_camera_screen_center :: MethodBind\nbindCamera2D_get_camera_screen_center\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_camera_screen_center\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the location of the @Camera2D@'s screen-center, relative to the origin.\nget_camera_screen_center ::\n                           (Camera2D :< cls, Object :< cls) => cls -> IO Vector2\nget_camera_screen_center cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_get_camera_screen_center\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"get_camera_screen_center\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Camera2D.get_camera_screen_center\n\n{-# NOINLINE bindCamera2D_get_custom_viewport #-}\n\n-- | The custom @Viewport@ node attached to the @Camera2D@. If @null@ or not a @Viewport@, uses the default viewport instead.\nbindCamera2D_get_custom_viewport :: MethodBind\nbindCamera2D_get_custom_viewport\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_custom_viewport\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The custom @Viewport@ node attached to the @Camera2D@. If @null@ or not a @Viewport@, uses the default viewport instead.\nget_custom_viewport ::\n                      (Camera2D :< cls, Object :< cls) => cls -> IO Node\nget_custom_viewport cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_get_custom_viewport\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"get_custom_viewport\" '[] (IO Node)\n         where\n        nodeMethod = Godot.Core.Camera2D.get_custom_viewport\n\n{-# NOINLINE bindCamera2D_get_drag_margin #-}\n\n-- | Returns the specified margin. See also @drag_margin_bottom@, @drag_margin_top@, @drag_margin_left@, and @drag_margin_right@.\nbindCamera2D_get_drag_margin :: MethodBind\nbindCamera2D_get_drag_margin\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_drag_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the specified margin. See also @drag_margin_bottom@, @drag_margin_top@, @drag_margin_left@, and @drag_margin_right@.\nget_drag_margin ::\n                  (Camera2D :< cls, Object :< cls) => cls -> Int -> IO Float\nget_drag_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_get_drag_margin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"get_drag_margin\" '[Int] (IO Float)\n         where\n        nodeMethod = Godot.Core.Camera2D.get_drag_margin\n\n{-# NOINLINE bindCamera2D_get_follow_smoothing #-}\n\n-- | Speed in pixels per second of the camera's smoothing effect when @smoothing_enabled@ is @true@.\nbindCamera2D_get_follow_smoothing :: MethodBind\nbindCamera2D_get_follow_smoothing\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_follow_smoothing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Speed in pixels per second of the camera's smoothing effect when @smoothing_enabled@ is @true@.\nget_follow_smoothing ::\n                       (Camera2D :< cls, Object :< cls) => cls -> IO Float\nget_follow_smoothing cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_get_follow_smoothing\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"get_follow_smoothing\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Camera2D.get_follow_smoothing\n\n{-# NOINLINE bindCamera2D_get_h_offset #-}\n\n-- | The horizontal offset of the camera, relative to the drag margins.\n--   \t\t\t__Note:__ Offset H is used only to force offset relative to margins. It's not updated in any way if drag margins are enabled and can be used to set initial offset.\nbindCamera2D_get_h_offset :: MethodBind\nbindCamera2D_get_h_offset\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_h_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The horizontal offset of the camera, relative to the drag margins.\n--   \t\t\t__Note:__ Offset H is used only to force offset relative to margins. It's not updated in any way if drag margins are enabled and can be used to set initial offset.\nget_h_offset :: (Camera2D :< cls, Object :< cls) => cls -> IO Float\nget_h_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_get_h_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"get_h_offset\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Camera2D.get_h_offset\n\n{-# NOINLINE bindCamera2D_get_limit #-}\n\n-- | Returns the specified camera limit. See also @limit_bottom@, @limit_top@, @limit_left@, and @limit_right@.\nbindCamera2D_get_limit :: MethodBind\nbindCamera2D_get_limit\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_limit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the specified camera limit. See also @limit_bottom@, @limit_top@, @limit_left@, and @limit_right@.\nget_limit ::\n            (Camera2D :< cls, Object :< cls) => cls -> Int -> IO Int\nget_limit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_get_limit (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"get_limit\" '[Int] (IO Int) where\n        nodeMethod = Godot.Core.Camera2D.get_limit\n\n{-# NOINLINE bindCamera2D_get_offset #-}\n\n-- | The camera's offset, useful for looking around or camera shake animations.\nbindCamera2D_get_offset :: MethodBind\nbindCamera2D_get_offset\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's offset, useful for looking around or camera shake animations.\nget_offset :: (Camera2D :< cls, Object :< cls) => cls -> IO Vector2\nget_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_get_offset (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"get_offset\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.Camera2D.get_offset\n\n{-# NOINLINE bindCamera2D_get_process_mode #-}\n\n-- | The camera's process callback. See @enum Camera2DProcessMode@.\nbindCamera2D_get_process_mode :: MethodBind\nbindCamera2D_get_process_mode\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_process_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's process callback. See @enum Camera2DProcessMode@.\nget_process_mode ::\n                   (Camera2D :< cls, Object :< cls) => cls -> IO Int\nget_process_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_get_process_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"get_process_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Camera2D.get_process_mode\n\n{-# NOINLINE bindCamera2D_get_v_offset #-}\n\n-- | The vertical offset of the camera, relative to the drag margins.\n--   \t\t\t__Note:__ Used the same as @offset_h@.\nbindCamera2D_get_v_offset :: MethodBind\nbindCamera2D_get_v_offset\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_v_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The vertical offset of the camera, relative to the drag margins.\n--   \t\t\t__Note:__ Used the same as @offset_h@.\nget_v_offset :: (Camera2D :< cls, Object :< cls) => cls -> IO Float\nget_v_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_get_v_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"get_v_offset\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Camera2D.get_v_offset\n\n{-# NOINLINE bindCamera2D_get_zoom #-}\n\n-- | The camera's zoom relative to the viewport. Values larger than @Vector2(1, 1)@ zoom out and smaller values zoom in. For an example, use @Vector2(0.5, 0.5)@ for a 2× zoom-in, and @Vector2(4, 4)@ for a 4× zoom-out.\nbindCamera2D_get_zoom :: MethodBind\nbindCamera2D_get_zoom\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_zoom\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's zoom relative to the viewport. Values larger than @Vector2(1, 1)@ zoom out and smaller values zoom in. For an example, use @Vector2(0.5, 0.5)@ for a 2× zoom-in, and @Vector2(4, 4)@ for a 4× zoom-out.\nget_zoom :: (Camera2D :< cls, Object :< cls) => cls -> IO Vector2\nget_zoom cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_get_zoom (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"get_zoom\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.Camera2D.get_zoom\n\n{-# NOINLINE bindCamera2D_is_current #-}\n\n-- | If @true@, the camera is the active camera for the current scene. Only one camera can be current, so setting a different camera @current@ will disable this one.\nbindCamera2D_is_current :: MethodBind\nbindCamera2D_is_current\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_current\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the camera is the active camera for the current scene. Only one camera can be current, so setting a different camera @current@ will disable this one.\nis_current :: (Camera2D :< cls, Object :< cls) => cls -> IO Bool\nis_current cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_is_current (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"is_current\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Camera2D.is_current\n\n{-# NOINLINE bindCamera2D_is_follow_smoothing_enabled #-}\n\n-- | If @true@, the camera smoothly moves towards the target at @smoothing_speed@.\nbindCamera2D_is_follow_smoothing_enabled :: MethodBind\nbindCamera2D_is_follow_smoothing_enabled\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_follow_smoothing_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the camera smoothly moves towards the target at @smoothing_speed@.\nis_follow_smoothing_enabled ::\n                              (Camera2D :< cls, Object :< cls) => cls -> IO Bool\nis_follow_smoothing_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_is_follow_smoothing_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"is_follow_smoothing_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Camera2D.is_follow_smoothing_enabled\n\n{-# NOINLINE bindCamera2D_is_h_drag_enabled #-}\n\n-- | If @true@, the camera only moves when reaching the horizontal drag margins. If @false@, the camera moves horizontally regardless of margins.\nbindCamera2D_is_h_drag_enabled :: MethodBind\nbindCamera2D_is_h_drag_enabled\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_h_drag_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the camera only moves when reaching the horizontal drag margins. If @false@, the camera moves horizontally regardless of margins.\nis_h_drag_enabled ::\n                    (Camera2D :< cls, Object :< cls) => cls -> IO Bool\nis_h_drag_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_is_h_drag_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"is_h_drag_enabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Camera2D.is_h_drag_enabled\n\n{-# NOINLINE bindCamera2D_is_limit_drawing_enabled #-}\n\n-- | If @true@, draws the camera's limits rectangle in the editor.\nbindCamera2D_is_limit_drawing_enabled :: MethodBind\nbindCamera2D_is_limit_drawing_enabled\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_limit_drawing_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, draws the camera's limits rectangle in the editor.\nis_limit_drawing_enabled ::\n                           (Camera2D :< cls, Object :< cls) => cls -> IO Bool\nis_limit_drawing_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_is_limit_drawing_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"is_limit_drawing_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Camera2D.is_limit_drawing_enabled\n\n{-# NOINLINE bindCamera2D_is_limit_smoothing_enabled #-}\n\n-- | If @true@, the camera smoothly stops when reaches its limits.\nbindCamera2D_is_limit_smoothing_enabled :: MethodBind\nbindCamera2D_is_limit_smoothing_enabled\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_limit_smoothing_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the camera smoothly stops when reaches its limits.\nis_limit_smoothing_enabled ::\n                             (Camera2D :< cls, Object :< cls) => cls -> IO Bool\nis_limit_smoothing_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_is_limit_smoothing_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"is_limit_smoothing_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Camera2D.is_limit_smoothing_enabled\n\n{-# NOINLINE bindCamera2D_is_margin_drawing_enabled #-}\n\n-- | If @true@, draws the camera's drag margin rectangle in the editor.\nbindCamera2D_is_margin_drawing_enabled :: MethodBind\nbindCamera2D_is_margin_drawing_enabled\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_margin_drawing_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, draws the camera's drag margin rectangle in the editor.\nis_margin_drawing_enabled ::\n                            (Camera2D :< cls, Object :< cls) => cls -> IO Bool\nis_margin_drawing_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_is_margin_drawing_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"is_margin_drawing_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Camera2D.is_margin_drawing_enabled\n\n{-# NOINLINE bindCamera2D_is_rotating #-}\n\n-- | If @true@, the camera rotates with the target.\nbindCamera2D_is_rotating :: MethodBind\nbindCamera2D_is_rotating\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_rotating\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the camera rotates with the target.\nis_rotating :: (Camera2D :< cls, Object :< cls) => cls -> IO Bool\nis_rotating cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_is_rotating (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"is_rotating\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Camera2D.is_rotating\n\n{-# NOINLINE bindCamera2D_is_screen_drawing_enabled #-}\n\n-- | If @true@, draws the camera's screen rectangle in the editor.\nbindCamera2D_is_screen_drawing_enabled :: MethodBind\nbindCamera2D_is_screen_drawing_enabled\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_screen_drawing_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, draws the camera's screen rectangle in the editor.\nis_screen_drawing_enabled ::\n                            (Camera2D :< cls, Object :< cls) => cls -> IO Bool\nis_screen_drawing_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_is_screen_drawing_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"is_screen_drawing_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Camera2D.is_screen_drawing_enabled\n\n{-# NOINLINE bindCamera2D_is_v_drag_enabled #-}\n\n-- | If @true@, the camera only moves when reaching the vertical drag margins. If @false@, the camera moves vertically regardless of margins.\nbindCamera2D_is_v_drag_enabled :: MethodBind\nbindCamera2D_is_v_drag_enabled\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_v_drag_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the camera only moves when reaching the vertical drag margins. If @false@, the camera moves vertically regardless of margins.\nis_v_drag_enabled ::\n                    (Camera2D :< cls, Object :< cls) => cls -> IO Bool\nis_v_drag_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_is_v_drag_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"is_v_drag_enabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Camera2D.is_v_drag_enabled\n\n{-# NOINLINE bindCamera2D_make_current #-}\n\n-- | Make this the current 2D camera for the scene (viewport and layer), in case there are many cameras in the scene.\nbindCamera2D_make_current :: MethodBind\nbindCamera2D_make_current\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"make_current\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Make this the current 2D camera for the scene (viewport and layer), in case there are many cameras in the scene.\nmake_current :: (Camera2D :< cls, Object :< cls) => cls -> IO ()\nmake_current cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_make_current (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"make_current\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Camera2D.make_current\n\n{-# NOINLINE bindCamera2D_reset_smoothing #-}\n\n-- | Sets the camera's position immediately to its current smoothing destination.\n--   \t\t\t\tThis has no effect if smoothing is disabled.\nbindCamera2D_reset_smoothing :: MethodBind\nbindCamera2D_reset_smoothing\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"reset_smoothing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the camera's position immediately to its current smoothing destination.\n--   \t\t\t\tThis has no effect if smoothing is disabled.\nreset_smoothing :: (Camera2D :< cls, Object :< cls) => cls -> IO ()\nreset_smoothing cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_reset_smoothing (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"reset_smoothing\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Camera2D.reset_smoothing\n\n{-# NOINLINE bindCamera2D_set_anchor_mode #-}\n\n-- | The Camera2D's anchor point. See @enum AnchorMode@ constants.\nbindCamera2D_set_anchor_mode :: MethodBind\nbindCamera2D_set_anchor_mode\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_anchor_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The Camera2D's anchor point. See @enum AnchorMode@ constants.\nset_anchor_mode ::\n                  (Camera2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_anchor_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_set_anchor_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"set_anchor_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Camera2D.set_anchor_mode\n\n{-# NOINLINE bindCamera2D_set_custom_viewport #-}\n\n-- | The custom @Viewport@ node attached to the @Camera2D@. If @null@ or not a @Viewport@, uses the default viewport instead.\nbindCamera2D_set_custom_viewport :: MethodBind\nbindCamera2D_set_custom_viewport\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_custom_viewport\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The custom @Viewport@ node attached to the @Camera2D@. If @null@ or not a @Viewport@, uses the default viewport instead.\nset_custom_viewport ::\n                      (Camera2D :< cls, Object :< cls) => cls -> Node -> IO ()\nset_custom_viewport cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_set_custom_viewport\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"set_custom_viewport\" '[Node] (IO ())\n         where\n        nodeMethod = Godot.Core.Camera2D.set_custom_viewport\n\n{-# NOINLINE bindCamera2D_set_drag_margin #-}\n\n-- | Sets the specified margin. See also @drag_margin_bottom@, @drag_margin_top@, @drag_margin_left@, and @drag_margin_right@.\nbindCamera2D_set_drag_margin :: MethodBind\nbindCamera2D_set_drag_margin\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_drag_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the specified margin. See also @drag_margin_bottom@, @drag_margin_top@, @drag_margin_left@, and @drag_margin_right@.\nset_drag_margin ::\n                  (Camera2D :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\nset_drag_margin cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_set_drag_margin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"set_drag_margin\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Camera2D.set_drag_margin\n\n{-# NOINLINE bindCamera2D_set_enable_follow_smoothing #-}\n\n-- | If @true@, the camera smoothly moves towards the target at @smoothing_speed@.\nbindCamera2D_set_enable_follow_smoothing :: MethodBind\nbindCamera2D_set_enable_follow_smoothing\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_enable_follow_smoothing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the camera smoothly moves towards the target at @smoothing_speed@.\nset_enable_follow_smoothing ::\n                              (Camera2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_enable_follow_smoothing cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_set_enable_follow_smoothing\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"set_enable_follow_smoothing\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Camera2D.set_enable_follow_smoothing\n\n{-# NOINLINE bindCamera2D_set_follow_smoothing #-}\n\n-- | Speed in pixels per second of the camera's smoothing effect when @smoothing_enabled@ is @true@.\nbindCamera2D_set_follow_smoothing :: MethodBind\nbindCamera2D_set_follow_smoothing\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_follow_smoothing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Speed in pixels per second of the camera's smoothing effect when @smoothing_enabled@ is @true@.\nset_follow_smoothing ::\n                       (Camera2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_follow_smoothing cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_set_follow_smoothing\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"set_follow_smoothing\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Camera2D.set_follow_smoothing\n\n{-# NOINLINE bindCamera2D_set_h_drag_enabled #-}\n\n-- | If @true@, the camera only moves when reaching the horizontal drag margins. If @false@, the camera moves horizontally regardless of margins.\nbindCamera2D_set_h_drag_enabled :: MethodBind\nbindCamera2D_set_h_drag_enabled\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_h_drag_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the camera only moves when reaching the horizontal drag margins. If @false@, the camera moves horizontally regardless of margins.\nset_h_drag_enabled ::\n                     (Camera2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_h_drag_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_set_h_drag_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"set_h_drag_enabled\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Camera2D.set_h_drag_enabled\n\n{-# NOINLINE bindCamera2D_set_h_offset #-}\n\n-- | The horizontal offset of the camera, relative to the drag margins.\n--   \t\t\t__Note:__ Offset H is used only to force offset relative to margins. It's not updated in any way if drag margins are enabled and can be used to set initial offset.\nbindCamera2D_set_h_offset :: MethodBind\nbindCamera2D_set_h_offset\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_h_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The horizontal offset of the camera, relative to the drag margins.\n--   \t\t\t__Note:__ Offset H is used only to force offset relative to margins. It's not updated in any way if drag margins are enabled and can be used to set initial offset.\nset_h_offset ::\n               (Camera2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_h_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_set_h_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"set_h_offset\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Camera2D.set_h_offset\n\n{-# NOINLINE bindCamera2D_set_limit #-}\n\n-- | Sets the specified camera limit. See also @limit_bottom@, @limit_top@, @limit_left@, and @limit_right@.\nbindCamera2D_set_limit :: MethodBind\nbindCamera2D_set_limit\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_limit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the specified camera limit. See also @limit_bottom@, @limit_top@, @limit_left@, and @limit_right@.\nset_limit ::\n            (Camera2D :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nset_limit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_set_limit (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"set_limit\" '[Int, Int] (IO ()) where\n        nodeMethod = Godot.Core.Camera2D.set_limit\n\n{-# NOINLINE bindCamera2D_set_limit_drawing_enabled #-}\n\n-- | If @true@, draws the camera's limits rectangle in the editor.\nbindCamera2D_set_limit_drawing_enabled :: MethodBind\nbindCamera2D_set_limit_drawing_enabled\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_limit_drawing_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, draws the camera's limits rectangle in the editor.\nset_limit_drawing_enabled ::\n                            (Camera2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_limit_drawing_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_set_limit_drawing_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"set_limit_drawing_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Camera2D.set_limit_drawing_enabled\n\n{-# NOINLINE bindCamera2D_set_limit_smoothing_enabled #-}\n\n-- | If @true@, the camera smoothly stops when reaches its limits.\nbindCamera2D_set_limit_smoothing_enabled :: MethodBind\nbindCamera2D_set_limit_smoothing_enabled\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_limit_smoothing_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the camera smoothly stops when reaches its limits.\nset_limit_smoothing_enabled ::\n                              (Camera2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_limit_smoothing_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_set_limit_smoothing_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"set_limit_smoothing_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Camera2D.set_limit_smoothing_enabled\n\n{-# NOINLINE bindCamera2D_set_margin_drawing_enabled #-}\n\n-- | If @true@, draws the camera's drag margin rectangle in the editor.\nbindCamera2D_set_margin_drawing_enabled :: MethodBind\nbindCamera2D_set_margin_drawing_enabled\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_margin_drawing_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, draws the camera's drag margin rectangle in the editor.\nset_margin_drawing_enabled ::\n                             (Camera2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_margin_drawing_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_set_margin_drawing_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"set_margin_drawing_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Camera2D.set_margin_drawing_enabled\n\n{-# NOINLINE bindCamera2D_set_offset #-}\n\n-- | The camera's offset, useful for looking around or camera shake animations.\nbindCamera2D_set_offset :: MethodBind\nbindCamera2D_set_offset\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's offset, useful for looking around or camera shake animations.\nset_offset ::\n             (Camera2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_set_offset (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"set_offset\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.Camera2D.set_offset\n\n{-# NOINLINE bindCamera2D_set_process_mode #-}\n\n-- | The camera's process callback. See @enum Camera2DProcessMode@.\nbindCamera2D_set_process_mode :: MethodBind\nbindCamera2D_set_process_mode\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_process_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's process callback. See @enum Camera2DProcessMode@.\nset_process_mode ::\n                   (Camera2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_process_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_set_process_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"set_process_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Camera2D.set_process_mode\n\n{-# NOINLINE bindCamera2D_set_rotating #-}\n\n-- | If @true@, the camera rotates with the target.\nbindCamera2D_set_rotating :: MethodBind\nbindCamera2D_set_rotating\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_rotating\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the camera rotates with the target.\nset_rotating ::\n               (Camera2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_rotating cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_set_rotating (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"set_rotating\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Camera2D.set_rotating\n\n{-# NOINLINE bindCamera2D_set_screen_drawing_enabled #-}\n\n-- | If @true@, draws the camera's screen rectangle in the editor.\nbindCamera2D_set_screen_drawing_enabled :: MethodBind\nbindCamera2D_set_screen_drawing_enabled\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_screen_drawing_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, draws the camera's screen rectangle in the editor.\nset_screen_drawing_enabled ::\n                             (Camera2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_screen_drawing_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_set_screen_drawing_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"set_screen_drawing_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Camera2D.set_screen_drawing_enabled\n\n{-# NOINLINE bindCamera2D_set_v_drag_enabled #-}\n\n-- | If @true@, the camera only moves when reaching the vertical drag margins. If @false@, the camera moves vertically regardless of margins.\nbindCamera2D_set_v_drag_enabled :: MethodBind\nbindCamera2D_set_v_drag_enabled\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_v_drag_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the camera only moves when reaching the vertical drag margins. If @false@, the camera moves vertically regardless of margins.\nset_v_drag_enabled ::\n                     (Camera2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_v_drag_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_set_v_drag_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"set_v_drag_enabled\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Camera2D.set_v_drag_enabled\n\n{-# NOINLINE bindCamera2D_set_v_offset #-}\n\n-- | The vertical offset of the camera, relative to the drag margins.\n--   \t\t\t__Note:__ Used the same as @offset_h@.\nbindCamera2D_set_v_offset :: MethodBind\nbindCamera2D_set_v_offset\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_v_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The vertical offset of the camera, relative to the drag margins.\n--   \t\t\t__Note:__ Used the same as @offset_h@.\nset_v_offset ::\n               (Camera2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_v_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_set_v_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"set_v_offset\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Camera2D.set_v_offset\n\n{-# NOINLINE bindCamera2D_set_zoom #-}\n\n-- | The camera's zoom relative to the viewport. Values larger than @Vector2(1, 1)@ zoom out and smaller values zoom in. For an example, use @Vector2(0.5, 0.5)@ for a 2× zoom-in, and @Vector2(4, 4)@ for a 4× zoom-out.\nbindCamera2D_set_zoom :: MethodBind\nbindCamera2D_set_zoom\n  = unsafePerformIO $\n      withCString \"Camera2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_zoom\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's zoom relative to the viewport. Values larger than @Vector2(1, 1)@ zoom out and smaller values zoom in. For an example, use @Vector2(0.5, 0.5)@ for a 2× zoom-in, and @Vector2(4, 4)@ for a 4× zoom-out.\nset_zoom ::\n           (Camera2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_zoom cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCamera2D_set_zoom (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Camera2D \"set_zoom\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.Camera2D.set_zoom"
  },
  {
    "path": "src/Godot/Core/CameraFeed.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CameraFeed\n       (Godot.Core.CameraFeed._FEED_FRONT,\n        Godot.Core.CameraFeed._FEED_YCBCR_SEP,\n        Godot.Core.CameraFeed._FEED_YCBCR,\n        Godot.Core.CameraFeed._FEED_UNSPECIFIED,\n        Godot.Core.CameraFeed._FEED_RGB,\n        Godot.Core.CameraFeed._FEED_NOIMAGE,\n        Godot.Core.CameraFeed._FEED_BACK,\n        Godot.Core.CameraFeed._allocate_texture,\n        Godot.Core.CameraFeed._set_RGB_img,\n        Godot.Core.CameraFeed._set_YCbCr_img,\n        Godot.Core.CameraFeed._set_YCbCr_imgs,\n        Godot.Core.CameraFeed._set_name,\n        Godot.Core.CameraFeed._set_position, Godot.Core.CameraFeed.get_id,\n        Godot.Core.CameraFeed.get_name, Godot.Core.CameraFeed.get_position,\n        Godot.Core.CameraFeed.get_transform,\n        Godot.Core.CameraFeed.is_active, Godot.Core.CameraFeed.set_active,\n        Godot.Core.CameraFeed.set_transform)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n_FEED_FRONT :: Int\n_FEED_FRONT = 1\n\n_FEED_YCBCR_SEP :: Int\n_FEED_YCBCR_SEP = 3\n\n_FEED_YCBCR :: Int\n_FEED_YCBCR = 2\n\n_FEED_UNSPECIFIED :: Int\n_FEED_UNSPECIFIED = 0\n\n_FEED_RGB :: Int\n_FEED_RGB = 1\n\n_FEED_NOIMAGE :: Int\n_FEED_NOIMAGE = 0\n\n_FEED_BACK :: Int\n_FEED_BACK = 2\n\ninstance NodeProperty CameraFeed \"feed_is_active\" Bool 'False where\n        nodeProperty = (is_active, wrapDroppingSetter set_active, Nothing)\n\ninstance NodeProperty CameraFeed \"feed_transform\" Transform2d\n           'False\n         where\n        nodeProperty\n          = (get_transform, wrapDroppingSetter set_transform, Nothing)\n\n{-# NOINLINE bindCameraFeed__allocate_texture #-}\n\nbindCameraFeed__allocate_texture :: MethodBind\nbindCameraFeed__allocate_texture\n  = unsafePerformIO $\n      withCString \"CameraFeed\" $\n        \\ clsNamePtr ->\n          withCString \"_allocate_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_allocate_texture ::\n                    (CameraFeed :< cls, Object :< cls) =>\n                    cls -> Int -> Int -> Int -> Int -> Int -> IO ()\n_allocate_texture cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraFeed__allocate_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraFeed \"_allocate_texture\"\n           '[Int, Int, Int, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CameraFeed._allocate_texture\n\n{-# NOINLINE bindCameraFeed__set_RGB_img #-}\n\nbindCameraFeed__set_RGB_img :: MethodBind\nbindCameraFeed__set_RGB_img\n  = unsafePerformIO $\n      withCString \"CameraFeed\" $\n        \\ clsNamePtr ->\n          withCString \"_set_RGB_img\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_RGB_img ::\n               (CameraFeed :< cls, Object :< cls) => cls -> Image -> IO ()\n_set_RGB_img cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraFeed__set_RGB_img (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraFeed \"_set_RGB_img\" '[Image] (IO ())\n         where\n        nodeMethod = Godot.Core.CameraFeed._set_RGB_img\n\n{-# NOINLINE bindCameraFeed__set_YCbCr_img #-}\n\nbindCameraFeed__set_YCbCr_img :: MethodBind\nbindCameraFeed__set_YCbCr_img\n  = unsafePerformIO $\n      withCString \"CameraFeed\" $\n        \\ clsNamePtr ->\n          withCString \"_set_YCbCr_img\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_YCbCr_img ::\n                 (CameraFeed :< cls, Object :< cls) => cls -> Image -> IO ()\n_set_YCbCr_img cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraFeed__set_YCbCr_img (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraFeed \"_set_YCbCr_img\" '[Image] (IO ())\n         where\n        nodeMethod = Godot.Core.CameraFeed._set_YCbCr_img\n\n{-# NOINLINE bindCameraFeed__set_YCbCr_imgs #-}\n\nbindCameraFeed__set_YCbCr_imgs :: MethodBind\nbindCameraFeed__set_YCbCr_imgs\n  = unsafePerformIO $\n      withCString \"CameraFeed\" $\n        \\ clsNamePtr ->\n          withCString \"_set_YCbCr_imgs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_YCbCr_imgs ::\n                  (CameraFeed :< cls, Object :< cls) =>\n                  cls -> Image -> Image -> IO ()\n_set_YCbCr_imgs cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraFeed__set_YCbCr_imgs (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraFeed \"_set_YCbCr_imgs\" '[Image, Image]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CameraFeed._set_YCbCr_imgs\n\n{-# NOINLINE bindCameraFeed__set_name #-}\n\nbindCameraFeed__set_name :: MethodBind\nbindCameraFeed__set_name\n  = unsafePerformIO $\n      withCString \"CameraFeed\" $\n        \\ clsNamePtr ->\n          withCString \"_set_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_name ::\n            (CameraFeed :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_set_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraFeed__set_name (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraFeed \"_set_name\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.CameraFeed._set_name\n\n{-# NOINLINE bindCameraFeed__set_position #-}\n\nbindCameraFeed__set_position :: MethodBind\nbindCameraFeed__set_position\n  = unsafePerformIO $\n      withCString \"CameraFeed\" $\n        \\ clsNamePtr ->\n          withCString \"_set_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_position ::\n                (CameraFeed :< cls, Object :< cls) => cls -> Int -> IO ()\n_set_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraFeed__set_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraFeed \"_set_position\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.CameraFeed._set_position\n\n{-# NOINLINE bindCameraFeed_get_id #-}\n\n-- | Returns the unique ID for this feed.\nbindCameraFeed_get_id :: MethodBind\nbindCameraFeed_get_id\n  = unsafePerformIO $\n      withCString \"CameraFeed\" $\n        \\ clsNamePtr ->\n          withCString \"get_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the unique ID for this feed.\nget_id :: (CameraFeed :< cls, Object :< cls) => cls -> IO Int\nget_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraFeed_get_id (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraFeed \"get_id\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CameraFeed.get_id\n\n{-# NOINLINE bindCameraFeed_get_name #-}\n\n-- | Returns the camera's name.\nbindCameraFeed_get_name :: MethodBind\nbindCameraFeed_get_name\n  = unsafePerformIO $\n      withCString \"CameraFeed\" $\n        \\ clsNamePtr ->\n          withCString \"get_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the camera's name.\nget_name ::\n           (CameraFeed :< cls, Object :< cls) => cls -> IO GodotString\nget_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraFeed_get_name (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraFeed \"get_name\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.CameraFeed.get_name\n\n{-# NOINLINE bindCameraFeed_get_position #-}\n\n-- | Returns the position of camera on the device.\nbindCameraFeed_get_position :: MethodBind\nbindCameraFeed_get_position\n  = unsafePerformIO $\n      withCString \"CameraFeed\" $\n        \\ clsNamePtr ->\n          withCString \"get_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position of camera on the device.\nget_position :: (CameraFeed :< cls, Object :< cls) => cls -> IO Int\nget_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraFeed_get_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraFeed \"get_position\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CameraFeed.get_position\n\n{-# NOINLINE bindCameraFeed_get_transform #-}\n\n-- | The transform applied to the camera's image.\nbindCameraFeed_get_transform :: MethodBind\nbindCameraFeed_get_transform\n  = unsafePerformIO $\n      withCString \"CameraFeed\" $\n        \\ clsNamePtr ->\n          withCString \"get_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The transform applied to the camera's image.\nget_transform ::\n                (CameraFeed :< cls, Object :< cls) => cls -> IO Transform2d\nget_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraFeed_get_transform (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraFeed \"get_transform\" '[] (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.CameraFeed.get_transform\n\n{-# NOINLINE bindCameraFeed_is_active #-}\n\n-- | If @true@, the feed is active.\nbindCameraFeed_is_active :: MethodBind\nbindCameraFeed_is_active\n  = unsafePerformIO $\n      withCString \"CameraFeed\" $\n        \\ clsNamePtr ->\n          withCString \"is_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the feed is active.\nis_active :: (CameraFeed :< cls, Object :< cls) => cls -> IO Bool\nis_active cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraFeed_is_active (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraFeed \"is_active\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.CameraFeed.is_active\n\n{-# NOINLINE bindCameraFeed_set_active #-}\n\n-- | If @true@, the feed is active.\nbindCameraFeed_set_active :: MethodBind\nbindCameraFeed_set_active\n  = unsafePerformIO $\n      withCString \"CameraFeed\" $\n        \\ clsNamePtr ->\n          withCString \"set_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the feed is active.\nset_active ::\n             (CameraFeed :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_active cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraFeed_set_active (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraFeed \"set_active\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.CameraFeed.set_active\n\n{-# NOINLINE bindCameraFeed_set_transform #-}\n\n-- | The transform applied to the camera's image.\nbindCameraFeed_set_transform :: MethodBind\nbindCameraFeed_set_transform\n  = unsafePerformIO $\n      withCString \"CameraFeed\" $\n        \\ clsNamePtr ->\n          withCString \"set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The transform applied to the camera's image.\nset_transform ::\n                (CameraFeed :< cls, Object :< cls) => cls -> Transform2d -> IO ()\nset_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraFeed_set_transform (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraFeed \"set_transform\" '[Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CameraFeed.set_transform"
  },
  {
    "path": "src/Godot/Core/CameraServer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CameraServer\n       (Godot.Core.CameraServer._FEED_YCBCR_IMAGE,\n        Godot.Core.CameraServer._FEED_Y_IMAGE,\n        Godot.Core.CameraServer._FEED_CBCR_IMAGE,\n        Godot.Core.CameraServer._FEED_RGBA_IMAGE,\n        Godot.Core.CameraServer.sig_camera_feed_added,\n        Godot.Core.CameraServer.sig_camera_feed_removed,\n        Godot.Core.CameraServer.add_feed, Godot.Core.CameraServer.feeds,\n        Godot.Core.CameraServer.get_feed,\n        Godot.Core.CameraServer.get_feed_count,\n        Godot.Core.CameraServer.remove_feed)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n_FEED_YCBCR_IMAGE :: Int\n_FEED_YCBCR_IMAGE = 0\n\n_FEED_Y_IMAGE :: Int\n_FEED_Y_IMAGE = 0\n\n_FEED_CBCR_IMAGE :: Int\n_FEED_CBCR_IMAGE = 1\n\n_FEED_RGBA_IMAGE :: Int\n_FEED_RGBA_IMAGE = 0\n\n-- | Emitted when a @CameraFeed@ is added (e.g. webcam is plugged in).\nsig_camera_feed_added ::\n                      Godot.Internal.Dispatch.Signal CameraServer\nsig_camera_feed_added\n  = Godot.Internal.Dispatch.Signal \"camera_feed_added\"\n\ninstance NodeSignal CameraServer \"camera_feed_added\" '[Int]\n\n-- | Emitted when a @CameraFeed@ is removed (e.g. webcam is unplugged).\nsig_camera_feed_removed ::\n                        Godot.Internal.Dispatch.Signal CameraServer\nsig_camera_feed_removed\n  = Godot.Internal.Dispatch.Signal \"camera_feed_removed\"\n\ninstance NodeSignal CameraServer \"camera_feed_removed\" '[Int]\n\n{-# NOINLINE bindCameraServer_add_feed #-}\n\n-- | Adds a camera feed to the camera server.\nbindCameraServer_add_feed :: MethodBind\nbindCameraServer_add_feed\n  = unsafePerformIO $\n      withCString \"CameraServer\" $\n        \\ clsNamePtr ->\n          withCString \"add_feed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a camera feed to the camera server.\nadd_feed ::\n           (CameraServer :< cls, Object :< cls) => cls -> CameraFeed -> IO ()\nadd_feed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraServer_add_feed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraServer \"add_feed\" '[CameraFeed] (IO ())\n         where\n        nodeMethod = Godot.Core.CameraServer.add_feed\n\n{-# NOINLINE bindCameraServer_feeds #-}\n\n-- | Returns an array of @CameraFeed@s.\nbindCameraServer_feeds :: MethodBind\nbindCameraServer_feeds\n  = unsafePerformIO $\n      withCString \"CameraServer\" $\n        \\ clsNamePtr ->\n          withCString \"feeds\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of @CameraFeed@s.\nfeeds :: (CameraServer :< cls, Object :< cls) => cls -> IO Array\nfeeds cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraServer_feeds (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraServer \"feeds\" '[] (IO Array) where\n        nodeMethod = Godot.Core.CameraServer.feeds\n\n{-# NOINLINE bindCameraServer_get_feed #-}\n\n-- | Returns the @CameraFeed@ with this id.\nbindCameraServer_get_feed :: MethodBind\nbindCameraServer_get_feed\n  = unsafePerformIO $\n      withCString \"CameraServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_feed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @CameraFeed@ with this id.\nget_feed ::\n           (CameraServer :< cls, Object :< cls) => cls -> Int -> IO CameraFeed\nget_feed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraServer_get_feed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraServer \"get_feed\" '[Int] (IO CameraFeed)\n         where\n        nodeMethod = Godot.Core.CameraServer.get_feed\n\n{-# NOINLINE bindCameraServer_get_feed_count #-}\n\n-- | Returns the number of @CameraFeed@s registered.\nbindCameraServer_get_feed_count :: MethodBind\nbindCameraServer_get_feed_count\n  = unsafePerformIO $\n      withCString \"CameraServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_feed_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of @CameraFeed@s registered.\nget_feed_count ::\n                 (CameraServer :< cls, Object :< cls) => cls -> IO Int\nget_feed_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraServer_get_feed_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraServer \"get_feed_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.CameraServer.get_feed_count\n\n{-# NOINLINE bindCameraServer_remove_feed #-}\n\n-- | Removes a @CameraFeed@.\nbindCameraServer_remove_feed :: MethodBind\nbindCameraServer_remove_feed\n  = unsafePerformIO $\n      withCString \"CameraServer\" $\n        \\ clsNamePtr ->\n          withCString \"remove_feed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a @CameraFeed@.\nremove_feed ::\n              (CameraServer :< cls, Object :< cls) => cls -> CameraFeed -> IO ()\nremove_feed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraServer_remove_feed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraServer \"remove_feed\" '[CameraFeed]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CameraServer.remove_feed"
  },
  {
    "path": "src/Godot/Core/CameraTexture.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CameraTexture\n       (Godot.Core.CameraTexture.get_camera_active,\n        Godot.Core.CameraTexture.get_camera_feed_id,\n        Godot.Core.CameraTexture.get_which_feed,\n        Godot.Core.CameraTexture.set_camera_active,\n        Godot.Core.CameraTexture.set_camera_feed_id,\n        Godot.Core.CameraTexture.set_which_feed)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Texture()\n\ninstance NodeProperty CameraTexture \"camera_feed_id\" Int 'False\n         where\n        nodeProperty\n          = (get_camera_feed_id, wrapDroppingSetter set_camera_feed_id,\n             Nothing)\n\ninstance NodeProperty CameraTexture \"camera_is_active\" Bool 'False\n         where\n        nodeProperty\n          = (get_camera_active, wrapDroppingSetter set_camera_active,\n             Nothing)\n\ninstance NodeProperty CameraTexture \"which_feed\" Int 'False where\n        nodeProperty\n          = (get_which_feed, wrapDroppingSetter set_which_feed, Nothing)\n\n{-# NOINLINE bindCameraTexture_get_camera_active #-}\n\n-- | Convenience property that gives access to the active property of the @CameraFeed@.\nbindCameraTexture_get_camera_active :: MethodBind\nbindCameraTexture_get_camera_active\n  = unsafePerformIO $\n      withCString \"CameraTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_camera_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Convenience property that gives access to the active property of the @CameraFeed@.\nget_camera_active ::\n                    (CameraTexture :< cls, Object :< cls) => cls -> IO Bool\nget_camera_active cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraTexture_get_camera_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraTexture \"get_camera_active\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CameraTexture.get_camera_active\n\n{-# NOINLINE bindCameraTexture_get_camera_feed_id #-}\n\n-- | The ID of the @CameraFeed@ for which we want to display the image.\nbindCameraTexture_get_camera_feed_id :: MethodBind\nbindCameraTexture_get_camera_feed_id\n  = unsafePerformIO $\n      withCString \"CameraTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_camera_feed_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ID of the @CameraFeed@ for which we want to display the image.\nget_camera_feed_id ::\n                     (CameraTexture :< cls, Object :< cls) => cls -> IO Int\nget_camera_feed_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraTexture_get_camera_feed_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraTexture \"get_camera_feed_id\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.CameraTexture.get_camera_feed_id\n\n{-# NOINLINE bindCameraTexture_get_which_feed #-}\n\n-- | Which image within the @CameraFeed@ we want access to, important if the camera image is split in a Y and CbCr component.\nbindCameraTexture_get_which_feed :: MethodBind\nbindCameraTexture_get_which_feed\n  = unsafePerformIO $\n      withCString \"CameraTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_which_feed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Which image within the @CameraFeed@ we want access to, important if the camera image is split in a Y and CbCr component.\nget_which_feed ::\n                 (CameraTexture :< cls, Object :< cls) => cls -> IO Int\nget_which_feed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraTexture_get_which_feed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraTexture \"get_which_feed\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.CameraTexture.get_which_feed\n\n{-# NOINLINE bindCameraTexture_set_camera_active #-}\n\n-- | Convenience property that gives access to the active property of the @CameraFeed@.\nbindCameraTexture_set_camera_active :: MethodBind\nbindCameraTexture_set_camera_active\n  = unsafePerformIO $\n      withCString \"CameraTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_camera_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Convenience property that gives access to the active property of the @CameraFeed@.\nset_camera_active ::\n                    (CameraTexture :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_camera_active cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraTexture_set_camera_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraTexture \"set_camera_active\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CameraTexture.set_camera_active\n\n{-# NOINLINE bindCameraTexture_set_camera_feed_id #-}\n\n-- | The ID of the @CameraFeed@ for which we want to display the image.\nbindCameraTexture_set_camera_feed_id :: MethodBind\nbindCameraTexture_set_camera_feed_id\n  = unsafePerformIO $\n      withCString \"CameraTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_camera_feed_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ID of the @CameraFeed@ for which we want to display the image.\nset_camera_feed_id ::\n                     (CameraTexture :< cls, Object :< cls) => cls -> Int -> IO ()\nset_camera_feed_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraTexture_set_camera_feed_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraTexture \"set_camera_feed_id\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CameraTexture.set_camera_feed_id\n\n{-# NOINLINE bindCameraTexture_set_which_feed #-}\n\n-- | Which image within the @CameraFeed@ we want access to, important if the camera image is split in a Y and CbCr component.\nbindCameraTexture_set_which_feed :: MethodBind\nbindCameraTexture_set_which_feed\n  = unsafePerformIO $\n      withCString \"CameraTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_which_feed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Which image within the @CameraFeed@ we want access to, important if the camera image is split in a Y and CbCr component.\nset_which_feed ::\n                 (CameraTexture :< cls, Object :< cls) => cls -> Int -> IO ()\nset_which_feed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCameraTexture_set_which_feed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CameraTexture \"set_which_feed\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.CameraTexture.set_which_feed"
  },
  {
    "path": "src/Godot/Core/CanvasItem.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CanvasItem\n       (Godot.Core.CanvasItem._BLEND_MODE_DISABLED,\n        Godot.Core.CanvasItem._NOTIFICATION_EXIT_CANVAS,\n        Godot.Core.CanvasItem._NOTIFICATION_ENTER_CANVAS,\n        Godot.Core.CanvasItem._NOTIFICATION_TRANSFORM_CHANGED,\n        Godot.Core.CanvasItem._BLEND_MODE_ADD,\n        Godot.Core.CanvasItem._BLEND_MODE_MIX,\n        Godot.Core.CanvasItem._NOTIFICATION_DRAW,\n        Godot.Core.CanvasItem._BLEND_MODE_MUL,\n        Godot.Core.CanvasItem._BLEND_MODE_PREMULT_ALPHA,\n        Godot.Core.CanvasItem._BLEND_MODE_SUB,\n        Godot.Core.CanvasItem._NOTIFICATION_VISIBILITY_CHANGED,\n        Godot.Core.CanvasItem.sig_draw, Godot.Core.CanvasItem.sig_hide,\n        Godot.Core.CanvasItem.sig_item_rect_changed,\n        Godot.Core.CanvasItem.sig_visibility_changed,\n        Godot.Core.CanvasItem._draw, Godot.Core.CanvasItem._edit_get_pivot,\n        Godot.Core.CanvasItem._edit_get_position,\n        Godot.Core.CanvasItem._edit_get_rect,\n        Godot.Core.CanvasItem._edit_get_rotation,\n        Godot.Core.CanvasItem._edit_get_scale,\n        Godot.Core.CanvasItem._edit_get_state,\n        Godot.Core.CanvasItem._edit_get_transform,\n        Godot.Core.CanvasItem._edit_set_pivot,\n        Godot.Core.CanvasItem._edit_set_position,\n        Godot.Core.CanvasItem._edit_set_rect,\n        Godot.Core.CanvasItem._edit_set_rotation,\n        Godot.Core.CanvasItem._edit_set_scale,\n        Godot.Core.CanvasItem._edit_set_state,\n        Godot.Core.CanvasItem._edit_use_pivot,\n        Godot.Core.CanvasItem._edit_use_rect,\n        Godot.Core.CanvasItem._edit_use_rotation,\n        Godot.Core.CanvasItem._is_on_top,\n        Godot.Core.CanvasItem._set_on_top,\n        Godot.Core.CanvasItem._toplevel_raise_self,\n        Godot.Core.CanvasItem._update_callback,\n        Godot.Core.CanvasItem.draw_arc, Godot.Core.CanvasItem.draw_char,\n        Godot.Core.CanvasItem.draw_circle,\n        Godot.Core.CanvasItem.draw_colored_polygon,\n        Godot.Core.CanvasItem.draw_line, Godot.Core.CanvasItem.draw_mesh,\n        Godot.Core.CanvasItem.draw_multiline,\n        Godot.Core.CanvasItem.draw_multiline_colors,\n        Godot.Core.CanvasItem.draw_multimesh,\n        Godot.Core.CanvasItem.draw_polygon,\n        Godot.Core.CanvasItem.draw_polyline,\n        Godot.Core.CanvasItem.draw_polyline_colors,\n        Godot.Core.CanvasItem.draw_primitive,\n        Godot.Core.CanvasItem.draw_rect,\n        Godot.Core.CanvasItem.draw_set_transform,\n        Godot.Core.CanvasItem.draw_set_transform_matrix,\n        Godot.Core.CanvasItem.draw_string,\n        Godot.Core.CanvasItem.draw_style_box,\n        Godot.Core.CanvasItem.draw_texture,\n        Godot.Core.CanvasItem.draw_texture_rect,\n        Godot.Core.CanvasItem.draw_texture_rect_region,\n        Godot.Core.CanvasItem.force_update_transform,\n        Godot.Core.CanvasItem.get_canvas,\n        Godot.Core.CanvasItem.get_canvas_item,\n        Godot.Core.CanvasItem.get_canvas_transform,\n        Godot.Core.CanvasItem.get_global_mouse_position,\n        Godot.Core.CanvasItem.get_global_transform,\n        Godot.Core.CanvasItem.get_global_transform_with_canvas,\n        Godot.Core.CanvasItem.get_light_mask,\n        Godot.Core.CanvasItem.get_local_mouse_position,\n        Godot.Core.CanvasItem.get_material,\n        Godot.Core.CanvasItem.get_modulate,\n        Godot.Core.CanvasItem.get_self_modulate,\n        Godot.Core.CanvasItem.get_transform,\n        Godot.Core.CanvasItem.get_use_parent_material,\n        Godot.Core.CanvasItem.get_viewport_rect,\n        Godot.Core.CanvasItem.get_viewport_transform,\n        Godot.Core.CanvasItem.get_world_2d, Godot.Core.CanvasItem.hide,\n        Godot.Core.CanvasItem.is_draw_behind_parent_enabled,\n        Godot.Core.CanvasItem.is_local_transform_notification_enabled,\n        Godot.Core.CanvasItem.is_set_as_toplevel,\n        Godot.Core.CanvasItem.is_transform_notification_enabled,\n        Godot.Core.CanvasItem.is_visible,\n        Godot.Core.CanvasItem.is_visible_in_tree,\n        Godot.Core.CanvasItem.make_canvas_position_local,\n        Godot.Core.CanvasItem.make_input_local,\n        Godot.Core.CanvasItem.set_as_toplevel,\n        Godot.Core.CanvasItem.set_draw_behind_parent,\n        Godot.Core.CanvasItem.set_light_mask,\n        Godot.Core.CanvasItem.set_material,\n        Godot.Core.CanvasItem.set_modulate,\n        Godot.Core.CanvasItem.set_notify_local_transform,\n        Godot.Core.CanvasItem.set_notify_transform,\n        Godot.Core.CanvasItem.set_self_modulate,\n        Godot.Core.CanvasItem.set_use_parent_material,\n        Godot.Core.CanvasItem.set_visible, Godot.Core.CanvasItem.show,\n        Godot.Core.CanvasItem.update)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\n_BLEND_MODE_DISABLED :: Int\n_BLEND_MODE_DISABLED = 5\n\n_NOTIFICATION_EXIT_CANVAS :: Int\n_NOTIFICATION_EXIT_CANVAS = 33\n\n_NOTIFICATION_ENTER_CANVAS :: Int\n_NOTIFICATION_ENTER_CANVAS = 32\n\n_NOTIFICATION_TRANSFORM_CHANGED :: Int\n_NOTIFICATION_TRANSFORM_CHANGED = 2000\n\n_BLEND_MODE_ADD :: Int\n_BLEND_MODE_ADD = 1\n\n_BLEND_MODE_MIX :: Int\n_BLEND_MODE_MIX = 0\n\n_NOTIFICATION_DRAW :: Int\n_NOTIFICATION_DRAW = 30\n\n_BLEND_MODE_MUL :: Int\n_BLEND_MODE_MUL = 3\n\n_BLEND_MODE_PREMULT_ALPHA :: Int\n_BLEND_MODE_PREMULT_ALPHA = 4\n\n_BLEND_MODE_SUB :: Int\n_BLEND_MODE_SUB = 2\n\n_NOTIFICATION_VISIBILITY_CHANGED :: Int\n_NOTIFICATION_VISIBILITY_CHANGED = 31\n\n-- | Emitted when the @CanvasItem@ must redraw. This can only be connected realtime, as deferred will not allow drawing.\nsig_draw :: Godot.Internal.Dispatch.Signal CanvasItem\nsig_draw = Godot.Internal.Dispatch.Signal \"draw\"\n\ninstance NodeSignal CanvasItem \"draw\" '[]\n\n-- | Emitted when becoming hidden.\nsig_hide :: Godot.Internal.Dispatch.Signal CanvasItem\nsig_hide = Godot.Internal.Dispatch.Signal \"hide\"\n\ninstance NodeSignal CanvasItem \"hide\" '[]\n\n-- | Emitted when the item rect has changed.\nsig_item_rect_changed :: Godot.Internal.Dispatch.Signal CanvasItem\nsig_item_rect_changed\n  = Godot.Internal.Dispatch.Signal \"item_rect_changed\"\n\ninstance NodeSignal CanvasItem \"item_rect_changed\" '[]\n\n-- | Emitted when the visibility (hidden/visible) changes.\nsig_visibility_changed :: Godot.Internal.Dispatch.Signal CanvasItem\nsig_visibility_changed\n  = Godot.Internal.Dispatch.Signal \"visibility_changed\"\n\ninstance NodeSignal CanvasItem \"visibility_changed\" '[]\n\ninstance NodeProperty CanvasItem \"light_mask\" Int 'False where\n        nodeProperty\n          = (get_light_mask, wrapDroppingSetter set_light_mask, Nothing)\n\ninstance NodeProperty CanvasItem \"material\" Material 'False where\n        nodeProperty\n          = (get_material, wrapDroppingSetter set_material, Nothing)\n\ninstance NodeProperty CanvasItem \"modulate\" Color 'False where\n        nodeProperty\n          = (get_modulate, wrapDroppingSetter set_modulate, Nothing)\n\ninstance NodeProperty CanvasItem \"self_modulate\" Color 'False where\n        nodeProperty\n          = (get_self_modulate, wrapDroppingSetter set_self_modulate,\n             Nothing)\n\ninstance NodeProperty CanvasItem \"show_behind_parent\" Bool 'False\n         where\n        nodeProperty\n          = (is_draw_behind_parent_enabled,\n             wrapDroppingSetter set_draw_behind_parent, Nothing)\n\ninstance NodeProperty CanvasItem \"show_on_top\" Bool 'False where\n        nodeProperty\n          = (_is_on_top, wrapDroppingSetter _set_on_top, Nothing)\n\ninstance NodeProperty CanvasItem \"use_parent_material\" Bool 'False\n         where\n        nodeProperty\n          = (get_use_parent_material,\n             wrapDroppingSetter set_use_parent_material, Nothing)\n\ninstance NodeProperty CanvasItem \"visible\" Bool 'False where\n        nodeProperty\n          = (is_visible, wrapDroppingSetter set_visible, Nothing)\n\n{-# NOINLINE bindCanvasItem__draw #-}\n\n-- | Overridable function called by the engine (if defined) to draw the canvas item.\nbindCanvasItem__draw :: MethodBind\nbindCanvasItem__draw\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_draw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Overridable function called by the engine (if defined) to draw the canvas item.\n_draw :: (CanvasItem :< cls, Object :< cls) => cls -> IO ()\n_draw cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__draw (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_draw\" '[] (IO ()) where\n        nodeMethod = Godot.Core.CanvasItem._draw\n\n{-# NOINLINE bindCanvasItem__edit_get_pivot #-}\n\nbindCanvasItem__edit_get_pivot :: MethodBind\nbindCanvasItem__edit_get_pivot\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_edit_get_pivot\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_edit_get_pivot ::\n                  (CanvasItem :< cls, Object :< cls) => cls -> IO Vector2\n_edit_get_pivot cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__edit_get_pivot (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_edit_get_pivot\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.CanvasItem._edit_get_pivot\n\n{-# NOINLINE bindCanvasItem__edit_get_position #-}\n\nbindCanvasItem__edit_get_position :: MethodBind\nbindCanvasItem__edit_get_position\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_edit_get_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_edit_get_position ::\n                     (CanvasItem :< cls, Object :< cls) => cls -> IO Vector2\n_edit_get_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__edit_get_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_edit_get_position\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.CanvasItem._edit_get_position\n\n{-# NOINLINE bindCanvasItem__edit_get_rect #-}\n\nbindCanvasItem__edit_get_rect :: MethodBind\nbindCanvasItem__edit_get_rect\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_edit_get_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_edit_get_rect ::\n                 (CanvasItem :< cls, Object :< cls) => cls -> IO Rect2\n_edit_get_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__edit_get_rect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_edit_get_rect\" '[] (IO Rect2)\n         where\n        nodeMethod = Godot.Core.CanvasItem._edit_get_rect\n\n{-# NOINLINE bindCanvasItem__edit_get_rotation #-}\n\nbindCanvasItem__edit_get_rotation :: MethodBind\nbindCanvasItem__edit_get_rotation\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_edit_get_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_edit_get_rotation ::\n                     (CanvasItem :< cls, Object :< cls) => cls -> IO Float\n_edit_get_rotation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__edit_get_rotation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_edit_get_rotation\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.CanvasItem._edit_get_rotation\n\n{-# NOINLINE bindCanvasItem__edit_get_scale #-}\n\nbindCanvasItem__edit_get_scale :: MethodBind\nbindCanvasItem__edit_get_scale\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_edit_get_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_edit_get_scale ::\n                  (CanvasItem :< cls, Object :< cls) => cls -> IO Vector2\n_edit_get_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__edit_get_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_edit_get_scale\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.CanvasItem._edit_get_scale\n\n{-# NOINLINE bindCanvasItem__edit_get_state #-}\n\nbindCanvasItem__edit_get_state :: MethodBind\nbindCanvasItem__edit_get_state\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_edit_get_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_edit_get_state ::\n                  (CanvasItem :< cls, Object :< cls) => cls -> IO Dictionary\n_edit_get_state cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__edit_get_state (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_edit_get_state\" '[]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.CanvasItem._edit_get_state\n\n{-# NOINLINE bindCanvasItem__edit_get_transform #-}\n\nbindCanvasItem__edit_get_transform :: MethodBind\nbindCanvasItem__edit_get_transform\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_edit_get_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_edit_get_transform ::\n                      (CanvasItem :< cls, Object :< cls) => cls -> IO Transform2d\n_edit_get_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__edit_get_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_edit_get_transform\" '[]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.CanvasItem._edit_get_transform\n\n{-# NOINLINE bindCanvasItem__edit_set_pivot #-}\n\nbindCanvasItem__edit_set_pivot :: MethodBind\nbindCanvasItem__edit_set_pivot\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_edit_set_pivot\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_edit_set_pivot ::\n                  (CanvasItem :< cls, Object :< cls) => cls -> Vector2 -> IO ()\n_edit_set_pivot cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__edit_set_pivot (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_edit_set_pivot\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem._edit_set_pivot\n\n{-# NOINLINE bindCanvasItem__edit_set_position #-}\n\nbindCanvasItem__edit_set_position :: MethodBind\nbindCanvasItem__edit_set_position\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_edit_set_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_edit_set_position ::\n                     (CanvasItem :< cls, Object :< cls) => cls -> Vector2 -> IO ()\n_edit_set_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__edit_set_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_edit_set_position\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem._edit_set_position\n\n{-# NOINLINE bindCanvasItem__edit_set_rect #-}\n\nbindCanvasItem__edit_set_rect :: MethodBind\nbindCanvasItem__edit_set_rect\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_edit_set_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_edit_set_rect ::\n                 (CanvasItem :< cls, Object :< cls) => cls -> Rect2 -> IO ()\n_edit_set_rect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__edit_set_rect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_edit_set_rect\" '[Rect2] (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem._edit_set_rect\n\n{-# NOINLINE bindCanvasItem__edit_set_rotation #-}\n\nbindCanvasItem__edit_set_rotation :: MethodBind\nbindCanvasItem__edit_set_rotation\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_edit_set_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_edit_set_rotation ::\n                     (CanvasItem :< cls, Object :< cls) => cls -> Float -> IO ()\n_edit_set_rotation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__edit_set_rotation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_edit_set_rotation\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem._edit_set_rotation\n\n{-# NOINLINE bindCanvasItem__edit_set_scale #-}\n\nbindCanvasItem__edit_set_scale :: MethodBind\nbindCanvasItem__edit_set_scale\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_edit_set_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_edit_set_scale ::\n                  (CanvasItem :< cls, Object :< cls) => cls -> Vector2 -> IO ()\n_edit_set_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__edit_set_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_edit_set_scale\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem._edit_set_scale\n\n{-# NOINLINE bindCanvasItem__edit_set_state #-}\n\nbindCanvasItem__edit_set_state :: MethodBind\nbindCanvasItem__edit_set_state\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_edit_set_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_edit_set_state ::\n                  (CanvasItem :< cls, Object :< cls) => cls -> Dictionary -> IO ()\n_edit_set_state cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__edit_set_state (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_edit_set_state\" '[Dictionary]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem._edit_set_state\n\n{-# NOINLINE bindCanvasItem__edit_use_pivot #-}\n\nbindCanvasItem__edit_use_pivot :: MethodBind\nbindCanvasItem__edit_use_pivot\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_edit_use_pivot\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_edit_use_pivot ::\n                  (CanvasItem :< cls, Object :< cls) => cls -> IO Bool\n_edit_use_pivot cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__edit_use_pivot (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_edit_use_pivot\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CanvasItem._edit_use_pivot\n\n{-# NOINLINE bindCanvasItem__edit_use_rect #-}\n\nbindCanvasItem__edit_use_rect :: MethodBind\nbindCanvasItem__edit_use_rect\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_edit_use_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_edit_use_rect ::\n                 (CanvasItem :< cls, Object :< cls) => cls -> IO Bool\n_edit_use_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__edit_use_rect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_edit_use_rect\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.CanvasItem._edit_use_rect\n\n{-# NOINLINE bindCanvasItem__edit_use_rotation #-}\n\nbindCanvasItem__edit_use_rotation :: MethodBind\nbindCanvasItem__edit_use_rotation\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_edit_use_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_edit_use_rotation ::\n                     (CanvasItem :< cls, Object :< cls) => cls -> IO Bool\n_edit_use_rotation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__edit_use_rotation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_edit_use_rotation\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CanvasItem._edit_use_rotation\n\n{-# NOINLINE bindCanvasItem__is_on_top #-}\n\n-- | If @true@, the object draws on top of its parent.\nbindCanvasItem__is_on_top :: MethodBind\nbindCanvasItem__is_on_top\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_is_on_top\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the object draws on top of its parent.\n_is_on_top :: (CanvasItem :< cls, Object :< cls) => cls -> IO Bool\n_is_on_top cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__is_on_top (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_is_on_top\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.CanvasItem._is_on_top\n\n{-# NOINLINE bindCanvasItem__set_on_top #-}\n\n-- | If @true@, the object draws on top of its parent.\nbindCanvasItem__set_on_top :: MethodBind\nbindCanvasItem__set_on_top\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_set_on_top\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the object draws on top of its parent.\n_set_on_top ::\n              (CanvasItem :< cls, Object :< cls) => cls -> Bool -> IO ()\n_set_on_top cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__set_on_top (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_set_on_top\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.CanvasItem._set_on_top\n\n{-# NOINLINE bindCanvasItem__toplevel_raise_self #-}\n\nbindCanvasItem__toplevel_raise_self :: MethodBind\nbindCanvasItem__toplevel_raise_self\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_toplevel_raise_self\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_toplevel_raise_self ::\n                       (CanvasItem :< cls, Object :< cls) => cls -> IO ()\n_toplevel_raise_self cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__toplevel_raise_self\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_toplevel_raise_self\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem._toplevel_raise_self\n\n{-# NOINLINE bindCanvasItem__update_callback #-}\n\nbindCanvasItem__update_callback :: MethodBind\nbindCanvasItem__update_callback\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"_update_callback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_callback ::\n                   (CanvasItem :< cls, Object :< cls) => cls -> IO ()\n_update_callback cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem__update_callback (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"_update_callback\" '[] (IO ()) where\n        nodeMethod = Godot.Core.CanvasItem._update_callback\n\n{-# NOINLINE bindCanvasItem_draw_arc #-}\n\n-- | Draws an arc between the given angles. The larger the value of @point_count@, the smoother the curve.\nbindCanvasItem_draw_arc :: MethodBind\nbindCanvasItem_draw_arc\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_arc\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws an arc between the given angles. The larger the value of @point_count@, the smoother the curve.\ndraw_arc ::\n           (CanvasItem :< cls, Object :< cls) =>\n           cls ->\n             Vector2 ->\n               Float ->\n                 Float ->\n                   Float -> Int -> Color -> Maybe Float -> Maybe Bool -> IO ()\ndraw_arc cls arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6,\n       maybe (VariantReal (1)) toVariant arg7,\n       maybe (VariantBool False) toVariant arg8]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_arc (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_arc\"\n           '[Vector2, Float, Float, Float, Int, Color, Maybe Float,\n             Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_arc\n\n{-# NOINLINE bindCanvasItem_draw_char #-}\n\n-- | Draws a string character using a custom font. Returns the advance, depending on the character width and kerning with an optional next character.\nbindCanvasItem_draw_char :: MethodBind\nbindCanvasItem_draw_char\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_char\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws a string character using a custom font. Returns the advance, depending on the character width and kerning with an optional next character.\ndraw_char ::\n            (CanvasItem :< cls, Object :< cls) =>\n            cls ->\n              Font ->\n                Vector2 -> GodotString -> GodotString -> Maybe Color -> IO Float\ndraw_char cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_char (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_char\"\n           '[Font, Vector2, GodotString, GodotString, Maybe Color]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_char\n\n{-# NOINLINE bindCanvasItem_draw_circle #-}\n\n-- | Draws a colored circle.\nbindCanvasItem_draw_circle :: MethodBind\nbindCanvasItem_draw_circle\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_circle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws a colored circle.\ndraw_circle ::\n              (CanvasItem :< cls, Object :< cls) =>\n              cls -> Vector2 -> Float -> Color -> IO ()\ndraw_circle cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_circle (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_circle\"\n           '[Vector2, Float, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_circle\n\n{-# NOINLINE bindCanvasItem_draw_colored_polygon #-}\n\n-- | Draws a colored polygon of any amount of points, convex or concave.\nbindCanvasItem_draw_colored_polygon :: MethodBind\nbindCanvasItem_draw_colored_polygon\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_colored_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws a colored polygon of any amount of points, convex or concave.\ndraw_colored_polygon ::\n                       (CanvasItem :< cls, Object :< cls) =>\n                       cls ->\n                         PoolVector2Array ->\n                           Color ->\n                             Maybe PoolVector2Array ->\n                               Maybe Texture -> Maybe Texture -> Maybe Bool -> IO ()\ndraw_colored_polygon cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantPoolVector2Array V.empty arg3,\n       maybe VariantNil toVariant arg4, maybe VariantNil toVariant arg5,\n       maybe (VariantBool False) toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_colored_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_colored_polygon\"\n           '[PoolVector2Array, Color, Maybe PoolVector2Array, Maybe Texture,\n             Maybe Texture, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_colored_polygon\n\n{-# NOINLINE bindCanvasItem_draw_line #-}\n\n-- | Draws a line from a 2D point to another, with a given color and width. It can be optionally antialiased.\nbindCanvasItem_draw_line :: MethodBind\nbindCanvasItem_draw_line\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws a line from a 2D point to another, with a given color and width. It can be optionally antialiased.\ndraw_line ::\n            (CanvasItem :< cls, Object :< cls) =>\n            cls ->\n              Vector2 -> Vector2 -> Color -> Maybe Float -> Maybe Bool -> IO ()\ndraw_line cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantReal (1)) toVariant arg4,\n       maybe (VariantBool False) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_line (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_line\"\n           '[Vector2, Vector2, Color, Maybe Float, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_line\n\n{-# NOINLINE bindCanvasItem_draw_mesh #-}\n\n-- | Draws a @Mesh@ in 2D, using the provided texture. See @MeshInstance2D@ for related documentation.\nbindCanvasItem_draw_mesh :: MethodBind\nbindCanvasItem_draw_mesh\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws a @Mesh@ in 2D, using the provided texture. See @MeshInstance2D@ for related documentation.\ndraw_mesh ::\n            (CanvasItem :< cls, Object :< cls) =>\n            cls ->\n              Mesh ->\n                Texture ->\n                  Maybe Texture -> Maybe Transform2d -> Maybe Color -> IO ()\ndraw_mesh cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, maybe VariantNil toVariant arg3,\n       defaultedVariant VariantTransform2d\n         (TF2d (V2 1 0) (V2 0 1) (V2 0 0))\n         arg4,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_mesh (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_mesh\"\n           '[Mesh, Texture, Maybe Texture, Maybe Transform2d, Maybe Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_mesh\n\n{-# NOINLINE bindCanvasItem_draw_multiline #-}\n\n-- | Draws multiple, parallel lines with a uniform @color@.\n--   \t\t\t\t__Note:__ @width@ and @antialiased@ are currently not implemented and have no effect.\nbindCanvasItem_draw_multiline :: MethodBind\nbindCanvasItem_draw_multiline\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_multiline\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws multiple, parallel lines with a uniform @color@.\n--   \t\t\t\t__Note:__ @width@ and @antialiased@ are currently not implemented and have no effect.\ndraw_multiline ::\n                 (CanvasItem :< cls, Object :< cls) =>\n                 cls ->\n                   PoolVector2Array -> Color -> Maybe Float -> Maybe Bool -> IO ()\ndraw_multiline cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantReal (1)) toVariant arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_multiline (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_multiline\"\n           '[PoolVector2Array, Color, Maybe Float, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_multiline\n\n{-# NOINLINE bindCanvasItem_draw_multiline_colors #-}\n\n-- | Draws multiple, parallel lines with a uniform @width@ and segment-by-segment coloring. Colors assigned to line segments match by index between @points@ and @colors@.\n--   \t\t\t\t__Note:__ @width@ and @antialiased@ are currently not implemented and have no effect.\nbindCanvasItem_draw_multiline_colors :: MethodBind\nbindCanvasItem_draw_multiline_colors\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_multiline_colors\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws multiple, parallel lines with a uniform @width@ and segment-by-segment coloring. Colors assigned to line segments match by index between @points@ and @colors@.\n--   \t\t\t\t__Note:__ @width@ and @antialiased@ are currently not implemented and have no effect.\ndraw_multiline_colors ::\n                        (CanvasItem :< cls, Object :< cls) =>\n                        cls ->\n                          PoolVector2Array ->\n                            PoolColorArray -> Maybe Float -> Maybe Bool -> IO ()\ndraw_multiline_colors cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantReal (1)) toVariant arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_multiline_colors\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_multiline_colors\"\n           '[PoolVector2Array, PoolColorArray, Maybe Float, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_multiline_colors\n\n{-# NOINLINE bindCanvasItem_draw_multimesh #-}\n\n-- | Draws a @MultiMesh@ in 2D with the provided texture. See @MultiMeshInstance2D@ for related documentation.\nbindCanvasItem_draw_multimesh :: MethodBind\nbindCanvasItem_draw_multimesh\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_multimesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws a @MultiMesh@ in 2D with the provided texture. See @MultiMeshInstance2D@ for related documentation.\ndraw_multimesh ::\n                 (CanvasItem :< cls, Object :< cls) =>\n                 cls -> MultiMesh -> Texture -> Maybe Texture -> IO ()\ndraw_multimesh cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, maybe VariantNil toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_multimesh (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_multimesh\"\n           '[MultiMesh, Texture, Maybe Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_multimesh\n\n{-# NOINLINE bindCanvasItem_draw_polygon #-}\n\n-- | Draws a polygon of any amount of points, convex or concave.\nbindCanvasItem_draw_polygon :: MethodBind\nbindCanvasItem_draw_polygon\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws a polygon of any amount of points, convex or concave.\ndraw_polygon ::\n               (CanvasItem :< cls, Object :< cls) =>\n               cls ->\n                 PoolVector2Array ->\n                   PoolColorArray ->\n                     Maybe PoolVector2Array ->\n                       Maybe Texture -> Maybe Texture -> Maybe Bool -> IO ()\ndraw_polygon cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantPoolVector2Array V.empty arg3,\n       maybe VariantNil toVariant arg4, maybe VariantNil toVariant arg5,\n       maybe (VariantBool False) toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_polygon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_polygon\"\n           '[PoolVector2Array, PoolColorArray, Maybe PoolVector2Array,\n             Maybe Texture, Maybe Texture, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_polygon\n\n{-# NOINLINE bindCanvasItem_draw_polyline #-}\n\n-- | Draws interconnected line segments with a uniform @color@ and @width@ and optional antialiasing.\nbindCanvasItem_draw_polyline :: MethodBind\nbindCanvasItem_draw_polyline\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_polyline\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws interconnected line segments with a uniform @color@ and @width@ and optional antialiasing.\ndraw_polyline ::\n                (CanvasItem :< cls, Object :< cls) =>\n                cls ->\n                  PoolVector2Array -> Color -> Maybe Float -> Maybe Bool -> IO ()\ndraw_polyline cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantReal (1)) toVariant arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_polyline (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_polyline\"\n           '[PoolVector2Array, Color, Maybe Float, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_polyline\n\n{-# NOINLINE bindCanvasItem_draw_polyline_colors #-}\n\n-- | Draws interconnected line segments with a uniform @width@, segment-by-segment coloring, and optional antialiasing. Colors assigned to line segments match by index between @points@ and @colors@.\nbindCanvasItem_draw_polyline_colors :: MethodBind\nbindCanvasItem_draw_polyline_colors\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_polyline_colors\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws interconnected line segments with a uniform @width@, segment-by-segment coloring, and optional antialiasing. Colors assigned to line segments match by index between @points@ and @colors@.\ndraw_polyline_colors ::\n                       (CanvasItem :< cls, Object :< cls) =>\n                       cls ->\n                         PoolVector2Array ->\n                           PoolColorArray -> Maybe Float -> Maybe Bool -> IO ()\ndraw_polyline_colors cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantReal (1)) toVariant arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_polyline_colors\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_polyline_colors\"\n           '[PoolVector2Array, PoolColorArray, Maybe Float, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_polyline_colors\n\n{-# NOINLINE bindCanvasItem_draw_primitive #-}\n\n-- | Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points for a triangle and 4 points for a quad.\nbindCanvasItem_draw_primitive :: MethodBind\nbindCanvasItem_draw_primitive\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_primitive\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points for a triangle and 4 points for a quad.\ndraw_primitive ::\n                 (CanvasItem :< cls, Object :< cls) =>\n                 cls ->\n                   PoolVector2Array ->\n                     PoolColorArray ->\n                       PoolVector2Array ->\n                         Maybe Texture -> Maybe Float -> Maybe Texture -> IO ()\ndraw_primitive cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe VariantNil toVariant arg4,\n       maybe (VariantReal (1)) toVariant arg5,\n       maybe VariantNil toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_primitive (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_primitive\"\n           '[PoolVector2Array, PoolColorArray, PoolVector2Array,\n             Maybe Texture, Maybe Float, Maybe Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_primitive\n\n{-# NOINLINE bindCanvasItem_draw_rect #-}\n\n-- | Draws a rectangle. If @filled@ is @true@, the rectangle will be filled with the @color@ specified. If @filled@ is @false@, the rectangle will be drawn as a stroke with the @color@ and @width@ specified. If @antialiased@ is @true@, the lines will be antialiased.\n--   \t\t\t\t__Note:__ @width@ and @antialiased@ are only effective if @filled@ is @false@.\nbindCanvasItem_draw_rect :: MethodBind\nbindCanvasItem_draw_rect\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws a rectangle. If @filled@ is @true@, the rectangle will be filled with the @color@ specified. If @filled@ is @false@, the rectangle will be drawn as a stroke with the @color@ and @width@ specified. If @antialiased@ is @true@, the lines will be antialiased.\n--   \t\t\t\t__Note:__ @width@ and @antialiased@ are only effective if @filled@ is @false@.\ndraw_rect ::\n            (CanvasItem :< cls, Object :< cls) =>\n            cls ->\n              Rect2 -> Color -> Maybe Bool -> Maybe Float -> Maybe Bool -> IO ()\ndraw_rect cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool True) toVariant arg3,\n       maybe (VariantReal (1)) toVariant arg4,\n       maybe (VariantBool False) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_rect (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_rect\"\n           '[Rect2, Color, Maybe Bool, Maybe Float, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_rect\n\n{-# NOINLINE bindCanvasItem_draw_set_transform #-}\n\n-- | Sets a custom transform for drawing via components. Anything drawn afterwards will be transformed by this.\nbindCanvasItem_draw_set_transform :: MethodBind\nbindCanvasItem_draw_set_transform\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a custom transform for drawing via components. Anything drawn afterwards will be transformed by this.\ndraw_set_transform ::\n                     (CanvasItem :< cls, Object :< cls) =>\n                     cls -> Vector2 -> Float -> Vector2 -> IO ()\ndraw_set_transform cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_set_transform\"\n           '[Vector2, Float, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_set_transform\n\n{-# NOINLINE bindCanvasItem_draw_set_transform_matrix #-}\n\n-- | Sets a custom transform for drawing via matrix. Anything drawn afterwards will be transformed by this.\nbindCanvasItem_draw_set_transform_matrix :: MethodBind\nbindCanvasItem_draw_set_transform_matrix\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_set_transform_matrix\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a custom transform for drawing via matrix. Anything drawn afterwards will be transformed by this.\ndraw_set_transform_matrix ::\n                            (CanvasItem :< cls, Object :< cls) => cls -> Transform2d -> IO ()\ndraw_set_transform_matrix cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_set_transform_matrix\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_set_transform_matrix\"\n           '[Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_set_transform_matrix\n\n{-# NOINLINE bindCanvasItem_draw_string #-}\n\n-- | Draws @text@ using the specified @font@ at the @position@ (top-left corner). The text will have its color multiplied by @modulate@. If @clip_w@ is greater than or equal to 0, the text will be clipped if it exceeds the specified width.\n--   \t\t\t\t__Example using the default project font:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t# If using this method in a script that redraws constantly, move the\n--   \t\t\t\t# `default_font` declaration to a member variable assigned in `_ready()`\n--   \t\t\t\t# so the Control is only created once.\n--   \t\t\t\tvar default_font = Control.new().get_font(\"font\")\n--   \t\t\t\tdraw_string(default_font, Vector2(64, 64), \"Hello world\")\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tSee also @method Font.draw@.\nbindCanvasItem_draw_string :: MethodBind\nbindCanvasItem_draw_string\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws @text@ using the specified @font@ at the @position@ (top-left corner). The text will have its color multiplied by @modulate@. If @clip_w@ is greater than or equal to 0, the text will be clipped if it exceeds the specified width.\n--   \t\t\t\t__Example using the default project font:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t# If using this method in a script that redraws constantly, move the\n--   \t\t\t\t# `default_font` declaration to a member variable assigned in `_ready()`\n--   \t\t\t\t# so the Control is only created once.\n--   \t\t\t\tvar default_font = Control.new().get_font(\"font\")\n--   \t\t\t\tdraw_string(default_font, Vector2(64, 64), \"Hello world\")\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tSee also @method Font.draw@.\ndraw_string ::\n              (CanvasItem :< cls, Object :< cls) =>\n              cls ->\n                Font -> Vector2 -> GodotString -> Maybe Color -> Maybe Int -> IO ()\ndraw_string cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg4,\n       maybe (VariantInt (-1)) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_string (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_string\"\n           '[Font, Vector2, GodotString, Maybe Color, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_string\n\n{-# NOINLINE bindCanvasItem_draw_style_box #-}\n\n-- | Draws a styled rectangle.\nbindCanvasItem_draw_style_box :: MethodBind\nbindCanvasItem_draw_style_box\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_style_box\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws a styled rectangle.\ndraw_style_box ::\n                 (CanvasItem :< cls, Object :< cls) =>\n                 cls -> StyleBox -> Rect2 -> IO ()\ndraw_style_box cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_style_box (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_style_box\" '[StyleBox, Rect2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_style_box\n\n{-# NOINLINE bindCanvasItem_draw_texture #-}\n\n-- | Draws a texture at a given position.\nbindCanvasItem_draw_texture :: MethodBind\nbindCanvasItem_draw_texture\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws a texture at a given position.\ndraw_texture ::\n               (CanvasItem :< cls, Object :< cls) =>\n               cls -> Texture -> Vector2 -> Maybe Color -> Maybe Texture -> IO ()\ndraw_texture cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg3,\n       maybe VariantNil toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_texture\"\n           '[Texture, Vector2, Maybe Color, Maybe Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_texture\n\n{-# NOINLINE bindCanvasItem_draw_texture_rect #-}\n\n-- | Draws a textured rectangle at a given position, optionally modulated by a color. If @transpose@ is @true@, the texture will have its X and Y coordinates swapped.\nbindCanvasItem_draw_texture_rect :: MethodBind\nbindCanvasItem_draw_texture_rect\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_texture_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws a textured rectangle at a given position, optionally modulated by a color. If @transpose@ is @true@, the texture will have its X and Y coordinates swapped.\ndraw_texture_rect ::\n                    (CanvasItem :< cls, Object :< cls) =>\n                    cls ->\n                      Texture ->\n                        Rect2 ->\n                          Bool -> Maybe Color -> Maybe Bool -> Maybe Texture -> IO ()\ndraw_texture_rect cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg4,\n       maybe (VariantBool False) toVariant arg5,\n       maybe VariantNil toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_texture_rect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_texture_rect\"\n           '[Texture, Rect2, Bool, Maybe Color, Maybe Bool, Maybe Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_texture_rect\n\n{-# NOINLINE bindCanvasItem_draw_texture_rect_region #-}\n\n-- | Draws a textured rectangle region at a given position, optionally modulated by a color. If @transpose@ is @true@, the texture will have its X and Y coordinates swapped.\nbindCanvasItem_draw_texture_rect_region :: MethodBind\nbindCanvasItem_draw_texture_rect_region\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"draw_texture_rect_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws a textured rectangle region at a given position, optionally modulated by a color. If @transpose@ is @true@, the texture will have its X and Y coordinates swapped.\ndraw_texture_rect_region ::\n                           (CanvasItem :< cls, Object :< cls) =>\n                           cls ->\n                             Texture ->\n                               Rect2 ->\n                                 Rect2 ->\n                                   Maybe Color -> Maybe Bool -> Maybe Texture -> Maybe Bool -> IO ()\ndraw_texture_rect_region cls arg1 arg2 arg3 arg4 arg5 arg6 arg7\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg4,\n       maybe (VariantBool False) toVariant arg5,\n       maybe VariantNil toVariant arg6,\n       maybe (VariantBool True) toVariant arg7]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_draw_texture_rect_region\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"draw_texture_rect_region\"\n           '[Texture, Rect2, Rect2, Maybe Color, Maybe Bool, Maybe Texture,\n             Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.draw_texture_rect_region\n\n{-# NOINLINE bindCanvasItem_force_update_transform #-}\n\n-- | Forces the transform to update. Transform changes in physics are not instant for performance reasons. Transforms are accumulated and then set. Use this if you need an up-to-date transform when doing physics operations.\nbindCanvasItem_force_update_transform :: MethodBind\nbindCanvasItem_force_update_transform\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"force_update_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Forces the transform to update. Transform changes in physics are not instant for performance reasons. Transforms are accumulated and then set. Use this if you need an up-to-date transform when doing physics operations.\nforce_update_transform ::\n                         (CanvasItem :< cls, Object :< cls) => cls -> IO ()\nforce_update_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_force_update_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"force_update_transform\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.force_update_transform\n\n{-# NOINLINE bindCanvasItem_get_canvas #-}\n\n-- | Returns the @RID@ of the @World2D@ canvas where this item is in.\nbindCanvasItem_get_canvas :: MethodBind\nbindCanvasItem_get_canvas\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_canvas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @RID@ of the @World2D@ canvas where this item is in.\nget_canvas :: (CanvasItem :< cls, Object :< cls) => cls -> IO Rid\nget_canvas cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_get_canvas (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"get_canvas\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.CanvasItem.get_canvas\n\n{-# NOINLINE bindCanvasItem_get_canvas_item #-}\n\n-- | Returns the canvas item RID used by @VisualServer@ for this item.\nbindCanvasItem_get_canvas_item :: MethodBind\nbindCanvasItem_get_canvas_item\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_canvas_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the canvas item RID used by @VisualServer@ for this item.\nget_canvas_item ::\n                  (CanvasItem :< cls, Object :< cls) => cls -> IO Rid\nget_canvas_item cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_get_canvas_item (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"get_canvas_item\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.CanvasItem.get_canvas_item\n\n{-# NOINLINE bindCanvasItem_get_canvas_transform #-}\n\n-- | Returns the transform matrix of this item's canvas.\nbindCanvasItem_get_canvas_transform :: MethodBind\nbindCanvasItem_get_canvas_transform\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_canvas_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the transform matrix of this item's canvas.\nget_canvas_transform ::\n                       (CanvasItem :< cls, Object :< cls) => cls -> IO Transform2d\nget_canvas_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_get_canvas_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"get_canvas_transform\" '[]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.CanvasItem.get_canvas_transform\n\n{-# NOINLINE bindCanvasItem_get_global_mouse_position #-}\n\n-- | Returns the global position of the mouse.\nbindCanvasItem_get_global_mouse_position :: MethodBind\nbindCanvasItem_get_global_mouse_position\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_global_mouse_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the global position of the mouse.\nget_global_mouse_position ::\n                            (CanvasItem :< cls, Object :< cls) => cls -> IO Vector2\nget_global_mouse_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_get_global_mouse_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"get_global_mouse_position\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.CanvasItem.get_global_mouse_position\n\n{-# NOINLINE bindCanvasItem_get_global_transform #-}\n\n-- | Returns the global transform matrix of this item.\nbindCanvasItem_get_global_transform :: MethodBind\nbindCanvasItem_get_global_transform\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_global_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the global transform matrix of this item.\nget_global_transform ::\n                       (CanvasItem :< cls, Object :< cls) => cls -> IO Transform2d\nget_global_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_get_global_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"get_global_transform\" '[]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.CanvasItem.get_global_transform\n\n{-# NOINLINE bindCanvasItem_get_global_transform_with_canvas #-}\n\n-- | Returns the global transform matrix of this item in relation to the canvas.\nbindCanvasItem_get_global_transform_with_canvas :: MethodBind\nbindCanvasItem_get_global_transform_with_canvas\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_global_transform_with_canvas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the global transform matrix of this item in relation to the canvas.\nget_global_transform_with_canvas ::\n                                   (CanvasItem :< cls, Object :< cls) => cls -> IO Transform2d\nget_global_transform_with_canvas cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCanvasItem_get_global_transform_with_canvas\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"get_global_transform_with_canvas\"\n           '[]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.CanvasItem.get_global_transform_with_canvas\n\n{-# NOINLINE bindCanvasItem_get_light_mask #-}\n\n-- | The rendering layers in which this @CanvasItem@ responds to @Light2D@ nodes.\nbindCanvasItem_get_light_mask :: MethodBind\nbindCanvasItem_get_light_mask\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_light_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rendering layers in which this @CanvasItem@ responds to @Light2D@ nodes.\nget_light_mask ::\n                 (CanvasItem :< cls, Object :< cls) => cls -> IO Int\nget_light_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_get_light_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"get_light_mask\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CanvasItem.get_light_mask\n\n{-# NOINLINE bindCanvasItem_get_local_mouse_position #-}\n\n-- | Returns the mouse position relative to this item's position.\nbindCanvasItem_get_local_mouse_position :: MethodBind\nbindCanvasItem_get_local_mouse_position\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_local_mouse_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the mouse position relative to this item's position.\nget_local_mouse_position ::\n                           (CanvasItem :< cls, Object :< cls) => cls -> IO Vector2\nget_local_mouse_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_get_local_mouse_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"get_local_mouse_position\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.CanvasItem.get_local_mouse_position\n\n{-# NOINLINE bindCanvasItem_get_material #-}\n\n-- | The material applied to textures on this @CanvasItem@.\nbindCanvasItem_get_material :: MethodBind\nbindCanvasItem_get_material\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The material applied to textures on this @CanvasItem@.\nget_material ::\n               (CanvasItem :< cls, Object :< cls) => cls -> IO Material\nget_material cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_get_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"get_material\" '[] (IO Material)\n         where\n        nodeMethod = Godot.Core.CanvasItem.get_material\n\n{-# NOINLINE bindCanvasItem_get_modulate #-}\n\n-- | The color applied to textures on this @CanvasItem@.\nbindCanvasItem_get_modulate :: MethodBind\nbindCanvasItem_get_modulate\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_modulate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The color applied to textures on this @CanvasItem@.\nget_modulate ::\n               (CanvasItem :< cls, Object :< cls) => cls -> IO Color\nget_modulate cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_get_modulate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"get_modulate\" '[] (IO Color) where\n        nodeMethod = Godot.Core.CanvasItem.get_modulate\n\n{-# NOINLINE bindCanvasItem_get_self_modulate #-}\n\n-- | The color applied to textures on this @CanvasItem@. This is not inherited by children @CanvasItem@s.\nbindCanvasItem_get_self_modulate :: MethodBind\nbindCanvasItem_get_self_modulate\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_self_modulate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The color applied to textures on this @CanvasItem@. This is not inherited by children @CanvasItem@s.\nget_self_modulate ::\n                    (CanvasItem :< cls, Object :< cls) => cls -> IO Color\nget_self_modulate cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_get_self_modulate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"get_self_modulate\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.CanvasItem.get_self_modulate\n\n{-# NOINLINE bindCanvasItem_get_transform #-}\n\n-- | Returns the transform matrix of this item.\nbindCanvasItem_get_transform :: MethodBind\nbindCanvasItem_get_transform\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the transform matrix of this item.\nget_transform ::\n                (CanvasItem :< cls, Object :< cls) => cls -> IO Transform2d\nget_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_get_transform (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"get_transform\" '[] (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.CanvasItem.get_transform\n\n{-# NOINLINE bindCanvasItem_get_use_parent_material #-}\n\n-- | If @true@, the parent @CanvasItem@'s @material@ property is used as this one's material.\nbindCanvasItem_get_use_parent_material :: MethodBind\nbindCanvasItem_get_use_parent_material\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_use_parent_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the parent @CanvasItem@'s @material@ property is used as this one's material.\nget_use_parent_material ::\n                          (CanvasItem :< cls, Object :< cls) => cls -> IO Bool\nget_use_parent_material cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_get_use_parent_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"get_use_parent_material\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CanvasItem.get_use_parent_material\n\n{-# NOINLINE bindCanvasItem_get_viewport_rect #-}\n\n-- | Returns the viewport's boundaries as a @Rect2@.\nbindCanvasItem_get_viewport_rect :: MethodBind\nbindCanvasItem_get_viewport_rect\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_viewport_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the viewport's boundaries as a @Rect2@.\nget_viewport_rect ::\n                    (CanvasItem :< cls, Object :< cls) => cls -> IO Rect2\nget_viewport_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_get_viewport_rect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"get_viewport_rect\" '[] (IO Rect2)\n         where\n        nodeMethod = Godot.Core.CanvasItem.get_viewport_rect\n\n{-# NOINLINE bindCanvasItem_get_viewport_transform #-}\n\n-- | Returns this item's transform in relation to the viewport.\nbindCanvasItem_get_viewport_transform :: MethodBind\nbindCanvasItem_get_viewport_transform\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_viewport_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns this item's transform in relation to the viewport.\nget_viewport_transform ::\n                         (CanvasItem :< cls, Object :< cls) => cls -> IO Transform2d\nget_viewport_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_get_viewport_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"get_viewport_transform\" '[]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.CanvasItem.get_viewport_transform\n\n{-# NOINLINE bindCanvasItem_get_world_2d #-}\n\n-- | Returns the @World2D@ where this item is in.\nbindCanvasItem_get_world_2d :: MethodBind\nbindCanvasItem_get_world_2d\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_world_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @World2D@ where this item is in.\nget_world_2d ::\n               (CanvasItem :< cls, Object :< cls) => cls -> IO World2D\nget_world_2d cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_get_world_2d (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"get_world_2d\" '[] (IO World2D)\n         where\n        nodeMethod = Godot.Core.CanvasItem.get_world_2d\n\n{-# NOINLINE bindCanvasItem_hide #-}\n\n-- | Hide the @CanvasItem@ if it's currently visible.\nbindCanvasItem_hide :: MethodBind\nbindCanvasItem_hide\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"hide\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Hide the @CanvasItem@ if it's currently visible.\nhide :: (CanvasItem :< cls, Object :< cls) => cls -> IO ()\nhide cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_hide (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"hide\" '[] (IO ()) where\n        nodeMethod = Godot.Core.CanvasItem.hide\n\n{-# NOINLINE bindCanvasItem_is_draw_behind_parent_enabled #-}\n\n-- | If @true@, the object draws behind its parent.\nbindCanvasItem_is_draw_behind_parent_enabled :: MethodBind\nbindCanvasItem_is_draw_behind_parent_enabled\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"is_draw_behind_parent_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the object draws behind its parent.\nis_draw_behind_parent_enabled ::\n                                (CanvasItem :< cls, Object :< cls) => cls -> IO Bool\nis_draw_behind_parent_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_is_draw_behind_parent_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"is_draw_behind_parent_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CanvasItem.is_draw_behind_parent_enabled\n\n{-# NOINLINE bindCanvasItem_is_local_transform_notification_enabled\n             #-}\n\n-- | Returns @true@ if local transform notifications are communicated to children.\nbindCanvasItem_is_local_transform_notification_enabled ::\n                                                       MethodBind\nbindCanvasItem_is_local_transform_notification_enabled\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"is_local_transform_notification_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if local transform notifications are communicated to children.\nis_local_transform_notification_enabled ::\n                                          (CanvasItem :< cls, Object :< cls) => cls -> IO Bool\nis_local_transform_notification_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCanvasItem_is_local_transform_notification_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem\n           \"is_local_transform_notification_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.CanvasItem.is_local_transform_notification_enabled\n\n{-# NOINLINE bindCanvasItem_is_set_as_toplevel #-}\n\n-- | Returns @true@ if the node is set as top-level. See @method set_as_toplevel@.\nbindCanvasItem_is_set_as_toplevel :: MethodBind\nbindCanvasItem_is_set_as_toplevel\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"is_set_as_toplevel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the node is set as top-level. See @method set_as_toplevel@.\nis_set_as_toplevel ::\n                     (CanvasItem :< cls, Object :< cls) => cls -> IO Bool\nis_set_as_toplevel cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_is_set_as_toplevel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"is_set_as_toplevel\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CanvasItem.is_set_as_toplevel\n\n{-# NOINLINE bindCanvasItem_is_transform_notification_enabled #-}\n\n-- | Returns @true@ if global transform notifications are communicated to children.\nbindCanvasItem_is_transform_notification_enabled :: MethodBind\nbindCanvasItem_is_transform_notification_enabled\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"is_transform_notification_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if global transform notifications are communicated to children.\nis_transform_notification_enabled ::\n                                    (CanvasItem :< cls, Object :< cls) => cls -> IO Bool\nis_transform_notification_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCanvasItem_is_transform_notification_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"is_transform_notification_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.CanvasItem.is_transform_notification_enabled\n\n{-# NOINLINE bindCanvasItem_is_visible #-}\n\n-- | If @true@, this @CanvasItem@ is drawn. The node is only visible if all of its antecedents are visible as well (in other words, @method is_visible_in_tree@ must return @true@).\n--   \t\t\t__Note:__ For controls that inherit @Popup@, the correct way to make them visible is to call one of the multiple @popup*()@ functions instead.\nbindCanvasItem_is_visible :: MethodBind\nbindCanvasItem_is_visible\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"is_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this @CanvasItem@ is drawn. The node is only visible if all of its antecedents are visible as well (in other words, @method is_visible_in_tree@ must return @true@).\n--   \t\t\t__Note:__ For controls that inherit @Popup@, the correct way to make them visible is to call one of the multiple @popup*()@ functions instead.\nis_visible :: (CanvasItem :< cls, Object :< cls) => cls -> IO Bool\nis_visible cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_is_visible (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"is_visible\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.CanvasItem.is_visible\n\n{-# NOINLINE bindCanvasItem_is_visible_in_tree #-}\n\n-- | Returns @true@ if the node is present in the @SceneTree@, its @visible@ property is @true@ and all its antecedents are also visible. If any antecedent is hidden, this node will not be visible in the scene tree.\nbindCanvasItem_is_visible_in_tree :: MethodBind\nbindCanvasItem_is_visible_in_tree\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"is_visible_in_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the node is present in the @SceneTree@, its @visible@ property is @true@ and all its antecedents are also visible. If any antecedent is hidden, this node will not be visible in the scene tree.\nis_visible_in_tree ::\n                     (CanvasItem :< cls, Object :< cls) => cls -> IO Bool\nis_visible_in_tree cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_is_visible_in_tree\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"is_visible_in_tree\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CanvasItem.is_visible_in_tree\n\n{-# NOINLINE bindCanvasItem_make_canvas_position_local #-}\n\n-- | Assigns @screen_point@ as this node's new local transform.\nbindCanvasItem_make_canvas_position_local :: MethodBind\nbindCanvasItem_make_canvas_position_local\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"make_canvas_position_local\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Assigns @screen_point@ as this node's new local transform.\nmake_canvas_position_local ::\n                             (CanvasItem :< cls, Object :< cls) => cls -> Vector2 -> IO Vector2\nmake_canvas_position_local cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_make_canvas_position_local\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"make_canvas_position_local\"\n           '[Vector2]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.CanvasItem.make_canvas_position_local\n\n{-# NOINLINE bindCanvasItem_make_input_local #-}\n\n-- | Transformations issued by @event@'s inputs are applied in local space instead of global space.\nbindCanvasItem_make_input_local :: MethodBind\nbindCanvasItem_make_input_local\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"make_input_local\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Transformations issued by @event@'s inputs are applied in local space instead of global space.\nmake_input_local ::\n                   (CanvasItem :< cls, Object :< cls) =>\n                   cls -> InputEvent -> IO InputEvent\nmake_input_local cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_make_input_local (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"make_input_local\" '[InputEvent]\n           (IO InputEvent)\n         where\n        nodeMethod = Godot.Core.CanvasItem.make_input_local\n\n{-# NOINLINE bindCanvasItem_set_as_toplevel #-}\n\n-- | If @enable@ is @true@, the node won't inherit its transform from parent canvas items.\nbindCanvasItem_set_as_toplevel :: MethodBind\nbindCanvasItem_set_as_toplevel\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_as_toplevel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @enable@ is @true@, the node won't inherit its transform from parent canvas items.\nset_as_toplevel ::\n                  (CanvasItem :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_as_toplevel cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_set_as_toplevel (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"set_as_toplevel\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.set_as_toplevel\n\n{-# NOINLINE bindCanvasItem_set_draw_behind_parent #-}\n\n-- | If @true@, the object draws behind its parent.\nbindCanvasItem_set_draw_behind_parent :: MethodBind\nbindCanvasItem_set_draw_behind_parent\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_draw_behind_parent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the object draws behind its parent.\nset_draw_behind_parent ::\n                         (CanvasItem :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_draw_behind_parent cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_set_draw_behind_parent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"set_draw_behind_parent\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.set_draw_behind_parent\n\n{-# NOINLINE bindCanvasItem_set_light_mask #-}\n\n-- | The rendering layers in which this @CanvasItem@ responds to @Light2D@ nodes.\nbindCanvasItem_set_light_mask :: MethodBind\nbindCanvasItem_set_light_mask\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_light_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rendering layers in which this @CanvasItem@ responds to @Light2D@ nodes.\nset_light_mask ::\n                 (CanvasItem :< cls, Object :< cls) => cls -> Int -> IO ()\nset_light_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_set_light_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"set_light_mask\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.set_light_mask\n\n{-# NOINLINE bindCanvasItem_set_material #-}\n\n-- | The material applied to textures on this @CanvasItem@.\nbindCanvasItem_set_material :: MethodBind\nbindCanvasItem_set_material\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The material applied to textures on this @CanvasItem@.\nset_material ::\n               (CanvasItem :< cls, Object :< cls) => cls -> Material -> IO ()\nset_material cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_set_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"set_material\" '[Material] (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.set_material\n\n{-# NOINLINE bindCanvasItem_set_modulate #-}\n\n-- | The color applied to textures on this @CanvasItem@.\nbindCanvasItem_set_modulate :: MethodBind\nbindCanvasItem_set_modulate\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_modulate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The color applied to textures on this @CanvasItem@.\nset_modulate ::\n               (CanvasItem :< cls, Object :< cls) => cls -> Color -> IO ()\nset_modulate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_set_modulate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"set_modulate\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.set_modulate\n\n{-# NOINLINE bindCanvasItem_set_notify_local_transform #-}\n\n-- | If @enable@ is @true@, children will be updated with local transform data.\nbindCanvasItem_set_notify_local_transform :: MethodBind\nbindCanvasItem_set_notify_local_transform\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_notify_local_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @enable@ is @true@, children will be updated with local transform data.\nset_notify_local_transform ::\n                             (CanvasItem :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_notify_local_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_set_notify_local_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"set_notify_local_transform\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.set_notify_local_transform\n\n{-# NOINLINE bindCanvasItem_set_notify_transform #-}\n\n-- | If @enable@ is @true@, children will be updated with global transform data.\nbindCanvasItem_set_notify_transform :: MethodBind\nbindCanvasItem_set_notify_transform\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_notify_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @enable@ is @true@, children will be updated with global transform data.\nset_notify_transform ::\n                       (CanvasItem :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_notify_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_set_notify_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"set_notify_transform\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.set_notify_transform\n\n{-# NOINLINE bindCanvasItem_set_self_modulate #-}\n\n-- | The color applied to textures on this @CanvasItem@. This is not inherited by children @CanvasItem@s.\nbindCanvasItem_set_self_modulate :: MethodBind\nbindCanvasItem_set_self_modulate\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_self_modulate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The color applied to textures on this @CanvasItem@. This is not inherited by children @CanvasItem@s.\nset_self_modulate ::\n                    (CanvasItem :< cls, Object :< cls) => cls -> Color -> IO ()\nset_self_modulate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_set_self_modulate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"set_self_modulate\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.set_self_modulate\n\n{-# NOINLINE bindCanvasItem_set_use_parent_material #-}\n\n-- | If @true@, the parent @CanvasItem@'s @material@ property is used as this one's material.\nbindCanvasItem_set_use_parent_material :: MethodBind\nbindCanvasItem_set_use_parent_material\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_parent_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the parent @CanvasItem@'s @material@ property is used as this one's material.\nset_use_parent_material ::\n                          (CanvasItem :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_parent_material cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_set_use_parent_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"set_use_parent_material\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItem.set_use_parent_material\n\n{-# NOINLINE bindCanvasItem_set_visible #-}\n\n-- | If @true@, this @CanvasItem@ is drawn. The node is only visible if all of its antecedents are visible as well (in other words, @method is_visible_in_tree@ must return @true@).\n--   \t\t\t__Note:__ For controls that inherit @Popup@, the correct way to make them visible is to call one of the multiple @popup*()@ functions instead.\nbindCanvasItem_set_visible :: MethodBind\nbindCanvasItem_set_visible\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this @CanvasItem@ is drawn. The node is only visible if all of its antecedents are visible as well (in other words, @method is_visible_in_tree@ must return @true@).\n--   \t\t\t__Note:__ For controls that inherit @Popup@, the correct way to make them visible is to call one of the multiple @popup*()@ functions instead.\nset_visible ::\n              (CanvasItem :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_visible cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_set_visible (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"set_visible\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.CanvasItem.set_visible\n\n{-# NOINLINE bindCanvasItem_show #-}\n\n-- | Show the @CanvasItem@ if it's currently hidden. For controls that inherit @Popup@, the correct way to make them visible is to call one of the multiple @popup*()@ functions instead.\nbindCanvasItem_show :: MethodBind\nbindCanvasItem_show\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"show\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Show the @CanvasItem@ if it's currently hidden. For controls that inherit @Popup@, the correct way to make them visible is to call one of the multiple @popup*()@ functions instead.\nshow :: (CanvasItem :< cls, Object :< cls) => cls -> IO ()\nshow cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_show (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"show\" '[] (IO ()) where\n        nodeMethod = Godot.Core.CanvasItem.show\n\n{-# NOINLINE bindCanvasItem_update #-}\n\n-- | Queue the @CanvasItem@ for update. @NOTIFICATION_DRAW@ will be called on idle time to request redraw.\nbindCanvasItem_update :: MethodBind\nbindCanvasItem_update\n  = unsafePerformIO $\n      withCString \"CanvasItem\" $\n        \\ clsNamePtr ->\n          withCString \"update\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Queue the @CanvasItem@ for update. @NOTIFICATION_DRAW@ will be called on idle time to request redraw.\nupdate :: (CanvasItem :< cls, Object :< cls) => cls -> IO ()\nupdate cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItem_update (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItem \"update\" '[] (IO ()) where\n        nodeMethod = Godot.Core.CanvasItem.update"
  },
  {
    "path": "src/Godot/Core/CanvasItemMaterial.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CanvasItemMaterial\n       (Godot.Core.CanvasItemMaterial._BLEND_MODE_ADD,\n        Godot.Core.CanvasItemMaterial._BLEND_MODE_MIX,\n        Godot.Core.CanvasItemMaterial._LIGHT_MODE_LIGHT_ONLY,\n        Godot.Core.CanvasItemMaterial._BLEND_MODE_MUL,\n        Godot.Core.CanvasItemMaterial._BLEND_MODE_PREMULT_ALPHA,\n        Godot.Core.CanvasItemMaterial._LIGHT_MODE_NORMAL,\n        Godot.Core.CanvasItemMaterial._BLEND_MODE_SUB,\n        Godot.Core.CanvasItemMaterial._LIGHT_MODE_UNSHADED,\n        Godot.Core.CanvasItemMaterial.get_blend_mode,\n        Godot.Core.CanvasItemMaterial.get_light_mode,\n        Godot.Core.CanvasItemMaterial.get_particles_anim_h_frames,\n        Godot.Core.CanvasItemMaterial.get_particles_anim_loop,\n        Godot.Core.CanvasItemMaterial.get_particles_anim_v_frames,\n        Godot.Core.CanvasItemMaterial.get_particles_animation,\n        Godot.Core.CanvasItemMaterial.set_blend_mode,\n        Godot.Core.CanvasItemMaterial.set_light_mode,\n        Godot.Core.CanvasItemMaterial.set_particles_anim_h_frames,\n        Godot.Core.CanvasItemMaterial.set_particles_anim_loop,\n        Godot.Core.CanvasItemMaterial.set_particles_anim_v_frames,\n        Godot.Core.CanvasItemMaterial.set_particles_animation)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Material()\n\n_BLEND_MODE_ADD :: Int\n_BLEND_MODE_ADD = 1\n\n_BLEND_MODE_MIX :: Int\n_BLEND_MODE_MIX = 0\n\n_LIGHT_MODE_LIGHT_ONLY :: Int\n_LIGHT_MODE_LIGHT_ONLY = 2\n\n_BLEND_MODE_MUL :: Int\n_BLEND_MODE_MUL = 3\n\n_BLEND_MODE_PREMULT_ALPHA :: Int\n_BLEND_MODE_PREMULT_ALPHA = 4\n\n_LIGHT_MODE_NORMAL :: Int\n_LIGHT_MODE_NORMAL = 0\n\n_BLEND_MODE_SUB :: Int\n_BLEND_MODE_SUB = 2\n\n_LIGHT_MODE_UNSHADED :: Int\n_LIGHT_MODE_UNSHADED = 1\n\ninstance NodeProperty CanvasItemMaterial \"blend_mode\" Int 'False\n         where\n        nodeProperty\n          = (get_blend_mode, wrapDroppingSetter set_blend_mode, Nothing)\n\ninstance NodeProperty CanvasItemMaterial \"light_mode\" Int 'False\n         where\n        nodeProperty\n          = (get_light_mode, wrapDroppingSetter set_light_mode, Nothing)\n\ninstance NodeProperty CanvasItemMaterial \"particles_anim_h_frames\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_particles_anim_h_frames,\n             wrapDroppingSetter set_particles_anim_h_frames, Nothing)\n\ninstance NodeProperty CanvasItemMaterial \"particles_anim_loop\" Bool\n           'False\n         where\n        nodeProperty\n          = (get_particles_anim_loop,\n             wrapDroppingSetter set_particles_anim_loop, Nothing)\n\ninstance NodeProperty CanvasItemMaterial \"particles_anim_v_frames\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_particles_anim_v_frames,\n             wrapDroppingSetter set_particles_anim_v_frames, Nothing)\n\ninstance NodeProperty CanvasItemMaterial \"particles_animation\" Bool\n           'False\n         where\n        nodeProperty\n          = (get_particles_animation,\n             wrapDroppingSetter set_particles_animation, Nothing)\n\n{-# NOINLINE bindCanvasItemMaterial_get_blend_mode #-}\n\n-- | The manner in which a material's rendering is applied to underlying textures.\nbindCanvasItemMaterial_get_blend_mode :: MethodBind\nbindCanvasItemMaterial_get_blend_mode\n  = unsafePerformIO $\n      withCString \"CanvasItemMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_blend_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The manner in which a material's rendering is applied to underlying textures.\nget_blend_mode ::\n                 (CanvasItemMaterial :< cls, Object :< cls) => cls -> IO Int\nget_blend_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItemMaterial_get_blend_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItemMaterial \"get_blend_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.CanvasItemMaterial.get_blend_mode\n\n{-# NOINLINE bindCanvasItemMaterial_get_light_mode #-}\n\n-- | The manner in which material reacts to lighting.\nbindCanvasItemMaterial_get_light_mode :: MethodBind\nbindCanvasItemMaterial_get_light_mode\n  = unsafePerformIO $\n      withCString \"CanvasItemMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_light_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The manner in which material reacts to lighting.\nget_light_mode ::\n                 (CanvasItemMaterial :< cls, Object :< cls) => cls -> IO Int\nget_light_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItemMaterial_get_light_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItemMaterial \"get_light_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.CanvasItemMaterial.get_light_mode\n\n{-# NOINLINE bindCanvasItemMaterial_get_particles_anim_h_frames #-}\n\n-- | The number of columns in the spritesheet assigned as @Texture@ for a @Particles2D@ or @CPUParticles2D@.\n--   \t\t\t__Note:__ This property is only used and visible in the editor if @particles_animation@ is @true@.\nbindCanvasItemMaterial_get_particles_anim_h_frames :: MethodBind\nbindCanvasItemMaterial_get_particles_anim_h_frames\n  = unsafePerformIO $\n      withCString \"CanvasItemMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_particles_anim_h_frames\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of columns in the spritesheet assigned as @Texture@ for a @Particles2D@ or @CPUParticles2D@.\n--   \t\t\t__Note:__ This property is only used and visible in the editor if @particles_animation@ is @true@.\nget_particles_anim_h_frames ::\n                              (CanvasItemMaterial :< cls, Object :< cls) => cls -> IO Int\nget_particles_anim_h_frames cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCanvasItemMaterial_get_particles_anim_h_frames\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItemMaterial\n           \"get_particles_anim_h_frames\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.CanvasItemMaterial.get_particles_anim_h_frames\n\n{-# NOINLINE bindCanvasItemMaterial_get_particles_anim_loop #-}\n\n-- | If @true@, the particles animation will loop.\n--   \t\t\t__Note:__ This property is only used and visible in the editor if @particles_animation@ is @true@.\nbindCanvasItemMaterial_get_particles_anim_loop :: MethodBind\nbindCanvasItemMaterial_get_particles_anim_loop\n  = unsafePerformIO $\n      withCString \"CanvasItemMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_particles_anim_loop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the particles animation will loop.\n--   \t\t\t__Note:__ This property is only used and visible in the editor if @particles_animation@ is @true@.\nget_particles_anim_loop ::\n                          (CanvasItemMaterial :< cls, Object :< cls) => cls -> IO Bool\nget_particles_anim_loop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCanvasItemMaterial_get_particles_anim_loop\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItemMaterial \"get_particles_anim_loop\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CanvasItemMaterial.get_particles_anim_loop\n\n{-# NOINLINE bindCanvasItemMaterial_get_particles_anim_v_frames #-}\n\n-- | The number of rows in the spritesheet assigned as @Texture@ for a @Particles2D@ or @CPUParticles2D@.\n--   \t\t\t__Note:__ This property is only used and visible in the editor if @particles_animation@ is @true@.\nbindCanvasItemMaterial_get_particles_anim_v_frames :: MethodBind\nbindCanvasItemMaterial_get_particles_anim_v_frames\n  = unsafePerformIO $\n      withCString \"CanvasItemMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_particles_anim_v_frames\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of rows in the spritesheet assigned as @Texture@ for a @Particles2D@ or @CPUParticles2D@.\n--   \t\t\t__Note:__ This property is only used and visible in the editor if @particles_animation@ is @true@.\nget_particles_anim_v_frames ::\n                              (CanvasItemMaterial :< cls, Object :< cls) => cls -> IO Int\nget_particles_anim_v_frames cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCanvasItemMaterial_get_particles_anim_v_frames\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItemMaterial\n           \"get_particles_anim_v_frames\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.CanvasItemMaterial.get_particles_anim_v_frames\n\n{-# NOINLINE bindCanvasItemMaterial_get_particles_animation #-}\n\n-- | If @true@, enable spritesheet-based animation features when assigned to @Particles2D@ and @CPUParticles2D@ nodes. The @ParticlesMaterial.anim_speed@ or @CPUParticles2D.anim_speed@ should also be set to a positive value for the animation to play.\n--   \t\t\tThis property (and other @particles_anim_*@ properties that depend on it) has no effect on other types of nodes.\nbindCanvasItemMaterial_get_particles_animation :: MethodBind\nbindCanvasItemMaterial_get_particles_animation\n  = unsafePerformIO $\n      withCString \"CanvasItemMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_particles_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enable spritesheet-based animation features when assigned to @Particles2D@ and @CPUParticles2D@ nodes. The @ParticlesMaterial.anim_speed@ or @CPUParticles2D.anim_speed@ should also be set to a positive value for the animation to play.\n--   \t\t\tThis property (and other @particles_anim_*@ properties that depend on it) has no effect on other types of nodes.\nget_particles_animation ::\n                          (CanvasItemMaterial :< cls, Object :< cls) => cls -> IO Bool\nget_particles_animation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCanvasItemMaterial_get_particles_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItemMaterial \"get_particles_animation\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CanvasItemMaterial.get_particles_animation\n\n{-# NOINLINE bindCanvasItemMaterial_set_blend_mode #-}\n\n-- | The manner in which a material's rendering is applied to underlying textures.\nbindCanvasItemMaterial_set_blend_mode :: MethodBind\nbindCanvasItemMaterial_set_blend_mode\n  = unsafePerformIO $\n      withCString \"CanvasItemMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_blend_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The manner in which a material's rendering is applied to underlying textures.\nset_blend_mode ::\n                 (CanvasItemMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_blend_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItemMaterial_set_blend_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItemMaterial \"set_blend_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItemMaterial.set_blend_mode\n\n{-# NOINLINE bindCanvasItemMaterial_set_light_mode #-}\n\n-- | The manner in which material reacts to lighting.\nbindCanvasItemMaterial_set_light_mode :: MethodBind\nbindCanvasItemMaterial_set_light_mode\n  = unsafePerformIO $\n      withCString \"CanvasItemMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_light_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The manner in which material reacts to lighting.\nset_light_mode ::\n                 (CanvasItemMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_light_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasItemMaterial_set_light_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItemMaterial \"set_light_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItemMaterial.set_light_mode\n\n{-# NOINLINE bindCanvasItemMaterial_set_particles_anim_h_frames #-}\n\n-- | The number of columns in the spritesheet assigned as @Texture@ for a @Particles2D@ or @CPUParticles2D@.\n--   \t\t\t__Note:__ This property is only used and visible in the editor if @particles_animation@ is @true@.\nbindCanvasItemMaterial_set_particles_anim_h_frames :: MethodBind\nbindCanvasItemMaterial_set_particles_anim_h_frames\n  = unsafePerformIO $\n      withCString \"CanvasItemMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_particles_anim_h_frames\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of columns in the spritesheet assigned as @Texture@ for a @Particles2D@ or @CPUParticles2D@.\n--   \t\t\t__Note:__ This property is only used and visible in the editor if @particles_animation@ is @true@.\nset_particles_anim_h_frames ::\n                              (CanvasItemMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_particles_anim_h_frames cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCanvasItemMaterial_set_particles_anim_h_frames\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItemMaterial\n           \"set_particles_anim_h_frames\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.CanvasItemMaterial.set_particles_anim_h_frames\n\n{-# NOINLINE bindCanvasItemMaterial_set_particles_anim_loop #-}\n\n-- | If @true@, the particles animation will loop.\n--   \t\t\t__Note:__ This property is only used and visible in the editor if @particles_animation@ is @true@.\nbindCanvasItemMaterial_set_particles_anim_loop :: MethodBind\nbindCanvasItemMaterial_set_particles_anim_loop\n  = unsafePerformIO $\n      withCString \"CanvasItemMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_particles_anim_loop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the particles animation will loop.\n--   \t\t\t__Note:__ This property is only used and visible in the editor if @particles_animation@ is @true@.\nset_particles_anim_loop ::\n                          (CanvasItemMaterial :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_particles_anim_loop cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCanvasItemMaterial_set_particles_anim_loop\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItemMaterial \"set_particles_anim_loop\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItemMaterial.set_particles_anim_loop\n\n{-# NOINLINE bindCanvasItemMaterial_set_particles_anim_v_frames #-}\n\n-- | The number of rows in the spritesheet assigned as @Texture@ for a @Particles2D@ or @CPUParticles2D@.\n--   \t\t\t__Note:__ This property is only used and visible in the editor if @particles_animation@ is @true@.\nbindCanvasItemMaterial_set_particles_anim_v_frames :: MethodBind\nbindCanvasItemMaterial_set_particles_anim_v_frames\n  = unsafePerformIO $\n      withCString \"CanvasItemMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_particles_anim_v_frames\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of rows in the spritesheet assigned as @Texture@ for a @Particles2D@ or @CPUParticles2D@.\n--   \t\t\t__Note:__ This property is only used and visible in the editor if @particles_animation@ is @true@.\nset_particles_anim_v_frames ::\n                              (CanvasItemMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_particles_anim_v_frames cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCanvasItemMaterial_set_particles_anim_v_frames\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItemMaterial\n           \"set_particles_anim_v_frames\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.CanvasItemMaterial.set_particles_anim_v_frames\n\n{-# NOINLINE bindCanvasItemMaterial_set_particles_animation #-}\n\n-- | If @true@, enable spritesheet-based animation features when assigned to @Particles2D@ and @CPUParticles2D@ nodes. The @ParticlesMaterial.anim_speed@ or @CPUParticles2D.anim_speed@ should also be set to a positive value for the animation to play.\n--   \t\t\tThis property (and other @particles_anim_*@ properties that depend on it) has no effect on other types of nodes.\nbindCanvasItemMaterial_set_particles_animation :: MethodBind\nbindCanvasItemMaterial_set_particles_animation\n  = unsafePerformIO $\n      withCString \"CanvasItemMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_particles_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enable spritesheet-based animation features when assigned to @Particles2D@ and @CPUParticles2D@ nodes. The @ParticlesMaterial.anim_speed@ or @CPUParticles2D.anim_speed@ should also be set to a positive value for the animation to play.\n--   \t\t\tThis property (and other @particles_anim_*@ properties that depend on it) has no effect on other types of nodes.\nset_particles_animation ::\n                          (CanvasItemMaterial :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_particles_animation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCanvasItemMaterial_set_particles_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasItemMaterial \"set_particles_animation\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasItemMaterial.set_particles_animation"
  },
  {
    "path": "src/Godot/Core/CanvasLayer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CanvasLayer\n       (Godot.Core.CanvasLayer.get_canvas,\n        Godot.Core.CanvasLayer.get_custom_viewport,\n        Godot.Core.CanvasLayer.get_follow_viewport_scale,\n        Godot.Core.CanvasLayer.get_layer,\n        Godot.Core.CanvasLayer.get_offset,\n        Godot.Core.CanvasLayer.get_rotation,\n        Godot.Core.CanvasLayer.get_rotation_degrees,\n        Godot.Core.CanvasLayer.get_scale,\n        Godot.Core.CanvasLayer.get_transform,\n        Godot.Core.CanvasLayer.is_following_viewport,\n        Godot.Core.CanvasLayer.set_custom_viewport,\n        Godot.Core.CanvasLayer.set_follow_viewport,\n        Godot.Core.CanvasLayer.set_follow_viewport_scale,\n        Godot.Core.CanvasLayer.set_layer,\n        Godot.Core.CanvasLayer.set_offset,\n        Godot.Core.CanvasLayer.set_rotation,\n        Godot.Core.CanvasLayer.set_rotation_degrees,\n        Godot.Core.CanvasLayer.set_scale,\n        Godot.Core.CanvasLayer.set_transform)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\ninstance NodeProperty CanvasLayer \"custom_viewport\" Node 'False\n         where\n        nodeProperty\n          = (get_custom_viewport, wrapDroppingSetter set_custom_viewport,\n             Nothing)\n\ninstance NodeProperty CanvasLayer \"follow_viewport_enable\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_following_viewport, wrapDroppingSetter set_follow_viewport,\n             Nothing)\n\ninstance NodeProperty CanvasLayer \"follow_viewport_scale\" Float\n           'False\n         where\n        nodeProperty\n          = (get_follow_viewport_scale,\n             wrapDroppingSetter set_follow_viewport_scale, Nothing)\n\ninstance NodeProperty CanvasLayer \"layer\" Int 'False where\n        nodeProperty = (get_layer, wrapDroppingSetter set_layer, Nothing)\n\ninstance NodeProperty CanvasLayer \"offset\" Vector2 'False where\n        nodeProperty = (get_offset, wrapDroppingSetter set_offset, Nothing)\n\ninstance NodeProperty CanvasLayer \"rotation\" Float 'False where\n        nodeProperty\n          = (get_rotation, wrapDroppingSetter set_rotation, Nothing)\n\ninstance NodeProperty CanvasLayer \"rotation_degrees\" Float 'False\n         where\n        nodeProperty\n          = (get_rotation_degrees, wrapDroppingSetter set_rotation_degrees,\n             Nothing)\n\ninstance NodeProperty CanvasLayer \"scale\" Vector2 'False where\n        nodeProperty = (get_scale, wrapDroppingSetter set_scale, Nothing)\n\ninstance NodeProperty CanvasLayer \"transform\" Transform2d 'False\n         where\n        nodeProperty\n          = (get_transform, wrapDroppingSetter set_transform, Nothing)\n\n{-# NOINLINE bindCanvasLayer_get_canvas #-}\n\n-- | Returns the RID of the canvas used by this layer.\nbindCanvasLayer_get_canvas :: MethodBind\nbindCanvasLayer_get_canvas\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_canvas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the RID of the canvas used by this layer.\nget_canvas :: (CanvasLayer :< cls, Object :< cls) => cls -> IO Rid\nget_canvas cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_get_canvas (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"get_canvas\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.CanvasLayer.get_canvas\n\n{-# NOINLINE bindCanvasLayer_get_custom_viewport #-}\n\n-- | The custom @Viewport@ node assigned to the @CanvasLayer@. If @null@, uses the default viewport instead.\nbindCanvasLayer_get_custom_viewport :: MethodBind\nbindCanvasLayer_get_custom_viewport\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_custom_viewport\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The custom @Viewport@ node assigned to the @CanvasLayer@. If @null@, uses the default viewport instead.\nget_custom_viewport ::\n                      (CanvasLayer :< cls, Object :< cls) => cls -> IO Node\nget_custom_viewport cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_get_custom_viewport\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"get_custom_viewport\" '[] (IO Node)\n         where\n        nodeMethod = Godot.Core.CanvasLayer.get_custom_viewport\n\n{-# NOINLINE bindCanvasLayer_get_follow_viewport_scale #-}\n\n-- | Scales the layer when using @follow_viewport_enable@. Layers moving into the foreground should have increasing scales, while layers moving into the background should have decreasing scales.\nbindCanvasLayer_get_follow_viewport_scale :: MethodBind\nbindCanvasLayer_get_follow_viewport_scale\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_follow_viewport_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Scales the layer when using @follow_viewport_enable@. Layers moving into the foreground should have increasing scales, while layers moving into the background should have decreasing scales.\nget_follow_viewport_scale ::\n                            (CanvasLayer :< cls, Object :< cls) => cls -> IO Float\nget_follow_viewport_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_get_follow_viewport_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"get_follow_viewport_scale\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.CanvasLayer.get_follow_viewport_scale\n\n{-# NOINLINE bindCanvasLayer_get_layer #-}\n\n-- | Layer index for draw order. Lower values are drawn first.\nbindCanvasLayer_get_layer :: MethodBind\nbindCanvasLayer_get_layer\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Layer index for draw order. Lower values are drawn first.\nget_layer :: (CanvasLayer :< cls, Object :< cls) => cls -> IO Int\nget_layer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_get_layer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"get_layer\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CanvasLayer.get_layer\n\n{-# NOINLINE bindCanvasLayer_get_offset #-}\n\n-- | The layer's base offset.\nbindCanvasLayer_get_offset :: MethodBind\nbindCanvasLayer_get_offset\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The layer's base offset.\nget_offset ::\n             (CanvasLayer :< cls, Object :< cls) => cls -> IO Vector2\nget_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_get_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"get_offset\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.CanvasLayer.get_offset\n\n{-# NOINLINE bindCanvasLayer_get_rotation #-}\n\n-- | The layer's rotation in radians.\nbindCanvasLayer_get_rotation :: MethodBind\nbindCanvasLayer_get_rotation\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The layer's rotation in radians.\nget_rotation ::\n               (CanvasLayer :< cls, Object :< cls) => cls -> IO Float\nget_rotation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_get_rotation (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"get_rotation\" '[] (IO Float) where\n        nodeMethod = Godot.Core.CanvasLayer.get_rotation\n\n{-# NOINLINE bindCanvasLayer_get_rotation_degrees #-}\n\n-- | The layer's rotation in degrees.\nbindCanvasLayer_get_rotation_degrees :: MethodBind\nbindCanvasLayer_get_rotation_degrees\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_rotation_degrees\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The layer's rotation in degrees.\nget_rotation_degrees ::\n                       (CanvasLayer :< cls, Object :< cls) => cls -> IO Float\nget_rotation_degrees cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_get_rotation_degrees\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"get_rotation_degrees\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.CanvasLayer.get_rotation_degrees\n\n{-# NOINLINE bindCanvasLayer_get_scale #-}\n\n-- | The layer's scale.\nbindCanvasLayer_get_scale :: MethodBind\nbindCanvasLayer_get_scale\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The layer's scale.\nget_scale ::\n            (CanvasLayer :< cls, Object :< cls) => cls -> IO Vector2\nget_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_get_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"get_scale\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.CanvasLayer.get_scale\n\n{-# NOINLINE bindCanvasLayer_get_transform #-}\n\n-- | The layer's transform.\nbindCanvasLayer_get_transform :: MethodBind\nbindCanvasLayer_get_transform\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The layer's transform.\nget_transform ::\n                (CanvasLayer :< cls, Object :< cls) => cls -> IO Transform2d\nget_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_get_transform (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"get_transform\" '[]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.CanvasLayer.get_transform\n\n{-# NOINLINE bindCanvasLayer_is_following_viewport #-}\n\n-- | Sets the layer to follow the viewport in order to simulate a pseudo 3D effect.\nbindCanvasLayer_is_following_viewport :: MethodBind\nbindCanvasLayer_is_following_viewport\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"is_following_viewport\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the layer to follow the viewport in order to simulate a pseudo 3D effect.\nis_following_viewport ::\n                        (CanvasLayer :< cls, Object :< cls) => cls -> IO Bool\nis_following_viewport cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_is_following_viewport\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"is_following_viewport\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CanvasLayer.is_following_viewport\n\n{-# NOINLINE bindCanvasLayer_set_custom_viewport #-}\n\n-- | The custom @Viewport@ node assigned to the @CanvasLayer@. If @null@, uses the default viewport instead.\nbindCanvasLayer_set_custom_viewport :: MethodBind\nbindCanvasLayer_set_custom_viewport\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_custom_viewport\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The custom @Viewport@ node assigned to the @CanvasLayer@. If @null@, uses the default viewport instead.\nset_custom_viewport ::\n                      (CanvasLayer :< cls, Object :< cls) => cls -> Node -> IO ()\nset_custom_viewport cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_set_custom_viewport\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"set_custom_viewport\" '[Node]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasLayer.set_custom_viewport\n\n{-# NOINLINE bindCanvasLayer_set_follow_viewport #-}\n\n-- | Sets the layer to follow the viewport in order to simulate a pseudo 3D effect.\nbindCanvasLayer_set_follow_viewport :: MethodBind\nbindCanvasLayer_set_follow_viewport\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_follow_viewport\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the layer to follow the viewport in order to simulate a pseudo 3D effect.\nset_follow_viewport ::\n                      (CanvasLayer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_follow_viewport cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_set_follow_viewport\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"set_follow_viewport\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasLayer.set_follow_viewport\n\n{-# NOINLINE bindCanvasLayer_set_follow_viewport_scale #-}\n\n-- | Scales the layer when using @follow_viewport_enable@. Layers moving into the foreground should have increasing scales, while layers moving into the background should have decreasing scales.\nbindCanvasLayer_set_follow_viewport_scale :: MethodBind\nbindCanvasLayer_set_follow_viewport_scale\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_follow_viewport_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Scales the layer when using @follow_viewport_enable@. Layers moving into the foreground should have increasing scales, while layers moving into the background should have decreasing scales.\nset_follow_viewport_scale ::\n                            (CanvasLayer :< cls, Object :< cls) => cls -> Float -> IO ()\nset_follow_viewport_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_set_follow_viewport_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"set_follow_viewport_scale\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasLayer.set_follow_viewport_scale\n\n{-# NOINLINE bindCanvasLayer_set_layer #-}\n\n-- | Layer index for draw order. Lower values are drawn first.\nbindCanvasLayer_set_layer :: MethodBind\nbindCanvasLayer_set_layer\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Layer index for draw order. Lower values are drawn first.\nset_layer ::\n            (CanvasLayer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_layer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_set_layer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"set_layer\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.CanvasLayer.set_layer\n\n{-# NOINLINE bindCanvasLayer_set_offset #-}\n\n-- | The layer's base offset.\nbindCanvasLayer_set_offset :: MethodBind\nbindCanvasLayer_set_offset\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The layer's base offset.\nset_offset ::\n             (CanvasLayer :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_set_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"set_offset\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasLayer.set_offset\n\n{-# NOINLINE bindCanvasLayer_set_rotation #-}\n\n-- | The layer's rotation in radians.\nbindCanvasLayer_set_rotation :: MethodBind\nbindCanvasLayer_set_rotation\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The layer's rotation in radians.\nset_rotation ::\n               (CanvasLayer :< cls, Object :< cls) => cls -> Float -> IO ()\nset_rotation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_set_rotation (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"set_rotation\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasLayer.set_rotation\n\n{-# NOINLINE bindCanvasLayer_set_rotation_degrees #-}\n\n-- | The layer's rotation in degrees.\nbindCanvasLayer_set_rotation_degrees :: MethodBind\nbindCanvasLayer_set_rotation_degrees\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_rotation_degrees\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The layer's rotation in degrees.\nset_rotation_degrees ::\n                       (CanvasLayer :< cls, Object :< cls) => cls -> Float -> IO ()\nset_rotation_degrees cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_set_rotation_degrees\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"set_rotation_degrees\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasLayer.set_rotation_degrees\n\n{-# NOINLINE bindCanvasLayer_set_scale #-}\n\n-- | The layer's scale.\nbindCanvasLayer_set_scale :: MethodBind\nbindCanvasLayer_set_scale\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The layer's scale.\nset_scale ::\n            (CanvasLayer :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_set_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"set_scale\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasLayer.set_scale\n\n{-# NOINLINE bindCanvasLayer_set_transform #-}\n\n-- | The layer's transform.\nbindCanvasLayer_set_transform :: MethodBind\nbindCanvasLayer_set_transform\n  = unsafePerformIO $\n      withCString \"CanvasLayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The layer's transform.\nset_transform ::\n                (CanvasLayer :< cls, Object :< cls) => cls -> Transform2d -> IO ()\nset_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasLayer_set_transform (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasLayer \"set_transform\" '[Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasLayer.set_transform"
  },
  {
    "path": "src/Godot/Core/CanvasModulate.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CanvasModulate\n       (Godot.Core.CanvasModulate.get_color,\n        Godot.Core.CanvasModulate.set_color)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\ninstance NodeProperty CanvasModulate \"color\" Color 'False where\n        nodeProperty = (get_color, wrapDroppingSetter set_color, Nothing)\n\n{-# NOINLINE bindCanvasModulate_get_color #-}\n\n-- | The tint color to apply.\nbindCanvasModulate_get_color :: MethodBind\nbindCanvasModulate_get_color\n  = unsafePerformIO $\n      withCString \"CanvasModulate\" $\n        \\ clsNamePtr ->\n          withCString \"get_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The tint color to apply.\nget_color ::\n            (CanvasModulate :< cls, Object :< cls) => cls -> IO Color\nget_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasModulate_get_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasModulate \"get_color\" '[] (IO Color) where\n        nodeMethod = Godot.Core.CanvasModulate.get_color\n\n{-# NOINLINE bindCanvasModulate_set_color #-}\n\n-- | The tint color to apply.\nbindCanvasModulate_set_color :: MethodBind\nbindCanvasModulate_set_color\n  = unsafePerformIO $\n      withCString \"CanvasModulate\" $\n        \\ clsNamePtr ->\n          withCString \"set_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The tint color to apply.\nset_color ::\n            (CanvasModulate :< cls, Object :< cls) => cls -> Color -> IO ()\nset_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCanvasModulate_set_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CanvasModulate \"set_color\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.CanvasModulate.set_color"
  },
  {
    "path": "src/Godot/Core/CapsuleMesh.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CapsuleMesh\n       (Godot.Core.CapsuleMesh.get_mid_height,\n        Godot.Core.CapsuleMesh.get_radial_segments,\n        Godot.Core.CapsuleMesh.get_radius,\n        Godot.Core.CapsuleMesh.get_rings,\n        Godot.Core.CapsuleMesh.set_mid_height,\n        Godot.Core.CapsuleMesh.set_radial_segments,\n        Godot.Core.CapsuleMesh.set_radius,\n        Godot.Core.CapsuleMesh.set_rings)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PrimitiveMesh()\n\ninstance NodeProperty CapsuleMesh \"mid_height\" Float 'False where\n        nodeProperty\n          = (get_mid_height, wrapDroppingSetter set_mid_height, Nothing)\n\ninstance NodeProperty CapsuleMesh \"radial_segments\" Int 'False\n         where\n        nodeProperty\n          = (get_radial_segments, wrapDroppingSetter set_radial_segments,\n             Nothing)\n\ninstance NodeProperty CapsuleMesh \"radius\" Float 'False where\n        nodeProperty = (get_radius, wrapDroppingSetter set_radius, Nothing)\n\ninstance NodeProperty CapsuleMesh \"rings\" Int 'False where\n        nodeProperty = (get_rings, wrapDroppingSetter set_rings, Nothing)\n\n{-# NOINLINE bindCapsuleMesh_get_mid_height #-}\n\n-- | Height of the capsule mesh from the center point.\nbindCapsuleMesh_get_mid_height :: MethodBind\nbindCapsuleMesh_get_mid_height\n  = unsafePerformIO $\n      withCString \"CapsuleMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_mid_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Height of the capsule mesh from the center point.\nget_mid_height ::\n                 (CapsuleMesh :< cls, Object :< cls) => cls -> IO Float\nget_mid_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCapsuleMesh_get_mid_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CapsuleMesh \"get_mid_height\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.CapsuleMesh.get_mid_height\n\n{-# NOINLINE bindCapsuleMesh_get_radial_segments #-}\n\n-- | Number of radial segments on the capsule mesh.\nbindCapsuleMesh_get_radial_segments :: MethodBind\nbindCapsuleMesh_get_radial_segments\n  = unsafePerformIO $\n      withCString \"CapsuleMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_radial_segments\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of radial segments on the capsule mesh.\nget_radial_segments ::\n                      (CapsuleMesh :< cls, Object :< cls) => cls -> IO Int\nget_radial_segments cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCapsuleMesh_get_radial_segments\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CapsuleMesh \"get_radial_segments\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.CapsuleMesh.get_radial_segments\n\n{-# NOINLINE bindCapsuleMesh_get_radius #-}\n\n-- | Radius of the capsule mesh.\nbindCapsuleMesh_get_radius :: MethodBind\nbindCapsuleMesh_get_radius\n  = unsafePerformIO $\n      withCString \"CapsuleMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Radius of the capsule mesh.\nget_radius ::\n             (CapsuleMesh :< cls, Object :< cls) => cls -> IO Float\nget_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCapsuleMesh_get_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CapsuleMesh \"get_radius\" '[] (IO Float) where\n        nodeMethod = Godot.Core.CapsuleMesh.get_radius\n\n{-# NOINLINE bindCapsuleMesh_get_rings #-}\n\n-- | Number of rings along the height of the capsule.\nbindCapsuleMesh_get_rings :: MethodBind\nbindCapsuleMesh_get_rings\n  = unsafePerformIO $\n      withCString \"CapsuleMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_rings\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of rings along the height of the capsule.\nget_rings :: (CapsuleMesh :< cls, Object :< cls) => cls -> IO Int\nget_rings cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCapsuleMesh_get_rings (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CapsuleMesh \"get_rings\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CapsuleMesh.get_rings\n\n{-# NOINLINE bindCapsuleMesh_set_mid_height #-}\n\n-- | Height of the capsule mesh from the center point.\nbindCapsuleMesh_set_mid_height :: MethodBind\nbindCapsuleMesh_set_mid_height\n  = unsafePerformIO $\n      withCString \"CapsuleMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_mid_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Height of the capsule mesh from the center point.\nset_mid_height ::\n                 (CapsuleMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_mid_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCapsuleMesh_set_mid_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CapsuleMesh \"set_mid_height\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CapsuleMesh.set_mid_height\n\n{-# NOINLINE bindCapsuleMesh_set_radial_segments #-}\n\n-- | Number of radial segments on the capsule mesh.\nbindCapsuleMesh_set_radial_segments :: MethodBind\nbindCapsuleMesh_set_radial_segments\n  = unsafePerformIO $\n      withCString \"CapsuleMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_radial_segments\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of radial segments on the capsule mesh.\nset_radial_segments ::\n                      (CapsuleMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_radial_segments cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCapsuleMesh_set_radial_segments\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CapsuleMesh \"set_radial_segments\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CapsuleMesh.set_radial_segments\n\n{-# NOINLINE bindCapsuleMesh_set_radius #-}\n\n-- | Radius of the capsule mesh.\nbindCapsuleMesh_set_radius :: MethodBind\nbindCapsuleMesh_set_radius\n  = unsafePerformIO $\n      withCString \"CapsuleMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Radius of the capsule mesh.\nset_radius ::\n             (CapsuleMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCapsuleMesh_set_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CapsuleMesh \"set_radius\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.CapsuleMesh.set_radius\n\n{-# NOINLINE bindCapsuleMesh_set_rings #-}\n\n-- | Number of rings along the height of the capsule.\nbindCapsuleMesh_set_rings :: MethodBind\nbindCapsuleMesh_set_rings\n  = unsafePerformIO $\n      withCString \"CapsuleMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_rings\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of rings along the height of the capsule.\nset_rings ::\n            (CapsuleMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_rings cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCapsuleMesh_set_rings (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CapsuleMesh \"set_rings\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.CapsuleMesh.set_rings"
  },
  {
    "path": "src/Godot/Core/CapsuleShape.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CapsuleShape\n       (Godot.Core.CapsuleShape.get_height,\n        Godot.Core.CapsuleShape.get_radius,\n        Godot.Core.CapsuleShape.set_height,\n        Godot.Core.CapsuleShape.set_radius)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Shape()\n\ninstance NodeProperty CapsuleShape \"height\" Float 'False where\n        nodeProperty = (get_height, wrapDroppingSetter set_height, Nothing)\n\ninstance NodeProperty CapsuleShape \"radius\" Float 'False where\n        nodeProperty = (get_radius, wrapDroppingSetter set_radius, Nothing)\n\n{-# NOINLINE bindCapsuleShape_get_height #-}\n\n-- | The capsule's height.\nbindCapsuleShape_get_height :: MethodBind\nbindCapsuleShape_get_height\n  = unsafePerformIO $\n      withCString \"CapsuleShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The capsule's height.\nget_height ::\n             (CapsuleShape :< cls, Object :< cls) => cls -> IO Float\nget_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCapsuleShape_get_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CapsuleShape \"get_height\" '[] (IO Float) where\n        nodeMethod = Godot.Core.CapsuleShape.get_height\n\n{-# NOINLINE bindCapsuleShape_get_radius #-}\n\n-- | The capsule's radius.\nbindCapsuleShape_get_radius :: MethodBind\nbindCapsuleShape_get_radius\n  = unsafePerformIO $\n      withCString \"CapsuleShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The capsule's radius.\nget_radius ::\n             (CapsuleShape :< cls, Object :< cls) => cls -> IO Float\nget_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCapsuleShape_get_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CapsuleShape \"get_radius\" '[] (IO Float) where\n        nodeMethod = Godot.Core.CapsuleShape.get_radius\n\n{-# NOINLINE bindCapsuleShape_set_height #-}\n\n-- | The capsule's height.\nbindCapsuleShape_set_height :: MethodBind\nbindCapsuleShape_set_height\n  = unsafePerformIO $\n      withCString \"CapsuleShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The capsule's height.\nset_height ::\n             (CapsuleShape :< cls, Object :< cls) => cls -> Float -> IO ()\nset_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCapsuleShape_set_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CapsuleShape \"set_height\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CapsuleShape.set_height\n\n{-# NOINLINE bindCapsuleShape_set_radius #-}\n\n-- | The capsule's radius.\nbindCapsuleShape_set_radius :: MethodBind\nbindCapsuleShape_set_radius\n  = unsafePerformIO $\n      withCString \"CapsuleShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The capsule's radius.\nset_radius ::\n             (CapsuleShape :< cls, Object :< cls) => cls -> Float -> IO ()\nset_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCapsuleShape_set_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CapsuleShape \"set_radius\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CapsuleShape.set_radius"
  },
  {
    "path": "src/Godot/Core/CapsuleShape2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CapsuleShape2D\n       (Godot.Core.CapsuleShape2D.get_height,\n        Godot.Core.CapsuleShape2D.get_radius,\n        Godot.Core.CapsuleShape2D.set_height,\n        Godot.Core.CapsuleShape2D.set_radius)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Shape2D()\n\ninstance NodeProperty CapsuleShape2D \"height\" Float 'False where\n        nodeProperty = (get_height, wrapDroppingSetter set_height, Nothing)\n\ninstance NodeProperty CapsuleShape2D \"radius\" Float 'False where\n        nodeProperty = (get_radius, wrapDroppingSetter set_radius, Nothing)\n\n{-# NOINLINE bindCapsuleShape2D_get_height #-}\n\n-- | The capsule's height.\nbindCapsuleShape2D_get_height :: MethodBind\nbindCapsuleShape2D_get_height\n  = unsafePerformIO $\n      withCString \"CapsuleShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The capsule's height.\nget_height ::\n             (CapsuleShape2D :< cls, Object :< cls) => cls -> IO Float\nget_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCapsuleShape2D_get_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CapsuleShape2D \"get_height\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.CapsuleShape2D.get_height\n\n{-# NOINLINE bindCapsuleShape2D_get_radius #-}\n\n-- | The capsule's radius.\nbindCapsuleShape2D_get_radius :: MethodBind\nbindCapsuleShape2D_get_radius\n  = unsafePerformIO $\n      withCString \"CapsuleShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The capsule's radius.\nget_radius ::\n             (CapsuleShape2D :< cls, Object :< cls) => cls -> IO Float\nget_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCapsuleShape2D_get_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CapsuleShape2D \"get_radius\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.CapsuleShape2D.get_radius\n\n{-# NOINLINE bindCapsuleShape2D_set_height #-}\n\n-- | The capsule's height.\nbindCapsuleShape2D_set_height :: MethodBind\nbindCapsuleShape2D_set_height\n  = unsafePerformIO $\n      withCString \"CapsuleShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The capsule's height.\nset_height ::\n             (CapsuleShape2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCapsuleShape2D_set_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CapsuleShape2D \"set_height\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CapsuleShape2D.set_height\n\n{-# NOINLINE bindCapsuleShape2D_set_radius #-}\n\n-- | The capsule's radius.\nbindCapsuleShape2D_set_radius :: MethodBind\nbindCapsuleShape2D_set_radius\n  = unsafePerformIO $\n      withCString \"CapsuleShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The capsule's radius.\nset_radius ::\n             (CapsuleShape2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCapsuleShape2D_set_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CapsuleShape2D \"set_radius\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CapsuleShape2D.set_radius"
  },
  {
    "path": "src/Godot/Core/CenterContainer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CenterContainer\n       (Godot.Core.CenterContainer.is_using_top_left,\n        Godot.Core.CenterContainer.set_use_top_left)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Container()\n\ninstance NodeProperty CenterContainer \"use_top_left\" Bool 'False\n         where\n        nodeProperty\n          = (is_using_top_left, wrapDroppingSetter set_use_top_left, Nothing)\n\n{-# NOINLINE bindCenterContainer_is_using_top_left #-}\n\n-- | If @true@, centers children relative to the @CenterContainer@'s top left corner.\nbindCenterContainer_is_using_top_left :: MethodBind\nbindCenterContainer_is_using_top_left\n  = unsafePerformIO $\n      withCString \"CenterContainer\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_top_left\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, centers children relative to the @CenterContainer@'s top left corner.\nis_using_top_left ::\n                    (CenterContainer :< cls, Object :< cls) => cls -> IO Bool\nis_using_top_left cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCenterContainer_is_using_top_left\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CenterContainer \"is_using_top_left\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CenterContainer.is_using_top_left\n\n{-# NOINLINE bindCenterContainer_set_use_top_left #-}\n\n-- | If @true@, centers children relative to the @CenterContainer@'s top left corner.\nbindCenterContainer_set_use_top_left :: MethodBind\nbindCenterContainer_set_use_top_left\n  = unsafePerformIO $\n      withCString \"CenterContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_top_left\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, centers children relative to the @CenterContainer@'s top left corner.\nset_use_top_left ::\n                   (CenterContainer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_top_left cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCenterContainer_set_use_top_left\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CenterContainer \"set_use_top_left\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CenterContainer.set_use_top_left"
  },
  {
    "path": "src/Godot/Core/CharFXTransform.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CharFXTransform\n       (Godot.Core.CharFXTransform.get_absolute_index,\n        Godot.Core.CharFXTransform.get_character,\n        Godot.Core.CharFXTransform.get_color,\n        Godot.Core.CharFXTransform.get_elapsed_time,\n        Godot.Core.CharFXTransform.get_environment,\n        Godot.Core.CharFXTransform.get_offset,\n        Godot.Core.CharFXTransform.get_relative_index,\n        Godot.Core.CharFXTransform.is_visible,\n        Godot.Core.CharFXTransform.set_absolute_index,\n        Godot.Core.CharFXTransform.set_character,\n        Godot.Core.CharFXTransform.set_color,\n        Godot.Core.CharFXTransform.set_elapsed_time,\n        Godot.Core.CharFXTransform.set_environment,\n        Godot.Core.CharFXTransform.set_offset,\n        Godot.Core.CharFXTransform.set_relative_index,\n        Godot.Core.CharFXTransform.set_visibility)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\ninstance NodeProperty CharFXTransform \"absolute_index\" Int 'False\n         where\n        nodeProperty\n          = (get_absolute_index, wrapDroppingSetter set_absolute_index,\n             Nothing)\n\ninstance NodeProperty CharFXTransform \"character\" Int 'False where\n        nodeProperty\n          = (get_character, wrapDroppingSetter set_character, Nothing)\n\ninstance NodeProperty CharFXTransform \"color\" Color 'False where\n        nodeProperty = (get_color, wrapDroppingSetter set_color, Nothing)\n\ninstance NodeProperty CharFXTransform \"elapsed_time\" Float 'False\n         where\n        nodeProperty\n          = (get_elapsed_time, wrapDroppingSetter set_elapsed_time, Nothing)\n\ninstance NodeProperty CharFXTransform \"env\" Dictionary 'False where\n        nodeProperty\n          = (get_environment, wrapDroppingSetter set_environment, Nothing)\n\ninstance NodeProperty CharFXTransform \"offset\" Vector2 'False where\n        nodeProperty = (get_offset, wrapDroppingSetter set_offset, Nothing)\n\ninstance NodeProperty CharFXTransform \"relative_index\" Int 'False\n         where\n        nodeProperty\n          = (get_relative_index, wrapDroppingSetter set_relative_index,\n             Nothing)\n\ninstance NodeProperty CharFXTransform \"visible\" Bool 'False where\n        nodeProperty\n          = (is_visible, wrapDroppingSetter set_visibility, Nothing)\n\n{-# NOINLINE bindCharFXTransform_get_absolute_index #-}\n\n-- | The index of the current character (starting from 0). Setting this property won't affect drawing.\nbindCharFXTransform_get_absolute_index :: MethodBind\nbindCharFXTransform_get_absolute_index\n  = unsafePerformIO $\n      withCString \"CharFXTransform\" $\n        \\ clsNamePtr ->\n          withCString \"get_absolute_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The index of the current character (starting from 0). Setting this property won't affect drawing.\nget_absolute_index ::\n                     (CharFXTransform :< cls, Object :< cls) => cls -> IO Int\nget_absolute_index cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCharFXTransform_get_absolute_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CharFXTransform \"get_absolute_index\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.CharFXTransform.get_absolute_index\n\n{-# NOINLINE bindCharFXTransform_get_character #-}\n\n-- | The Unicode codepoint the character will use. This only affects non-whitespace characters. @method @GDScript.ord@ can be useful here. For example, the following will replace all characters with asterisks:\n--   \t\t\t\n--   @\n--   \n--   \t\t\t# `char_fx` is the CharFXTransform parameter from `_process_custom_fx()`.\n--   \t\t\t# See the RichTextEffect documentation for details.\n--   \t\t\tchar_fx.character = ord(\"*\")\n--   \t\t\t\n--   @\nbindCharFXTransform_get_character :: MethodBind\nbindCharFXTransform_get_character\n  = unsafePerformIO $\n      withCString \"CharFXTransform\" $\n        \\ clsNamePtr ->\n          withCString \"get_character\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The Unicode codepoint the character will use. This only affects non-whitespace characters. @method @GDScript.ord@ can be useful here. For example, the following will replace all characters with asterisks:\n--   \t\t\t\n--   @\n--   \n--   \t\t\t# `char_fx` is the CharFXTransform parameter from `_process_custom_fx()`.\n--   \t\t\t# See the RichTextEffect documentation for details.\n--   \t\t\tchar_fx.character = ord(\"*\")\n--   \t\t\t\n--   @\nget_character ::\n                (CharFXTransform :< cls, Object :< cls) => cls -> IO Int\nget_character cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCharFXTransform_get_character\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CharFXTransform \"get_character\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.CharFXTransform.get_character\n\n{-# NOINLINE bindCharFXTransform_get_color #-}\n\n-- | The color the character will be drawn with.\nbindCharFXTransform_get_color :: MethodBind\nbindCharFXTransform_get_color\n  = unsafePerformIO $\n      withCString \"CharFXTransform\" $\n        \\ clsNamePtr ->\n          withCString \"get_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The color the character will be drawn with.\nget_color ::\n            (CharFXTransform :< cls, Object :< cls) => cls -> IO Color\nget_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCharFXTransform_get_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CharFXTransform \"get_color\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.CharFXTransform.get_color\n\n{-# NOINLINE bindCharFXTransform_get_elapsed_time #-}\n\n-- | The time elapsed since the @RichTextLabel@ was added to the scene tree (in seconds). Time stops when the project is paused, unless the @RichTextLabel@'s @Node.pause_mode@ is set to @Node.PAUSE_MODE_PROCESS@.\n--   \t\t\t__Note:__ Time still passes while the @RichTextLabel@ is hidden.\nbindCharFXTransform_get_elapsed_time :: MethodBind\nbindCharFXTransform_get_elapsed_time\n  = unsafePerformIO $\n      withCString \"CharFXTransform\" $\n        \\ clsNamePtr ->\n          withCString \"get_elapsed_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The time elapsed since the @RichTextLabel@ was added to the scene tree (in seconds). Time stops when the project is paused, unless the @RichTextLabel@'s @Node.pause_mode@ is set to @Node.PAUSE_MODE_PROCESS@.\n--   \t\t\t__Note:__ Time still passes while the @RichTextLabel@ is hidden.\nget_elapsed_time ::\n                   (CharFXTransform :< cls, Object :< cls) => cls -> IO Float\nget_elapsed_time cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCharFXTransform_get_elapsed_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CharFXTransform \"get_elapsed_time\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.CharFXTransform.get_elapsed_time\n\n{-# NOINLINE bindCharFXTransform_get_environment #-}\n\n-- | Contains the arguments passed in the opening BBCode tag. By default, arguments are strings; if their contents match a type such as @bool@, @int@ or @float@, they will be converted automatically. Color codes in the form @#rrggbb@ or @#rgb@ will be converted to an opaque @Color@. String arguments may not contain spaces, even if they're quoted. If present, quotes will also be present in the final string.\n--   \t\t\tFor example, the opening BBCode tag @@example foo=hello bar=true baz=42 color=#ffffff@@ will map to the following @Dictionary@:\n--   \t\t\t\n--   @\n--   \n--   \t\t\t{\"foo\": \"hello\", \"bar\": true, \"baz\": 42, \"color\": Color(1, 1, 1, 1)}\n--   \t\t\t\n--   @\nbindCharFXTransform_get_environment :: MethodBind\nbindCharFXTransform_get_environment\n  = unsafePerformIO $\n      withCString \"CharFXTransform\" $\n        \\ clsNamePtr ->\n          withCString \"get_environment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Contains the arguments passed in the opening BBCode tag. By default, arguments are strings; if their contents match a type such as @bool@, @int@ or @float@, they will be converted automatically. Color codes in the form @#rrggbb@ or @#rgb@ will be converted to an opaque @Color@. String arguments may not contain spaces, even if they're quoted. If present, quotes will also be present in the final string.\n--   \t\t\tFor example, the opening BBCode tag @@example foo=hello bar=true baz=42 color=#ffffff@@ will map to the following @Dictionary@:\n--   \t\t\t\n--   @\n--   \n--   \t\t\t{\"foo\": \"hello\", \"bar\": true, \"baz\": 42, \"color\": Color(1, 1, 1, 1)}\n--   \t\t\t\n--   @\nget_environment ::\n                  (CharFXTransform :< cls, Object :< cls) => cls -> IO Dictionary\nget_environment cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCharFXTransform_get_environment\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CharFXTransform \"get_environment\" '[]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.CharFXTransform.get_environment\n\n{-# NOINLINE bindCharFXTransform_get_offset #-}\n\n-- | The position offset the character will be drawn with (in pixels).\nbindCharFXTransform_get_offset :: MethodBind\nbindCharFXTransform_get_offset\n  = unsafePerformIO $\n      withCString \"CharFXTransform\" $\n        \\ clsNamePtr ->\n          withCString \"get_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The position offset the character will be drawn with (in pixels).\nget_offset ::\n             (CharFXTransform :< cls, Object :< cls) => cls -> IO Vector2\nget_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCharFXTransform_get_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CharFXTransform \"get_offset\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.CharFXTransform.get_offset\n\n{-# NOINLINE bindCharFXTransform_get_relative_index #-}\n\n-- | The index of the current character (starting from 0). Setting this property won't affect drawing.\nbindCharFXTransform_get_relative_index :: MethodBind\nbindCharFXTransform_get_relative_index\n  = unsafePerformIO $\n      withCString \"CharFXTransform\" $\n        \\ clsNamePtr ->\n          withCString \"get_relative_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The index of the current character (starting from 0). Setting this property won't affect drawing.\nget_relative_index ::\n                     (CharFXTransform :< cls, Object :< cls) => cls -> IO Int\nget_relative_index cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCharFXTransform_get_relative_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CharFXTransform \"get_relative_index\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.CharFXTransform.get_relative_index\n\n{-# NOINLINE bindCharFXTransform_is_visible #-}\n\n-- | If @true@, the character will be drawn. If @false@, the character will be hidden. Characters around hidden characters will reflow to take the space of hidden characters. If this is not desired, set their @color@ to @Color(1, 1, 1, 0)@ instead.\nbindCharFXTransform_is_visible :: MethodBind\nbindCharFXTransform_is_visible\n  = unsafePerformIO $\n      withCString \"CharFXTransform\" $\n        \\ clsNamePtr ->\n          withCString \"is_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the character will be drawn. If @false@, the character will be hidden. Characters around hidden characters will reflow to take the space of hidden characters. If this is not desired, set their @color@ to @Color(1, 1, 1, 0)@ instead.\nis_visible ::\n             (CharFXTransform :< cls, Object :< cls) => cls -> IO Bool\nis_visible cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCharFXTransform_is_visible (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CharFXTransform \"is_visible\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CharFXTransform.is_visible\n\n{-# NOINLINE bindCharFXTransform_set_absolute_index #-}\n\n-- | The index of the current character (starting from 0). Setting this property won't affect drawing.\nbindCharFXTransform_set_absolute_index :: MethodBind\nbindCharFXTransform_set_absolute_index\n  = unsafePerformIO $\n      withCString \"CharFXTransform\" $\n        \\ clsNamePtr ->\n          withCString \"set_absolute_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The index of the current character (starting from 0). Setting this property won't affect drawing.\nset_absolute_index ::\n                     (CharFXTransform :< cls, Object :< cls) => cls -> Int -> IO ()\nset_absolute_index cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCharFXTransform_set_absolute_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CharFXTransform \"set_absolute_index\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CharFXTransform.set_absolute_index\n\n{-# NOINLINE bindCharFXTransform_set_character #-}\n\n-- | The Unicode codepoint the character will use. This only affects non-whitespace characters. @method @GDScript.ord@ can be useful here. For example, the following will replace all characters with asterisks:\n--   \t\t\t\n--   @\n--   \n--   \t\t\t# `char_fx` is the CharFXTransform parameter from `_process_custom_fx()`.\n--   \t\t\t# See the RichTextEffect documentation for details.\n--   \t\t\tchar_fx.character = ord(\"*\")\n--   \t\t\t\n--   @\nbindCharFXTransform_set_character :: MethodBind\nbindCharFXTransform_set_character\n  = unsafePerformIO $\n      withCString \"CharFXTransform\" $\n        \\ clsNamePtr ->\n          withCString \"set_character\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The Unicode codepoint the character will use. This only affects non-whitespace characters. @method @GDScript.ord@ can be useful here. For example, the following will replace all characters with asterisks:\n--   \t\t\t\n--   @\n--   \n--   \t\t\t# `char_fx` is the CharFXTransform parameter from `_process_custom_fx()`.\n--   \t\t\t# See the RichTextEffect documentation for details.\n--   \t\t\tchar_fx.character = ord(\"*\")\n--   \t\t\t\n--   @\nset_character ::\n                (CharFXTransform :< cls, Object :< cls) => cls -> Int -> IO ()\nset_character cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCharFXTransform_set_character\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CharFXTransform \"set_character\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.CharFXTransform.set_character\n\n{-# NOINLINE bindCharFXTransform_set_color #-}\n\n-- | The color the character will be drawn with.\nbindCharFXTransform_set_color :: MethodBind\nbindCharFXTransform_set_color\n  = unsafePerformIO $\n      withCString \"CharFXTransform\" $\n        \\ clsNamePtr ->\n          withCString \"set_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The color the character will be drawn with.\nset_color ::\n            (CharFXTransform :< cls, Object :< cls) => cls -> Color -> IO ()\nset_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCharFXTransform_set_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CharFXTransform \"set_color\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.CharFXTransform.set_color\n\n{-# NOINLINE bindCharFXTransform_set_elapsed_time #-}\n\n-- | The time elapsed since the @RichTextLabel@ was added to the scene tree (in seconds). Time stops when the project is paused, unless the @RichTextLabel@'s @Node.pause_mode@ is set to @Node.PAUSE_MODE_PROCESS@.\n--   \t\t\t__Note:__ Time still passes while the @RichTextLabel@ is hidden.\nbindCharFXTransform_set_elapsed_time :: MethodBind\nbindCharFXTransform_set_elapsed_time\n  = unsafePerformIO $\n      withCString \"CharFXTransform\" $\n        \\ clsNamePtr ->\n          withCString \"set_elapsed_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The time elapsed since the @RichTextLabel@ was added to the scene tree (in seconds). Time stops when the project is paused, unless the @RichTextLabel@'s @Node.pause_mode@ is set to @Node.PAUSE_MODE_PROCESS@.\n--   \t\t\t__Note:__ Time still passes while the @RichTextLabel@ is hidden.\nset_elapsed_time ::\n                   (CharFXTransform :< cls, Object :< cls) => cls -> Float -> IO ()\nset_elapsed_time cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCharFXTransform_set_elapsed_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CharFXTransform \"set_elapsed_time\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CharFXTransform.set_elapsed_time\n\n{-# NOINLINE bindCharFXTransform_set_environment #-}\n\n-- | Contains the arguments passed in the opening BBCode tag. By default, arguments are strings; if their contents match a type such as @bool@, @int@ or @float@, they will be converted automatically. Color codes in the form @#rrggbb@ or @#rgb@ will be converted to an opaque @Color@. String arguments may not contain spaces, even if they're quoted. If present, quotes will also be present in the final string.\n--   \t\t\tFor example, the opening BBCode tag @@example foo=hello bar=true baz=42 color=#ffffff@@ will map to the following @Dictionary@:\n--   \t\t\t\n--   @\n--   \n--   \t\t\t{\"foo\": \"hello\", \"bar\": true, \"baz\": 42, \"color\": Color(1, 1, 1, 1)}\n--   \t\t\t\n--   @\nbindCharFXTransform_set_environment :: MethodBind\nbindCharFXTransform_set_environment\n  = unsafePerformIO $\n      withCString \"CharFXTransform\" $\n        \\ clsNamePtr ->\n          withCString \"set_environment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Contains the arguments passed in the opening BBCode tag. By default, arguments are strings; if their contents match a type such as @bool@, @int@ or @float@, they will be converted automatically. Color codes in the form @#rrggbb@ or @#rgb@ will be converted to an opaque @Color@. String arguments may not contain spaces, even if they're quoted. If present, quotes will also be present in the final string.\n--   \t\t\tFor example, the opening BBCode tag @@example foo=hello bar=true baz=42 color=#ffffff@@ will map to the following @Dictionary@:\n--   \t\t\t\n--   @\n--   \n--   \t\t\t{\"foo\": \"hello\", \"bar\": true, \"baz\": 42, \"color\": Color(1, 1, 1, 1)}\n--   \t\t\t\n--   @\nset_environment ::\n                  (CharFXTransform :< cls, Object :< cls) =>\n                  cls -> Dictionary -> IO ()\nset_environment cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCharFXTransform_set_environment\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CharFXTransform \"set_environment\" '[Dictionary]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CharFXTransform.set_environment\n\n{-# NOINLINE bindCharFXTransform_set_offset #-}\n\n-- | The position offset the character will be drawn with (in pixels).\nbindCharFXTransform_set_offset :: MethodBind\nbindCharFXTransform_set_offset\n  = unsafePerformIO $\n      withCString \"CharFXTransform\" $\n        \\ clsNamePtr ->\n          withCString \"set_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The position offset the character will be drawn with (in pixels).\nset_offset ::\n             (CharFXTransform :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCharFXTransform_set_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CharFXTransform \"set_offset\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.CharFXTransform.set_offset\n\n{-# NOINLINE bindCharFXTransform_set_relative_index #-}\n\n-- | The index of the current character (starting from 0). Setting this property won't affect drawing.\nbindCharFXTransform_set_relative_index :: MethodBind\nbindCharFXTransform_set_relative_index\n  = unsafePerformIO $\n      withCString \"CharFXTransform\" $\n        \\ clsNamePtr ->\n          withCString \"set_relative_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The index of the current character (starting from 0). Setting this property won't affect drawing.\nset_relative_index ::\n                     (CharFXTransform :< cls, Object :< cls) => cls -> Int -> IO ()\nset_relative_index cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCharFXTransform_set_relative_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CharFXTransform \"set_relative_index\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CharFXTransform.set_relative_index\n\n{-# NOINLINE bindCharFXTransform_set_visibility #-}\n\n-- | If @true@, the character will be drawn. If @false@, the character will be hidden. Characters around hidden characters will reflow to take the space of hidden characters. If this is not desired, set their @color@ to @Color(1, 1, 1, 0)@ instead.\nbindCharFXTransform_set_visibility :: MethodBind\nbindCharFXTransform_set_visibility\n  = unsafePerformIO $\n      withCString \"CharFXTransform\" $\n        \\ clsNamePtr ->\n          withCString \"set_visibility\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the character will be drawn. If @false@, the character will be hidden. Characters around hidden characters will reflow to take the space of hidden characters. If this is not desired, set their @color@ to @Color(1, 1, 1, 0)@ instead.\nset_visibility ::\n                 (CharFXTransform :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_visibility cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCharFXTransform_set_visibility\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CharFXTransform \"set_visibility\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CharFXTransform.set_visibility"
  },
  {
    "path": "src/Godot/Core/CheckBox.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CheckBox () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Button()"
  },
  {
    "path": "src/Godot/Core/CheckButton.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CheckButton () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Button()"
  },
  {
    "path": "src/Godot/Core/CircleShape2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CircleShape2D\n       (Godot.Core.CircleShape2D.get_radius,\n        Godot.Core.CircleShape2D.set_radius)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Shape2D()\n\ninstance NodeProperty CircleShape2D \"radius\" Float 'False where\n        nodeProperty = (get_radius, wrapDroppingSetter set_radius, Nothing)\n\n{-# NOINLINE bindCircleShape2D_get_radius #-}\n\n-- | The circle's radius.\nbindCircleShape2D_get_radius :: MethodBind\nbindCircleShape2D_get_radius\n  = unsafePerformIO $\n      withCString \"CircleShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The circle's radius.\nget_radius ::\n             (CircleShape2D :< cls, Object :< cls) => cls -> IO Float\nget_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCircleShape2D_get_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CircleShape2D \"get_radius\" '[] (IO Float) where\n        nodeMethod = Godot.Core.CircleShape2D.get_radius\n\n{-# NOINLINE bindCircleShape2D_set_radius #-}\n\n-- | The circle's radius.\nbindCircleShape2D_set_radius :: MethodBind\nbindCircleShape2D_set_radius\n  = unsafePerformIO $\n      withCString \"CircleShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The circle's radius.\nset_radius ::\n             (CircleShape2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCircleShape2D_set_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CircleShape2D \"set_radius\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CircleShape2D.set_radius"
  },
  {
    "path": "src/Godot/Core/ClassDB.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ClassDB\n       (Godot.Core.ClassDB.can_instance, Godot.Core.ClassDB.class_exists,\n        Godot.Core.ClassDB.class_get_category,\n        Godot.Core.ClassDB.class_get_integer_constant,\n        Godot.Core.ClassDB.class_get_integer_constant_list,\n        Godot.Core.ClassDB.class_get_method_list,\n        Godot.Core.ClassDB.class_get_property,\n        Godot.Core.ClassDB.class_get_property_list,\n        Godot.Core.ClassDB.class_get_signal,\n        Godot.Core.ClassDB.class_get_signal_list,\n        Godot.Core.ClassDB.class_has_integer_constant,\n        Godot.Core.ClassDB.class_has_method,\n        Godot.Core.ClassDB.class_has_signal,\n        Godot.Core.ClassDB.class_set_property,\n        Godot.Core.ClassDB.get_class_list,\n        Godot.Core.ClassDB.get_inheriters_from_class,\n        Godot.Core.ClassDB.get_parent_class, Godot.Core.ClassDB.instance',\n        Godot.Core.ClassDB.is_class_enabled,\n        Godot.Core.ClassDB.is_parent_class)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n{-# NOINLINE bindClassDB_can_instance #-}\n\n-- | Returns @true@ if you can instance objects from the specified @class@, @false@ in other case.\nbindClassDB_can_instance :: MethodBind\nbindClassDB_can_instance\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"can_instance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if you can instance objects from the specified @class@, @false@ in other case.\ncan_instance ::\n               (ClassDB :< cls, Object :< cls) => cls -> GodotString -> IO Bool\ncan_instance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_can_instance (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"can_instance\" '[GodotString] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ClassDB.can_instance\n\n{-# NOINLINE bindClassDB_class_exists #-}\n\n-- | Returns whether the specified @class@ is available or not.\nbindClassDB_class_exists :: MethodBind\nbindClassDB_class_exists\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"class_exists\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether the specified @class@ is available or not.\nclass_exists ::\n               (ClassDB :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nclass_exists cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_class_exists (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"class_exists\" '[GodotString] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ClassDB.class_exists\n\n{-# NOINLINE bindClassDB_class_get_category #-}\n\n-- | Returns a category associated with the class for use in documentation and the Asset Library. Debug mode required.\nbindClassDB_class_get_category :: MethodBind\nbindClassDB_class_get_category\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"class_get_category\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a category associated with the class for use in documentation and the Asset Library. Debug mode required.\nclass_get_category ::\n                     (ClassDB :< cls, Object :< cls) =>\n                     cls -> GodotString -> IO GodotString\nclass_get_category cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_class_get_category (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"class_get_category\" '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.ClassDB.class_get_category\n\n{-# NOINLINE bindClassDB_class_get_integer_constant #-}\n\n-- | Returns the value of the integer constant @name@ of @class@ or its ancestry. Always returns 0 when the constant could not be found.\nbindClassDB_class_get_integer_constant :: MethodBind\nbindClassDB_class_get_integer_constant\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"class_get_integer_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of the integer constant @name@ of @class@ or its ancestry. Always returns 0 when the constant could not be found.\nclass_get_integer_constant ::\n                             (ClassDB :< cls, Object :< cls) =>\n                             cls -> GodotString -> GodotString -> IO Int\nclass_get_integer_constant cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_class_get_integer_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"class_get_integer_constant\"\n           '[GodotString, GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ClassDB.class_get_integer_constant\n\n{-# NOINLINE bindClassDB_class_get_integer_constant_list #-}\n\n-- | Returns an array with the names all the integer constants of @class@ or its ancestry.\nbindClassDB_class_get_integer_constant_list :: MethodBind\nbindClassDB_class_get_integer_constant_list\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"class_get_integer_constant_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array with the names all the integer constants of @class@ or its ancestry.\nclass_get_integer_constant_list ::\n                                  (ClassDB :< cls, Object :< cls) =>\n                                  cls -> GodotString -> Maybe Bool -> IO PoolStringArray\nclass_get_integer_constant_list cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_class_get_integer_constant_list\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"class_get_integer_constant_list\"\n           '[GodotString, Maybe Bool]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.ClassDB.class_get_integer_constant_list\n\n{-# NOINLINE bindClassDB_class_get_method_list #-}\n\n-- | Returns an array with all the methods of @class@ or its ancestry if @no_inheritance@ is @false@. Every element of the array is a @Dictionary@ with the following keys: @args@, @default_args@, @flags@, @id@, @name@, @return: (class_name, hint, hint_string, name, type, usage)@.\nbindClassDB_class_get_method_list :: MethodBind\nbindClassDB_class_get_method_list\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"class_get_method_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array with all the methods of @class@ or its ancestry if @no_inheritance@ is @false@. Every element of the array is a @Dictionary@ with the following keys: @args@, @default_args@, @flags@, @id@, @name@, @return: (class_name, hint, hint_string, name, type, usage)@.\nclass_get_method_list ::\n                        (ClassDB :< cls, Object :< cls) =>\n                        cls -> GodotString -> Maybe Bool -> IO Array\nclass_get_method_list cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_class_get_method_list\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"class_get_method_list\"\n           '[GodotString, Maybe Bool]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.ClassDB.class_get_method_list\n\n{-# NOINLINE bindClassDB_class_get_property #-}\n\n-- | Returns the value of @property@ of @class@ or its ancestry.\nbindClassDB_class_get_property :: MethodBind\nbindClassDB_class_get_property\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"class_get_property\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of @property@ of @class@ or its ancestry.\nclass_get_property ::\n                     (ClassDB :< cls, Object :< cls) =>\n                     cls -> Object -> GodotString -> IO GodotVariant\nclass_get_property cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_class_get_property (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"class_get_property\"\n           '[Object, GodotString]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.ClassDB.class_get_property\n\n{-# NOINLINE bindClassDB_class_get_property_list #-}\n\n-- | Returns an array with all the properties of @class@ or its ancestry if @no_inheritance@ is @false@.\nbindClassDB_class_get_property_list :: MethodBind\nbindClassDB_class_get_property_list\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"class_get_property_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array with all the properties of @class@ or its ancestry if @no_inheritance@ is @false@.\nclass_get_property_list ::\n                          (ClassDB :< cls, Object :< cls) =>\n                          cls -> GodotString -> Maybe Bool -> IO Array\nclass_get_property_list cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_class_get_property_list\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"class_get_property_list\"\n           '[GodotString, Maybe Bool]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.ClassDB.class_get_property_list\n\n{-# NOINLINE bindClassDB_class_get_signal #-}\n\n-- | Returns the @signal@ data of @class@ or its ancestry. The returned value is a @Dictionary@ with the following keys: @args@, @default_args@, @flags@, @id@, @name@, @return: (class_name, hint, hint_string, name, type, usage)@.\nbindClassDB_class_get_signal :: MethodBind\nbindClassDB_class_get_signal\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"class_get_signal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @signal@ data of @class@ or its ancestry. The returned value is a @Dictionary@ with the following keys: @args@, @default_args@, @flags@, @id@, @name@, @return: (class_name, hint, hint_string, name, type, usage)@.\nclass_get_signal ::\n                   (ClassDB :< cls, Object :< cls) =>\n                   cls -> GodotString -> GodotString -> IO Dictionary\nclass_get_signal cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_class_get_signal (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"class_get_signal\"\n           '[GodotString, GodotString]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.ClassDB.class_get_signal\n\n{-# NOINLINE bindClassDB_class_get_signal_list #-}\n\n-- | Returns an array with all the signals of @class@ or its ancestry if @no_inheritance@ is @false@. Every element of the array is a @Dictionary@ as described in @method class_get_signal@.\nbindClassDB_class_get_signal_list :: MethodBind\nbindClassDB_class_get_signal_list\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"class_get_signal_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array with all the signals of @class@ or its ancestry if @no_inheritance@ is @false@. Every element of the array is a @Dictionary@ as described in @method class_get_signal@.\nclass_get_signal_list ::\n                        (ClassDB :< cls, Object :< cls) =>\n                        cls -> GodotString -> Maybe Bool -> IO Array\nclass_get_signal_list cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_class_get_signal_list\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"class_get_signal_list\"\n           '[GodotString, Maybe Bool]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.ClassDB.class_get_signal_list\n\n{-# NOINLINE bindClassDB_class_has_integer_constant #-}\n\n-- | Returns whether @class@ or its ancestry has an integer constant called @name@ or not.\nbindClassDB_class_has_integer_constant :: MethodBind\nbindClassDB_class_has_integer_constant\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"class_has_integer_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether @class@ or its ancestry has an integer constant called @name@ or not.\nclass_has_integer_constant ::\n                             (ClassDB :< cls, Object :< cls) =>\n                             cls -> GodotString -> GodotString -> IO Bool\nclass_has_integer_constant cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_class_has_integer_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"class_has_integer_constant\"\n           '[GodotString, GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ClassDB.class_has_integer_constant\n\n{-# NOINLINE bindClassDB_class_has_method #-}\n\n-- | Returns whether @class@ (or its ancestry if @no_inheritance@ is @false@) has a method called @method@ or not.\nbindClassDB_class_has_method :: MethodBind\nbindClassDB_class_has_method\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"class_has_method\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether @class@ (or its ancestry if @no_inheritance@ is @false@) has a method called @method@ or not.\nclass_has_method ::\n                   (ClassDB :< cls, Object :< cls) =>\n                   cls -> GodotString -> GodotString -> Maybe Bool -> IO Bool\nclass_has_method cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool False) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_class_has_method (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"class_has_method\"\n           '[GodotString, GodotString, Maybe Bool]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ClassDB.class_has_method\n\n{-# NOINLINE bindClassDB_class_has_signal #-}\n\n-- | Returns whether @class@ or its ancestry has a signal called @signal@ or not.\nbindClassDB_class_has_signal :: MethodBind\nbindClassDB_class_has_signal\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"class_has_signal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether @class@ or its ancestry has a signal called @signal@ or not.\nclass_has_signal ::\n                   (ClassDB :< cls, Object :< cls) =>\n                   cls -> GodotString -> GodotString -> IO Bool\nclass_has_signal cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_class_has_signal (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"class_has_signal\"\n           '[GodotString, GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ClassDB.class_has_signal\n\n{-# NOINLINE bindClassDB_class_set_property #-}\n\n-- | Sets @property@ value of @class@ to @value@.\nbindClassDB_class_set_property :: MethodBind\nbindClassDB_class_set_property\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"class_set_property\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets @property@ value of @class@ to @value@.\nclass_set_property ::\n                     (ClassDB :< cls, Object :< cls) =>\n                     cls -> Object -> GodotString -> GodotVariant -> IO Int\nclass_set_property cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_class_set_property (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"class_set_property\"\n           '[Object, GodotString, GodotVariant]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ClassDB.class_set_property\n\n{-# NOINLINE bindClassDB_get_class_list #-}\n\n-- | Returns the names of all the classes available.\nbindClassDB_get_class_list :: MethodBind\nbindClassDB_get_class_list\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"get_class_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the names of all the classes available.\nget_class_list ::\n                 (ClassDB :< cls, Object :< cls) => cls -> IO PoolStringArray\nget_class_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_get_class_list (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"get_class_list\" '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.ClassDB.get_class_list\n\n{-# NOINLINE bindClassDB_get_inheriters_from_class #-}\n\n-- | Returns the names of all the classes that directly or indirectly inherit from @class@.\nbindClassDB_get_inheriters_from_class :: MethodBind\nbindClassDB_get_inheriters_from_class\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"get_inheriters_from_class\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the names of all the classes that directly or indirectly inherit from @class@.\nget_inheriters_from_class ::\n                            (ClassDB :< cls, Object :< cls) =>\n                            cls -> GodotString -> IO PoolStringArray\nget_inheriters_from_class cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_get_inheriters_from_class\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"get_inheriters_from_class\"\n           '[GodotString]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.ClassDB.get_inheriters_from_class\n\n{-# NOINLINE bindClassDB_get_parent_class #-}\n\n-- | Returns the parent class of @class@.\nbindClassDB_get_parent_class :: MethodBind\nbindClassDB_get_parent_class\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"get_parent_class\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the parent class of @class@.\nget_parent_class ::\n                   (ClassDB :< cls, Object :< cls) =>\n                   cls -> GodotString -> IO GodotString\nget_parent_class cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_get_parent_class (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"get_parent_class\" '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.ClassDB.get_parent_class\n\n{-# NOINLINE bindClassDB_instance' #-}\n\n-- | Creates an instance of @class@.\nbindClassDB_instance' :: MethodBind\nbindClassDB_instance'\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"instance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates an instance of @class@.\ninstance' ::\n            (ClassDB :< cls, Object :< cls) =>\n            cls -> GodotString -> IO GodotVariant\ninstance' cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_instance' (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"instance\" '[GodotString]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.ClassDB.instance'\n\n{-# NOINLINE bindClassDB_is_class_enabled #-}\n\n-- | Returns whether this @class@ is enabled or not.\nbindClassDB_is_class_enabled :: MethodBind\nbindClassDB_is_class_enabled\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"is_class_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether this @class@ is enabled or not.\nis_class_enabled ::\n                   (ClassDB :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nis_class_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_is_class_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"is_class_enabled\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ClassDB.is_class_enabled\n\n{-# NOINLINE bindClassDB_is_parent_class #-}\n\n-- | Returns whether @inherits@ is an ancestor of @class@ or not.\nbindClassDB_is_parent_class :: MethodBind\nbindClassDB_is_parent_class\n  = unsafePerformIO $\n      withCString \"_ClassDB\" $\n        \\ clsNamePtr ->\n          withCString \"is_parent_class\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether @inherits@ is an ancestor of @class@ or not.\nis_parent_class ::\n                  (ClassDB :< cls, Object :< cls) =>\n                  cls -> GodotString -> GodotString -> IO Bool\nis_parent_class cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClassDB_is_parent_class (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClassDB \"is_parent_class\"\n           '[GodotString, GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ClassDB.is_parent_class"
  },
  {
    "path": "src/Godot/Core/ClippedCamera.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ClippedCamera\n       (Godot.Core.ClippedCamera._CLIP_PROCESS_PHYSICS,\n        Godot.Core.ClippedCamera._CLIP_PROCESS_IDLE,\n        Godot.Core.ClippedCamera.add_exception,\n        Godot.Core.ClippedCamera.add_exception_rid,\n        Godot.Core.ClippedCamera.clear_exceptions,\n        Godot.Core.ClippedCamera.get_clip_offset,\n        Godot.Core.ClippedCamera.get_collision_mask,\n        Godot.Core.ClippedCamera.get_collision_mask_bit,\n        Godot.Core.ClippedCamera.get_margin,\n        Godot.Core.ClippedCamera.get_process_mode,\n        Godot.Core.ClippedCamera.is_clip_to_areas_enabled,\n        Godot.Core.ClippedCamera.is_clip_to_bodies_enabled,\n        Godot.Core.ClippedCamera.remove_exception,\n        Godot.Core.ClippedCamera.remove_exception_rid,\n        Godot.Core.ClippedCamera.set_clip_to_areas,\n        Godot.Core.ClippedCamera.set_clip_to_bodies,\n        Godot.Core.ClippedCamera.set_collision_mask,\n        Godot.Core.ClippedCamera.set_collision_mask_bit,\n        Godot.Core.ClippedCamera.set_margin,\n        Godot.Core.ClippedCamera.set_process_mode)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Camera()\n\n_CLIP_PROCESS_PHYSICS :: Int\n_CLIP_PROCESS_PHYSICS = 0\n\n_CLIP_PROCESS_IDLE :: Int\n_CLIP_PROCESS_IDLE = 1\n\ninstance NodeProperty ClippedCamera \"clip_to_areas\" Bool 'False\n         where\n        nodeProperty\n          = (is_clip_to_areas_enabled, wrapDroppingSetter set_clip_to_areas,\n             Nothing)\n\ninstance NodeProperty ClippedCamera \"clip_to_bodies\" Bool 'False\n         where\n        nodeProperty\n          = (is_clip_to_bodies_enabled,\n             wrapDroppingSetter set_clip_to_bodies, Nothing)\n\ninstance NodeProperty ClippedCamera \"collision_mask\" Int 'False\n         where\n        nodeProperty\n          = (get_collision_mask, wrapDroppingSetter set_collision_mask,\n             Nothing)\n\ninstance NodeProperty ClippedCamera \"margin\" Float 'False where\n        nodeProperty = (get_margin, wrapDroppingSetter set_margin, Nothing)\n\ninstance NodeProperty ClippedCamera \"process_mode\" Int 'False where\n        nodeProperty\n          = (get_process_mode, wrapDroppingSetter set_process_mode, Nothing)\n\n{-# NOINLINE bindClippedCamera_add_exception #-}\n\n-- | Adds a collision exception so the camera does not collide with the specified node.\nbindClippedCamera_add_exception :: MethodBind\nbindClippedCamera_add_exception\n  = unsafePerformIO $\n      withCString \"ClippedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"add_exception\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a collision exception so the camera does not collide with the specified node.\nadd_exception ::\n                (ClippedCamera :< cls, Object :< cls) => cls -> Object -> IO ()\nadd_exception cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClippedCamera_add_exception (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClippedCamera \"add_exception\" '[Object] (IO ())\n         where\n        nodeMethod = Godot.Core.ClippedCamera.add_exception\n\n{-# NOINLINE bindClippedCamera_add_exception_rid #-}\n\n-- | Adds a collision exception so the camera does not collide with the specified @RID@.\nbindClippedCamera_add_exception_rid :: MethodBind\nbindClippedCamera_add_exception_rid\n  = unsafePerformIO $\n      withCString \"ClippedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"add_exception_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a collision exception so the camera does not collide with the specified @RID@.\nadd_exception_rid ::\n                    (ClippedCamera :< cls, Object :< cls) => cls -> Rid -> IO ()\nadd_exception_rid cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClippedCamera_add_exception_rid\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClippedCamera \"add_exception_rid\" '[Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ClippedCamera.add_exception_rid\n\n{-# NOINLINE bindClippedCamera_clear_exceptions #-}\n\n-- | Removes all collision exceptions.\nbindClippedCamera_clear_exceptions :: MethodBind\nbindClippedCamera_clear_exceptions\n  = unsafePerformIO $\n      withCString \"ClippedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"clear_exceptions\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all collision exceptions.\nclear_exceptions ::\n                   (ClippedCamera :< cls, Object :< cls) => cls -> IO ()\nclear_exceptions cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClippedCamera_clear_exceptions\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClippedCamera \"clear_exceptions\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.ClippedCamera.clear_exceptions\n\n{-# NOINLINE bindClippedCamera_get_clip_offset #-}\n\n-- | Returns the distance the camera has been offset due to a collision.\nbindClippedCamera_get_clip_offset :: MethodBind\nbindClippedCamera_get_clip_offset\n  = unsafePerformIO $\n      withCString \"ClippedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"get_clip_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the distance the camera has been offset due to a collision.\nget_clip_offset ::\n                  (ClippedCamera :< cls, Object :< cls) => cls -> IO Float\nget_clip_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClippedCamera_get_clip_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClippedCamera \"get_clip_offset\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.ClippedCamera.get_clip_offset\n\n{-# NOINLINE bindClippedCamera_get_collision_mask #-}\n\n-- | The camera's collision mask. Only objects in at least one collision layer matching the mask will be detected. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindClippedCamera_get_collision_mask :: MethodBind\nbindClippedCamera_get_collision_mask\n  = unsafePerformIO $\n      withCString \"ClippedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's collision mask. Only objects in at least one collision layer matching the mask will be detected. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nget_collision_mask ::\n                     (ClippedCamera :< cls, Object :< cls) => cls -> IO Int\nget_collision_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClippedCamera_get_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClippedCamera \"get_collision_mask\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ClippedCamera.get_collision_mask\n\n{-# NOINLINE bindClippedCamera_get_collision_mask_bit #-}\n\n-- | Returns @true@ if the specified bit index is on.\n--   \t\t\t\t__Note:__ Bit indices range from 0-19.\nbindClippedCamera_get_collision_mask_bit :: MethodBind\nbindClippedCamera_get_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"ClippedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the specified bit index is on.\n--   \t\t\t\t__Note:__ Bit indices range from 0-19.\nget_collision_mask_bit ::\n                         (ClippedCamera :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_mask_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClippedCamera_get_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClippedCamera \"get_collision_mask_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ClippedCamera.get_collision_mask_bit\n\n{-# NOINLINE bindClippedCamera_get_margin #-}\n\n-- | The camera's collision margin. The camera can't get closer than this distance to a colliding object.\nbindClippedCamera_get_margin :: MethodBind\nbindClippedCamera_get_margin\n  = unsafePerformIO $\n      withCString \"ClippedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"get_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's collision margin. The camera can't get closer than this distance to a colliding object.\nget_margin ::\n             (ClippedCamera :< cls, Object :< cls) => cls -> IO Float\nget_margin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClippedCamera_get_margin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClippedCamera \"get_margin\" '[] (IO Float) where\n        nodeMethod = Godot.Core.ClippedCamera.get_margin\n\n{-# NOINLINE bindClippedCamera_get_process_mode #-}\n\n-- | The camera's process callback. See @enum ProcessMode@.\nbindClippedCamera_get_process_mode :: MethodBind\nbindClippedCamera_get_process_mode\n  = unsafePerformIO $\n      withCString \"ClippedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"get_process_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's process callback. See @enum ProcessMode@.\nget_process_mode ::\n                   (ClippedCamera :< cls, Object :< cls) => cls -> IO Int\nget_process_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClippedCamera_get_process_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClippedCamera \"get_process_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ClippedCamera.get_process_mode\n\n{-# NOINLINE bindClippedCamera_is_clip_to_areas_enabled #-}\n\n-- | If @true@, the camera stops on contact with @Area@s.\nbindClippedCamera_is_clip_to_areas_enabled :: MethodBind\nbindClippedCamera_is_clip_to_areas_enabled\n  = unsafePerformIO $\n      withCString \"ClippedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"is_clip_to_areas_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the camera stops on contact with @Area@s.\nis_clip_to_areas_enabled ::\n                           (ClippedCamera :< cls, Object :< cls) => cls -> IO Bool\nis_clip_to_areas_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClippedCamera_is_clip_to_areas_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClippedCamera \"is_clip_to_areas_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ClippedCamera.is_clip_to_areas_enabled\n\n{-# NOINLINE bindClippedCamera_is_clip_to_bodies_enabled #-}\n\n-- | If @true@, the camera stops on contact with @PhysicsBody@s.\nbindClippedCamera_is_clip_to_bodies_enabled :: MethodBind\nbindClippedCamera_is_clip_to_bodies_enabled\n  = unsafePerformIO $\n      withCString \"ClippedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"is_clip_to_bodies_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the camera stops on contact with @PhysicsBody@s.\nis_clip_to_bodies_enabled ::\n                            (ClippedCamera :< cls, Object :< cls) => cls -> IO Bool\nis_clip_to_bodies_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClippedCamera_is_clip_to_bodies_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClippedCamera \"is_clip_to_bodies_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ClippedCamera.is_clip_to_bodies_enabled\n\n{-# NOINLINE bindClippedCamera_remove_exception #-}\n\n-- | Removes a collision exception with the specified node.\nbindClippedCamera_remove_exception :: MethodBind\nbindClippedCamera_remove_exception\n  = unsafePerformIO $\n      withCString \"ClippedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"remove_exception\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a collision exception with the specified node.\nremove_exception ::\n                   (ClippedCamera :< cls, Object :< cls) => cls -> Object -> IO ()\nremove_exception cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClippedCamera_remove_exception\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClippedCamera \"remove_exception\" '[Object]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ClippedCamera.remove_exception\n\n{-# NOINLINE bindClippedCamera_remove_exception_rid #-}\n\n-- | Removes a collision exception with the specified @RID@.\nbindClippedCamera_remove_exception_rid :: MethodBind\nbindClippedCamera_remove_exception_rid\n  = unsafePerformIO $\n      withCString \"ClippedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"remove_exception_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a collision exception with the specified @RID@.\nremove_exception_rid ::\n                       (ClippedCamera :< cls, Object :< cls) => cls -> Rid -> IO ()\nremove_exception_rid cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClippedCamera_remove_exception_rid\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClippedCamera \"remove_exception_rid\" '[Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ClippedCamera.remove_exception_rid\n\n{-# NOINLINE bindClippedCamera_set_clip_to_areas #-}\n\n-- | If @true@, the camera stops on contact with @Area@s.\nbindClippedCamera_set_clip_to_areas :: MethodBind\nbindClippedCamera_set_clip_to_areas\n  = unsafePerformIO $\n      withCString \"ClippedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"set_clip_to_areas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the camera stops on contact with @Area@s.\nset_clip_to_areas ::\n                    (ClippedCamera :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_clip_to_areas cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClippedCamera_set_clip_to_areas\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClippedCamera \"set_clip_to_areas\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ClippedCamera.set_clip_to_areas\n\n{-# NOINLINE bindClippedCamera_set_clip_to_bodies #-}\n\n-- | If @true@, the camera stops on contact with @PhysicsBody@s.\nbindClippedCamera_set_clip_to_bodies :: MethodBind\nbindClippedCamera_set_clip_to_bodies\n  = unsafePerformIO $\n      withCString \"ClippedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"set_clip_to_bodies\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the camera stops on contact with @PhysicsBody@s.\nset_clip_to_bodies ::\n                     (ClippedCamera :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_clip_to_bodies cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClippedCamera_set_clip_to_bodies\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClippedCamera \"set_clip_to_bodies\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ClippedCamera.set_clip_to_bodies\n\n{-# NOINLINE bindClippedCamera_set_collision_mask #-}\n\n-- | The camera's collision mask. Only objects in at least one collision layer matching the mask will be detected. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindClippedCamera_set_collision_mask :: MethodBind\nbindClippedCamera_set_collision_mask\n  = unsafePerformIO $\n      withCString \"ClippedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's collision mask. Only objects in at least one collision layer matching the mask will be detected. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nset_collision_mask ::\n                     (ClippedCamera :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClippedCamera_set_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClippedCamera \"set_collision_mask\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ClippedCamera.set_collision_mask\n\n{-# NOINLINE bindClippedCamera_set_collision_mask_bit #-}\n\n-- | Sets the specified bit index to the @value@.\n--   \t\t\t\t__Note:__ Bit indices range from 0-19.\nbindClippedCamera_set_collision_mask_bit :: MethodBind\nbindClippedCamera_set_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"ClippedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the specified bit index to the @value@.\n--   \t\t\t\t__Note:__ Bit indices range from 0-19.\nset_collision_mask_bit ::\n                         (ClippedCamera :< cls, Object :< cls) =>\n                         cls -> Int -> Bool -> IO ()\nset_collision_mask_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClippedCamera_set_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClippedCamera \"set_collision_mask_bit\"\n           '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ClippedCamera.set_collision_mask_bit\n\n{-# NOINLINE bindClippedCamera_set_margin #-}\n\n-- | The camera's collision margin. The camera can't get closer than this distance to a colliding object.\nbindClippedCamera_set_margin :: MethodBind\nbindClippedCamera_set_margin\n  = unsafePerformIO $\n      withCString \"ClippedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"set_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's collision margin. The camera can't get closer than this distance to a colliding object.\nset_margin ::\n             (ClippedCamera :< cls, Object :< cls) => cls -> Float -> IO ()\nset_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClippedCamera_set_margin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClippedCamera \"set_margin\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.ClippedCamera.set_margin\n\n{-# NOINLINE bindClippedCamera_set_process_mode #-}\n\n-- | The camera's process callback. See @enum ProcessMode@.\nbindClippedCamera_set_process_mode :: MethodBind\nbindClippedCamera_set_process_mode\n  = unsafePerformIO $\n      withCString \"ClippedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"set_process_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The camera's process callback. See @enum ProcessMode@.\nset_process_mode ::\n                   (ClippedCamera :< cls, Object :< cls) => cls -> Int -> IO ()\nset_process_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindClippedCamera_set_process_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ClippedCamera \"set_process_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.ClippedCamera.set_process_mode"
  },
  {
    "path": "src/Godot/Core/CollisionObject.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CollisionObject\n       (Godot.Core.CollisionObject.sig_input_event,\n        Godot.Core.CollisionObject.sig_mouse_entered,\n        Godot.Core.CollisionObject.sig_mouse_exited,\n        Godot.Core.CollisionObject._input_event,\n        Godot.Core.CollisionObject.create_shape_owner,\n        Godot.Core.CollisionObject.get_capture_input_on_drag,\n        Godot.Core.CollisionObject.get_rid,\n        Godot.Core.CollisionObject.get_shape_owners,\n        Godot.Core.CollisionObject.is_ray_pickable,\n        Godot.Core.CollisionObject.is_shape_owner_disabled,\n        Godot.Core.CollisionObject.remove_shape_owner,\n        Godot.Core.CollisionObject.set_capture_input_on_drag,\n        Godot.Core.CollisionObject.set_ray_pickable,\n        Godot.Core.CollisionObject.shape_find_owner,\n        Godot.Core.CollisionObject.shape_owner_add_shape,\n        Godot.Core.CollisionObject.shape_owner_clear_shapes,\n        Godot.Core.CollisionObject.shape_owner_get_owner,\n        Godot.Core.CollisionObject.shape_owner_get_shape,\n        Godot.Core.CollisionObject.shape_owner_get_shape_count,\n        Godot.Core.CollisionObject.shape_owner_get_shape_index,\n        Godot.Core.CollisionObject.shape_owner_get_transform,\n        Godot.Core.CollisionObject.shape_owner_remove_shape,\n        Godot.Core.CollisionObject.shape_owner_set_disabled,\n        Godot.Core.CollisionObject.shape_owner_set_transform)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\n-- | Emitted when @method _input_event@ receives an event. See its description for details.\nsig_input_event :: Godot.Internal.Dispatch.Signal CollisionObject\nsig_input_event = Godot.Internal.Dispatch.Signal \"input_event\"\n\ninstance NodeSignal CollisionObject \"input_event\"\n           '[Node, InputEvent, Vector3, Vector3, Int]\n\n-- | Emitted when the mouse pointer enters any of this object's shapes.\nsig_mouse_entered :: Godot.Internal.Dispatch.Signal CollisionObject\nsig_mouse_entered = Godot.Internal.Dispatch.Signal \"mouse_entered\"\n\ninstance NodeSignal CollisionObject \"mouse_entered\" '[]\n\n-- | Emitted when the mouse pointer exits all this object's shapes.\nsig_mouse_exited :: Godot.Internal.Dispatch.Signal CollisionObject\nsig_mouse_exited = Godot.Internal.Dispatch.Signal \"mouse_exited\"\n\ninstance NodeSignal CollisionObject \"mouse_exited\" '[]\n\ninstance NodeProperty CollisionObject \"input_capture_on_drag\" Bool\n           'False\n         where\n        nodeProperty\n          = (get_capture_input_on_drag,\n             wrapDroppingSetter set_capture_input_on_drag, Nothing)\n\ninstance NodeProperty CollisionObject \"input_ray_pickable\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_ray_pickable, wrapDroppingSetter set_ray_pickable, Nothing)\n\n{-# NOINLINE bindCollisionObject__input_event #-}\n\n-- | Accepts unhandled @InputEvent@s. @click_position@ is the clicked location in world space and @click_normal@ is the normal vector extending from the clicked surface of the @Shape@ at @shape_idx@. Connect to the @input_event@ signal to easily pick up these events.\nbindCollisionObject__input_event :: MethodBind\nbindCollisionObject__input_event\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"_input_event\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Accepts unhandled @InputEvent@s. @click_position@ is the clicked location in world space and @click_normal@ is the normal vector extending from the clicked surface of the @Shape@ at @shape_idx@. Connect to the @input_event@ signal to easily pick up these events.\n_input_event ::\n               (CollisionObject :< cls, Object :< cls) =>\n               cls -> Object -> InputEvent -> Vector3 -> Vector3 -> Int -> IO ()\n_input_event cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject__input_event\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"_input_event\"\n           '[Object, InputEvent, Vector3, Vector3, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionObject._input_event\n\n{-# NOINLINE bindCollisionObject_create_shape_owner #-}\n\n-- | Creates a new shape owner for the given object. Returns @owner_id@ of the new owner for future reference.\nbindCollisionObject_create_shape_owner :: MethodBind\nbindCollisionObject_create_shape_owner\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"create_shape_owner\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a new shape owner for the given object. Returns @owner_id@ of the new owner for future reference.\ncreate_shape_owner ::\n                     (CollisionObject :< cls, Object :< cls) => cls -> Object -> IO Int\ncreate_shape_owner cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject_create_shape_owner\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"create_shape_owner\" '[Object]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.CollisionObject.create_shape_owner\n\n{-# NOINLINE bindCollisionObject_get_capture_input_on_drag #-}\n\n-- | If @true@, the @CollisionObject@ will continue to receive input events as the mouse is dragged across its shapes.\nbindCollisionObject_get_capture_input_on_drag :: MethodBind\nbindCollisionObject_get_capture_input_on_drag\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"get_capture_input_on_drag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @CollisionObject@ will continue to receive input events as the mouse is dragged across its shapes.\nget_capture_input_on_drag ::\n                            (CollisionObject :< cls, Object :< cls) => cls -> IO Bool\nget_capture_input_on_drag cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionObject_get_capture_input_on_drag\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"get_capture_input_on_drag\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CollisionObject.get_capture_input_on_drag\n\n{-# NOINLINE bindCollisionObject_get_rid #-}\n\n-- | Returns the object's @RID@.\nbindCollisionObject_get_rid :: MethodBind\nbindCollisionObject_get_rid\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"get_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the object's @RID@.\nget_rid :: (CollisionObject :< cls, Object :< cls) => cls -> IO Rid\nget_rid cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject_get_rid (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"get_rid\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.CollisionObject.get_rid\n\n{-# NOINLINE bindCollisionObject_get_shape_owners #-}\n\n-- | Returns an @Array@ of @owner_id@ identifiers. You can use these ids in other methods that take @owner_id@ as an argument.\nbindCollisionObject_get_shape_owners :: MethodBind\nbindCollisionObject_get_shape_owners\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"get_shape_owners\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an @Array@ of @owner_id@ identifiers. You can use these ids in other methods that take @owner_id@ as an argument.\nget_shape_owners ::\n                   (CollisionObject :< cls, Object :< cls) => cls -> IO Array\nget_shape_owners cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject_get_shape_owners\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"get_shape_owners\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.CollisionObject.get_shape_owners\n\n{-# NOINLINE bindCollisionObject_is_ray_pickable #-}\n\n-- | If @true@, the @CollisionObject@'s shapes will respond to @RayCast@s.\nbindCollisionObject_is_ray_pickable :: MethodBind\nbindCollisionObject_is_ray_pickable\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"is_ray_pickable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @CollisionObject@'s shapes will respond to @RayCast@s.\nis_ray_pickable ::\n                  (CollisionObject :< cls, Object :< cls) => cls -> IO Bool\nis_ray_pickable cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject_is_ray_pickable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"is_ray_pickable\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CollisionObject.is_ray_pickable\n\n{-# NOINLINE bindCollisionObject_is_shape_owner_disabled #-}\n\n-- | If @true@, the shape owner and its shapes are disabled.\nbindCollisionObject_is_shape_owner_disabled :: MethodBind\nbindCollisionObject_is_shape_owner_disabled\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"is_shape_owner_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the shape owner and its shapes are disabled.\nis_shape_owner_disabled ::\n                          (CollisionObject :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_shape_owner_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject_is_shape_owner_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"is_shape_owner_disabled\"\n           '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CollisionObject.is_shape_owner_disabled\n\n{-# NOINLINE bindCollisionObject_remove_shape_owner #-}\n\n-- | Removes the given shape owner.\nbindCollisionObject_remove_shape_owner :: MethodBind\nbindCollisionObject_remove_shape_owner\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"remove_shape_owner\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the given shape owner.\nremove_shape_owner ::\n                     (CollisionObject :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_shape_owner cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject_remove_shape_owner\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"remove_shape_owner\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionObject.remove_shape_owner\n\n{-# NOINLINE bindCollisionObject_set_capture_input_on_drag #-}\n\n-- | If @true@, the @CollisionObject@ will continue to receive input events as the mouse is dragged across its shapes.\nbindCollisionObject_set_capture_input_on_drag :: MethodBind\nbindCollisionObject_set_capture_input_on_drag\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"set_capture_input_on_drag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @CollisionObject@ will continue to receive input events as the mouse is dragged across its shapes.\nset_capture_input_on_drag ::\n                            (CollisionObject :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_capture_input_on_drag cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionObject_set_capture_input_on_drag\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"set_capture_input_on_drag\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionObject.set_capture_input_on_drag\n\n{-# NOINLINE bindCollisionObject_set_ray_pickable #-}\n\n-- | If @true@, the @CollisionObject@'s shapes will respond to @RayCast@s.\nbindCollisionObject_set_ray_pickable :: MethodBind\nbindCollisionObject_set_ray_pickable\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"set_ray_pickable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @CollisionObject@'s shapes will respond to @RayCast@s.\nset_ray_pickable ::\n                   (CollisionObject :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_ray_pickable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject_set_ray_pickable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"set_ray_pickable\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionObject.set_ray_pickable\n\n{-# NOINLINE bindCollisionObject_shape_find_owner #-}\n\n-- | Returns the @owner_id@ of the given shape.\nbindCollisionObject_shape_find_owner :: MethodBind\nbindCollisionObject_shape_find_owner\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"shape_find_owner\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @owner_id@ of the given shape.\nshape_find_owner ::\n                   (CollisionObject :< cls, Object :< cls) => cls -> Int -> IO Int\nshape_find_owner cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject_shape_find_owner\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"shape_find_owner\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.CollisionObject.shape_find_owner\n\n{-# NOINLINE bindCollisionObject_shape_owner_add_shape #-}\n\n-- | Adds a @Shape@ to the shape owner.\nbindCollisionObject_shape_owner_add_shape :: MethodBind\nbindCollisionObject_shape_owner_add_shape\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_add_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @Shape@ to the shape owner.\nshape_owner_add_shape ::\n                        (CollisionObject :< cls, Object :< cls) =>\n                        cls -> Int -> Shape -> IO ()\nshape_owner_add_shape cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject_shape_owner_add_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"shape_owner_add_shape\"\n           '[Int, Shape]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionObject.shape_owner_add_shape\n\n{-# NOINLINE bindCollisionObject_shape_owner_clear_shapes #-}\n\n-- | Removes all shapes from the shape owner.\nbindCollisionObject_shape_owner_clear_shapes :: MethodBind\nbindCollisionObject_shape_owner_clear_shapes\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_clear_shapes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all shapes from the shape owner.\nshape_owner_clear_shapes ::\n                           (CollisionObject :< cls, Object :< cls) => cls -> Int -> IO ()\nshape_owner_clear_shapes cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject_shape_owner_clear_shapes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"shape_owner_clear_shapes\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionObject.shape_owner_clear_shapes\n\n{-# NOINLINE bindCollisionObject_shape_owner_get_owner #-}\n\n-- | Returns the parent object of the given shape owner.\nbindCollisionObject_shape_owner_get_owner :: MethodBind\nbindCollisionObject_shape_owner_get_owner\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_get_owner\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the parent object of the given shape owner.\nshape_owner_get_owner ::\n                        (CollisionObject :< cls, Object :< cls) => cls -> Int -> IO Object\nshape_owner_get_owner cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject_shape_owner_get_owner\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"shape_owner_get_owner\" '[Int]\n           (IO Object)\n         where\n        nodeMethod = Godot.Core.CollisionObject.shape_owner_get_owner\n\n{-# NOINLINE bindCollisionObject_shape_owner_get_shape #-}\n\n-- | Returns the @Shape@ with the given id from the given shape owner.\nbindCollisionObject_shape_owner_get_shape :: MethodBind\nbindCollisionObject_shape_owner_get_shape\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_get_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Shape@ with the given id from the given shape owner.\nshape_owner_get_shape ::\n                        (CollisionObject :< cls, Object :< cls) =>\n                        cls -> Int -> Int -> IO Shape\nshape_owner_get_shape cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject_shape_owner_get_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"shape_owner_get_shape\"\n           '[Int, Int]\n           (IO Shape)\n         where\n        nodeMethod = Godot.Core.CollisionObject.shape_owner_get_shape\n\n{-# NOINLINE bindCollisionObject_shape_owner_get_shape_count #-}\n\n-- | Returns the number of shapes the given shape owner contains.\nbindCollisionObject_shape_owner_get_shape_count :: MethodBind\nbindCollisionObject_shape_owner_get_shape_count\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_get_shape_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of shapes the given shape owner contains.\nshape_owner_get_shape_count ::\n                              (CollisionObject :< cls, Object :< cls) => cls -> Int -> IO Int\nshape_owner_get_shape_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionObject_shape_owner_get_shape_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"shape_owner_get_shape_count\"\n           '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.CollisionObject.shape_owner_get_shape_count\n\n{-# NOINLINE bindCollisionObject_shape_owner_get_shape_index #-}\n\n-- | Returns the child index of the @Shape@ with the given id from the given shape owner.\nbindCollisionObject_shape_owner_get_shape_index :: MethodBind\nbindCollisionObject_shape_owner_get_shape_index\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_get_shape_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the child index of the @Shape@ with the given id from the given shape owner.\nshape_owner_get_shape_index ::\n                              (CollisionObject :< cls, Object :< cls) =>\n                              cls -> Int -> Int -> IO Int\nshape_owner_get_shape_index cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionObject_shape_owner_get_shape_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"shape_owner_get_shape_index\"\n           '[Int, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.CollisionObject.shape_owner_get_shape_index\n\n{-# NOINLINE bindCollisionObject_shape_owner_get_transform #-}\n\n-- | Returns the shape owner's @Transform@.\nbindCollisionObject_shape_owner_get_transform :: MethodBind\nbindCollisionObject_shape_owner_get_transform\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_get_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the shape owner's @Transform@.\nshape_owner_get_transform ::\n                            (CollisionObject :< cls, Object :< cls) =>\n                            cls -> Int -> IO Transform\nshape_owner_get_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionObject_shape_owner_get_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"shape_owner_get_transform\"\n           '[Int]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.CollisionObject.shape_owner_get_transform\n\n{-# NOINLINE bindCollisionObject_shape_owner_remove_shape #-}\n\n-- | Removes a shape from the given shape owner.\nbindCollisionObject_shape_owner_remove_shape :: MethodBind\nbindCollisionObject_shape_owner_remove_shape\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_remove_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a shape from the given shape owner.\nshape_owner_remove_shape ::\n                           (CollisionObject :< cls, Object :< cls) =>\n                           cls -> Int -> Int -> IO ()\nshape_owner_remove_shape cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject_shape_owner_remove_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"shape_owner_remove_shape\"\n           '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionObject.shape_owner_remove_shape\n\n{-# NOINLINE bindCollisionObject_shape_owner_set_disabled #-}\n\n-- | If @true@, disables the given shape owner.\nbindCollisionObject_shape_owner_set_disabled :: MethodBind\nbindCollisionObject_shape_owner_set_disabled\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_set_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, disables the given shape owner.\nshape_owner_set_disabled ::\n                           (CollisionObject :< cls, Object :< cls) =>\n                           cls -> Int -> Bool -> IO ()\nshape_owner_set_disabled cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject_shape_owner_set_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"shape_owner_set_disabled\"\n           '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionObject.shape_owner_set_disabled\n\n{-# NOINLINE bindCollisionObject_shape_owner_set_transform #-}\n\n-- | Sets the @Transform@ of the given shape owner.\nbindCollisionObject_shape_owner_set_transform :: MethodBind\nbindCollisionObject_shape_owner_set_transform\n  = unsafePerformIO $\n      withCString \"CollisionObject\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Transform@ of the given shape owner.\nshape_owner_set_transform ::\n                            (CollisionObject :< cls, Object :< cls) =>\n                            cls -> Int -> Transform -> IO ()\nshape_owner_set_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionObject_shape_owner_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject \"shape_owner_set_transform\"\n           '[Int, Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionObject.shape_owner_set_transform"
  },
  {
    "path": "src/Godot/Core/CollisionObject2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CollisionObject2D\n       (Godot.Core.CollisionObject2D.sig_input_event,\n        Godot.Core.CollisionObject2D.sig_mouse_entered,\n        Godot.Core.CollisionObject2D.sig_mouse_exited,\n        Godot.Core.CollisionObject2D._input_event,\n        Godot.Core.CollisionObject2D.create_shape_owner,\n        Godot.Core.CollisionObject2D.get_rid,\n        Godot.Core.CollisionObject2D.get_shape_owner_one_way_collision_margin,\n        Godot.Core.CollisionObject2D.get_shape_owners,\n        Godot.Core.CollisionObject2D.is_pickable,\n        Godot.Core.CollisionObject2D.is_shape_owner_disabled,\n        Godot.Core.CollisionObject2D.is_shape_owner_one_way_collision_enabled,\n        Godot.Core.CollisionObject2D.remove_shape_owner,\n        Godot.Core.CollisionObject2D.set_pickable,\n        Godot.Core.CollisionObject2D.shape_find_owner,\n        Godot.Core.CollisionObject2D.shape_owner_add_shape,\n        Godot.Core.CollisionObject2D.shape_owner_clear_shapes,\n        Godot.Core.CollisionObject2D.shape_owner_get_owner,\n        Godot.Core.CollisionObject2D.shape_owner_get_shape,\n        Godot.Core.CollisionObject2D.shape_owner_get_shape_count,\n        Godot.Core.CollisionObject2D.shape_owner_get_shape_index,\n        Godot.Core.CollisionObject2D.shape_owner_get_transform,\n        Godot.Core.CollisionObject2D.shape_owner_remove_shape,\n        Godot.Core.CollisionObject2D.shape_owner_set_disabled,\n        Godot.Core.CollisionObject2D.shape_owner_set_one_way_collision,\n        Godot.Core.CollisionObject2D.shape_owner_set_one_way_collision_margin,\n        Godot.Core.CollisionObject2D.shape_owner_set_transform)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\n-- | Emitted when an input event occurs. Requires @input_pickable@ to be @true@ and at least one @collision_layer@ bit to be set. See @method _input_event@ for details.\nsig_input_event :: Godot.Internal.Dispatch.Signal CollisionObject2D\nsig_input_event = Godot.Internal.Dispatch.Signal \"input_event\"\n\ninstance NodeSignal CollisionObject2D \"input_event\"\n           '[Node, InputEvent, Int]\n\n-- | Emitted when the mouse pointer enters any of this object's shapes. Requires @input_pickable@ to be @true@ and at least one @collision_layer@ bit to be set.\nsig_mouse_entered ::\n                  Godot.Internal.Dispatch.Signal CollisionObject2D\nsig_mouse_entered = Godot.Internal.Dispatch.Signal \"mouse_entered\"\n\ninstance NodeSignal CollisionObject2D \"mouse_entered\" '[]\n\n-- | Emitted when the mouse pointer exits all this object's shapes. Requires @input_pickable@ to be @true@ and at least one @collision_layer@ bit to be set.\nsig_mouse_exited ::\n                 Godot.Internal.Dispatch.Signal CollisionObject2D\nsig_mouse_exited = Godot.Internal.Dispatch.Signal \"mouse_exited\"\n\ninstance NodeSignal CollisionObject2D \"mouse_exited\" '[]\n\ninstance NodeProperty CollisionObject2D \"input_pickable\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_pickable, wrapDroppingSetter set_pickable, Nothing)\n\n{-# NOINLINE bindCollisionObject2D__input_event #-}\n\n-- | Accepts unhandled @InputEvent@s. Requires @input_pickable@ to be @true@. @shape_idx@ is the child index of the clicked @Shape2D@. Connect to the @input_event@ signal to easily pick up these events.\nbindCollisionObject2D__input_event :: MethodBind\nbindCollisionObject2D__input_event\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"_input_event\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Accepts unhandled @InputEvent@s. Requires @input_pickable@ to be @true@. @shape_idx@ is the child index of the clicked @Shape2D@. Connect to the @input_event@ signal to easily pick up these events.\n_input_event ::\n               (CollisionObject2D :< cls, Object :< cls) =>\n               cls -> Object -> InputEvent -> Int -> IO ()\n_input_event cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject2D__input_event\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"_input_event\"\n           '[Object, InputEvent, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionObject2D._input_event\n\n{-# NOINLINE bindCollisionObject2D_create_shape_owner #-}\n\n-- | Creates a new shape owner for the given object. Returns @owner_id@ of the new owner for future reference.\nbindCollisionObject2D_create_shape_owner :: MethodBind\nbindCollisionObject2D_create_shape_owner\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"create_shape_owner\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a new shape owner for the given object. Returns @owner_id@ of the new owner for future reference.\ncreate_shape_owner ::\n                     (CollisionObject2D :< cls, Object :< cls) =>\n                     cls -> Object -> IO Int\ncreate_shape_owner cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject2D_create_shape_owner\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"create_shape_owner\"\n           '[Object]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.CollisionObject2D.create_shape_owner\n\n{-# NOINLINE bindCollisionObject2D_get_rid #-}\n\n-- | Returns the object's @RID@.\nbindCollisionObject2D_get_rid :: MethodBind\nbindCollisionObject2D_get_rid\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the object's @RID@.\nget_rid ::\n          (CollisionObject2D :< cls, Object :< cls) => cls -> IO Rid\nget_rid cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject2D_get_rid (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"get_rid\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.CollisionObject2D.get_rid\n\n{-# NOINLINE bindCollisionObject2D_get_shape_owner_one_way_collision_margin\n             #-}\n\n-- | Returns the @one_way_collision_margin@ of the shape owner identified by given @owner_id@.\nbindCollisionObject2D_get_shape_owner_one_way_collision_margin ::\n                                                               MethodBind\nbindCollisionObject2D_get_shape_owner_one_way_collision_margin\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_shape_owner_one_way_collision_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @one_way_collision_margin@ of the shape owner identified by given @owner_id@.\nget_shape_owner_one_way_collision_margin ::\n                                           (CollisionObject2D :< cls, Object :< cls) =>\n                                           cls -> Int -> IO Float\nget_shape_owner_one_way_collision_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionObject2D_get_shape_owner_one_way_collision_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D\n           \"get_shape_owner_one_way_collision_margin\"\n           '[Int]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.CollisionObject2D.get_shape_owner_one_way_collision_margin\n\n{-# NOINLINE bindCollisionObject2D_get_shape_owners #-}\n\n-- | Returns an @Array@ of @owner_id@ identifiers. You can use these ids in other methods that take @owner_id@ as an argument.\nbindCollisionObject2D_get_shape_owners :: MethodBind\nbindCollisionObject2D_get_shape_owners\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_shape_owners\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an @Array@ of @owner_id@ identifiers. You can use these ids in other methods that take @owner_id@ as an argument.\nget_shape_owners ::\n                   (CollisionObject2D :< cls, Object :< cls) => cls -> IO Array\nget_shape_owners cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject2D_get_shape_owners\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"get_shape_owners\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.CollisionObject2D.get_shape_owners\n\n{-# NOINLINE bindCollisionObject2D_is_pickable #-}\n\n-- | If @true@, this object is pickable. A pickable object can detect the mouse pointer entering/leaving, and if the mouse is inside it, report input events. Requires at least one @collision_layer@ bit to be set.\nbindCollisionObject2D_is_pickable :: MethodBind\nbindCollisionObject2D_is_pickable\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_pickable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this object is pickable. A pickable object can detect the mouse pointer entering/leaving, and if the mouse is inside it, report input events. Requires at least one @collision_layer@ bit to be set.\nis_pickable ::\n              (CollisionObject2D :< cls, Object :< cls) => cls -> IO Bool\nis_pickable cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject2D_is_pickable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"is_pickable\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CollisionObject2D.is_pickable\n\n{-# NOINLINE bindCollisionObject2D_is_shape_owner_disabled #-}\n\n-- | If @true@, the shape owner and its shapes are disabled.\nbindCollisionObject2D_is_shape_owner_disabled :: MethodBind\nbindCollisionObject2D_is_shape_owner_disabled\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_shape_owner_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the shape owner and its shapes are disabled.\nis_shape_owner_disabled ::\n                          (CollisionObject2D :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_shape_owner_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionObject2D_is_shape_owner_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"is_shape_owner_disabled\"\n           '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CollisionObject2D.is_shape_owner_disabled\n\n{-# NOINLINE bindCollisionObject2D_is_shape_owner_one_way_collision_enabled\n             #-}\n\n-- | Returns @true@ if collisions for the shape owner originating from this @CollisionObject2D@ will not be reported to collided with @CollisionObject2D@s.\nbindCollisionObject2D_is_shape_owner_one_way_collision_enabled ::\n                                                               MethodBind\nbindCollisionObject2D_is_shape_owner_one_way_collision_enabled\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_shape_owner_one_way_collision_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if collisions for the shape owner originating from this @CollisionObject2D@ will not be reported to collided with @CollisionObject2D@s.\nis_shape_owner_one_way_collision_enabled ::\n                                           (CollisionObject2D :< cls, Object :< cls) =>\n                                           cls -> Int -> IO Bool\nis_shape_owner_one_way_collision_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionObject2D_is_shape_owner_one_way_collision_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D\n           \"is_shape_owner_one_way_collision_enabled\"\n           '[Int]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.CollisionObject2D.is_shape_owner_one_way_collision_enabled\n\n{-# NOINLINE bindCollisionObject2D_remove_shape_owner #-}\n\n-- | Removes the given shape owner.\nbindCollisionObject2D_remove_shape_owner :: MethodBind\nbindCollisionObject2D_remove_shape_owner\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"remove_shape_owner\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the given shape owner.\nremove_shape_owner ::\n                     (CollisionObject2D :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_shape_owner cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject2D_remove_shape_owner\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"remove_shape_owner\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionObject2D.remove_shape_owner\n\n{-# NOINLINE bindCollisionObject2D_set_pickable #-}\n\n-- | If @true@, this object is pickable. A pickable object can detect the mouse pointer entering/leaving, and if the mouse is inside it, report input events. Requires at least one @collision_layer@ bit to be set.\nbindCollisionObject2D_set_pickable :: MethodBind\nbindCollisionObject2D_set_pickable\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_pickable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this object is pickable. A pickable object can detect the mouse pointer entering/leaving, and if the mouse is inside it, report input events. Requires at least one @collision_layer@ bit to be set.\nset_pickable ::\n               (CollisionObject2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_pickable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject2D_set_pickable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"set_pickable\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionObject2D.set_pickable\n\n{-# NOINLINE bindCollisionObject2D_shape_find_owner #-}\n\n-- | Returns the @owner_id@ of the given shape.\nbindCollisionObject2D_shape_find_owner :: MethodBind\nbindCollisionObject2D_shape_find_owner\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"shape_find_owner\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @owner_id@ of the given shape.\nshape_find_owner ::\n                   (CollisionObject2D :< cls, Object :< cls) => cls -> Int -> IO Int\nshape_find_owner cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject2D_shape_find_owner\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"shape_find_owner\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.CollisionObject2D.shape_find_owner\n\n{-# NOINLINE bindCollisionObject2D_shape_owner_add_shape #-}\n\n-- | Adds a @Shape2D@ to the shape owner.\nbindCollisionObject2D_shape_owner_add_shape :: MethodBind\nbindCollisionObject2D_shape_owner_add_shape\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_add_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @Shape2D@ to the shape owner.\nshape_owner_add_shape ::\n                        (CollisionObject2D :< cls, Object :< cls) =>\n                        cls -> Int -> Shape2D -> IO ()\nshape_owner_add_shape cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject2D_shape_owner_add_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"shape_owner_add_shape\"\n           '[Int, Shape2D]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionObject2D.shape_owner_add_shape\n\n{-# NOINLINE bindCollisionObject2D_shape_owner_clear_shapes #-}\n\n-- | Removes all shapes from the shape owner.\nbindCollisionObject2D_shape_owner_clear_shapes :: MethodBind\nbindCollisionObject2D_shape_owner_clear_shapes\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_clear_shapes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all shapes from the shape owner.\nshape_owner_clear_shapes ::\n                           (CollisionObject2D :< cls, Object :< cls) => cls -> Int -> IO ()\nshape_owner_clear_shapes cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionObject2D_shape_owner_clear_shapes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"shape_owner_clear_shapes\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionObject2D.shape_owner_clear_shapes\n\n{-# NOINLINE bindCollisionObject2D_shape_owner_get_owner #-}\n\n-- | Returns the parent object of the given shape owner.\nbindCollisionObject2D_shape_owner_get_owner :: MethodBind\nbindCollisionObject2D_shape_owner_get_owner\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_get_owner\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the parent object of the given shape owner.\nshape_owner_get_owner ::\n                        (CollisionObject2D :< cls, Object :< cls) =>\n                        cls -> Int -> IO Object\nshape_owner_get_owner cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject2D_shape_owner_get_owner\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"shape_owner_get_owner\"\n           '[Int]\n           (IO Object)\n         where\n        nodeMethod = Godot.Core.CollisionObject2D.shape_owner_get_owner\n\n{-# NOINLINE bindCollisionObject2D_shape_owner_get_shape #-}\n\n-- | Returns the @Shape2D@ with the given id from the given shape owner.\nbindCollisionObject2D_shape_owner_get_shape :: MethodBind\nbindCollisionObject2D_shape_owner_get_shape\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_get_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Shape2D@ with the given id from the given shape owner.\nshape_owner_get_shape ::\n                        (CollisionObject2D :< cls, Object :< cls) =>\n                        cls -> Int -> Int -> IO Shape2D\nshape_owner_get_shape cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionObject2D_shape_owner_get_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"shape_owner_get_shape\"\n           '[Int, Int]\n           (IO Shape2D)\n         where\n        nodeMethod = Godot.Core.CollisionObject2D.shape_owner_get_shape\n\n{-# NOINLINE bindCollisionObject2D_shape_owner_get_shape_count #-}\n\n-- | Returns the number of shapes the given shape owner contains.\nbindCollisionObject2D_shape_owner_get_shape_count :: MethodBind\nbindCollisionObject2D_shape_owner_get_shape_count\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_get_shape_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of shapes the given shape owner contains.\nshape_owner_get_shape_count ::\n                              (CollisionObject2D :< cls, Object :< cls) => cls -> Int -> IO Int\nshape_owner_get_shape_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionObject2D_shape_owner_get_shape_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"shape_owner_get_shape_count\"\n           '[Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.CollisionObject2D.shape_owner_get_shape_count\n\n{-# NOINLINE bindCollisionObject2D_shape_owner_get_shape_index #-}\n\n-- | Returns the child index of the @Shape2D@ with the given id from the given shape owner.\nbindCollisionObject2D_shape_owner_get_shape_index :: MethodBind\nbindCollisionObject2D_shape_owner_get_shape_index\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_get_shape_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the child index of the @Shape2D@ with the given id from the given shape owner.\nshape_owner_get_shape_index ::\n                              (CollisionObject2D :< cls, Object :< cls) =>\n                              cls -> Int -> Int -> IO Int\nshape_owner_get_shape_index cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionObject2D_shape_owner_get_shape_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"shape_owner_get_shape_index\"\n           '[Int, Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.CollisionObject2D.shape_owner_get_shape_index\n\n{-# NOINLINE bindCollisionObject2D_shape_owner_get_transform #-}\n\n-- | Returns the shape owner's @Transform2D@.\nbindCollisionObject2D_shape_owner_get_transform :: MethodBind\nbindCollisionObject2D_shape_owner_get_transform\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_get_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the shape owner's @Transform2D@.\nshape_owner_get_transform ::\n                            (CollisionObject2D :< cls, Object :< cls) =>\n                            cls -> Int -> IO Transform2d\nshape_owner_get_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionObject2D_shape_owner_get_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"shape_owner_get_transform\"\n           '[Int]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.CollisionObject2D.shape_owner_get_transform\n\n{-# NOINLINE bindCollisionObject2D_shape_owner_remove_shape #-}\n\n-- | Removes a shape from the given shape owner.\nbindCollisionObject2D_shape_owner_remove_shape :: MethodBind\nbindCollisionObject2D_shape_owner_remove_shape\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_remove_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a shape from the given shape owner.\nshape_owner_remove_shape ::\n                           (CollisionObject2D :< cls, Object :< cls) =>\n                           cls -> Int -> Int -> IO ()\nshape_owner_remove_shape cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionObject2D_shape_owner_remove_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"shape_owner_remove_shape\"\n           '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionObject2D.shape_owner_remove_shape\n\n{-# NOINLINE bindCollisionObject2D_shape_owner_set_disabled #-}\n\n-- | If @true@, disables the given shape owner.\nbindCollisionObject2D_shape_owner_set_disabled :: MethodBind\nbindCollisionObject2D_shape_owner_set_disabled\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_set_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, disables the given shape owner.\nshape_owner_set_disabled ::\n                           (CollisionObject2D :< cls, Object :< cls) =>\n                           cls -> Int -> Bool -> IO ()\nshape_owner_set_disabled cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionObject2D_shape_owner_set_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"shape_owner_set_disabled\"\n           '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionObject2D.shape_owner_set_disabled\n\n{-# NOINLINE bindCollisionObject2D_shape_owner_set_one_way_collision\n             #-}\n\n-- | If @enable@ is @true@, collisions for the shape owner originating from this @CollisionObject2D@ will not be reported to collided with @CollisionObject2D@s.\nbindCollisionObject2D_shape_owner_set_one_way_collision ::\n                                                        MethodBind\nbindCollisionObject2D_shape_owner_set_one_way_collision\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_set_one_way_collision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @enable@ is @true@, collisions for the shape owner originating from this @CollisionObject2D@ will not be reported to collided with @CollisionObject2D@s.\nshape_owner_set_one_way_collision ::\n                                    (CollisionObject2D :< cls, Object :< cls) =>\n                                    cls -> Int -> Bool -> IO ()\nshape_owner_set_one_way_collision cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionObject2D_shape_owner_set_one_way_collision\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D\n           \"shape_owner_set_one_way_collision\"\n           '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.CollisionObject2D.shape_owner_set_one_way_collision\n\n{-# NOINLINE bindCollisionObject2D_shape_owner_set_one_way_collision_margin\n             #-}\n\n-- | Sets the @one_way_collision_margin@ of the shape owner identified by given @owner_id@ to @margin@ pixels.\nbindCollisionObject2D_shape_owner_set_one_way_collision_margin ::\n                                                               MethodBind\nbindCollisionObject2D_shape_owner_set_one_way_collision_margin\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_set_one_way_collision_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @one_way_collision_margin@ of the shape owner identified by given @owner_id@ to @margin@ pixels.\nshape_owner_set_one_way_collision_margin ::\n                                           (CollisionObject2D :< cls, Object :< cls) =>\n                                           cls -> Int -> Float -> IO ()\nshape_owner_set_one_way_collision_margin cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionObject2D_shape_owner_set_one_way_collision_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D\n           \"shape_owner_set_one_way_collision_margin\"\n           '[Int, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.CollisionObject2D.shape_owner_set_one_way_collision_margin\n\n{-# NOINLINE bindCollisionObject2D_shape_owner_set_transform #-}\n\n-- | Sets the @Transform2D@ of the given shape owner.\nbindCollisionObject2D_shape_owner_set_transform :: MethodBind\nbindCollisionObject2D_shape_owner_set_transform\n  = unsafePerformIO $\n      withCString \"CollisionObject2D\" $\n        \\ clsNamePtr ->\n          withCString \"shape_owner_set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Transform2D@ of the given shape owner.\nshape_owner_set_transform ::\n                            (CollisionObject2D :< cls, Object :< cls) =>\n                            cls -> Int -> Transform2d -> IO ()\nshape_owner_set_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionObject2D_shape_owner_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionObject2D \"shape_owner_set_transform\"\n           '[Int, Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionObject2D.shape_owner_set_transform"
  },
  {
    "path": "src/Godot/Core/CollisionPolygon.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CollisionPolygon\n       (Godot.Core.CollisionPolygon._is_editable_3d_polygon,\n        Godot.Core.CollisionPolygon.get_depth,\n        Godot.Core.CollisionPolygon.get_polygon,\n        Godot.Core.CollisionPolygon.is_disabled,\n        Godot.Core.CollisionPolygon.set_depth,\n        Godot.Core.CollisionPolygon.set_disabled,\n        Godot.Core.CollisionPolygon.set_polygon)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\ninstance NodeProperty CollisionPolygon \"depth\" Float 'False where\n        nodeProperty = (get_depth, wrapDroppingSetter set_depth, Nothing)\n\ninstance NodeProperty CollisionPolygon \"disabled\" Bool 'False where\n        nodeProperty\n          = (is_disabled, wrapDroppingSetter set_disabled, Nothing)\n\ninstance NodeProperty CollisionPolygon \"polygon\" PoolVector2Array\n           'False\n         where\n        nodeProperty\n          = (get_polygon, wrapDroppingSetter set_polygon, Nothing)\n\n{-# NOINLINE bindCollisionPolygon__is_editable_3d_polygon #-}\n\nbindCollisionPolygon__is_editable_3d_polygon :: MethodBind\nbindCollisionPolygon__is_editable_3d_polygon\n  = unsafePerformIO $\n      withCString \"CollisionPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"_is_editable_3d_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_is_editable_3d_polygon ::\n                          (CollisionPolygon :< cls, Object :< cls) => cls -> IO Bool\n_is_editable_3d_polygon cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionPolygon__is_editable_3d_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionPolygon \"_is_editable_3d_polygon\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.CollisionPolygon._is_editable_3d_polygon\n\n{-# NOINLINE bindCollisionPolygon_get_depth #-}\n\n-- | Length that the resulting collision extends in either direction perpendicular to its polygon.\nbindCollisionPolygon_get_depth :: MethodBind\nbindCollisionPolygon_get_depth\n  = unsafePerformIO $\n      withCString \"CollisionPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"get_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Length that the resulting collision extends in either direction perpendicular to its polygon.\nget_depth ::\n            (CollisionPolygon :< cls, Object :< cls) => cls -> IO Float\nget_depth cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionPolygon_get_depth (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionPolygon \"get_depth\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.CollisionPolygon.get_depth\n\n{-# NOINLINE bindCollisionPolygon_get_polygon #-}\n\n-- | Array of vertices which define the polygon.\n--   \t\t\t__Note:__ The returned value is a copy of the original. Methods which mutate the size or properties of the return value will not impact the original polygon. To change properties of the polygon, assign it to a temporary variable and make changes before reassigning the @polygon@ member.\nbindCollisionPolygon_get_polygon :: MethodBind\nbindCollisionPolygon_get_polygon\n  = unsafePerformIO $\n      withCString \"CollisionPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"get_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Array of vertices which define the polygon.\n--   \t\t\t__Note:__ The returned value is a copy of the original. Methods which mutate the size or properties of the return value will not impact the original polygon. To change properties of the polygon, assign it to a temporary variable and make changes before reassigning the @polygon@ member.\nget_polygon ::\n              (CollisionPolygon :< cls, Object :< cls) =>\n              cls -> IO PoolVector2Array\nget_polygon cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionPolygon_get_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionPolygon \"get_polygon\" '[]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.CollisionPolygon.get_polygon\n\n{-# NOINLINE bindCollisionPolygon_is_disabled #-}\n\n-- | If @true@, no collision will be produced.\nbindCollisionPolygon_is_disabled :: MethodBind\nbindCollisionPolygon_is_disabled\n  = unsafePerformIO $\n      withCString \"CollisionPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"is_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, no collision will be produced.\nis_disabled ::\n              (CollisionPolygon :< cls, Object :< cls) => cls -> IO Bool\nis_disabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionPolygon_is_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionPolygon \"is_disabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CollisionPolygon.is_disabled\n\n{-# NOINLINE bindCollisionPolygon_set_depth #-}\n\n-- | Length that the resulting collision extends in either direction perpendicular to its polygon.\nbindCollisionPolygon_set_depth :: MethodBind\nbindCollisionPolygon_set_depth\n  = unsafePerformIO $\n      withCString \"CollisionPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"set_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Length that the resulting collision extends in either direction perpendicular to its polygon.\nset_depth ::\n            (CollisionPolygon :< cls, Object :< cls) => cls -> Float -> IO ()\nset_depth cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionPolygon_set_depth (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionPolygon \"set_depth\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionPolygon.set_depth\n\n{-# NOINLINE bindCollisionPolygon_set_disabled #-}\n\n-- | If @true@, no collision will be produced.\nbindCollisionPolygon_set_disabled :: MethodBind\nbindCollisionPolygon_set_disabled\n  = unsafePerformIO $\n      withCString \"CollisionPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"set_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, no collision will be produced.\nset_disabled ::\n               (CollisionPolygon :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionPolygon_set_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionPolygon \"set_disabled\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionPolygon.set_disabled\n\n{-# NOINLINE bindCollisionPolygon_set_polygon #-}\n\n-- | Array of vertices which define the polygon.\n--   \t\t\t__Note:__ The returned value is a copy of the original. Methods which mutate the size or properties of the return value will not impact the original polygon. To change properties of the polygon, assign it to a temporary variable and make changes before reassigning the @polygon@ member.\nbindCollisionPolygon_set_polygon :: MethodBind\nbindCollisionPolygon_set_polygon\n  = unsafePerformIO $\n      withCString \"CollisionPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"set_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Array of vertices which define the polygon.\n--   \t\t\t__Note:__ The returned value is a copy of the original. Methods which mutate the size or properties of the return value will not impact the original polygon. To change properties of the polygon, assign it to a temporary variable and make changes before reassigning the @polygon@ member.\nset_polygon ::\n              (CollisionPolygon :< cls, Object :< cls) =>\n              cls -> PoolVector2Array -> IO ()\nset_polygon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionPolygon_set_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionPolygon \"set_polygon\"\n           '[PoolVector2Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionPolygon.set_polygon"
  },
  {
    "path": "src/Godot/Core/CollisionPolygon2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CollisionPolygon2D\n       (Godot.Core.CollisionPolygon2D._BUILD_SOLIDS,\n        Godot.Core.CollisionPolygon2D._BUILD_SEGMENTS,\n        Godot.Core.CollisionPolygon2D.get_build_mode,\n        Godot.Core.CollisionPolygon2D.get_one_way_collision_margin,\n        Godot.Core.CollisionPolygon2D.get_polygon,\n        Godot.Core.CollisionPolygon2D.is_disabled,\n        Godot.Core.CollisionPolygon2D.is_one_way_collision_enabled,\n        Godot.Core.CollisionPolygon2D.set_build_mode,\n        Godot.Core.CollisionPolygon2D.set_disabled,\n        Godot.Core.CollisionPolygon2D.set_one_way_collision,\n        Godot.Core.CollisionPolygon2D.set_one_way_collision_margin,\n        Godot.Core.CollisionPolygon2D.set_polygon)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\n_BUILD_SOLIDS :: Int\n_BUILD_SOLIDS = 0\n\n_BUILD_SEGMENTS :: Int\n_BUILD_SEGMENTS = 1\n\ninstance NodeProperty CollisionPolygon2D \"build_mode\" Int 'False\n         where\n        nodeProperty\n          = (get_build_mode, wrapDroppingSetter set_build_mode, Nothing)\n\ninstance NodeProperty CollisionPolygon2D \"disabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_disabled, wrapDroppingSetter set_disabled, Nothing)\n\ninstance NodeProperty CollisionPolygon2D \"one_way_collision\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_one_way_collision_enabled,\n             wrapDroppingSetter set_one_way_collision, Nothing)\n\ninstance NodeProperty CollisionPolygon2D \"one_way_collision_margin\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_one_way_collision_margin,\n             wrapDroppingSetter set_one_way_collision_margin, Nothing)\n\ninstance NodeProperty CollisionPolygon2D \"polygon\" PoolVector2Array\n           'False\n         where\n        nodeProperty\n          = (get_polygon, wrapDroppingSetter set_polygon, Nothing)\n\n{-# NOINLINE bindCollisionPolygon2D_get_build_mode #-}\n\n-- | Collision build mode. Use one of the @enum BuildMode@ constants.\nbindCollisionPolygon2D_get_build_mode :: MethodBind\nbindCollisionPolygon2D_get_build_mode\n  = unsafePerformIO $\n      withCString \"CollisionPolygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_build_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Collision build mode. Use one of the @enum BuildMode@ constants.\nget_build_mode ::\n                 (CollisionPolygon2D :< cls, Object :< cls) => cls -> IO Int\nget_build_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionPolygon2D_get_build_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionPolygon2D \"get_build_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.CollisionPolygon2D.get_build_mode\n\n{-# NOINLINE bindCollisionPolygon2D_get_one_way_collision_margin\n             #-}\n\n-- | The margin used for one-way collision (in pixels). Higher values will make the shape thicker, and work better for colliders that enter the polygon at a high velocity.\nbindCollisionPolygon2D_get_one_way_collision_margin :: MethodBind\nbindCollisionPolygon2D_get_one_way_collision_margin\n  = unsafePerformIO $\n      withCString \"CollisionPolygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_one_way_collision_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The margin used for one-way collision (in pixels). Higher values will make the shape thicker, and work better for colliders that enter the polygon at a high velocity.\nget_one_way_collision_margin ::\n                               (CollisionPolygon2D :< cls, Object :< cls) => cls -> IO Float\nget_one_way_collision_margin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionPolygon2D_get_one_way_collision_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionPolygon2D\n           \"get_one_way_collision_margin\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.CollisionPolygon2D.get_one_way_collision_margin\n\n{-# NOINLINE bindCollisionPolygon2D_get_polygon #-}\n\n-- | The polygon's list of vertices. The final point will be connected to the first. The returned value is a clone of the @PoolVector2Array@, not a reference.\nbindCollisionPolygon2D_get_polygon :: MethodBind\nbindCollisionPolygon2D_get_polygon\n  = unsafePerformIO $\n      withCString \"CollisionPolygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The polygon's list of vertices. The final point will be connected to the first. The returned value is a clone of the @PoolVector2Array@, not a reference.\nget_polygon ::\n              (CollisionPolygon2D :< cls, Object :< cls) =>\n              cls -> IO PoolVector2Array\nget_polygon cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionPolygon2D_get_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionPolygon2D \"get_polygon\" '[]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.CollisionPolygon2D.get_polygon\n\n{-# NOINLINE bindCollisionPolygon2D_is_disabled #-}\n\n-- | If @true@, no collisions will be detected.\nbindCollisionPolygon2D_is_disabled :: MethodBind\nbindCollisionPolygon2D_is_disabled\n  = unsafePerformIO $\n      withCString \"CollisionPolygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, no collisions will be detected.\nis_disabled ::\n              (CollisionPolygon2D :< cls, Object :< cls) => cls -> IO Bool\nis_disabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionPolygon2D_is_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionPolygon2D \"is_disabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CollisionPolygon2D.is_disabled\n\n{-# NOINLINE bindCollisionPolygon2D_is_one_way_collision_enabled\n             #-}\n\n-- | If @true@, only edges that face up, relative to @CollisionPolygon2D@'s rotation, will collide with other objects.\nbindCollisionPolygon2D_is_one_way_collision_enabled :: MethodBind\nbindCollisionPolygon2D_is_one_way_collision_enabled\n  = unsafePerformIO $\n      withCString \"CollisionPolygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_one_way_collision_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, only edges that face up, relative to @CollisionPolygon2D@'s rotation, will collide with other objects.\nis_one_way_collision_enabled ::\n                               (CollisionPolygon2D :< cls, Object :< cls) => cls -> IO Bool\nis_one_way_collision_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionPolygon2D_is_one_way_collision_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionPolygon2D\n           \"is_one_way_collision_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.CollisionPolygon2D.is_one_way_collision_enabled\n\n{-# NOINLINE bindCollisionPolygon2D_set_build_mode #-}\n\n-- | Collision build mode. Use one of the @enum BuildMode@ constants.\nbindCollisionPolygon2D_set_build_mode :: MethodBind\nbindCollisionPolygon2D_set_build_mode\n  = unsafePerformIO $\n      withCString \"CollisionPolygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_build_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Collision build mode. Use one of the @enum BuildMode@ constants.\nset_build_mode ::\n                 (CollisionPolygon2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_build_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionPolygon2D_set_build_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionPolygon2D \"set_build_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionPolygon2D.set_build_mode\n\n{-# NOINLINE bindCollisionPolygon2D_set_disabled #-}\n\n-- | If @true@, no collisions will be detected.\nbindCollisionPolygon2D_set_disabled :: MethodBind\nbindCollisionPolygon2D_set_disabled\n  = unsafePerformIO $\n      withCString \"CollisionPolygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, no collisions will be detected.\nset_disabled ::\n               (CollisionPolygon2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionPolygon2D_set_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionPolygon2D \"set_disabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionPolygon2D.set_disabled\n\n{-# NOINLINE bindCollisionPolygon2D_set_one_way_collision #-}\n\n-- | If @true@, only edges that face up, relative to @CollisionPolygon2D@'s rotation, will collide with other objects.\nbindCollisionPolygon2D_set_one_way_collision :: MethodBind\nbindCollisionPolygon2D_set_one_way_collision\n  = unsafePerformIO $\n      withCString \"CollisionPolygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_one_way_collision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, only edges that face up, relative to @CollisionPolygon2D@'s rotation, will collide with other objects.\nset_one_way_collision ::\n                        (CollisionPolygon2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_one_way_collision cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionPolygon2D_set_one_way_collision\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionPolygon2D \"set_one_way_collision\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionPolygon2D.set_one_way_collision\n\n{-# NOINLINE bindCollisionPolygon2D_set_one_way_collision_margin\n             #-}\n\n-- | The margin used for one-way collision (in pixels). Higher values will make the shape thicker, and work better for colliders that enter the polygon at a high velocity.\nbindCollisionPolygon2D_set_one_way_collision_margin :: MethodBind\nbindCollisionPolygon2D_set_one_way_collision_margin\n  = unsafePerformIO $\n      withCString \"CollisionPolygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_one_way_collision_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The margin used for one-way collision (in pixels). Higher values will make the shape thicker, and work better for colliders that enter the polygon at a high velocity.\nset_one_way_collision_margin ::\n                               (CollisionPolygon2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_one_way_collision_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionPolygon2D_set_one_way_collision_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionPolygon2D\n           \"set_one_way_collision_margin\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.CollisionPolygon2D.set_one_way_collision_margin\n\n{-# NOINLINE bindCollisionPolygon2D_set_polygon #-}\n\n-- | The polygon's list of vertices. The final point will be connected to the first. The returned value is a clone of the @PoolVector2Array@, not a reference.\nbindCollisionPolygon2D_set_polygon :: MethodBind\nbindCollisionPolygon2D_set_polygon\n  = unsafePerformIO $\n      withCString \"CollisionPolygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The polygon's list of vertices. The final point will be connected to the first. The returned value is a clone of the @PoolVector2Array@, not a reference.\nset_polygon ::\n              (CollisionPolygon2D :< cls, Object :< cls) =>\n              cls -> PoolVector2Array -> IO ()\nset_polygon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionPolygon2D_set_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionPolygon2D \"set_polygon\"\n           '[PoolVector2Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionPolygon2D.set_polygon"
  },
  {
    "path": "src/Godot/Core/CollisionShape.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CollisionShape\n       (Godot.Core.CollisionShape._shape_changed,\n        Godot.Core.CollisionShape._update_debug_shape,\n        Godot.Core.CollisionShape.get_shape,\n        Godot.Core.CollisionShape.is_disabled,\n        Godot.Core.CollisionShape.make_convex_from_brothers,\n        Godot.Core.CollisionShape.resource_changed,\n        Godot.Core.CollisionShape.set_disabled,\n        Godot.Core.CollisionShape.set_shape)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\ninstance NodeProperty CollisionShape \"disabled\" Bool 'False where\n        nodeProperty\n          = (is_disabled, wrapDroppingSetter set_disabled, Nothing)\n\ninstance NodeProperty CollisionShape \"shape\" Shape 'False where\n        nodeProperty = (get_shape, wrapDroppingSetter set_shape, Nothing)\n\n{-# NOINLINE bindCollisionShape__shape_changed #-}\n\nbindCollisionShape__shape_changed :: MethodBind\nbindCollisionShape__shape_changed\n  = unsafePerformIO $\n      withCString \"CollisionShape\" $\n        \\ clsNamePtr ->\n          withCString \"_shape_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_shape_changed ::\n                 (CollisionShape :< cls, Object :< cls) => cls -> IO ()\n_shape_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionShape__shape_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionShape \"_shape_changed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionShape._shape_changed\n\n{-# NOINLINE bindCollisionShape__update_debug_shape #-}\n\nbindCollisionShape__update_debug_shape :: MethodBind\nbindCollisionShape__update_debug_shape\n  = unsafePerformIO $\n      withCString \"CollisionShape\" $\n        \\ clsNamePtr ->\n          withCString \"_update_debug_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_debug_shape ::\n                      (CollisionShape :< cls, Object :< cls) => cls -> IO ()\n_update_debug_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionShape__update_debug_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionShape \"_update_debug_shape\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionShape._update_debug_shape\n\n{-# NOINLINE bindCollisionShape_get_shape #-}\n\n-- | The actual shape owned by this collision shape.\nbindCollisionShape_get_shape :: MethodBind\nbindCollisionShape_get_shape\n  = unsafePerformIO $\n      withCString \"CollisionShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The actual shape owned by this collision shape.\nget_shape ::\n            (CollisionShape :< cls, Object :< cls) => cls -> IO Shape\nget_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionShape_get_shape (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionShape \"get_shape\" '[] (IO Shape) where\n        nodeMethod = Godot.Core.CollisionShape.get_shape\n\n{-# NOINLINE bindCollisionShape_is_disabled #-}\n\n-- | A disabled collision shape has no effect in the world.\nbindCollisionShape_is_disabled :: MethodBind\nbindCollisionShape_is_disabled\n  = unsafePerformIO $\n      withCString \"CollisionShape\" $\n        \\ clsNamePtr ->\n          withCString \"is_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A disabled collision shape has no effect in the world.\nis_disabled ::\n              (CollisionShape :< cls, Object :< cls) => cls -> IO Bool\nis_disabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionShape_is_disabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionShape \"is_disabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CollisionShape.is_disabled\n\n{-# NOINLINE bindCollisionShape_make_convex_from_brothers #-}\n\n-- | Sets the collision shape's shape to the addition of all its convexed @MeshInstance@ siblings geometry.\nbindCollisionShape_make_convex_from_brothers :: MethodBind\nbindCollisionShape_make_convex_from_brothers\n  = unsafePerformIO $\n      withCString \"CollisionShape\" $\n        \\ clsNamePtr ->\n          withCString \"make_convex_from_brothers\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the collision shape's shape to the addition of all its convexed @MeshInstance@ siblings geometry.\nmake_convex_from_brothers ::\n                            (CollisionShape :< cls, Object :< cls) => cls -> IO ()\nmake_convex_from_brothers cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionShape_make_convex_from_brothers\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionShape \"make_convex_from_brothers\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionShape.make_convex_from_brothers\n\n{-# NOINLINE bindCollisionShape_resource_changed #-}\n\n-- | If this method exists within a script it will be called whenever the shape resource has been modified.\nbindCollisionShape_resource_changed :: MethodBind\nbindCollisionShape_resource_changed\n  = unsafePerformIO $\n      withCString \"CollisionShape\" $\n        \\ clsNamePtr ->\n          withCString \"resource_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If this method exists within a script it will be called whenever the shape resource has been modified.\nresource_changed ::\n                   (CollisionShape :< cls, Object :< cls) => cls -> Resource -> IO ()\nresource_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionShape_resource_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionShape \"resource_changed\" '[Resource]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionShape.resource_changed\n\n{-# NOINLINE bindCollisionShape_set_disabled #-}\n\n-- | A disabled collision shape has no effect in the world.\nbindCollisionShape_set_disabled :: MethodBind\nbindCollisionShape_set_disabled\n  = unsafePerformIO $\n      withCString \"CollisionShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A disabled collision shape has no effect in the world.\nset_disabled ::\n               (CollisionShape :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionShape_set_disabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionShape \"set_disabled\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionShape.set_disabled\n\n{-# NOINLINE bindCollisionShape_set_shape #-}\n\n-- | The actual shape owned by this collision shape.\nbindCollisionShape_set_shape :: MethodBind\nbindCollisionShape_set_shape\n  = unsafePerformIO $\n      withCString \"CollisionShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The actual shape owned by this collision shape.\nset_shape ::\n            (CollisionShape :< cls, Object :< cls) => cls -> Shape -> IO ()\nset_shape cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionShape_set_shape (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionShape \"set_shape\" '[Shape] (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionShape.set_shape"
  },
  {
    "path": "src/Godot/Core/CollisionShape2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CollisionShape2D\n       (Godot.Core.CollisionShape2D._shape_changed,\n        Godot.Core.CollisionShape2D.get_one_way_collision_margin,\n        Godot.Core.CollisionShape2D.get_shape,\n        Godot.Core.CollisionShape2D.is_disabled,\n        Godot.Core.CollisionShape2D.is_one_way_collision_enabled,\n        Godot.Core.CollisionShape2D.set_disabled,\n        Godot.Core.CollisionShape2D.set_one_way_collision,\n        Godot.Core.CollisionShape2D.set_one_way_collision_margin,\n        Godot.Core.CollisionShape2D.set_shape)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\ninstance NodeProperty CollisionShape2D \"disabled\" Bool 'False where\n        nodeProperty\n          = (is_disabled, wrapDroppingSetter set_disabled, Nothing)\n\ninstance NodeProperty CollisionShape2D \"one_way_collision\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_one_way_collision_enabled,\n             wrapDroppingSetter set_one_way_collision, Nothing)\n\ninstance NodeProperty CollisionShape2D \"one_way_collision_margin\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_one_way_collision_margin,\n             wrapDroppingSetter set_one_way_collision_margin, Nothing)\n\ninstance NodeProperty CollisionShape2D \"shape\" Shape2D 'False where\n        nodeProperty = (get_shape, wrapDroppingSetter set_shape, Nothing)\n\n{-# NOINLINE bindCollisionShape2D__shape_changed #-}\n\nbindCollisionShape2D__shape_changed :: MethodBind\nbindCollisionShape2D__shape_changed\n  = unsafePerformIO $\n      withCString \"CollisionShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"_shape_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_shape_changed ::\n                 (CollisionShape2D :< cls, Object :< cls) => cls -> IO ()\n_shape_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionShape2D__shape_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionShape2D \"_shape_changed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionShape2D._shape_changed\n\n{-# NOINLINE bindCollisionShape2D_get_one_way_collision_margin #-}\n\n-- | The margin used for one-way collision (in pixels). Higher values will make the shape thicker, and work better for colliders that enter the shape at a high velocity.\nbindCollisionShape2D_get_one_way_collision_margin :: MethodBind\nbindCollisionShape2D_get_one_way_collision_margin\n  = unsafePerformIO $\n      withCString \"CollisionShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_one_way_collision_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The margin used for one-way collision (in pixels). Higher values will make the shape thicker, and work better for colliders that enter the shape at a high velocity.\nget_one_way_collision_margin ::\n                               (CollisionShape2D :< cls, Object :< cls) => cls -> IO Float\nget_one_way_collision_margin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionShape2D_get_one_way_collision_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionShape2D \"get_one_way_collision_margin\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.CollisionShape2D.get_one_way_collision_margin\n\n{-# NOINLINE bindCollisionShape2D_get_shape #-}\n\n-- | The actual shape owned by this collision shape.\nbindCollisionShape2D_get_shape :: MethodBind\nbindCollisionShape2D_get_shape\n  = unsafePerformIO $\n      withCString \"CollisionShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The actual shape owned by this collision shape.\nget_shape ::\n            (CollisionShape2D :< cls, Object :< cls) => cls -> IO Shape2D\nget_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionShape2D_get_shape (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionShape2D \"get_shape\" '[] (IO Shape2D)\n         where\n        nodeMethod = Godot.Core.CollisionShape2D.get_shape\n\n{-# NOINLINE bindCollisionShape2D_is_disabled #-}\n\n-- | A disabled collision shape has no effect in the world. This property should be changed with @method Object.set_deferred@.\nbindCollisionShape2D_is_disabled :: MethodBind\nbindCollisionShape2D_is_disabled\n  = unsafePerformIO $\n      withCString \"CollisionShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A disabled collision shape has no effect in the world. This property should be changed with @method Object.set_deferred@.\nis_disabled ::\n              (CollisionShape2D :< cls, Object :< cls) => cls -> IO Bool\nis_disabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionShape2D_is_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionShape2D \"is_disabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.CollisionShape2D.is_disabled\n\n{-# NOINLINE bindCollisionShape2D_is_one_way_collision_enabled #-}\n\n-- | Sets whether this collision shape should only detect collision on one side (top or bottom).\nbindCollisionShape2D_is_one_way_collision_enabled :: MethodBind\nbindCollisionShape2D_is_one_way_collision_enabled\n  = unsafePerformIO $\n      withCString \"CollisionShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_one_way_collision_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether this collision shape should only detect collision on one side (top or bottom).\nis_one_way_collision_enabled ::\n                               (CollisionShape2D :< cls, Object :< cls) => cls -> IO Bool\nis_one_way_collision_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionShape2D_is_one_way_collision_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionShape2D \"is_one_way_collision_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.CollisionShape2D.is_one_way_collision_enabled\n\n{-# NOINLINE bindCollisionShape2D_set_disabled #-}\n\n-- | A disabled collision shape has no effect in the world. This property should be changed with @method Object.set_deferred@.\nbindCollisionShape2D_set_disabled :: MethodBind\nbindCollisionShape2D_set_disabled\n  = unsafePerformIO $\n      withCString \"CollisionShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A disabled collision shape has no effect in the world. This property should be changed with @method Object.set_deferred@.\nset_disabled ::\n               (CollisionShape2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionShape2D_set_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionShape2D \"set_disabled\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionShape2D.set_disabled\n\n{-# NOINLINE bindCollisionShape2D_set_one_way_collision #-}\n\n-- | Sets whether this collision shape should only detect collision on one side (top or bottom).\nbindCollisionShape2D_set_one_way_collision :: MethodBind\nbindCollisionShape2D_set_one_way_collision\n  = unsafePerformIO $\n      withCString \"CollisionShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_one_way_collision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether this collision shape should only detect collision on one side (top or bottom).\nset_one_way_collision ::\n                        (CollisionShape2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_one_way_collision cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionShape2D_set_one_way_collision\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionShape2D \"set_one_way_collision\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionShape2D.set_one_way_collision\n\n{-# NOINLINE bindCollisionShape2D_set_one_way_collision_margin #-}\n\n-- | The margin used for one-way collision (in pixels). Higher values will make the shape thicker, and work better for colliders that enter the shape at a high velocity.\nbindCollisionShape2D_set_one_way_collision_margin :: MethodBind\nbindCollisionShape2D_set_one_way_collision_margin\n  = unsafePerformIO $\n      withCString \"CollisionShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_one_way_collision_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The margin used for one-way collision (in pixels). Higher values will make the shape thicker, and work better for colliders that enter the shape at a high velocity.\nset_one_way_collision_margin ::\n                               (CollisionShape2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_one_way_collision_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindCollisionShape2D_set_one_way_collision_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionShape2D \"set_one_way_collision_margin\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.CollisionShape2D.set_one_way_collision_margin\n\n{-# NOINLINE bindCollisionShape2D_set_shape #-}\n\n-- | The actual shape owned by this collision shape.\nbindCollisionShape2D_set_shape :: MethodBind\nbindCollisionShape2D_set_shape\n  = unsafePerformIO $\n      withCString \"CollisionShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The actual shape owned by this collision shape.\nset_shape ::\n            (CollisionShape2D :< cls, Object :< cls) => cls -> Shape2D -> IO ()\nset_shape cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCollisionShape2D_set_shape (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CollisionShape2D \"set_shape\" '[Shape2D] (IO ())\n         where\n        nodeMethod = Godot.Core.CollisionShape2D.set_shape"
  },
  {
    "path": "src/Godot/Core/ColorPicker.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ColorPicker\n       (Godot.Core.ColorPicker.sig_color_changed,\n        Godot.Core.ColorPicker.sig_preset_added,\n        Godot.Core.ColorPicker.sig_preset_removed,\n        Godot.Core.ColorPicker._add_preset_pressed,\n        Godot.Core.ColorPicker._focus_enter,\n        Godot.Core.ColorPicker._focus_exit,\n        Godot.Core.ColorPicker._hsv_draw,\n        Godot.Core.ColorPicker._html_entered,\n        Godot.Core.ColorPicker._html_focus_exit,\n        Godot.Core.ColorPicker._preset_input,\n        Godot.Core.ColorPicker._sample_draw,\n        Godot.Core.ColorPicker._screen_input,\n        Godot.Core.ColorPicker._screen_pick_pressed,\n        Godot.Core.ColorPicker._text_type_toggled,\n        Godot.Core.ColorPicker._update_presets,\n        Godot.Core.ColorPicker._uv_input,\n        Godot.Core.ColorPicker._value_changed,\n        Godot.Core.ColorPicker._w_input, Godot.Core.ColorPicker.add_preset,\n        Godot.Core.ColorPicker.are_presets_enabled,\n        Godot.Core.ColorPicker.are_presets_visible,\n        Godot.Core.ColorPicker.erase_preset,\n        Godot.Core.ColorPicker.get_pick_color,\n        Godot.Core.ColorPicker.get_presets,\n        Godot.Core.ColorPicker.is_deferred_mode,\n        Godot.Core.ColorPicker.is_editing_alpha,\n        Godot.Core.ColorPicker.is_hsv_mode,\n        Godot.Core.ColorPicker.is_raw_mode,\n        Godot.Core.ColorPicker.set_deferred_mode,\n        Godot.Core.ColorPicker.set_edit_alpha,\n        Godot.Core.ColorPicker.set_hsv_mode,\n        Godot.Core.ColorPicker.set_pick_color,\n        Godot.Core.ColorPicker.set_presets_enabled,\n        Godot.Core.ColorPicker.set_presets_visible,\n        Godot.Core.ColorPicker.set_raw_mode)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.BoxContainer()\n\n-- | Emitted when the color is changed.\nsig_color_changed :: Godot.Internal.Dispatch.Signal ColorPicker\nsig_color_changed = Godot.Internal.Dispatch.Signal \"color_changed\"\n\ninstance NodeSignal ColorPicker \"color_changed\" '[Color]\n\n-- | Emitted when a preset is added.\nsig_preset_added :: Godot.Internal.Dispatch.Signal ColorPicker\nsig_preset_added = Godot.Internal.Dispatch.Signal \"preset_added\"\n\ninstance NodeSignal ColorPicker \"preset_added\" '[Color]\n\n-- | Emitted when a preset is removed.\nsig_preset_removed :: Godot.Internal.Dispatch.Signal ColorPicker\nsig_preset_removed\n  = Godot.Internal.Dispatch.Signal \"preset_removed\"\n\ninstance NodeSignal ColorPicker \"preset_removed\" '[Color]\n\ninstance NodeProperty ColorPicker \"color\" Color 'False where\n        nodeProperty\n          = (get_pick_color, wrapDroppingSetter set_pick_color, Nothing)\n\ninstance NodeProperty ColorPicker \"deferred_mode\" Bool 'False where\n        nodeProperty\n          = (is_deferred_mode, wrapDroppingSetter set_deferred_mode, Nothing)\n\ninstance NodeProperty ColorPicker \"edit_alpha\" Bool 'False where\n        nodeProperty\n          = (is_editing_alpha, wrapDroppingSetter set_edit_alpha, Nothing)\n\ninstance NodeProperty ColorPicker \"hsv_mode\" Bool 'False where\n        nodeProperty\n          = (is_hsv_mode, wrapDroppingSetter set_hsv_mode, Nothing)\n\ninstance NodeProperty ColorPicker \"presets_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (are_presets_enabled, wrapDroppingSetter set_presets_enabled,\n             Nothing)\n\ninstance NodeProperty ColorPicker \"presets_visible\" Bool 'False\n         where\n        nodeProperty\n          = (are_presets_visible, wrapDroppingSetter set_presets_visible,\n             Nothing)\n\ninstance NodeProperty ColorPicker \"raw_mode\" Bool 'False where\n        nodeProperty\n          = (is_raw_mode, wrapDroppingSetter set_raw_mode, Nothing)\n\n{-# NOINLINE bindColorPicker__add_preset_pressed #-}\n\nbindColorPicker__add_preset_pressed :: MethodBind\nbindColorPicker__add_preset_pressed\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"_add_preset_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_add_preset_pressed ::\n                      (ColorPicker :< cls, Object :< cls) => cls -> IO ()\n_add_preset_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker__add_preset_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"_add_preset_pressed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker._add_preset_pressed\n\n{-# NOINLINE bindColorPicker__focus_enter #-}\n\nbindColorPicker__focus_enter :: MethodBind\nbindColorPicker__focus_enter\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"_focus_enter\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_focus_enter :: (ColorPicker :< cls, Object :< cls) => cls -> IO ()\n_focus_enter cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker__focus_enter (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"_focus_enter\" '[] (IO ()) where\n        nodeMethod = Godot.Core.ColorPicker._focus_enter\n\n{-# NOINLINE bindColorPicker__focus_exit #-}\n\nbindColorPicker__focus_exit :: MethodBind\nbindColorPicker__focus_exit\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"_focus_exit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_focus_exit :: (ColorPicker :< cls, Object :< cls) => cls -> IO ()\n_focus_exit cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker__focus_exit (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"_focus_exit\" '[] (IO ()) where\n        nodeMethod = Godot.Core.ColorPicker._focus_exit\n\n{-# NOINLINE bindColorPicker__hsv_draw #-}\n\nbindColorPicker__hsv_draw :: MethodBind\nbindColorPicker__hsv_draw\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"_hsv_draw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_hsv_draw ::\n            (ColorPicker :< cls, Object :< cls) =>\n            cls -> Int -> Control -> IO ()\n_hsv_draw cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker__hsv_draw (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"_hsv_draw\" '[Int, Control] (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker._hsv_draw\n\n{-# NOINLINE bindColorPicker__html_entered #-}\n\nbindColorPicker__html_entered :: MethodBind\nbindColorPicker__html_entered\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"_html_entered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_html_entered ::\n                (ColorPicker :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_html_entered cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker__html_entered (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"_html_entered\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker._html_entered\n\n{-# NOINLINE bindColorPicker__html_focus_exit #-}\n\nbindColorPicker__html_focus_exit :: MethodBind\nbindColorPicker__html_focus_exit\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"_html_focus_exit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_html_focus_exit ::\n                   (ColorPicker :< cls, Object :< cls) => cls -> IO ()\n_html_focus_exit cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker__html_focus_exit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"_html_focus_exit\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker._html_focus_exit\n\n{-# NOINLINE bindColorPicker__preset_input #-}\n\nbindColorPicker__preset_input :: MethodBind\nbindColorPicker__preset_input\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"_preset_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_preset_input ::\n                (ColorPicker :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_preset_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker__preset_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"_preset_input\" '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker._preset_input\n\n{-# NOINLINE bindColorPicker__sample_draw #-}\n\nbindColorPicker__sample_draw :: MethodBind\nbindColorPicker__sample_draw\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"_sample_draw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_sample_draw :: (ColorPicker :< cls, Object :< cls) => cls -> IO ()\n_sample_draw cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker__sample_draw (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"_sample_draw\" '[] (IO ()) where\n        nodeMethod = Godot.Core.ColorPicker._sample_draw\n\n{-# NOINLINE bindColorPicker__screen_input #-}\n\nbindColorPicker__screen_input :: MethodBind\nbindColorPicker__screen_input\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"_screen_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_screen_input ::\n                (ColorPicker :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_screen_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker__screen_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"_screen_input\" '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker._screen_input\n\n{-# NOINLINE bindColorPicker__screen_pick_pressed #-}\n\nbindColorPicker__screen_pick_pressed :: MethodBind\nbindColorPicker__screen_pick_pressed\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"_screen_pick_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_screen_pick_pressed ::\n                       (ColorPicker :< cls, Object :< cls) => cls -> IO ()\n_screen_pick_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker__screen_pick_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"_screen_pick_pressed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker._screen_pick_pressed\n\n{-# NOINLINE bindColorPicker__text_type_toggled #-}\n\nbindColorPicker__text_type_toggled :: MethodBind\nbindColorPicker__text_type_toggled\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"_text_type_toggled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_text_type_toggled ::\n                     (ColorPicker :< cls, Object :< cls) => cls -> IO ()\n_text_type_toggled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker__text_type_toggled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"_text_type_toggled\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker._text_type_toggled\n\n{-# NOINLINE bindColorPicker__update_presets #-}\n\nbindColorPicker__update_presets :: MethodBind\nbindColorPicker__update_presets\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"_update_presets\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_presets ::\n                  (ColorPicker :< cls, Object :< cls) => cls -> IO ()\n_update_presets cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker__update_presets (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"_update_presets\" '[] (IO ()) where\n        nodeMethod = Godot.Core.ColorPicker._update_presets\n\n{-# NOINLINE bindColorPicker__uv_input #-}\n\nbindColorPicker__uv_input :: MethodBind\nbindColorPicker__uv_input\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"_uv_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_uv_input ::\n            (ColorPicker :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_uv_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker__uv_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"_uv_input\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker._uv_input\n\n{-# NOINLINE bindColorPicker__value_changed #-}\n\nbindColorPicker__value_changed :: MethodBind\nbindColorPicker__value_changed\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"_value_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_value_changed ::\n                 (ColorPicker :< cls, Object :< cls) => cls -> Float -> IO ()\n_value_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker__value_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"_value_changed\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker._value_changed\n\n{-# NOINLINE bindColorPicker__w_input #-}\n\nbindColorPicker__w_input :: MethodBind\nbindColorPicker__w_input\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"_w_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_w_input ::\n           (ColorPicker :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_w_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker__w_input (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"_w_input\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker._w_input\n\n{-# NOINLINE bindColorPicker_add_preset #-}\n\n-- | Adds the given color to a list of color presets. The presets are displayed in the color picker and the user will be able to select them.\n--   \t\t\t\t__Note:__ the presets list is only for @i@this@/i@ color picker.\nbindColorPicker_add_preset :: MethodBind\nbindColorPicker_add_preset\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"add_preset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds the given color to a list of color presets. The presets are displayed in the color picker and the user will be able to select them.\n--   \t\t\t\t__Note:__ the presets list is only for @i@this@/i@ color picker.\nadd_preset ::\n             (ColorPicker :< cls, Object :< cls) => cls -> Color -> IO ()\nadd_preset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker_add_preset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"add_preset\" '[Color] (IO ()) where\n        nodeMethod = Godot.Core.ColorPicker.add_preset\n\n{-# NOINLINE bindColorPicker_are_presets_enabled #-}\n\n-- | If @true@, the \"add preset\" button is enabled.\nbindColorPicker_are_presets_enabled :: MethodBind\nbindColorPicker_are_presets_enabled\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"are_presets_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the \"add preset\" button is enabled.\nare_presets_enabled ::\n                      (ColorPicker :< cls, Object :< cls) => cls -> IO Bool\nare_presets_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker_are_presets_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"are_presets_enabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ColorPicker.are_presets_enabled\n\n{-# NOINLINE bindColorPicker_are_presets_visible #-}\n\n-- | If @true@, saved color presets are visible.\nbindColorPicker_are_presets_visible :: MethodBind\nbindColorPicker_are_presets_visible\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"are_presets_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, saved color presets are visible.\nare_presets_visible ::\n                      (ColorPicker :< cls, Object :< cls) => cls -> IO Bool\nare_presets_visible cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker_are_presets_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"are_presets_visible\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ColorPicker.are_presets_visible\n\n{-# NOINLINE bindColorPicker_erase_preset #-}\n\n-- | Removes the given color from the list of color presets of this color picker.\nbindColorPicker_erase_preset :: MethodBind\nbindColorPicker_erase_preset\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"erase_preset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the given color from the list of color presets of this color picker.\nerase_preset ::\n               (ColorPicker :< cls, Object :< cls) => cls -> Color -> IO ()\nerase_preset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker_erase_preset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"erase_preset\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker.erase_preset\n\n{-# NOINLINE bindColorPicker_get_pick_color #-}\n\n-- | The currently selected color.\nbindColorPicker_get_pick_color :: MethodBind\nbindColorPicker_get_pick_color\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"get_pick_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The currently selected color.\nget_pick_color ::\n                 (ColorPicker :< cls, Object :< cls) => cls -> IO Color\nget_pick_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker_get_pick_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"get_pick_color\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.ColorPicker.get_pick_color\n\n{-# NOINLINE bindColorPicker_get_presets #-}\n\n-- | Returns the list of colors in the presets of the color picker.\nbindColorPicker_get_presets :: MethodBind\nbindColorPicker_get_presets\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"get_presets\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the list of colors in the presets of the color picker.\nget_presets ::\n              (ColorPicker :< cls, Object :< cls) => cls -> IO PoolColorArray\nget_presets cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker_get_presets (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"get_presets\" '[]\n           (IO PoolColorArray)\n         where\n        nodeMethod = Godot.Core.ColorPicker.get_presets\n\n{-# NOINLINE bindColorPicker_is_deferred_mode #-}\n\n-- | If @true@, the color will apply only after the user releases the mouse button, otherwise it will apply immediately even in mouse motion event (which can cause performance issues).\nbindColorPicker_is_deferred_mode :: MethodBind\nbindColorPicker_is_deferred_mode\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"is_deferred_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the color will apply only after the user releases the mouse button, otherwise it will apply immediately even in mouse motion event (which can cause performance issues).\nis_deferred_mode ::\n                   (ColorPicker :< cls, Object :< cls) => cls -> IO Bool\nis_deferred_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker_is_deferred_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"is_deferred_mode\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ColorPicker.is_deferred_mode\n\n{-# NOINLINE bindColorPicker_is_editing_alpha #-}\n\n-- | If @true@, shows an alpha channel slider (transparency).\nbindColorPicker_is_editing_alpha :: MethodBind\nbindColorPicker_is_editing_alpha\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"is_editing_alpha\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, shows an alpha channel slider (transparency).\nis_editing_alpha ::\n                   (ColorPicker :< cls, Object :< cls) => cls -> IO Bool\nis_editing_alpha cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker_is_editing_alpha\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"is_editing_alpha\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ColorPicker.is_editing_alpha\n\n{-# NOINLINE bindColorPicker_is_hsv_mode #-}\n\n-- | If @true@, allows editing the color with Hue/Saturation/Value sliders.\n--   \t\t\t__Note:__ Cannot be enabled if raw mode is on.\nbindColorPicker_is_hsv_mode :: MethodBind\nbindColorPicker_is_hsv_mode\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"is_hsv_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, allows editing the color with Hue/Saturation/Value sliders.\n--   \t\t\t__Note:__ Cannot be enabled if raw mode is on.\nis_hsv_mode ::\n              (ColorPicker :< cls, Object :< cls) => cls -> IO Bool\nis_hsv_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker_is_hsv_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"is_hsv_mode\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.ColorPicker.is_hsv_mode\n\n{-# NOINLINE bindColorPicker_is_raw_mode #-}\n\n-- | If @true@, allows the color R, G, B component values to go beyond 1.0, which can be used for certain special operations that require it (like tinting without darkening or rendering sprites in HDR).\n--   \t\t\t__Note:__ Cannot be enabled if HSV mode is on.\nbindColorPicker_is_raw_mode :: MethodBind\nbindColorPicker_is_raw_mode\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"is_raw_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, allows the color R, G, B component values to go beyond 1.0, which can be used for certain special operations that require it (like tinting without darkening or rendering sprites in HDR).\n--   \t\t\t__Note:__ Cannot be enabled if HSV mode is on.\nis_raw_mode ::\n              (ColorPicker :< cls, Object :< cls) => cls -> IO Bool\nis_raw_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker_is_raw_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"is_raw_mode\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.ColorPicker.is_raw_mode\n\n{-# NOINLINE bindColorPicker_set_deferred_mode #-}\n\n-- | If @true@, the color will apply only after the user releases the mouse button, otherwise it will apply immediately even in mouse motion event (which can cause performance issues).\nbindColorPicker_set_deferred_mode :: MethodBind\nbindColorPicker_set_deferred_mode\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"set_deferred_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the color will apply only after the user releases the mouse button, otherwise it will apply immediately even in mouse motion event (which can cause performance issues).\nset_deferred_mode ::\n                    (ColorPicker :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_deferred_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker_set_deferred_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"set_deferred_mode\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker.set_deferred_mode\n\n{-# NOINLINE bindColorPicker_set_edit_alpha #-}\n\n-- | If @true@, shows an alpha channel slider (transparency).\nbindColorPicker_set_edit_alpha :: MethodBind\nbindColorPicker_set_edit_alpha\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"set_edit_alpha\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, shows an alpha channel slider (transparency).\nset_edit_alpha ::\n                 (ColorPicker :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_edit_alpha cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker_set_edit_alpha (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"set_edit_alpha\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker.set_edit_alpha\n\n{-# NOINLINE bindColorPicker_set_hsv_mode #-}\n\n-- | If @true@, allows editing the color with Hue/Saturation/Value sliders.\n--   \t\t\t__Note:__ Cannot be enabled if raw mode is on.\nbindColorPicker_set_hsv_mode :: MethodBind\nbindColorPicker_set_hsv_mode\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"set_hsv_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, allows editing the color with Hue/Saturation/Value sliders.\n--   \t\t\t__Note:__ Cannot be enabled if raw mode is on.\nset_hsv_mode ::\n               (ColorPicker :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_hsv_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker_set_hsv_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"set_hsv_mode\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker.set_hsv_mode\n\n{-# NOINLINE bindColorPicker_set_pick_color #-}\n\n-- | The currently selected color.\nbindColorPicker_set_pick_color :: MethodBind\nbindColorPicker_set_pick_color\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"set_pick_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The currently selected color.\nset_pick_color ::\n                 (ColorPicker :< cls, Object :< cls) => cls -> Color -> IO ()\nset_pick_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker_set_pick_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"set_pick_color\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker.set_pick_color\n\n{-# NOINLINE bindColorPicker_set_presets_enabled #-}\n\n-- | If @true@, the \"add preset\" button is enabled.\nbindColorPicker_set_presets_enabled :: MethodBind\nbindColorPicker_set_presets_enabled\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"set_presets_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the \"add preset\" button is enabled.\nset_presets_enabled ::\n                      (ColorPicker :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_presets_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker_set_presets_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"set_presets_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker.set_presets_enabled\n\n{-# NOINLINE bindColorPicker_set_presets_visible #-}\n\n-- | If @true@, saved color presets are visible.\nbindColorPicker_set_presets_visible :: MethodBind\nbindColorPicker_set_presets_visible\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"set_presets_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, saved color presets are visible.\nset_presets_visible ::\n                      (ColorPicker :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_presets_visible cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker_set_presets_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"set_presets_visible\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker.set_presets_visible\n\n{-# NOINLINE bindColorPicker_set_raw_mode #-}\n\n-- | If @true@, allows the color R, G, B component values to go beyond 1.0, which can be used for certain special operations that require it (like tinting without darkening or rendering sprites in HDR).\n--   \t\t\t__Note:__ Cannot be enabled if HSV mode is on.\nbindColorPicker_set_raw_mode :: MethodBind\nbindColorPicker_set_raw_mode\n  = unsafePerformIO $\n      withCString \"ColorPicker\" $\n        \\ clsNamePtr ->\n          withCString \"set_raw_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, allows the color R, G, B component values to go beyond 1.0, which can be used for certain special operations that require it (like tinting without darkening or rendering sprites in HDR).\n--   \t\t\t__Note:__ Cannot be enabled if HSV mode is on.\nset_raw_mode ::\n               (ColorPicker :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_raw_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPicker_set_raw_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPicker \"set_raw_mode\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPicker.set_raw_mode"
  },
  {
    "path": "src/Godot/Core/ColorPickerButton.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ColorPickerButton\n       (Godot.Core.ColorPickerButton.sig_color_changed,\n        Godot.Core.ColorPickerButton.sig_picker_created,\n        Godot.Core.ColorPickerButton.sig_popup_closed,\n        Godot.Core.ColorPickerButton._color_changed,\n        Godot.Core.ColorPickerButton._modal_closed,\n        Godot.Core.ColorPickerButton.get_pick_color,\n        Godot.Core.ColorPickerButton.get_picker,\n        Godot.Core.ColorPickerButton.get_popup,\n        Godot.Core.ColorPickerButton.is_editing_alpha,\n        Godot.Core.ColorPickerButton.set_edit_alpha,\n        Godot.Core.ColorPickerButton.set_pick_color)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Button()\n\n-- | Emitted when the color changes.\nsig_color_changed ::\n                  Godot.Internal.Dispatch.Signal ColorPickerButton\nsig_color_changed = Godot.Internal.Dispatch.Signal \"color_changed\"\n\ninstance NodeSignal ColorPickerButton \"color_changed\" '[Color]\n\n-- | Emitted when the @ColorPicker@ is created (the button is pressed for the first time).\nsig_picker_created ::\n                   Godot.Internal.Dispatch.Signal ColorPickerButton\nsig_picker_created\n  = Godot.Internal.Dispatch.Signal \"picker_created\"\n\ninstance NodeSignal ColorPickerButton \"picker_created\" '[]\n\n-- | Emitted when the @ColorPicker@ is closed.\nsig_popup_closed ::\n                 Godot.Internal.Dispatch.Signal ColorPickerButton\nsig_popup_closed = Godot.Internal.Dispatch.Signal \"popup_closed\"\n\ninstance NodeSignal ColorPickerButton \"popup_closed\" '[]\n\ninstance NodeProperty ColorPickerButton \"color\" Color 'False where\n        nodeProperty\n          = (get_pick_color, wrapDroppingSetter set_pick_color, Nothing)\n\ninstance NodeProperty ColorPickerButton \"edit_alpha\" Bool 'False\n         where\n        nodeProperty\n          = (is_editing_alpha, wrapDroppingSetter set_edit_alpha, Nothing)\n\n{-# NOINLINE bindColorPickerButton__color_changed #-}\n\nbindColorPickerButton__color_changed :: MethodBind\nbindColorPickerButton__color_changed\n  = unsafePerformIO $\n      withCString \"ColorPickerButton\" $\n        \\ clsNamePtr ->\n          withCString \"_color_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_color_changed ::\n                 (ColorPickerButton :< cls, Object :< cls) => cls -> Color -> IO ()\n_color_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPickerButton__color_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPickerButton \"_color_changed\" '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPickerButton._color_changed\n\n{-# NOINLINE bindColorPickerButton__modal_closed #-}\n\nbindColorPickerButton__modal_closed :: MethodBind\nbindColorPickerButton__modal_closed\n  = unsafePerformIO $\n      withCString \"ColorPickerButton\" $\n        \\ clsNamePtr ->\n          withCString \"_modal_closed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_modal_closed ::\n                (ColorPickerButton :< cls, Object :< cls) => cls -> IO ()\n_modal_closed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPickerButton__modal_closed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPickerButton \"_modal_closed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPickerButton._modal_closed\n\n{-# NOINLINE bindColorPickerButton_get_pick_color #-}\n\n-- | The currently selected color.\nbindColorPickerButton_get_pick_color :: MethodBind\nbindColorPickerButton_get_pick_color\n  = unsafePerformIO $\n      withCString \"ColorPickerButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_pick_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The currently selected color.\nget_pick_color ::\n                 (ColorPickerButton :< cls, Object :< cls) => cls -> IO Color\nget_pick_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPickerButton_get_pick_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPickerButton \"get_pick_color\" '[]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.ColorPickerButton.get_pick_color\n\n{-# NOINLINE bindColorPickerButton_get_picker #-}\n\n-- | Returns the @ColorPicker@ that this node toggles.\nbindColorPickerButton_get_picker :: MethodBind\nbindColorPickerButton_get_picker\n  = unsafePerformIO $\n      withCString \"ColorPickerButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_picker\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @ColorPicker@ that this node toggles.\nget_picker ::\n             (ColorPickerButton :< cls, Object :< cls) => cls -> IO ColorPicker\nget_picker cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPickerButton_get_picker\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPickerButton \"get_picker\" '[]\n           (IO ColorPicker)\n         where\n        nodeMethod = Godot.Core.ColorPickerButton.get_picker\n\n{-# NOINLINE bindColorPickerButton_get_popup #-}\n\n-- | Returns the control's @PopupPanel@ which allows you to connect to popup signals. This allows you to handle events when the ColorPicker is shown or hidden.\nbindColorPickerButton_get_popup :: MethodBind\nbindColorPickerButton_get_popup\n  = unsafePerformIO $\n      withCString \"ColorPickerButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_popup\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the control's @PopupPanel@ which allows you to connect to popup signals. This allows you to handle events when the ColorPicker is shown or hidden.\nget_popup ::\n            (ColorPickerButton :< cls, Object :< cls) => cls -> IO PopupPanel\nget_popup cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPickerButton_get_popup (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPickerButton \"get_popup\" '[]\n           (IO PopupPanel)\n         where\n        nodeMethod = Godot.Core.ColorPickerButton.get_popup\n\n{-# NOINLINE bindColorPickerButton_is_editing_alpha #-}\n\n-- | If @true@, the alpha channel in the displayed @ColorPicker@ will be visible.\nbindColorPickerButton_is_editing_alpha :: MethodBind\nbindColorPickerButton_is_editing_alpha\n  = unsafePerformIO $\n      withCString \"ColorPickerButton\" $\n        \\ clsNamePtr ->\n          withCString \"is_editing_alpha\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the alpha channel in the displayed @ColorPicker@ will be visible.\nis_editing_alpha ::\n                   (ColorPickerButton :< cls, Object :< cls) => cls -> IO Bool\nis_editing_alpha cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPickerButton_is_editing_alpha\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPickerButton \"is_editing_alpha\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ColorPickerButton.is_editing_alpha\n\n{-# NOINLINE bindColorPickerButton_set_edit_alpha #-}\n\n-- | If @true@, the alpha channel in the displayed @ColorPicker@ will be visible.\nbindColorPickerButton_set_edit_alpha :: MethodBind\nbindColorPickerButton_set_edit_alpha\n  = unsafePerformIO $\n      withCString \"ColorPickerButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_edit_alpha\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the alpha channel in the displayed @ColorPicker@ will be visible.\nset_edit_alpha ::\n                 (ColorPickerButton :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_edit_alpha cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPickerButton_set_edit_alpha\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPickerButton \"set_edit_alpha\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPickerButton.set_edit_alpha\n\n{-# NOINLINE bindColorPickerButton_set_pick_color #-}\n\n-- | The currently selected color.\nbindColorPickerButton_set_pick_color :: MethodBind\nbindColorPickerButton_set_pick_color\n  = unsafePerformIO $\n      withCString \"ColorPickerButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_pick_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The currently selected color.\nset_pick_color ::\n                 (ColorPickerButton :< cls, Object :< cls) => cls -> Color -> IO ()\nset_pick_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorPickerButton_set_pick_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorPickerButton \"set_pick_color\" '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ColorPickerButton.set_pick_color"
  },
  {
    "path": "src/Godot/Core/ColorRect.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ColorRect\n       (Godot.Core.ColorRect.get_frame_color,\n        Godot.Core.ColorRect.set_frame_color)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()\n\ninstance NodeProperty ColorRect \"color\" Color 'False where\n        nodeProperty\n          = (get_frame_color, wrapDroppingSetter set_frame_color, Nothing)\n\n{-# NOINLINE bindColorRect_get_frame_color #-}\n\n-- | The fill color.\n--   \t\t\t\n--   @\n--   \n--   \t\t\t$ColorRect.color = Color(1, 0, 0, 1) # Set ColorRect's color to red.\n--   \t\t\t\n--   @\nbindColorRect_get_frame_color :: MethodBind\nbindColorRect_get_frame_color\n  = unsafePerformIO $\n      withCString \"ColorRect\" $\n        \\ clsNamePtr ->\n          withCString \"get_frame_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The fill color.\n--   \t\t\t\n--   @\n--   \n--   \t\t\t$ColorRect.color = Color(1, 0, 0, 1) # Set ColorRect's color to red.\n--   \t\t\t\n--   @\nget_frame_color ::\n                  (ColorRect :< cls, Object :< cls) => cls -> IO Color\nget_frame_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorRect_get_frame_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorRect \"get_frame_color\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.ColorRect.get_frame_color\n\n{-# NOINLINE bindColorRect_set_frame_color #-}\n\n-- | The fill color.\n--   \t\t\t\n--   @\n--   \n--   \t\t\t$ColorRect.color = Color(1, 0, 0, 1) # Set ColorRect's color to red.\n--   \t\t\t\n--   @\nbindColorRect_set_frame_color :: MethodBind\nbindColorRect_set_frame_color\n  = unsafePerformIO $\n      withCString \"ColorRect\" $\n        \\ clsNamePtr ->\n          withCString \"set_frame_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The fill color.\n--   \t\t\t\n--   @\n--   \n--   \t\t\t$ColorRect.color = Color(1, 0, 0, 1) # Set ColorRect's color to red.\n--   \t\t\t\n--   @\nset_frame_color ::\n                  (ColorRect :< cls, Object :< cls) => cls -> Color -> IO ()\nset_frame_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindColorRect_set_frame_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ColorRect \"set_frame_color\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.ColorRect.set_frame_color"
  },
  {
    "path": "src/Godot/Core/ConcavePolygonShape.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ConcavePolygonShape\n       (Godot.Core.ConcavePolygonShape.get_faces,\n        Godot.Core.ConcavePolygonShape.set_faces)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Shape()\n\ninstance NodeProperty ConcavePolygonShape \"data\" PoolVector3Array\n           'False\n         where\n        nodeProperty = (get_faces, wrapDroppingSetter set_faces, Nothing)\n\n{-# NOINLINE bindConcavePolygonShape_get_faces #-}\n\n-- | Returns the faces (an array of triangles).\nbindConcavePolygonShape_get_faces :: MethodBind\nbindConcavePolygonShape_get_faces\n  = unsafePerformIO $\n      withCString \"ConcavePolygonShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_faces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the faces (an array of triangles).\nget_faces ::\n            (ConcavePolygonShape :< cls, Object :< cls) =>\n            cls -> IO PoolVector3Array\nget_faces cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConcavePolygonShape_get_faces\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConcavePolygonShape \"get_faces\" '[]\n           (IO PoolVector3Array)\n         where\n        nodeMethod = Godot.Core.ConcavePolygonShape.get_faces\n\n{-# NOINLINE bindConcavePolygonShape_set_faces #-}\n\n-- | Sets the faces (an array of triangles).\nbindConcavePolygonShape_set_faces :: MethodBind\nbindConcavePolygonShape_set_faces\n  = unsafePerformIO $\n      withCString \"ConcavePolygonShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_faces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the faces (an array of triangles).\nset_faces ::\n            (ConcavePolygonShape :< cls, Object :< cls) =>\n            cls -> PoolVector3Array -> IO ()\nset_faces cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConcavePolygonShape_set_faces\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConcavePolygonShape \"set_faces\"\n           '[PoolVector3Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ConcavePolygonShape.set_faces"
  },
  {
    "path": "src/Godot/Core/ConcavePolygonShape2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ConcavePolygonShape2D\n       (Godot.Core.ConcavePolygonShape2D.get_segments,\n        Godot.Core.ConcavePolygonShape2D.set_segments)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Shape2D()\n\ninstance NodeProperty ConcavePolygonShape2D \"segments\"\n           PoolVector2Array\n           'False\n         where\n        nodeProperty\n          = (get_segments, wrapDroppingSetter set_segments, Nothing)\n\n{-# NOINLINE bindConcavePolygonShape2D_get_segments #-}\n\n-- | The array of points that make up the @ConcavePolygonShape2D@'s line segments.\nbindConcavePolygonShape2D_get_segments :: MethodBind\nbindConcavePolygonShape2D_get_segments\n  = unsafePerformIO $\n      withCString \"ConcavePolygonShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_segments\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The array of points that make up the @ConcavePolygonShape2D@'s line segments.\nget_segments ::\n               (ConcavePolygonShape2D :< cls, Object :< cls) =>\n               cls -> IO PoolVector2Array\nget_segments cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConcavePolygonShape2D_get_segments\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConcavePolygonShape2D \"get_segments\" '[]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.ConcavePolygonShape2D.get_segments\n\n{-# NOINLINE bindConcavePolygonShape2D_set_segments #-}\n\n-- | The array of points that make up the @ConcavePolygonShape2D@'s line segments.\nbindConcavePolygonShape2D_set_segments :: MethodBind\nbindConcavePolygonShape2D_set_segments\n  = unsafePerformIO $\n      withCString \"ConcavePolygonShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_segments\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The array of points that make up the @ConcavePolygonShape2D@'s line segments.\nset_segments ::\n               (ConcavePolygonShape2D :< cls, Object :< cls) =>\n               cls -> PoolVector2Array -> IO ()\nset_segments cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConcavePolygonShape2D_set_segments\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConcavePolygonShape2D \"set_segments\"\n           '[PoolVector2Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ConcavePolygonShape2D.set_segments"
  },
  {
    "path": "src/Godot/Core/ConeTwistJoint.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ConeTwistJoint\n       (Godot.Core.ConeTwistJoint._PARAM_SWING_SPAN,\n        Godot.Core.ConeTwistJoint._PARAM_SOFTNESS,\n        Godot.Core.ConeTwistJoint._PARAM_TWIST_SPAN,\n        Godot.Core.ConeTwistJoint._PARAM_MAX,\n        Godot.Core.ConeTwistJoint._PARAM_RELAXATION,\n        Godot.Core.ConeTwistJoint._PARAM_BIAS,\n        Godot.Core.ConeTwistJoint._get_swing_span,\n        Godot.Core.ConeTwistJoint._get_twist_span,\n        Godot.Core.ConeTwistJoint._set_swing_span,\n        Godot.Core.ConeTwistJoint._set_twist_span,\n        Godot.Core.ConeTwistJoint.get_param,\n        Godot.Core.ConeTwistJoint.set_param)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Joint()\n\n_PARAM_SWING_SPAN :: Int\n_PARAM_SWING_SPAN = 0\n\n_PARAM_SOFTNESS :: Int\n_PARAM_SOFTNESS = 3\n\n_PARAM_TWIST_SPAN :: Int\n_PARAM_TWIST_SPAN = 1\n\n_PARAM_MAX :: Int\n_PARAM_MAX = 5\n\n_PARAM_RELAXATION :: Int\n_PARAM_RELAXATION = 4\n\n_PARAM_BIAS :: Int\n_PARAM_BIAS = 2\n\ninstance NodeProperty ConeTwistJoint \"bias\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_param, wrapIndexedSetter 2 set_param,\n             Nothing)\n\ninstance NodeProperty ConeTwistJoint \"relaxation\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_param, wrapIndexedSetter 4 set_param,\n             Nothing)\n\ninstance NodeProperty ConeTwistJoint \"softness\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_param, wrapIndexedSetter 3 set_param,\n             Nothing)\n\ninstance NodeProperty ConeTwistJoint \"swing_span\" Float 'False\n         where\n        nodeProperty\n          = (_get_swing_span, wrapDroppingSetter _set_swing_span, Nothing)\n\ninstance NodeProperty ConeTwistJoint \"twist_span\" Float 'False\n         where\n        nodeProperty\n          = (_get_twist_span, wrapDroppingSetter _set_twist_span, Nothing)\n\n{-# NOINLINE bindConeTwistJoint__get_swing_span #-}\n\n-- | Swing is rotation from side to side, around the axis perpendicular to the twist axis.\n--   \t\t\tThe swing span defines, how much rotation will not get corrected along the swing axis.\n--   \t\t\tCould be defined as looseness in the @ConeTwistJoint@.\n--   \t\t\tIf below 0.05, this behavior is locked.\nbindConeTwistJoint__get_swing_span :: MethodBind\nbindConeTwistJoint__get_swing_span\n  = unsafePerformIO $\n      withCString \"ConeTwistJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_get_swing_span\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Swing is rotation from side to side, around the axis perpendicular to the twist axis.\n--   \t\t\tThe swing span defines, how much rotation will not get corrected along the swing axis.\n--   \t\t\tCould be defined as looseness in the @ConeTwistJoint@.\n--   \t\t\tIf below 0.05, this behavior is locked.\n_get_swing_span ::\n                  (ConeTwistJoint :< cls, Object :< cls) => cls -> IO Float\n_get_swing_span cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConeTwistJoint__get_swing_span\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConeTwistJoint \"_get_swing_span\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.ConeTwistJoint._get_swing_span\n\n{-# NOINLINE bindConeTwistJoint__get_twist_span #-}\n\n-- | Twist is the rotation around the twist axis, this value defined how far the joint can twist.\n--   \t\t\tTwist is locked if below 0.05.\nbindConeTwistJoint__get_twist_span :: MethodBind\nbindConeTwistJoint__get_twist_span\n  = unsafePerformIO $\n      withCString \"ConeTwistJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_get_twist_span\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Twist is the rotation around the twist axis, this value defined how far the joint can twist.\n--   \t\t\tTwist is locked if below 0.05.\n_get_twist_span ::\n                  (ConeTwistJoint :< cls, Object :< cls) => cls -> IO Float\n_get_twist_span cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConeTwistJoint__get_twist_span\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConeTwistJoint \"_get_twist_span\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.ConeTwistJoint._get_twist_span\n\n{-# NOINLINE bindConeTwistJoint__set_swing_span #-}\n\n-- | Swing is rotation from side to side, around the axis perpendicular to the twist axis.\n--   \t\t\tThe swing span defines, how much rotation will not get corrected along the swing axis.\n--   \t\t\tCould be defined as looseness in the @ConeTwistJoint@.\n--   \t\t\tIf below 0.05, this behavior is locked.\nbindConeTwistJoint__set_swing_span :: MethodBind\nbindConeTwistJoint__set_swing_span\n  = unsafePerformIO $\n      withCString \"ConeTwistJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_set_swing_span\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Swing is rotation from side to side, around the axis perpendicular to the twist axis.\n--   \t\t\tThe swing span defines, how much rotation will not get corrected along the swing axis.\n--   \t\t\tCould be defined as looseness in the @ConeTwistJoint@.\n--   \t\t\tIf below 0.05, this behavior is locked.\n_set_swing_span ::\n                  (ConeTwistJoint :< cls, Object :< cls) => cls -> Float -> IO ()\n_set_swing_span cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConeTwistJoint__set_swing_span\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConeTwistJoint \"_set_swing_span\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ConeTwistJoint._set_swing_span\n\n{-# NOINLINE bindConeTwistJoint__set_twist_span #-}\n\n-- | Twist is the rotation around the twist axis, this value defined how far the joint can twist.\n--   \t\t\tTwist is locked if below 0.05.\nbindConeTwistJoint__set_twist_span :: MethodBind\nbindConeTwistJoint__set_twist_span\n  = unsafePerformIO $\n      withCString \"ConeTwistJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_set_twist_span\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Twist is the rotation around the twist axis, this value defined how far the joint can twist.\n--   \t\t\tTwist is locked if below 0.05.\n_set_twist_span ::\n                  (ConeTwistJoint :< cls, Object :< cls) => cls -> Float -> IO ()\n_set_twist_span cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConeTwistJoint__set_twist_span\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConeTwistJoint \"_set_twist_span\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ConeTwistJoint._set_twist_span\n\n{-# NOINLINE bindConeTwistJoint_get_param #-}\n\n-- | The speed with which the swing or twist will take place.\n--   \t\t\tThe higher, the faster.\nbindConeTwistJoint_get_param :: MethodBind\nbindConeTwistJoint_get_param\n  = unsafePerformIO $\n      withCString \"ConeTwistJoint\" $\n        \\ clsNamePtr ->\n          withCString \"get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The speed with which the swing or twist will take place.\n--   \t\t\tThe higher, the faster.\nget_param ::\n            (ConeTwistJoint :< cls, Object :< cls) => cls -> Int -> IO Float\nget_param cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConeTwistJoint_get_param (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConeTwistJoint \"get_param\" '[Int] (IO Float)\n         where\n        nodeMethod = Godot.Core.ConeTwistJoint.get_param\n\n{-# NOINLINE bindConeTwistJoint_set_param #-}\n\n-- | The speed with which the swing or twist will take place.\n--   \t\t\tThe higher, the faster.\nbindConeTwistJoint_set_param :: MethodBind\nbindConeTwistJoint_set_param\n  = unsafePerformIO $\n      withCString \"ConeTwistJoint\" $\n        \\ clsNamePtr ->\n          withCString \"set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The speed with which the swing or twist will take place.\n--   \t\t\tThe higher, the faster.\nset_param ::\n            (ConeTwistJoint :< cls, Object :< cls) =>\n            cls -> Int -> Float -> IO ()\nset_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConeTwistJoint_set_param (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConeTwistJoint \"set_param\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ConeTwistJoint.set_param"
  },
  {
    "path": "src/Godot/Core/ConfigFile.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ConfigFile\n       (Godot.Core.ConfigFile.erase_section,\n        Godot.Core.ConfigFile.erase_section_key,\n        Godot.Core.ConfigFile.get_section_keys,\n        Godot.Core.ConfigFile.get_sections,\n        Godot.Core.ConfigFile.get_value, Godot.Core.ConfigFile.has_section,\n        Godot.Core.ConfigFile.has_section_key, Godot.Core.ConfigFile.load,\n        Godot.Core.ConfigFile.load_encrypted,\n        Godot.Core.ConfigFile.load_encrypted_pass,\n        Godot.Core.ConfigFile.save, Godot.Core.ConfigFile.save_encrypted,\n        Godot.Core.ConfigFile.save_encrypted_pass,\n        Godot.Core.ConfigFile.set_value)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindConfigFile_erase_section #-}\n\n-- | Deletes the specified section along with all the key-value pairs inside. Raises an error if the section does not exist.\nbindConfigFile_erase_section :: MethodBind\nbindConfigFile_erase_section\n  = unsafePerformIO $\n      withCString \"ConfigFile\" $\n        \\ clsNamePtr ->\n          withCString \"erase_section\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Deletes the specified section along with all the key-value pairs inside. Raises an error if the section does not exist.\nerase_section ::\n                (ConfigFile :< cls, Object :< cls) => cls -> GodotString -> IO ()\nerase_section cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConfigFile_erase_section (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConfigFile \"erase_section\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ConfigFile.erase_section\n\n{-# NOINLINE bindConfigFile_erase_section_key #-}\n\n-- | Deletes the specified key in a section. Raises an error if either the section or the key do not exist.\nbindConfigFile_erase_section_key :: MethodBind\nbindConfigFile_erase_section_key\n  = unsafePerformIO $\n      withCString \"ConfigFile\" $\n        \\ clsNamePtr ->\n          withCString \"erase_section_key\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Deletes the specified key in a section. Raises an error if either the section or the key do not exist.\nerase_section_key ::\n                    (ConfigFile :< cls, Object :< cls) =>\n                    cls -> GodotString -> GodotString -> IO ()\nerase_section_key cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConfigFile_erase_section_key\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConfigFile \"erase_section_key\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ConfigFile.erase_section_key\n\n{-# NOINLINE bindConfigFile_get_section_keys #-}\n\n-- | Returns an array of all defined key identifiers in the specified section. Raises an error and returns an empty array if the section does not exist.\nbindConfigFile_get_section_keys :: MethodBind\nbindConfigFile_get_section_keys\n  = unsafePerformIO $\n      withCString \"ConfigFile\" $\n        \\ clsNamePtr ->\n          withCString \"get_section_keys\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of all defined key identifiers in the specified section. Raises an error and returns an empty array if the section does not exist.\nget_section_keys ::\n                   (ConfigFile :< cls, Object :< cls) =>\n                   cls -> GodotString -> IO PoolStringArray\nget_section_keys cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConfigFile_get_section_keys (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConfigFile \"get_section_keys\" '[GodotString]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.ConfigFile.get_section_keys\n\n{-# NOINLINE bindConfigFile_get_sections #-}\n\n-- | Returns an array of all defined section identifiers.\nbindConfigFile_get_sections :: MethodBind\nbindConfigFile_get_sections\n  = unsafePerformIO $\n      withCString \"ConfigFile\" $\n        \\ clsNamePtr ->\n          withCString \"get_sections\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of all defined section identifiers.\nget_sections ::\n               (ConfigFile :< cls, Object :< cls) => cls -> IO PoolStringArray\nget_sections cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConfigFile_get_sections (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConfigFile \"get_sections\" '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.ConfigFile.get_sections\n\n{-# NOINLINE bindConfigFile_get_value #-}\n\n-- | Returns the current value for the specified section and key. If either the section or the key do not exist, the method returns the fallback @default@ value. If @default@ is not specified or set to @null@, an error is also raised.\nbindConfigFile_get_value :: MethodBind\nbindConfigFile_get_value\n  = unsafePerformIO $\n      withCString \"ConfigFile\" $\n        \\ clsNamePtr ->\n          withCString \"get_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current value for the specified section and key. If either the section or the key do not exist, the method returns the fallback @default@ value. If @default@ is not specified or set to @null@, an error is also raised.\nget_value ::\n            (ConfigFile :< cls, Object :< cls) =>\n            cls ->\n              GodotString -> GodotString -> Maybe GodotVariant -> IO GodotVariant\nget_value cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, maybe VariantNil toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConfigFile_get_value (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConfigFile \"get_value\"\n           '[GodotString, GodotString, Maybe GodotVariant]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.ConfigFile.get_value\n\n{-# NOINLINE bindConfigFile_has_section #-}\n\n-- | Returns @true@ if the specified section exists.\nbindConfigFile_has_section :: MethodBind\nbindConfigFile_has_section\n  = unsafePerformIO $\n      withCString \"ConfigFile\" $\n        \\ clsNamePtr ->\n          withCString \"has_section\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the specified section exists.\nhas_section ::\n              (ConfigFile :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_section cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConfigFile_has_section (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConfigFile \"has_section\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ConfigFile.has_section\n\n{-# NOINLINE bindConfigFile_has_section_key #-}\n\n-- | Returns @true@ if the specified section-key pair exists.\nbindConfigFile_has_section_key :: MethodBind\nbindConfigFile_has_section_key\n  = unsafePerformIO $\n      withCString \"ConfigFile\" $\n        \\ clsNamePtr ->\n          withCString \"has_section_key\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the specified section-key pair exists.\nhas_section_key ::\n                  (ConfigFile :< cls, Object :< cls) =>\n                  cls -> GodotString -> GodotString -> IO Bool\nhas_section_key cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConfigFile_has_section_key (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConfigFile \"has_section_key\"\n           '[GodotString, GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ConfigFile.has_section_key\n\n{-# NOINLINE bindConfigFile_load #-}\n\n-- | Loads the config file specified as a parameter. The file's contents are parsed and loaded in the @ConfigFile@ object which the method was called on.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nbindConfigFile_load :: MethodBind\nbindConfigFile_load\n  = unsafePerformIO $\n      withCString \"ConfigFile\" $\n        \\ clsNamePtr ->\n          withCString \"load\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Loads the config file specified as a parameter. The file's contents are parsed and loaded in the @ConfigFile@ object which the method was called on.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nload ::\n       (ConfigFile :< cls, Object :< cls) => cls -> GodotString -> IO Int\nload cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConfigFile_load (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConfigFile \"load\" '[GodotString] (IO Int) where\n        nodeMethod = Godot.Core.ConfigFile.load\n\n{-# NOINLINE bindConfigFile_load_encrypted #-}\n\n-- | Loads the encrypted config file specified as a parameter, using the provided @key@ to decrypt it. The file's contents are parsed and loaded in the @ConfigFile@ object which the method was called on.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nbindConfigFile_load_encrypted :: MethodBind\nbindConfigFile_load_encrypted\n  = unsafePerformIO $\n      withCString \"ConfigFile\" $\n        \\ clsNamePtr ->\n          withCString \"load_encrypted\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Loads the encrypted config file specified as a parameter, using the provided @key@ to decrypt it. The file's contents are parsed and loaded in the @ConfigFile@ object which the method was called on.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nload_encrypted ::\n                 (ConfigFile :< cls, Object :< cls) =>\n                 cls -> GodotString -> PoolByteArray -> IO Int\nload_encrypted cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConfigFile_load_encrypted (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConfigFile \"load_encrypted\"\n           '[GodotString, PoolByteArray]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ConfigFile.load_encrypted\n\n{-# NOINLINE bindConfigFile_load_encrypted_pass #-}\n\n-- | Loads the encrypted config file specified as a parameter, using the provided @password@ to decrypt it. The file's contents are parsed and loaded in the @ConfigFile@ object which the method was called on.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nbindConfigFile_load_encrypted_pass :: MethodBind\nbindConfigFile_load_encrypted_pass\n  = unsafePerformIO $\n      withCString \"ConfigFile\" $\n        \\ clsNamePtr ->\n          withCString \"load_encrypted_pass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Loads the encrypted config file specified as a parameter, using the provided @password@ to decrypt it. The file's contents are parsed and loaded in the @ConfigFile@ object which the method was called on.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nload_encrypted_pass ::\n                      (ConfigFile :< cls, Object :< cls) =>\n                      cls -> GodotString -> GodotString -> IO Int\nload_encrypted_pass cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConfigFile_load_encrypted_pass\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConfigFile \"load_encrypted_pass\"\n           '[GodotString, GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ConfigFile.load_encrypted_pass\n\n{-# NOINLINE bindConfigFile_save #-}\n\n-- | Saves the contents of the @ConfigFile@ object to the file specified as a parameter. The output file uses an INI-style structure.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nbindConfigFile_save :: MethodBind\nbindConfigFile_save\n  = unsafePerformIO $\n      withCString \"ConfigFile\" $\n        \\ clsNamePtr ->\n          withCString \"save\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Saves the contents of the @ConfigFile@ object to the file specified as a parameter. The output file uses an INI-style structure.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nsave ::\n       (ConfigFile :< cls, Object :< cls) => cls -> GodotString -> IO Int\nsave cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConfigFile_save (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConfigFile \"save\" '[GodotString] (IO Int) where\n        nodeMethod = Godot.Core.ConfigFile.save\n\n{-# NOINLINE bindConfigFile_save_encrypted #-}\n\n-- | Saves the contents of the @ConfigFile@ object to the AES-256 encrypted file specified as a parameter, using the provided @key@ to encrypt it. The output file uses an INI-style structure.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nbindConfigFile_save_encrypted :: MethodBind\nbindConfigFile_save_encrypted\n  = unsafePerformIO $\n      withCString \"ConfigFile\" $\n        \\ clsNamePtr ->\n          withCString \"save_encrypted\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Saves the contents of the @ConfigFile@ object to the AES-256 encrypted file specified as a parameter, using the provided @key@ to encrypt it. The output file uses an INI-style structure.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nsave_encrypted ::\n                 (ConfigFile :< cls, Object :< cls) =>\n                 cls -> GodotString -> PoolByteArray -> IO Int\nsave_encrypted cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConfigFile_save_encrypted (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConfigFile \"save_encrypted\"\n           '[GodotString, PoolByteArray]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ConfigFile.save_encrypted\n\n{-# NOINLINE bindConfigFile_save_encrypted_pass #-}\n\n-- | Saves the contents of the @ConfigFile@ object to the AES-256 encrypted file specified as a parameter, using the provided @password@ to encrypt it. The output file uses an INI-style structure.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nbindConfigFile_save_encrypted_pass :: MethodBind\nbindConfigFile_save_encrypted_pass\n  = unsafePerformIO $\n      withCString \"ConfigFile\" $\n        \\ clsNamePtr ->\n          withCString \"save_encrypted_pass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Saves the contents of the @ConfigFile@ object to the AES-256 encrypted file specified as a parameter, using the provided @password@ to encrypt it. The output file uses an INI-style structure.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nsave_encrypted_pass ::\n                      (ConfigFile :< cls, Object :< cls) =>\n                      cls -> GodotString -> GodotString -> IO Int\nsave_encrypted_pass cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConfigFile_save_encrypted_pass\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConfigFile \"save_encrypted_pass\"\n           '[GodotString, GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ConfigFile.save_encrypted_pass\n\n{-# NOINLINE bindConfigFile_set_value #-}\n\n-- | Assigns a value to the specified key of the specified section. If either the section or the key do not exist, they are created. Passing a @null@ value deletes the specified key if it exists, and deletes the section if it ends up empty once the key has been removed.\nbindConfigFile_set_value :: MethodBind\nbindConfigFile_set_value\n  = unsafePerformIO $\n      withCString \"ConfigFile\" $\n        \\ clsNamePtr ->\n          withCString \"set_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Assigns a value to the specified key of the specified section. If either the section or the key do not exist, they are created. Passing a @null@ value deletes the specified key if it exists, and deletes the section if it ends up empty once the key has been removed.\nset_value ::\n            (ConfigFile :< cls, Object :< cls) =>\n            cls -> GodotString -> GodotString -> GodotVariant -> IO ()\nset_value cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConfigFile_set_value (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConfigFile \"set_value\"\n           '[GodotString, GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ConfigFile.set_value"
  },
  {
    "path": "src/Godot/Core/ConfirmationDialog.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ConfirmationDialog\n       (Godot.Core.ConfirmationDialog.get_cancel) where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.AcceptDialog()\n\n{-# NOINLINE bindConfirmationDialog_get_cancel #-}\n\n-- | Returns the cancel button.\nbindConfirmationDialog_get_cancel :: MethodBind\nbindConfirmationDialog_get_cancel\n  = unsafePerformIO $\n      withCString \"ConfirmationDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_cancel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the cancel button.\nget_cancel ::\n             (ConfirmationDialog :< cls, Object :< cls) => cls -> IO Button\nget_cancel cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConfirmationDialog_get_cancel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConfirmationDialog \"get_cancel\" '[] (IO Button)\n         where\n        nodeMethod = Godot.Core.ConfirmationDialog.get_cancel"
  },
  {
    "path": "src/Godot/Core/Container.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Container\n       (Godot.Core.Container._NOTIFICATION_SORT_CHILDREN,\n        Godot.Core.Container.sig_sort_children,\n        Godot.Core.Container._child_minsize_changed,\n        Godot.Core.Container._sort_children,\n        Godot.Core.Container.fit_child_in_rect,\n        Godot.Core.Container.queue_sort)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()\n\n_NOTIFICATION_SORT_CHILDREN :: Int\n_NOTIFICATION_SORT_CHILDREN = 50\n\n-- | Emitted when sorting the children is needed.\nsig_sort_children :: Godot.Internal.Dispatch.Signal Container\nsig_sort_children = Godot.Internal.Dispatch.Signal \"sort_children\"\n\ninstance NodeSignal Container \"sort_children\" '[]\n\n{-# NOINLINE bindContainer__child_minsize_changed #-}\n\nbindContainer__child_minsize_changed :: MethodBind\nbindContainer__child_minsize_changed\n  = unsafePerformIO $\n      withCString \"Container\" $\n        \\ clsNamePtr ->\n          withCString \"_child_minsize_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_child_minsize_changed ::\n                         (Container :< cls, Object :< cls) => cls -> IO ()\n_child_minsize_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindContainer__child_minsize_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Container \"_child_minsize_changed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.Container._child_minsize_changed\n\n{-# NOINLINE bindContainer__sort_children #-}\n\nbindContainer__sort_children :: MethodBind\nbindContainer__sort_children\n  = unsafePerformIO $\n      withCString \"Container\" $\n        \\ clsNamePtr ->\n          withCString \"_sort_children\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_sort_children :: (Container :< cls, Object :< cls) => cls -> IO ()\n_sort_children cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindContainer__sort_children (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Container \"_sort_children\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Container._sort_children\n\n{-# NOINLINE bindContainer_fit_child_in_rect #-}\n\n-- | Fit a child control in a given rect. This is mainly a helper for creating custom container classes.\nbindContainer_fit_child_in_rect :: MethodBind\nbindContainer_fit_child_in_rect\n  = unsafePerformIO $\n      withCString \"Container\" $\n        \\ clsNamePtr ->\n          withCString \"fit_child_in_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Fit a child control in a given rect. This is mainly a helper for creating custom container classes.\nfit_child_in_rect ::\n                    (Container :< cls, Object :< cls) =>\n                    cls -> Control -> Rect2 -> IO ()\nfit_child_in_rect cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindContainer_fit_child_in_rect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Container \"fit_child_in_rect\" '[Control, Rect2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Container.fit_child_in_rect\n\n{-# NOINLINE bindContainer_queue_sort #-}\n\n-- | Queue resort of the contained children. This is called automatically anyway, but can be called upon request.\nbindContainer_queue_sort :: MethodBind\nbindContainer_queue_sort\n  = unsafePerformIO $\n      withCString \"Container\" $\n        \\ clsNamePtr ->\n          withCString \"queue_sort\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Queue resort of the contained children. This is called automatically anyway, but can be called upon request.\nqueue_sort :: (Container :< cls, Object :< cls) => cls -> IO ()\nqueue_sort cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindContainer_queue_sort (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Container \"queue_sort\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Container.queue_sort"
  },
  {
    "path": "src/Godot/Core/Control.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Control\n       (Godot.Core.Control._NOTIFICATION_MOUSE_EXIT,\n        Godot.Core.Control._CURSOR_MOVE,\n        Godot.Core.Control._NOTIFICATION_MOUSE_ENTER,\n        Godot.Core.Control._PRESET_MODE_KEEP_WIDTH,\n        Godot.Core.Control._CURSOR_ARROW,\n        Godot.Core.Control._GROW_DIRECTION_BEGIN,\n        Godot.Core.Control._CURSOR_IBEAM,\n        Godot.Core.Control._NOTIFICATION_SCROLL_END,\n        Godot.Core.Control._CURSOR_HSPLIT, Godot.Core.Control._FOCUS_ALL,\n        Godot.Core.Control._PRESET_BOTTOM_RIGHT,\n        Godot.Core.Control._CURSOR_DRAG,\n        Godot.Core.Control._PRESET_TOP_LEFT,\n        Godot.Core.Control._PRESET_CENTER_TOP,\n        Godot.Core.Control._FOCUS_CLICK, Godot.Core.Control._CURSOR_BUSY,\n        Godot.Core.Control._SIZE_SHRINK_CENTER,\n        Godot.Core.Control._CURSOR_CROSS, Godot.Core.Control._CURSOR_WAIT,\n        Godot.Core.Control._PRESET_TOP_RIGHT,\n        Godot.Core.Control._NOTIFICATION_THEME_CHANGED,\n        Godot.Core.Control._CURSOR_BDIAGSIZE,\n        Godot.Core.Control._PRESET_HCENTER_WIDE,\n        Godot.Core.Control._GROW_DIRECTION_BOTH,\n        Godot.Core.Control._ANCHOR_BEGIN,\n        Godot.Core.Control._MOUSE_FILTER_IGNORE,\n        Godot.Core.Control._PRESET_TOP_WIDE,\n        Godot.Core.Control._PRESET_MODE_MINSIZE,\n        Godot.Core.Control._NOTIFICATION_FOCUS_ENTER,\n        Godot.Core.Control._SIZE_EXPAND_FILL,\n        Godot.Core.Control._CURSOR_HELP,\n        Godot.Core.Control._NOTIFICATION_RESIZED,\n        Godot.Core.Control._SIZE_EXPAND,\n        Godot.Core.Control._CURSOR_CAN_DROP,\n        Godot.Core.Control._NOTIFICATION_SCROLL_BEGIN,\n        Godot.Core.Control._PRESET_MODE_KEEP_SIZE,\n        Godot.Core.Control._GROW_DIRECTION_END,\n        Godot.Core.Control._PRESET_VCENTER_WIDE,\n        Godot.Core.Control._SIZE_SHRINK_END,\n        Godot.Core.Control._PRESET_RIGHT_WIDE,\n        Godot.Core.Control._SIZE_FILL,\n        Godot.Core.Control._PRESET_BOTTOM_WIDE,\n        Godot.Core.Control._CURSOR_POINTING_HAND,\n        Godot.Core.Control._PRESET_MODE_KEEP_HEIGHT,\n        Godot.Core.Control._CURSOR_FDIAGSIZE,\n        Godot.Core.Control._PRESET_WIDE,\n        Godot.Core.Control._PRESET_CENTER_LEFT,\n        Godot.Core.Control._MOUSE_FILTER_PASS,\n        Godot.Core.Control._NOTIFICATION_MODAL_CLOSE,\n        Godot.Core.Control._CURSOR_HSIZE,\n        Godot.Core.Control._PRESET_CENTER_RIGHT,\n        Godot.Core.Control._CURSOR_FORBIDDEN,\n        Godot.Core.Control._CURSOR_VSIZE,\n        Godot.Core.Control._PRESET_CENTER_BOTTOM,\n        Godot.Core.Control._NOTIFICATION_FOCUS_EXIT,\n        Godot.Core.Control._PRESET_LEFT_WIDE,\n        Godot.Core.Control._ANCHOR_END,\n        Godot.Core.Control._MOUSE_FILTER_STOP,\n        Godot.Core.Control._PRESET_BOTTOM_LEFT,\n        Godot.Core.Control._PRESET_CENTER,\n        Godot.Core.Control._CURSOR_VSPLIT, Godot.Core.Control._FOCUS_NONE,\n        Godot.Core.Control.sig_focus_entered,\n        Godot.Core.Control.sig_focus_exited,\n        Godot.Core.Control.sig_gui_input,\n        Godot.Core.Control.sig_minimum_size_changed,\n        Godot.Core.Control.sig_modal_closed,\n        Godot.Core.Control.sig_mouse_entered,\n        Godot.Core.Control.sig_mouse_exited,\n        Godot.Core.Control.sig_resized,\n        Godot.Core.Control.sig_size_flags_changed,\n        Godot.Core.Control._clips_input,\n        Godot.Core.Control._get_minimum_size,\n        Godot.Core.Control._get_tooltip, Godot.Core.Control._gui_input,\n        Godot.Core.Control._make_custom_tooltip,\n        Godot.Core.Control._override_changed,\n        Godot.Core.Control._set_anchor,\n        Godot.Core.Control._set_global_position,\n        Godot.Core.Control._set_position, Godot.Core.Control._set_size,\n        Godot.Core.Control._size_changed,\n        Godot.Core.Control._theme_changed,\n        Godot.Core.Control._update_minimum_size,\n        Godot.Core.Control.accept_event,\n        Godot.Core.Control.add_color_override,\n        Godot.Core.Control.add_constant_override,\n        Godot.Core.Control.add_font_override,\n        Godot.Core.Control.add_icon_override,\n        Godot.Core.Control.add_shader_override,\n        Godot.Core.Control.add_stylebox_override,\n        Godot.Core.Control.can_drop_data, Godot.Core.Control.drop_data,\n        Godot.Core.Control.force_drag, Godot.Core.Control.get_anchor,\n        Godot.Core.Control.get_begin, Godot.Core.Control.get_color,\n        Godot.Core.Control.get_combined_minimum_size,\n        Godot.Core.Control.get_constant,\n        Godot.Core.Control.get_cursor_shape,\n        Godot.Core.Control.get_custom_minimum_size,\n        Godot.Core.Control.get_default_cursor_shape,\n        Godot.Core.Control.get_drag_data, Godot.Core.Control.get_end,\n        Godot.Core.Control.get_focus_mode,\n        Godot.Core.Control.get_focus_neighbour,\n        Godot.Core.Control.get_focus_next,\n        Godot.Core.Control.get_focus_owner,\n        Godot.Core.Control.get_focus_previous, Godot.Core.Control.get_font,\n        Godot.Core.Control.get_global_position,\n        Godot.Core.Control.get_global_rect,\n        Godot.Core.Control.get_h_grow_direction,\n        Godot.Core.Control.get_h_size_flags, Godot.Core.Control.get_icon,\n        Godot.Core.Control.get_margin, Godot.Core.Control.get_minimum_size,\n        Godot.Core.Control.get_mouse_filter,\n        Godot.Core.Control.get_parent_area_size,\n        Godot.Core.Control.get_parent_control,\n        Godot.Core.Control.get_pivot_offset,\n        Godot.Core.Control.get_position, Godot.Core.Control.get_rect,\n        Godot.Core.Control.get_rotation,\n        Godot.Core.Control.get_rotation_degrees,\n        Godot.Core.Control.get_scale, Godot.Core.Control.get_size,\n        Godot.Core.Control.get_stretch_ratio,\n        Godot.Core.Control.get_stylebox, Godot.Core.Control.get_theme,\n        Godot.Core.Control.get_tooltip,\n        Godot.Core.Control.get_v_grow_direction,\n        Godot.Core.Control.get_v_size_flags,\n        Godot.Core.Control.grab_click_focus, Godot.Core.Control.grab_focus,\n        Godot.Core.Control.has_color,\n        Godot.Core.Control.has_color_override,\n        Godot.Core.Control.has_constant,\n        Godot.Core.Control.has_constant_override,\n        Godot.Core.Control.has_focus, Godot.Core.Control.has_font,\n        Godot.Core.Control.has_font_override, Godot.Core.Control.has_icon,\n        Godot.Core.Control.has_icon_override, Godot.Core.Control.has_point,\n        Godot.Core.Control.has_shader_override,\n        Godot.Core.Control.has_stylebox,\n        Godot.Core.Control.has_stylebox_override,\n        Godot.Core.Control.is_clipping_contents,\n        Godot.Core.Control.minimum_size_changed,\n        Godot.Core.Control.release_focus, Godot.Core.Control.set_anchor,\n        Godot.Core.Control.set_anchor_and_margin,\n        Godot.Core.Control.set_anchors_and_margins_preset,\n        Godot.Core.Control.set_anchors_preset,\n        Godot.Core.Control.set_begin, Godot.Core.Control.set_clip_contents,\n        Godot.Core.Control.set_custom_minimum_size,\n        Godot.Core.Control.set_default_cursor_shape,\n        Godot.Core.Control.set_drag_forwarding,\n        Godot.Core.Control.set_drag_preview, Godot.Core.Control.set_end,\n        Godot.Core.Control.set_focus_mode,\n        Godot.Core.Control.set_focus_neighbour,\n        Godot.Core.Control.set_focus_next,\n        Godot.Core.Control.set_focus_previous,\n        Godot.Core.Control.set_global_position,\n        Godot.Core.Control.set_h_grow_direction,\n        Godot.Core.Control.set_h_size_flags, Godot.Core.Control.set_margin,\n        Godot.Core.Control.set_margins_preset,\n        Godot.Core.Control.set_mouse_filter,\n        Godot.Core.Control.set_pivot_offset,\n        Godot.Core.Control.set_position, Godot.Core.Control.set_rotation,\n        Godot.Core.Control.set_rotation_degrees,\n        Godot.Core.Control.set_scale, Godot.Core.Control.set_size,\n        Godot.Core.Control.set_stretch_ratio, Godot.Core.Control.set_theme,\n        Godot.Core.Control.set_tooltip,\n        Godot.Core.Control.set_v_grow_direction,\n        Godot.Core.Control.set_v_size_flags, Godot.Core.Control.show_modal,\n        Godot.Core.Control.warp_mouse)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.CanvasItem()\n\n_NOTIFICATION_MOUSE_EXIT :: Int\n_NOTIFICATION_MOUSE_EXIT = 42\n\n_CURSOR_MOVE :: Int\n_CURSOR_MOVE = 13\n\n_NOTIFICATION_MOUSE_ENTER :: Int\n_NOTIFICATION_MOUSE_ENTER = 41\n\n_PRESET_MODE_KEEP_WIDTH :: Int\n_PRESET_MODE_KEEP_WIDTH = 1\n\n_CURSOR_ARROW :: Int\n_CURSOR_ARROW = 0\n\n_GROW_DIRECTION_BEGIN :: Int\n_GROW_DIRECTION_BEGIN = 0\n\n_CURSOR_IBEAM :: Int\n_CURSOR_IBEAM = 1\n\n_NOTIFICATION_SCROLL_END :: Int\n_NOTIFICATION_SCROLL_END = 48\n\n_CURSOR_HSPLIT :: Int\n_CURSOR_HSPLIT = 15\n\n_FOCUS_ALL :: Int\n_FOCUS_ALL = 2\n\n_PRESET_BOTTOM_RIGHT :: Int\n_PRESET_BOTTOM_RIGHT = 3\n\n_CURSOR_DRAG :: Int\n_CURSOR_DRAG = 6\n\n_PRESET_TOP_LEFT :: Int\n_PRESET_TOP_LEFT = 0\n\n_PRESET_CENTER_TOP :: Int\n_PRESET_CENTER_TOP = 5\n\n_FOCUS_CLICK :: Int\n_FOCUS_CLICK = 1\n\n_CURSOR_BUSY :: Int\n_CURSOR_BUSY = 5\n\n_SIZE_SHRINK_CENTER :: Int\n_SIZE_SHRINK_CENTER = 4\n\n_CURSOR_CROSS :: Int\n_CURSOR_CROSS = 3\n\n_CURSOR_WAIT :: Int\n_CURSOR_WAIT = 4\n\n_PRESET_TOP_RIGHT :: Int\n_PRESET_TOP_RIGHT = 1\n\n_NOTIFICATION_THEME_CHANGED :: Int\n_NOTIFICATION_THEME_CHANGED = 45\n\n_CURSOR_BDIAGSIZE :: Int\n_CURSOR_BDIAGSIZE = 11\n\n_PRESET_HCENTER_WIDE :: Int\n_PRESET_HCENTER_WIDE = 14\n\n_GROW_DIRECTION_BOTH :: Int\n_GROW_DIRECTION_BOTH = 2\n\n_ANCHOR_BEGIN :: Int\n_ANCHOR_BEGIN = 0\n\n_MOUSE_FILTER_IGNORE :: Int\n_MOUSE_FILTER_IGNORE = 2\n\n_PRESET_TOP_WIDE :: Int\n_PRESET_TOP_WIDE = 10\n\n_PRESET_MODE_MINSIZE :: Int\n_PRESET_MODE_MINSIZE = 0\n\n_NOTIFICATION_FOCUS_ENTER :: Int\n_NOTIFICATION_FOCUS_ENTER = 43\n\n_SIZE_EXPAND_FILL :: Int\n_SIZE_EXPAND_FILL = 3\n\n_CURSOR_HELP :: Int\n_CURSOR_HELP = 16\n\n_NOTIFICATION_RESIZED :: Int\n_NOTIFICATION_RESIZED = 40\n\n_SIZE_EXPAND :: Int\n_SIZE_EXPAND = 2\n\n_CURSOR_CAN_DROP :: Int\n_CURSOR_CAN_DROP = 7\n\n_NOTIFICATION_SCROLL_BEGIN :: Int\n_NOTIFICATION_SCROLL_BEGIN = 47\n\n_PRESET_MODE_KEEP_SIZE :: Int\n_PRESET_MODE_KEEP_SIZE = 3\n\n_GROW_DIRECTION_END :: Int\n_GROW_DIRECTION_END = 1\n\n_PRESET_VCENTER_WIDE :: Int\n_PRESET_VCENTER_WIDE = 13\n\n_SIZE_SHRINK_END :: Int\n_SIZE_SHRINK_END = 8\n\n_PRESET_RIGHT_WIDE :: Int\n_PRESET_RIGHT_WIDE = 11\n\n_SIZE_FILL :: Int\n_SIZE_FILL = 1\n\n_PRESET_BOTTOM_WIDE :: Int\n_PRESET_BOTTOM_WIDE = 12\n\n_CURSOR_POINTING_HAND :: Int\n_CURSOR_POINTING_HAND = 2\n\n_PRESET_MODE_KEEP_HEIGHT :: Int\n_PRESET_MODE_KEEP_HEIGHT = 2\n\n_CURSOR_FDIAGSIZE :: Int\n_CURSOR_FDIAGSIZE = 12\n\n_PRESET_WIDE :: Int\n_PRESET_WIDE = 15\n\n_PRESET_CENTER_LEFT :: Int\n_PRESET_CENTER_LEFT = 4\n\n_MOUSE_FILTER_PASS :: Int\n_MOUSE_FILTER_PASS = 1\n\n_NOTIFICATION_MODAL_CLOSE :: Int\n_NOTIFICATION_MODAL_CLOSE = 46\n\n_CURSOR_HSIZE :: Int\n_CURSOR_HSIZE = 10\n\n_PRESET_CENTER_RIGHT :: Int\n_PRESET_CENTER_RIGHT = 6\n\n_CURSOR_FORBIDDEN :: Int\n_CURSOR_FORBIDDEN = 8\n\n_CURSOR_VSIZE :: Int\n_CURSOR_VSIZE = 9\n\n_PRESET_CENTER_BOTTOM :: Int\n_PRESET_CENTER_BOTTOM = 7\n\n_NOTIFICATION_FOCUS_EXIT :: Int\n_NOTIFICATION_FOCUS_EXIT = 44\n\n_PRESET_LEFT_WIDE :: Int\n_PRESET_LEFT_WIDE = 9\n\n_ANCHOR_END :: Int\n_ANCHOR_END = 1\n\n_MOUSE_FILTER_STOP :: Int\n_MOUSE_FILTER_STOP = 0\n\n_PRESET_BOTTOM_LEFT :: Int\n_PRESET_BOTTOM_LEFT = 2\n\n_PRESET_CENTER :: Int\n_PRESET_CENTER = 8\n\n_CURSOR_VSPLIT :: Int\n_CURSOR_VSPLIT = 14\n\n_FOCUS_NONE :: Int\n_FOCUS_NONE = 0\n\n-- | Emitted when the node gains keyboard focus.\nsig_focus_entered :: Godot.Internal.Dispatch.Signal Control\nsig_focus_entered = Godot.Internal.Dispatch.Signal \"focus_entered\"\n\ninstance NodeSignal Control \"focus_entered\" '[]\n\n-- | Emitted when the node loses keyboard focus.\nsig_focus_exited :: Godot.Internal.Dispatch.Signal Control\nsig_focus_exited = Godot.Internal.Dispatch.Signal \"focus_exited\"\n\ninstance NodeSignal Control \"focus_exited\" '[]\n\n-- | Emitted when the node receives an @InputEvent@.\nsig_gui_input :: Godot.Internal.Dispatch.Signal Control\nsig_gui_input = Godot.Internal.Dispatch.Signal \"gui_input\"\n\ninstance NodeSignal Control \"gui_input\" '[InputEvent]\n\n-- | Emitted when the node's minimum size changes.\nsig_minimum_size_changed :: Godot.Internal.Dispatch.Signal Control\nsig_minimum_size_changed\n  = Godot.Internal.Dispatch.Signal \"minimum_size_changed\"\n\ninstance NodeSignal Control \"minimum_size_changed\" '[]\n\n-- | Emitted when a modal @Control@ is closed. See @method show_modal@.\nsig_modal_closed :: Godot.Internal.Dispatch.Signal Control\nsig_modal_closed = Godot.Internal.Dispatch.Signal \"modal_closed\"\n\ninstance NodeSignal Control \"modal_closed\" '[]\n\n-- | Emitted when the mouse enters the control's @Rect@ area, provided its @mouse_filter@ lets the event reach it.\nsig_mouse_entered :: Godot.Internal.Dispatch.Signal Control\nsig_mouse_entered = Godot.Internal.Dispatch.Signal \"mouse_entered\"\n\ninstance NodeSignal Control \"mouse_entered\" '[]\n\n-- | Emitted when the mouse leaves the control's @Rect@ area, provided its @mouse_filter@ lets the event reach it.\nsig_mouse_exited :: Godot.Internal.Dispatch.Signal Control\nsig_mouse_exited = Godot.Internal.Dispatch.Signal \"mouse_exited\"\n\ninstance NodeSignal Control \"mouse_exited\" '[]\n\n-- | Emitted when the control changes size.\nsig_resized :: Godot.Internal.Dispatch.Signal Control\nsig_resized = Godot.Internal.Dispatch.Signal \"resized\"\n\ninstance NodeSignal Control \"resized\" '[]\n\n-- | Emitted when one of the size flags changes. See @size_flags_horizontal@ and @size_flags_vertical@.\nsig_size_flags_changed :: Godot.Internal.Dispatch.Signal Control\nsig_size_flags_changed\n  = Godot.Internal.Dispatch.Signal \"size_flags_changed\"\n\ninstance NodeSignal Control \"size_flags_changed\" '[]\n\ninstance NodeProperty Control \"anchor_bottom\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_anchor, wrapIndexedSetter 3 _set_anchor,\n             Nothing)\n\ninstance NodeProperty Control \"anchor_left\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_anchor, wrapIndexedSetter 0 _set_anchor,\n             Nothing)\n\ninstance NodeProperty Control \"anchor_right\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_anchor, wrapIndexedSetter 2 _set_anchor,\n             Nothing)\n\ninstance NodeProperty Control \"anchor_top\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_anchor, wrapIndexedSetter 1 _set_anchor,\n             Nothing)\n\ninstance NodeProperty Control \"focus_mode\" Int 'False where\n        nodeProperty\n          = (get_focus_mode, wrapDroppingSetter set_focus_mode, Nothing)\n\ninstance NodeProperty Control \"focus_neighbour_bottom\" NodePath\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_focus_neighbour,\n             wrapIndexedSetter 3 set_focus_neighbour, Nothing)\n\ninstance NodeProperty Control \"focus_neighbour_left\" NodePath\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_focus_neighbour,\n             wrapIndexedSetter 0 set_focus_neighbour, Nothing)\n\ninstance NodeProperty Control \"focus_neighbour_right\" NodePath\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_focus_neighbour,\n             wrapIndexedSetter 2 set_focus_neighbour, Nothing)\n\ninstance NodeProperty Control \"focus_neighbour_top\" NodePath 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_focus_neighbour,\n             wrapIndexedSetter 1 set_focus_neighbour, Nothing)\n\ninstance NodeProperty Control \"focus_next\" NodePath 'False where\n        nodeProperty\n          = (get_focus_next, wrapDroppingSetter set_focus_next, Nothing)\n\ninstance NodeProperty Control \"focus_previous\" NodePath 'False\n         where\n        nodeProperty\n          = (get_focus_previous, wrapDroppingSetter set_focus_previous,\n             Nothing)\n\ninstance NodeProperty Control \"grow_horizontal\" Int 'False where\n        nodeProperty\n          = (get_h_grow_direction, wrapDroppingSetter set_h_grow_direction,\n             Nothing)\n\ninstance NodeProperty Control \"grow_vertical\" Int 'False where\n        nodeProperty\n          = (get_v_grow_direction, wrapDroppingSetter set_v_grow_direction,\n             Nothing)\n\ninstance NodeProperty Control \"hint_tooltip\" GodotString 'False\n         where\n        nodeProperty\n          = (_get_tooltip, wrapDroppingSetter set_tooltip, Nothing)\n\ninstance NodeProperty Control \"margin_bottom\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_margin, wrapIndexedSetter 3 set_margin,\n             Nothing)\n\ninstance NodeProperty Control \"margin_left\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_margin, wrapIndexedSetter 0 set_margin,\n             Nothing)\n\ninstance NodeProperty Control \"margin_right\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_margin, wrapIndexedSetter 2 set_margin,\n             Nothing)\n\ninstance NodeProperty Control \"margin_top\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_margin, wrapIndexedSetter 1 set_margin,\n             Nothing)\n\ninstance NodeProperty Control \"mouse_default_cursor_shape\" Int\n           'False\n         where\n        nodeProperty\n          = (get_default_cursor_shape,\n             wrapDroppingSetter set_default_cursor_shape, Nothing)\n\ninstance NodeProperty Control \"mouse_filter\" Int 'False where\n        nodeProperty\n          = (get_mouse_filter, wrapDroppingSetter set_mouse_filter, Nothing)\n\ninstance NodeProperty Control \"rect_clip_content\" Bool 'False where\n        nodeProperty\n          = (is_clipping_contents, wrapDroppingSetter set_clip_contents,\n             Nothing)\n\ninstance NodeProperty Control \"rect_global_position\" Vector2 'False\n         where\n        nodeProperty\n          = (get_global_position, wrapDroppingSetter _set_global_position,\n             Nothing)\n\ninstance NodeProperty Control \"rect_min_size\" Vector2 'False where\n        nodeProperty\n          = (get_custom_minimum_size,\n             wrapDroppingSetter set_custom_minimum_size, Nothing)\n\ninstance NodeProperty Control \"rect_pivot_offset\" Vector2 'False\n         where\n        nodeProperty\n          = (get_pivot_offset, wrapDroppingSetter set_pivot_offset, Nothing)\n\ninstance NodeProperty Control \"rect_position\" Vector2 'False where\n        nodeProperty\n          = (get_position, wrapDroppingSetter _set_position, Nothing)\n\ninstance NodeProperty Control \"rect_rotation\" Float 'False where\n        nodeProperty\n          = (get_rotation_degrees, wrapDroppingSetter set_rotation_degrees,\n             Nothing)\n\ninstance NodeProperty Control \"rect_scale\" Vector2 'False where\n        nodeProperty = (get_scale, wrapDroppingSetter set_scale, Nothing)\n\ninstance NodeProperty Control \"rect_size\" Vector2 'False where\n        nodeProperty = (get_size, wrapDroppingSetter _set_size, Nothing)\n\ninstance NodeProperty Control \"size_flags_horizontal\" Int 'False\n         where\n        nodeProperty\n          = (get_h_size_flags, wrapDroppingSetter set_h_size_flags, Nothing)\n\ninstance NodeProperty Control \"size_flags_stretch_ratio\" Float\n           'False\n         where\n        nodeProperty\n          = (get_stretch_ratio, wrapDroppingSetter set_stretch_ratio,\n             Nothing)\n\ninstance NodeProperty Control \"size_flags_vertical\" Int 'False\n         where\n        nodeProperty\n          = (get_v_size_flags, wrapDroppingSetter set_v_size_flags, Nothing)\n\ninstance NodeProperty Control \"theme\" Theme 'False where\n        nodeProperty = (get_theme, wrapDroppingSetter set_theme, Nothing)\n\n{-# NOINLINE bindControl__clips_input #-}\n\n-- | Virtual method to be implemented by the user. Returns whether @method _gui_input@ should not be called for children controls outside this control's rectangle. Input will be clipped to the Rect of this @Control@. Similar to @rect_clip_content@, but doesn't affect visibility.\n--   \t\t\t\tIf not overridden, defaults to @false@.\nbindControl__clips_input :: MethodBind\nbindControl__clips_input\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"_clips_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Virtual method to be implemented by the user. Returns whether @method _gui_input@ should not be called for children controls outside this control's rectangle. Input will be clipped to the Rect of this @Control@. Similar to @rect_clip_content@, but doesn't affect visibility.\n--   \t\t\t\tIf not overridden, defaults to @false@.\n_clips_input :: (Control :< cls, Object :< cls) => cls -> IO Bool\n_clips_input cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl__clips_input (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"_clips_input\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Control._clips_input\n\n{-# NOINLINE bindControl__get_minimum_size #-}\n\n-- | Virtual method to be implemented by the user. Returns the minimum size for this control. Alternative to @rect_min_size@ for controlling minimum size via code. The actual minimum size will be the max value of these two (in each axis separately).\n--   \t\t\t\tIf not overridden, defaults to @Vector2.ZERO@.\nbindControl__get_minimum_size :: MethodBind\nbindControl__get_minimum_size\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"_get_minimum_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Virtual method to be implemented by the user. Returns the minimum size for this control. Alternative to @rect_min_size@ for controlling minimum size via code. The actual minimum size will be the max value of these two (in each axis separately).\n--   \t\t\t\tIf not overridden, defaults to @Vector2.ZERO@.\n_get_minimum_size ::\n                    (Control :< cls, Object :< cls) => cls -> IO Vector2\n_get_minimum_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl__get_minimum_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"_get_minimum_size\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Control._get_minimum_size\n\n{-# NOINLINE bindControl__get_tooltip #-}\n\n-- | Changes the tooltip text. The tooltip appears when the user's mouse cursor stays idle over this control for a few moments, provided that the @mouse_filter@ property is not @MOUSE_FILTER_IGNORE@. You can change the time required for the tooltip to appear with @gui/timers/tooltip_delay_sec@ option in Project Settings.\nbindControl__get_tooltip :: MethodBind\nbindControl__get_tooltip\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"_get_tooltip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes the tooltip text. The tooltip appears when the user's mouse cursor stays idle over this control for a few moments, provided that the @mouse_filter@ property is not @MOUSE_FILTER_IGNORE@. You can change the time required for the tooltip to appear with @gui/timers/tooltip_delay_sec@ option in Project Settings.\n_get_tooltip ::\n               (Control :< cls, Object :< cls) => cls -> IO GodotString\n_get_tooltip cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl__get_tooltip (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"_get_tooltip\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Control._get_tooltip\n\n{-# NOINLINE bindControl__gui_input #-}\n\n-- | Virtual method to be implemented by the user. Use this method to process and accept inputs on UI elements. See @method accept_event@.\n--   \t\t\t\tExample: clicking a control.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc _gui_input(event):\n--   \t\t\t\t    if event is InputEventMouseButton:\n--   \t\t\t\t        if event.button_index == BUTTON_LEFT and event.pressed:\n--   \t\t\t\t            print(\"I've been clicked D:\")\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tThe event won't trigger if:\n--   \t\t\t\t* clicking outside the control (see @method has_point@);\n--   \t\t\t\t* control has @mouse_filter@ set to @MOUSE_FILTER_IGNORE@;\n--   \t\t\t\t* control is obstructed by another @Control@ on top of it, which doesn't have @mouse_filter@ set to @MOUSE_FILTER_IGNORE@;\n--   \t\t\t\t* control's parent has @mouse_filter@ set to @MOUSE_FILTER_STOP@ or has accepted the event;\n--   \t\t\t\t* it happens outside parent's rectangle and the parent has either @rect_clip_content@ or @method _clips_input@ enabled.\nbindControl__gui_input :: MethodBind\nbindControl__gui_input\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Virtual method to be implemented by the user. Use this method to process and accept inputs on UI elements. See @method accept_event@.\n--   \t\t\t\tExample: clicking a control.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc _gui_input(event):\n--   \t\t\t\t    if event is InputEventMouseButton:\n--   \t\t\t\t        if event.button_index == BUTTON_LEFT and event.pressed:\n--   \t\t\t\t            print(\"I've been clicked D:\")\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tThe event won't trigger if:\n--   \t\t\t\t* clicking outside the control (see @method has_point@);\n--   \t\t\t\t* control has @mouse_filter@ set to @MOUSE_FILTER_IGNORE@;\n--   \t\t\t\t* control is obstructed by another @Control@ on top of it, which doesn't have @mouse_filter@ set to @MOUSE_FILTER_IGNORE@;\n--   \t\t\t\t* control's parent has @mouse_filter@ set to @MOUSE_FILTER_STOP@ or has accepted the event;\n--   \t\t\t\t* it happens outside parent's rectangle and the parent has either @rect_clip_content@ or @method _clips_input@ enabled.\n_gui_input ::\n             (Control :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl__gui_input (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"_gui_input\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.Control._gui_input\n\n{-# NOINLINE bindControl__make_custom_tooltip #-}\n\n-- | Virtual method to be implemented by the user. Returns a @Control@ node that should be used as a tooltip instead of the default one. Use @for_text@ parameter to determine what text the tooltip should contain (likely the contents of @hint_tooltip@).\n--   \t\t\t\tThe returned node must be of type @Control@ or Control-derieved. It can have child nodes of any type. It is freed when the tooltip disappears, so make sure you always provide a new instance, not e.g. a node from scene. When @null@ or non-Control node is returned, the default tooltip will be used instead.\n--   \t\t\t\t__Note:__ The tooltip is shrunk to minimal size. If you want to ensure it's fully visible, you might want to set its @rect_min_size@ to some non-zero value.\n--   \t\t\t\tExample of usage with custom-constructed node:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc _make_custom_tooltip(for_text):\n--   \t\t\t\t    var label = Label.new()\n--   \t\t\t\t    label.text = for_text\n--   \t\t\t\t    return label\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tExample of usage with custom scene instance:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc _make_custom_tooltip(for_text):\n--   \t\t\t\t    var tooltip = preload(\"SomeTooltipScene.tscn\").instance()\n--   \t\t\t\t    tooltip.get_node(\"Label\").text = for_text\n--   \t\t\t\t    return tooltip\n--   \t\t\t\t\n--   @\nbindControl__make_custom_tooltip :: MethodBind\nbindControl__make_custom_tooltip\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"_make_custom_tooltip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Virtual method to be implemented by the user. Returns a @Control@ node that should be used as a tooltip instead of the default one. Use @for_text@ parameter to determine what text the tooltip should contain (likely the contents of @hint_tooltip@).\n--   \t\t\t\tThe returned node must be of type @Control@ or Control-derieved. It can have child nodes of any type. It is freed when the tooltip disappears, so make sure you always provide a new instance, not e.g. a node from scene. When @null@ or non-Control node is returned, the default tooltip will be used instead.\n--   \t\t\t\t__Note:__ The tooltip is shrunk to minimal size. If you want to ensure it's fully visible, you might want to set its @rect_min_size@ to some non-zero value.\n--   \t\t\t\tExample of usage with custom-constructed node:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc _make_custom_tooltip(for_text):\n--   \t\t\t\t    var label = Label.new()\n--   \t\t\t\t    label.text = for_text\n--   \t\t\t\t    return label\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tExample of usage with custom scene instance:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc _make_custom_tooltip(for_text):\n--   \t\t\t\t    var tooltip = preload(\"SomeTooltipScene.tscn\").instance()\n--   \t\t\t\t    tooltip.get_node(\"Label\").text = for_text\n--   \t\t\t\t    return tooltip\n--   \t\t\t\t\n--   @\n_make_custom_tooltip ::\n                       (Control :< cls, Object :< cls) => cls -> GodotString -> IO Object\n_make_custom_tooltip cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl__make_custom_tooltip\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"_make_custom_tooltip\" '[GodotString]\n           (IO Object)\n         where\n        nodeMethod = Godot.Core.Control._make_custom_tooltip\n\n{-# NOINLINE bindControl__override_changed #-}\n\nbindControl__override_changed :: MethodBind\nbindControl__override_changed\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"_override_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_override_changed ::\n                    (Control :< cls, Object :< cls) => cls -> IO ()\n_override_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl__override_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"_override_changed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Control._override_changed\n\n{-# NOINLINE bindControl__set_anchor #-}\n\n-- | Anchors the bottom edge of the node to the origin, the center, or the end of its parent control. It changes how the bottom margin updates when the node moves or changes size. You can use one of the @enum Anchor@ constants for convenience.\nbindControl__set_anchor :: MethodBind\nbindControl__set_anchor\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"_set_anchor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Anchors the bottom edge of the node to the origin, the center, or the end of its parent control. It changes how the bottom margin updates when the node moves or changes size. You can use one of the @enum Anchor@ constants for convenience.\n_set_anchor ::\n              (Control :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\n_set_anchor cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl__set_anchor (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"_set_anchor\" '[Int, Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Control._set_anchor\n\n{-# NOINLINE bindControl__set_global_position #-}\n\n-- | The node's global position, relative to the world (usually to the top-left corner of the window).\nbindControl__set_global_position :: MethodBind\nbindControl__set_global_position\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"_set_global_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's global position, relative to the world (usually to the top-left corner of the window).\n_set_global_position ::\n                       (Control :< cls, Object :< cls) => cls -> Vector2 -> IO ()\n_set_global_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl__set_global_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"_set_global_position\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control._set_global_position\n\n{-# NOINLINE bindControl__set_position #-}\n\n-- | The node's position, relative to its parent. It corresponds to the rectangle's top-left corner. The property is not affected by @rect_pivot_offset@.\nbindControl__set_position :: MethodBind\nbindControl__set_position\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"_set_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's position, relative to its parent. It corresponds to the rectangle's top-left corner. The property is not affected by @rect_pivot_offset@.\n_set_position ::\n                (Control :< cls, Object :< cls) => cls -> Vector2 -> IO ()\n_set_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl__set_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"_set_position\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.Control._set_position\n\n{-# NOINLINE bindControl__set_size #-}\n\n-- | The size of the node's bounding rectangle, in pixels. @Container@ nodes update this property automatically.\nbindControl__set_size :: MethodBind\nbindControl__set_size\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"_set_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size of the node's bounding rectangle, in pixels. @Container@ nodes update this property automatically.\n_set_size ::\n            (Control :< cls, Object :< cls) => cls -> Vector2 -> IO ()\n_set_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl__set_size (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"_set_size\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.Control._set_size\n\n{-# NOINLINE bindControl__size_changed #-}\n\nbindControl__size_changed :: MethodBind\nbindControl__size_changed\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"_size_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_size_changed :: (Control :< cls, Object :< cls) => cls -> IO ()\n_size_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl__size_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"_size_changed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Control._size_changed\n\n{-# NOINLINE bindControl__theme_changed #-}\n\nbindControl__theme_changed :: MethodBind\nbindControl__theme_changed\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"_theme_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_theme_changed :: (Control :< cls, Object :< cls) => cls -> IO ()\n_theme_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl__theme_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"_theme_changed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Control._theme_changed\n\n{-# NOINLINE bindControl__update_minimum_size #-}\n\nbindControl__update_minimum_size :: MethodBind\nbindControl__update_minimum_size\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"_update_minimum_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_minimum_size ::\n                       (Control :< cls, Object :< cls) => cls -> IO ()\n_update_minimum_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl__update_minimum_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"_update_minimum_size\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.Control._update_minimum_size\n\n{-# NOINLINE bindControl_accept_event #-}\n\n-- | Marks an input event as handled. Once you accept an input event, it stops propagating, even to nodes listening to @method Node._unhandled_input@ or @method Node._unhandled_key_input@.\nbindControl_accept_event :: MethodBind\nbindControl_accept_event\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"accept_event\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Marks an input event as handled. Once you accept an input event, it stops propagating, even to nodes listening to @method Node._unhandled_input@ or @method Node._unhandled_key_input@.\naccept_event :: (Control :< cls, Object :< cls) => cls -> IO ()\naccept_event cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_accept_event (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"accept_event\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Control.accept_event\n\n{-# NOINLINE bindControl_add_color_override #-}\n\n-- | Overrides the @Color@ with given @name@ in the @theme@ resource the control uses.\n--   \t\t\t\t__Note:__ Unlike other theme overrides, there is no way to undo a color override without manually assigning the previous color.\n--   \t\t\t\t__Example of overriding a label's color and resetting it later:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t# Override the child node \"MyLabel\"'s font color to orange.\n--   \t\t\t\t$MyLabel.add_color_override(\"font_color\", Color(1, 0.5, 0))\n--   \n--   \t\t\t\t# Reset the color by creating a new node to get the default value:\n--   \t\t\t\tvar default_label_color = Label.new().get_color(\"font_color\")\n--   \t\t\t\t$MyLabel.add_color_override(\"font_color\", default_label_color)\n--   \t\t\t\t\n--   @\nbindControl_add_color_override :: MethodBind\nbindControl_add_color_override\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"add_color_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Overrides the @Color@ with given @name@ in the @theme@ resource the control uses.\n--   \t\t\t\t__Note:__ Unlike other theme overrides, there is no way to undo a color override without manually assigning the previous color.\n--   \t\t\t\t__Example of overriding a label's color and resetting it later:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t# Override the child node \"MyLabel\"'s font color to orange.\n--   \t\t\t\t$MyLabel.add_color_override(\"font_color\", Color(1, 0.5, 0))\n--   \n--   \t\t\t\t# Reset the color by creating a new node to get the default value:\n--   \t\t\t\tvar default_label_color = Label.new().get_color(\"font_color\")\n--   \t\t\t\t$MyLabel.add_color_override(\"font_color\", default_label_color)\n--   \t\t\t\t\n--   @\nadd_color_override ::\n                     (Control :< cls, Object :< cls) =>\n                     cls -> GodotString -> Color -> IO ()\nadd_color_override cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_add_color_override (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"add_color_override\"\n           '[GodotString, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.add_color_override\n\n{-# NOINLINE bindControl_add_constant_override #-}\n\n-- | Overrides an integer constant with given @name@ in the @theme@ resource the control uses. If the @constant@ is @0@, the override is cleared and the constant from assigned @Theme@ is used.\nbindControl_add_constant_override :: MethodBind\nbindControl_add_constant_override\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"add_constant_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Overrides an integer constant with given @name@ in the @theme@ resource the control uses. If the @constant@ is @0@, the override is cleared and the constant from assigned @Theme@ is used.\nadd_constant_override ::\n                        (Control :< cls, Object :< cls) =>\n                        cls -> GodotString -> Int -> IO ()\nadd_constant_override cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_add_constant_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"add_constant_override\"\n           '[GodotString, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.add_constant_override\n\n{-# NOINLINE bindControl_add_font_override #-}\n\n-- | Overrides the font with given @name@ in the @theme@ resource the control uses. If @font@ is @null@ or invalid, the override is cleared and the font from assigned @Theme@ is used.\nbindControl_add_font_override :: MethodBind\nbindControl_add_font_override\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"add_font_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Overrides the font with given @name@ in the @theme@ resource the control uses. If @font@ is @null@ or invalid, the override is cleared and the font from assigned @Theme@ is used.\nadd_font_override ::\n                    (Control :< cls, Object :< cls) =>\n                    cls -> GodotString -> Font -> IO ()\nadd_font_override cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_add_font_override (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"add_font_override\"\n           '[GodotString, Font]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.add_font_override\n\n{-# NOINLINE bindControl_add_icon_override #-}\n\n-- | Overrides the icon with given @name@ in the @theme@ resource the control uses. If @icon@ is @null@ or invalid, the override is cleared and the icon from assigned @Theme@ is used.\nbindControl_add_icon_override :: MethodBind\nbindControl_add_icon_override\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"add_icon_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Overrides the icon with given @name@ in the @theme@ resource the control uses. If @icon@ is @null@ or invalid, the override is cleared and the icon from assigned @Theme@ is used.\nadd_icon_override ::\n                    (Control :< cls, Object :< cls) =>\n                    cls -> GodotString -> Texture -> IO ()\nadd_icon_override cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_add_icon_override (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"add_icon_override\"\n           '[GodotString, Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.add_icon_override\n\n{-# NOINLINE bindControl_add_shader_override #-}\n\n-- | Overrides the @Shader@ with given @name@ in the @theme@ resource the control uses. If @shader@ is @null@ or invalid, the override is cleared and the shader from assigned @Theme@ is used.\nbindControl_add_shader_override :: MethodBind\nbindControl_add_shader_override\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"add_shader_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Overrides the @Shader@ with given @name@ in the @theme@ resource the control uses. If @shader@ is @null@ or invalid, the override is cleared and the shader from assigned @Theme@ is used.\nadd_shader_override ::\n                      (Control :< cls, Object :< cls) =>\n                      cls -> GodotString -> Shader -> IO ()\nadd_shader_override cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_add_shader_override (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"add_shader_override\"\n           '[GodotString, Shader]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.add_shader_override\n\n{-# NOINLINE bindControl_add_stylebox_override #-}\n\n-- | Overrides the @StyleBox@ with given @name@ in the @theme@ resource the control uses. If @stylebox@ is empty or invalid, the override is cleared and the @StyleBox@ from assigned @Theme@ is used.\n--   \t\t\t\t__Example of modifying a property in a StyleBox by duplicating it:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t# The snippet below assumes the child node MyButton has a StyleBoxFlat assigned.\n--   \t\t\t\t# Resources are shared across instances, so we need to duplicate it\n--   \t\t\t\t# to avoid modifying the appearance of all other buttons.\n--   \t\t\t\tvar new_stylebox_normal = $MyButton.get_stylebox(\"normal\").duplicate()\n--   \t\t\t\tnew_stylebox_normal.border_width_top = 3\n--   \t\t\t\tnew_stylebox_normal.border_color = Color(0, 1, 0.5)\n--   \t\t\t\t$MyButton.add_stylebox_override(\"normal\", new_stylebox_normal)\n--   \n--   \t\t\t\t# Remove the stylebox override:\n--   \t\t\t\t$MyButton.add_stylebox_override(\"normal\", null)\n--   \t\t\t\t\n--   @\nbindControl_add_stylebox_override :: MethodBind\nbindControl_add_stylebox_override\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"add_stylebox_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Overrides the @StyleBox@ with given @name@ in the @theme@ resource the control uses. If @stylebox@ is empty or invalid, the override is cleared and the @StyleBox@ from assigned @Theme@ is used.\n--   \t\t\t\t__Example of modifying a property in a StyleBox by duplicating it:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t# The snippet below assumes the child node MyButton has a StyleBoxFlat assigned.\n--   \t\t\t\t# Resources are shared across instances, so we need to duplicate it\n--   \t\t\t\t# to avoid modifying the appearance of all other buttons.\n--   \t\t\t\tvar new_stylebox_normal = $MyButton.get_stylebox(\"normal\").duplicate()\n--   \t\t\t\tnew_stylebox_normal.border_width_top = 3\n--   \t\t\t\tnew_stylebox_normal.border_color = Color(0, 1, 0.5)\n--   \t\t\t\t$MyButton.add_stylebox_override(\"normal\", new_stylebox_normal)\n--   \n--   \t\t\t\t# Remove the stylebox override:\n--   \t\t\t\t$MyButton.add_stylebox_override(\"normal\", null)\n--   \t\t\t\t\n--   @\nadd_stylebox_override ::\n                        (Control :< cls, Object :< cls) =>\n                        cls -> GodotString -> StyleBox -> IO ()\nadd_stylebox_override cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_add_stylebox_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"add_stylebox_override\"\n           '[GodotString, StyleBox]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.add_stylebox_override\n\n{-# NOINLINE bindControl_can_drop_data #-}\n\n-- | Godot calls this method to test if @data@ from a control's @method get_drag_data@ can be dropped at @position@. @position@ is local to this control.\n--   \t\t\t\tThis method should only be used to test the data. Process the data in @method drop_data@.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc can_drop_data(position, data):\n--   \t\t\t\t    # Check position if it is relevant to you\n--   \t\t\t\t    # Otherwise, just check data\n--   \t\t\t\t    return typeof(data) == TYPE_DICTIONARY and data.has(\"expected\")\n--   \t\t\t\t\n--   @\nbindControl_can_drop_data :: MethodBind\nbindControl_can_drop_data\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"can_drop_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Godot calls this method to test if @data@ from a control's @method get_drag_data@ can be dropped at @position@. @position@ is local to this control.\n--   \t\t\t\tThis method should only be used to test the data. Process the data in @method drop_data@.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc can_drop_data(position, data):\n--   \t\t\t\t    # Check position if it is relevant to you\n--   \t\t\t\t    # Otherwise, just check data\n--   \t\t\t\t    return typeof(data) == TYPE_DICTIONARY and data.has(\"expected\")\n--   \t\t\t\t\n--   @\ncan_drop_data ::\n                (Control :< cls, Object :< cls) =>\n                cls -> Vector2 -> GodotVariant -> IO Bool\ncan_drop_data cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_can_drop_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"can_drop_data\"\n           '[Vector2, GodotVariant]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Control.can_drop_data\n\n{-# NOINLINE bindControl_drop_data #-}\n\n-- | Godot calls this method to pass you the @data@ from a control's @method get_drag_data@ result. Godot first calls @method can_drop_data@ to test if @data@ is allowed to drop at @position@ where @position@ is local to this control.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc can_drop_data(position, data):\n--   \t\t\t\t    return typeof(data) == TYPE_DICTIONARY and data.has(\"color\")\n--   \n--   \t\t\t\tfunc drop_data(position, data):\n--   \t\t\t\t    color = data@\"color\"@\n--   \t\t\t\t\n--   @\nbindControl_drop_data :: MethodBind\nbindControl_drop_data\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"drop_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Godot calls this method to pass you the @data@ from a control's @method get_drag_data@ result. Godot first calls @method can_drop_data@ to test if @data@ is allowed to drop at @position@ where @position@ is local to this control.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc can_drop_data(position, data):\n--   \t\t\t\t    return typeof(data) == TYPE_DICTIONARY and data.has(\"color\")\n--   \n--   \t\t\t\tfunc drop_data(position, data):\n--   \t\t\t\t    color = data@\"color\"@\n--   \t\t\t\t\n--   @\ndrop_data ::\n            (Control :< cls, Object :< cls) =>\n            cls -> Vector2 -> GodotVariant -> IO ()\ndrop_data cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_drop_data (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"drop_data\" '[Vector2, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.drop_data\n\n{-# NOINLINE bindControl_force_drag #-}\n\n-- | Forces drag and bypasses @method get_drag_data@ and @method set_drag_preview@ by passing @data@ and @preview@. Drag will start even if the mouse is neither over nor pressed on this control.\n--   \t\t\t\tThe methods @method can_drop_data@ and @method drop_data@ must be implemented on controls that want to receive drop data.\nbindControl_force_drag :: MethodBind\nbindControl_force_drag\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"force_drag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Forces drag and bypasses @method get_drag_data@ and @method set_drag_preview@ by passing @data@ and @preview@. Drag will start even if the mouse is neither over nor pressed on this control.\n--   \t\t\t\tThe methods @method can_drop_data@ and @method drop_data@ must be implemented on controls that want to receive drop data.\nforce_drag ::\n             (Control :< cls, Object :< cls) =>\n             cls -> GodotVariant -> Control -> IO ()\nforce_drag cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_force_drag (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"force_drag\" '[GodotVariant, Control]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.force_drag\n\n{-# NOINLINE bindControl_get_anchor #-}\n\n-- | Returns the anchor identified by @margin@ constant from @enum Margin@ enum. A getter method for @anchor_bottom@, @anchor_left@, @anchor_right@ and @anchor_top@.\nbindControl_get_anchor :: MethodBind\nbindControl_get_anchor\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_anchor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the anchor identified by @margin@ constant from @enum Margin@ enum. A getter method for @anchor_bottom@, @anchor_left@, @anchor_right@ and @anchor_top@.\nget_anchor ::\n             (Control :< cls, Object :< cls) => cls -> Int -> IO Float\nget_anchor cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_anchor (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_anchor\" '[Int] (IO Float) where\n        nodeMethod = Godot.Core.Control.get_anchor\n\n{-# NOINLINE bindControl_get_begin #-}\n\n-- | Returns @margin_left@ and @margin_top@. See also @rect_position@.\nbindControl_get_begin :: MethodBind\nbindControl_get_begin\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_begin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @margin_left@ and @margin_top@. See also @rect_position@.\nget_begin :: (Control :< cls, Object :< cls) => cls -> IO Vector2\nget_begin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_begin (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_begin\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.Control.get_begin\n\n{-# NOINLINE bindControl_get_color #-}\n\n-- | Returns a color from assigned @Theme@ with given @name@ and associated with @Control@ of given @type@.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc _ready():\n--   \t\t\t\t    modulate = get_color(\"font_color\", \"Button\") #get the color defined for button fonts\n--   \t\t\t\t\n--   @\nbindControl_get_color :: MethodBind\nbindControl_get_color\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a color from assigned @Theme@ with given @name@ and associated with @Control@ of given @type@.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc _ready():\n--   \t\t\t\t    modulate = get_color(\"font_color\", \"Button\") #get the color defined for button fonts\n--   \t\t\t\t\n--   @\nget_color ::\n            (Control :< cls, Object :< cls) =>\n            cls -> GodotString -> Maybe GodotString -> IO Color\nget_color cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_color (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_color\"\n           '[GodotString, Maybe GodotString]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.Control.get_color\n\n{-# NOINLINE bindControl_get_combined_minimum_size #-}\n\n-- | Returns combined minimum size from @rect_min_size@ and @method get_minimum_size@.\nbindControl_get_combined_minimum_size :: MethodBind\nbindControl_get_combined_minimum_size\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_combined_minimum_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns combined minimum size from @rect_min_size@ and @method get_minimum_size@.\nget_combined_minimum_size ::\n                            (Control :< cls, Object :< cls) => cls -> IO Vector2\nget_combined_minimum_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_combined_minimum_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_combined_minimum_size\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Control.get_combined_minimum_size\n\n{-# NOINLINE bindControl_get_constant #-}\n\n-- | Returns a constant from assigned @Theme@ with given @name@ and associated with @Control@ of given @type@.\nbindControl_get_constant :: MethodBind\nbindControl_get_constant\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a constant from assigned @Theme@ with given @name@ and associated with @Control@ of given @type@.\nget_constant ::\n               (Control :< cls, Object :< cls) =>\n               cls -> GodotString -> Maybe GodotString -> IO Int\nget_constant cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_constant (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_constant\"\n           '[GodotString, Maybe GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Control.get_constant\n\n{-# NOINLINE bindControl_get_cursor_shape #-}\n\n-- | Returns the mouse cursor shape the control displays on mouse hover. See @enum CursorShape@.\nbindControl_get_cursor_shape :: MethodBind\nbindControl_get_cursor_shape\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_cursor_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the mouse cursor shape the control displays on mouse hover. See @enum CursorShape@.\nget_cursor_shape ::\n                   (Control :< cls, Object :< cls) => cls -> Maybe Vector2 -> IO Int\nget_cursor_shape cls arg1\n  = withVariantArray [defaultedVariant VariantVector2 (V2 0 0) arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_cursor_shape (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_cursor_shape\" '[Maybe Vector2]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Control.get_cursor_shape\n\n{-# NOINLINE bindControl_get_custom_minimum_size #-}\n\n-- | The minimum size of the node's bounding rectangle. If you set it to a value greater than (0, 0), the node's bounding rectangle will always have at least this size, even if its content is smaller. If it's set to (0, 0), the node sizes automatically to fit its content, be it a texture or child nodes.\nbindControl_get_custom_minimum_size :: MethodBind\nbindControl_get_custom_minimum_size\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_custom_minimum_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum size of the node's bounding rectangle. If you set it to a value greater than (0, 0), the node's bounding rectangle will always have at least this size, even if its content is smaller. If it's set to (0, 0), the node sizes automatically to fit its content, be it a texture or child nodes.\nget_custom_minimum_size ::\n                          (Control :< cls, Object :< cls) => cls -> IO Vector2\nget_custom_minimum_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_custom_minimum_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_custom_minimum_size\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Control.get_custom_minimum_size\n\n{-# NOINLINE bindControl_get_default_cursor_shape #-}\n\n-- | The default cursor shape for this control. Useful for Godot plugins and applications or games that use the system's mouse cursors.\n--   \t\t\t__Note:__ On Linux, shapes may vary depending on the cursor theme of the system.\nbindControl_get_default_cursor_shape :: MethodBind\nbindControl_get_default_cursor_shape\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_default_cursor_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The default cursor shape for this control. Useful for Godot plugins and applications or games that use the system's mouse cursors.\n--   \t\t\t__Note:__ On Linux, shapes may vary depending on the cursor theme of the system.\nget_default_cursor_shape ::\n                           (Control :< cls, Object :< cls) => cls -> IO Int\nget_default_cursor_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_default_cursor_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_default_cursor_shape\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Control.get_default_cursor_shape\n\n{-# NOINLINE bindControl_get_drag_data #-}\n\n-- | Godot calls this method to get data that can be dragged and dropped onto controls that expect drop data. Returns @null@ if there is no data to drag. Controls that want to receive drop data should implement @method can_drop_data@ and @method drop_data@. @position@ is local to this control. Drag may be forced with @method force_drag@.\n--   \t\t\t\tA preview that will follow the mouse that should represent the data can be set with @method set_drag_preview@. A good time to set the preview is in this method.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc get_drag_data(position):\n--   \t\t\t\t    var mydata = make_data()\n--   \t\t\t\t    set_drag_preview(make_preview(mydata))\n--   \t\t\t\t    return mydata\n--   \t\t\t\t\n--   @\nbindControl_get_drag_data :: MethodBind\nbindControl_get_drag_data\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_drag_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Godot calls this method to get data that can be dragged and dropped onto controls that expect drop data. Returns @null@ if there is no data to drag. Controls that want to receive drop data should implement @method can_drop_data@ and @method drop_data@. @position@ is local to this control. Drag may be forced with @method force_drag@.\n--   \t\t\t\tA preview that will follow the mouse that should represent the data can be set with @method set_drag_preview@. A good time to set the preview is in this method.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc get_drag_data(position):\n--   \t\t\t\t    var mydata = make_data()\n--   \t\t\t\t    set_drag_preview(make_preview(mydata))\n--   \t\t\t\t    return mydata\n--   \t\t\t\t\n--   @\nget_drag_data ::\n                (Control :< cls, Object :< cls) =>\n                cls -> Vector2 -> IO GodotVariant\nget_drag_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_drag_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_drag_data\" '[Vector2]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Control.get_drag_data\n\n{-# NOINLINE bindControl_get_end #-}\n\n-- | Returns @margin_right@ and @margin_bottom@.\nbindControl_get_end :: MethodBind\nbindControl_get_end\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_end\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @margin_right@ and @margin_bottom@.\nget_end :: (Control :< cls, Object :< cls) => cls -> IO Vector2\nget_end cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_end (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_end\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.Control.get_end\n\n{-# NOINLINE bindControl_get_focus_mode #-}\n\n-- | The focus access mode for the control (None, Click or All). Only one Control can be focused at the same time, and it will receive keyboard signals.\nbindControl_get_focus_mode :: MethodBind\nbindControl_get_focus_mode\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_focus_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The focus access mode for the control (None, Click or All). Only one Control can be focused at the same time, and it will receive keyboard signals.\nget_focus_mode :: (Control :< cls, Object :< cls) => cls -> IO Int\nget_focus_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_focus_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_focus_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Control.get_focus_mode\n\n{-# NOINLINE bindControl_get_focus_neighbour #-}\n\n-- | Returns the focus neighbour identified by @margin@ constant from @enum Margin@ enum. A getter method for @focus_neighbour_bottom@, @focus_neighbour_left@, @focus_neighbour_right@ and @focus_neighbour_top@.\nbindControl_get_focus_neighbour :: MethodBind\nbindControl_get_focus_neighbour\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_focus_neighbour\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the focus neighbour identified by @margin@ constant from @enum Margin@ enum. A getter method for @focus_neighbour_bottom@, @focus_neighbour_left@, @focus_neighbour_right@ and @focus_neighbour_top@.\nget_focus_neighbour ::\n                      (Control :< cls, Object :< cls) => cls -> Int -> IO NodePath\nget_focus_neighbour cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_focus_neighbour (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_focus_neighbour\" '[Int]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.Control.get_focus_neighbour\n\n{-# NOINLINE bindControl_get_focus_next #-}\n\n-- | Tells Godot which node it should give keyboard focus to if the user presses Tab on a keyboard by default. You can change the key by editing the @ui_focus_next@ input action.\n--   \t\t\tIf this property is not set, Godot will select a \"best guess\" based on surrounding nodes in the scene tree.\nbindControl_get_focus_next :: MethodBind\nbindControl_get_focus_next\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_focus_next\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Tells Godot which node it should give keyboard focus to if the user presses Tab on a keyboard by default. You can change the key by editing the @ui_focus_next@ input action.\n--   \t\t\tIf this property is not set, Godot will select a \"best guess\" based on surrounding nodes in the scene tree.\nget_focus_next ::\n                 (Control :< cls, Object :< cls) => cls -> IO NodePath\nget_focus_next cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_focus_next (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_focus_next\" '[] (IO NodePath)\n         where\n        nodeMethod = Godot.Core.Control.get_focus_next\n\n{-# NOINLINE bindControl_get_focus_owner #-}\n\n-- | Returns the control that has the keyboard focus or @null@ if none.\nbindControl_get_focus_owner :: MethodBind\nbindControl_get_focus_owner\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_focus_owner\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the control that has the keyboard focus or @null@ if none.\nget_focus_owner ::\n                  (Control :< cls, Object :< cls) => cls -> IO Control\nget_focus_owner cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_focus_owner (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_focus_owner\" '[] (IO Control)\n         where\n        nodeMethod = Godot.Core.Control.get_focus_owner\n\n{-# NOINLINE bindControl_get_focus_previous #-}\n\n-- | Tells Godot which node it should give keyboard focus to if the user presses Shift+Tab on a keyboard by default. You can change the key by editing the @ui_focus_prev@ input action.\n--   \t\t\tIf this property is not set, Godot will select a \"best guess\" based on surrounding nodes in the scene tree.\nbindControl_get_focus_previous :: MethodBind\nbindControl_get_focus_previous\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_focus_previous\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Tells Godot which node it should give keyboard focus to if the user presses Shift+Tab on a keyboard by default. You can change the key by editing the @ui_focus_prev@ input action.\n--   \t\t\tIf this property is not set, Godot will select a \"best guess\" based on surrounding nodes in the scene tree.\nget_focus_previous ::\n                     (Control :< cls, Object :< cls) => cls -> IO NodePath\nget_focus_previous cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_focus_previous (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_focus_previous\" '[] (IO NodePath)\n         where\n        nodeMethod = Godot.Core.Control.get_focus_previous\n\n{-# NOINLINE bindControl_get_font #-}\n\n-- | Returns a font from assigned @Theme@ with given @name@ and associated with @Control@ of given @type@.\nbindControl_get_font :: MethodBind\nbindControl_get_font\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_font\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a font from assigned @Theme@ with given @name@ and associated with @Control@ of given @type@.\nget_font ::\n           (Control :< cls, Object :< cls) =>\n           cls -> GodotString -> Maybe GodotString -> IO Font\nget_font cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_font (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_font\"\n           '[GodotString, Maybe GodotString]\n           (IO Font)\n         where\n        nodeMethod = Godot.Core.Control.get_font\n\n{-# NOINLINE bindControl_get_global_position #-}\n\n-- | The node's global position, relative to the world (usually to the top-left corner of the window).\nbindControl_get_global_position :: MethodBind\nbindControl_get_global_position\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_global_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's global position, relative to the world (usually to the top-left corner of the window).\nget_global_position ::\n                      (Control :< cls, Object :< cls) => cls -> IO Vector2\nget_global_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_global_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_global_position\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Control.get_global_position\n\n{-# NOINLINE bindControl_get_global_rect #-}\n\n-- | Returns the position and size of the control relative to the top-left corner of the screen. See @rect_position@ and @rect_size@.\nbindControl_get_global_rect :: MethodBind\nbindControl_get_global_rect\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_global_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position and size of the control relative to the top-left corner of the screen. See @rect_position@ and @rect_size@.\nget_global_rect ::\n                  (Control :< cls, Object :< cls) => cls -> IO Rect2\nget_global_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_global_rect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_global_rect\" '[] (IO Rect2) where\n        nodeMethod = Godot.Core.Control.get_global_rect\n\n{-# NOINLINE bindControl_get_h_grow_direction #-}\n\n-- | Controls the direction on the horizontal axis in which the control should grow if its horizontal minimum size is changed to be greater than its current size, as the control always has to be at least the minimum size.\nbindControl_get_h_grow_direction :: MethodBind\nbindControl_get_h_grow_direction\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_h_grow_direction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls the direction on the horizontal axis in which the control should grow if its horizontal minimum size is changed to be greater than its current size, as the control always has to be at least the minimum size.\nget_h_grow_direction ::\n                       (Control :< cls, Object :< cls) => cls -> IO Int\nget_h_grow_direction cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_h_grow_direction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_h_grow_direction\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Control.get_h_grow_direction\n\n{-# NOINLINE bindControl_get_h_size_flags #-}\n\n-- | Tells the parent @Container@ nodes how they should resize and place the node on the X axis. Use one of the @enum SizeFlags@ constants to change the flags. See the constants to learn what each does.\nbindControl_get_h_size_flags :: MethodBind\nbindControl_get_h_size_flags\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_h_size_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Tells the parent @Container@ nodes how they should resize and place the node on the X axis. Use one of the @enum SizeFlags@ constants to change the flags. See the constants to learn what each does.\nget_h_size_flags ::\n                   (Control :< cls, Object :< cls) => cls -> IO Int\nget_h_size_flags cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_h_size_flags (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_h_size_flags\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Control.get_h_size_flags\n\n{-# NOINLINE bindControl_get_icon #-}\n\n-- | Returns an icon from assigned @Theme@ with given @name@ and associated with @Control@ of given @type@.\nbindControl_get_icon :: MethodBind\nbindControl_get_icon\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an icon from assigned @Theme@ with given @name@ and associated with @Control@ of given @type@.\nget_icon ::\n           (Control :< cls, Object :< cls) =>\n           cls -> GodotString -> Maybe GodotString -> IO Texture\nget_icon cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_icon (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_icon\"\n           '[GodotString, Maybe GodotString]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.Control.get_icon\n\n{-# NOINLINE bindControl_get_margin #-}\n\n-- | Returns the anchor identified by @margin@ constant from @enum Margin@ enum. A getter method for @margin_bottom@, @margin_left@, @margin_right@ and @margin_top@.\nbindControl_get_margin :: MethodBind\nbindControl_get_margin\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the anchor identified by @margin@ constant from @enum Margin@ enum. A getter method for @margin_bottom@, @margin_left@, @margin_right@ and @margin_top@.\nget_margin ::\n             (Control :< cls, Object :< cls) => cls -> Int -> IO Float\nget_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_margin (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_margin\" '[Int] (IO Float) where\n        nodeMethod = Godot.Core.Control.get_margin\n\n{-# NOINLINE bindControl_get_minimum_size #-}\n\n-- | Returns the minimum size for this control. See @rect_min_size@.\nbindControl_get_minimum_size :: MethodBind\nbindControl_get_minimum_size\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_minimum_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the minimum size for this control. See @rect_min_size@.\nget_minimum_size ::\n                   (Control :< cls, Object :< cls) => cls -> IO Vector2\nget_minimum_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_minimum_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_minimum_size\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Control.get_minimum_size\n\n{-# NOINLINE bindControl_get_mouse_filter #-}\n\n-- | Controls whether the control will be able to receive mouse button input events through @method _gui_input@ and how these events should be handled. Also controls whether the control can receive the @signal mouse_entered@, and @signal mouse_exited@ signals. See the constants to learn what each does.\nbindControl_get_mouse_filter :: MethodBind\nbindControl_get_mouse_filter\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_mouse_filter\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls whether the control will be able to receive mouse button input events through @method _gui_input@ and how these events should be handled. Also controls whether the control can receive the @signal mouse_entered@, and @signal mouse_exited@ signals. See the constants to learn what each does.\nget_mouse_filter ::\n                   (Control :< cls, Object :< cls) => cls -> IO Int\nget_mouse_filter cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_mouse_filter (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_mouse_filter\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Control.get_mouse_filter\n\n{-# NOINLINE bindControl_get_parent_area_size #-}\n\n-- | Returns the width/height occupied in the parent control.\nbindControl_get_parent_area_size :: MethodBind\nbindControl_get_parent_area_size\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_parent_area_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the width/height occupied in the parent control.\nget_parent_area_size ::\n                       (Control :< cls, Object :< cls) => cls -> IO Vector2\nget_parent_area_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_parent_area_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_parent_area_size\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Control.get_parent_area_size\n\n{-# NOINLINE bindControl_get_parent_control #-}\n\n-- | Returns the parent control node.\nbindControl_get_parent_control :: MethodBind\nbindControl_get_parent_control\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_parent_control\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the parent control node.\nget_parent_control ::\n                     (Control :< cls, Object :< cls) => cls -> IO Control\nget_parent_control cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_parent_control (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_parent_control\" '[] (IO Control)\n         where\n        nodeMethod = Godot.Core.Control.get_parent_control\n\n{-# NOINLINE bindControl_get_pivot_offset #-}\n\n-- | By default, the node's pivot is its top-left corner. When you change its @rect_scale@, it will scale around this pivot. Set this property to @rect_size@ / 2 to center the pivot in the node's rectangle.\nbindControl_get_pivot_offset :: MethodBind\nbindControl_get_pivot_offset\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_pivot_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | By default, the node's pivot is its top-left corner. When you change its @rect_scale@, it will scale around this pivot. Set this property to @rect_size@ / 2 to center the pivot in the node's rectangle.\nget_pivot_offset ::\n                   (Control :< cls, Object :< cls) => cls -> IO Vector2\nget_pivot_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_pivot_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_pivot_offset\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Control.get_pivot_offset\n\n{-# NOINLINE bindControl_get_position #-}\n\n-- | The node's position, relative to its parent. It corresponds to the rectangle's top-left corner. The property is not affected by @rect_pivot_offset@.\nbindControl_get_position :: MethodBind\nbindControl_get_position\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's position, relative to its parent. It corresponds to the rectangle's top-left corner. The property is not affected by @rect_pivot_offset@.\nget_position ::\n               (Control :< cls, Object :< cls) => cls -> IO Vector2\nget_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_position (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_position\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.Control.get_position\n\n{-# NOINLINE bindControl_get_rect #-}\n\n-- | Returns the position and size of the control relative to the top-left corner of the parent Control. See @rect_position@ and @rect_size@.\nbindControl_get_rect :: MethodBind\nbindControl_get_rect\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position and size of the control relative to the top-left corner of the parent Control. See @rect_position@ and @rect_size@.\nget_rect :: (Control :< cls, Object :< cls) => cls -> IO Rect2\nget_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_rect (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_rect\" '[] (IO Rect2) where\n        nodeMethod = Godot.Core.Control.get_rect\n\n{-# NOINLINE bindControl_get_rotation #-}\n\n-- | Returns the rotation (in radians).\nbindControl_get_rotation :: MethodBind\nbindControl_get_rotation\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the rotation (in radians).\nget_rotation :: (Control :< cls, Object :< cls) => cls -> IO Float\nget_rotation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_rotation (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_rotation\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Control.get_rotation\n\n{-# NOINLINE bindControl_get_rotation_degrees #-}\n\n-- | The node's rotation around its pivot, in degrees. See @rect_pivot_offset@ to change the pivot's position.\nbindControl_get_rotation_degrees :: MethodBind\nbindControl_get_rotation_degrees\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_rotation_degrees\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's rotation around its pivot, in degrees. See @rect_pivot_offset@ to change the pivot's position.\nget_rotation_degrees ::\n                       (Control :< cls, Object :< cls) => cls -> IO Float\nget_rotation_degrees cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_rotation_degrees\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_rotation_degrees\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Control.get_rotation_degrees\n\n{-# NOINLINE bindControl_get_scale #-}\n\n-- | The node's scale, relative to its @rect_size@. Change this property to scale the node around its @rect_pivot_offset@. The Control's @hint_tooltip@ will also scale according to this value.\n--   \t\t\t__Note:__ This property is mainly intended to be used for animation purposes. Text inside the Control will look pixelated or blurry when the Control is scaled. To support multiple resolutions in your project, use an appropriate viewport stretch mode as described in the @url=https://docs.godotengine.org/en/latest/tutorials/viewports/multiple_resolutions.html@documentation@/url@ instead of scaling Controls individually.\n--   \t\t\t__Note:__ If the Control node is a child of a @Container@ node, the scale will be reset to @Vector2(1, 1)@ when the scene is instanced. To set the Control's scale when it's instanced, wait for one frame using @yield(get_tree(), \"idle_frame\")@ then set its @rect_scale@ property.\nbindControl_get_scale :: MethodBind\nbindControl_get_scale\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's scale, relative to its @rect_size@. Change this property to scale the node around its @rect_pivot_offset@. The Control's @hint_tooltip@ will also scale according to this value.\n--   \t\t\t__Note:__ This property is mainly intended to be used for animation purposes. Text inside the Control will look pixelated or blurry when the Control is scaled. To support multiple resolutions in your project, use an appropriate viewport stretch mode as described in the @url=https://docs.godotengine.org/en/latest/tutorials/viewports/multiple_resolutions.html@documentation@/url@ instead of scaling Controls individually.\n--   \t\t\t__Note:__ If the Control node is a child of a @Container@ node, the scale will be reset to @Vector2(1, 1)@ when the scene is instanced. To set the Control's scale when it's instanced, wait for one frame using @yield(get_tree(), \"idle_frame\")@ then set its @rect_scale@ property.\nget_scale :: (Control :< cls, Object :< cls) => cls -> IO Vector2\nget_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_scale (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_scale\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.Control.get_scale\n\n{-# NOINLINE bindControl_get_size #-}\n\n-- | The size of the node's bounding rectangle, in pixels. @Container@ nodes update this property automatically.\nbindControl_get_size :: MethodBind\nbindControl_get_size\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size of the node's bounding rectangle, in pixels. @Container@ nodes update this property automatically.\nget_size :: (Control :< cls, Object :< cls) => cls -> IO Vector2\nget_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_size (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_size\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.Control.get_size\n\n{-# NOINLINE bindControl_get_stretch_ratio #-}\n\n-- | If the node and at least one of its neighbours uses the @SIZE_EXPAND@ size flag, the parent @Container@ will let it take more or less space depending on this property. If this node has a stretch ratio of 2 and its neighbour a ratio of 1, this node will take two thirds of the available space.\nbindControl_get_stretch_ratio :: MethodBind\nbindControl_get_stretch_ratio\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_stretch_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If the node and at least one of its neighbours uses the @SIZE_EXPAND@ size flag, the parent @Container@ will let it take more or less space depending on this property. If this node has a stretch ratio of 2 and its neighbour a ratio of 1, this node will take two thirds of the available space.\nget_stretch_ratio ::\n                    (Control :< cls, Object :< cls) => cls -> IO Float\nget_stretch_ratio cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_stretch_ratio (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_stretch_ratio\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Control.get_stretch_ratio\n\n{-# NOINLINE bindControl_get_stylebox #-}\n\n-- | Returns a @StyleBox@ from assigned @Theme@ with given @name@ and associated with @Control@ of given @type@.\nbindControl_get_stylebox :: MethodBind\nbindControl_get_stylebox\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_stylebox\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @StyleBox@ from assigned @Theme@ with given @name@ and associated with @Control@ of given @type@.\nget_stylebox ::\n               (Control :< cls, Object :< cls) =>\n               cls -> GodotString -> Maybe GodotString -> IO StyleBox\nget_stylebox cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_stylebox (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_stylebox\"\n           '[GodotString, Maybe GodotString]\n           (IO StyleBox)\n         where\n        nodeMethod = Godot.Core.Control.get_stylebox\n\n{-# NOINLINE bindControl_get_theme #-}\n\n-- | Changing this property replaces the current @Theme@ resource this node and all its @Control@ children use.\nbindControl_get_theme :: MethodBind\nbindControl_get_theme\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_theme\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changing this property replaces the current @Theme@ resource this node and all its @Control@ children use.\nget_theme :: (Control :< cls, Object :< cls) => cls -> IO Theme\nget_theme cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_theme (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_theme\" '[] (IO Theme) where\n        nodeMethod = Godot.Core.Control.get_theme\n\n{-# NOINLINE bindControl_get_tooltip #-}\n\n-- | Returns the tooltip, which will appear when the cursor is resting over this control. See @hint_tooltip@.\nbindControl_get_tooltip :: MethodBind\nbindControl_get_tooltip\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_tooltip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tooltip, which will appear when the cursor is resting over this control. See @hint_tooltip@.\nget_tooltip ::\n              (Control :< cls, Object :< cls) =>\n              cls -> Maybe Vector2 -> IO GodotString\nget_tooltip cls arg1\n  = withVariantArray [defaultedVariant VariantVector2 (V2 0 0) arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_tooltip (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_tooltip\" '[Maybe Vector2]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Control.get_tooltip\n\n{-# NOINLINE bindControl_get_v_grow_direction #-}\n\n-- | Controls the direction on the vertical axis in which the control should grow if its vertical minimum size is changed to be greater than its current size, as the control always has to be at least the minimum size.\nbindControl_get_v_grow_direction :: MethodBind\nbindControl_get_v_grow_direction\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_v_grow_direction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls the direction on the vertical axis in which the control should grow if its vertical minimum size is changed to be greater than its current size, as the control always has to be at least the minimum size.\nget_v_grow_direction ::\n                       (Control :< cls, Object :< cls) => cls -> IO Int\nget_v_grow_direction cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_v_grow_direction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_v_grow_direction\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Control.get_v_grow_direction\n\n{-# NOINLINE bindControl_get_v_size_flags #-}\n\n-- | Tells the parent @Container@ nodes how they should resize and place the node on the Y axis. Use one of the @enum SizeFlags@ constants to change the flags. See the constants to learn what each does.\nbindControl_get_v_size_flags :: MethodBind\nbindControl_get_v_size_flags\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"get_v_size_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Tells the parent @Container@ nodes how they should resize and place the node on the Y axis. Use one of the @enum SizeFlags@ constants to change the flags. See the constants to learn what each does.\nget_v_size_flags ::\n                   (Control :< cls, Object :< cls) => cls -> IO Int\nget_v_size_flags cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_get_v_size_flags (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"get_v_size_flags\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Control.get_v_size_flags\n\n{-# NOINLINE bindControl_grab_click_focus #-}\n\n-- | Creates an @InputEventMouseButton@ that attempts to click the control. If the event is received, the control acquires focus.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc _process(delta):\n--   \t\t\t\t    grab_click_focus() #when clicking another Control node, this node will be clicked instead\n--   \t\t\t\t\n--   @\nbindControl_grab_click_focus :: MethodBind\nbindControl_grab_click_focus\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"grab_click_focus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates an @InputEventMouseButton@ that attempts to click the control. If the event is received, the control acquires focus.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc _process(delta):\n--   \t\t\t\t    grab_click_focus() #when clicking another Control node, this node will be clicked instead\n--   \t\t\t\t\n--   @\ngrab_click_focus :: (Control :< cls, Object :< cls) => cls -> IO ()\ngrab_click_focus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_grab_click_focus (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"grab_click_focus\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Control.grab_click_focus\n\n{-# NOINLINE bindControl_grab_focus #-}\n\n-- | Steal the focus from another control and become the focused control (see @focus_mode@).\nbindControl_grab_focus :: MethodBind\nbindControl_grab_focus\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"grab_focus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Steal the focus from another control and become the focused control (see @focus_mode@).\ngrab_focus :: (Control :< cls, Object :< cls) => cls -> IO ()\ngrab_focus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_grab_focus (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"grab_focus\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Control.grab_focus\n\n{-# NOINLINE bindControl_has_color #-}\n\n-- | Returns @true@ if @Color@ with given @name@ and associated with @Control@ of given @type@ exists in assigned @Theme@.\nbindControl_has_color :: MethodBind\nbindControl_has_color\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"has_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if @Color@ with given @name@ and associated with @Control@ of given @type@ exists in assigned @Theme@.\nhas_color ::\n            (Control :< cls, Object :< cls) =>\n            cls -> GodotString -> Maybe GodotString -> IO Bool\nhas_color cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_has_color (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"has_color\"\n           '[GodotString, Maybe GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Control.has_color\n\n{-# NOINLINE bindControl_has_color_override #-}\n\n-- | Returns @true@ if @Color@ with given @name@ has a valid override in this @Control@ node.\nbindControl_has_color_override :: MethodBind\nbindControl_has_color_override\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"has_color_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if @Color@ with given @name@ has a valid override in this @Control@ node.\nhas_color_override ::\n                     (Control :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_color_override cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_has_color_override (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"has_color_override\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Control.has_color_override\n\n{-# NOINLINE bindControl_has_constant #-}\n\n-- | Returns @true@ if constant with given @name@ and associated with @Control@ of given @type@ exists in assigned @Theme@.\nbindControl_has_constant :: MethodBind\nbindControl_has_constant\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"has_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if constant with given @name@ and associated with @Control@ of given @type@ exists in assigned @Theme@.\nhas_constant ::\n               (Control :< cls, Object :< cls) =>\n               cls -> GodotString -> Maybe GodotString -> IO Bool\nhas_constant cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_has_constant (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"has_constant\"\n           '[GodotString, Maybe GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Control.has_constant\n\n{-# NOINLINE bindControl_has_constant_override #-}\n\n-- | Returns @true@ if constant with given @name@ has a valid override in this @Control@ node.\nbindControl_has_constant_override :: MethodBind\nbindControl_has_constant_override\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"has_constant_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if constant with given @name@ has a valid override in this @Control@ node.\nhas_constant_override ::\n                        (Control :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_constant_override cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_has_constant_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"has_constant_override\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Control.has_constant_override\n\n{-# NOINLINE bindControl_has_focus #-}\n\n-- | Returns @true@ if this is the current focused control. See @focus_mode@.\nbindControl_has_focus :: MethodBind\nbindControl_has_focus\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"has_focus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this is the current focused control. See @focus_mode@.\nhas_focus :: (Control :< cls, Object :< cls) => cls -> IO Bool\nhas_focus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_has_focus (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"has_focus\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Control.has_focus\n\n{-# NOINLINE bindControl_has_font #-}\n\n-- | Returns @true@ if font with given @name@ and associated with @Control@ of given @type@ exists in assigned @Theme@.\nbindControl_has_font :: MethodBind\nbindControl_has_font\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"has_font\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if font with given @name@ and associated with @Control@ of given @type@ exists in assigned @Theme@.\nhas_font ::\n           (Control :< cls, Object :< cls) =>\n           cls -> GodotString -> Maybe GodotString -> IO Bool\nhas_font cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_has_font (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"has_font\"\n           '[GodotString, Maybe GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Control.has_font\n\n{-# NOINLINE bindControl_has_font_override #-}\n\n-- | Returns @true@ if font with given @name@ has a valid override in this @Control@ node.\nbindControl_has_font_override :: MethodBind\nbindControl_has_font_override\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"has_font_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if font with given @name@ has a valid override in this @Control@ node.\nhas_font_override ::\n                    (Control :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_font_override cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_has_font_override (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"has_font_override\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Control.has_font_override\n\n{-# NOINLINE bindControl_has_icon #-}\n\n-- | Returns @true@ if icon with given @name@ and associated with @Control@ of given @type@ exists in assigned @Theme@.\nbindControl_has_icon :: MethodBind\nbindControl_has_icon\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"has_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if icon with given @name@ and associated with @Control@ of given @type@ exists in assigned @Theme@.\nhas_icon ::\n           (Control :< cls, Object :< cls) =>\n           cls -> GodotString -> Maybe GodotString -> IO Bool\nhas_icon cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_has_icon (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"has_icon\"\n           '[GodotString, Maybe GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Control.has_icon\n\n{-# NOINLINE bindControl_has_icon_override #-}\n\n-- | Returns @true@ if icon with given @name@ has a valid override in this @Control@ node.\nbindControl_has_icon_override :: MethodBind\nbindControl_has_icon_override\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"has_icon_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if icon with given @name@ has a valid override in this @Control@ node.\nhas_icon_override ::\n                    (Control :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_icon_override cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_has_icon_override (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"has_icon_override\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Control.has_icon_override\n\n{-# NOINLINE bindControl_has_point #-}\n\n-- | Virtual method to be implemented by the user. Returns whether the given @point@ is inside this control.\n--   \t\t\t\tIf not overridden, default behavior is checking if the point is within control's Rect.\n--   \t\t\t\t__Note:__ If you want to check if a point is inside the control, you can use @get_rect().has_point(point)@.\nbindControl_has_point :: MethodBind\nbindControl_has_point\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"has_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Virtual method to be implemented by the user. Returns whether the given @point@ is inside this control.\n--   \t\t\t\tIf not overridden, default behavior is checking if the point is within control's Rect.\n--   \t\t\t\t__Note:__ If you want to check if a point is inside the control, you can use @get_rect().has_point(point)@.\nhas_point ::\n            (Control :< cls, Object :< cls) => cls -> Vector2 -> IO Bool\nhas_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_has_point (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"has_point\" '[Vector2] (IO Bool) where\n        nodeMethod = Godot.Core.Control.has_point\n\n{-# NOINLINE bindControl_has_shader_override #-}\n\n-- | Returns @true@ if @Shader@ with given @name@ has a valid override in this @Control@ node.\nbindControl_has_shader_override :: MethodBind\nbindControl_has_shader_override\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"has_shader_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if @Shader@ with given @name@ has a valid override in this @Control@ node.\nhas_shader_override ::\n                      (Control :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_shader_override cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_has_shader_override (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"has_shader_override\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Control.has_shader_override\n\n{-# NOINLINE bindControl_has_stylebox #-}\n\n-- | Returns @true@ if @StyleBox@ with given @name@ and associated with @Control@ of given @type@ exists in assigned @Theme@.\nbindControl_has_stylebox :: MethodBind\nbindControl_has_stylebox\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"has_stylebox\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if @StyleBox@ with given @name@ and associated with @Control@ of given @type@ exists in assigned @Theme@.\nhas_stylebox ::\n               (Control :< cls, Object :< cls) =>\n               cls -> GodotString -> Maybe GodotString -> IO Bool\nhas_stylebox cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_has_stylebox (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"has_stylebox\"\n           '[GodotString, Maybe GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Control.has_stylebox\n\n{-# NOINLINE bindControl_has_stylebox_override #-}\n\n-- | Returns @true@ if @StyleBox@ with given @name@ has a valid override in this @Control@ node.\nbindControl_has_stylebox_override :: MethodBind\nbindControl_has_stylebox_override\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"has_stylebox_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if @StyleBox@ with given @name@ has a valid override in this @Control@ node.\nhas_stylebox_override ::\n                        (Control :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_stylebox_override cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_has_stylebox_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"has_stylebox_override\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Control.has_stylebox_override\n\n{-# NOINLINE bindControl_is_clipping_contents #-}\n\n-- | Enables whether rendering of @CanvasItem@ based children should be clipped to this control's rectangle. If @true@, parts of a child which would be visibly outside of this control's rectangle will not be rendered.\nbindControl_is_clipping_contents :: MethodBind\nbindControl_is_clipping_contents\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"is_clipping_contents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables whether rendering of @CanvasItem@ based children should be clipped to this control's rectangle. If @true@, parts of a child which would be visibly outside of this control's rectangle will not be rendered.\nis_clipping_contents ::\n                       (Control :< cls, Object :< cls) => cls -> IO Bool\nis_clipping_contents cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_is_clipping_contents\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"is_clipping_contents\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Control.is_clipping_contents\n\n{-# NOINLINE bindControl_minimum_size_changed #-}\n\n-- | Invalidates the size cache in this node and in parent nodes up to toplevel. Intended to be used with @method get_minimum_size@ when the return value is changed. Setting @rect_min_size@ directly calls this method automatically.\nbindControl_minimum_size_changed :: MethodBind\nbindControl_minimum_size_changed\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"minimum_size_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Invalidates the size cache in this node and in parent nodes up to toplevel. Intended to be used with @method get_minimum_size@ when the return value is changed. Setting @rect_min_size@ directly calls this method automatically.\nminimum_size_changed ::\n                       (Control :< cls, Object :< cls) => cls -> IO ()\nminimum_size_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_minimum_size_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"minimum_size_changed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.Control.minimum_size_changed\n\n{-# NOINLINE bindControl_release_focus #-}\n\n-- | Give up the focus. No other control will be able to receive keyboard input.\nbindControl_release_focus :: MethodBind\nbindControl_release_focus\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"release_focus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Give up the focus. No other control will be able to receive keyboard input.\nrelease_focus :: (Control :< cls, Object :< cls) => cls -> IO ()\nrelease_focus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_release_focus (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"release_focus\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Control.release_focus\n\n{-# NOINLINE bindControl_set_anchor #-}\n\n-- | Sets the anchor identified by @margin@ constant from @enum Margin@ enum to value @anchor@. A setter method for @anchor_bottom@, @anchor_left@, @anchor_right@ and @anchor_top@.\n--   \t\t\t\tIf @keep_margin@ is @true@, margins aren't updated after this operation.\n--   \t\t\t\tIf @push_opposite_anchor@ is @true@ and the opposite anchor overlaps this anchor, the opposite one will have its value overridden. For example, when setting left anchor to 1 and the right anchor has value of 0.5, the right anchor will also get value of 1. If @push_opposite_anchor@ was @false@, the left anchor would get value 0.5.\nbindControl_set_anchor :: MethodBind\nbindControl_set_anchor\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_anchor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the anchor identified by @margin@ constant from @enum Margin@ enum to value @anchor@. A setter method for @anchor_bottom@, @anchor_left@, @anchor_right@ and @anchor_top@.\n--   \t\t\t\tIf @keep_margin@ is @true@, margins aren't updated after this operation.\n--   \t\t\t\tIf @push_opposite_anchor@ is @true@ and the opposite anchor overlaps this anchor, the opposite one will have its value overridden. For example, when setting left anchor to 1 and the right anchor has value of 0.5, the right anchor will also get value of 1. If @push_opposite_anchor@ was @false@, the left anchor would get value 0.5.\nset_anchor ::\n             (Control :< cls, Object :< cls) =>\n             cls -> Int -> Float -> Maybe Bool -> Maybe Bool -> IO ()\nset_anchor cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool False) toVariant arg3,\n       maybe (VariantBool True) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_anchor (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_anchor\"\n           '[Int, Float, Maybe Bool, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_anchor\n\n{-# NOINLINE bindControl_set_anchor_and_margin #-}\n\n-- | Works the same as @method set_anchor@, but instead of @keep_margin@ argument and automatic update of margin, it allows to set the margin offset yourself (see @method set_margin@).\nbindControl_set_anchor_and_margin :: MethodBind\nbindControl_set_anchor_and_margin\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_anchor_and_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Works the same as @method set_anchor@, but instead of @keep_margin@ argument and automatic update of margin, it allows to set the margin offset yourself (see @method set_margin@).\nset_anchor_and_margin ::\n                        (Control :< cls, Object :< cls) =>\n                        cls -> Int -> Float -> Float -> Maybe Bool -> IO ()\nset_anchor_and_margin cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_anchor_and_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_anchor_and_margin\"\n           '[Int, Float, Float, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_anchor_and_margin\n\n{-# NOINLINE bindControl_set_anchors_and_margins_preset #-}\n\n-- | Sets both anchor preset and margin preset. See @method set_anchors_preset@ and @method set_margins_preset@.\nbindControl_set_anchors_and_margins_preset :: MethodBind\nbindControl_set_anchors_and_margins_preset\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_anchors_and_margins_preset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets both anchor preset and margin preset. See @method set_anchors_preset@ and @method set_margins_preset@.\nset_anchors_and_margins_preset ::\n                                 (Control :< cls, Object :< cls) =>\n                                 cls -> Int -> Maybe Int -> Maybe Int -> IO ()\nset_anchors_and_margins_preset cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (0)) toVariant arg2,\n       maybe (VariantInt (0)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_anchors_and_margins_preset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_anchors_and_margins_preset\"\n           '[Int, Maybe Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_anchors_and_margins_preset\n\n{-# NOINLINE bindControl_set_anchors_preset #-}\n\n-- | Sets the anchors to a @preset@ from @enum Control.LayoutPreset@ enum. This is code equivalent of using the Layout menu in 2D editor.\n--   \t\t\t\tIf @keep_margins@ is @true@, control's position will also be updated.\nbindControl_set_anchors_preset :: MethodBind\nbindControl_set_anchors_preset\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_anchors_preset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the anchors to a @preset@ from @enum Control.LayoutPreset@ enum. This is code equivalent of using the Layout menu in 2D editor.\n--   \t\t\t\tIf @keep_margins@ is @true@, control's position will also be updated.\nset_anchors_preset ::\n                     (Control :< cls, Object :< cls) =>\n                     cls -> Int -> Maybe Bool -> IO ()\nset_anchors_preset cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_anchors_preset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_anchors_preset\" '[Int, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_anchors_preset\n\n{-# NOINLINE bindControl_set_begin #-}\n\n-- | Sets @margin_left@ and @margin_top@ at the same time. Equivalent of changing @rect_position@.\nbindControl_set_begin :: MethodBind\nbindControl_set_begin\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_begin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets @margin_left@ and @margin_top@ at the same time. Equivalent of changing @rect_position@.\nset_begin ::\n            (Control :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_begin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_begin (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_begin\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.Control.set_begin\n\n{-# NOINLINE bindControl_set_clip_contents #-}\n\n-- | Enables whether rendering of @CanvasItem@ based children should be clipped to this control's rectangle. If @true@, parts of a child which would be visibly outside of this control's rectangle will not be rendered.\nbindControl_set_clip_contents :: MethodBind\nbindControl_set_clip_contents\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_clip_contents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables whether rendering of @CanvasItem@ based children should be clipped to this control's rectangle. If @true@, parts of a child which would be visibly outside of this control's rectangle will not be rendered.\nset_clip_contents ::\n                    (Control :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_clip_contents cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_clip_contents (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_clip_contents\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_clip_contents\n\n{-# NOINLINE bindControl_set_custom_minimum_size #-}\n\n-- | The minimum size of the node's bounding rectangle. If you set it to a value greater than (0, 0), the node's bounding rectangle will always have at least this size, even if its content is smaller. If it's set to (0, 0), the node sizes automatically to fit its content, be it a texture or child nodes.\nbindControl_set_custom_minimum_size :: MethodBind\nbindControl_set_custom_minimum_size\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_custom_minimum_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum size of the node's bounding rectangle. If you set it to a value greater than (0, 0), the node's bounding rectangle will always have at least this size, even if its content is smaller. If it's set to (0, 0), the node sizes automatically to fit its content, be it a texture or child nodes.\nset_custom_minimum_size ::\n                          (Control :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_custom_minimum_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_custom_minimum_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_custom_minimum_size\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_custom_minimum_size\n\n{-# NOINLINE bindControl_set_default_cursor_shape #-}\n\n-- | The default cursor shape for this control. Useful for Godot plugins and applications or games that use the system's mouse cursors.\n--   \t\t\t__Note:__ On Linux, shapes may vary depending on the cursor theme of the system.\nbindControl_set_default_cursor_shape :: MethodBind\nbindControl_set_default_cursor_shape\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_default_cursor_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The default cursor shape for this control. Useful for Godot plugins and applications or games that use the system's mouse cursors.\n--   \t\t\t__Note:__ On Linux, shapes may vary depending on the cursor theme of the system.\nset_default_cursor_shape ::\n                           (Control :< cls, Object :< cls) => cls -> Int -> IO ()\nset_default_cursor_shape cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_default_cursor_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_default_cursor_shape\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_default_cursor_shape\n\n{-# NOINLINE bindControl_set_drag_forwarding #-}\n\n-- | Forwards the handling of this control's drag and drop to @target@ control.\n--   \t\t\t\tForwarding can be implemented in the target control similar to the methods @method get_drag_data@, @method can_drop_data@, and @method drop_data@ but with two differences:\n--   \t\t\t\t1. The function name must be suffixed with ___fw__\n--   \t\t\t\t2. The function must take an extra argument that is the control doing the forwarding\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t# ThisControl.gd\n--   \t\t\t\textends Control\n--   \t\t\t\tfunc _ready():\n--   \t\t\t\t    set_drag_forwarding(target_control)\n--   \n--   \t\t\t\t# TargetControl.gd\n--   \t\t\t\textends Control\n--   \t\t\t\tfunc can_drop_data_fw(position, data, from_control):\n--   \t\t\t\t    return true\n--   \n--   \t\t\t\tfunc drop_data_fw(position, data, from_control):\n--   \t\t\t\t    my_handle_data(data)\n--   \n--   \t\t\t\tfunc get_drag_data_fw(position, from_control):\n--   \t\t\t\t    set_drag_preview(my_preview)\n--   \t\t\t\t    return my_data()\n--   \t\t\t\t\n--   @\nbindControl_set_drag_forwarding :: MethodBind\nbindControl_set_drag_forwarding\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_drag_forwarding\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Forwards the handling of this control's drag and drop to @target@ control.\n--   \t\t\t\tForwarding can be implemented in the target control similar to the methods @method get_drag_data@, @method can_drop_data@, and @method drop_data@ but with two differences:\n--   \t\t\t\t1. The function name must be suffixed with ___fw__\n--   \t\t\t\t2. The function must take an extra argument that is the control doing the forwarding\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t# ThisControl.gd\n--   \t\t\t\textends Control\n--   \t\t\t\tfunc _ready():\n--   \t\t\t\t    set_drag_forwarding(target_control)\n--   \n--   \t\t\t\t# TargetControl.gd\n--   \t\t\t\textends Control\n--   \t\t\t\tfunc can_drop_data_fw(position, data, from_control):\n--   \t\t\t\t    return true\n--   \n--   \t\t\t\tfunc drop_data_fw(position, data, from_control):\n--   \t\t\t\t    my_handle_data(data)\n--   \n--   \t\t\t\tfunc get_drag_data_fw(position, from_control):\n--   \t\t\t\t    set_drag_preview(my_preview)\n--   \t\t\t\t    return my_data()\n--   \t\t\t\t\n--   @\nset_drag_forwarding ::\n                      (Control :< cls, Object :< cls) => cls -> Control -> IO ()\nset_drag_forwarding cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_drag_forwarding (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_drag_forwarding\" '[Control]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_drag_forwarding\n\n{-# NOINLINE bindControl_set_drag_preview #-}\n\n-- | Shows the given control at the mouse pointer. A good time to call this method is in @method get_drag_data@. The control must not be in the scene tree.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\texport (Color, RGBA) var color = Color(1, 0, 0, 1)\n--   \n--   \t\t\t\tfunc get_drag_data(position):\n--   \t\t\t\t    # Use a control that is not in the tree\n--   \t\t\t\t    var cpb = ColorPickerButton.new()\n--   \t\t\t\t    cpb.color = color\n--   \t\t\t\t    cpb.rect_size = Vector2(50, 50)\n--   \t\t\t\t    set_drag_preview(cpb)\n--   \t\t\t\t    return color\n--   \t\t\t\t\n--   @\nbindControl_set_drag_preview :: MethodBind\nbindControl_set_drag_preview\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_drag_preview\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Shows the given control at the mouse pointer. A good time to call this method is in @method get_drag_data@. The control must not be in the scene tree.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\texport (Color, RGBA) var color = Color(1, 0, 0, 1)\n--   \n--   \t\t\t\tfunc get_drag_data(position):\n--   \t\t\t\t    # Use a control that is not in the tree\n--   \t\t\t\t    var cpb = ColorPickerButton.new()\n--   \t\t\t\t    cpb.color = color\n--   \t\t\t\t    cpb.rect_size = Vector2(50, 50)\n--   \t\t\t\t    set_drag_preview(cpb)\n--   \t\t\t\t    return color\n--   \t\t\t\t\n--   @\nset_drag_preview ::\n                   (Control :< cls, Object :< cls) => cls -> Control -> IO ()\nset_drag_preview cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_drag_preview (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_drag_preview\" '[Control] (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_drag_preview\n\n{-# NOINLINE bindControl_set_end #-}\n\n-- | Sets @margin_right@ and @margin_bottom@ at the same time.\nbindControl_set_end :: MethodBind\nbindControl_set_end\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_end\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets @margin_right@ and @margin_bottom@ at the same time.\nset_end ::\n          (Control :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_end cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_end (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_end\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.Control.set_end\n\n{-# NOINLINE bindControl_set_focus_mode #-}\n\n-- | The focus access mode for the control (None, Click or All). Only one Control can be focused at the same time, and it will receive keyboard signals.\nbindControl_set_focus_mode :: MethodBind\nbindControl_set_focus_mode\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_focus_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The focus access mode for the control (None, Click or All). Only one Control can be focused at the same time, and it will receive keyboard signals.\nset_focus_mode ::\n                 (Control :< cls, Object :< cls) => cls -> Int -> IO ()\nset_focus_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_focus_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_focus_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Control.set_focus_mode\n\n{-# NOINLINE bindControl_set_focus_neighbour #-}\n\n-- | Sets the anchor identified by @margin@ constant from @enum Margin@ enum to @Control@ at @neighbor@ node path. A setter method for @focus_neighbour_bottom@, @focus_neighbour_left@, @focus_neighbour_right@ and @focus_neighbour_top@.\nbindControl_set_focus_neighbour :: MethodBind\nbindControl_set_focus_neighbour\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_focus_neighbour\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the anchor identified by @margin@ constant from @enum Margin@ enum to @Control@ at @neighbor@ node path. A setter method for @focus_neighbour_bottom@, @focus_neighbour_left@, @focus_neighbour_right@ and @focus_neighbour_top@.\nset_focus_neighbour ::\n                      (Control :< cls, Object :< cls) => cls -> Int -> NodePath -> IO ()\nset_focus_neighbour cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_focus_neighbour (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_focus_neighbour\" '[Int, NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_focus_neighbour\n\n{-# NOINLINE bindControl_set_focus_next #-}\n\n-- | Tells Godot which node it should give keyboard focus to if the user presses Tab on a keyboard by default. You can change the key by editing the @ui_focus_next@ input action.\n--   \t\t\tIf this property is not set, Godot will select a \"best guess\" based on surrounding nodes in the scene tree.\nbindControl_set_focus_next :: MethodBind\nbindControl_set_focus_next\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_focus_next\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Tells Godot which node it should give keyboard focus to if the user presses Tab on a keyboard by default. You can change the key by editing the @ui_focus_next@ input action.\n--   \t\t\tIf this property is not set, Godot will select a \"best guess\" based on surrounding nodes in the scene tree.\nset_focus_next ::\n                 (Control :< cls, Object :< cls) => cls -> NodePath -> IO ()\nset_focus_next cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_focus_next (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_focus_next\" '[NodePath] (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_focus_next\n\n{-# NOINLINE bindControl_set_focus_previous #-}\n\n-- | Tells Godot which node it should give keyboard focus to if the user presses Shift+Tab on a keyboard by default. You can change the key by editing the @ui_focus_prev@ input action.\n--   \t\t\tIf this property is not set, Godot will select a \"best guess\" based on surrounding nodes in the scene tree.\nbindControl_set_focus_previous :: MethodBind\nbindControl_set_focus_previous\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_focus_previous\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Tells Godot which node it should give keyboard focus to if the user presses Shift+Tab on a keyboard by default. You can change the key by editing the @ui_focus_prev@ input action.\n--   \t\t\tIf this property is not set, Godot will select a \"best guess\" based on surrounding nodes in the scene tree.\nset_focus_previous ::\n                     (Control :< cls, Object :< cls) => cls -> NodePath -> IO ()\nset_focus_previous cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_focus_previous (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_focus_previous\" '[NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_focus_previous\n\n{-# NOINLINE bindControl_set_global_position #-}\n\n-- | Sets the @rect_global_position@ to given @position@.\n--   \t\t\t\tIf @keep_margins@ is @true@, control's anchors will be updated instead of margins.\nbindControl_set_global_position :: MethodBind\nbindControl_set_global_position\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_global_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @rect_global_position@ to given @position@.\n--   \t\t\t\tIf @keep_margins@ is @true@, control's anchors will be updated instead of margins.\nset_global_position ::\n                      (Control :< cls, Object :< cls) =>\n                      cls -> Vector2 -> Maybe Bool -> IO ()\nset_global_position cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_global_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_global_position\"\n           '[Vector2, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_global_position\n\n{-# NOINLINE bindControl_set_h_grow_direction #-}\n\n-- | Controls the direction on the horizontal axis in which the control should grow if its horizontal minimum size is changed to be greater than its current size, as the control always has to be at least the minimum size.\nbindControl_set_h_grow_direction :: MethodBind\nbindControl_set_h_grow_direction\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_h_grow_direction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls the direction on the horizontal axis in which the control should grow if its horizontal minimum size is changed to be greater than its current size, as the control always has to be at least the minimum size.\nset_h_grow_direction ::\n                       (Control :< cls, Object :< cls) => cls -> Int -> IO ()\nset_h_grow_direction cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_h_grow_direction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_h_grow_direction\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_h_grow_direction\n\n{-# NOINLINE bindControl_set_h_size_flags #-}\n\n-- | Tells the parent @Container@ nodes how they should resize and place the node on the X axis. Use one of the @enum SizeFlags@ constants to change the flags. See the constants to learn what each does.\nbindControl_set_h_size_flags :: MethodBind\nbindControl_set_h_size_flags\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_h_size_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Tells the parent @Container@ nodes how they should resize and place the node on the X axis. Use one of the @enum SizeFlags@ constants to change the flags. See the constants to learn what each does.\nset_h_size_flags ::\n                   (Control :< cls, Object :< cls) => cls -> Int -> IO ()\nset_h_size_flags cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_h_size_flags (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_h_size_flags\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Control.set_h_size_flags\n\n{-# NOINLINE bindControl_set_margin #-}\n\n-- | Sets the margin identified by @margin@ constant from @enum Margin@ enum to given @offset@. A setter method for @margin_bottom@, @margin_left@, @margin_right@ and @margin_top@.\nbindControl_set_margin :: MethodBind\nbindControl_set_margin\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the margin identified by @margin@ constant from @enum Margin@ enum to given @offset@. A setter method for @margin_bottom@, @margin_left@, @margin_right@ and @margin_top@.\nset_margin ::\n             (Control :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\nset_margin cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_margin (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_margin\" '[Int, Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_margin\n\n{-# NOINLINE bindControl_set_margins_preset #-}\n\n-- | Sets the margins to a @preset@ from @enum Control.LayoutPreset@ enum. This is code equivalent of using the Layout menu in 2D editor.\n--   \t\t\t\tUse parameter @resize_mode@ with constants from @enum Control.LayoutPresetMode@ to better determine the resulting size of the @Control@. Constant size will be ignored if used with presets that change size, e.g. @PRESET_LEFT_WIDE@.\n--   \t\t\t\tUse parameter @margin@ to determine the gap between the @Control@ and the edges.\nbindControl_set_margins_preset :: MethodBind\nbindControl_set_margins_preset\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_margins_preset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the margins to a @preset@ from @enum Control.LayoutPreset@ enum. This is code equivalent of using the Layout menu in 2D editor.\n--   \t\t\t\tUse parameter @resize_mode@ with constants from @enum Control.LayoutPresetMode@ to better determine the resulting size of the @Control@. Constant size will be ignored if used with presets that change size, e.g. @PRESET_LEFT_WIDE@.\n--   \t\t\t\tUse parameter @margin@ to determine the gap between the @Control@ and the edges.\nset_margins_preset ::\n                     (Control :< cls, Object :< cls) =>\n                     cls -> Int -> Maybe Int -> Maybe Int -> IO ()\nset_margins_preset cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (0)) toVariant arg2,\n       maybe (VariantInt (0)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_margins_preset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_margins_preset\"\n           '[Int, Maybe Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_margins_preset\n\n{-# NOINLINE bindControl_set_mouse_filter #-}\n\n-- | Controls whether the control will be able to receive mouse button input events through @method _gui_input@ and how these events should be handled. Also controls whether the control can receive the @signal mouse_entered@, and @signal mouse_exited@ signals. See the constants to learn what each does.\nbindControl_set_mouse_filter :: MethodBind\nbindControl_set_mouse_filter\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_mouse_filter\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls whether the control will be able to receive mouse button input events through @method _gui_input@ and how these events should be handled. Also controls whether the control can receive the @signal mouse_entered@, and @signal mouse_exited@ signals. See the constants to learn what each does.\nset_mouse_filter ::\n                   (Control :< cls, Object :< cls) => cls -> Int -> IO ()\nset_mouse_filter cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_mouse_filter (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_mouse_filter\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Control.set_mouse_filter\n\n{-# NOINLINE bindControl_set_pivot_offset #-}\n\n-- | By default, the node's pivot is its top-left corner. When you change its @rect_scale@, it will scale around this pivot. Set this property to @rect_size@ / 2 to center the pivot in the node's rectangle.\nbindControl_set_pivot_offset :: MethodBind\nbindControl_set_pivot_offset\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_pivot_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | By default, the node's pivot is its top-left corner. When you change its @rect_scale@, it will scale around this pivot. Set this property to @rect_size@ / 2 to center the pivot in the node's rectangle.\nset_pivot_offset ::\n                   (Control :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_pivot_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_pivot_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_pivot_offset\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_pivot_offset\n\n{-# NOINLINE bindControl_set_position #-}\n\n-- | Sets the @rect_position@ to given @position@.\n--   \t\t\t\tIf @keep_margins@ is @true@, control's anchors will be updated instead of margins.\nbindControl_set_position :: MethodBind\nbindControl_set_position\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @rect_position@ to given @position@.\n--   \t\t\t\tIf @keep_margins@ is @true@, control's anchors will be updated instead of margins.\nset_position ::\n               (Control :< cls, Object :< cls) =>\n               cls -> Vector2 -> Maybe Bool -> IO ()\nset_position cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_position (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_position\" '[Vector2, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_position\n\n{-# NOINLINE bindControl_set_rotation #-}\n\n-- | Sets the rotation (in radians).\nbindControl_set_rotation :: MethodBind\nbindControl_set_rotation\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the rotation (in radians).\nset_rotation ::\n               (Control :< cls, Object :< cls) => cls -> Float -> IO ()\nset_rotation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_rotation (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_rotation\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Control.set_rotation\n\n{-# NOINLINE bindControl_set_rotation_degrees #-}\n\n-- | The node's rotation around its pivot, in degrees. See @rect_pivot_offset@ to change the pivot's position.\nbindControl_set_rotation_degrees :: MethodBind\nbindControl_set_rotation_degrees\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_rotation_degrees\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's rotation around its pivot, in degrees. See @rect_pivot_offset@ to change the pivot's position.\nset_rotation_degrees ::\n                       (Control :< cls, Object :< cls) => cls -> Float -> IO ()\nset_rotation_degrees cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_rotation_degrees\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_rotation_degrees\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_rotation_degrees\n\n{-# NOINLINE bindControl_set_scale #-}\n\n-- | The node's scale, relative to its @rect_size@. Change this property to scale the node around its @rect_pivot_offset@. The Control's @hint_tooltip@ will also scale according to this value.\n--   \t\t\t__Note:__ This property is mainly intended to be used for animation purposes. Text inside the Control will look pixelated or blurry when the Control is scaled. To support multiple resolutions in your project, use an appropriate viewport stretch mode as described in the @url=https://docs.godotengine.org/en/latest/tutorials/viewports/multiple_resolutions.html@documentation@/url@ instead of scaling Controls individually.\n--   \t\t\t__Note:__ If the Control node is a child of a @Container@ node, the scale will be reset to @Vector2(1, 1)@ when the scene is instanced. To set the Control's scale when it's instanced, wait for one frame using @yield(get_tree(), \"idle_frame\")@ then set its @rect_scale@ property.\nbindControl_set_scale :: MethodBind\nbindControl_set_scale\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's scale, relative to its @rect_size@. Change this property to scale the node around its @rect_pivot_offset@. The Control's @hint_tooltip@ will also scale according to this value.\n--   \t\t\t__Note:__ This property is mainly intended to be used for animation purposes. Text inside the Control will look pixelated or blurry when the Control is scaled. To support multiple resolutions in your project, use an appropriate viewport stretch mode as described in the @url=https://docs.godotengine.org/en/latest/tutorials/viewports/multiple_resolutions.html@documentation@/url@ instead of scaling Controls individually.\n--   \t\t\t__Note:__ If the Control node is a child of a @Container@ node, the scale will be reset to @Vector2(1, 1)@ when the scene is instanced. To set the Control's scale when it's instanced, wait for one frame using @yield(get_tree(), \"idle_frame\")@ then set its @rect_scale@ property.\nset_scale ::\n            (Control :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_scale (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_scale\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.Control.set_scale\n\n{-# NOINLINE bindControl_set_size #-}\n\n-- | Sets the size (see @rect_size@).\n--   \t\t\t\tIf @keep_margins@ is @true@, control's anchors will be updated instead of margins.\nbindControl_set_size :: MethodBind\nbindControl_set_size\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the size (see @rect_size@).\n--   \t\t\t\tIf @keep_margins@ is @true@, control's anchors will be updated instead of margins.\nset_size ::\n           (Control :< cls, Object :< cls) =>\n           cls -> Vector2 -> Maybe Bool -> IO ()\nset_size cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_size (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_size\" '[Vector2, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_size\n\n{-# NOINLINE bindControl_set_stretch_ratio #-}\n\n-- | If the node and at least one of its neighbours uses the @SIZE_EXPAND@ size flag, the parent @Container@ will let it take more or less space depending on this property. If this node has a stretch ratio of 2 and its neighbour a ratio of 1, this node will take two thirds of the available space.\nbindControl_set_stretch_ratio :: MethodBind\nbindControl_set_stretch_ratio\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_stretch_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If the node and at least one of its neighbours uses the @SIZE_EXPAND@ size flag, the parent @Container@ will let it take more or less space depending on this property. If this node has a stretch ratio of 2 and its neighbour a ratio of 1, this node will take two thirds of the available space.\nset_stretch_ratio ::\n                    (Control :< cls, Object :< cls) => cls -> Float -> IO ()\nset_stretch_ratio cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_stretch_ratio (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_stretch_ratio\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_stretch_ratio\n\n{-# NOINLINE bindControl_set_theme #-}\n\n-- | Changing this property replaces the current @Theme@ resource this node and all its @Control@ children use.\nbindControl_set_theme :: MethodBind\nbindControl_set_theme\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_theme\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changing this property replaces the current @Theme@ resource this node and all its @Control@ children use.\nset_theme ::\n            (Control :< cls, Object :< cls) => cls -> Theme -> IO ()\nset_theme cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_theme (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_theme\" '[Theme] (IO ()) where\n        nodeMethod = Godot.Core.Control.set_theme\n\n{-# NOINLINE bindControl_set_tooltip #-}\n\n-- | Changes the tooltip text. The tooltip appears when the user's mouse cursor stays idle over this control for a few moments, provided that the @mouse_filter@ property is not @MOUSE_FILTER_IGNORE@. You can change the time required for the tooltip to appear with @gui/timers/tooltip_delay_sec@ option in Project Settings.\nbindControl_set_tooltip :: MethodBind\nbindControl_set_tooltip\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_tooltip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes the tooltip text. The tooltip appears when the user's mouse cursor stays idle over this control for a few moments, provided that the @mouse_filter@ property is not @MOUSE_FILTER_IGNORE@. You can change the time required for the tooltip to appear with @gui/timers/tooltip_delay_sec@ option in Project Settings.\nset_tooltip ::\n              (Control :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_tooltip cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_tooltip (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_tooltip\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_tooltip\n\n{-# NOINLINE bindControl_set_v_grow_direction #-}\n\n-- | Controls the direction on the vertical axis in which the control should grow if its vertical minimum size is changed to be greater than its current size, as the control always has to be at least the minimum size.\nbindControl_set_v_grow_direction :: MethodBind\nbindControl_set_v_grow_direction\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_v_grow_direction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls the direction on the vertical axis in which the control should grow if its vertical minimum size is changed to be greater than its current size, as the control always has to be at least the minimum size.\nset_v_grow_direction ::\n                       (Control :< cls, Object :< cls) => cls -> Int -> IO ()\nset_v_grow_direction cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_v_grow_direction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_v_grow_direction\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Control.set_v_grow_direction\n\n{-# NOINLINE bindControl_set_v_size_flags #-}\n\n-- | Tells the parent @Container@ nodes how they should resize and place the node on the Y axis. Use one of the @enum SizeFlags@ constants to change the flags. See the constants to learn what each does.\nbindControl_set_v_size_flags :: MethodBind\nbindControl_set_v_size_flags\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"set_v_size_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Tells the parent @Container@ nodes how they should resize and place the node on the Y axis. Use one of the @enum SizeFlags@ constants to change the flags. See the constants to learn what each does.\nset_v_size_flags ::\n                   (Control :< cls, Object :< cls) => cls -> Int -> IO ()\nset_v_size_flags cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_set_v_size_flags (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"set_v_size_flags\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Control.set_v_size_flags\n\n{-# NOINLINE bindControl_show_modal #-}\n\n-- | Displays a control as modal. Control must be a subwindow. Modal controls capture the input signals until closed or the area outside them is accessed. When a modal control loses focus, or the ESC key is pressed, they automatically hide. Modal controls are used extensively for popup dialogs and menus.\n--   \t\t\t\tIf @exclusive@ is @true@, other controls will not receive input and clicking outside this control will not close it.\nbindControl_show_modal :: MethodBind\nbindControl_show_modal\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"show_modal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Displays a control as modal. Control must be a subwindow. Modal controls capture the input signals until closed or the area outside them is accessed. When a modal control loses focus, or the ESC key is pressed, they automatically hide. Modal controls are used extensively for popup dialogs and menus.\n--   \t\t\t\tIf @exclusive@ is @true@, other controls will not receive input and clicking outside this control will not close it.\nshow_modal ::\n             (Control :< cls, Object :< cls) => cls -> Maybe Bool -> IO ()\nshow_modal cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_show_modal (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"show_modal\" '[Maybe Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Control.show_modal\n\n{-# NOINLINE bindControl_warp_mouse #-}\n\n-- | Moves the mouse cursor to @to_position@, relative to @rect_position@ of this @Control@.\nbindControl_warp_mouse :: MethodBind\nbindControl_warp_mouse\n  = unsafePerformIO $\n      withCString \"Control\" $\n        \\ clsNamePtr ->\n          withCString \"warp_mouse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves the mouse cursor to @to_position@, relative to @rect_position@ of this @Control@.\nwarp_mouse ::\n             (Control :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nwarp_mouse cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindControl_warp_mouse (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Control \"warp_mouse\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.Control.warp_mouse"
  },
  {
    "path": "src/Godot/Core/ConvexPolygonShape.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ConvexPolygonShape\n       (Godot.Core.ConvexPolygonShape.get_points,\n        Godot.Core.ConvexPolygonShape.set_points)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Shape()\n\ninstance NodeProperty ConvexPolygonShape \"points\" PoolVector3Array\n           'False\n         where\n        nodeProperty = (get_points, wrapDroppingSetter set_points, Nothing)\n\n{-# NOINLINE bindConvexPolygonShape_get_points #-}\n\n-- | The list of 3D points forming the convex polygon shape.\nbindConvexPolygonShape_get_points :: MethodBind\nbindConvexPolygonShape_get_points\n  = unsafePerformIO $\n      withCString \"ConvexPolygonShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The list of 3D points forming the convex polygon shape.\nget_points ::\n             (ConvexPolygonShape :< cls, Object :< cls) =>\n             cls -> IO PoolVector3Array\nget_points cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConvexPolygonShape_get_points\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConvexPolygonShape \"get_points\" '[]\n           (IO PoolVector3Array)\n         where\n        nodeMethod = Godot.Core.ConvexPolygonShape.get_points\n\n{-# NOINLINE bindConvexPolygonShape_set_points #-}\n\n-- | The list of 3D points forming the convex polygon shape.\nbindConvexPolygonShape_set_points :: MethodBind\nbindConvexPolygonShape_set_points\n  = unsafePerformIO $\n      withCString \"ConvexPolygonShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The list of 3D points forming the convex polygon shape.\nset_points ::\n             (ConvexPolygonShape :< cls, Object :< cls) =>\n             cls -> PoolVector3Array -> IO ()\nset_points cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConvexPolygonShape_set_points\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConvexPolygonShape \"set_points\"\n           '[PoolVector3Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ConvexPolygonShape.set_points"
  },
  {
    "path": "src/Godot/Core/ConvexPolygonShape2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ConvexPolygonShape2D\n       (Godot.Core.ConvexPolygonShape2D.get_points,\n        Godot.Core.ConvexPolygonShape2D.set_point_cloud,\n        Godot.Core.ConvexPolygonShape2D.set_points)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Shape2D()\n\ninstance NodeProperty ConvexPolygonShape2D \"points\"\n           PoolVector2Array\n           'False\n         where\n        nodeProperty = (get_points, wrapDroppingSetter set_points, Nothing)\n\n{-# NOINLINE bindConvexPolygonShape2D_get_points #-}\n\n-- | The polygon's list of vertices. Can be in either clockwise or counterclockwise order.\nbindConvexPolygonShape2D_get_points :: MethodBind\nbindConvexPolygonShape2D_get_points\n  = unsafePerformIO $\n      withCString \"ConvexPolygonShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The polygon's list of vertices. Can be in either clockwise or counterclockwise order.\nget_points ::\n             (ConvexPolygonShape2D :< cls, Object :< cls) =>\n             cls -> IO PoolVector2Array\nget_points cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConvexPolygonShape2D_get_points\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConvexPolygonShape2D \"get_points\" '[]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.ConvexPolygonShape2D.get_points\n\n{-# NOINLINE bindConvexPolygonShape2D_set_point_cloud #-}\n\n-- | Based on the set of points provided, this creates and assigns the @points@ property using the convex hull algorithm. Removing all unneeded points. See @method Geometry.convex_hull_2d@ for details.\nbindConvexPolygonShape2D_set_point_cloud :: MethodBind\nbindConvexPolygonShape2D_set_point_cloud\n  = unsafePerformIO $\n      withCString \"ConvexPolygonShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_cloud\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Based on the set of points provided, this creates and assigns the @points@ property using the convex hull algorithm. Removing all unneeded points. See @method Geometry.convex_hull_2d@ for details.\nset_point_cloud ::\n                  (ConvexPolygonShape2D :< cls, Object :< cls) =>\n                  cls -> PoolVector2Array -> IO ()\nset_point_cloud cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConvexPolygonShape2D_set_point_cloud\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConvexPolygonShape2D \"set_point_cloud\"\n           '[PoolVector2Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ConvexPolygonShape2D.set_point_cloud\n\n{-# NOINLINE bindConvexPolygonShape2D_set_points #-}\n\n-- | The polygon's list of vertices. Can be in either clockwise or counterclockwise order.\nbindConvexPolygonShape2D_set_points :: MethodBind\nbindConvexPolygonShape2D_set_points\n  = unsafePerformIO $\n      withCString \"ConvexPolygonShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The polygon's list of vertices. Can be in either clockwise or counterclockwise order.\nset_points ::\n             (ConvexPolygonShape2D :< cls, Object :< cls) =>\n             cls -> PoolVector2Array -> IO ()\nset_points cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindConvexPolygonShape2D_set_points\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ConvexPolygonShape2D \"set_points\"\n           '[PoolVector2Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ConvexPolygonShape2D.set_points"
  },
  {
    "path": "src/Godot/Core/Crypto.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Crypto\n       (Godot.Core.Crypto.generate_random_bytes,\n        Godot.Core.Crypto.generate_rsa,\n        Godot.Core.Crypto.generate_self_signed_certificate)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindCrypto_generate_random_bytes #-}\n\n-- | Generates a @PoolByteArray@ of cryptographically secure random bytes with given @size@.\nbindCrypto_generate_random_bytes :: MethodBind\nbindCrypto_generate_random_bytes\n  = unsafePerformIO $\n      withCString \"Crypto\" $\n        \\ clsNamePtr ->\n          withCString \"generate_random_bytes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Generates a @PoolByteArray@ of cryptographically secure random bytes with given @size@.\ngenerate_random_bytes ::\n                        (Crypto :< cls, Object :< cls) => cls -> Int -> IO PoolByteArray\ngenerate_random_bytes cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCrypto_generate_random_bytes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Crypto \"generate_random_bytes\" '[Int]\n           (IO PoolByteArray)\n         where\n        nodeMethod = Godot.Core.Crypto.generate_random_bytes\n\n{-# NOINLINE bindCrypto_generate_rsa #-}\n\n-- | Generates an RSA @CryptoKey@ that can be used for creating self-signed certificates and passed to @method StreamPeerSSL.accept_stream@.\nbindCrypto_generate_rsa :: MethodBind\nbindCrypto_generate_rsa\n  = unsafePerformIO $\n      withCString \"Crypto\" $\n        \\ clsNamePtr ->\n          withCString \"generate_rsa\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Generates an RSA @CryptoKey@ that can be used for creating self-signed certificates and passed to @method StreamPeerSSL.accept_stream@.\ngenerate_rsa ::\n               (Crypto :< cls, Object :< cls) => cls -> Int -> IO CryptoKey\ngenerate_rsa cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCrypto_generate_rsa (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Crypto \"generate_rsa\" '[Int] (IO CryptoKey)\n         where\n        nodeMethod = Godot.Core.Crypto.generate_rsa\n\n{-# NOINLINE bindCrypto_generate_self_signed_certificate #-}\n\n-- | Generates a self-signed @X509Certificate@ from the given @CryptoKey@ and @issuer_name@. The certificate validity will be defined by @not_before@ and @not_after@ (first valid date and last valid date). The @issuer_name@ must contain at least \"CN=\" (common name, i.e. the domain name), \"O=\" (organization, i.e. your company name), \"C=\" (country, i.e. 2 lettered ISO-3166 code of the country the organization is based in).\n--   \t\t\t\tA small example to generate an RSA key and a X509 self-signed certificate.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar crypto = Crypto.new()\n--   \t\t\t\t# Generate 4096 bits RSA key.\n--   \t\t\t\tvar key = crypto.generate_rsa(4096)\n--   \t\t\t\t# Generate self-signed certificate using the given key.\n--   \t\t\t\tvar cert = crypto.generate_self_signed_certificate(key, \"CN=example.com,O=A Game Company,C=IT\")\n--   \t\t\t\t\n--   @\nbindCrypto_generate_self_signed_certificate :: MethodBind\nbindCrypto_generate_self_signed_certificate\n  = unsafePerformIO $\n      withCString \"Crypto\" $\n        \\ clsNamePtr ->\n          withCString \"generate_self_signed_certificate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Generates a self-signed @X509Certificate@ from the given @CryptoKey@ and @issuer_name@. The certificate validity will be defined by @not_before@ and @not_after@ (first valid date and last valid date). The @issuer_name@ must contain at least \"CN=\" (common name, i.e. the domain name), \"O=\" (organization, i.e. your company name), \"C=\" (country, i.e. 2 lettered ISO-3166 code of the country the organization is based in).\n--   \t\t\t\tA small example to generate an RSA key and a X509 self-signed certificate.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar crypto = Crypto.new()\n--   \t\t\t\t# Generate 4096 bits RSA key.\n--   \t\t\t\tvar key = crypto.generate_rsa(4096)\n--   \t\t\t\t# Generate self-signed certificate using the given key.\n--   \t\t\t\tvar cert = crypto.generate_self_signed_certificate(key, \"CN=example.com,O=A Game Company,C=IT\")\n--   \t\t\t\t\n--   @\ngenerate_self_signed_certificate ::\n                                   (Crypto :< cls, Object :< cls) =>\n                                   cls ->\n                                     CryptoKey ->\n                                       Maybe GodotString ->\n                                         Maybe GodotString ->\n                                           Maybe GodotString -> IO X509Certificate\ngenerate_self_signed_certificate cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1,\n       defaultedVariant VariantString \"CN=myserver,O=myorganisation,C=IT\"\n         arg2,\n       defaultedVariant VariantString \"20140101000000\" arg3,\n       defaultedVariant VariantString \"20340101000000\" arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCrypto_generate_self_signed_certificate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Crypto \"generate_self_signed_certificate\"\n           '[CryptoKey, Maybe GodotString, Maybe GodotString,\n             Maybe GodotString]\n           (IO X509Certificate)\n         where\n        nodeMethod = Godot.Core.Crypto.generate_self_signed_certificate"
  },
  {
    "path": "src/Godot/Core/CryptoKey.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CryptoKey\n       (Godot.Core.CryptoKey.load, Godot.Core.CryptoKey.save) where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n{-# NOINLINE bindCryptoKey_load #-}\n\n-- | Loads a key from @path@ (\"*.key\" file).\nbindCryptoKey_load :: MethodBind\nbindCryptoKey_load\n  = unsafePerformIO $\n      withCString \"CryptoKey\" $\n        \\ clsNamePtr ->\n          withCString \"load\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Loads a key from @path@ (\"*.key\" file).\nload ::\n       (CryptoKey :< cls, Object :< cls) => cls -> GodotString -> IO Int\nload cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCryptoKey_load (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CryptoKey \"load\" '[GodotString] (IO Int) where\n        nodeMethod = Godot.Core.CryptoKey.load\n\n{-# NOINLINE bindCryptoKey_save #-}\n\n-- | Saves a key to the given @path@ (should be a \"*.key\" file).\nbindCryptoKey_save :: MethodBind\nbindCryptoKey_save\n  = unsafePerformIO $\n      withCString \"CryptoKey\" $\n        \\ clsNamePtr ->\n          withCString \"save\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Saves a key to the given @path@ (should be a \"*.key\" file).\nsave ::\n       (CryptoKey :< cls, Object :< cls) => cls -> GodotString -> IO Int\nsave cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCryptoKey_save (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CryptoKey \"save\" '[GodotString] (IO Int) where\n        nodeMethod = Godot.Core.CryptoKey.save"
  },
  {
    "path": "src/Godot/Core/CubeMap.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CubeMap\n       (Godot.Core.CubeMap._SIDE_RIGHT, Godot.Core.CubeMap._SIDE_TOP,\n        Godot.Core.CubeMap._SIDE_BACK, Godot.Core.CubeMap._STORAGE_RAW,\n        Godot.Core.CubeMap._STORAGE_COMPRESS_LOSSLESS,\n        Godot.Core.CubeMap._FLAGS_DEFAULT, Godot.Core.CubeMap._FLAG_REPEAT,\n        Godot.Core.CubeMap._SIDE_LEFT, Godot.Core.CubeMap._SIDE_FRONT,\n        Godot.Core.CubeMap._STORAGE_COMPRESS_LOSSY,\n        Godot.Core.CubeMap._FLAG_MIPMAPS, Godot.Core.CubeMap._SIDE_BOTTOM,\n        Godot.Core.CubeMap._FLAG_FILTER, Godot.Core.CubeMap.get_flags,\n        Godot.Core.CubeMap.get_height,\n        Godot.Core.CubeMap.get_lossy_storage_quality,\n        Godot.Core.CubeMap.get_side, Godot.Core.CubeMap.get_storage,\n        Godot.Core.CubeMap.get_width, Godot.Core.CubeMap.set_flags,\n        Godot.Core.CubeMap.set_lossy_storage_quality,\n        Godot.Core.CubeMap.set_side, Godot.Core.CubeMap.set_storage)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_SIDE_RIGHT :: Int\n_SIDE_RIGHT = 1\n\n_SIDE_TOP :: Int\n_SIDE_TOP = 3\n\n_SIDE_BACK :: Int\n_SIDE_BACK = 5\n\n_STORAGE_RAW :: Int\n_STORAGE_RAW = 0\n\n_STORAGE_COMPRESS_LOSSLESS :: Int\n_STORAGE_COMPRESS_LOSSLESS = 2\n\n_FLAGS_DEFAULT :: Int\n_FLAGS_DEFAULT = 7\n\n_FLAG_REPEAT :: Int\n_FLAG_REPEAT = 2\n\n_SIDE_LEFT :: Int\n_SIDE_LEFT = 0\n\n_SIDE_FRONT :: Int\n_SIDE_FRONT = 4\n\n_STORAGE_COMPRESS_LOSSY :: Int\n_STORAGE_COMPRESS_LOSSY = 1\n\n_FLAG_MIPMAPS :: Int\n_FLAG_MIPMAPS = 1\n\n_SIDE_BOTTOM :: Int\n_SIDE_BOTTOM = 2\n\n_FLAG_FILTER :: Int\n_FLAG_FILTER = 4\n\ninstance NodeProperty CubeMap \"flags\" Int 'False where\n        nodeProperty = (get_flags, wrapDroppingSetter set_flags, Nothing)\n\ninstance NodeProperty CubeMap \"lossy_storage_quality\" Float 'False\n         where\n        nodeProperty\n          = (get_lossy_storage_quality,\n             wrapDroppingSetter set_lossy_storage_quality, Nothing)\n\ninstance NodeProperty CubeMap \"storage_mode\" Int 'False where\n        nodeProperty\n          = (get_storage, wrapDroppingSetter set_storage, Nothing)\n\n{-# NOINLINE bindCubeMap_get_flags #-}\n\n-- | The render flags for the @CubeMap@. See the @enum Flags@ constants for details.\nbindCubeMap_get_flags :: MethodBind\nbindCubeMap_get_flags\n  = unsafePerformIO $\n      withCString \"CubeMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The render flags for the @CubeMap@. See the @enum Flags@ constants for details.\nget_flags :: (CubeMap :< cls, Object :< cls) => cls -> IO Int\nget_flags cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCubeMap_get_flags (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CubeMap \"get_flags\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CubeMap.get_flags\n\n{-# NOINLINE bindCubeMap_get_height #-}\n\n-- | Returns the @CubeMap@'s height.\nbindCubeMap_get_height :: MethodBind\nbindCubeMap_get_height\n  = unsafePerformIO $\n      withCString \"CubeMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @CubeMap@'s height.\nget_height :: (CubeMap :< cls, Object :< cls) => cls -> IO Int\nget_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCubeMap_get_height (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CubeMap \"get_height\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CubeMap.get_height\n\n{-# NOINLINE bindCubeMap_get_lossy_storage_quality #-}\n\n-- | The lossy storage quality of the @CubeMap@ if the storage mode is set to @STORAGE_COMPRESS_LOSSY@.\nbindCubeMap_get_lossy_storage_quality :: MethodBind\nbindCubeMap_get_lossy_storage_quality\n  = unsafePerformIO $\n      withCString \"CubeMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_lossy_storage_quality\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The lossy storage quality of the @CubeMap@ if the storage mode is set to @STORAGE_COMPRESS_LOSSY@.\nget_lossy_storage_quality ::\n                            (CubeMap :< cls, Object :< cls) => cls -> IO Float\nget_lossy_storage_quality cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCubeMap_get_lossy_storage_quality\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CubeMap \"get_lossy_storage_quality\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.CubeMap.get_lossy_storage_quality\n\n{-# NOINLINE bindCubeMap_get_side #-}\n\n-- | Returns an @Image@ for a side of the @CubeMap@ using one of the @enum Side@ constants.\nbindCubeMap_get_side :: MethodBind\nbindCubeMap_get_side\n  = unsafePerformIO $\n      withCString \"CubeMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_side\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an @Image@ for a side of the @CubeMap@ using one of the @enum Side@ constants.\nget_side ::\n           (CubeMap :< cls, Object :< cls) => cls -> Int -> IO Image\nget_side cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCubeMap_get_side (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CubeMap \"get_side\" '[Int] (IO Image) where\n        nodeMethod = Godot.Core.CubeMap.get_side\n\n{-# NOINLINE bindCubeMap_get_storage #-}\n\n-- | The @CubeMap@'s storage mode. See @enum Storage@ constants.\nbindCubeMap_get_storage :: MethodBind\nbindCubeMap_get_storage\n  = unsafePerformIO $\n      withCString \"CubeMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_storage\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @CubeMap@'s storage mode. See @enum Storage@ constants.\nget_storage :: (CubeMap :< cls, Object :< cls) => cls -> IO Int\nget_storage cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCubeMap_get_storage (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CubeMap \"get_storage\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CubeMap.get_storage\n\n{-# NOINLINE bindCubeMap_get_width #-}\n\n-- | Returns the @CubeMap@'s width.\nbindCubeMap_get_width :: MethodBind\nbindCubeMap_get_width\n  = unsafePerformIO $\n      withCString \"CubeMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @CubeMap@'s width.\nget_width :: (CubeMap :< cls, Object :< cls) => cls -> IO Int\nget_width cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCubeMap_get_width (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CubeMap \"get_width\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CubeMap.get_width\n\n{-# NOINLINE bindCubeMap_set_flags #-}\n\n-- | The render flags for the @CubeMap@. See the @enum Flags@ constants for details.\nbindCubeMap_set_flags :: MethodBind\nbindCubeMap_set_flags\n  = unsafePerformIO $\n      withCString \"CubeMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The render flags for the @CubeMap@. See the @enum Flags@ constants for details.\nset_flags :: (CubeMap :< cls, Object :< cls) => cls -> Int -> IO ()\nset_flags cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCubeMap_set_flags (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CubeMap \"set_flags\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.CubeMap.set_flags\n\n{-# NOINLINE bindCubeMap_set_lossy_storage_quality #-}\n\n-- | The lossy storage quality of the @CubeMap@ if the storage mode is set to @STORAGE_COMPRESS_LOSSY@.\nbindCubeMap_set_lossy_storage_quality :: MethodBind\nbindCubeMap_set_lossy_storage_quality\n  = unsafePerformIO $\n      withCString \"CubeMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_lossy_storage_quality\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The lossy storage quality of the @CubeMap@ if the storage mode is set to @STORAGE_COMPRESS_LOSSY@.\nset_lossy_storage_quality ::\n                            (CubeMap :< cls, Object :< cls) => cls -> Float -> IO ()\nset_lossy_storage_quality cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCubeMap_set_lossy_storage_quality\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CubeMap \"set_lossy_storage_quality\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CubeMap.set_lossy_storage_quality\n\n{-# NOINLINE bindCubeMap_set_side #-}\n\n-- | Sets an @Image@ for a side of the @CubeMap@ using one of the @enum Side@ constants.\nbindCubeMap_set_side :: MethodBind\nbindCubeMap_set_side\n  = unsafePerformIO $\n      withCString \"CubeMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_side\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets an @Image@ for a side of the @CubeMap@ using one of the @enum Side@ constants.\nset_side ::\n           (CubeMap :< cls, Object :< cls) => cls -> Int -> Image -> IO ()\nset_side cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCubeMap_set_side (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CubeMap \"set_side\" '[Int, Image] (IO ()) where\n        nodeMethod = Godot.Core.CubeMap.set_side\n\n{-# NOINLINE bindCubeMap_set_storage #-}\n\n-- | The @CubeMap@'s storage mode. See @enum Storage@ constants.\nbindCubeMap_set_storage :: MethodBind\nbindCubeMap_set_storage\n  = unsafePerformIO $\n      withCString \"CubeMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_storage\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @CubeMap@'s storage mode. See @enum Storage@ constants.\nset_storage ::\n              (CubeMap :< cls, Object :< cls) => cls -> Int -> IO ()\nset_storage cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCubeMap_set_storage (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CubeMap \"set_storage\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.CubeMap.set_storage"
  },
  {
    "path": "src/Godot/Core/CubeMesh.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CubeMesh\n       (Godot.Core.CubeMesh.get_size,\n        Godot.Core.CubeMesh.get_subdivide_depth,\n        Godot.Core.CubeMesh.get_subdivide_height,\n        Godot.Core.CubeMesh.get_subdivide_width,\n        Godot.Core.CubeMesh.set_size,\n        Godot.Core.CubeMesh.set_subdivide_depth,\n        Godot.Core.CubeMesh.set_subdivide_height,\n        Godot.Core.CubeMesh.set_subdivide_width)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PrimitiveMesh()\n\ninstance NodeProperty CubeMesh \"size\" Vector3 'False where\n        nodeProperty = (get_size, wrapDroppingSetter set_size, Nothing)\n\ninstance NodeProperty CubeMesh \"subdivide_depth\" Int 'False where\n        nodeProperty\n          = (get_subdivide_depth, wrapDroppingSetter set_subdivide_depth,\n             Nothing)\n\ninstance NodeProperty CubeMesh \"subdivide_height\" Int 'False where\n        nodeProperty\n          = (get_subdivide_height, wrapDroppingSetter set_subdivide_height,\n             Nothing)\n\ninstance NodeProperty CubeMesh \"subdivide_width\" Int 'False where\n        nodeProperty\n          = (get_subdivide_width, wrapDroppingSetter set_subdivide_width,\n             Nothing)\n\n{-# NOINLINE bindCubeMesh_get_size #-}\n\n-- | Size of the cuboid mesh.\nbindCubeMesh_get_size :: MethodBind\nbindCubeMesh_get_size\n  = unsafePerformIO $\n      withCString \"CubeMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Size of the cuboid mesh.\nget_size :: (CubeMesh :< cls, Object :< cls) => cls -> IO Vector3\nget_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCubeMesh_get_size (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CubeMesh \"get_size\" '[] (IO Vector3) where\n        nodeMethod = Godot.Core.CubeMesh.get_size\n\n{-# NOINLINE bindCubeMesh_get_subdivide_depth #-}\n\n-- | Number of extra edge loops inserted along the Z axis.\nbindCubeMesh_get_subdivide_depth :: MethodBind\nbindCubeMesh_get_subdivide_depth\n  = unsafePerformIO $\n      withCString \"CubeMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_subdivide_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of extra edge loops inserted along the Z axis.\nget_subdivide_depth ::\n                      (CubeMesh :< cls, Object :< cls) => cls -> IO Int\nget_subdivide_depth cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCubeMesh_get_subdivide_depth\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CubeMesh \"get_subdivide_depth\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.CubeMesh.get_subdivide_depth\n\n{-# NOINLINE bindCubeMesh_get_subdivide_height #-}\n\n-- | Number of extra edge loops inserted along the Y axis.\nbindCubeMesh_get_subdivide_height :: MethodBind\nbindCubeMesh_get_subdivide_height\n  = unsafePerformIO $\n      withCString \"CubeMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_subdivide_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of extra edge loops inserted along the Y axis.\nget_subdivide_height ::\n                       (CubeMesh :< cls, Object :< cls) => cls -> IO Int\nget_subdivide_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCubeMesh_get_subdivide_height\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CubeMesh \"get_subdivide_height\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.CubeMesh.get_subdivide_height\n\n{-# NOINLINE bindCubeMesh_get_subdivide_width #-}\n\n-- | Number of extra edge loops inserted along the X axis.\nbindCubeMesh_get_subdivide_width :: MethodBind\nbindCubeMesh_get_subdivide_width\n  = unsafePerformIO $\n      withCString \"CubeMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_subdivide_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of extra edge loops inserted along the X axis.\nget_subdivide_width ::\n                      (CubeMesh :< cls, Object :< cls) => cls -> IO Int\nget_subdivide_width cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCubeMesh_get_subdivide_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CubeMesh \"get_subdivide_width\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.CubeMesh.get_subdivide_width\n\n{-# NOINLINE bindCubeMesh_set_size #-}\n\n-- | Size of the cuboid mesh.\nbindCubeMesh_set_size :: MethodBind\nbindCubeMesh_set_size\n  = unsafePerformIO $\n      withCString \"CubeMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Size of the cuboid mesh.\nset_size ::\n           (CubeMesh :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCubeMesh_set_size (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CubeMesh \"set_size\" '[Vector3] (IO ()) where\n        nodeMethod = Godot.Core.CubeMesh.set_size\n\n{-# NOINLINE bindCubeMesh_set_subdivide_depth #-}\n\n-- | Number of extra edge loops inserted along the Z axis.\nbindCubeMesh_set_subdivide_depth :: MethodBind\nbindCubeMesh_set_subdivide_depth\n  = unsafePerformIO $\n      withCString \"CubeMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_subdivide_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of extra edge loops inserted along the Z axis.\nset_subdivide_depth ::\n                      (CubeMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_subdivide_depth cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCubeMesh_set_subdivide_depth\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CubeMesh \"set_subdivide_depth\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.CubeMesh.set_subdivide_depth\n\n{-# NOINLINE bindCubeMesh_set_subdivide_height #-}\n\n-- | Number of extra edge loops inserted along the Y axis.\nbindCubeMesh_set_subdivide_height :: MethodBind\nbindCubeMesh_set_subdivide_height\n  = unsafePerformIO $\n      withCString \"CubeMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_subdivide_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of extra edge loops inserted along the Y axis.\nset_subdivide_height ::\n                       (CubeMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_subdivide_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCubeMesh_set_subdivide_height\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CubeMesh \"set_subdivide_height\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.CubeMesh.set_subdivide_height\n\n{-# NOINLINE bindCubeMesh_set_subdivide_width #-}\n\n-- | Number of extra edge loops inserted along the X axis.\nbindCubeMesh_set_subdivide_width :: MethodBind\nbindCubeMesh_set_subdivide_width\n  = unsafePerformIO $\n      withCString \"CubeMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_subdivide_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of extra edge loops inserted along the X axis.\nset_subdivide_width ::\n                      (CubeMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_subdivide_width cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCubeMesh_set_subdivide_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CubeMesh \"set_subdivide_width\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.CubeMesh.set_subdivide_width"
  },
  {
    "path": "src/Godot/Core/Curve.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Curve\n       (Godot.Core.Curve._TANGENT_LINEAR, Godot.Core.Curve._TANGENT_FREE,\n        Godot.Core.Curve._TANGENT_MODE_COUNT,\n        Godot.Core.Curve.sig_range_changed, Godot.Core.Curve._get_data,\n        Godot.Core.Curve._set_data, Godot.Core.Curve.add_point,\n        Godot.Core.Curve.bake, Godot.Core.Curve.clean_dupes,\n        Godot.Core.Curve.clear_points,\n        Godot.Core.Curve.get_bake_resolution,\n        Godot.Core.Curve.get_max_value, Godot.Core.Curve.get_min_value,\n        Godot.Core.Curve.get_point_count,\n        Godot.Core.Curve.get_point_left_mode,\n        Godot.Core.Curve.get_point_left_tangent,\n        Godot.Core.Curve.get_point_position,\n        Godot.Core.Curve.get_point_right_mode,\n        Godot.Core.Curve.get_point_right_tangent,\n        Godot.Core.Curve.interpolate, Godot.Core.Curve.interpolate_baked,\n        Godot.Core.Curve.remove_point,\n        Godot.Core.Curve.set_bake_resolution,\n        Godot.Core.Curve.set_max_value, Godot.Core.Curve.set_min_value,\n        Godot.Core.Curve.set_point_left_mode,\n        Godot.Core.Curve.set_point_left_tangent,\n        Godot.Core.Curve.set_point_offset,\n        Godot.Core.Curve.set_point_right_mode,\n        Godot.Core.Curve.set_point_right_tangent,\n        Godot.Core.Curve.set_point_value)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_TANGENT_LINEAR :: Int\n_TANGENT_LINEAR = 1\n\n_TANGENT_FREE :: Int\n_TANGENT_FREE = 0\n\n_TANGENT_MODE_COUNT :: Int\n_TANGENT_MODE_COUNT = 2\n\n-- | Emitted when @max_value@ or @min_value@ is changed.\nsig_range_changed :: Godot.Internal.Dispatch.Signal Curve\nsig_range_changed = Godot.Internal.Dispatch.Signal \"range_changed\"\n\ninstance NodeSignal Curve \"range_changed\" '[]\n\ninstance NodeProperty Curve \"_data\" Array 'False where\n        nodeProperty = (_get_data, wrapDroppingSetter _set_data, Nothing)\n\ninstance NodeProperty Curve \"bake_resolution\" Int 'False where\n        nodeProperty\n          = (get_bake_resolution, wrapDroppingSetter set_bake_resolution,\n             Nothing)\n\ninstance NodeProperty Curve \"max_value\" Float 'False where\n        nodeProperty\n          = (get_max_value, wrapDroppingSetter set_max_value, Nothing)\n\ninstance NodeProperty Curve \"min_value\" Float 'False where\n        nodeProperty\n          = (get_min_value, wrapDroppingSetter set_min_value, Nothing)\n\n{-# NOINLINE bindCurve__get_data #-}\n\nbindCurve__get_data :: MethodBind\nbindCurve__get_data\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"_get_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_data :: (Curve :< cls, Object :< cls) => cls -> IO Array\n_get_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve__get_data (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"_get_data\" '[] (IO Array) where\n        nodeMethod = Godot.Core.Curve._get_data\n\n{-# NOINLINE bindCurve__set_data #-}\n\nbindCurve__set_data :: MethodBind\nbindCurve__set_data\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"_set_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_data :: (Curve :< cls, Object :< cls) => cls -> Array -> IO ()\n_set_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve__set_data (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"_set_data\" '[Array] (IO ()) where\n        nodeMethod = Godot.Core.Curve._set_data\n\n{-# NOINLINE bindCurve_add_point #-}\n\n-- | Adds a point to the curve. For each side, if the @*_mode@ is @TANGENT_LINEAR@, the @*_tangent@ angle (in degrees) uses the slope of the curve halfway to the adjacent point. Allows custom assignments to the @*_tangent@ angle if @*_mode@ is set to @TANGENT_FREE@.\nbindCurve_add_point :: MethodBind\nbindCurve_add_point\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"add_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a point to the curve. For each side, if the @*_mode@ is @TANGENT_LINEAR@, the @*_tangent@ angle (in degrees) uses the slope of the curve halfway to the adjacent point. Allows custom assignments to the @*_tangent@ angle if @*_mode@ is set to @TANGENT_FREE@.\nadd_point ::\n            (Curve :< cls, Object :< cls) =>\n            cls ->\n              Vector2 ->\n                Maybe Float -> Maybe Float -> Maybe Int -> Maybe Int -> IO Int\nadd_point cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, maybe (VariantReal (0)) toVariant arg2,\n       maybe (VariantReal (0)) toVariant arg3,\n       maybe (VariantInt (0)) toVariant arg4,\n       maybe (VariantInt (0)) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_add_point (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"add_point\"\n           '[Vector2, Maybe Float, Maybe Float, Maybe Int, Maybe Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Curve.add_point\n\n{-# NOINLINE bindCurve_bake #-}\n\n-- | Recomputes the baked cache of points for the curve.\nbindCurve_bake :: MethodBind\nbindCurve_bake\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"bake\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Recomputes the baked cache of points for the curve.\nbake :: (Curve :< cls, Object :< cls) => cls -> IO ()\nbake cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_bake (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"bake\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Curve.bake\n\n{-# NOINLINE bindCurve_clean_dupes #-}\n\n-- | Removes points that are closer than @CMP_EPSILON@ (0.00001) units to their neighbor on the curve.\nbindCurve_clean_dupes :: MethodBind\nbindCurve_clean_dupes\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"clean_dupes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes points that are closer than @CMP_EPSILON@ (0.00001) units to their neighbor on the curve.\nclean_dupes :: (Curve :< cls, Object :< cls) => cls -> IO ()\nclean_dupes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_clean_dupes (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"clean_dupes\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Curve.clean_dupes\n\n{-# NOINLINE bindCurve_clear_points #-}\n\n-- | Removes all points from the curve.\nbindCurve_clear_points :: MethodBind\nbindCurve_clear_points\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"clear_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all points from the curve.\nclear_points :: (Curve :< cls, Object :< cls) => cls -> IO ()\nclear_points cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_clear_points (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"clear_points\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Curve.clear_points\n\n{-# NOINLINE bindCurve_get_bake_resolution #-}\n\n-- | The number of points to include in the baked (i.e. cached) curve data.\nbindCurve_get_bake_resolution :: MethodBind\nbindCurve_get_bake_resolution\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"get_bake_resolution\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of points to include in the baked (i.e. cached) curve data.\nget_bake_resolution ::\n                      (Curve :< cls, Object :< cls) => cls -> IO Int\nget_bake_resolution cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_get_bake_resolution (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"get_bake_resolution\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Curve.get_bake_resolution\n\n{-# NOINLINE bindCurve_get_max_value #-}\n\n-- | The maximum value the curve can reach.\nbindCurve_get_max_value :: MethodBind\nbindCurve_get_max_value\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"get_max_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum value the curve can reach.\nget_max_value :: (Curve :< cls, Object :< cls) => cls -> IO Float\nget_max_value cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_get_max_value (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"get_max_value\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Curve.get_max_value\n\n{-# NOINLINE bindCurve_get_min_value #-}\n\n-- | The minimum value the curve can reach.\nbindCurve_get_min_value :: MethodBind\nbindCurve_get_min_value\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"get_min_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum value the curve can reach.\nget_min_value :: (Curve :< cls, Object :< cls) => cls -> IO Float\nget_min_value cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_get_min_value (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"get_min_value\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Curve.get_min_value\n\n{-# NOINLINE bindCurve_get_point_count #-}\n\n-- | Returns the number of points describing the curve.\nbindCurve_get_point_count :: MethodBind\nbindCurve_get_point_count\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of points describing the curve.\nget_point_count :: (Curve :< cls, Object :< cls) => cls -> IO Int\nget_point_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_get_point_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"get_point_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Curve.get_point_count\n\n{-# NOINLINE bindCurve_get_point_left_mode #-}\n\n-- | Returns the left @enum TangentMode@ for the point at @index@.\nbindCurve_get_point_left_mode :: MethodBind\nbindCurve_get_point_left_mode\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_left_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the left @enum TangentMode@ for the point at @index@.\nget_point_left_mode ::\n                      (Curve :< cls, Object :< cls) => cls -> Int -> IO Int\nget_point_left_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_get_point_left_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"get_point_left_mode\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.Curve.get_point_left_mode\n\n{-# NOINLINE bindCurve_get_point_left_tangent #-}\n\n-- | Returns the left tangent angle (in degrees) for the point at @index@.\nbindCurve_get_point_left_tangent :: MethodBind\nbindCurve_get_point_left_tangent\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_left_tangent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the left tangent angle (in degrees) for the point at @index@.\nget_point_left_tangent ::\n                         (Curve :< cls, Object :< cls) => cls -> Int -> IO Float\nget_point_left_tangent cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_get_point_left_tangent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"get_point_left_tangent\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Curve.get_point_left_tangent\n\n{-# NOINLINE bindCurve_get_point_position #-}\n\n-- | Returns the curve coordinates for the point at @index@.\nbindCurve_get_point_position :: MethodBind\nbindCurve_get_point_position\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the curve coordinates for the point at @index@.\nget_point_position ::\n                     (Curve :< cls, Object :< cls) => cls -> Int -> IO Vector2\nget_point_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_get_point_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"get_point_position\" '[Int] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Curve.get_point_position\n\n{-# NOINLINE bindCurve_get_point_right_mode #-}\n\n-- | Returns the right @enum TangentMode@ for the point at @index@.\nbindCurve_get_point_right_mode :: MethodBind\nbindCurve_get_point_right_mode\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_right_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the right @enum TangentMode@ for the point at @index@.\nget_point_right_mode ::\n                       (Curve :< cls, Object :< cls) => cls -> Int -> IO Int\nget_point_right_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_get_point_right_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"get_point_right_mode\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.Curve.get_point_right_mode\n\n{-# NOINLINE bindCurve_get_point_right_tangent #-}\n\n-- | Returns the right tangent angle (in degrees) for the point at @index@.\nbindCurve_get_point_right_tangent :: MethodBind\nbindCurve_get_point_right_tangent\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_right_tangent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the right tangent angle (in degrees) for the point at @index@.\nget_point_right_tangent ::\n                          (Curve :< cls, Object :< cls) => cls -> Int -> IO Float\nget_point_right_tangent cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_get_point_right_tangent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"get_point_right_tangent\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Curve.get_point_right_tangent\n\n{-# NOINLINE bindCurve_interpolate #-}\n\n-- | Returns the Y value for the point that would exist at the X position @offset@ along the curve.\nbindCurve_interpolate :: MethodBind\nbindCurve_interpolate\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"interpolate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the Y value for the point that would exist at the X position @offset@ along the curve.\ninterpolate ::\n              (Curve :< cls, Object :< cls) => cls -> Float -> IO Float\ninterpolate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_interpolate (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"interpolate\" '[Float] (IO Float) where\n        nodeMethod = Godot.Core.Curve.interpolate\n\n{-# NOINLINE bindCurve_interpolate_baked #-}\n\n-- | Returns the Y value for the point that would exist at the X position @offset@ along the curve using the baked cache. Bakes the curve's points if not already baked.\nbindCurve_interpolate_baked :: MethodBind\nbindCurve_interpolate_baked\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"interpolate_baked\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the Y value for the point that would exist at the X position @offset@ along the curve using the baked cache. Bakes the curve's points if not already baked.\ninterpolate_baked ::\n                    (Curve :< cls, Object :< cls) => cls -> Float -> IO Float\ninterpolate_baked cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_interpolate_baked (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"interpolate_baked\" '[Float] (IO Float)\n         where\n        nodeMethod = Godot.Core.Curve.interpolate_baked\n\n{-# NOINLINE bindCurve_remove_point #-}\n\n-- | Removes the point at @index@ from the curve.\nbindCurve_remove_point :: MethodBind\nbindCurve_remove_point\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"remove_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the point at @index@ from the curve.\nremove_point ::\n               (Curve :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_remove_point (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"remove_point\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Curve.remove_point\n\n{-# NOINLINE bindCurve_set_bake_resolution #-}\n\n-- | The number of points to include in the baked (i.e. cached) curve data.\nbindCurve_set_bake_resolution :: MethodBind\nbindCurve_set_bake_resolution\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"set_bake_resolution\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of points to include in the baked (i.e. cached) curve data.\nset_bake_resolution ::\n                      (Curve :< cls, Object :< cls) => cls -> Int -> IO ()\nset_bake_resolution cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_set_bake_resolution (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"set_bake_resolution\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Curve.set_bake_resolution\n\n{-# NOINLINE bindCurve_set_max_value #-}\n\n-- | The maximum value the curve can reach.\nbindCurve_set_max_value :: MethodBind\nbindCurve_set_max_value\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"set_max_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum value the curve can reach.\nset_max_value ::\n                (Curve :< cls, Object :< cls) => cls -> Float -> IO ()\nset_max_value cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_set_max_value (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"set_max_value\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Curve.set_max_value\n\n{-# NOINLINE bindCurve_set_min_value #-}\n\n-- | The minimum value the curve can reach.\nbindCurve_set_min_value :: MethodBind\nbindCurve_set_min_value\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"set_min_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum value the curve can reach.\nset_min_value ::\n                (Curve :< cls, Object :< cls) => cls -> Float -> IO ()\nset_min_value cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_set_min_value (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"set_min_value\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Curve.set_min_value\n\n{-# NOINLINE bindCurve_set_point_left_mode #-}\n\n-- | Sets the left @enum TangentMode@ for the point at @index@ to @mode@.\nbindCurve_set_point_left_mode :: MethodBind\nbindCurve_set_point_left_mode\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_left_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the left @enum TangentMode@ for the point at @index@ to @mode@.\nset_point_left_mode ::\n                      (Curve :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nset_point_left_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_set_point_left_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"set_point_left_mode\" '[Int, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Curve.set_point_left_mode\n\n{-# NOINLINE bindCurve_set_point_left_tangent #-}\n\n-- | Sets the left tangent angle for the point at @index@ to @tangent@.\nbindCurve_set_point_left_tangent :: MethodBind\nbindCurve_set_point_left_tangent\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_left_tangent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the left tangent angle for the point at @index@ to @tangent@.\nset_point_left_tangent ::\n                         (Curve :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\nset_point_left_tangent cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_set_point_left_tangent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"set_point_left_tangent\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Curve.set_point_left_tangent\n\n{-# NOINLINE bindCurve_set_point_offset #-}\n\n-- | Sets the offset from @0.5@.\nbindCurve_set_point_offset :: MethodBind\nbindCurve_set_point_offset\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the offset from @0.5@.\nset_point_offset ::\n                   (Curve :< cls, Object :< cls) => cls -> Int -> Float -> IO Int\nset_point_offset cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_set_point_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"set_point_offset\" '[Int, Float] (IO Int)\n         where\n        nodeMethod = Godot.Core.Curve.set_point_offset\n\n{-# NOINLINE bindCurve_set_point_right_mode #-}\n\n-- | Sets the right @enum TangentMode@ for the point at @index@ to @mode@.\nbindCurve_set_point_right_mode :: MethodBind\nbindCurve_set_point_right_mode\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_right_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the right @enum TangentMode@ for the point at @index@ to @mode@.\nset_point_right_mode ::\n                       (Curve :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nset_point_right_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_set_point_right_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"set_point_right_mode\" '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Curve.set_point_right_mode\n\n{-# NOINLINE bindCurve_set_point_right_tangent #-}\n\n-- | Sets the right tangent angle for the point at @index@ to @tangent@.\nbindCurve_set_point_right_tangent :: MethodBind\nbindCurve_set_point_right_tangent\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_right_tangent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the right tangent angle for the point at @index@ to @tangent@.\nset_point_right_tangent ::\n                          (Curve :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\nset_point_right_tangent cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_set_point_right_tangent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"set_point_right_tangent\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Curve.set_point_right_tangent\n\n{-# NOINLINE bindCurve_set_point_value #-}\n\n-- | Assigns the vertical position @y@ to the point at @index@.\nbindCurve_set_point_value :: MethodBind\nbindCurve_set_point_value\n  = unsafePerformIO $\n      withCString \"Curve\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Assigns the vertical position @y@ to the point at @index@.\nset_point_value ::\n                  (Curve :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\nset_point_value cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve_set_point_value (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve \"set_point_value\" '[Int, Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Curve.set_point_value"
  },
  {
    "path": "src/Godot/Core/Curve2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Curve2D\n       (Godot.Core.Curve2D._get_data, Godot.Core.Curve2D._set_data,\n        Godot.Core.Curve2D.add_point, Godot.Core.Curve2D.clear_points,\n        Godot.Core.Curve2D.get_bake_interval,\n        Godot.Core.Curve2D.get_baked_length,\n        Godot.Core.Curve2D.get_baked_points,\n        Godot.Core.Curve2D.get_closest_offset,\n        Godot.Core.Curve2D.get_closest_point,\n        Godot.Core.Curve2D.get_point_count,\n        Godot.Core.Curve2D.get_point_in, Godot.Core.Curve2D.get_point_out,\n        Godot.Core.Curve2D.get_point_position,\n        Godot.Core.Curve2D.interpolate,\n        Godot.Core.Curve2D.interpolate_baked,\n        Godot.Core.Curve2D.interpolatef, Godot.Core.Curve2D.remove_point,\n        Godot.Core.Curve2D.set_bake_interval,\n        Godot.Core.Curve2D.set_point_in, Godot.Core.Curve2D.set_point_out,\n        Godot.Core.Curve2D.set_point_position,\n        Godot.Core.Curve2D.tessellate)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty Curve2D \"_data\" Dictionary 'False where\n        nodeProperty = (_get_data, wrapDroppingSetter _set_data, Nothing)\n\ninstance NodeProperty Curve2D \"bake_interval\" Float 'False where\n        nodeProperty\n          = (get_bake_interval, wrapDroppingSetter set_bake_interval,\n             Nothing)\n\n{-# NOINLINE bindCurve2D__get_data #-}\n\nbindCurve2D__get_data :: MethodBind\nbindCurve2D__get_data\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"_get_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_data ::\n            (Curve2D :< cls, Object :< cls) => cls -> IO Dictionary\n_get_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D__get_data (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"_get_data\" '[] (IO Dictionary) where\n        nodeMethod = Godot.Core.Curve2D._get_data\n\n{-# NOINLINE bindCurve2D__set_data #-}\n\nbindCurve2D__set_data :: MethodBind\nbindCurve2D__set_data\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"_set_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_data ::\n            (Curve2D :< cls, Object :< cls) => cls -> Dictionary -> IO ()\n_set_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D__set_data (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"_set_data\" '[Dictionary] (IO ()) where\n        nodeMethod = Godot.Core.Curve2D._set_data\n\n{-# NOINLINE bindCurve2D_add_point #-}\n\n-- | Adds a point to a curve at @position@, with control points @in@ and @out@.\n--   \t\t\t\tIf @at_position@ is given, the point is inserted before the point number @at_position@, moving that point (and every point after) after the inserted point. If @at_position@ is not given, or is an illegal value (@at_position <0@ or @at_position >= @method get_point_count@@), the point will be appended at the end of the point list.\nbindCurve2D_add_point :: MethodBind\nbindCurve2D_add_point\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"add_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a point to a curve at @position@, with control points @in@ and @out@.\n--   \t\t\t\tIf @at_position@ is given, the point is inserted before the point number @at_position@, moving that point (and every point after) after the inserted point. If @at_position@ is not given, or is an illegal value (@at_position <0@ or @at_position >= @method get_point_count@@), the point will be appended at the end of the point list.\nadd_point ::\n            (Curve2D :< cls, Object :< cls) =>\n            cls ->\n              Vector2 -> Maybe Vector2 -> Maybe Vector2 -> Maybe Int -> IO ()\nadd_point cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantVector2 (V2 0 0) arg2,\n       defaultedVariant VariantVector2 (V2 0 0) arg3,\n       maybe (VariantInt (-1)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_add_point (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"add_point\"\n           '[Vector2, Maybe Vector2, Maybe Vector2, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Curve2D.add_point\n\n{-# NOINLINE bindCurve2D_clear_points #-}\n\n-- | Removes all points from the curve.\nbindCurve2D_clear_points :: MethodBind\nbindCurve2D_clear_points\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"clear_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all points from the curve.\nclear_points :: (Curve2D :< cls, Object :< cls) => cls -> IO ()\nclear_points cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_clear_points (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"clear_points\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Curve2D.clear_points\n\n{-# NOINLINE bindCurve2D_get_bake_interval #-}\n\n-- | The distance in pixels between two adjacent cached points. Changing it forces the cache to be recomputed the next time the @method get_baked_points@ or @method get_baked_length@ function is called. The smaller the distance, the more points in the cache and the more memory it will consume, so use with care.\nbindCurve2D_get_bake_interval :: MethodBind\nbindCurve2D_get_bake_interval\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_bake_interval\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance in pixels between two adjacent cached points. Changing it forces the cache to be recomputed the next time the @method get_baked_points@ or @method get_baked_length@ function is called. The smaller the distance, the more points in the cache and the more memory it will consume, so use with care.\nget_bake_interval ::\n                    (Curve2D :< cls, Object :< cls) => cls -> IO Float\nget_bake_interval cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_get_bake_interval (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"get_bake_interval\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Curve2D.get_bake_interval\n\n{-# NOINLINE bindCurve2D_get_baked_length #-}\n\n-- | Returns the total length of the curve, based on the cached points. Given enough density (see @bake_interval@), it should be approximate enough.\nbindCurve2D_get_baked_length :: MethodBind\nbindCurve2D_get_baked_length\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_baked_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the total length of the curve, based on the cached points. Given enough density (see @bake_interval@), it should be approximate enough.\nget_baked_length ::\n                   (Curve2D :< cls, Object :< cls) => cls -> IO Float\nget_baked_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_get_baked_length (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"get_baked_length\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Curve2D.get_baked_length\n\n{-# NOINLINE bindCurve2D_get_baked_points #-}\n\n-- | Returns the cache of points as a @PoolVector2Array@.\nbindCurve2D_get_baked_points :: MethodBind\nbindCurve2D_get_baked_points\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_baked_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the cache of points as a @PoolVector2Array@.\nget_baked_points ::\n                   (Curve2D :< cls, Object :< cls) => cls -> IO PoolVector2Array\nget_baked_points cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_get_baked_points (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"get_baked_points\" '[]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.Curve2D.get_baked_points\n\n{-# NOINLINE bindCurve2D_get_closest_offset #-}\n\n-- | Returns the closest offset to @to_point@. This offset is meant to be used in @method interpolate_baked@.\n--   \t\t\t\t@to_point@ must be in this curve's local space.\nbindCurve2D_get_closest_offset :: MethodBind\nbindCurve2D_get_closest_offset\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the closest offset to @to_point@. This offset is meant to be used in @method interpolate_baked@.\n--   \t\t\t\t@to_point@ must be in this curve's local space.\nget_closest_offset ::\n                     (Curve2D :< cls, Object :< cls) => cls -> Vector2 -> IO Float\nget_closest_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_get_closest_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"get_closest_offset\" '[Vector2]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Curve2D.get_closest_offset\n\n{-# NOINLINE bindCurve2D_get_closest_point #-}\n\n-- | Returns the closest point (in curve's local space) to @to_point@.\n--   \t\t\t\t@to_point@ must be in this curve's local space.\nbindCurve2D_get_closest_point :: MethodBind\nbindCurve2D_get_closest_point\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the closest point (in curve's local space) to @to_point@.\n--   \t\t\t\t@to_point@ must be in this curve's local space.\nget_closest_point ::\n                    (Curve2D :< cls, Object :< cls) => cls -> Vector2 -> IO Vector2\nget_closest_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_get_closest_point (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"get_closest_point\" '[Vector2]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Curve2D.get_closest_point\n\n{-# NOINLINE bindCurve2D_get_point_count #-}\n\n-- | Returns the number of points describing the curve.\nbindCurve2D_get_point_count :: MethodBind\nbindCurve2D_get_point_count\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of points describing the curve.\nget_point_count :: (Curve2D :< cls, Object :< cls) => cls -> IO Int\nget_point_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_get_point_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"get_point_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Curve2D.get_point_count\n\n{-# NOINLINE bindCurve2D_get_point_in #-}\n\n-- | Returns the position of the control point leading to the vertex @idx@. If the index is out of bounds, the function sends an error to the console, and returns @(0, 0)@.\nbindCurve2D_get_point_in :: MethodBind\nbindCurve2D_get_point_in\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_in\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position of the control point leading to the vertex @idx@. If the index is out of bounds, the function sends an error to the console, and returns @(0, 0)@.\nget_point_in ::\n               (Curve2D :< cls, Object :< cls) => cls -> Int -> IO Vector2\nget_point_in cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_get_point_in (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"get_point_in\" '[Int] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Curve2D.get_point_in\n\n{-# NOINLINE bindCurve2D_get_point_out #-}\n\n-- | Returns the position of the control point leading out of the vertex @idx@. If the index is out of bounds, the function sends an error to the console, and returns @(0, 0)@.\nbindCurve2D_get_point_out :: MethodBind\nbindCurve2D_get_point_out\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_out\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position of the control point leading out of the vertex @idx@. If the index is out of bounds, the function sends an error to the console, and returns @(0, 0)@.\nget_point_out ::\n                (Curve2D :< cls, Object :< cls) => cls -> Int -> IO Vector2\nget_point_out cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_get_point_out (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"get_point_out\" '[Int] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Curve2D.get_point_out\n\n{-# NOINLINE bindCurve2D_get_point_position #-}\n\n-- | Returns the position of the vertex @idx@. If the index is out of bounds, the function sends an error to the console, and returns @(0, 0)@.\nbindCurve2D_get_point_position :: MethodBind\nbindCurve2D_get_point_position\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position of the vertex @idx@. If the index is out of bounds, the function sends an error to the console, and returns @(0, 0)@.\nget_point_position ::\n                     (Curve2D :< cls, Object :< cls) => cls -> Int -> IO Vector2\nget_point_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_get_point_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"get_point_position\" '[Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Curve2D.get_point_position\n\n{-# NOINLINE bindCurve2D_interpolate #-}\n\n-- | Returns the position between the vertex @idx@ and the vertex @idx + 1@, where @t@ controls if the point is the first vertex (@t = 0.0@), the last vertex (@t = 1.0@), or in between. Values of @t@ outside the range (@0.0 >= t <=1@) give strange, but predictable results.\n--   \t\t\t\tIf @idx@ is out of bounds it is truncated to the first or last vertex, and @t@ is ignored. If the curve has no points, the function sends an error to the console, and returns @(0, 0)@.\nbindCurve2D_interpolate :: MethodBind\nbindCurve2D_interpolate\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"interpolate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position between the vertex @idx@ and the vertex @idx + 1@, where @t@ controls if the point is the first vertex (@t = 0.0@), the last vertex (@t = 1.0@), or in between. Values of @t@ outside the range (@0.0 >= t <=1@) give strange, but predictable results.\n--   \t\t\t\tIf @idx@ is out of bounds it is truncated to the first or last vertex, and @t@ is ignored. If the curve has no points, the function sends an error to the console, and returns @(0, 0)@.\ninterpolate ::\n              (Curve2D :< cls, Object :< cls) =>\n              cls -> Int -> Float -> IO Vector2\ninterpolate cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_interpolate (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"interpolate\" '[Int, Float]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Curve2D.interpolate\n\n{-# NOINLINE bindCurve2D_interpolate_baked #-}\n\n-- | Returns a point within the curve at position @offset@, where @offset@ is measured as a pixel distance along the curve.\n--   \t\t\t\tTo do that, it finds the two cached points where the @offset@ lies between, then interpolates the values. This interpolation is cubic if @cubic@ is set to @true@, or linear if set to @false@.\n--   \t\t\t\tCubic interpolation tends to follow the curves better, but linear is faster (and often, precise enough).\nbindCurve2D_interpolate_baked :: MethodBind\nbindCurve2D_interpolate_baked\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"interpolate_baked\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a point within the curve at position @offset@, where @offset@ is measured as a pixel distance along the curve.\n--   \t\t\t\tTo do that, it finds the two cached points where the @offset@ lies between, then interpolates the values. This interpolation is cubic if @cubic@ is set to @true@, or linear if set to @false@.\n--   \t\t\t\tCubic interpolation tends to follow the curves better, but linear is faster (and often, precise enough).\ninterpolate_baked ::\n                    (Curve2D :< cls, Object :< cls) =>\n                    cls -> Float -> Maybe Bool -> IO Vector2\ninterpolate_baked cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_interpolate_baked (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"interpolate_baked\"\n           '[Float, Maybe Bool]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Curve2D.interpolate_baked\n\n{-# NOINLINE bindCurve2D_interpolatef #-}\n\n-- | Returns the position at the vertex @fofs@. It calls @method interpolate@ using the integer part of @fofs@ as @idx@, and its fractional part as @t@.\nbindCurve2D_interpolatef :: MethodBind\nbindCurve2D_interpolatef\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"interpolatef\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position at the vertex @fofs@. It calls @method interpolate@ using the integer part of @fofs@ as @idx@, and its fractional part as @t@.\ninterpolatef ::\n               (Curve2D :< cls, Object :< cls) => cls -> Float -> IO Vector2\ninterpolatef cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_interpolatef (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"interpolatef\" '[Float] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Curve2D.interpolatef\n\n{-# NOINLINE bindCurve2D_remove_point #-}\n\n-- | Deletes the point @idx@ from the curve. Sends an error to the console if @idx@ is out of bounds.\nbindCurve2D_remove_point :: MethodBind\nbindCurve2D_remove_point\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"remove_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Deletes the point @idx@ from the curve. Sends an error to the console if @idx@ is out of bounds.\nremove_point ::\n               (Curve2D :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_remove_point (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"remove_point\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Curve2D.remove_point\n\n{-# NOINLINE bindCurve2D_set_bake_interval #-}\n\n-- | The distance in pixels between two adjacent cached points. Changing it forces the cache to be recomputed the next time the @method get_baked_points@ or @method get_baked_length@ function is called. The smaller the distance, the more points in the cache and the more memory it will consume, so use with care.\nbindCurve2D_set_bake_interval :: MethodBind\nbindCurve2D_set_bake_interval\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_bake_interval\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance in pixels between two adjacent cached points. Changing it forces the cache to be recomputed the next time the @method get_baked_points@ or @method get_baked_length@ function is called. The smaller the distance, the more points in the cache and the more memory it will consume, so use with care.\nset_bake_interval ::\n                    (Curve2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_bake_interval cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_set_bake_interval (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"set_bake_interval\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Curve2D.set_bake_interval\n\n{-# NOINLINE bindCurve2D_set_point_in #-}\n\n-- | Sets the position of the control point leading to the vertex @idx@. If the index is out of bounds, the function sends an error to the console.\nbindCurve2D_set_point_in :: MethodBind\nbindCurve2D_set_point_in\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_in\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the position of the control point leading to the vertex @idx@. If the index is out of bounds, the function sends an error to the console.\nset_point_in ::\n               (Curve2D :< cls, Object :< cls) => cls -> Int -> Vector2 -> IO ()\nset_point_in cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_set_point_in (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"set_point_in\" '[Int, Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.Curve2D.set_point_in\n\n{-# NOINLINE bindCurve2D_set_point_out #-}\n\n-- | Sets the position of the control point leading out of the vertex @idx@. If the index is out of bounds, the function sends an error to the console.\nbindCurve2D_set_point_out :: MethodBind\nbindCurve2D_set_point_out\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_out\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the position of the control point leading out of the vertex @idx@. If the index is out of bounds, the function sends an error to the console.\nset_point_out ::\n                (Curve2D :< cls, Object :< cls) => cls -> Int -> Vector2 -> IO ()\nset_point_out cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_set_point_out (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"set_point_out\" '[Int, Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.Curve2D.set_point_out\n\n{-# NOINLINE bindCurve2D_set_point_position #-}\n\n-- | Sets the position for the vertex @idx@. If the index is out of bounds, the function sends an error to the console.\nbindCurve2D_set_point_position :: MethodBind\nbindCurve2D_set_point_position\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the position for the vertex @idx@. If the index is out of bounds, the function sends an error to the console.\nset_point_position ::\n                     (Curve2D :< cls, Object :< cls) => cls -> Int -> Vector2 -> IO ()\nset_point_position cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_set_point_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"set_point_position\" '[Int, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Curve2D.set_point_position\n\n{-# NOINLINE bindCurve2D_tessellate #-}\n\n-- | Returns a list of points along the curve, with a curvature controlled point density. That is, the curvier parts will have more points than the straighter parts.\n--   \t\t\t\tThis approximation makes straight segments between each point, then subdivides those segments until the resulting shape is similar enough.\n--   \t\t\t\t@max_stages@ controls how many subdivisions a curve segment may face before it is considered approximate enough. Each subdivision splits the segment in half, so the default 5 stages may mean up to 32 subdivisions per curve segment. Increase with care!\n--   \t\t\t\t@tolerance_degrees@ controls how many degrees the midpoint of a segment may deviate from the real curve, before the segment has to be subdivided.\nbindCurve2D_tessellate :: MethodBind\nbindCurve2D_tessellate\n  = unsafePerformIO $\n      withCString \"Curve2D\" $\n        \\ clsNamePtr ->\n          withCString \"tessellate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a list of points along the curve, with a curvature controlled point density. That is, the curvier parts will have more points than the straighter parts.\n--   \t\t\t\tThis approximation makes straight segments between each point, then subdivides those segments until the resulting shape is similar enough.\n--   \t\t\t\t@max_stages@ controls how many subdivisions a curve segment may face before it is considered approximate enough. Each subdivision splits the segment in half, so the default 5 stages may mean up to 32 subdivisions per curve segment. Increase with care!\n--   \t\t\t\t@tolerance_degrees@ controls how many degrees the midpoint of a segment may deviate from the real curve, before the segment has to be subdivided.\ntessellate ::\n             (Curve2D :< cls, Object :< cls) =>\n             cls -> Maybe Int -> Maybe Float -> IO PoolVector2Array\ntessellate cls arg1 arg2\n  = withVariantArray\n      [maybe (VariantInt (5)) toVariant arg1,\n       maybe (VariantReal (4)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve2D_tessellate (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve2D \"tessellate\" '[Maybe Int, Maybe Float]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.Curve2D.tessellate"
  },
  {
    "path": "src/Godot/Core/Curve3D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Curve3D\n       (Godot.Core.Curve3D._get_data, Godot.Core.Curve3D._set_data,\n        Godot.Core.Curve3D.add_point, Godot.Core.Curve3D.clear_points,\n        Godot.Core.Curve3D.get_bake_interval,\n        Godot.Core.Curve3D.get_baked_length,\n        Godot.Core.Curve3D.get_baked_points,\n        Godot.Core.Curve3D.get_baked_tilts,\n        Godot.Core.Curve3D.get_baked_up_vectors,\n        Godot.Core.Curve3D.get_closest_offset,\n        Godot.Core.Curve3D.get_closest_point,\n        Godot.Core.Curve3D.get_point_count,\n        Godot.Core.Curve3D.get_point_in, Godot.Core.Curve3D.get_point_out,\n        Godot.Core.Curve3D.get_point_position,\n        Godot.Core.Curve3D.get_point_tilt, Godot.Core.Curve3D.interpolate,\n        Godot.Core.Curve3D.interpolate_baked,\n        Godot.Core.Curve3D.interpolate_baked_up_vector,\n        Godot.Core.Curve3D.interpolatef,\n        Godot.Core.Curve3D.is_up_vector_enabled,\n        Godot.Core.Curve3D.remove_point,\n        Godot.Core.Curve3D.set_bake_interval,\n        Godot.Core.Curve3D.set_point_in, Godot.Core.Curve3D.set_point_out,\n        Godot.Core.Curve3D.set_point_position,\n        Godot.Core.Curve3D.set_point_tilt,\n        Godot.Core.Curve3D.set_up_vector_enabled,\n        Godot.Core.Curve3D.tessellate)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty Curve3D \"_data\" Dictionary 'False where\n        nodeProperty = (_get_data, wrapDroppingSetter _set_data, Nothing)\n\ninstance NodeProperty Curve3D \"bake_interval\" Float 'False where\n        nodeProperty\n          = (get_bake_interval, wrapDroppingSetter set_bake_interval,\n             Nothing)\n\ninstance NodeProperty Curve3D \"up_vector_enabled\" Bool 'False where\n        nodeProperty\n          = (is_up_vector_enabled, wrapDroppingSetter set_up_vector_enabled,\n             Nothing)\n\n{-# NOINLINE bindCurve3D__get_data #-}\n\nbindCurve3D__get_data :: MethodBind\nbindCurve3D__get_data\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"_get_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_data ::\n            (Curve3D :< cls, Object :< cls) => cls -> IO Dictionary\n_get_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D__get_data (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"_get_data\" '[] (IO Dictionary) where\n        nodeMethod = Godot.Core.Curve3D._get_data\n\n{-# NOINLINE bindCurve3D__set_data #-}\n\nbindCurve3D__set_data :: MethodBind\nbindCurve3D__set_data\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"_set_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_data ::\n            (Curve3D :< cls, Object :< cls) => cls -> Dictionary -> IO ()\n_set_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D__set_data (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"_set_data\" '[Dictionary] (IO ()) where\n        nodeMethod = Godot.Core.Curve3D._set_data\n\n{-# NOINLINE bindCurve3D_add_point #-}\n\n-- | Adds a point to a curve at @position@, with control points @in@ and @out@.\n--   \t\t\t\tIf @at_position@ is given, the point is inserted before the point number @at_position@, moving that point (and every point after) after the inserted point. If @at_position@ is not given, or is an illegal value (@at_position <0@ or @at_position >= @method get_point_count@@), the point will be appended at the end of the point list.\nbindCurve3D_add_point :: MethodBind\nbindCurve3D_add_point\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"add_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a point to a curve at @position@, with control points @in@ and @out@.\n--   \t\t\t\tIf @at_position@ is given, the point is inserted before the point number @at_position@, moving that point (and every point after) after the inserted point. If @at_position@ is not given, or is an illegal value (@at_position <0@ or @at_position >= @method get_point_count@@), the point will be appended at the end of the point list.\nadd_point ::\n            (Curve3D :< cls, Object :< cls) =>\n            cls ->\n              Vector3 -> Maybe Vector3 -> Maybe Vector3 -> Maybe Int -> IO ()\nadd_point cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantVector3 (V3 0 0 0) arg2,\n       defaultedVariant VariantVector3 (V3 0 0 0) arg3,\n       maybe (VariantInt (-1)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_add_point (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"add_point\"\n           '[Vector3, Maybe Vector3, Maybe Vector3, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Curve3D.add_point\n\n{-# NOINLINE bindCurve3D_clear_points #-}\n\n-- | Removes all points from the curve.\nbindCurve3D_clear_points :: MethodBind\nbindCurve3D_clear_points\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"clear_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all points from the curve.\nclear_points :: (Curve3D :< cls, Object :< cls) => cls -> IO ()\nclear_points cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_clear_points (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"clear_points\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Curve3D.clear_points\n\n{-# NOINLINE bindCurve3D_get_bake_interval #-}\n\n-- | The distance in meters between two adjacent cached points. Changing it forces the cache to be recomputed the next time the @method get_baked_points@ or @method get_baked_length@ function is called. The smaller the distance, the more points in the cache and the more memory it will consume, so use with care.\nbindCurve3D_get_bake_interval :: MethodBind\nbindCurve3D_get_bake_interval\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_bake_interval\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance in meters between two adjacent cached points. Changing it forces the cache to be recomputed the next time the @method get_baked_points@ or @method get_baked_length@ function is called. The smaller the distance, the more points in the cache and the more memory it will consume, so use with care.\nget_bake_interval ::\n                    (Curve3D :< cls, Object :< cls) => cls -> IO Float\nget_bake_interval cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_get_bake_interval (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"get_bake_interval\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Curve3D.get_bake_interval\n\n{-# NOINLINE bindCurve3D_get_baked_length #-}\n\n-- | Returns the total length of the curve, based on the cached points. Given enough density (see @bake_interval@), it should be approximate enough.\nbindCurve3D_get_baked_length :: MethodBind\nbindCurve3D_get_baked_length\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_baked_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the total length of the curve, based on the cached points. Given enough density (see @bake_interval@), it should be approximate enough.\nget_baked_length ::\n                   (Curve3D :< cls, Object :< cls) => cls -> IO Float\nget_baked_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_get_baked_length (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"get_baked_length\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Curve3D.get_baked_length\n\n{-# NOINLINE bindCurve3D_get_baked_points #-}\n\n-- | Returns the cache of points as a @PoolVector3Array@.\nbindCurve3D_get_baked_points :: MethodBind\nbindCurve3D_get_baked_points\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_baked_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the cache of points as a @PoolVector3Array@.\nget_baked_points ::\n                   (Curve3D :< cls, Object :< cls) => cls -> IO PoolVector3Array\nget_baked_points cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_get_baked_points (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"get_baked_points\" '[]\n           (IO PoolVector3Array)\n         where\n        nodeMethod = Godot.Core.Curve3D.get_baked_points\n\n{-# NOINLINE bindCurve3D_get_baked_tilts #-}\n\n-- | Returns the cache of tilts as a @PoolRealArray@.\nbindCurve3D_get_baked_tilts :: MethodBind\nbindCurve3D_get_baked_tilts\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_baked_tilts\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the cache of tilts as a @PoolRealArray@.\nget_baked_tilts ::\n                  (Curve3D :< cls, Object :< cls) => cls -> IO PoolRealArray\nget_baked_tilts cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_get_baked_tilts (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"get_baked_tilts\" '[]\n           (IO PoolRealArray)\n         where\n        nodeMethod = Godot.Core.Curve3D.get_baked_tilts\n\n{-# NOINLINE bindCurve3D_get_baked_up_vectors #-}\n\n-- | Returns the cache of up vectors as a @PoolVector3Array@.\n--   \t\t\t\tIf @up_vector_enabled@ is @false@, the cache will be empty.\nbindCurve3D_get_baked_up_vectors :: MethodBind\nbindCurve3D_get_baked_up_vectors\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_baked_up_vectors\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the cache of up vectors as a @PoolVector3Array@.\n--   \t\t\t\tIf @up_vector_enabled@ is @false@, the cache will be empty.\nget_baked_up_vectors ::\n                       (Curve3D :< cls, Object :< cls) => cls -> IO PoolVector3Array\nget_baked_up_vectors cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_get_baked_up_vectors\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"get_baked_up_vectors\" '[]\n           (IO PoolVector3Array)\n         where\n        nodeMethod = Godot.Core.Curve3D.get_baked_up_vectors\n\n{-# NOINLINE bindCurve3D_get_closest_offset #-}\n\n-- | Returns the closest offset to @to_point@. This offset is meant to be used in @method interpolate_baked@ or @method interpolate_baked_up_vector@.\n--   \t\t\t\t@to_point@ must be in this curve's local space.\nbindCurve3D_get_closest_offset :: MethodBind\nbindCurve3D_get_closest_offset\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the closest offset to @to_point@. This offset is meant to be used in @method interpolate_baked@ or @method interpolate_baked_up_vector@.\n--   \t\t\t\t@to_point@ must be in this curve's local space.\nget_closest_offset ::\n                     (Curve3D :< cls, Object :< cls) => cls -> Vector3 -> IO Float\nget_closest_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_get_closest_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"get_closest_offset\" '[Vector3]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Curve3D.get_closest_offset\n\n{-# NOINLINE bindCurve3D_get_closest_point #-}\n\n-- | Returns the closest point (in curve's local space) to @to_point@.\n--   \t\t\t\t@to_point@ must be in this curve's local space.\nbindCurve3D_get_closest_point :: MethodBind\nbindCurve3D_get_closest_point\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the closest point (in curve's local space) to @to_point@.\n--   \t\t\t\t@to_point@ must be in this curve's local space.\nget_closest_point ::\n                    (Curve3D :< cls, Object :< cls) => cls -> Vector3 -> IO Vector3\nget_closest_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_get_closest_point (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"get_closest_point\" '[Vector3]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Curve3D.get_closest_point\n\n{-# NOINLINE bindCurve3D_get_point_count #-}\n\n-- | Returns the number of points describing the curve.\nbindCurve3D_get_point_count :: MethodBind\nbindCurve3D_get_point_count\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of points describing the curve.\nget_point_count :: (Curve3D :< cls, Object :< cls) => cls -> IO Int\nget_point_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_get_point_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"get_point_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Curve3D.get_point_count\n\n{-# NOINLINE bindCurve3D_get_point_in #-}\n\n-- | Returns the position of the control point leading to the vertex @idx@. If the index is out of bounds, the function sends an error to the console, and returns @(0, 0, 0)@.\nbindCurve3D_get_point_in :: MethodBind\nbindCurve3D_get_point_in\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_in\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position of the control point leading to the vertex @idx@. If the index is out of bounds, the function sends an error to the console, and returns @(0, 0, 0)@.\nget_point_in ::\n               (Curve3D :< cls, Object :< cls) => cls -> Int -> IO Vector3\nget_point_in cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_get_point_in (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"get_point_in\" '[Int] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Curve3D.get_point_in\n\n{-# NOINLINE bindCurve3D_get_point_out #-}\n\n-- | Returns the position of the control point leading out of the vertex @idx@. If the index is out of bounds, the function sends an error to the console, and returns @(0, 0, 0)@.\nbindCurve3D_get_point_out :: MethodBind\nbindCurve3D_get_point_out\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_out\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position of the control point leading out of the vertex @idx@. If the index is out of bounds, the function sends an error to the console, and returns @(0, 0, 0)@.\nget_point_out ::\n                (Curve3D :< cls, Object :< cls) => cls -> Int -> IO Vector3\nget_point_out cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_get_point_out (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"get_point_out\" '[Int] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Curve3D.get_point_out\n\n{-# NOINLINE bindCurve3D_get_point_position #-}\n\n-- | Returns the position of the vertex @idx@. If the index is out of bounds, the function sends an error to the console, and returns @(0, 0, 0)@.\nbindCurve3D_get_point_position :: MethodBind\nbindCurve3D_get_point_position\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position of the vertex @idx@. If the index is out of bounds, the function sends an error to the console, and returns @(0, 0, 0)@.\nget_point_position ::\n                     (Curve3D :< cls, Object :< cls) => cls -> Int -> IO Vector3\nget_point_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_get_point_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"get_point_position\" '[Int]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Curve3D.get_point_position\n\n{-# NOINLINE bindCurve3D_get_point_tilt #-}\n\n-- | Returns the tilt angle in radians for the point @idx@. If the index is out of bounds, the function sends an error to the console, and returns @0@.\nbindCurve3D_get_point_tilt :: MethodBind\nbindCurve3D_get_point_tilt\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_tilt\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tilt angle in radians for the point @idx@. If the index is out of bounds, the function sends an error to the console, and returns @0@.\nget_point_tilt ::\n                 (Curve3D :< cls, Object :< cls) => cls -> Int -> IO Float\nget_point_tilt cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_get_point_tilt (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"get_point_tilt\" '[Int] (IO Float)\n         where\n        nodeMethod = Godot.Core.Curve3D.get_point_tilt\n\n{-# NOINLINE bindCurve3D_interpolate #-}\n\n-- | Returns the position between the vertex @idx@ and the vertex @idx + 1@, where @t@ controls if the point is the first vertex (@t = 0.0@), the last vertex (@t = 1.0@), or in between. Values of @t@ outside the range (@0.0 >= t <=1@) give strange, but predictable results.\n--   \t\t\t\tIf @idx@ is out of bounds it is truncated to the first or last vertex, and @t@ is ignored. If the curve has no points, the function sends an error to the console, and returns @(0, 0, 0)@.\nbindCurve3D_interpolate :: MethodBind\nbindCurve3D_interpolate\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"interpolate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position between the vertex @idx@ and the vertex @idx + 1@, where @t@ controls if the point is the first vertex (@t = 0.0@), the last vertex (@t = 1.0@), or in between. Values of @t@ outside the range (@0.0 >= t <=1@) give strange, but predictable results.\n--   \t\t\t\tIf @idx@ is out of bounds it is truncated to the first or last vertex, and @t@ is ignored. If the curve has no points, the function sends an error to the console, and returns @(0, 0, 0)@.\ninterpolate ::\n              (Curve3D :< cls, Object :< cls) =>\n              cls -> Int -> Float -> IO Vector3\ninterpolate cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_interpolate (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"interpolate\" '[Int, Float]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Curve3D.interpolate\n\n{-# NOINLINE bindCurve3D_interpolate_baked #-}\n\n-- | Returns a point within the curve at position @offset@, where @offset@ is measured as a pixel distance along the curve.\n--   \t\t\t\tTo do that, it finds the two cached points where the @offset@ lies between, then interpolates the values. This interpolation is cubic if @cubic@ is set to @true@, or linear if set to @false@.\n--   \t\t\t\tCubic interpolation tends to follow the curves better, but linear is faster (and often, precise enough).\nbindCurve3D_interpolate_baked :: MethodBind\nbindCurve3D_interpolate_baked\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"interpolate_baked\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a point within the curve at position @offset@, where @offset@ is measured as a pixel distance along the curve.\n--   \t\t\t\tTo do that, it finds the two cached points where the @offset@ lies between, then interpolates the values. This interpolation is cubic if @cubic@ is set to @true@, or linear if set to @false@.\n--   \t\t\t\tCubic interpolation tends to follow the curves better, but linear is faster (and often, precise enough).\ninterpolate_baked ::\n                    (Curve3D :< cls, Object :< cls) =>\n                    cls -> Float -> Maybe Bool -> IO Vector3\ninterpolate_baked cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_interpolate_baked (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"interpolate_baked\"\n           '[Float, Maybe Bool]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Curve3D.interpolate_baked\n\n{-# NOINLINE bindCurve3D_interpolate_baked_up_vector #-}\n\n-- | Returns an up vector within the curve at position @offset@, where @offset@ is measured as a distance in 3D units along the curve.\n--   \t\t\t\tTo do that, it finds the two cached up vectors where the @offset@ lies between, then interpolates the values. If @apply_tilt@ is @true@, an interpolated tilt is applied to the interpolated up vector.\n--   \t\t\t\tIf the curve has no up vectors, the function sends an error to the console, and returns @(0, 1, 0)@.\nbindCurve3D_interpolate_baked_up_vector :: MethodBind\nbindCurve3D_interpolate_baked_up_vector\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"interpolate_baked_up_vector\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an up vector within the curve at position @offset@, where @offset@ is measured as a distance in 3D units along the curve.\n--   \t\t\t\tTo do that, it finds the two cached up vectors where the @offset@ lies between, then interpolates the values. If @apply_tilt@ is @true@, an interpolated tilt is applied to the interpolated up vector.\n--   \t\t\t\tIf the curve has no up vectors, the function sends an error to the console, and returns @(0, 1, 0)@.\ninterpolate_baked_up_vector ::\n                              (Curve3D :< cls, Object :< cls) =>\n                              cls -> Float -> Maybe Bool -> IO Vector3\ninterpolate_baked_up_vector cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_interpolate_baked_up_vector\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"interpolate_baked_up_vector\"\n           '[Float, Maybe Bool]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Curve3D.interpolate_baked_up_vector\n\n{-# NOINLINE bindCurve3D_interpolatef #-}\n\n-- | Returns the position at the vertex @fofs@. It calls @method interpolate@ using the integer part of @fofs@ as @idx@, and its fractional part as @t@.\nbindCurve3D_interpolatef :: MethodBind\nbindCurve3D_interpolatef\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"interpolatef\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position at the vertex @fofs@. It calls @method interpolate@ using the integer part of @fofs@ as @idx@, and its fractional part as @t@.\ninterpolatef ::\n               (Curve3D :< cls, Object :< cls) => cls -> Float -> IO Vector3\ninterpolatef cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_interpolatef (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"interpolatef\" '[Float] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Curve3D.interpolatef\n\n{-# NOINLINE bindCurve3D_is_up_vector_enabled #-}\n\n-- | If @true@, the curve will bake up vectors used for orientation. This is used when @PathFollow.rotation_mode@ is set to @PathFollow.ROTATION_ORIENTED@. Changing it forces the cache to be recomputed.\nbindCurve3D_is_up_vector_enabled :: MethodBind\nbindCurve3D_is_up_vector_enabled\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"is_up_vector_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the curve will bake up vectors used for orientation. This is used when @PathFollow.rotation_mode@ is set to @PathFollow.ROTATION_ORIENTED@. Changing it forces the cache to be recomputed.\nis_up_vector_enabled ::\n                       (Curve3D :< cls, Object :< cls) => cls -> IO Bool\nis_up_vector_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_is_up_vector_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"is_up_vector_enabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Curve3D.is_up_vector_enabled\n\n{-# NOINLINE bindCurve3D_remove_point #-}\n\n-- | Deletes the point @idx@ from the curve. Sends an error to the console if @idx@ is out of bounds.\nbindCurve3D_remove_point :: MethodBind\nbindCurve3D_remove_point\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"remove_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Deletes the point @idx@ from the curve. Sends an error to the console if @idx@ is out of bounds.\nremove_point ::\n               (Curve3D :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_remove_point (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"remove_point\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Curve3D.remove_point\n\n{-# NOINLINE bindCurve3D_set_bake_interval #-}\n\n-- | The distance in meters between two adjacent cached points. Changing it forces the cache to be recomputed the next time the @method get_baked_points@ or @method get_baked_length@ function is called. The smaller the distance, the more points in the cache and the more memory it will consume, so use with care.\nbindCurve3D_set_bake_interval :: MethodBind\nbindCurve3D_set_bake_interval\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_bake_interval\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance in meters between two adjacent cached points. Changing it forces the cache to be recomputed the next time the @method get_baked_points@ or @method get_baked_length@ function is called. The smaller the distance, the more points in the cache and the more memory it will consume, so use with care.\nset_bake_interval ::\n                    (Curve3D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_bake_interval cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_set_bake_interval (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"set_bake_interval\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Curve3D.set_bake_interval\n\n{-# NOINLINE bindCurve3D_set_point_in #-}\n\n-- | Sets the position of the control point leading to the vertex @idx@. If the index is out of bounds, the function sends an error to the console.\nbindCurve3D_set_point_in :: MethodBind\nbindCurve3D_set_point_in\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_in\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the position of the control point leading to the vertex @idx@. If the index is out of bounds, the function sends an error to the console.\nset_point_in ::\n               (Curve3D :< cls, Object :< cls) => cls -> Int -> Vector3 -> IO ()\nset_point_in cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_set_point_in (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"set_point_in\" '[Int, Vector3] (IO ())\n         where\n        nodeMethod = Godot.Core.Curve3D.set_point_in\n\n{-# NOINLINE bindCurve3D_set_point_out #-}\n\n-- | Sets the position of the control point leading out of the vertex @idx@. If the index is out of bounds, the function sends an error to the console.\nbindCurve3D_set_point_out :: MethodBind\nbindCurve3D_set_point_out\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_out\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the position of the control point leading out of the vertex @idx@. If the index is out of bounds, the function sends an error to the console.\nset_point_out ::\n                (Curve3D :< cls, Object :< cls) => cls -> Int -> Vector3 -> IO ()\nset_point_out cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_set_point_out (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"set_point_out\" '[Int, Vector3] (IO ())\n         where\n        nodeMethod = Godot.Core.Curve3D.set_point_out\n\n{-# NOINLINE bindCurve3D_set_point_position #-}\n\n-- | Sets the position for the vertex @idx@. If the index is out of bounds, the function sends an error to the console.\nbindCurve3D_set_point_position :: MethodBind\nbindCurve3D_set_point_position\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the position for the vertex @idx@. If the index is out of bounds, the function sends an error to the console.\nset_point_position ::\n                     (Curve3D :< cls, Object :< cls) => cls -> Int -> Vector3 -> IO ()\nset_point_position cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_set_point_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"set_point_position\" '[Int, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Curve3D.set_point_position\n\n{-# NOINLINE bindCurve3D_set_point_tilt #-}\n\n-- | Sets the tilt angle in radians for the point @idx@. If the index is out of bounds, the function sends an error to the console.\n--   \t\t\t\tThe tilt controls the rotation along the look-at axis an object traveling the path would have. In the case of a curve controlling a @PathFollow@, this tilt is an offset over the natural tilt the @PathFollow@ calculates.\nbindCurve3D_set_point_tilt :: MethodBind\nbindCurve3D_set_point_tilt\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_tilt\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the tilt angle in radians for the point @idx@. If the index is out of bounds, the function sends an error to the console.\n--   \t\t\t\tThe tilt controls the rotation along the look-at axis an object traveling the path would have. In the case of a curve controlling a @PathFollow@, this tilt is an offset over the natural tilt the @PathFollow@ calculates.\nset_point_tilt ::\n                 (Curve3D :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\nset_point_tilt cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_set_point_tilt (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"set_point_tilt\" '[Int, Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Curve3D.set_point_tilt\n\n{-# NOINLINE bindCurve3D_set_up_vector_enabled #-}\n\n-- | If @true@, the curve will bake up vectors used for orientation. This is used when @PathFollow.rotation_mode@ is set to @PathFollow.ROTATION_ORIENTED@. Changing it forces the cache to be recomputed.\nbindCurve3D_set_up_vector_enabled :: MethodBind\nbindCurve3D_set_up_vector_enabled\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_up_vector_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the curve will bake up vectors used for orientation. This is used when @PathFollow.rotation_mode@ is set to @PathFollow.ROTATION_ORIENTED@. Changing it forces the cache to be recomputed.\nset_up_vector_enabled ::\n                        (Curve3D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_up_vector_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_set_up_vector_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"set_up_vector_enabled\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Curve3D.set_up_vector_enabled\n\n{-# NOINLINE bindCurve3D_tessellate #-}\n\n-- | Returns a list of points along the curve, with a curvature controlled point density. That is, the curvier parts will have more points than the straighter parts.\n--   \t\t\t\tThis approximation makes straight segments between each point, then subdivides those segments until the resulting shape is similar enough.\n--   \t\t\t\t@max_stages@ controls how many subdivisions a curve segment may face before it is considered approximate enough. Each subdivision splits the segment in half, so the default 5 stages may mean up to 32 subdivisions per curve segment. Increase with care!\n--   \t\t\t\t@tolerance_degrees@ controls how many degrees the midpoint of a segment may deviate from the real curve, before the segment has to be subdivided.\nbindCurve3D_tessellate :: MethodBind\nbindCurve3D_tessellate\n  = unsafePerformIO $\n      withCString \"Curve3D\" $\n        \\ clsNamePtr ->\n          withCString \"tessellate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a list of points along the curve, with a curvature controlled point density. That is, the curvier parts will have more points than the straighter parts.\n--   \t\t\t\tThis approximation makes straight segments between each point, then subdivides those segments until the resulting shape is similar enough.\n--   \t\t\t\t@max_stages@ controls how many subdivisions a curve segment may face before it is considered approximate enough. Each subdivision splits the segment in half, so the default 5 stages may mean up to 32 subdivisions per curve segment. Increase with care!\n--   \t\t\t\t@tolerance_degrees@ controls how many degrees the midpoint of a segment may deviate from the real curve, before the segment has to be subdivided.\ntessellate ::\n             (Curve3D :< cls, Object :< cls) =>\n             cls -> Maybe Int -> Maybe Float -> IO PoolVector3Array\ntessellate cls arg1 arg2\n  = withVariantArray\n      [maybe (VariantInt (5)) toVariant arg1,\n       maybe (VariantReal (4)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurve3D_tessellate (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Curve3D \"tessellate\" '[Maybe Int, Maybe Float]\n           (IO PoolVector3Array)\n         where\n        nodeMethod = Godot.Core.Curve3D.tessellate"
  },
  {
    "path": "src/Godot/Core/CurveTexture.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CurveTexture\n       (Godot.Core.CurveTexture.get_width,\n        Godot.Core.CurveTexture._update, Godot.Core.CurveTexture.get_curve,\n        Godot.Core.CurveTexture.set_curve,\n        Godot.Core.CurveTexture.set_width)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Texture()\n\ninstance NodeProperty CurveTexture \"curve\" Curve 'False where\n        nodeProperty = (get_curve, wrapDroppingSetter set_curve, Nothing)\n\n{-# NOINLINE bindCurveTexture_get_width #-}\n\n-- | The width of the texture.\nbindCurveTexture_get_width :: MethodBind\nbindCurveTexture_get_width\n  = unsafePerformIO $\n      withCString \"CurveTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The width of the texture.\nget_width :: (CurveTexture :< cls, Object :< cls) => cls -> IO Int\nget_width cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurveTexture_get_width (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CurveTexture \"get_width\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CurveTexture.get_width\n\ninstance NodeProperty CurveTexture \"width\" Int 'False where\n        nodeProperty = (get_width, wrapDroppingSetter set_width, Nothing)\n\n{-# NOINLINE bindCurveTexture__update #-}\n\nbindCurveTexture__update :: MethodBind\nbindCurveTexture__update\n  = unsafePerformIO $\n      withCString \"CurveTexture\" $\n        \\ clsNamePtr ->\n          withCString \"_update\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update :: (CurveTexture :< cls, Object :< cls) => cls -> IO ()\n_update cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurveTexture__update (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CurveTexture \"_update\" '[] (IO ()) where\n        nodeMethod = Godot.Core.CurveTexture._update\n\n{-# NOINLINE bindCurveTexture_get_curve #-}\n\n-- | The @curve@ rendered onto the texture.\nbindCurveTexture_get_curve :: MethodBind\nbindCurveTexture_get_curve\n  = unsafePerformIO $\n      withCString \"CurveTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @curve@ rendered onto the texture.\nget_curve ::\n            (CurveTexture :< cls, Object :< cls) => cls -> IO Curve\nget_curve cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurveTexture_get_curve (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CurveTexture \"get_curve\" '[] (IO Curve) where\n        nodeMethod = Godot.Core.CurveTexture.get_curve\n\n{-# NOINLINE bindCurveTexture_set_curve #-}\n\n-- | The @curve@ rendered onto the texture.\nbindCurveTexture_set_curve :: MethodBind\nbindCurveTexture_set_curve\n  = unsafePerformIO $\n      withCString \"CurveTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @curve@ rendered onto the texture.\nset_curve ::\n            (CurveTexture :< cls, Object :< cls) => cls -> Curve -> IO ()\nset_curve cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurveTexture_set_curve (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CurveTexture \"set_curve\" '[Curve] (IO ()) where\n        nodeMethod = Godot.Core.CurveTexture.set_curve\n\n{-# NOINLINE bindCurveTexture_set_width #-}\n\n-- | The width of the texture.\nbindCurveTexture_set_width :: MethodBind\nbindCurveTexture_set_width\n  = unsafePerformIO $\n      withCString \"CurveTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The width of the texture.\nset_width ::\n            (CurveTexture :< cls, Object :< cls) => cls -> Int -> IO ()\nset_width cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCurveTexture_set_width (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CurveTexture \"set_width\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.CurveTexture.set_width"
  },
  {
    "path": "src/Godot/Core/CylinderMesh.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CylinderMesh\n       (Godot.Core.CylinderMesh.get_bottom_radius,\n        Godot.Core.CylinderMesh.get_height,\n        Godot.Core.CylinderMesh.get_radial_segments,\n        Godot.Core.CylinderMesh.get_rings,\n        Godot.Core.CylinderMesh.get_top_radius,\n        Godot.Core.CylinderMesh.set_bottom_radius,\n        Godot.Core.CylinderMesh.set_height,\n        Godot.Core.CylinderMesh.set_radial_segments,\n        Godot.Core.CylinderMesh.set_rings,\n        Godot.Core.CylinderMesh.set_top_radius)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PrimitiveMesh()\n\ninstance NodeProperty CylinderMesh \"bottom_radius\" Float 'False\n         where\n        nodeProperty\n          = (get_bottom_radius, wrapDroppingSetter set_bottom_radius,\n             Nothing)\n\ninstance NodeProperty CylinderMesh \"height\" Float 'False where\n        nodeProperty = (get_height, wrapDroppingSetter set_height, Nothing)\n\ninstance NodeProperty CylinderMesh \"radial_segments\" Int 'False\n         where\n        nodeProperty\n          = (get_radial_segments, wrapDroppingSetter set_radial_segments,\n             Nothing)\n\ninstance NodeProperty CylinderMesh \"rings\" Int 'False where\n        nodeProperty = (get_rings, wrapDroppingSetter set_rings, Nothing)\n\ninstance NodeProperty CylinderMesh \"top_radius\" Float 'False where\n        nodeProperty\n          = (get_top_radius, wrapDroppingSetter set_top_radius, Nothing)\n\n{-# NOINLINE bindCylinderMesh_get_bottom_radius #-}\n\n-- | Bottom radius of the cylinder.\nbindCylinderMesh_get_bottom_radius :: MethodBind\nbindCylinderMesh_get_bottom_radius\n  = unsafePerformIO $\n      withCString \"CylinderMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_bottom_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Bottom radius of the cylinder.\nget_bottom_radius ::\n                    (CylinderMesh :< cls, Object :< cls) => cls -> IO Float\nget_bottom_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCylinderMesh_get_bottom_radius\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CylinderMesh \"get_bottom_radius\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.CylinderMesh.get_bottom_radius\n\n{-# NOINLINE bindCylinderMesh_get_height #-}\n\n-- | Full height of the cylinder.\nbindCylinderMesh_get_height :: MethodBind\nbindCylinderMesh_get_height\n  = unsafePerformIO $\n      withCString \"CylinderMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Full height of the cylinder.\nget_height ::\n             (CylinderMesh :< cls, Object :< cls) => cls -> IO Float\nget_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCylinderMesh_get_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CylinderMesh \"get_height\" '[] (IO Float) where\n        nodeMethod = Godot.Core.CylinderMesh.get_height\n\n{-# NOINLINE bindCylinderMesh_get_radial_segments #-}\n\n-- | Number of radial segments on the cylinder.\nbindCylinderMesh_get_radial_segments :: MethodBind\nbindCylinderMesh_get_radial_segments\n  = unsafePerformIO $\n      withCString \"CylinderMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_radial_segments\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of radial segments on the cylinder.\nget_radial_segments ::\n                      (CylinderMesh :< cls, Object :< cls) => cls -> IO Int\nget_radial_segments cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCylinderMesh_get_radial_segments\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CylinderMesh \"get_radial_segments\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.CylinderMesh.get_radial_segments\n\n{-# NOINLINE bindCylinderMesh_get_rings #-}\n\n-- | Number of edge rings along the height of the cylinder.\nbindCylinderMesh_get_rings :: MethodBind\nbindCylinderMesh_get_rings\n  = unsafePerformIO $\n      withCString \"CylinderMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_rings\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of edge rings along the height of the cylinder.\nget_rings :: (CylinderMesh :< cls, Object :< cls) => cls -> IO Int\nget_rings cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCylinderMesh_get_rings (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CylinderMesh \"get_rings\" '[] (IO Int) where\n        nodeMethod = Godot.Core.CylinderMesh.get_rings\n\n{-# NOINLINE bindCylinderMesh_get_top_radius #-}\n\n-- | Top radius of the cylinder.\nbindCylinderMesh_get_top_radius :: MethodBind\nbindCylinderMesh_get_top_radius\n  = unsafePerformIO $\n      withCString \"CylinderMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_top_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Top radius of the cylinder.\nget_top_radius ::\n                 (CylinderMesh :< cls, Object :< cls) => cls -> IO Float\nget_top_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCylinderMesh_get_top_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CylinderMesh \"get_top_radius\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.CylinderMesh.get_top_radius\n\n{-# NOINLINE bindCylinderMesh_set_bottom_radius #-}\n\n-- | Bottom radius of the cylinder.\nbindCylinderMesh_set_bottom_radius :: MethodBind\nbindCylinderMesh_set_bottom_radius\n  = unsafePerformIO $\n      withCString \"CylinderMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_bottom_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Bottom radius of the cylinder.\nset_bottom_radius ::\n                    (CylinderMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_bottom_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCylinderMesh_set_bottom_radius\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CylinderMesh \"set_bottom_radius\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CylinderMesh.set_bottom_radius\n\n{-# NOINLINE bindCylinderMesh_set_height #-}\n\n-- | Full height of the cylinder.\nbindCylinderMesh_set_height :: MethodBind\nbindCylinderMesh_set_height\n  = unsafePerformIO $\n      withCString \"CylinderMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Full height of the cylinder.\nset_height ::\n             (CylinderMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCylinderMesh_set_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CylinderMesh \"set_height\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CylinderMesh.set_height\n\n{-# NOINLINE bindCylinderMesh_set_radial_segments #-}\n\n-- | Number of radial segments on the cylinder.\nbindCylinderMesh_set_radial_segments :: MethodBind\nbindCylinderMesh_set_radial_segments\n  = unsafePerformIO $\n      withCString \"CylinderMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_radial_segments\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of radial segments on the cylinder.\nset_radial_segments ::\n                      (CylinderMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_radial_segments cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCylinderMesh_set_radial_segments\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CylinderMesh \"set_radial_segments\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.CylinderMesh.set_radial_segments\n\n{-# NOINLINE bindCylinderMesh_set_rings #-}\n\n-- | Number of edge rings along the height of the cylinder.\nbindCylinderMesh_set_rings :: MethodBind\nbindCylinderMesh_set_rings\n  = unsafePerformIO $\n      withCString \"CylinderMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_rings\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of edge rings along the height of the cylinder.\nset_rings ::\n            (CylinderMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_rings cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCylinderMesh_set_rings (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CylinderMesh \"set_rings\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.CylinderMesh.set_rings\n\n{-# NOINLINE bindCylinderMesh_set_top_radius #-}\n\n-- | Top radius of the cylinder.\nbindCylinderMesh_set_top_radius :: MethodBind\nbindCylinderMesh_set_top_radius\n  = unsafePerformIO $\n      withCString \"CylinderMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_top_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Top radius of the cylinder.\nset_top_radius ::\n                 (CylinderMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_top_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCylinderMesh_set_top_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CylinderMesh \"set_top_radius\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CylinderMesh.set_top_radius"
  },
  {
    "path": "src/Godot/Core/CylinderShape.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.CylinderShape\n       (Godot.Core.CylinderShape.get_height,\n        Godot.Core.CylinderShape.get_radius,\n        Godot.Core.CylinderShape.set_height,\n        Godot.Core.CylinderShape.set_radius)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Shape()\n\ninstance NodeProperty CylinderShape \"height\" Float 'False where\n        nodeProperty = (get_height, wrapDroppingSetter set_height, Nothing)\n\ninstance NodeProperty CylinderShape \"radius\" Float 'False where\n        nodeProperty = (get_radius, wrapDroppingSetter set_radius, Nothing)\n\n{-# NOINLINE bindCylinderShape_get_height #-}\n\n-- | The cylinder's height.\nbindCylinderShape_get_height :: MethodBind\nbindCylinderShape_get_height\n  = unsafePerformIO $\n      withCString \"CylinderShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The cylinder's height.\nget_height ::\n             (CylinderShape :< cls, Object :< cls) => cls -> IO Float\nget_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCylinderShape_get_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CylinderShape \"get_height\" '[] (IO Float) where\n        nodeMethod = Godot.Core.CylinderShape.get_height\n\n{-# NOINLINE bindCylinderShape_get_radius #-}\n\n-- | The cylinder's radius.\nbindCylinderShape_get_radius :: MethodBind\nbindCylinderShape_get_radius\n  = unsafePerformIO $\n      withCString \"CylinderShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The cylinder's radius.\nget_radius ::\n             (CylinderShape :< cls, Object :< cls) => cls -> IO Float\nget_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCylinderShape_get_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CylinderShape \"get_radius\" '[] (IO Float) where\n        nodeMethod = Godot.Core.CylinderShape.get_radius\n\n{-# NOINLINE bindCylinderShape_set_height #-}\n\n-- | The cylinder's height.\nbindCylinderShape_set_height :: MethodBind\nbindCylinderShape_set_height\n  = unsafePerformIO $\n      withCString \"CylinderShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The cylinder's height.\nset_height ::\n             (CylinderShape :< cls, Object :< cls) => cls -> Float -> IO ()\nset_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCylinderShape_set_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CylinderShape \"set_height\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CylinderShape.set_height\n\n{-# NOINLINE bindCylinderShape_set_radius #-}\n\n-- | The cylinder's radius.\nbindCylinderShape_set_radius :: MethodBind\nbindCylinderShape_set_radius\n  = unsafePerformIO $\n      withCString \"CylinderShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The cylinder's radius.\nset_radius ::\n             (CylinderShape :< cls, Object :< cls) => cls -> Float -> IO ()\nset_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindCylinderShape_set_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod CylinderShape \"set_radius\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.CylinderShape.set_radius"
  },
  {
    "path": "src/Godot/Core/DampedSpringJoint2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.DampedSpringJoint2D\n       (Godot.Core.DampedSpringJoint2D.get_damping,\n        Godot.Core.DampedSpringJoint2D.get_length,\n        Godot.Core.DampedSpringJoint2D.get_rest_length,\n        Godot.Core.DampedSpringJoint2D.get_stiffness,\n        Godot.Core.DampedSpringJoint2D.set_damping,\n        Godot.Core.DampedSpringJoint2D.set_length,\n        Godot.Core.DampedSpringJoint2D.set_rest_length,\n        Godot.Core.DampedSpringJoint2D.set_stiffness)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Joint2D()\n\ninstance NodeProperty DampedSpringJoint2D \"damping\" Float 'False\n         where\n        nodeProperty\n          = (get_damping, wrapDroppingSetter set_damping, Nothing)\n\ninstance NodeProperty DampedSpringJoint2D \"length\" Float 'False\n         where\n        nodeProperty = (get_length, wrapDroppingSetter set_length, Nothing)\n\ninstance NodeProperty DampedSpringJoint2D \"rest_length\" Float\n           'False\n         where\n        nodeProperty\n          = (get_rest_length, wrapDroppingSetter set_rest_length, Nothing)\n\ninstance NodeProperty DampedSpringJoint2D \"stiffness\" Float 'False\n         where\n        nodeProperty\n          = (get_stiffness, wrapDroppingSetter set_stiffness, Nothing)\n\n{-# NOINLINE bindDampedSpringJoint2D_get_damping #-}\n\n-- | The spring joint's damping ratio. A value between @0@ and @1@. When the two bodies move into different directions the system tries to align them to the spring axis again. A high @damping@ value forces the attached bodies to align faster.\nbindDampedSpringJoint2D_get_damping :: MethodBind\nbindDampedSpringJoint2D_get_damping\n  = unsafePerformIO $\n      withCString \"DampedSpringJoint2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_damping\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The spring joint's damping ratio. A value between @0@ and @1@. When the two bodies move into different directions the system tries to align them to the spring axis again. A high @damping@ value forces the attached bodies to align faster.\nget_damping ::\n              (DampedSpringJoint2D :< cls, Object :< cls) => cls -> IO Float\nget_damping cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDampedSpringJoint2D_get_damping\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DampedSpringJoint2D \"get_damping\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.DampedSpringJoint2D.get_damping\n\n{-# NOINLINE bindDampedSpringJoint2D_get_length #-}\n\n-- | The spring joint's maximum length. The two attached bodies cannot stretch it past this value.\nbindDampedSpringJoint2D_get_length :: MethodBind\nbindDampedSpringJoint2D_get_length\n  = unsafePerformIO $\n      withCString \"DampedSpringJoint2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The spring joint's maximum length. The two attached bodies cannot stretch it past this value.\nget_length ::\n             (DampedSpringJoint2D :< cls, Object :< cls) => cls -> IO Float\nget_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDampedSpringJoint2D_get_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DampedSpringJoint2D \"get_length\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.DampedSpringJoint2D.get_length\n\n{-# NOINLINE bindDampedSpringJoint2D_get_rest_length #-}\n\n-- | When the bodies attached to the spring joint move they stretch or squash it. The joint always tries to resize towards this length.\nbindDampedSpringJoint2D_get_rest_length :: MethodBind\nbindDampedSpringJoint2D_get_rest_length\n  = unsafePerformIO $\n      withCString \"DampedSpringJoint2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_rest_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | When the bodies attached to the spring joint move they stretch or squash it. The joint always tries to resize towards this length.\nget_rest_length ::\n                  (DampedSpringJoint2D :< cls, Object :< cls) => cls -> IO Float\nget_rest_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDampedSpringJoint2D_get_rest_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DampedSpringJoint2D \"get_rest_length\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.DampedSpringJoint2D.get_rest_length\n\n{-# NOINLINE bindDampedSpringJoint2D_get_stiffness #-}\n\n-- | The higher the value, the less the bodies attached to the joint will deform it. The joint applies an opposing force to the bodies, the product of the stiffness multiplied by the size difference from its resting length.\nbindDampedSpringJoint2D_get_stiffness :: MethodBind\nbindDampedSpringJoint2D_get_stiffness\n  = unsafePerformIO $\n      withCString \"DampedSpringJoint2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_stiffness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The higher the value, the less the bodies attached to the joint will deform it. The joint applies an opposing force to the bodies, the product of the stiffness multiplied by the size difference from its resting length.\nget_stiffness ::\n                (DampedSpringJoint2D :< cls, Object :< cls) => cls -> IO Float\nget_stiffness cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDampedSpringJoint2D_get_stiffness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DampedSpringJoint2D \"get_stiffness\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.DampedSpringJoint2D.get_stiffness\n\n{-# NOINLINE bindDampedSpringJoint2D_set_damping #-}\n\n-- | The spring joint's damping ratio. A value between @0@ and @1@. When the two bodies move into different directions the system tries to align them to the spring axis again. A high @damping@ value forces the attached bodies to align faster.\nbindDampedSpringJoint2D_set_damping :: MethodBind\nbindDampedSpringJoint2D_set_damping\n  = unsafePerformIO $\n      withCString \"DampedSpringJoint2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_damping\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The spring joint's damping ratio. A value between @0@ and @1@. When the two bodies move into different directions the system tries to align them to the spring axis again. A high @damping@ value forces the attached bodies to align faster.\nset_damping ::\n              (DampedSpringJoint2D :< cls, Object :< cls) =>\n              cls -> Float -> IO ()\nset_damping cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDampedSpringJoint2D_set_damping\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DampedSpringJoint2D \"set_damping\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.DampedSpringJoint2D.set_damping\n\n{-# NOINLINE bindDampedSpringJoint2D_set_length #-}\n\n-- | The spring joint's maximum length. The two attached bodies cannot stretch it past this value.\nbindDampedSpringJoint2D_set_length :: MethodBind\nbindDampedSpringJoint2D_set_length\n  = unsafePerformIO $\n      withCString \"DampedSpringJoint2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The spring joint's maximum length. The two attached bodies cannot stretch it past this value.\nset_length ::\n             (DampedSpringJoint2D :< cls, Object :< cls) =>\n             cls -> Float -> IO ()\nset_length cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDampedSpringJoint2D_set_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DampedSpringJoint2D \"set_length\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.DampedSpringJoint2D.set_length\n\n{-# NOINLINE bindDampedSpringJoint2D_set_rest_length #-}\n\n-- | When the bodies attached to the spring joint move they stretch or squash it. The joint always tries to resize towards this length.\nbindDampedSpringJoint2D_set_rest_length :: MethodBind\nbindDampedSpringJoint2D_set_rest_length\n  = unsafePerformIO $\n      withCString \"DampedSpringJoint2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_rest_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | When the bodies attached to the spring joint move they stretch or squash it. The joint always tries to resize towards this length.\nset_rest_length ::\n                  (DampedSpringJoint2D :< cls, Object :< cls) =>\n                  cls -> Float -> IO ()\nset_rest_length cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDampedSpringJoint2D_set_rest_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DampedSpringJoint2D \"set_rest_length\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.DampedSpringJoint2D.set_rest_length\n\n{-# NOINLINE bindDampedSpringJoint2D_set_stiffness #-}\n\n-- | The higher the value, the less the bodies attached to the joint will deform it. The joint applies an opposing force to the bodies, the product of the stiffness multiplied by the size difference from its resting length.\nbindDampedSpringJoint2D_set_stiffness :: MethodBind\nbindDampedSpringJoint2D_set_stiffness\n  = unsafePerformIO $\n      withCString \"DampedSpringJoint2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_stiffness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The higher the value, the less the bodies attached to the joint will deform it. The joint applies an opposing force to the bodies, the product of the stiffness multiplied by the size difference from its resting length.\nset_stiffness ::\n                (DampedSpringJoint2D :< cls, Object :< cls) =>\n                cls -> Float -> IO ()\nset_stiffness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDampedSpringJoint2D_set_stiffness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DampedSpringJoint2D \"set_stiffness\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.DampedSpringJoint2D.set_stiffness"
  },
  {
    "path": "src/Godot/Core/DirectionalLight.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.DirectionalLight\n       (Godot.Core.DirectionalLight._SHADOW_ORTHOGONAL,\n        Godot.Core.DirectionalLight._SHADOW_PARALLEL_4_SPLITS,\n        Godot.Core.DirectionalLight._SHADOW_DEPTH_RANGE_STABLE,\n        Godot.Core.DirectionalLight._SHADOW_DEPTH_RANGE_OPTIMIZED,\n        Godot.Core.DirectionalLight._SHADOW_PARALLEL_2_SPLITS,\n        Godot.Core.DirectionalLight.get_param,\n        Godot.Core.DirectionalLight.set_param,\n        Godot.Core.DirectionalLight.get_shadow_depth_range,\n        Godot.Core.DirectionalLight.get_shadow_mode,\n        Godot.Core.DirectionalLight.is_blend_splits_enabled,\n        Godot.Core.DirectionalLight.set_blend_splits,\n        Godot.Core.DirectionalLight.set_shadow_depth_range,\n        Godot.Core.DirectionalLight.set_shadow_mode)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Light()\n\n_SHADOW_ORTHOGONAL :: Int\n_SHADOW_ORTHOGONAL = 0\n\n_SHADOW_PARALLEL_4_SPLITS :: Int\n_SHADOW_PARALLEL_4_SPLITS = 2\n\n_SHADOW_DEPTH_RANGE_STABLE :: Int\n_SHADOW_DEPTH_RANGE_STABLE = 0\n\n_SHADOW_DEPTH_RANGE_OPTIMIZED :: Int\n_SHADOW_DEPTH_RANGE_OPTIMIZED = 1\n\n_SHADOW_PARALLEL_2_SPLITS :: Int\n_SHADOW_PARALLEL_2_SPLITS = 1\n\n{-# NOINLINE bindDirectionalLight_get_param #-}\n\n-- | Amount of extra bias for shadow splits that are far away. If self-shadowing occurs only on the splits far away, increasing this value can fix them.\nbindDirectionalLight_get_param :: MethodBind\nbindDirectionalLight_get_param\n  = unsafePerformIO $\n      withCString \"DirectionalLight\" $\n        \\ clsNamePtr ->\n          withCString \"get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of extra bias for shadow splits that are far away. If self-shadowing occurs only on the splits far away, increasing this value can fix them.\nget_param ::\n            (DirectionalLight :< cls, Object :< cls) => cls -> Int -> IO Float\nget_param cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectionalLight_get_param (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DirectionalLight \"get_param\" '[Int] (IO Float)\n         where\n        nodeMethod = Godot.Core.DirectionalLight.get_param\n\n{-# NOINLINE bindDirectionalLight_set_param #-}\n\n-- | Amount of extra bias for shadow splits that are far away. If self-shadowing occurs only on the splits far away, increasing this value can fix them.\nbindDirectionalLight_set_param :: MethodBind\nbindDirectionalLight_set_param\n  = unsafePerformIO $\n      withCString \"DirectionalLight\" $\n        \\ clsNamePtr ->\n          withCString \"set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of extra bias for shadow splits that are far away. If self-shadowing occurs only on the splits far away, increasing this value can fix them.\nset_param ::\n            (DirectionalLight :< cls, Object :< cls) =>\n            cls -> Int -> Float -> IO ()\nset_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectionalLight_set_param (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DirectionalLight \"set_param\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.DirectionalLight.set_param\n\ninstance NodeProperty DirectionalLight\n           \"directional_shadow_bias_split_scale\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 14 get_param, wrapIndexedSetter 14 set_param,\n             Nothing)\n\ninstance NodeProperty DirectionalLight\n           \"directional_shadow_blend_splits\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (is_blend_splits_enabled, wrapDroppingSetter set_blend_splits,\n             Nothing)\n\ninstance NodeProperty DirectionalLight\n           \"directional_shadow_depth_range\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_shadow_depth_range,\n             wrapDroppingSetter set_shadow_depth_range, Nothing)\n\ninstance NodeProperty DirectionalLight\n           \"directional_shadow_max_distance\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_param, wrapIndexedSetter 8 set_param,\n             Nothing)\n\ninstance NodeProperty DirectionalLight \"directional_shadow_mode\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_shadow_mode, wrapDroppingSetter set_shadow_mode, Nothing)\n\ninstance NodeProperty DirectionalLight\n           \"directional_shadow_normal_bias\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 12 get_param, wrapIndexedSetter 12 set_param,\n             Nothing)\n\ninstance NodeProperty DirectionalLight \"directional_shadow_split_1\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_param, wrapIndexedSetter 9 set_param,\n             Nothing)\n\ninstance NodeProperty DirectionalLight \"directional_shadow_split_2\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_param, wrapIndexedSetter 10 set_param,\n             Nothing)\n\ninstance NodeProperty DirectionalLight \"directional_shadow_split_3\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_param, wrapIndexedSetter 11 set_param,\n             Nothing)\n\n{-# NOINLINE bindDirectionalLight_get_shadow_depth_range #-}\n\n-- | Optimizes shadow rendering for detail versus movement. See @enum ShadowDepthRange@.\nbindDirectionalLight_get_shadow_depth_range :: MethodBind\nbindDirectionalLight_get_shadow_depth_range\n  = unsafePerformIO $\n      withCString \"DirectionalLight\" $\n        \\ clsNamePtr ->\n          withCString \"get_shadow_depth_range\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Optimizes shadow rendering for detail versus movement. See @enum ShadowDepthRange@.\nget_shadow_depth_range ::\n                         (DirectionalLight :< cls, Object :< cls) => cls -> IO Int\nget_shadow_depth_range cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectionalLight_get_shadow_depth_range\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DirectionalLight \"get_shadow_depth_range\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.DirectionalLight.get_shadow_depth_range\n\n{-# NOINLINE bindDirectionalLight_get_shadow_mode #-}\n\n-- | The light's shadow rendering algorithm. See @enum ShadowMode@.\nbindDirectionalLight_get_shadow_mode :: MethodBind\nbindDirectionalLight_get_shadow_mode\n  = unsafePerformIO $\n      withCString \"DirectionalLight\" $\n        \\ clsNamePtr ->\n          withCString \"get_shadow_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The light's shadow rendering algorithm. See @enum ShadowMode@.\nget_shadow_mode ::\n                  (DirectionalLight :< cls, Object :< cls) => cls -> IO Int\nget_shadow_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectionalLight_get_shadow_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DirectionalLight \"get_shadow_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.DirectionalLight.get_shadow_mode\n\n{-# NOINLINE bindDirectionalLight_is_blend_splits_enabled #-}\n\n-- | If @true@, shadow detail is sacrificed in exchange for smoother transitions between splits.\nbindDirectionalLight_is_blend_splits_enabled :: MethodBind\nbindDirectionalLight_is_blend_splits_enabled\n  = unsafePerformIO $\n      withCString \"DirectionalLight\" $\n        \\ clsNamePtr ->\n          withCString \"is_blend_splits_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, shadow detail is sacrificed in exchange for smoother transitions between splits.\nis_blend_splits_enabled ::\n                          (DirectionalLight :< cls, Object :< cls) => cls -> IO Bool\nis_blend_splits_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectionalLight_is_blend_splits_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DirectionalLight \"is_blend_splits_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.DirectionalLight.is_blend_splits_enabled\n\n{-# NOINLINE bindDirectionalLight_set_blend_splits #-}\n\n-- | If @true@, shadow detail is sacrificed in exchange for smoother transitions between splits.\nbindDirectionalLight_set_blend_splits :: MethodBind\nbindDirectionalLight_set_blend_splits\n  = unsafePerformIO $\n      withCString \"DirectionalLight\" $\n        \\ clsNamePtr ->\n          withCString \"set_blend_splits\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, shadow detail is sacrificed in exchange for smoother transitions between splits.\nset_blend_splits ::\n                   (DirectionalLight :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_blend_splits cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectionalLight_set_blend_splits\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DirectionalLight \"set_blend_splits\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.DirectionalLight.set_blend_splits\n\n{-# NOINLINE bindDirectionalLight_set_shadow_depth_range #-}\n\n-- | Optimizes shadow rendering for detail versus movement. See @enum ShadowDepthRange@.\nbindDirectionalLight_set_shadow_depth_range :: MethodBind\nbindDirectionalLight_set_shadow_depth_range\n  = unsafePerformIO $\n      withCString \"DirectionalLight\" $\n        \\ clsNamePtr ->\n          withCString \"set_shadow_depth_range\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Optimizes shadow rendering for detail versus movement. See @enum ShadowDepthRange@.\nset_shadow_depth_range ::\n                         (DirectionalLight :< cls, Object :< cls) => cls -> Int -> IO ()\nset_shadow_depth_range cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectionalLight_set_shadow_depth_range\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DirectionalLight \"set_shadow_depth_range\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.DirectionalLight.set_shadow_depth_range\n\n{-# NOINLINE bindDirectionalLight_set_shadow_mode #-}\n\n-- | The light's shadow rendering algorithm. See @enum ShadowMode@.\nbindDirectionalLight_set_shadow_mode :: MethodBind\nbindDirectionalLight_set_shadow_mode\n  = unsafePerformIO $\n      withCString \"DirectionalLight\" $\n        \\ clsNamePtr ->\n          withCString \"set_shadow_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The light's shadow rendering algorithm. See @enum ShadowMode@.\nset_shadow_mode ::\n                  (DirectionalLight :< cls, Object :< cls) => cls -> Int -> IO ()\nset_shadow_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectionalLight_set_shadow_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DirectionalLight \"set_shadow_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.DirectionalLight.set_shadow_mode"
  },
  {
    "path": "src/Godot/Core/Directory.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Directory\n       (Godot.Core.Directory.change_dir, Godot.Core.Directory.copy,\n        Godot.Core.Directory.current_is_dir,\n        Godot.Core.Directory.dir_exists, Godot.Core.Directory.file_exists,\n        Godot.Core.Directory.get_current_dir,\n        Godot.Core.Directory.get_current_drive,\n        Godot.Core.Directory.get_drive,\n        Godot.Core.Directory.get_drive_count,\n        Godot.Core.Directory.get_next, Godot.Core.Directory.get_space_left,\n        Godot.Core.Directory.list_dir_begin,\n        Godot.Core.Directory.list_dir_end, Godot.Core.Directory.make_dir,\n        Godot.Core.Directory.make_dir_recursive, Godot.Core.Directory.open,\n        Godot.Core.Directory.remove, Godot.Core.Directory.rename)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindDirectory_change_dir #-}\n\n-- | Changes the currently opened directory to the one passed as an argument. The argument can be relative to the current directory (e.g. @newdir@ or @../newdir@), or an absolute path (e.g. @/tmp/newdir@ or @res://somedir/newdir@).\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nbindDirectory_change_dir :: MethodBind\nbindDirectory_change_dir\n  = unsafePerformIO $\n      withCString \"_Directory\" $\n        \\ clsNamePtr ->\n          withCString \"change_dir\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes the currently opened directory to the one passed as an argument. The argument can be relative to the current directory (e.g. @newdir@ or @../newdir@), or an absolute path (e.g. @/tmp/newdir@ or @res://somedir/newdir@).\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nchange_dir ::\n             (Directory :< cls, Object :< cls) => cls -> GodotString -> IO Int\nchange_dir cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectory_change_dir (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Directory \"change_dir\" '[GodotString] (IO Int)\n         where\n        nodeMethod = Godot.Core.Directory.change_dir\n\n{-# NOINLINE bindDirectory_copy #-}\n\n-- | Copies the @from@ file to the @to@ destination. Both arguments should be paths to files, either relative or absolute. If the destination file exists and is not access-protected, it will be overwritten.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nbindDirectory_copy :: MethodBind\nbindDirectory_copy\n  = unsafePerformIO $\n      withCString \"_Directory\" $\n        \\ clsNamePtr ->\n          withCString \"copy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Copies the @from@ file to the @to@ destination. Both arguments should be paths to files, either relative or absolute. If the destination file exists and is not access-protected, it will be overwritten.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\ncopy ::\n       (Directory :< cls, Object :< cls) =>\n       cls -> GodotString -> GodotString -> IO Int\ncopy cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectory_copy (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Directory \"copy\" '[GodotString, GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Directory.copy\n\n{-# NOINLINE bindDirectory_current_is_dir #-}\n\n-- | Returns whether the current item processed with the last @method get_next@ call is a directory (@.@ and @..@ are considered directories).\nbindDirectory_current_is_dir :: MethodBind\nbindDirectory_current_is_dir\n  = unsafePerformIO $\n      withCString \"_Directory\" $\n        \\ clsNamePtr ->\n          withCString \"current_is_dir\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether the current item processed with the last @method get_next@ call is a directory (@.@ and @..@ are considered directories).\ncurrent_is_dir ::\n                 (Directory :< cls, Object :< cls) => cls -> IO Bool\ncurrent_is_dir cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectory_current_is_dir (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Directory \"current_is_dir\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Directory.current_is_dir\n\n{-# NOINLINE bindDirectory_dir_exists #-}\n\n-- | Returns whether the target directory exists. The argument can be relative to the current directory, or an absolute path.\nbindDirectory_dir_exists :: MethodBind\nbindDirectory_dir_exists\n  = unsafePerformIO $\n      withCString \"_Directory\" $\n        \\ clsNamePtr ->\n          withCString \"dir_exists\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether the target directory exists. The argument can be relative to the current directory, or an absolute path.\ndir_exists ::\n             (Directory :< cls, Object :< cls) => cls -> GodotString -> IO Bool\ndir_exists cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectory_dir_exists (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Directory \"dir_exists\" '[GodotString] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Directory.dir_exists\n\n{-# NOINLINE bindDirectory_file_exists #-}\n\n-- | Returns whether the target file exists. The argument can be relative to the current directory, or an absolute path.\nbindDirectory_file_exists :: MethodBind\nbindDirectory_file_exists\n  = unsafePerformIO $\n      withCString \"_Directory\" $\n        \\ clsNamePtr ->\n          withCString \"file_exists\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether the target file exists. The argument can be relative to the current directory, or an absolute path.\nfile_exists ::\n              (Directory :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nfile_exists cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectory_file_exists (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Directory \"file_exists\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Directory.file_exists\n\n{-# NOINLINE bindDirectory_get_current_dir #-}\n\n-- | Returns the absolute path to the currently opened directory (e.g. @res://folder@ or @C:\\tmp\\folder@).\nbindDirectory_get_current_dir :: MethodBind\nbindDirectory_get_current_dir\n  = unsafePerformIO $\n      withCString \"_Directory\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_dir\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the absolute path to the currently opened directory (e.g. @res://folder@ or @C:\\tmp\\folder@).\nget_current_dir ::\n                  (Directory :< cls, Object :< cls) => cls -> IO GodotString\nget_current_dir cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectory_get_current_dir (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Directory \"get_current_dir\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Directory.get_current_dir\n\n{-# NOINLINE bindDirectory_get_current_drive #-}\n\n-- | Returns the currently opened directory's drive index. See @method get_drive@ to convert returned index to the name of the drive.\nbindDirectory_get_current_drive :: MethodBind\nbindDirectory_get_current_drive\n  = unsafePerformIO $\n      withCString \"_Directory\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_drive\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the currently opened directory's drive index. See @method get_drive@ to convert returned index to the name of the drive.\nget_current_drive ::\n                    (Directory :< cls, Object :< cls) => cls -> IO Int\nget_current_drive cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectory_get_current_drive (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Directory \"get_current_drive\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Directory.get_current_drive\n\n{-# NOINLINE bindDirectory_get_drive #-}\n\n-- | On Windows, returns the name of the drive (partition) passed as an argument (e.g. @C:@). On other platforms, or if the requested drive does not existed, the method returns an empty String.\nbindDirectory_get_drive :: MethodBind\nbindDirectory_get_drive\n  = unsafePerformIO $\n      withCString \"_Directory\" $\n        \\ clsNamePtr ->\n          withCString \"get_drive\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | On Windows, returns the name of the drive (partition) passed as an argument (e.g. @C:@). On other platforms, or if the requested drive does not existed, the method returns an empty String.\nget_drive ::\n            (Directory :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_drive cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectory_get_drive (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Directory \"get_drive\" '[Int] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Directory.get_drive\n\n{-# NOINLINE bindDirectory_get_drive_count #-}\n\n-- | On Windows, returns the number of drives (partitions) mounted on the current filesystem. On other platforms, the method returns 0.\nbindDirectory_get_drive_count :: MethodBind\nbindDirectory_get_drive_count\n  = unsafePerformIO $\n      withCString \"_Directory\" $\n        \\ clsNamePtr ->\n          withCString \"get_drive_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | On Windows, returns the number of drives (partitions) mounted on the current filesystem. On other platforms, the method returns 0.\nget_drive_count ::\n                  (Directory :< cls, Object :< cls) => cls -> IO Int\nget_drive_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectory_get_drive_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Directory \"get_drive_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Directory.get_drive_count\n\n{-# NOINLINE bindDirectory_get_next #-}\n\n-- | Returns the next element (file or directory) in the current directory (including @.@ and @..@, unless @skip_navigational@ was given to @method list_dir_begin@).\n--   \t\t\t\tThe name of the file or directory is returned (and not its full path). Once the stream has been fully processed, the method returns an empty String and closes the stream automatically (i.e. @method list_dir_end@ would not be mandatory in such a case).\nbindDirectory_get_next :: MethodBind\nbindDirectory_get_next\n  = unsafePerformIO $\n      withCString \"_Directory\" $\n        \\ clsNamePtr ->\n          withCString \"get_next\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the next element (file or directory) in the current directory (including @.@ and @..@, unless @skip_navigational@ was given to @method list_dir_begin@).\n--   \t\t\t\tThe name of the file or directory is returned (and not its full path). Once the stream has been fully processed, the method returns an empty String and closes the stream automatically (i.e. @method list_dir_end@ would not be mandatory in such a case).\nget_next ::\n           (Directory :< cls, Object :< cls) => cls -> IO GodotString\nget_next cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectory_get_next (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Directory \"get_next\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.Directory.get_next\n\n{-# NOINLINE bindDirectory_get_space_left #-}\n\n-- | On UNIX desktop systems, returns the available space on the current directory's disk. On other platforms, this information is not available and the method returns 0 or -1.\nbindDirectory_get_space_left :: MethodBind\nbindDirectory_get_space_left\n  = unsafePerformIO $\n      withCString \"_Directory\" $\n        \\ clsNamePtr ->\n          withCString \"get_space_left\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | On UNIX desktop systems, returns the available space on the current directory's disk. On other platforms, this information is not available and the method returns 0 or -1.\nget_space_left ::\n                 (Directory :< cls, Object :< cls) => cls -> IO Int\nget_space_left cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectory_get_space_left (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Directory \"get_space_left\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Directory.get_space_left\n\n{-# NOINLINE bindDirectory_list_dir_begin #-}\n\n-- | Initializes the stream used to list all files and directories using the @method get_next@ function, closing the current opened stream if needed. Once the stream has been processed, it should typically be closed with @method list_dir_end@.\n--   \t\t\t\tIf @skip_navigational@ is @true@, @.@ and @..@ are filtered out.\n--   \t\t\t\tIf @skip_hidden@ is @true@, hidden files are filtered out.\nbindDirectory_list_dir_begin :: MethodBind\nbindDirectory_list_dir_begin\n  = unsafePerformIO $\n      withCString \"_Directory\" $\n        \\ clsNamePtr ->\n          withCString \"list_dir_begin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Initializes the stream used to list all files and directories using the @method get_next@ function, closing the current opened stream if needed. Once the stream has been processed, it should typically be closed with @method list_dir_end@.\n--   \t\t\t\tIf @skip_navigational@ is @true@, @.@ and @..@ are filtered out.\n--   \t\t\t\tIf @skip_hidden@ is @true@, hidden files are filtered out.\nlist_dir_begin ::\n                 (Directory :< cls, Object :< cls) =>\n                 cls -> Maybe Bool -> Maybe Bool -> IO Int\nlist_dir_begin cls arg1 arg2\n  = withVariantArray\n      [maybe (VariantBool False) toVariant arg1,\n       maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectory_list_dir_begin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Directory \"list_dir_begin\"\n           '[Maybe Bool, Maybe Bool]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Directory.list_dir_begin\n\n{-# NOINLINE bindDirectory_list_dir_end #-}\n\n-- | Closes the current stream opened with @method list_dir_begin@ (whether it has been fully processed with @method get_next@ or not does not matter).\nbindDirectory_list_dir_end :: MethodBind\nbindDirectory_list_dir_end\n  = unsafePerformIO $\n      withCString \"_Directory\" $\n        \\ clsNamePtr ->\n          withCString \"list_dir_end\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Closes the current stream opened with @method list_dir_begin@ (whether it has been fully processed with @method get_next@ or not does not matter).\nlist_dir_end :: (Directory :< cls, Object :< cls) => cls -> IO ()\nlist_dir_end cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectory_list_dir_end (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Directory \"list_dir_end\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Directory.list_dir_end\n\n{-# NOINLINE bindDirectory_make_dir #-}\n\n-- | Creates a directory. The argument can be relative to the current directory, or an absolute path. The target directory should be placed in an already existing directory (to create the full path recursively, see @method make_dir_recursive@).\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nbindDirectory_make_dir :: MethodBind\nbindDirectory_make_dir\n  = unsafePerformIO $\n      withCString \"_Directory\" $\n        \\ clsNamePtr ->\n          withCString \"make_dir\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a directory. The argument can be relative to the current directory, or an absolute path. The target directory should be placed in an already existing directory (to create the full path recursively, see @method make_dir_recursive@).\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nmake_dir ::\n           (Directory :< cls, Object :< cls) => cls -> GodotString -> IO Int\nmake_dir cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectory_make_dir (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Directory \"make_dir\" '[GodotString] (IO Int)\n         where\n        nodeMethod = Godot.Core.Directory.make_dir\n\n{-# NOINLINE bindDirectory_make_dir_recursive #-}\n\n-- | Creates a target directory and all necessary intermediate directories in its path, by calling @method make_dir@ recursively. The argument can be relative to the current directory, or an absolute path.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nbindDirectory_make_dir_recursive :: MethodBind\nbindDirectory_make_dir_recursive\n  = unsafePerformIO $\n      withCString \"_Directory\" $\n        \\ clsNamePtr ->\n          withCString \"make_dir_recursive\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a target directory and all necessary intermediate directories in its path, by calling @method make_dir@ recursively. The argument can be relative to the current directory, or an absolute path.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nmake_dir_recursive ::\n                     (Directory :< cls, Object :< cls) => cls -> GodotString -> IO Int\nmake_dir_recursive cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectory_make_dir_recursive\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Directory \"make_dir_recursive\" '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Directory.make_dir_recursive\n\n{-# NOINLINE bindDirectory_open #-}\n\n-- | Opens an existing directory of the filesystem. The @path@ argument can be within the project tree (@res://folder@), the user directory (@user://folder@) or an absolute path of the user filesystem (e.g. @/tmp/folder@ or @C:\\tmp\\folder@).\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nbindDirectory_open :: MethodBind\nbindDirectory_open\n  = unsafePerformIO $\n      withCString \"_Directory\" $\n        \\ clsNamePtr ->\n          withCString \"open\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Opens an existing directory of the filesystem. The @path@ argument can be within the project tree (@res://folder@), the user directory (@user://folder@) or an absolute path of the user filesystem (e.g. @/tmp/folder@ or @C:\\tmp\\folder@).\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nopen ::\n       (Directory :< cls, Object :< cls) => cls -> GodotString -> IO Int\nopen cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectory_open (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Directory \"open\" '[GodotString] (IO Int) where\n        nodeMethod = Godot.Core.Directory.open\n\n{-# NOINLINE bindDirectory_remove #-}\n\n-- | Deletes the target file or an empty directory. The argument can be relative to the current directory, or an absolute path. If the target directory is not empty, the operation will fail.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nbindDirectory_remove :: MethodBind\nbindDirectory_remove\n  = unsafePerformIO $\n      withCString \"_Directory\" $\n        \\ clsNamePtr ->\n          withCString \"remove\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Deletes the target file or an empty directory. The argument can be relative to the current directory, or an absolute path. If the target directory is not empty, the operation will fail.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nremove ::\n         (Directory :< cls, Object :< cls) => cls -> GodotString -> IO Int\nremove cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectory_remove (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Directory \"remove\" '[GodotString] (IO Int)\n         where\n        nodeMethod = Godot.Core.Directory.remove\n\n{-# NOINLINE bindDirectory_rename #-}\n\n-- | Renames (move) the @from@ file to the @to@ destination. Both arguments should be paths to files, either relative or absolute. If the destination file exists and is not access-protected, it will be overwritten.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nbindDirectory_rename :: MethodBind\nbindDirectory_rename\n  = unsafePerformIO $\n      withCString \"_Directory\" $\n        \\ clsNamePtr ->\n          withCString \"rename\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Renames (move) the @from@ file to the @to@ destination. Both arguments should be paths to files, either relative or absolute. If the destination file exists and is not access-protected, it will be overwritten.\n--   \t\t\t\tReturns one of the @enum Error@ code constants (@OK@ on success).\nrename ::\n         (Directory :< cls, Object :< cls) =>\n         cls -> GodotString -> GodotString -> IO Int\nrename cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDirectory_rename (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Directory \"rename\" '[GodotString, GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Directory.rename"
  },
  {
    "path": "src/Godot/Core/DynamicFont.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.DynamicFont\n       (Godot.Core.DynamicFont._SPACING_TOP,\n        Godot.Core.DynamicFont._SPACING_SPACE,\n        Godot.Core.DynamicFont._SPACING_CHAR,\n        Godot.Core.DynamicFont._SPACING_BOTTOM,\n        Godot.Core.DynamicFont.add_fallback,\n        Godot.Core.DynamicFont.get_fallback,\n        Godot.Core.DynamicFont.get_fallback_count,\n        Godot.Core.DynamicFont.get_font_data,\n        Godot.Core.DynamicFont.get_outline_color,\n        Godot.Core.DynamicFont.get_outline_size,\n        Godot.Core.DynamicFont.get_size,\n        Godot.Core.DynamicFont.get_spacing,\n        Godot.Core.DynamicFont.get_use_filter,\n        Godot.Core.DynamicFont.get_use_mipmaps,\n        Godot.Core.DynamicFont.remove_fallback,\n        Godot.Core.DynamicFont.set_fallback,\n        Godot.Core.DynamicFont.set_font_data,\n        Godot.Core.DynamicFont.set_outline_color,\n        Godot.Core.DynamicFont.set_outline_size,\n        Godot.Core.DynamicFont.set_size,\n        Godot.Core.DynamicFont.set_spacing,\n        Godot.Core.DynamicFont.set_use_filter,\n        Godot.Core.DynamicFont.set_use_mipmaps)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Font()\n\n_SPACING_TOP :: Int\n_SPACING_TOP = 0\n\n_SPACING_SPACE :: Int\n_SPACING_SPACE = 3\n\n_SPACING_CHAR :: Int\n_SPACING_CHAR = 2\n\n_SPACING_BOTTOM :: Int\n_SPACING_BOTTOM = 1\n\ninstance NodeProperty DynamicFont \"extra_spacing_bottom\" Int 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_spacing,\n             wrapIndexedSetter 1 set_spacing, Nothing)\n\ninstance NodeProperty DynamicFont \"extra_spacing_char\" Int 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_spacing,\n             wrapIndexedSetter 2 set_spacing, Nothing)\n\ninstance NodeProperty DynamicFont \"extra_spacing_space\" Int 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_spacing,\n             wrapIndexedSetter 3 set_spacing, Nothing)\n\ninstance NodeProperty DynamicFont \"extra_spacing_top\" Int 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_spacing,\n             wrapIndexedSetter 0 set_spacing, Nothing)\n\ninstance NodeProperty DynamicFont \"font_data\" DynamicFontData\n           'False\n         where\n        nodeProperty\n          = (get_font_data, wrapDroppingSetter set_font_data, Nothing)\n\ninstance NodeProperty DynamicFont \"outline_color\" Color 'False\n         where\n        nodeProperty\n          = (get_outline_color, wrapDroppingSetter set_outline_color,\n             Nothing)\n\ninstance NodeProperty DynamicFont \"outline_size\" Int 'False where\n        nodeProperty\n          = (get_outline_size, wrapDroppingSetter set_outline_size, Nothing)\n\ninstance NodeProperty DynamicFont \"size\" Int 'False where\n        nodeProperty = (get_size, wrapDroppingSetter set_size, Nothing)\n\ninstance NodeProperty DynamicFont \"use_filter\" Bool 'False where\n        nodeProperty\n          = (get_use_filter, wrapDroppingSetter set_use_filter, Nothing)\n\ninstance NodeProperty DynamicFont \"use_mipmaps\" Bool 'False where\n        nodeProperty\n          = (get_use_mipmaps, wrapDroppingSetter set_use_mipmaps, Nothing)\n\n{-# NOINLINE bindDynamicFont_add_fallback #-}\n\n-- | Adds a fallback font.\nbindDynamicFont_add_fallback :: MethodBind\nbindDynamicFont_add_fallback\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"add_fallback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a fallback font.\nadd_fallback ::\n               (DynamicFont :< cls, Object :< cls) =>\n               cls -> DynamicFontData -> IO ()\nadd_fallback cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_add_fallback (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"add_fallback\" '[DynamicFontData]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.DynamicFont.add_fallback\n\n{-# NOINLINE bindDynamicFont_get_fallback #-}\n\n-- | Returns the fallback font at index @idx@.\nbindDynamicFont_get_fallback :: MethodBind\nbindDynamicFont_get_fallback\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"get_fallback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the fallback font at index @idx@.\nget_fallback ::\n               (DynamicFont :< cls, Object :< cls) =>\n               cls -> Int -> IO DynamicFontData\nget_fallback cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_get_fallback (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"get_fallback\" '[Int]\n           (IO DynamicFontData)\n         where\n        nodeMethod = Godot.Core.DynamicFont.get_fallback\n\n{-# NOINLINE bindDynamicFont_get_fallback_count #-}\n\n-- | Returns the number of fallback fonts.\nbindDynamicFont_get_fallback_count :: MethodBind\nbindDynamicFont_get_fallback_count\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"get_fallback_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of fallback fonts.\nget_fallback_count ::\n                     (DynamicFont :< cls, Object :< cls) => cls -> IO Int\nget_fallback_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_get_fallback_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"get_fallback_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.DynamicFont.get_fallback_count\n\n{-# NOINLINE bindDynamicFont_get_font_data #-}\n\n-- | The font data.\nbindDynamicFont_get_font_data :: MethodBind\nbindDynamicFont_get_font_data\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"get_font_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The font data.\nget_font_data ::\n                (DynamicFont :< cls, Object :< cls) => cls -> IO DynamicFontData\nget_font_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_get_font_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"get_font_data\" '[]\n           (IO DynamicFontData)\n         where\n        nodeMethod = Godot.Core.DynamicFont.get_font_data\n\n{-# NOINLINE bindDynamicFont_get_outline_color #-}\n\n-- | The font outline's color.\n--   \t\t\t__Note:__ It's recommended to leave this at the default value so that you can adjust it in individual controls. For example, if the outline is made black here, it won't be possible to change its color using a Label's font outline modulate theme item.\nbindDynamicFont_get_outline_color :: MethodBind\nbindDynamicFont_get_outline_color\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"get_outline_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The font outline's color.\n--   \t\t\t__Note:__ It's recommended to leave this at the default value so that you can adjust it in individual controls. For example, if the outline is made black here, it won't be possible to change its color using a Label's font outline modulate theme item.\nget_outline_color ::\n                    (DynamicFont :< cls, Object :< cls) => cls -> IO Color\nget_outline_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_get_outline_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"get_outline_color\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.DynamicFont.get_outline_color\n\n{-# NOINLINE bindDynamicFont_get_outline_size #-}\n\n-- | The font outline's thickness in pixels (not relative to the font size).\nbindDynamicFont_get_outline_size :: MethodBind\nbindDynamicFont_get_outline_size\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"get_outline_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The font outline's thickness in pixels (not relative to the font size).\nget_outline_size ::\n                   (DynamicFont :< cls, Object :< cls) => cls -> IO Int\nget_outline_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_get_outline_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"get_outline_size\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.DynamicFont.get_outline_size\n\n{-# NOINLINE bindDynamicFont_get_size #-}\n\n-- | The font size in pixels.\nbindDynamicFont_get_size :: MethodBind\nbindDynamicFont_get_size\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"get_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The font size in pixels.\nget_size :: (DynamicFont :< cls, Object :< cls) => cls -> IO Int\nget_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_get_size (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"get_size\" '[] (IO Int) where\n        nodeMethod = Godot.Core.DynamicFont.get_size\n\n{-# NOINLINE bindDynamicFont_get_spacing #-}\n\n-- | Returns the spacing for the given @type@ (see @enum SpacingType@).\nbindDynamicFont_get_spacing :: MethodBind\nbindDynamicFont_get_spacing\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"get_spacing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the spacing for the given @type@ (see @enum SpacingType@).\nget_spacing ::\n              (DynamicFont :< cls, Object :< cls) => cls -> Int -> IO Int\nget_spacing cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_get_spacing (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"get_spacing\" '[Int] (IO Int) where\n        nodeMethod = Godot.Core.DynamicFont.get_spacing\n\n{-# NOINLINE bindDynamicFont_get_use_filter #-}\n\n-- | If @true@, filtering is used. This makes the font blurry instead of pixelated when scaling it if font oversampling is disabled or ineffective. It's recommended to enable this when using the font in a control whose size changes over time, unless a pixel art aesthetic is desired.\nbindDynamicFont_get_use_filter :: MethodBind\nbindDynamicFont_get_use_filter\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"get_use_filter\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, filtering is used. This makes the font blurry instead of pixelated when scaling it if font oversampling is disabled or ineffective. It's recommended to enable this when using the font in a control whose size changes over time, unless a pixel art aesthetic is desired.\nget_use_filter ::\n                 (DynamicFont :< cls, Object :< cls) => cls -> IO Bool\nget_use_filter cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_get_use_filter (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"get_use_filter\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.DynamicFont.get_use_filter\n\n{-# NOINLINE bindDynamicFont_get_use_mipmaps #-}\n\n-- | If @true@, mipmapping is used. This improves the font's appearance when downscaling it if font oversampling is disabled or ineffective.\nbindDynamicFont_get_use_mipmaps :: MethodBind\nbindDynamicFont_get_use_mipmaps\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"get_use_mipmaps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, mipmapping is used. This improves the font's appearance when downscaling it if font oversampling is disabled or ineffective.\nget_use_mipmaps ::\n                  (DynamicFont :< cls, Object :< cls) => cls -> IO Bool\nget_use_mipmaps cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_get_use_mipmaps (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"get_use_mipmaps\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.DynamicFont.get_use_mipmaps\n\n{-# NOINLINE bindDynamicFont_remove_fallback #-}\n\n-- | Removes the fallback font at index @idx@.\nbindDynamicFont_remove_fallback :: MethodBind\nbindDynamicFont_remove_fallback\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"remove_fallback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the fallback font at index @idx@.\nremove_fallback ::\n                  (DynamicFont :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_fallback cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_remove_fallback (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"remove_fallback\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.DynamicFont.remove_fallback\n\n{-# NOINLINE bindDynamicFont_set_fallback #-}\n\n-- | Sets the fallback font at index @idx@.\nbindDynamicFont_set_fallback :: MethodBind\nbindDynamicFont_set_fallback\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"set_fallback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the fallback font at index @idx@.\nset_fallback ::\n               (DynamicFont :< cls, Object :< cls) =>\n               cls -> Int -> DynamicFontData -> IO ()\nset_fallback cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_set_fallback (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"set_fallback\"\n           '[Int, DynamicFontData]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.DynamicFont.set_fallback\n\n{-# NOINLINE bindDynamicFont_set_font_data #-}\n\n-- | The font data.\nbindDynamicFont_set_font_data :: MethodBind\nbindDynamicFont_set_font_data\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"set_font_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The font data.\nset_font_data ::\n                (DynamicFont :< cls, Object :< cls) =>\n                cls -> DynamicFontData -> IO ()\nset_font_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_set_font_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"set_font_data\" '[DynamicFontData]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.DynamicFont.set_font_data\n\n{-# NOINLINE bindDynamicFont_set_outline_color #-}\n\n-- | The font outline's color.\n--   \t\t\t__Note:__ It's recommended to leave this at the default value so that you can adjust it in individual controls. For example, if the outline is made black here, it won't be possible to change its color using a Label's font outline modulate theme item.\nbindDynamicFont_set_outline_color :: MethodBind\nbindDynamicFont_set_outline_color\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"set_outline_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The font outline's color.\n--   \t\t\t__Note:__ It's recommended to leave this at the default value so that you can adjust it in individual controls. For example, if the outline is made black here, it won't be possible to change its color using a Label's font outline modulate theme item.\nset_outline_color ::\n                    (DynamicFont :< cls, Object :< cls) => cls -> Color -> IO ()\nset_outline_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_set_outline_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"set_outline_color\" '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.DynamicFont.set_outline_color\n\n{-# NOINLINE bindDynamicFont_set_outline_size #-}\n\n-- | The font outline's thickness in pixels (not relative to the font size).\nbindDynamicFont_set_outline_size :: MethodBind\nbindDynamicFont_set_outline_size\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"set_outline_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The font outline's thickness in pixels (not relative to the font size).\nset_outline_size ::\n                   (DynamicFont :< cls, Object :< cls) => cls -> Int -> IO ()\nset_outline_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_set_outline_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"set_outline_size\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.DynamicFont.set_outline_size\n\n{-# NOINLINE bindDynamicFont_set_size #-}\n\n-- | The font size in pixels.\nbindDynamicFont_set_size :: MethodBind\nbindDynamicFont_set_size\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"set_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The font size in pixels.\nset_size ::\n           (DynamicFont :< cls, Object :< cls) => cls -> Int -> IO ()\nset_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_set_size (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"set_size\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.DynamicFont.set_size\n\n{-# NOINLINE bindDynamicFont_set_spacing #-}\n\n-- | Sets the spacing for @type@ (see @enum SpacingType@) to @value@ in pixels (not relative to the font size).\nbindDynamicFont_set_spacing :: MethodBind\nbindDynamicFont_set_spacing\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"set_spacing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the spacing for @type@ (see @enum SpacingType@) to @value@ in pixels (not relative to the font size).\nset_spacing ::\n              (DynamicFont :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nset_spacing cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_set_spacing (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"set_spacing\" '[Int, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.DynamicFont.set_spacing\n\n{-# NOINLINE bindDynamicFont_set_use_filter #-}\n\n-- | If @true@, filtering is used. This makes the font blurry instead of pixelated when scaling it if font oversampling is disabled or ineffective. It's recommended to enable this when using the font in a control whose size changes over time, unless a pixel art aesthetic is desired.\nbindDynamicFont_set_use_filter :: MethodBind\nbindDynamicFont_set_use_filter\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_filter\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, filtering is used. This makes the font blurry instead of pixelated when scaling it if font oversampling is disabled or ineffective. It's recommended to enable this when using the font in a control whose size changes over time, unless a pixel art aesthetic is desired.\nset_use_filter ::\n                 (DynamicFont :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_filter cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_set_use_filter (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"set_use_filter\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.DynamicFont.set_use_filter\n\n{-# NOINLINE bindDynamicFont_set_use_mipmaps #-}\n\n-- | If @true@, mipmapping is used. This improves the font's appearance when downscaling it if font oversampling is disabled or ineffective.\nbindDynamicFont_set_use_mipmaps :: MethodBind\nbindDynamicFont_set_use_mipmaps\n  = unsafePerformIO $\n      withCString \"DynamicFont\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_mipmaps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, mipmapping is used. This improves the font's appearance when downscaling it if font oversampling is disabled or ineffective.\nset_use_mipmaps ::\n                  (DynamicFont :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_mipmaps cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFont_set_use_mipmaps (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFont \"set_use_mipmaps\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.DynamicFont.set_use_mipmaps"
  },
  {
    "path": "src/Godot/Core/DynamicFontData.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.DynamicFontData\n       (Godot.Core.DynamicFontData._HINTING_NONE,\n        Godot.Core.DynamicFontData._HINTING_NORMAL,\n        Godot.Core.DynamicFontData._HINTING_LIGHT,\n        Godot.Core.DynamicFontData.get_font_path,\n        Godot.Core.DynamicFontData.get_hinting,\n        Godot.Core.DynamicFontData.is_antialiased,\n        Godot.Core.DynamicFontData.set_antialiased,\n        Godot.Core.DynamicFontData.set_font_path,\n        Godot.Core.DynamicFontData.set_hinting)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_HINTING_NONE :: Int\n_HINTING_NONE = 0\n\n_HINTING_NORMAL :: Int\n_HINTING_NORMAL = 2\n\n_HINTING_LIGHT :: Int\n_HINTING_LIGHT = 1\n\ninstance NodeProperty DynamicFontData \"antialiased\" Bool 'False\n         where\n        nodeProperty\n          = (is_antialiased, wrapDroppingSetter set_antialiased, Nothing)\n\ninstance NodeProperty DynamicFontData \"font_path\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_font_path, wrapDroppingSetter set_font_path, Nothing)\n\ninstance NodeProperty DynamicFontData \"hinting\" Int 'False where\n        nodeProperty\n          = (get_hinting, wrapDroppingSetter set_hinting, Nothing)\n\n{-# NOINLINE bindDynamicFontData_get_font_path #-}\n\n-- | The path to the vector font file.\nbindDynamicFontData_get_font_path :: MethodBind\nbindDynamicFontData_get_font_path\n  = unsafePerformIO $\n      withCString \"DynamicFontData\" $\n        \\ clsNamePtr ->\n          withCString \"get_font_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The path to the vector font file.\nget_font_path ::\n                (DynamicFontData :< cls, Object :< cls) => cls -> IO GodotString\nget_font_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFontData_get_font_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFontData \"get_font_path\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.DynamicFontData.get_font_path\n\n{-# NOINLINE bindDynamicFontData_get_hinting #-}\n\n-- | The font hinting mode used by FreeType. See @enum Hinting@ for options.\nbindDynamicFontData_get_hinting :: MethodBind\nbindDynamicFontData_get_hinting\n  = unsafePerformIO $\n      withCString \"DynamicFontData\" $\n        \\ clsNamePtr ->\n          withCString \"get_hinting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The font hinting mode used by FreeType. See @enum Hinting@ for options.\nget_hinting ::\n              (DynamicFontData :< cls, Object :< cls) => cls -> IO Int\nget_hinting cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFontData_get_hinting (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFontData \"get_hinting\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.DynamicFontData.get_hinting\n\n{-# NOINLINE bindDynamicFontData_is_antialiased #-}\n\n-- | If @true@, the font is rendered with anti-aliasing. This property applies both to the main font and its outline (if it has one).\nbindDynamicFontData_is_antialiased :: MethodBind\nbindDynamicFontData_is_antialiased\n  = unsafePerformIO $\n      withCString \"DynamicFontData\" $\n        \\ clsNamePtr ->\n          withCString \"is_antialiased\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the font is rendered with anti-aliasing. This property applies both to the main font and its outline (if it has one).\nis_antialiased ::\n                 (DynamicFontData :< cls, Object :< cls) => cls -> IO Bool\nis_antialiased cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFontData_is_antialiased\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFontData \"is_antialiased\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.DynamicFontData.is_antialiased\n\n{-# NOINLINE bindDynamicFontData_set_antialiased #-}\n\n-- | If @true@, the font is rendered with anti-aliasing. This property applies both to the main font and its outline (if it has one).\nbindDynamicFontData_set_antialiased :: MethodBind\nbindDynamicFontData_set_antialiased\n  = unsafePerformIO $\n      withCString \"DynamicFontData\" $\n        \\ clsNamePtr ->\n          withCString \"set_antialiased\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the font is rendered with anti-aliasing. This property applies both to the main font and its outline (if it has one).\nset_antialiased ::\n                  (DynamicFontData :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_antialiased cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFontData_set_antialiased\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFontData \"set_antialiased\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.DynamicFontData.set_antialiased\n\n{-# NOINLINE bindDynamicFontData_set_font_path #-}\n\n-- | The path to the vector font file.\nbindDynamicFontData_set_font_path :: MethodBind\nbindDynamicFontData_set_font_path\n  = unsafePerformIO $\n      withCString \"DynamicFontData\" $\n        \\ clsNamePtr ->\n          withCString \"set_font_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The path to the vector font file.\nset_font_path ::\n                (DynamicFontData :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\nset_font_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFontData_set_font_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFontData \"set_font_path\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.DynamicFontData.set_font_path\n\n{-# NOINLINE bindDynamicFontData_set_hinting #-}\n\n-- | The font hinting mode used by FreeType. See @enum Hinting@ for options.\nbindDynamicFontData_set_hinting :: MethodBind\nbindDynamicFontData_set_hinting\n  = unsafePerformIO $\n      withCString \"DynamicFontData\" $\n        \\ clsNamePtr ->\n          withCString \"set_hinting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The font hinting mode used by FreeType. See @enum Hinting@ for options.\nset_hinting ::\n              (DynamicFontData :< cls, Object :< cls) => cls -> Int -> IO ()\nset_hinting cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindDynamicFontData_set_hinting (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod DynamicFontData \"set_hinting\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.DynamicFontData.set_hinting"
  },
  {
    "path": "src/Godot/Core/EncodedObjectAsID.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.EncodedObjectAsID\n       (Godot.Core.EncodedObjectAsID.get_object_id,\n        Godot.Core.EncodedObjectAsID.set_object_id)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\ninstance NodeProperty EncodedObjectAsID \"object_id\" Int 'False\n         where\n        nodeProperty\n          = (get_object_id, wrapDroppingSetter set_object_id, Nothing)\n\n{-# NOINLINE bindEncodedObjectAsID_get_object_id #-}\n\n-- | The @Object@ identifier stored in this @EncodedObjectAsID@ instance. The object instance can be retrieved with @method @GDScript.instance_from_id@.\nbindEncodedObjectAsID_get_object_id :: MethodBind\nbindEncodedObjectAsID_get_object_id\n  = unsafePerformIO $\n      withCString \"EncodedObjectAsID\" $\n        \\ clsNamePtr ->\n          withCString \"get_object_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Object@ identifier stored in this @EncodedObjectAsID@ instance. The object instance can be retrieved with @method @GDScript.instance_from_id@.\nget_object_id ::\n                (EncodedObjectAsID :< cls, Object :< cls) => cls -> IO Int\nget_object_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEncodedObjectAsID_get_object_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EncodedObjectAsID \"get_object_id\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.EncodedObjectAsID.get_object_id\n\n{-# NOINLINE bindEncodedObjectAsID_set_object_id #-}\n\n-- | The @Object@ identifier stored in this @EncodedObjectAsID@ instance. The object instance can be retrieved with @method @GDScript.instance_from_id@.\nbindEncodedObjectAsID_set_object_id :: MethodBind\nbindEncodedObjectAsID_set_object_id\n  = unsafePerformIO $\n      withCString \"EncodedObjectAsID\" $\n        \\ clsNamePtr ->\n          withCString \"set_object_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Object@ identifier stored in this @EncodedObjectAsID@ instance. The object instance can be retrieved with @method @GDScript.instance_from_id@.\nset_object_id ::\n                (EncodedObjectAsID :< cls, Object :< cls) => cls -> Int -> IO ()\nset_object_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEncodedObjectAsID_set_object_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EncodedObjectAsID \"set_object_id\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.EncodedObjectAsID.set_object_id"
  },
  {
    "path": "src/Godot/Core/Engine.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Engine\n       (Godot.Core.Engine.is_editor_hint,\n        Godot.Core.Engine.set_editor_hint,\n        Godot.Core.Engine.get_iterations_per_second,\n        Godot.Core.Engine.set_iterations_per_second,\n        Godot.Core.Engine.get_physics_jitter_fix,\n        Godot.Core.Engine.set_physics_jitter_fix,\n        Godot.Core.Engine.get_target_fps, Godot.Core.Engine.set_target_fps,\n        Godot.Core.Engine.get_time_scale, Godot.Core.Engine.set_time_scale,\n        Godot.Core.Engine.get_author_info,\n        Godot.Core.Engine.get_copyright_info,\n        Godot.Core.Engine.get_donor_info,\n        Godot.Core.Engine.get_frames_drawn,\n        Godot.Core.Engine.get_frames_per_second,\n        Godot.Core.Engine.get_idle_frames,\n        Godot.Core.Engine.get_license_info,\n        Godot.Core.Engine.get_license_text,\n        Godot.Core.Engine.get_main_loop,\n        Godot.Core.Engine.get_physics_frames,\n        Godot.Core.Engine.get_physics_interpolation_fraction,\n        Godot.Core.Engine.get_singleton,\n        Godot.Core.Engine.get_version_info,\n        Godot.Core.Engine.has_singleton,\n        Godot.Core.Engine.is_in_physics_frame)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n{-# NOINLINE bindEngine_is_editor_hint #-}\n\n-- | If @true@, it is running inside the editor. Useful for tool scripts.\nbindEngine_is_editor_hint :: MethodBind\nbindEngine_is_editor_hint\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"is_editor_hint\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, it is running inside the editor. Useful for tool scripts.\nis_editor_hint :: (Engine :< cls, Object :< cls) => cls -> IO Bool\nis_editor_hint cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_is_editor_hint (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"is_editor_hint\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Engine.is_editor_hint\n\n{-# NOINLINE bindEngine_set_editor_hint #-}\n\n-- | If @true@, it is running inside the editor. Useful for tool scripts.\nbindEngine_set_editor_hint :: MethodBind\nbindEngine_set_editor_hint\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"set_editor_hint\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, it is running inside the editor. Useful for tool scripts.\nset_editor_hint ::\n                  (Engine :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_editor_hint cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_set_editor_hint (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"set_editor_hint\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Engine.set_editor_hint\n\ninstance NodeProperty Engine \"editor_hint\" Bool 'False where\n        nodeProperty\n          = (is_editor_hint, wrapDroppingSetter set_editor_hint, Nothing)\n\n{-# NOINLINE bindEngine_get_iterations_per_second #-}\n\n-- | The number of fixed iterations per second. This controls how often physics simulation and @method Node._physics_process@ methods are run. This value should generally always be set to @60@ or above, as Godot doesn't interpolate the physics step. As a result, values lower than @60@ will look stuttery. This value can be increased to make input more reactive or work around tunneling issues, but keep in mind doing so will increase CPU usage.\nbindEngine_get_iterations_per_second :: MethodBind\nbindEngine_get_iterations_per_second\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"get_iterations_per_second\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of fixed iterations per second. This controls how often physics simulation and @method Node._physics_process@ methods are run. This value should generally always be set to @60@ or above, as Godot doesn't interpolate the physics step. As a result, values lower than @60@ will look stuttery. This value can be increased to make input more reactive or work around tunneling issues, but keep in mind doing so will increase CPU usage.\nget_iterations_per_second ::\n                            (Engine :< cls, Object :< cls) => cls -> IO Int\nget_iterations_per_second cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_get_iterations_per_second\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"get_iterations_per_second\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Engine.get_iterations_per_second\n\n{-# NOINLINE bindEngine_set_iterations_per_second #-}\n\n-- | The number of fixed iterations per second. This controls how often physics simulation and @method Node._physics_process@ methods are run. This value should generally always be set to @60@ or above, as Godot doesn't interpolate the physics step. As a result, values lower than @60@ will look stuttery. This value can be increased to make input more reactive or work around tunneling issues, but keep in mind doing so will increase CPU usage.\nbindEngine_set_iterations_per_second :: MethodBind\nbindEngine_set_iterations_per_second\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"set_iterations_per_second\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of fixed iterations per second. This controls how often physics simulation and @method Node._physics_process@ methods are run. This value should generally always be set to @60@ or above, as Godot doesn't interpolate the physics step. As a result, values lower than @60@ will look stuttery. This value can be increased to make input more reactive or work around tunneling issues, but keep in mind doing so will increase CPU usage.\nset_iterations_per_second ::\n                            (Engine :< cls, Object :< cls) => cls -> Int -> IO ()\nset_iterations_per_second cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_set_iterations_per_second\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"set_iterations_per_second\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Engine.set_iterations_per_second\n\ninstance NodeProperty Engine \"iterations_per_second\" Int 'False\n         where\n        nodeProperty\n          = (get_iterations_per_second,\n             wrapDroppingSetter set_iterations_per_second, Nothing)\n\n{-# NOINLINE bindEngine_get_physics_jitter_fix #-}\n\n-- | Controls how much physics ticks are synchronized with real time. For 0 or less, the ticks are synchronized. Such values are recommended for network games, where clock synchronization matters. Higher values cause higher deviation of in-game clock and real clock, but allows to smooth out framerate jitters. The default value of 0.5 should be fine for most; values above 2 could cause the game to react to dropped frames with a noticeable delay and are not recommended.\nbindEngine_get_physics_jitter_fix :: MethodBind\nbindEngine_get_physics_jitter_fix\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"get_physics_jitter_fix\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls how much physics ticks are synchronized with real time. For 0 or less, the ticks are synchronized. Such values are recommended for network games, where clock synchronization matters. Higher values cause higher deviation of in-game clock and real clock, but allows to smooth out framerate jitters. The default value of 0.5 should be fine for most; values above 2 could cause the game to react to dropped frames with a noticeable delay and are not recommended.\nget_physics_jitter_fix ::\n                         (Engine :< cls, Object :< cls) => cls -> IO Float\nget_physics_jitter_fix cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_get_physics_jitter_fix\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"get_physics_jitter_fix\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Engine.get_physics_jitter_fix\n\n{-# NOINLINE bindEngine_set_physics_jitter_fix #-}\n\n-- | Controls how much physics ticks are synchronized with real time. For 0 or less, the ticks are synchronized. Such values are recommended for network games, where clock synchronization matters. Higher values cause higher deviation of in-game clock and real clock, but allows to smooth out framerate jitters. The default value of 0.5 should be fine for most; values above 2 could cause the game to react to dropped frames with a noticeable delay and are not recommended.\nbindEngine_set_physics_jitter_fix :: MethodBind\nbindEngine_set_physics_jitter_fix\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"set_physics_jitter_fix\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls how much physics ticks are synchronized with real time. For 0 or less, the ticks are synchronized. Such values are recommended for network games, where clock synchronization matters. Higher values cause higher deviation of in-game clock and real clock, but allows to smooth out framerate jitters. The default value of 0.5 should be fine for most; values above 2 could cause the game to react to dropped frames with a noticeable delay and are not recommended.\nset_physics_jitter_fix ::\n                         (Engine :< cls, Object :< cls) => cls -> Float -> IO ()\nset_physics_jitter_fix cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_set_physics_jitter_fix\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"set_physics_jitter_fix\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Engine.set_physics_jitter_fix\n\ninstance NodeProperty Engine \"physics_jitter_fix\" Float 'False\n         where\n        nodeProperty\n          = (get_physics_jitter_fix,\n             wrapDroppingSetter set_physics_jitter_fix, Nothing)\n\n{-# NOINLINE bindEngine_get_target_fps #-}\n\n-- | The desired frames per second. If the hardware cannot keep up, this setting may not be respected. A value of 0 means no limit.\nbindEngine_get_target_fps :: MethodBind\nbindEngine_get_target_fps\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"get_target_fps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The desired frames per second. If the hardware cannot keep up, this setting may not be respected. A value of 0 means no limit.\nget_target_fps :: (Engine :< cls, Object :< cls) => cls -> IO Int\nget_target_fps cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_get_target_fps (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"get_target_fps\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Engine.get_target_fps\n\n{-# NOINLINE bindEngine_set_target_fps #-}\n\n-- | The desired frames per second. If the hardware cannot keep up, this setting may not be respected. A value of 0 means no limit.\nbindEngine_set_target_fps :: MethodBind\nbindEngine_set_target_fps\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"set_target_fps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The desired frames per second. If the hardware cannot keep up, this setting may not be respected. A value of 0 means no limit.\nset_target_fps ::\n                 (Engine :< cls, Object :< cls) => cls -> Int -> IO ()\nset_target_fps cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_set_target_fps (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"set_target_fps\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Engine.set_target_fps\n\ninstance NodeProperty Engine \"target_fps\" Int 'False where\n        nodeProperty\n          = (get_target_fps, wrapDroppingSetter set_target_fps, Nothing)\n\n{-# NOINLINE bindEngine_get_time_scale #-}\n\n-- | Controls how fast or slow the in-game clock ticks versus the real life one. It defaults to 1.0. A value of 2.0 means the game moves twice as fast as real life, whilst a value of 0.5 means the game moves at half the regular speed.\nbindEngine_get_time_scale :: MethodBind\nbindEngine_get_time_scale\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"get_time_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls how fast or slow the in-game clock ticks versus the real life one. It defaults to 1.0. A value of 2.0 means the game moves twice as fast as real life, whilst a value of 0.5 means the game moves at half the regular speed.\nget_time_scale :: (Engine :< cls, Object :< cls) => cls -> IO Float\nget_time_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_get_time_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"get_time_scale\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Engine.get_time_scale\n\n{-# NOINLINE bindEngine_set_time_scale #-}\n\n-- | Controls how fast or slow the in-game clock ticks versus the real life one. It defaults to 1.0. A value of 2.0 means the game moves twice as fast as real life, whilst a value of 0.5 means the game moves at half the regular speed.\nbindEngine_set_time_scale :: MethodBind\nbindEngine_set_time_scale\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"set_time_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls how fast or slow the in-game clock ticks versus the real life one. It defaults to 1.0. A value of 2.0 means the game moves twice as fast as real life, whilst a value of 0.5 means the game moves at half the regular speed.\nset_time_scale ::\n                 (Engine :< cls, Object :< cls) => cls -> Float -> IO ()\nset_time_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_set_time_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"set_time_scale\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Engine.set_time_scale\n\ninstance NodeProperty Engine \"time_scale\" Float 'False where\n        nodeProperty\n          = (get_time_scale, wrapDroppingSetter set_time_scale, Nothing)\n\n{-# NOINLINE bindEngine_get_author_info #-}\n\n-- | Returns engine author information in a Dictionary.\n--   \t\t\t\t@lead_developers@    - Array of Strings, lead developer names\n--   \t\t\t\t@founders@           - Array of Strings, founder names\n--   \t\t\t\t@project_managers@   - Array of Strings, project manager names\n--   \t\t\t\t@developers@         - Array of Strings, developer names\nbindEngine_get_author_info :: MethodBind\nbindEngine_get_author_info\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"get_author_info\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns engine author information in a Dictionary.\n--   \t\t\t\t@lead_developers@    - Array of Strings, lead developer names\n--   \t\t\t\t@founders@           - Array of Strings, founder names\n--   \t\t\t\t@project_managers@   - Array of Strings, project manager names\n--   \t\t\t\t@developers@         - Array of Strings, developer names\nget_author_info ::\n                  (Engine :< cls, Object :< cls) => cls -> IO Dictionary\nget_author_info cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_get_author_info (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"get_author_info\" '[] (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.Engine.get_author_info\n\n{-# NOINLINE bindEngine_get_copyright_info #-}\n\n-- | Returns an Array of copyright information Dictionaries.\n--   \t\t\t\t@name@    - String, component name\n--   \t\t\t\t@parts@   - Array of Dictionaries {@files@, @copyright@, @license@} describing subsections of the component\nbindEngine_get_copyright_info :: MethodBind\nbindEngine_get_copyright_info\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"get_copyright_info\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an Array of copyright information Dictionaries.\n--   \t\t\t\t@name@    - String, component name\n--   \t\t\t\t@parts@   - Array of Dictionaries {@files@, @copyright@, @license@} describing subsections of the component\nget_copyright_info ::\n                     (Engine :< cls, Object :< cls) => cls -> IO Array\nget_copyright_info cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_get_copyright_info (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"get_copyright_info\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.Engine.get_copyright_info\n\n{-# NOINLINE bindEngine_get_donor_info #-}\n\n-- | Returns a Dictionary of Arrays of donor names.\n--   \t\t\t\t{@platinum_sponsors@, @gold_sponsors@, @silver_sponsors@, @bronze_sponsors@, @mini_sponsors@, @gold_donors@, @silver_donors@, @bronze_donors@}\nbindEngine_get_donor_info :: MethodBind\nbindEngine_get_donor_info\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"get_donor_info\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a Dictionary of Arrays of donor names.\n--   \t\t\t\t{@platinum_sponsors@, @gold_sponsors@, @silver_sponsors@, @bronze_sponsors@, @mini_sponsors@, @gold_donors@, @silver_donors@, @bronze_donors@}\nget_donor_info ::\n                 (Engine :< cls, Object :< cls) => cls -> IO Dictionary\nget_donor_info cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_get_donor_info (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"get_donor_info\" '[] (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.Engine.get_donor_info\n\n{-# NOINLINE bindEngine_get_frames_drawn #-}\n\n-- | Returns the total number of frames drawn. If the render loop is disabled with @--disable-render-loop@ via command line, this returns @0@. See also @method get_idle_frames@.\nbindEngine_get_frames_drawn :: MethodBind\nbindEngine_get_frames_drawn\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"get_frames_drawn\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the total number of frames drawn. If the render loop is disabled with @--disable-render-loop@ via command line, this returns @0@. See also @method get_idle_frames@.\nget_frames_drawn :: (Engine :< cls, Object :< cls) => cls -> IO Int\nget_frames_drawn cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_get_frames_drawn (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"get_frames_drawn\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Engine.get_frames_drawn\n\n{-# NOINLINE bindEngine_get_frames_per_second #-}\n\n-- | Returns the frames per second of the running game.\nbindEngine_get_frames_per_second :: MethodBind\nbindEngine_get_frames_per_second\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"get_frames_per_second\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the frames per second of the running game.\nget_frames_per_second ::\n                        (Engine :< cls, Object :< cls) => cls -> IO Float\nget_frames_per_second cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_get_frames_per_second\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"get_frames_per_second\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Engine.get_frames_per_second\n\n{-# NOINLINE bindEngine_get_idle_frames #-}\n\n-- | Returns the total number of frames passed since engine initialization which is advanced on each __idle frame__, regardless of whether the render loop is enabled. See also @method get_frames_drawn@.\nbindEngine_get_idle_frames :: MethodBind\nbindEngine_get_idle_frames\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"get_idle_frames\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the total number of frames passed since engine initialization which is advanced on each __idle frame__, regardless of whether the render loop is enabled. See also @method get_frames_drawn@.\nget_idle_frames :: (Engine :< cls, Object :< cls) => cls -> IO Int\nget_idle_frames cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_get_idle_frames (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"get_idle_frames\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Engine.get_idle_frames\n\n{-# NOINLINE bindEngine_get_license_info #-}\n\n-- | Returns Dictionary of licenses used by Godot and included third party components.\nbindEngine_get_license_info :: MethodBind\nbindEngine_get_license_info\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"get_license_info\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns Dictionary of licenses used by Godot and included third party components.\nget_license_info ::\n                   (Engine :< cls, Object :< cls) => cls -> IO Dictionary\nget_license_info cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_get_license_info (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"get_license_info\" '[] (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.Engine.get_license_info\n\n{-# NOINLINE bindEngine_get_license_text #-}\n\n-- | Returns Godot license text.\nbindEngine_get_license_text :: MethodBind\nbindEngine_get_license_text\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"get_license_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns Godot license text.\nget_license_text ::\n                   (Engine :< cls, Object :< cls) => cls -> IO GodotString\nget_license_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_get_license_text (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"get_license_text\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Engine.get_license_text\n\n{-# NOINLINE bindEngine_get_main_loop #-}\n\n-- | Returns the main loop object (see @MainLoop@ and @SceneTree@).\nbindEngine_get_main_loop :: MethodBind\nbindEngine_get_main_loop\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"get_main_loop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the main loop object (see @MainLoop@ and @SceneTree@).\nget_main_loop ::\n                (Engine :< cls, Object :< cls) => cls -> IO MainLoop\nget_main_loop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_get_main_loop (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"get_main_loop\" '[] (IO MainLoop) where\n        nodeMethod = Godot.Core.Engine.get_main_loop\n\n{-# NOINLINE bindEngine_get_physics_frames #-}\n\n-- | Returns the total number of frames passed since engine initialization which is advanced on each __physics frame__.\nbindEngine_get_physics_frames :: MethodBind\nbindEngine_get_physics_frames\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"get_physics_frames\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the total number of frames passed since engine initialization which is advanced on each __physics frame__.\nget_physics_frames ::\n                     (Engine :< cls, Object :< cls) => cls -> IO Int\nget_physics_frames cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_get_physics_frames (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"get_physics_frames\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Engine.get_physics_frames\n\n{-# NOINLINE bindEngine_get_physics_interpolation_fraction #-}\n\n-- | Returns the fraction through the current physics tick we are at the time of rendering the frame. This can be used to implement fixed timestep interpolation.\nbindEngine_get_physics_interpolation_fraction :: MethodBind\nbindEngine_get_physics_interpolation_fraction\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"get_physics_interpolation_fraction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the fraction through the current physics tick we are at the time of rendering the frame. This can be used to implement fixed timestep interpolation.\nget_physics_interpolation_fraction ::\n                                     (Engine :< cls, Object :< cls) => cls -> IO Float\nget_physics_interpolation_fraction cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEngine_get_physics_interpolation_fraction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"get_physics_interpolation_fraction\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Engine.get_physics_interpolation_fraction\n\n{-# NOINLINE bindEngine_get_singleton #-}\n\n-- | Returns a global singleton with given @name@. Often used for plugins, e.g. @GodotPayment@ on Android.\nbindEngine_get_singleton :: MethodBind\nbindEngine_get_singleton\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"get_singleton\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a global singleton with given @name@. Often used for plugins, e.g. @GodotPayment@ on Android.\nget_singleton ::\n                (Engine :< cls, Object :< cls) => cls -> GodotString -> IO Object\nget_singleton cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_get_singleton (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"get_singleton\" '[GodotString]\n           (IO Object)\n         where\n        nodeMethod = Godot.Core.Engine.get_singleton\n\n{-# NOINLINE bindEngine_get_version_info #-}\n\n-- | Returns the current engine version information in a Dictionary.\n--   \t\t\t\t@major@    - Holds the major version number as an int\n--   \t\t\t\t@minor@    - Holds the minor version number as an int\n--   \t\t\t\t@patch@    - Holds the patch version number as an int\n--   \t\t\t\t@hex@      - Holds the full version number encoded as a hexadecimal int with one byte (2 places) per number (see example below)\n--   \t\t\t\t@status@   - Holds the status (e.g. \"beta\", \"rc1\", \"rc2\", ... \"stable\") as a String\n--   \t\t\t\t@build@    - Holds the build name (e.g. \"custom_build\") as a String\n--   \t\t\t\t@hash@     - Holds the full Git commit hash as a String\n--   \t\t\t\t@year@     - Holds the year the version was released in as an int\n--   \t\t\t\t@string@   - @major@ + @minor@ + @patch@ + @status@ + @build@ in a single String\n--   \t\t\t\tThe @hex@ value is encoded as follows, from left to right: one byte for the major, one byte for the minor, one byte for the patch version. For example, \"3.1.12\" would be @0x03010C@. __Note:__ It's still an int internally, and printing it will give you its decimal representation, which is not particularly meaningful. Use hexadecimal literals for easy version comparisons from code:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tif Engine.get_version_info().hex >= 0x030200:\n--   \t\t\t\t    # Do things specific to version 3.2 or later\n--   \t\t\t\telse:\n--   \t\t\t\t    # Do things specific to versions before 3.2\n--   \t\t\t\t\n--   @\nbindEngine_get_version_info :: MethodBind\nbindEngine_get_version_info\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"get_version_info\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current engine version information in a Dictionary.\n--   \t\t\t\t@major@    - Holds the major version number as an int\n--   \t\t\t\t@minor@    - Holds the minor version number as an int\n--   \t\t\t\t@patch@    - Holds the patch version number as an int\n--   \t\t\t\t@hex@      - Holds the full version number encoded as a hexadecimal int with one byte (2 places) per number (see example below)\n--   \t\t\t\t@status@   - Holds the status (e.g. \"beta\", \"rc1\", \"rc2\", ... \"stable\") as a String\n--   \t\t\t\t@build@    - Holds the build name (e.g. \"custom_build\") as a String\n--   \t\t\t\t@hash@     - Holds the full Git commit hash as a String\n--   \t\t\t\t@year@     - Holds the year the version was released in as an int\n--   \t\t\t\t@string@   - @major@ + @minor@ + @patch@ + @status@ + @build@ in a single String\n--   \t\t\t\tThe @hex@ value is encoded as follows, from left to right: one byte for the major, one byte for the minor, one byte for the patch version. For example, \"3.1.12\" would be @0x03010C@. __Note:__ It's still an int internally, and printing it will give you its decimal representation, which is not particularly meaningful. Use hexadecimal literals for easy version comparisons from code:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tif Engine.get_version_info().hex >= 0x030200:\n--   \t\t\t\t    # Do things specific to version 3.2 or later\n--   \t\t\t\telse:\n--   \t\t\t\t    # Do things specific to versions before 3.2\n--   \t\t\t\t\n--   @\nget_version_info ::\n                   (Engine :< cls, Object :< cls) => cls -> IO Dictionary\nget_version_info cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_get_version_info (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"get_version_info\" '[] (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.Engine.get_version_info\n\n{-# NOINLINE bindEngine_has_singleton #-}\n\n-- | Returns @true@ if a singleton with given @name@ exists in global scope.\nbindEngine_has_singleton :: MethodBind\nbindEngine_has_singleton\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"has_singleton\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if a singleton with given @name@ exists in global scope.\nhas_singleton ::\n                (Engine :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_singleton cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_has_singleton (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"has_singleton\" '[GodotString] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Engine.has_singleton\n\n{-# NOINLINE bindEngine_is_in_physics_frame #-}\n\n-- | Returns @true@ if the game is inside the fixed process and physics phase of the game loop.\nbindEngine_is_in_physics_frame :: MethodBind\nbindEngine_is_in_physics_frame\n  = unsafePerformIO $\n      withCString \"_Engine\" $\n        \\ clsNamePtr ->\n          withCString \"is_in_physics_frame\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the game is inside the fixed process and physics phase of the game loop.\nis_in_physics_frame ::\n                      (Engine :< cls, Object :< cls) => cls -> IO Bool\nis_in_physics_frame cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEngine_is_in_physics_frame (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Engine \"is_in_physics_frame\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Engine.is_in_physics_frame"
  },
  {
    "path": "src/Godot/Core/Environment.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Environment\n       (Godot.Core.Environment._TONE_MAPPER_FILMIC,\n        Godot.Core.Environment._SSAO_QUALITY_LOW,\n        Godot.Core.Environment._BG_CANVAS,\n        Godot.Core.Environment._DOF_BLUR_QUALITY_LOW,\n        Godot.Core.Environment._GLOW_BLEND_MODE_ADDITIVE,\n        Godot.Core.Environment._DOF_BLUR_QUALITY_HIGH,\n        Godot.Core.Environment._DOF_BLUR_QUALITY_MEDIUM,\n        Godot.Core.Environment._BG_SKY,\n        Godot.Core.Environment._SSAO_QUALITY_MEDIUM,\n        Godot.Core.Environment._GLOW_BLEND_MODE_SOFTLIGHT,\n        Godot.Core.Environment._TONE_MAPPER_LINEAR,\n        Godot.Core.Environment._BG_MAX,\n        Godot.Core.Environment._BG_COLOR_SKY,\n        Godot.Core.Environment._SSAO_BLUR_DISABLED,\n        Godot.Core.Environment._SSAO_BLUR_2x2,\n        Godot.Core.Environment._TONE_MAPPER_ACES,\n        Godot.Core.Environment._SSAO_BLUR_1x1,\n        Godot.Core.Environment._BG_COLOR,\n        Godot.Core.Environment._SSAO_BLUR_3x3,\n        Godot.Core.Environment._GLOW_BLEND_MODE_REPLACE,\n        Godot.Core.Environment._GLOW_BLEND_MODE_SCREEN,\n        Godot.Core.Environment._SSAO_QUALITY_HIGH,\n        Godot.Core.Environment._TONE_MAPPER_REINHARDT,\n        Godot.Core.Environment._BG_CAMERA_FEED,\n        Godot.Core.Environment._BG_CLEAR_COLOR,\n        Godot.Core.Environment._BG_KEEP,\n        Godot.Core.Environment.get_adjustment_brightness,\n        Godot.Core.Environment.get_adjustment_color_correction,\n        Godot.Core.Environment.get_adjustment_contrast,\n        Godot.Core.Environment.get_adjustment_saturation,\n        Godot.Core.Environment.get_ambient_light_color,\n        Godot.Core.Environment.get_ambient_light_energy,\n        Godot.Core.Environment.get_ambient_light_sky_contribution,\n        Godot.Core.Environment.get_background,\n        Godot.Core.Environment.get_bg_color,\n        Godot.Core.Environment.get_bg_energy,\n        Godot.Core.Environment.get_camera_feed_id,\n        Godot.Core.Environment.get_canvas_max_layer,\n        Godot.Core.Environment.get_dof_blur_far_amount,\n        Godot.Core.Environment.get_dof_blur_far_distance,\n        Godot.Core.Environment.get_dof_blur_far_quality,\n        Godot.Core.Environment.get_dof_blur_far_transition,\n        Godot.Core.Environment.get_dof_blur_near_amount,\n        Godot.Core.Environment.get_dof_blur_near_distance,\n        Godot.Core.Environment.get_dof_blur_near_quality,\n        Godot.Core.Environment.get_dof_blur_near_transition,\n        Godot.Core.Environment.get_fog_color,\n        Godot.Core.Environment.get_fog_depth_begin,\n        Godot.Core.Environment.get_fog_depth_curve,\n        Godot.Core.Environment.get_fog_depth_end,\n        Godot.Core.Environment.get_fog_height_curve,\n        Godot.Core.Environment.get_fog_height_max,\n        Godot.Core.Environment.get_fog_height_min,\n        Godot.Core.Environment.get_fog_sun_amount,\n        Godot.Core.Environment.get_fog_sun_color,\n        Godot.Core.Environment.get_fog_transmit_curve,\n        Godot.Core.Environment.get_glow_blend_mode,\n        Godot.Core.Environment.get_glow_bloom,\n        Godot.Core.Environment.get_glow_hdr_bleed_scale,\n        Godot.Core.Environment.get_glow_hdr_bleed_threshold,\n        Godot.Core.Environment.get_glow_hdr_luminance_cap,\n        Godot.Core.Environment.get_glow_intensity,\n        Godot.Core.Environment.get_glow_strength,\n        Godot.Core.Environment.get_sky,\n        Godot.Core.Environment.get_sky_custom_fov,\n        Godot.Core.Environment.get_sky_orientation,\n        Godot.Core.Environment.get_sky_rotation,\n        Godot.Core.Environment.get_sky_rotation_degrees,\n        Godot.Core.Environment.get_ssao_ao_channel_affect,\n        Godot.Core.Environment.get_ssao_bias,\n        Godot.Core.Environment.get_ssao_blur,\n        Godot.Core.Environment.get_ssao_color,\n        Godot.Core.Environment.get_ssao_direct_light_affect,\n        Godot.Core.Environment.get_ssao_edge_sharpness,\n        Godot.Core.Environment.get_ssao_intensity,\n        Godot.Core.Environment.get_ssao_intensity2,\n        Godot.Core.Environment.get_ssao_quality,\n        Godot.Core.Environment.get_ssao_radius,\n        Godot.Core.Environment.get_ssao_radius2,\n        Godot.Core.Environment.get_ssr_depth_tolerance,\n        Godot.Core.Environment.get_ssr_fade_in,\n        Godot.Core.Environment.get_ssr_fade_out,\n        Godot.Core.Environment.get_ssr_max_steps,\n        Godot.Core.Environment.get_tonemap_auto_exposure,\n        Godot.Core.Environment.get_tonemap_auto_exposure_grey,\n        Godot.Core.Environment.get_tonemap_auto_exposure_max,\n        Godot.Core.Environment.get_tonemap_auto_exposure_min,\n        Godot.Core.Environment.get_tonemap_auto_exposure_speed,\n        Godot.Core.Environment.get_tonemap_exposure,\n        Godot.Core.Environment.get_tonemap_white,\n        Godot.Core.Environment.get_tonemapper,\n        Godot.Core.Environment.is_adjustment_enabled,\n        Godot.Core.Environment.is_dof_blur_far_enabled,\n        Godot.Core.Environment.is_dof_blur_near_enabled,\n        Godot.Core.Environment.is_fog_depth_enabled,\n        Godot.Core.Environment.is_fog_enabled,\n        Godot.Core.Environment.is_fog_height_enabled,\n        Godot.Core.Environment.is_fog_transmit_enabled,\n        Godot.Core.Environment.is_glow_bicubic_upscale_enabled,\n        Godot.Core.Environment.is_glow_enabled,\n        Godot.Core.Environment.is_glow_level_enabled,\n        Godot.Core.Environment.is_ssao_enabled,\n        Godot.Core.Environment.is_ssr_enabled,\n        Godot.Core.Environment.is_ssr_rough,\n        Godot.Core.Environment.set_adjustment_brightness,\n        Godot.Core.Environment.set_adjustment_color_correction,\n        Godot.Core.Environment.set_adjustment_contrast,\n        Godot.Core.Environment.set_adjustment_enable,\n        Godot.Core.Environment.set_adjustment_saturation,\n        Godot.Core.Environment.set_ambient_light_color,\n        Godot.Core.Environment.set_ambient_light_energy,\n        Godot.Core.Environment.set_ambient_light_sky_contribution,\n        Godot.Core.Environment.set_background,\n        Godot.Core.Environment.set_bg_color,\n        Godot.Core.Environment.set_bg_energy,\n        Godot.Core.Environment.set_camera_feed_id,\n        Godot.Core.Environment.set_canvas_max_layer,\n        Godot.Core.Environment.set_dof_blur_far_amount,\n        Godot.Core.Environment.set_dof_blur_far_distance,\n        Godot.Core.Environment.set_dof_blur_far_enabled,\n        Godot.Core.Environment.set_dof_blur_far_quality,\n        Godot.Core.Environment.set_dof_blur_far_transition,\n        Godot.Core.Environment.set_dof_blur_near_amount,\n        Godot.Core.Environment.set_dof_blur_near_distance,\n        Godot.Core.Environment.set_dof_blur_near_enabled,\n        Godot.Core.Environment.set_dof_blur_near_quality,\n        Godot.Core.Environment.set_dof_blur_near_transition,\n        Godot.Core.Environment.set_fog_color,\n        Godot.Core.Environment.set_fog_depth_begin,\n        Godot.Core.Environment.set_fog_depth_curve,\n        Godot.Core.Environment.set_fog_depth_enabled,\n        Godot.Core.Environment.set_fog_depth_end,\n        Godot.Core.Environment.set_fog_enabled,\n        Godot.Core.Environment.set_fog_height_curve,\n        Godot.Core.Environment.set_fog_height_enabled,\n        Godot.Core.Environment.set_fog_height_max,\n        Godot.Core.Environment.set_fog_height_min,\n        Godot.Core.Environment.set_fog_sun_amount,\n        Godot.Core.Environment.set_fog_sun_color,\n        Godot.Core.Environment.set_fog_transmit_curve,\n        Godot.Core.Environment.set_fog_transmit_enabled,\n        Godot.Core.Environment.set_glow_bicubic_upscale,\n        Godot.Core.Environment.set_glow_blend_mode,\n        Godot.Core.Environment.set_glow_bloom,\n        Godot.Core.Environment.set_glow_enabled,\n        Godot.Core.Environment.set_glow_hdr_bleed_scale,\n        Godot.Core.Environment.set_glow_hdr_bleed_threshold,\n        Godot.Core.Environment.set_glow_hdr_luminance_cap,\n        Godot.Core.Environment.set_glow_intensity,\n        Godot.Core.Environment.set_glow_level,\n        Godot.Core.Environment.set_glow_strength,\n        Godot.Core.Environment.set_sky,\n        Godot.Core.Environment.set_sky_custom_fov,\n        Godot.Core.Environment.set_sky_orientation,\n        Godot.Core.Environment.set_sky_rotation,\n        Godot.Core.Environment.set_sky_rotation_degrees,\n        Godot.Core.Environment.set_ssao_ao_channel_affect,\n        Godot.Core.Environment.set_ssao_bias,\n        Godot.Core.Environment.set_ssao_blur,\n        Godot.Core.Environment.set_ssao_color,\n        Godot.Core.Environment.set_ssao_direct_light_affect,\n        Godot.Core.Environment.set_ssao_edge_sharpness,\n        Godot.Core.Environment.set_ssao_enabled,\n        Godot.Core.Environment.set_ssao_intensity,\n        Godot.Core.Environment.set_ssao_intensity2,\n        Godot.Core.Environment.set_ssao_quality,\n        Godot.Core.Environment.set_ssao_radius,\n        Godot.Core.Environment.set_ssao_radius2,\n        Godot.Core.Environment.set_ssr_depth_tolerance,\n        Godot.Core.Environment.set_ssr_enabled,\n        Godot.Core.Environment.set_ssr_fade_in,\n        Godot.Core.Environment.set_ssr_fade_out,\n        Godot.Core.Environment.set_ssr_max_steps,\n        Godot.Core.Environment.set_ssr_rough,\n        Godot.Core.Environment.set_tonemap_auto_exposure,\n        Godot.Core.Environment.set_tonemap_auto_exposure_grey,\n        Godot.Core.Environment.set_tonemap_auto_exposure_max,\n        Godot.Core.Environment.set_tonemap_auto_exposure_min,\n        Godot.Core.Environment.set_tonemap_auto_exposure_speed,\n        Godot.Core.Environment.set_tonemap_exposure,\n        Godot.Core.Environment.set_tonemap_white,\n        Godot.Core.Environment.set_tonemapper)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_TONE_MAPPER_FILMIC :: Int\n_TONE_MAPPER_FILMIC = 2\n\n_SSAO_QUALITY_LOW :: Int\n_SSAO_QUALITY_LOW = 0\n\n_BG_CANVAS :: Int\n_BG_CANVAS = 4\n\n_DOF_BLUR_QUALITY_LOW :: Int\n_DOF_BLUR_QUALITY_LOW = 0\n\n_GLOW_BLEND_MODE_ADDITIVE :: Int\n_GLOW_BLEND_MODE_ADDITIVE = 0\n\n_DOF_BLUR_QUALITY_HIGH :: Int\n_DOF_BLUR_QUALITY_HIGH = 2\n\n_DOF_BLUR_QUALITY_MEDIUM :: Int\n_DOF_BLUR_QUALITY_MEDIUM = 1\n\n_BG_SKY :: Int\n_BG_SKY = 2\n\n_SSAO_QUALITY_MEDIUM :: Int\n_SSAO_QUALITY_MEDIUM = 1\n\n_GLOW_BLEND_MODE_SOFTLIGHT :: Int\n_GLOW_BLEND_MODE_SOFTLIGHT = 2\n\n_TONE_MAPPER_LINEAR :: Int\n_TONE_MAPPER_LINEAR = 0\n\n_BG_MAX :: Int\n_BG_MAX = 7\n\n_BG_COLOR_SKY :: Int\n_BG_COLOR_SKY = 3\n\n_SSAO_BLUR_DISABLED :: Int\n_SSAO_BLUR_DISABLED = 0\n\n_SSAO_BLUR_2x2 :: Int\n_SSAO_BLUR_2x2 = 2\n\n_TONE_MAPPER_ACES :: Int\n_TONE_MAPPER_ACES = 3\n\n_SSAO_BLUR_1x1 :: Int\n_SSAO_BLUR_1x1 = 1\n\n_BG_COLOR :: Int\n_BG_COLOR = 1\n\n_SSAO_BLUR_3x3 :: Int\n_SSAO_BLUR_3x3 = 3\n\n_GLOW_BLEND_MODE_REPLACE :: Int\n_GLOW_BLEND_MODE_REPLACE = 3\n\n_GLOW_BLEND_MODE_SCREEN :: Int\n_GLOW_BLEND_MODE_SCREEN = 1\n\n_SSAO_QUALITY_HIGH :: Int\n_SSAO_QUALITY_HIGH = 2\n\n_TONE_MAPPER_REINHARDT :: Int\n_TONE_MAPPER_REINHARDT = 1\n\n_BG_CAMERA_FEED :: Int\n_BG_CAMERA_FEED = 6\n\n_BG_CLEAR_COLOR :: Int\n_BG_CLEAR_COLOR = 0\n\n_BG_KEEP :: Int\n_BG_KEEP = 5\n\ninstance NodeProperty Environment \"adjustment_brightness\" Float\n           'False\n         where\n        nodeProperty\n          = (get_adjustment_brightness,\n             wrapDroppingSetter set_adjustment_brightness, Nothing)\n\ninstance NodeProperty Environment \"adjustment_color_correction\"\n           Texture\n           'False\n         where\n        nodeProperty\n          = (get_adjustment_color_correction,\n             wrapDroppingSetter set_adjustment_color_correction, Nothing)\n\ninstance NodeProperty Environment \"adjustment_contrast\" Float\n           'False\n         where\n        nodeProperty\n          = (get_adjustment_contrast,\n             wrapDroppingSetter set_adjustment_contrast, Nothing)\n\ninstance NodeProperty Environment \"adjustment_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_adjustment_enabled, wrapDroppingSetter set_adjustment_enable,\n             Nothing)\n\ninstance NodeProperty Environment \"adjustment_saturation\" Float\n           'False\n         where\n        nodeProperty\n          = (get_adjustment_saturation,\n             wrapDroppingSetter set_adjustment_saturation, Nothing)\n\ninstance NodeProperty Environment \"ambient_light_color\" Color\n           'False\n         where\n        nodeProperty\n          = (get_ambient_light_color,\n             wrapDroppingSetter set_ambient_light_color, Nothing)\n\ninstance NodeProperty Environment \"ambient_light_energy\" Float\n           'False\n         where\n        nodeProperty\n          = (get_ambient_light_energy,\n             wrapDroppingSetter set_ambient_light_energy, Nothing)\n\ninstance NodeProperty Environment \"ambient_light_sky_contribution\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_ambient_light_sky_contribution,\n             wrapDroppingSetter set_ambient_light_sky_contribution, Nothing)\n\ninstance NodeProperty Environment \"auto_exposure_enabled\" Bool\n           'False\n         where\n        nodeProperty\n          = (get_tonemap_auto_exposure,\n             wrapDroppingSetter set_tonemap_auto_exposure, Nothing)\n\ninstance NodeProperty Environment \"auto_exposure_max_luma\" Float\n           'False\n         where\n        nodeProperty\n          = (get_tonemap_auto_exposure_max,\n             wrapDroppingSetter set_tonemap_auto_exposure_max, Nothing)\n\ninstance NodeProperty Environment \"auto_exposure_min_luma\" Float\n           'False\n         where\n        nodeProperty\n          = (get_tonemap_auto_exposure_min,\n             wrapDroppingSetter set_tonemap_auto_exposure_min, Nothing)\n\ninstance NodeProperty Environment \"auto_exposure_scale\" Float\n           'False\n         where\n        nodeProperty\n          = (get_tonemap_auto_exposure_grey,\n             wrapDroppingSetter set_tonemap_auto_exposure_grey, Nothing)\n\ninstance NodeProperty Environment \"auto_exposure_speed\" Float\n           'False\n         where\n        nodeProperty\n          = (get_tonemap_auto_exposure_speed,\n             wrapDroppingSetter set_tonemap_auto_exposure_speed, Nothing)\n\ninstance NodeProperty Environment \"background_camera_feed_id\" Int\n           'False\n         where\n        nodeProperty\n          = (get_camera_feed_id, wrapDroppingSetter set_camera_feed_id,\n             Nothing)\n\ninstance NodeProperty Environment \"background_canvas_max_layer\" Int\n           'False\n         where\n        nodeProperty\n          = (get_canvas_max_layer, wrapDroppingSetter set_canvas_max_layer,\n             Nothing)\n\ninstance NodeProperty Environment \"background_color\" Color 'False\n         where\n        nodeProperty\n          = (get_bg_color, wrapDroppingSetter set_bg_color, Nothing)\n\ninstance NodeProperty Environment \"background_energy\" Float 'False\n         where\n        nodeProperty\n          = (get_bg_energy, wrapDroppingSetter set_bg_energy, Nothing)\n\ninstance NodeProperty Environment \"background_mode\" Int 'False\n         where\n        nodeProperty\n          = (get_background, wrapDroppingSetter set_background, Nothing)\n\ninstance NodeProperty Environment \"background_sky\" Sky 'False where\n        nodeProperty = (get_sky, wrapDroppingSetter set_sky, Nothing)\n\ninstance NodeProperty Environment \"background_sky_custom_fov\" Float\n           'False\n         where\n        nodeProperty\n          = (get_sky_custom_fov, wrapDroppingSetter set_sky_custom_fov,\n             Nothing)\n\ninstance NodeProperty Environment \"background_sky_orientation\"\n           Basis\n           'False\n         where\n        nodeProperty\n          = (get_sky_orientation, wrapDroppingSetter set_sky_orientation,\n             Nothing)\n\ninstance NodeProperty Environment \"background_sky_rotation\" Vector3\n           'False\n         where\n        nodeProperty\n          = (get_sky_rotation, wrapDroppingSetter set_sky_rotation, Nothing)\n\ninstance NodeProperty Environment \"background_sky_rotation_degrees\"\n           Vector3\n           'False\n         where\n        nodeProperty\n          = (get_sky_rotation_degrees,\n             wrapDroppingSetter set_sky_rotation_degrees, Nothing)\n\ninstance NodeProperty Environment \"dof_blur_far_amount\" Float\n           'False\n         where\n        nodeProperty\n          = (get_dof_blur_far_amount,\n             wrapDroppingSetter set_dof_blur_far_amount, Nothing)\n\ninstance NodeProperty Environment \"dof_blur_far_distance\" Float\n           'False\n         where\n        nodeProperty\n          = (get_dof_blur_far_distance,\n             wrapDroppingSetter set_dof_blur_far_distance, Nothing)\n\ninstance NodeProperty Environment \"dof_blur_far_enabled\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_dof_blur_far_enabled,\n             wrapDroppingSetter set_dof_blur_far_enabled, Nothing)\n\ninstance NodeProperty Environment \"dof_blur_far_quality\" Int 'False\n         where\n        nodeProperty\n          = (get_dof_blur_far_quality,\n             wrapDroppingSetter set_dof_blur_far_quality, Nothing)\n\ninstance NodeProperty Environment \"dof_blur_far_transition\" Float\n           'False\n         where\n        nodeProperty\n          = (get_dof_blur_far_transition,\n             wrapDroppingSetter set_dof_blur_far_transition, Nothing)\n\ninstance NodeProperty Environment \"dof_blur_near_amount\" Float\n           'False\n         where\n        nodeProperty\n          = (get_dof_blur_near_amount,\n             wrapDroppingSetter set_dof_blur_near_amount, Nothing)\n\ninstance NodeProperty Environment \"dof_blur_near_distance\" Float\n           'False\n         where\n        nodeProperty\n          = (get_dof_blur_near_distance,\n             wrapDroppingSetter set_dof_blur_near_distance, Nothing)\n\ninstance NodeProperty Environment \"dof_blur_near_enabled\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_dof_blur_near_enabled,\n             wrapDroppingSetter set_dof_blur_near_enabled, Nothing)\n\ninstance NodeProperty Environment \"dof_blur_near_quality\" Int\n           'False\n         where\n        nodeProperty\n          = (get_dof_blur_near_quality,\n             wrapDroppingSetter set_dof_blur_near_quality, Nothing)\n\ninstance NodeProperty Environment \"dof_blur_near_transition\" Float\n           'False\n         where\n        nodeProperty\n          = (get_dof_blur_near_transition,\n             wrapDroppingSetter set_dof_blur_near_transition, Nothing)\n\ninstance NodeProperty Environment \"fog_color\" Color 'False where\n        nodeProperty\n          = (get_fog_color, wrapDroppingSetter set_fog_color, Nothing)\n\ninstance NodeProperty Environment \"fog_depth_begin\" Float 'False\n         where\n        nodeProperty\n          = (get_fog_depth_begin, wrapDroppingSetter set_fog_depth_begin,\n             Nothing)\n\ninstance NodeProperty Environment \"fog_depth_curve\" Float 'False\n         where\n        nodeProperty\n          = (get_fog_depth_curve, wrapDroppingSetter set_fog_depth_curve,\n             Nothing)\n\ninstance NodeProperty Environment \"fog_depth_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_fog_depth_enabled, wrapDroppingSetter set_fog_depth_enabled,\n             Nothing)\n\ninstance NodeProperty Environment \"fog_depth_end\" Float 'False\n         where\n        nodeProperty\n          = (get_fog_depth_end, wrapDroppingSetter set_fog_depth_end,\n             Nothing)\n\ninstance NodeProperty Environment \"fog_enabled\" Bool 'False where\n        nodeProperty\n          = (is_fog_enabled, wrapDroppingSetter set_fog_enabled, Nothing)\n\ninstance NodeProperty Environment \"fog_height_curve\" Float 'False\n         where\n        nodeProperty\n          = (get_fog_height_curve, wrapDroppingSetter set_fog_height_curve,\n             Nothing)\n\ninstance NodeProperty Environment \"fog_height_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_fog_height_enabled,\n             wrapDroppingSetter set_fog_height_enabled, Nothing)\n\ninstance NodeProperty Environment \"fog_height_max\" Float 'False\n         where\n        nodeProperty\n          = (get_fog_height_max, wrapDroppingSetter set_fog_height_max,\n             Nothing)\n\ninstance NodeProperty Environment \"fog_height_min\" Float 'False\n         where\n        nodeProperty\n          = (get_fog_height_min, wrapDroppingSetter set_fog_height_min,\n             Nothing)\n\ninstance NodeProperty Environment \"fog_sun_amount\" Float 'False\n         where\n        nodeProperty\n          = (get_fog_sun_amount, wrapDroppingSetter set_fog_sun_amount,\n             Nothing)\n\ninstance NodeProperty Environment \"fog_sun_color\" Color 'False\n         where\n        nodeProperty\n          = (get_fog_sun_color, wrapDroppingSetter set_fog_sun_color,\n             Nothing)\n\ninstance NodeProperty Environment \"fog_transmit_curve\" Float 'False\n         where\n        nodeProperty\n          = (get_fog_transmit_curve,\n             wrapDroppingSetter set_fog_transmit_curve, Nothing)\n\ninstance NodeProperty Environment \"fog_transmit_enabled\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_fog_transmit_enabled,\n             wrapDroppingSetter set_fog_transmit_enabled, Nothing)\n\ninstance NodeProperty Environment \"glow_bicubic_upscale\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_glow_bicubic_upscale_enabled,\n             wrapDroppingSetter set_glow_bicubic_upscale, Nothing)\n\ninstance NodeProperty Environment \"glow_blend_mode\" Int 'False\n         where\n        nodeProperty\n          = (get_glow_blend_mode, wrapDroppingSetter set_glow_blend_mode,\n             Nothing)\n\ninstance NodeProperty Environment \"glow_bloom\" Float 'False where\n        nodeProperty\n          = (get_glow_bloom, wrapDroppingSetter set_glow_bloom, Nothing)\n\ninstance NodeProperty Environment \"glow_enabled\" Bool 'False where\n        nodeProperty\n          = (is_glow_enabled, wrapDroppingSetter set_glow_enabled, Nothing)\n\ninstance NodeProperty Environment \"glow_hdr_luminance_cap\" Float\n           'False\n         where\n        nodeProperty\n          = (get_glow_hdr_luminance_cap,\n             wrapDroppingSetter set_glow_hdr_luminance_cap, Nothing)\n\ninstance NodeProperty Environment \"glow_hdr_scale\" Float 'False\n         where\n        nodeProperty\n          = (get_glow_hdr_bleed_scale,\n             wrapDroppingSetter set_glow_hdr_bleed_scale, Nothing)\n\ninstance NodeProperty Environment \"glow_hdr_threshold\" Float 'False\n         where\n        nodeProperty\n          = (get_glow_hdr_bleed_threshold,\n             wrapDroppingSetter set_glow_hdr_bleed_threshold, Nothing)\n\ninstance NodeProperty Environment \"glow_intensity\" Float 'False\n         where\n        nodeProperty\n          = (get_glow_intensity, wrapDroppingSetter set_glow_intensity,\n             Nothing)\n\ninstance NodeProperty Environment \"glow_levels/1\" Bool 'False where\n        nodeProperty\n          = (wrapIndexedGetter 0 is_glow_level_enabled,\n             wrapIndexedSetter 0 set_glow_level, Nothing)\n\ninstance NodeProperty Environment \"glow_levels/2\" Bool 'False where\n        nodeProperty\n          = (wrapIndexedGetter 1 is_glow_level_enabled,\n             wrapIndexedSetter 1 set_glow_level, Nothing)\n\ninstance NodeProperty Environment \"glow_levels/3\" Bool 'False where\n        nodeProperty\n          = (wrapIndexedGetter 2 is_glow_level_enabled,\n             wrapIndexedSetter 2 set_glow_level, Nothing)\n\ninstance NodeProperty Environment \"glow_levels/4\" Bool 'False where\n        nodeProperty\n          = (wrapIndexedGetter 3 is_glow_level_enabled,\n             wrapIndexedSetter 3 set_glow_level, Nothing)\n\ninstance NodeProperty Environment \"glow_levels/5\" Bool 'False where\n        nodeProperty\n          = (wrapIndexedGetter 4 is_glow_level_enabled,\n             wrapIndexedSetter 4 set_glow_level, Nothing)\n\ninstance NodeProperty Environment \"glow_levels/6\" Bool 'False where\n        nodeProperty\n          = (wrapIndexedGetter 5 is_glow_level_enabled,\n             wrapIndexedSetter 5 set_glow_level, Nothing)\n\ninstance NodeProperty Environment \"glow_levels/7\" Bool 'False where\n        nodeProperty\n          = (wrapIndexedGetter 6 is_glow_level_enabled,\n             wrapIndexedSetter 6 set_glow_level, Nothing)\n\ninstance NodeProperty Environment \"glow_strength\" Float 'False\n         where\n        nodeProperty\n          = (get_glow_strength, wrapDroppingSetter set_glow_strength,\n             Nothing)\n\ninstance NodeProperty Environment \"ss_reflections_depth_tolerance\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_ssr_depth_tolerance,\n             wrapDroppingSetter set_ssr_depth_tolerance, Nothing)\n\ninstance NodeProperty Environment \"ss_reflections_enabled\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_ssr_enabled, wrapDroppingSetter set_ssr_enabled, Nothing)\n\ninstance NodeProperty Environment \"ss_reflections_fade_in\" Float\n           'False\n         where\n        nodeProperty\n          = (get_ssr_fade_in, wrapDroppingSetter set_ssr_fade_in, Nothing)\n\ninstance NodeProperty Environment \"ss_reflections_fade_out\" Float\n           'False\n         where\n        nodeProperty\n          = (get_ssr_fade_out, wrapDroppingSetter set_ssr_fade_out, Nothing)\n\ninstance NodeProperty Environment \"ss_reflections_max_steps\" Int\n           'False\n         where\n        nodeProperty\n          = (get_ssr_max_steps, wrapDroppingSetter set_ssr_max_steps,\n             Nothing)\n\ninstance NodeProperty Environment \"ss_reflections_roughness\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_ssr_rough, wrapDroppingSetter set_ssr_rough, Nothing)\n\ninstance NodeProperty Environment \"ssao_ao_channel_affect\" Float\n           'False\n         where\n        nodeProperty\n          = (get_ssao_ao_channel_affect,\n             wrapDroppingSetter set_ssao_ao_channel_affect, Nothing)\n\ninstance NodeProperty Environment \"ssao_bias\" Float 'False where\n        nodeProperty\n          = (get_ssao_bias, wrapDroppingSetter set_ssao_bias, Nothing)\n\ninstance NodeProperty Environment \"ssao_blur\" Int 'False where\n        nodeProperty\n          = (get_ssao_blur, wrapDroppingSetter set_ssao_blur, Nothing)\n\ninstance NodeProperty Environment \"ssao_color\" Color 'False where\n        nodeProperty\n          = (get_ssao_color, wrapDroppingSetter set_ssao_color, Nothing)\n\ninstance NodeProperty Environment \"ssao_edge_sharpness\" Float\n           'False\n         where\n        nodeProperty\n          = (get_ssao_edge_sharpness,\n             wrapDroppingSetter set_ssao_edge_sharpness, Nothing)\n\ninstance NodeProperty Environment \"ssao_enabled\" Bool 'False where\n        nodeProperty\n          = (is_ssao_enabled, wrapDroppingSetter set_ssao_enabled, Nothing)\n\ninstance NodeProperty Environment \"ssao_intensity\" Float 'False\n         where\n        nodeProperty\n          = (get_ssao_intensity, wrapDroppingSetter set_ssao_intensity,\n             Nothing)\n\ninstance NodeProperty Environment \"ssao_intensity2\" Float 'False\n         where\n        nodeProperty\n          = (get_ssao_intensity2, wrapDroppingSetter set_ssao_intensity2,\n             Nothing)\n\ninstance NodeProperty Environment \"ssao_light_affect\" Float 'False\n         where\n        nodeProperty\n          = (get_ssao_direct_light_affect,\n             wrapDroppingSetter set_ssao_direct_light_affect, Nothing)\n\ninstance NodeProperty Environment \"ssao_quality\" Int 'False where\n        nodeProperty\n          = (get_ssao_quality, wrapDroppingSetter set_ssao_quality, Nothing)\n\ninstance NodeProperty Environment \"ssao_radius\" Float 'False where\n        nodeProperty\n          = (get_ssao_radius, wrapDroppingSetter set_ssao_radius, Nothing)\n\ninstance NodeProperty Environment \"ssao_radius2\" Float 'False where\n        nodeProperty\n          = (get_ssao_radius2, wrapDroppingSetter set_ssao_radius2, Nothing)\n\ninstance NodeProperty Environment \"tonemap_exposure\" Float 'False\n         where\n        nodeProperty\n          = (get_tonemap_exposure, wrapDroppingSetter set_tonemap_exposure,\n             Nothing)\n\ninstance NodeProperty Environment \"tonemap_mode\" Int 'False where\n        nodeProperty\n          = (get_tonemapper, wrapDroppingSetter set_tonemapper, Nothing)\n\ninstance NodeProperty Environment \"tonemap_white\" Float 'False\n         where\n        nodeProperty\n          = (get_tonemap_white, wrapDroppingSetter set_tonemap_white,\n             Nothing)\n\n{-# NOINLINE bindEnvironment_get_adjustment_brightness #-}\n\n-- | The global brightness value of the rendered scene. Effective only if @adjustment_enabled@ is @true@.\nbindEnvironment_get_adjustment_brightness :: MethodBind\nbindEnvironment_get_adjustment_brightness\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_adjustment_brightness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The global brightness value of the rendered scene. Effective only if @adjustment_enabled@ is @true@.\nget_adjustment_brightness ::\n                            (Environment :< cls, Object :< cls) => cls -> IO Float\nget_adjustment_brightness cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_adjustment_brightness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_adjustment_brightness\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_adjustment_brightness\n\n{-# NOINLINE bindEnvironment_get_adjustment_color_correction #-}\n\n-- | Applies the provided @Texture@ resource to affect the global color aspect of the rendered scene. Effective only if @adjustment_enabled@ is @true@.\nbindEnvironment_get_adjustment_color_correction :: MethodBind\nbindEnvironment_get_adjustment_color_correction\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_adjustment_color_correction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies the provided @Texture@ resource to affect the global color aspect of the rendered scene. Effective only if @adjustment_enabled@ is @true@.\nget_adjustment_color_correction ::\n                                  (Environment :< cls, Object :< cls) => cls -> IO Texture\nget_adjustment_color_correction cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEnvironment_get_adjustment_color_correction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_adjustment_color_correction\"\n           '[]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.Environment.get_adjustment_color_correction\n\n{-# NOINLINE bindEnvironment_get_adjustment_contrast #-}\n\n-- | The global contrast value of the rendered scene (default value is 1). Effective only if @adjustment_enabled@ is @true@.\nbindEnvironment_get_adjustment_contrast :: MethodBind\nbindEnvironment_get_adjustment_contrast\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_adjustment_contrast\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The global contrast value of the rendered scene (default value is 1). Effective only if @adjustment_enabled@ is @true@.\nget_adjustment_contrast ::\n                          (Environment :< cls, Object :< cls) => cls -> IO Float\nget_adjustment_contrast cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_adjustment_contrast\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_adjustment_contrast\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_adjustment_contrast\n\n{-# NOINLINE bindEnvironment_get_adjustment_saturation #-}\n\n-- | The global color saturation value of the rendered scene (default value is 1). Effective only if @adjustment_enabled@ is @true@.\nbindEnvironment_get_adjustment_saturation :: MethodBind\nbindEnvironment_get_adjustment_saturation\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_adjustment_saturation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The global color saturation value of the rendered scene (default value is 1). Effective only if @adjustment_enabled@ is @true@.\nget_adjustment_saturation ::\n                            (Environment :< cls, Object :< cls) => cls -> IO Float\nget_adjustment_saturation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_adjustment_saturation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_adjustment_saturation\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_adjustment_saturation\n\n{-# NOINLINE bindEnvironment_get_ambient_light_color #-}\n\n-- | The ambient light's @Color@.\nbindEnvironment_get_ambient_light_color :: MethodBind\nbindEnvironment_get_ambient_light_color\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_ambient_light_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ambient light's @Color@.\nget_ambient_light_color ::\n                          (Environment :< cls, Object :< cls) => cls -> IO Color\nget_ambient_light_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_ambient_light_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_ambient_light_color\" '[]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.Environment.get_ambient_light_color\n\n{-# NOINLINE bindEnvironment_get_ambient_light_energy #-}\n\n-- | The ambient light's energy. The higher the value, the stronger the light.\nbindEnvironment_get_ambient_light_energy :: MethodBind\nbindEnvironment_get_ambient_light_energy\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_ambient_light_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ambient light's energy. The higher the value, the stronger the light.\nget_ambient_light_energy ::\n                           (Environment :< cls, Object :< cls) => cls -> IO Float\nget_ambient_light_energy cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_ambient_light_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_ambient_light_energy\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_ambient_light_energy\n\n{-# NOINLINE bindEnvironment_get_ambient_light_sky_contribution #-}\n\n-- | Defines the amount of light that the sky brings on the scene. A value of 0 means that the sky's light emission has no effect on the scene illumination, thus all ambient illumination is provided by the ambient light. On the contrary, a value of 1 means that all the light that affects the scene is provided by the sky, thus the ambient light parameter has no effect on the scene.\nbindEnvironment_get_ambient_light_sky_contribution :: MethodBind\nbindEnvironment_get_ambient_light_sky_contribution\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_ambient_light_sky_contribution\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines the amount of light that the sky brings on the scene. A value of 0 means that the sky's light emission has no effect on the scene illumination, thus all ambient illumination is provided by the ambient light. On the contrary, a value of 1 means that all the light that affects the scene is provided by the sky, thus the ambient light parameter has no effect on the scene.\nget_ambient_light_sky_contribution ::\n                                     (Environment :< cls, Object :< cls) => cls -> IO Float\nget_ambient_light_sky_contribution cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEnvironment_get_ambient_light_sky_contribution\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment\n           \"get_ambient_light_sky_contribution\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.Environment.get_ambient_light_sky_contribution\n\n{-# NOINLINE bindEnvironment_get_background #-}\n\n-- | The background mode. See @enum BGMode@ for possible values.\nbindEnvironment_get_background :: MethodBind\nbindEnvironment_get_background\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_background\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The background mode. See @enum BGMode@ for possible values.\nget_background ::\n                 (Environment :< cls, Object :< cls) => cls -> IO Int\nget_background cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_background (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_background\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Environment.get_background\n\n{-# NOINLINE bindEnvironment_get_bg_color #-}\n\n-- | The @Color@ displayed for clear areas of the scene. Only effective when using the @BG_COLOR@ or @BG_COLOR_SKY@ background modes).\nbindEnvironment_get_bg_color :: MethodBind\nbindEnvironment_get_bg_color\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_bg_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Color@ displayed for clear areas of the scene. Only effective when using the @BG_COLOR@ or @BG_COLOR_SKY@ background modes).\nget_bg_color ::\n               (Environment :< cls, Object :< cls) => cls -> IO Color\nget_bg_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_bg_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_bg_color\" '[] (IO Color) where\n        nodeMethod = Godot.Core.Environment.get_bg_color\n\n{-# NOINLINE bindEnvironment_get_bg_energy #-}\n\n-- | The power of the light emitted by the background.\nbindEnvironment_get_bg_energy :: MethodBind\nbindEnvironment_get_bg_energy\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_bg_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The power of the light emitted by the background.\nget_bg_energy ::\n                (Environment :< cls, Object :< cls) => cls -> IO Float\nget_bg_energy cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_bg_energy (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_bg_energy\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_bg_energy\n\n{-# NOINLINE bindEnvironment_get_camera_feed_id #-}\n\n-- | The ID of the camera feed to show in the background.\nbindEnvironment_get_camera_feed_id :: MethodBind\nbindEnvironment_get_camera_feed_id\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_camera_feed_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ID of the camera feed to show in the background.\nget_camera_feed_id ::\n                     (Environment :< cls, Object :< cls) => cls -> IO Int\nget_camera_feed_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_camera_feed_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_camera_feed_id\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Environment.get_camera_feed_id\n\n{-# NOINLINE bindEnvironment_get_canvas_max_layer #-}\n\n-- | The maximum layer ID to display. Only effective when using the @BG_CANVAS@ background mode.\nbindEnvironment_get_canvas_max_layer :: MethodBind\nbindEnvironment_get_canvas_max_layer\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_canvas_max_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum layer ID to display. Only effective when using the @BG_CANVAS@ background mode.\nget_canvas_max_layer ::\n                       (Environment :< cls, Object :< cls) => cls -> IO Int\nget_canvas_max_layer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_canvas_max_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_canvas_max_layer\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Environment.get_canvas_max_layer\n\n{-# NOINLINE bindEnvironment_get_dof_blur_far_amount #-}\n\n-- | The amount of far blur for the depth-of-field effect.\nbindEnvironment_get_dof_blur_far_amount :: MethodBind\nbindEnvironment_get_dof_blur_far_amount\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_dof_blur_far_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount of far blur for the depth-of-field effect.\nget_dof_blur_far_amount ::\n                          (Environment :< cls, Object :< cls) => cls -> IO Float\nget_dof_blur_far_amount cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_dof_blur_far_amount\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_dof_blur_far_amount\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_dof_blur_far_amount\n\n{-# NOINLINE bindEnvironment_get_dof_blur_far_distance #-}\n\n-- | The distance from the camera where the far blur effect affects the rendering.\nbindEnvironment_get_dof_blur_far_distance :: MethodBind\nbindEnvironment_get_dof_blur_far_distance\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_dof_blur_far_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance from the camera where the far blur effect affects the rendering.\nget_dof_blur_far_distance ::\n                            (Environment :< cls, Object :< cls) => cls -> IO Float\nget_dof_blur_far_distance cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_dof_blur_far_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_dof_blur_far_distance\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_dof_blur_far_distance\n\n{-# NOINLINE bindEnvironment_get_dof_blur_far_quality #-}\n\n-- | The depth-of-field far blur's quality. Higher values can mitigate the visible banding effect seen at higher strengths, but are much slower.\nbindEnvironment_get_dof_blur_far_quality :: MethodBind\nbindEnvironment_get_dof_blur_far_quality\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_dof_blur_far_quality\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The depth-of-field far blur's quality. Higher values can mitigate the visible banding effect seen at higher strengths, but are much slower.\nget_dof_blur_far_quality ::\n                           (Environment :< cls, Object :< cls) => cls -> IO Int\nget_dof_blur_far_quality cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_dof_blur_far_quality\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_dof_blur_far_quality\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Environment.get_dof_blur_far_quality\n\n{-# NOINLINE bindEnvironment_get_dof_blur_far_transition #-}\n\n-- | The length of the transition between the no-blur area and far blur.\nbindEnvironment_get_dof_blur_far_transition :: MethodBind\nbindEnvironment_get_dof_blur_far_transition\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_dof_blur_far_transition\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The length of the transition between the no-blur area and far blur.\nget_dof_blur_far_transition ::\n                              (Environment :< cls, Object :< cls) => cls -> IO Float\nget_dof_blur_far_transition cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_dof_blur_far_transition\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_dof_blur_far_transition\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_dof_blur_far_transition\n\n{-# NOINLINE bindEnvironment_get_dof_blur_near_amount #-}\n\n-- | The amount of near blur for the depth-of-field effect.\nbindEnvironment_get_dof_blur_near_amount :: MethodBind\nbindEnvironment_get_dof_blur_near_amount\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_dof_blur_near_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount of near blur for the depth-of-field effect.\nget_dof_blur_near_amount ::\n                           (Environment :< cls, Object :< cls) => cls -> IO Float\nget_dof_blur_near_amount cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_dof_blur_near_amount\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_dof_blur_near_amount\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_dof_blur_near_amount\n\n{-# NOINLINE bindEnvironment_get_dof_blur_near_distance #-}\n\n-- | Distance from the camera where the near blur effect affects the rendering.\nbindEnvironment_get_dof_blur_near_distance :: MethodBind\nbindEnvironment_get_dof_blur_near_distance\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_dof_blur_near_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Distance from the camera where the near blur effect affects the rendering.\nget_dof_blur_near_distance ::\n                             (Environment :< cls, Object :< cls) => cls -> IO Float\nget_dof_blur_near_distance cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_dof_blur_near_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_dof_blur_near_distance\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_dof_blur_near_distance\n\n{-# NOINLINE bindEnvironment_get_dof_blur_near_quality #-}\n\n-- | The depth-of-field near blur's quality. Higher values can mitigate the visible banding effect seen at higher strengths, but are much slower.\nbindEnvironment_get_dof_blur_near_quality :: MethodBind\nbindEnvironment_get_dof_blur_near_quality\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_dof_blur_near_quality\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The depth-of-field near blur's quality. Higher values can mitigate the visible banding effect seen at higher strengths, but are much slower.\nget_dof_blur_near_quality ::\n                            (Environment :< cls, Object :< cls) => cls -> IO Int\nget_dof_blur_near_quality cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_dof_blur_near_quality\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_dof_blur_near_quality\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Environment.get_dof_blur_near_quality\n\n{-# NOINLINE bindEnvironment_get_dof_blur_near_transition #-}\n\n-- | The length of the transition between the near blur and no-blur area.\nbindEnvironment_get_dof_blur_near_transition :: MethodBind\nbindEnvironment_get_dof_blur_near_transition\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_dof_blur_near_transition\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The length of the transition between the near blur and no-blur area.\nget_dof_blur_near_transition ::\n                               (Environment :< cls, Object :< cls) => cls -> IO Float\nget_dof_blur_near_transition cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_dof_blur_near_transition\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_dof_blur_near_transition\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_dof_blur_near_transition\n\n{-# NOINLINE bindEnvironment_get_fog_color #-}\n\n-- | The fog's @Color@.\nbindEnvironment_get_fog_color :: MethodBind\nbindEnvironment_get_fog_color\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_fog_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The fog's @Color@.\nget_fog_color ::\n                (Environment :< cls, Object :< cls) => cls -> IO Color\nget_fog_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_fog_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_fog_color\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.Environment.get_fog_color\n\n{-# NOINLINE bindEnvironment_get_fog_depth_begin #-}\n\n-- | The fog's depth starting distance from the camera.\nbindEnvironment_get_fog_depth_begin :: MethodBind\nbindEnvironment_get_fog_depth_begin\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_fog_depth_begin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The fog's depth starting distance from the camera.\nget_fog_depth_begin ::\n                      (Environment :< cls, Object :< cls) => cls -> IO Float\nget_fog_depth_begin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_fog_depth_begin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_fog_depth_begin\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_fog_depth_begin\n\n{-# NOINLINE bindEnvironment_get_fog_depth_curve #-}\n\n-- | The fog depth's intensity curve. A number of presets are available in the __Inspector__ by right-clicking the curve.\nbindEnvironment_get_fog_depth_curve :: MethodBind\nbindEnvironment_get_fog_depth_curve\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_fog_depth_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The fog depth's intensity curve. A number of presets are available in the __Inspector__ by right-clicking the curve.\nget_fog_depth_curve ::\n                      (Environment :< cls, Object :< cls) => cls -> IO Float\nget_fog_depth_curve cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_fog_depth_curve\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_fog_depth_curve\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_fog_depth_curve\n\n{-# NOINLINE bindEnvironment_get_fog_depth_end #-}\n\n-- | The fog's depth end distance from the camera. If this value is set to 0, it will be equal to the current camera's @Camera.far@ value.\nbindEnvironment_get_fog_depth_end :: MethodBind\nbindEnvironment_get_fog_depth_end\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_fog_depth_end\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The fog's depth end distance from the camera. If this value is set to 0, it will be equal to the current camera's @Camera.far@ value.\nget_fog_depth_end ::\n                    (Environment :< cls, Object :< cls) => cls -> IO Float\nget_fog_depth_end cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_fog_depth_end\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_fog_depth_end\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_fog_depth_end\n\n{-# NOINLINE bindEnvironment_get_fog_height_curve #-}\n\n-- | The height fog's intensity. A number of presets are available in the __Inspector__ by right-clicking the curve.\nbindEnvironment_get_fog_height_curve :: MethodBind\nbindEnvironment_get_fog_height_curve\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_fog_height_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The height fog's intensity. A number of presets are available in the __Inspector__ by right-clicking the curve.\nget_fog_height_curve ::\n                       (Environment :< cls, Object :< cls) => cls -> IO Float\nget_fog_height_curve cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_fog_height_curve\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_fog_height_curve\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_fog_height_curve\n\n{-# NOINLINE bindEnvironment_get_fog_height_max #-}\n\n-- | The Y coordinate where the height fog will be the most intense. If this value is greater than @fog_height_min@, fog will be displayed from bottom to top. Otherwise, it will be displayed from top to bottom.\nbindEnvironment_get_fog_height_max :: MethodBind\nbindEnvironment_get_fog_height_max\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_fog_height_max\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The Y coordinate where the height fog will be the most intense. If this value is greater than @fog_height_min@, fog will be displayed from bottom to top. Otherwise, it will be displayed from top to bottom.\nget_fog_height_max ::\n                     (Environment :< cls, Object :< cls) => cls -> IO Float\nget_fog_height_max cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_fog_height_max\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_fog_height_max\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_fog_height_max\n\n{-# NOINLINE bindEnvironment_get_fog_height_min #-}\n\n-- | The Y coordinate where the height fog will be the least intense. If this value is greater than @fog_height_max@, fog will be displayed from top to bottom. Otherwise, it will be displayed from bottom to top.\nbindEnvironment_get_fog_height_min :: MethodBind\nbindEnvironment_get_fog_height_min\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_fog_height_min\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The Y coordinate where the height fog will be the least intense. If this value is greater than @fog_height_max@, fog will be displayed from top to bottom. Otherwise, it will be displayed from bottom to top.\nget_fog_height_min ::\n                     (Environment :< cls, Object :< cls) => cls -> IO Float\nget_fog_height_min cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_fog_height_min\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_fog_height_min\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_fog_height_min\n\n{-# NOINLINE bindEnvironment_get_fog_sun_amount #-}\n\n-- | The intensity of the depth fog color transition when looking towards the sun. The sun's direction is determined automatically using the DirectionalLight node in the scene.\nbindEnvironment_get_fog_sun_amount :: MethodBind\nbindEnvironment_get_fog_sun_amount\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_fog_sun_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The intensity of the depth fog color transition when looking towards the sun. The sun's direction is determined automatically using the DirectionalLight node in the scene.\nget_fog_sun_amount ::\n                     (Environment :< cls, Object :< cls) => cls -> IO Float\nget_fog_sun_amount cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_fog_sun_amount\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_fog_sun_amount\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_fog_sun_amount\n\n{-# NOINLINE bindEnvironment_get_fog_sun_color #-}\n\n-- | The depth fog's @Color@ when looking towards the sun.\nbindEnvironment_get_fog_sun_color :: MethodBind\nbindEnvironment_get_fog_sun_color\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_fog_sun_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The depth fog's @Color@ when looking towards the sun.\nget_fog_sun_color ::\n                    (Environment :< cls, Object :< cls) => cls -> IO Color\nget_fog_sun_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_fog_sun_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_fog_sun_color\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.Environment.get_fog_sun_color\n\n{-# NOINLINE bindEnvironment_get_fog_transmit_curve #-}\n\n-- | The intensity of the fog light transmittance effect. Amount of light that the fog transmits.\nbindEnvironment_get_fog_transmit_curve :: MethodBind\nbindEnvironment_get_fog_transmit_curve\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_fog_transmit_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The intensity of the fog light transmittance effect. Amount of light that the fog transmits.\nget_fog_transmit_curve ::\n                         (Environment :< cls, Object :< cls) => cls -> IO Float\nget_fog_transmit_curve cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_fog_transmit_curve\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_fog_transmit_curve\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_fog_transmit_curve\n\n{-# NOINLINE bindEnvironment_get_glow_blend_mode #-}\n\n-- | The glow blending mode.\nbindEnvironment_get_glow_blend_mode :: MethodBind\nbindEnvironment_get_glow_blend_mode\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_glow_blend_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The glow blending mode.\nget_glow_blend_mode ::\n                      (Environment :< cls, Object :< cls) => cls -> IO Int\nget_glow_blend_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_glow_blend_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_glow_blend_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Environment.get_glow_blend_mode\n\n{-# NOINLINE bindEnvironment_get_glow_bloom #-}\n\n-- | The bloom's intensity. If set to a value higher than @0@, this will make glow visible in areas darker than the @glow_hdr_threshold@.\nbindEnvironment_get_glow_bloom :: MethodBind\nbindEnvironment_get_glow_bloom\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_glow_bloom\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The bloom's intensity. If set to a value higher than @0@, this will make glow visible in areas darker than the @glow_hdr_threshold@.\nget_glow_bloom ::\n                 (Environment :< cls, Object :< cls) => cls -> IO Float\nget_glow_bloom cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_glow_bloom (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_glow_bloom\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_glow_bloom\n\n{-# NOINLINE bindEnvironment_get_glow_hdr_bleed_scale #-}\n\n-- | The bleed scale of the HDR glow.\nbindEnvironment_get_glow_hdr_bleed_scale :: MethodBind\nbindEnvironment_get_glow_hdr_bleed_scale\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_glow_hdr_bleed_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The bleed scale of the HDR glow.\nget_glow_hdr_bleed_scale ::\n                           (Environment :< cls, Object :< cls) => cls -> IO Float\nget_glow_hdr_bleed_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_glow_hdr_bleed_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_glow_hdr_bleed_scale\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_glow_hdr_bleed_scale\n\n{-# NOINLINE bindEnvironment_get_glow_hdr_bleed_threshold #-}\n\n-- | The lower threshold of the HDR glow. When using the GLES2 renderer (which doesn't support HDR), this needs to be below @1.0@ for glow to be visible. A value of @0.9@ works well in this case.\nbindEnvironment_get_glow_hdr_bleed_threshold :: MethodBind\nbindEnvironment_get_glow_hdr_bleed_threshold\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_glow_hdr_bleed_threshold\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The lower threshold of the HDR glow. When using the GLES2 renderer (which doesn't support HDR), this needs to be below @1.0@ for glow to be visible. A value of @0.9@ works well in this case.\nget_glow_hdr_bleed_threshold ::\n                               (Environment :< cls, Object :< cls) => cls -> IO Float\nget_glow_hdr_bleed_threshold cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_glow_hdr_bleed_threshold\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_glow_hdr_bleed_threshold\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_glow_hdr_bleed_threshold\n\n{-# NOINLINE bindEnvironment_get_glow_hdr_luminance_cap #-}\n\n-- | The higher threshold of the HDR glow. Areas brighter than this threshold will be clamped for the purposes of the glow effect.\nbindEnvironment_get_glow_hdr_luminance_cap :: MethodBind\nbindEnvironment_get_glow_hdr_luminance_cap\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_glow_hdr_luminance_cap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The higher threshold of the HDR glow. Areas brighter than this threshold will be clamped for the purposes of the glow effect.\nget_glow_hdr_luminance_cap ::\n                             (Environment :< cls, Object :< cls) => cls -> IO Float\nget_glow_hdr_luminance_cap cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_glow_hdr_luminance_cap\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_glow_hdr_luminance_cap\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_glow_hdr_luminance_cap\n\n{-# NOINLINE bindEnvironment_get_glow_intensity #-}\n\n-- | The glow intensity. When using the GLES2 renderer, this should be increased to 1.5 to compensate for the lack of HDR rendering.\nbindEnvironment_get_glow_intensity :: MethodBind\nbindEnvironment_get_glow_intensity\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_glow_intensity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The glow intensity. When using the GLES2 renderer, this should be increased to 1.5 to compensate for the lack of HDR rendering.\nget_glow_intensity ::\n                     (Environment :< cls, Object :< cls) => cls -> IO Float\nget_glow_intensity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_glow_intensity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_glow_intensity\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_glow_intensity\n\n{-# NOINLINE bindEnvironment_get_glow_strength #-}\n\n-- | The glow strength. When using the GLES2 renderer, this should be increased to 1.3 to compensate for the lack of HDR rendering.\nbindEnvironment_get_glow_strength :: MethodBind\nbindEnvironment_get_glow_strength\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_glow_strength\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The glow strength. When using the GLES2 renderer, this should be increased to 1.3 to compensate for the lack of HDR rendering.\nget_glow_strength ::\n                    (Environment :< cls, Object :< cls) => cls -> IO Float\nget_glow_strength cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_glow_strength\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_glow_strength\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_glow_strength\n\n{-# NOINLINE bindEnvironment_get_sky #-}\n\n-- | The @Sky@ resource defined as background.\nbindEnvironment_get_sky :: MethodBind\nbindEnvironment_get_sky\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_sky\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Sky@ resource defined as background.\nget_sky :: (Environment :< cls, Object :< cls) => cls -> IO Sky\nget_sky cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_sky (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_sky\" '[] (IO Sky) where\n        nodeMethod = Godot.Core.Environment.get_sky\n\n{-# NOINLINE bindEnvironment_get_sky_custom_fov #-}\n\n-- | The @Sky@ resource's custom field of view.\nbindEnvironment_get_sky_custom_fov :: MethodBind\nbindEnvironment_get_sky_custom_fov\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_sky_custom_fov\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Sky@ resource's custom field of view.\nget_sky_custom_fov ::\n                     (Environment :< cls, Object :< cls) => cls -> IO Float\nget_sky_custom_fov cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_sky_custom_fov\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_sky_custom_fov\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_sky_custom_fov\n\n{-# NOINLINE bindEnvironment_get_sky_orientation #-}\n\n-- | The @Sky@ resource's rotation expressed as a @Basis@.\nbindEnvironment_get_sky_orientation :: MethodBind\nbindEnvironment_get_sky_orientation\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_sky_orientation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Sky@ resource's rotation expressed as a @Basis@.\nget_sky_orientation ::\n                      (Environment :< cls, Object :< cls) => cls -> IO Basis\nget_sky_orientation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_sky_orientation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_sky_orientation\" '[]\n           (IO Basis)\n         where\n        nodeMethod = Godot.Core.Environment.get_sky_orientation\n\n{-# NOINLINE bindEnvironment_get_sky_rotation #-}\n\n-- | The @Sky@ resource's rotation expressed as Euler angles in radians.\nbindEnvironment_get_sky_rotation :: MethodBind\nbindEnvironment_get_sky_rotation\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_sky_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Sky@ resource's rotation expressed as Euler angles in radians.\nget_sky_rotation ::\n                   (Environment :< cls, Object :< cls) => cls -> IO Vector3\nget_sky_rotation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_sky_rotation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_sky_rotation\" '[] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Environment.get_sky_rotation\n\n{-# NOINLINE bindEnvironment_get_sky_rotation_degrees #-}\n\n-- | The @Sky@ resource's rotation expressed as Euler angles in degrees.\nbindEnvironment_get_sky_rotation_degrees :: MethodBind\nbindEnvironment_get_sky_rotation_degrees\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_sky_rotation_degrees\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Sky@ resource's rotation expressed as Euler angles in degrees.\nget_sky_rotation_degrees ::\n                           (Environment :< cls, Object :< cls) => cls -> IO Vector3\nget_sky_rotation_degrees cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_sky_rotation_degrees\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_sky_rotation_degrees\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Environment.get_sky_rotation_degrees\n\n{-# NOINLINE bindEnvironment_get_ssao_ao_channel_affect #-}\n\n-- | The screen-space ambient occlusion intensity on materials that have an AO texture defined. Values higher than @0@ will make the SSAO effect visible in areas darkened by AO textures.\nbindEnvironment_get_ssao_ao_channel_affect :: MethodBind\nbindEnvironment_get_ssao_ao_channel_affect\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_ssao_ao_channel_affect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The screen-space ambient occlusion intensity on materials that have an AO texture defined. Values higher than @0@ will make the SSAO effect visible in areas darkened by AO textures.\nget_ssao_ao_channel_affect ::\n                             (Environment :< cls, Object :< cls) => cls -> IO Float\nget_ssao_ao_channel_affect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_ssao_ao_channel_affect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_ssao_ao_channel_affect\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_ssao_ao_channel_affect\n\n{-# NOINLINE bindEnvironment_get_ssao_bias #-}\n\n-- | The screen-space ambient occlusion bias. This should be kept high enough to prevent \"smooth\" curves from being affected by ambient occlusion.\nbindEnvironment_get_ssao_bias :: MethodBind\nbindEnvironment_get_ssao_bias\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_ssao_bias\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The screen-space ambient occlusion bias. This should be kept high enough to prevent \"smooth\" curves from being affected by ambient occlusion.\nget_ssao_bias ::\n                (Environment :< cls, Object :< cls) => cls -> IO Float\nget_ssao_bias cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_ssao_bias (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_ssao_bias\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_ssao_bias\n\n{-# NOINLINE bindEnvironment_get_ssao_blur #-}\n\n-- | The screen-space ambient occlusion blur quality. See @enum SSAOBlur@ for possible values.\nbindEnvironment_get_ssao_blur :: MethodBind\nbindEnvironment_get_ssao_blur\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_ssao_blur\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The screen-space ambient occlusion blur quality. See @enum SSAOBlur@ for possible values.\nget_ssao_blur ::\n                (Environment :< cls, Object :< cls) => cls -> IO Int\nget_ssao_blur cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_ssao_blur (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_ssao_blur\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Environment.get_ssao_blur\n\n{-# NOINLINE bindEnvironment_get_ssao_color #-}\n\n-- | The screen-space ambient occlusion color.\nbindEnvironment_get_ssao_color :: MethodBind\nbindEnvironment_get_ssao_color\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_ssao_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The screen-space ambient occlusion color.\nget_ssao_color ::\n                 (Environment :< cls, Object :< cls) => cls -> IO Color\nget_ssao_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_ssao_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_ssao_color\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.Environment.get_ssao_color\n\n{-# NOINLINE bindEnvironment_get_ssao_direct_light_affect #-}\n\n-- | The screen-space ambient occlusion intensity in direct light. In real life, ambient occlusion only applies to indirect light, which means its effects can't be seen in direct light. Values higher than @0@ will make the SSAO effect visible in direct light.\nbindEnvironment_get_ssao_direct_light_affect :: MethodBind\nbindEnvironment_get_ssao_direct_light_affect\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_ssao_direct_light_affect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The screen-space ambient occlusion intensity in direct light. In real life, ambient occlusion only applies to indirect light, which means its effects can't be seen in direct light. Values higher than @0@ will make the SSAO effect visible in direct light.\nget_ssao_direct_light_affect ::\n                               (Environment :< cls, Object :< cls) => cls -> IO Float\nget_ssao_direct_light_affect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_ssao_direct_light_affect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_ssao_direct_light_affect\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_ssao_direct_light_affect\n\n{-# NOINLINE bindEnvironment_get_ssao_edge_sharpness #-}\n\n-- | The screen-space ambient occlusion edge sharpness.\nbindEnvironment_get_ssao_edge_sharpness :: MethodBind\nbindEnvironment_get_ssao_edge_sharpness\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_ssao_edge_sharpness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The screen-space ambient occlusion edge sharpness.\nget_ssao_edge_sharpness ::\n                          (Environment :< cls, Object :< cls) => cls -> IO Float\nget_ssao_edge_sharpness cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_ssao_edge_sharpness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_ssao_edge_sharpness\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_ssao_edge_sharpness\n\n{-# NOINLINE bindEnvironment_get_ssao_intensity #-}\n\n-- | The primary screen-space ambient occlusion intensity. See also @ssao_radius@.\nbindEnvironment_get_ssao_intensity :: MethodBind\nbindEnvironment_get_ssao_intensity\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_ssao_intensity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The primary screen-space ambient occlusion intensity. See also @ssao_radius@.\nget_ssao_intensity ::\n                     (Environment :< cls, Object :< cls) => cls -> IO Float\nget_ssao_intensity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_ssao_intensity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_ssao_intensity\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_ssao_intensity\n\n{-# NOINLINE bindEnvironment_get_ssao_intensity2 #-}\n\n-- | The secondary screen-space ambient occlusion intensity. See also @ssao_radius2@.\nbindEnvironment_get_ssao_intensity2 :: MethodBind\nbindEnvironment_get_ssao_intensity2\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_ssao_intensity2\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The secondary screen-space ambient occlusion intensity. See also @ssao_radius2@.\nget_ssao_intensity2 ::\n                      (Environment :< cls, Object :< cls) => cls -> IO Float\nget_ssao_intensity2 cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_ssao_intensity2\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_ssao_intensity2\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_ssao_intensity2\n\n{-# NOINLINE bindEnvironment_get_ssao_quality #-}\n\n-- | The screen-space ambient occlusion quality. Higher qualities will make better use of small objects for ambient occlusion, but are slower.\nbindEnvironment_get_ssao_quality :: MethodBind\nbindEnvironment_get_ssao_quality\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_ssao_quality\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The screen-space ambient occlusion quality. Higher qualities will make better use of small objects for ambient occlusion, but are slower.\nget_ssao_quality ::\n                   (Environment :< cls, Object :< cls) => cls -> IO Int\nget_ssao_quality cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_ssao_quality\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_ssao_quality\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Environment.get_ssao_quality\n\n{-# NOINLINE bindEnvironment_get_ssao_radius #-}\n\n-- | The primary screen-space ambient occlusion radius.\nbindEnvironment_get_ssao_radius :: MethodBind\nbindEnvironment_get_ssao_radius\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_ssao_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The primary screen-space ambient occlusion radius.\nget_ssao_radius ::\n                  (Environment :< cls, Object :< cls) => cls -> IO Float\nget_ssao_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_ssao_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_ssao_radius\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_ssao_radius\n\n{-# NOINLINE bindEnvironment_get_ssao_radius2 #-}\n\n-- | The secondary screen-space ambient occlusion radius. If set to a value higher than @0@, enables the secondary screen-space ambient occlusion effect which can be used to improve the effect's appearance (at the cost of performance).\nbindEnvironment_get_ssao_radius2 :: MethodBind\nbindEnvironment_get_ssao_radius2\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_ssao_radius2\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The secondary screen-space ambient occlusion radius. If set to a value higher than @0@, enables the secondary screen-space ambient occlusion effect which can be used to improve the effect's appearance (at the cost of performance).\nget_ssao_radius2 ::\n                   (Environment :< cls, Object :< cls) => cls -> IO Float\nget_ssao_radius2 cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_ssao_radius2\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_ssao_radius2\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_ssao_radius2\n\n{-# NOINLINE bindEnvironment_get_ssr_depth_tolerance #-}\n\n-- | The depth tolerance for screen-space reflections.\nbindEnvironment_get_ssr_depth_tolerance :: MethodBind\nbindEnvironment_get_ssr_depth_tolerance\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_ssr_depth_tolerance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The depth tolerance for screen-space reflections.\nget_ssr_depth_tolerance ::\n                          (Environment :< cls, Object :< cls) => cls -> IO Float\nget_ssr_depth_tolerance cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_ssr_depth_tolerance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_ssr_depth_tolerance\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_ssr_depth_tolerance\n\n{-# NOINLINE bindEnvironment_get_ssr_fade_in #-}\n\n-- | The fade-in distance for screen-space reflections. Affects the area from the reflected material to the screen-space reflection).\nbindEnvironment_get_ssr_fade_in :: MethodBind\nbindEnvironment_get_ssr_fade_in\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_ssr_fade_in\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The fade-in distance for screen-space reflections. Affects the area from the reflected material to the screen-space reflection).\nget_ssr_fade_in ::\n                  (Environment :< cls, Object :< cls) => cls -> IO Float\nget_ssr_fade_in cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_ssr_fade_in (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_ssr_fade_in\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_ssr_fade_in\n\n{-# NOINLINE bindEnvironment_get_ssr_fade_out #-}\n\n-- | The fade-out distance for screen-space reflections. Affects the area from the screen-space reflection to the \"global\" reflection.\nbindEnvironment_get_ssr_fade_out :: MethodBind\nbindEnvironment_get_ssr_fade_out\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_ssr_fade_out\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The fade-out distance for screen-space reflections. Affects the area from the screen-space reflection to the \"global\" reflection.\nget_ssr_fade_out ::\n                   (Environment :< cls, Object :< cls) => cls -> IO Float\nget_ssr_fade_out cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_ssr_fade_out\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_ssr_fade_out\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_ssr_fade_out\n\n{-# NOINLINE bindEnvironment_get_ssr_max_steps #-}\n\n-- | The maximum number of steps for screen-space reflections. Higher values are slower.\nbindEnvironment_get_ssr_max_steps :: MethodBind\nbindEnvironment_get_ssr_max_steps\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_ssr_max_steps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum number of steps for screen-space reflections. Higher values are slower.\nget_ssr_max_steps ::\n                    (Environment :< cls, Object :< cls) => cls -> IO Int\nget_ssr_max_steps cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_ssr_max_steps\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_ssr_max_steps\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Environment.get_ssr_max_steps\n\n{-# NOINLINE bindEnvironment_get_tonemap_auto_exposure #-}\n\n-- | If @true@, enables the tonemapping auto exposure mode of the scene renderer. If @true@, the renderer will automatically determine the exposure setting to adapt to the scene's illumination and the observed light.\nbindEnvironment_get_tonemap_auto_exposure :: MethodBind\nbindEnvironment_get_tonemap_auto_exposure\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_tonemap_auto_exposure\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables the tonemapping auto exposure mode of the scene renderer. If @true@, the renderer will automatically determine the exposure setting to adapt to the scene's illumination and the observed light.\nget_tonemap_auto_exposure ::\n                            (Environment :< cls, Object :< cls) => cls -> IO Bool\nget_tonemap_auto_exposure cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_tonemap_auto_exposure\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_tonemap_auto_exposure\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Environment.get_tonemap_auto_exposure\n\n{-# NOINLINE bindEnvironment_get_tonemap_auto_exposure_grey #-}\n\n-- | The scale of the auto exposure effect. Affects the intensity of auto exposure.\nbindEnvironment_get_tonemap_auto_exposure_grey :: MethodBind\nbindEnvironment_get_tonemap_auto_exposure_grey\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_tonemap_auto_exposure_grey\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The scale of the auto exposure effect. Affects the intensity of auto exposure.\nget_tonemap_auto_exposure_grey ::\n                                 (Environment :< cls, Object :< cls) => cls -> IO Float\nget_tonemap_auto_exposure_grey cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEnvironment_get_tonemap_auto_exposure_grey\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_tonemap_auto_exposure_grey\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_tonemap_auto_exposure_grey\n\n{-# NOINLINE bindEnvironment_get_tonemap_auto_exposure_max #-}\n\n-- | The maximum luminance value for the auto exposure.\nbindEnvironment_get_tonemap_auto_exposure_max :: MethodBind\nbindEnvironment_get_tonemap_auto_exposure_max\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_tonemap_auto_exposure_max\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum luminance value for the auto exposure.\nget_tonemap_auto_exposure_max ::\n                                (Environment :< cls, Object :< cls) => cls -> IO Float\nget_tonemap_auto_exposure_max cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEnvironment_get_tonemap_auto_exposure_max\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_tonemap_auto_exposure_max\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_tonemap_auto_exposure_max\n\n{-# NOINLINE bindEnvironment_get_tonemap_auto_exposure_min #-}\n\n-- | The minimum luminance value for the auto exposure.\nbindEnvironment_get_tonemap_auto_exposure_min :: MethodBind\nbindEnvironment_get_tonemap_auto_exposure_min\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_tonemap_auto_exposure_min\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum luminance value for the auto exposure.\nget_tonemap_auto_exposure_min ::\n                                (Environment :< cls, Object :< cls) => cls -> IO Float\nget_tonemap_auto_exposure_min cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEnvironment_get_tonemap_auto_exposure_min\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_tonemap_auto_exposure_min\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_tonemap_auto_exposure_min\n\n{-# NOINLINE bindEnvironment_get_tonemap_auto_exposure_speed #-}\n\n-- | The speed of the auto exposure effect. Affects the time needed for the camera to perform auto exposure.\nbindEnvironment_get_tonemap_auto_exposure_speed :: MethodBind\nbindEnvironment_get_tonemap_auto_exposure_speed\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_tonemap_auto_exposure_speed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The speed of the auto exposure effect. Affects the time needed for the camera to perform auto exposure.\nget_tonemap_auto_exposure_speed ::\n                                  (Environment :< cls, Object :< cls) => cls -> IO Float\nget_tonemap_auto_exposure_speed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEnvironment_get_tonemap_auto_exposure_speed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_tonemap_auto_exposure_speed\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_tonemap_auto_exposure_speed\n\n{-# NOINLINE bindEnvironment_get_tonemap_exposure #-}\n\n-- | The default exposure used for tonemapping.\nbindEnvironment_get_tonemap_exposure :: MethodBind\nbindEnvironment_get_tonemap_exposure\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_tonemap_exposure\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The default exposure used for tonemapping.\nget_tonemap_exposure ::\n                       (Environment :< cls, Object :< cls) => cls -> IO Float\nget_tonemap_exposure cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_tonemap_exposure\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_tonemap_exposure\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_tonemap_exposure\n\n{-# NOINLINE bindEnvironment_get_tonemap_white #-}\n\n-- | The white reference value for tonemapping. Only effective if the @tonemap_mode@ isn't set to @TONE_MAPPER_LINEAR@.\nbindEnvironment_get_tonemap_white :: MethodBind\nbindEnvironment_get_tonemap_white\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_tonemap_white\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The white reference value for tonemapping. Only effective if the @tonemap_mode@ isn't set to @TONE_MAPPER_LINEAR@.\nget_tonemap_white ::\n                    (Environment :< cls, Object :< cls) => cls -> IO Float\nget_tonemap_white cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_tonemap_white\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_tonemap_white\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Environment.get_tonemap_white\n\n{-# NOINLINE bindEnvironment_get_tonemapper #-}\n\n-- | The tonemapping mode to use. Tonemapping is the process that \"converts\" HDR values to be suitable for rendering on a LDR display. (Godot doesn't support rendering on HDR displays yet.)\nbindEnvironment_get_tonemapper :: MethodBind\nbindEnvironment_get_tonemapper\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"get_tonemapper\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The tonemapping mode to use. Tonemapping is the process that \"converts\" HDR values to be suitable for rendering on a LDR display. (Godot doesn't support rendering on HDR displays yet.)\nget_tonemapper ::\n                 (Environment :< cls, Object :< cls) => cls -> IO Int\nget_tonemapper cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_get_tonemapper (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"get_tonemapper\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Environment.get_tonemapper\n\n{-# NOINLINE bindEnvironment_is_adjustment_enabled #-}\n\n-- | If @true@, enables the @adjustment_*@ properties provided by this resource. If @false@, modifications to the @adjustment_*@ properties will have no effect on the rendered scene.\nbindEnvironment_is_adjustment_enabled :: MethodBind\nbindEnvironment_is_adjustment_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"is_adjustment_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables the @adjustment_*@ properties provided by this resource. If @false@, modifications to the @adjustment_*@ properties will have no effect on the rendered scene.\nis_adjustment_enabled ::\n                        (Environment :< cls, Object :< cls) => cls -> IO Bool\nis_adjustment_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_is_adjustment_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"is_adjustment_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Environment.is_adjustment_enabled\n\n{-# NOINLINE bindEnvironment_is_dof_blur_far_enabled #-}\n\n-- | If @true@, enables the depth-of-field far blur effect.\nbindEnvironment_is_dof_blur_far_enabled :: MethodBind\nbindEnvironment_is_dof_blur_far_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"is_dof_blur_far_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables the depth-of-field far blur effect.\nis_dof_blur_far_enabled ::\n                          (Environment :< cls, Object :< cls) => cls -> IO Bool\nis_dof_blur_far_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_is_dof_blur_far_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"is_dof_blur_far_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Environment.is_dof_blur_far_enabled\n\n{-# NOINLINE bindEnvironment_is_dof_blur_near_enabled #-}\n\n-- | If @true@, enables the depth-of-field near blur effect.\nbindEnvironment_is_dof_blur_near_enabled :: MethodBind\nbindEnvironment_is_dof_blur_near_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"is_dof_blur_near_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables the depth-of-field near blur effect.\nis_dof_blur_near_enabled ::\n                           (Environment :< cls, Object :< cls) => cls -> IO Bool\nis_dof_blur_near_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_is_dof_blur_near_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"is_dof_blur_near_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Environment.is_dof_blur_near_enabled\n\n{-# NOINLINE bindEnvironment_is_fog_depth_enabled #-}\n\n-- | If @true@, the depth fog effect is enabled. When enabled, fog will appear in the distance (relative to the camera).\nbindEnvironment_is_fog_depth_enabled :: MethodBind\nbindEnvironment_is_fog_depth_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"is_fog_depth_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the depth fog effect is enabled. When enabled, fog will appear in the distance (relative to the camera).\nis_fog_depth_enabled ::\n                       (Environment :< cls, Object :< cls) => cls -> IO Bool\nis_fog_depth_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_is_fog_depth_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"is_fog_depth_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Environment.is_fog_depth_enabled\n\n{-# NOINLINE bindEnvironment_is_fog_enabled #-}\n\n-- | If @true@, fog effects are enabled. @fog_height_enabled@ and/or @fog_depth_enabled@ must be set to @true@ to actually display fog.\nbindEnvironment_is_fog_enabled :: MethodBind\nbindEnvironment_is_fog_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"is_fog_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, fog effects are enabled. @fog_height_enabled@ and/or @fog_depth_enabled@ must be set to @true@ to actually display fog.\nis_fog_enabled ::\n                 (Environment :< cls, Object :< cls) => cls -> IO Bool\nis_fog_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_is_fog_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"is_fog_enabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Environment.is_fog_enabled\n\n{-# NOINLINE bindEnvironment_is_fog_height_enabled #-}\n\n-- | If @true@, the height fog effect is enabled. When enabled, fog will appear in a defined height range, regardless of the distance from the camera. This can be used to simulate \"deep water\" effects with a lower performance cost compared to a dedicated shader.\nbindEnvironment_is_fog_height_enabled :: MethodBind\nbindEnvironment_is_fog_height_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"is_fog_height_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the height fog effect is enabled. When enabled, fog will appear in a defined height range, regardless of the distance from the camera. This can be used to simulate \"deep water\" effects with a lower performance cost compared to a dedicated shader.\nis_fog_height_enabled ::\n                        (Environment :< cls, Object :< cls) => cls -> IO Bool\nis_fog_height_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_is_fog_height_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"is_fog_height_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Environment.is_fog_height_enabled\n\n{-# NOINLINE bindEnvironment_is_fog_transmit_enabled #-}\n\n-- | Enables fog's light transmission effect. If @true@, light will be more visible in the fog to simulate light scattering as in real life.\nbindEnvironment_is_fog_transmit_enabled :: MethodBind\nbindEnvironment_is_fog_transmit_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"is_fog_transmit_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables fog's light transmission effect. If @true@, light will be more visible in the fog to simulate light scattering as in real life.\nis_fog_transmit_enabled ::\n                          (Environment :< cls, Object :< cls) => cls -> IO Bool\nis_fog_transmit_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_is_fog_transmit_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"is_fog_transmit_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Environment.is_fog_transmit_enabled\n\n{-# NOINLINE bindEnvironment_is_glow_bicubic_upscale_enabled #-}\n\n-- | Smooths out the blockiness created by sampling higher levels, at the cost of performance.\n--   \t\t\t__Note:__ When using the GLES2 renderer, this is only available if the GPU supports the @GL_EXT_gpu_shader4@ extension.\nbindEnvironment_is_glow_bicubic_upscale_enabled :: MethodBind\nbindEnvironment_is_glow_bicubic_upscale_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"is_glow_bicubic_upscale_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Smooths out the blockiness created by sampling higher levels, at the cost of performance.\n--   \t\t\t__Note:__ When using the GLES2 renderer, this is only available if the GPU supports the @GL_EXT_gpu_shader4@ extension.\nis_glow_bicubic_upscale_enabled ::\n                                  (Environment :< cls, Object :< cls) => cls -> IO Bool\nis_glow_bicubic_upscale_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEnvironment_is_glow_bicubic_upscale_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"is_glow_bicubic_upscale_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Environment.is_glow_bicubic_upscale_enabled\n\n{-# NOINLINE bindEnvironment_is_glow_enabled #-}\n\n-- | If @true@, the glow effect is enabled.\nbindEnvironment_is_glow_enabled :: MethodBind\nbindEnvironment_is_glow_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"is_glow_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the glow effect is enabled.\nis_glow_enabled ::\n                  (Environment :< cls, Object :< cls) => cls -> IO Bool\nis_glow_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_is_glow_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"is_glow_enabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Environment.is_glow_enabled\n\n{-# NOINLINE bindEnvironment_is_glow_level_enabled #-}\n\n-- | Returns @true@ if the glow level @idx@ is specified, @false@ otherwise.\nbindEnvironment_is_glow_level_enabled :: MethodBind\nbindEnvironment_is_glow_level_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"is_glow_level_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the glow level @idx@ is specified, @false@ otherwise.\nis_glow_level_enabled ::\n                        (Environment :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_glow_level_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_is_glow_level_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"is_glow_level_enabled\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Environment.is_glow_level_enabled\n\n{-# NOINLINE bindEnvironment_is_ssao_enabled #-}\n\n-- | If @true@, the screen-space ambient occlusion effect is enabled. This darkens objects' corners and cavities to simulate ambient light not reaching the entire object as in real life. This works well for small, dynamic objects, but baked lighting or ambient occlusion textures will do a better job at displaying ambient occlusion on large static objects. This is a costly effect and should be disabled first when running into performance issues.\nbindEnvironment_is_ssao_enabled :: MethodBind\nbindEnvironment_is_ssao_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"is_ssao_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the screen-space ambient occlusion effect is enabled. This darkens objects' corners and cavities to simulate ambient light not reaching the entire object as in real life. This works well for small, dynamic objects, but baked lighting or ambient occlusion textures will do a better job at displaying ambient occlusion on large static objects. This is a costly effect and should be disabled first when running into performance issues.\nis_ssao_enabled ::\n                  (Environment :< cls, Object :< cls) => cls -> IO Bool\nis_ssao_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_is_ssao_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"is_ssao_enabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Environment.is_ssao_enabled\n\n{-# NOINLINE bindEnvironment_is_ssr_enabled #-}\n\n-- | If @true@, screen-space reflections are enabled. Screen-space reflections are more accurate than reflections from @GIProbe@s or @ReflectionProbe@s, but are slower and can't reflect surfaces occluded by others.\nbindEnvironment_is_ssr_enabled :: MethodBind\nbindEnvironment_is_ssr_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"is_ssr_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, screen-space reflections are enabled. Screen-space reflections are more accurate than reflections from @GIProbe@s or @ReflectionProbe@s, but are slower and can't reflect surfaces occluded by others.\nis_ssr_enabled ::\n                 (Environment :< cls, Object :< cls) => cls -> IO Bool\nis_ssr_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_is_ssr_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"is_ssr_enabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Environment.is_ssr_enabled\n\n{-# NOINLINE bindEnvironment_is_ssr_rough #-}\n\n-- | If @true@, screen-space reflections will take the material roughness into account.\nbindEnvironment_is_ssr_rough :: MethodBind\nbindEnvironment_is_ssr_rough\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"is_ssr_rough\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, screen-space reflections will take the material roughness into account.\nis_ssr_rough ::\n               (Environment :< cls, Object :< cls) => cls -> IO Bool\nis_ssr_rough cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_is_ssr_rough (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"is_ssr_rough\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Environment.is_ssr_rough\n\n{-# NOINLINE bindEnvironment_set_adjustment_brightness #-}\n\n-- | The global brightness value of the rendered scene. Effective only if @adjustment_enabled@ is @true@.\nbindEnvironment_set_adjustment_brightness :: MethodBind\nbindEnvironment_set_adjustment_brightness\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_adjustment_brightness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The global brightness value of the rendered scene. Effective only if @adjustment_enabled@ is @true@.\nset_adjustment_brightness ::\n                            (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_adjustment_brightness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_adjustment_brightness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_adjustment_brightness\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_adjustment_brightness\n\n{-# NOINLINE bindEnvironment_set_adjustment_color_correction #-}\n\n-- | Applies the provided @Texture@ resource to affect the global color aspect of the rendered scene. Effective only if @adjustment_enabled@ is @true@.\nbindEnvironment_set_adjustment_color_correction :: MethodBind\nbindEnvironment_set_adjustment_color_correction\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_adjustment_color_correction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies the provided @Texture@ resource to affect the global color aspect of the rendered scene. Effective only if @adjustment_enabled@ is @true@.\nset_adjustment_color_correction ::\n                                  (Environment :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_adjustment_color_correction cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEnvironment_set_adjustment_color_correction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_adjustment_color_correction\"\n           '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_adjustment_color_correction\n\n{-# NOINLINE bindEnvironment_set_adjustment_contrast #-}\n\n-- | The global contrast value of the rendered scene (default value is 1). Effective only if @adjustment_enabled@ is @true@.\nbindEnvironment_set_adjustment_contrast :: MethodBind\nbindEnvironment_set_adjustment_contrast\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_adjustment_contrast\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The global contrast value of the rendered scene (default value is 1). Effective only if @adjustment_enabled@ is @true@.\nset_adjustment_contrast ::\n                          (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_adjustment_contrast cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_adjustment_contrast\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_adjustment_contrast\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_adjustment_contrast\n\n{-# NOINLINE bindEnvironment_set_adjustment_enable #-}\n\n-- | If @true@, enables the @adjustment_*@ properties provided by this resource. If @false@, modifications to the @adjustment_*@ properties will have no effect on the rendered scene.\nbindEnvironment_set_adjustment_enable :: MethodBind\nbindEnvironment_set_adjustment_enable\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_adjustment_enable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables the @adjustment_*@ properties provided by this resource. If @false@, modifications to the @adjustment_*@ properties will have no effect on the rendered scene.\nset_adjustment_enable ::\n                        (Environment :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_adjustment_enable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_adjustment_enable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_adjustment_enable\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_adjustment_enable\n\n{-# NOINLINE bindEnvironment_set_adjustment_saturation #-}\n\n-- | The global color saturation value of the rendered scene (default value is 1). Effective only if @adjustment_enabled@ is @true@.\nbindEnvironment_set_adjustment_saturation :: MethodBind\nbindEnvironment_set_adjustment_saturation\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_adjustment_saturation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The global color saturation value of the rendered scene (default value is 1). Effective only if @adjustment_enabled@ is @true@.\nset_adjustment_saturation ::\n                            (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_adjustment_saturation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_adjustment_saturation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_adjustment_saturation\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_adjustment_saturation\n\n{-# NOINLINE bindEnvironment_set_ambient_light_color #-}\n\n-- | The ambient light's @Color@.\nbindEnvironment_set_ambient_light_color :: MethodBind\nbindEnvironment_set_ambient_light_color\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ambient_light_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ambient light's @Color@.\nset_ambient_light_color ::\n                          (Environment :< cls, Object :< cls) => cls -> Color -> IO ()\nset_ambient_light_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ambient_light_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ambient_light_color\" '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ambient_light_color\n\n{-# NOINLINE bindEnvironment_set_ambient_light_energy #-}\n\n-- | The ambient light's energy. The higher the value, the stronger the light.\nbindEnvironment_set_ambient_light_energy :: MethodBind\nbindEnvironment_set_ambient_light_energy\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ambient_light_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ambient light's energy. The higher the value, the stronger the light.\nset_ambient_light_energy ::\n                           (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_ambient_light_energy cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ambient_light_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ambient_light_energy\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ambient_light_energy\n\n{-# NOINLINE bindEnvironment_set_ambient_light_sky_contribution #-}\n\n-- | Defines the amount of light that the sky brings on the scene. A value of 0 means that the sky's light emission has no effect on the scene illumination, thus all ambient illumination is provided by the ambient light. On the contrary, a value of 1 means that all the light that affects the scene is provided by the sky, thus the ambient light parameter has no effect on the scene.\nbindEnvironment_set_ambient_light_sky_contribution :: MethodBind\nbindEnvironment_set_ambient_light_sky_contribution\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ambient_light_sky_contribution\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines the amount of light that the sky brings on the scene. A value of 0 means that the sky's light emission has no effect on the scene illumination, thus all ambient illumination is provided by the ambient light. On the contrary, a value of 1 means that all the light that affects the scene is provided by the sky, thus the ambient light parameter has no effect on the scene.\nset_ambient_light_sky_contribution ::\n                                     (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_ambient_light_sky_contribution cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEnvironment_set_ambient_light_sky_contribution\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment\n           \"set_ambient_light_sky_contribution\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Environment.set_ambient_light_sky_contribution\n\n{-# NOINLINE bindEnvironment_set_background #-}\n\n-- | The background mode. See @enum BGMode@ for possible values.\nbindEnvironment_set_background :: MethodBind\nbindEnvironment_set_background\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_background\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The background mode. See @enum BGMode@ for possible values.\nset_background ::\n                 (Environment :< cls, Object :< cls) => cls -> Int -> IO ()\nset_background cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_background (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_background\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_background\n\n{-# NOINLINE bindEnvironment_set_bg_color #-}\n\n-- | The @Color@ displayed for clear areas of the scene. Only effective when using the @BG_COLOR@ or @BG_COLOR_SKY@ background modes).\nbindEnvironment_set_bg_color :: MethodBind\nbindEnvironment_set_bg_color\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_bg_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Color@ displayed for clear areas of the scene. Only effective when using the @BG_COLOR@ or @BG_COLOR_SKY@ background modes).\nset_bg_color ::\n               (Environment :< cls, Object :< cls) => cls -> Color -> IO ()\nset_bg_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_bg_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_bg_color\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_bg_color\n\n{-# NOINLINE bindEnvironment_set_bg_energy #-}\n\n-- | The power of the light emitted by the background.\nbindEnvironment_set_bg_energy :: MethodBind\nbindEnvironment_set_bg_energy\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_bg_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The power of the light emitted by the background.\nset_bg_energy ::\n                (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_bg_energy cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_bg_energy (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_bg_energy\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_bg_energy\n\n{-# NOINLINE bindEnvironment_set_camera_feed_id #-}\n\n-- | The ID of the camera feed to show in the background.\nbindEnvironment_set_camera_feed_id :: MethodBind\nbindEnvironment_set_camera_feed_id\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_camera_feed_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ID of the camera feed to show in the background.\nset_camera_feed_id ::\n                     (Environment :< cls, Object :< cls) => cls -> Int -> IO ()\nset_camera_feed_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_camera_feed_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_camera_feed_id\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_camera_feed_id\n\n{-# NOINLINE bindEnvironment_set_canvas_max_layer #-}\n\n-- | The maximum layer ID to display. Only effective when using the @BG_CANVAS@ background mode.\nbindEnvironment_set_canvas_max_layer :: MethodBind\nbindEnvironment_set_canvas_max_layer\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_canvas_max_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum layer ID to display. Only effective when using the @BG_CANVAS@ background mode.\nset_canvas_max_layer ::\n                       (Environment :< cls, Object :< cls) => cls -> Int -> IO ()\nset_canvas_max_layer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_canvas_max_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_canvas_max_layer\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_canvas_max_layer\n\n{-# NOINLINE bindEnvironment_set_dof_blur_far_amount #-}\n\n-- | The amount of far blur for the depth-of-field effect.\nbindEnvironment_set_dof_blur_far_amount :: MethodBind\nbindEnvironment_set_dof_blur_far_amount\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_dof_blur_far_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount of far blur for the depth-of-field effect.\nset_dof_blur_far_amount ::\n                          (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_dof_blur_far_amount cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_dof_blur_far_amount\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_dof_blur_far_amount\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_dof_blur_far_amount\n\n{-# NOINLINE bindEnvironment_set_dof_blur_far_distance #-}\n\n-- | The distance from the camera where the far blur effect affects the rendering.\nbindEnvironment_set_dof_blur_far_distance :: MethodBind\nbindEnvironment_set_dof_blur_far_distance\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_dof_blur_far_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance from the camera where the far blur effect affects the rendering.\nset_dof_blur_far_distance ::\n                            (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_dof_blur_far_distance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_dof_blur_far_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_dof_blur_far_distance\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_dof_blur_far_distance\n\n{-# NOINLINE bindEnvironment_set_dof_blur_far_enabled #-}\n\n-- | If @true@, enables the depth-of-field far blur effect.\nbindEnvironment_set_dof_blur_far_enabled :: MethodBind\nbindEnvironment_set_dof_blur_far_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_dof_blur_far_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables the depth-of-field far blur effect.\nset_dof_blur_far_enabled ::\n                           (Environment :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_dof_blur_far_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_dof_blur_far_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_dof_blur_far_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_dof_blur_far_enabled\n\n{-# NOINLINE bindEnvironment_set_dof_blur_far_quality #-}\n\n-- | The depth-of-field far blur's quality. Higher values can mitigate the visible banding effect seen at higher strengths, but are much slower.\nbindEnvironment_set_dof_blur_far_quality :: MethodBind\nbindEnvironment_set_dof_blur_far_quality\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_dof_blur_far_quality\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The depth-of-field far blur's quality. Higher values can mitigate the visible banding effect seen at higher strengths, but are much slower.\nset_dof_blur_far_quality ::\n                           (Environment :< cls, Object :< cls) => cls -> Int -> IO ()\nset_dof_blur_far_quality cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_dof_blur_far_quality\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_dof_blur_far_quality\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_dof_blur_far_quality\n\n{-# NOINLINE bindEnvironment_set_dof_blur_far_transition #-}\n\n-- | The length of the transition between the no-blur area and far blur.\nbindEnvironment_set_dof_blur_far_transition :: MethodBind\nbindEnvironment_set_dof_blur_far_transition\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_dof_blur_far_transition\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The length of the transition between the no-blur area and far blur.\nset_dof_blur_far_transition ::\n                              (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_dof_blur_far_transition cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_dof_blur_far_transition\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_dof_blur_far_transition\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_dof_blur_far_transition\n\n{-# NOINLINE bindEnvironment_set_dof_blur_near_amount #-}\n\n-- | The amount of near blur for the depth-of-field effect.\nbindEnvironment_set_dof_blur_near_amount :: MethodBind\nbindEnvironment_set_dof_blur_near_amount\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_dof_blur_near_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount of near blur for the depth-of-field effect.\nset_dof_blur_near_amount ::\n                           (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_dof_blur_near_amount cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_dof_blur_near_amount\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_dof_blur_near_amount\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_dof_blur_near_amount\n\n{-# NOINLINE bindEnvironment_set_dof_blur_near_distance #-}\n\n-- | Distance from the camera where the near blur effect affects the rendering.\nbindEnvironment_set_dof_blur_near_distance :: MethodBind\nbindEnvironment_set_dof_blur_near_distance\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_dof_blur_near_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Distance from the camera where the near blur effect affects the rendering.\nset_dof_blur_near_distance ::\n                             (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_dof_blur_near_distance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_dof_blur_near_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_dof_blur_near_distance\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_dof_blur_near_distance\n\n{-# NOINLINE bindEnvironment_set_dof_blur_near_enabled #-}\n\n-- | If @true@, enables the depth-of-field near blur effect.\nbindEnvironment_set_dof_blur_near_enabled :: MethodBind\nbindEnvironment_set_dof_blur_near_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_dof_blur_near_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables the depth-of-field near blur effect.\nset_dof_blur_near_enabled ::\n                            (Environment :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_dof_blur_near_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_dof_blur_near_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_dof_blur_near_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_dof_blur_near_enabled\n\n{-# NOINLINE bindEnvironment_set_dof_blur_near_quality #-}\n\n-- | The depth-of-field near blur's quality. Higher values can mitigate the visible banding effect seen at higher strengths, but are much slower.\nbindEnvironment_set_dof_blur_near_quality :: MethodBind\nbindEnvironment_set_dof_blur_near_quality\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_dof_blur_near_quality\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The depth-of-field near blur's quality. Higher values can mitigate the visible banding effect seen at higher strengths, but are much slower.\nset_dof_blur_near_quality ::\n                            (Environment :< cls, Object :< cls) => cls -> Int -> IO ()\nset_dof_blur_near_quality cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_dof_blur_near_quality\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_dof_blur_near_quality\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_dof_blur_near_quality\n\n{-# NOINLINE bindEnvironment_set_dof_blur_near_transition #-}\n\n-- | The length of the transition between the near blur and no-blur area.\nbindEnvironment_set_dof_blur_near_transition :: MethodBind\nbindEnvironment_set_dof_blur_near_transition\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_dof_blur_near_transition\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The length of the transition between the near blur and no-blur area.\nset_dof_blur_near_transition ::\n                               (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_dof_blur_near_transition cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_dof_blur_near_transition\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_dof_blur_near_transition\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_dof_blur_near_transition\n\n{-# NOINLINE bindEnvironment_set_fog_color #-}\n\n-- | The fog's @Color@.\nbindEnvironment_set_fog_color :: MethodBind\nbindEnvironment_set_fog_color\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_fog_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The fog's @Color@.\nset_fog_color ::\n                (Environment :< cls, Object :< cls) => cls -> Color -> IO ()\nset_fog_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_fog_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_fog_color\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_fog_color\n\n{-# NOINLINE bindEnvironment_set_fog_depth_begin #-}\n\n-- | The fog's depth starting distance from the camera.\nbindEnvironment_set_fog_depth_begin :: MethodBind\nbindEnvironment_set_fog_depth_begin\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_fog_depth_begin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The fog's depth starting distance from the camera.\nset_fog_depth_begin ::\n                      (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_fog_depth_begin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_fog_depth_begin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_fog_depth_begin\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_fog_depth_begin\n\n{-# NOINLINE bindEnvironment_set_fog_depth_curve #-}\n\n-- | The fog depth's intensity curve. A number of presets are available in the __Inspector__ by right-clicking the curve.\nbindEnvironment_set_fog_depth_curve :: MethodBind\nbindEnvironment_set_fog_depth_curve\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_fog_depth_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The fog depth's intensity curve. A number of presets are available in the __Inspector__ by right-clicking the curve.\nset_fog_depth_curve ::\n                      (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_fog_depth_curve cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_fog_depth_curve\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_fog_depth_curve\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_fog_depth_curve\n\n{-# NOINLINE bindEnvironment_set_fog_depth_enabled #-}\n\n-- | If @true@, the depth fog effect is enabled. When enabled, fog will appear in the distance (relative to the camera).\nbindEnvironment_set_fog_depth_enabled :: MethodBind\nbindEnvironment_set_fog_depth_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_fog_depth_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the depth fog effect is enabled. When enabled, fog will appear in the distance (relative to the camera).\nset_fog_depth_enabled ::\n                        (Environment :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_fog_depth_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_fog_depth_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_fog_depth_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_fog_depth_enabled\n\n{-# NOINLINE bindEnvironment_set_fog_depth_end #-}\n\n-- | The fog's depth end distance from the camera. If this value is set to 0, it will be equal to the current camera's @Camera.far@ value.\nbindEnvironment_set_fog_depth_end :: MethodBind\nbindEnvironment_set_fog_depth_end\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_fog_depth_end\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The fog's depth end distance from the camera. If this value is set to 0, it will be equal to the current camera's @Camera.far@ value.\nset_fog_depth_end ::\n                    (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_fog_depth_end cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_fog_depth_end\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_fog_depth_end\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_fog_depth_end\n\n{-# NOINLINE bindEnvironment_set_fog_enabled #-}\n\n-- | If @true@, fog effects are enabled. @fog_height_enabled@ and/or @fog_depth_enabled@ must be set to @true@ to actually display fog.\nbindEnvironment_set_fog_enabled :: MethodBind\nbindEnvironment_set_fog_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_fog_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, fog effects are enabled. @fog_height_enabled@ and/or @fog_depth_enabled@ must be set to @true@ to actually display fog.\nset_fog_enabled ::\n                  (Environment :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_fog_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_fog_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_fog_enabled\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_fog_enabled\n\n{-# NOINLINE bindEnvironment_set_fog_height_curve #-}\n\n-- | The height fog's intensity. A number of presets are available in the __Inspector__ by right-clicking the curve.\nbindEnvironment_set_fog_height_curve :: MethodBind\nbindEnvironment_set_fog_height_curve\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_fog_height_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The height fog's intensity. A number of presets are available in the __Inspector__ by right-clicking the curve.\nset_fog_height_curve ::\n                       (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_fog_height_curve cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_fog_height_curve\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_fog_height_curve\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_fog_height_curve\n\n{-# NOINLINE bindEnvironment_set_fog_height_enabled #-}\n\n-- | If @true@, the height fog effect is enabled. When enabled, fog will appear in a defined height range, regardless of the distance from the camera. This can be used to simulate \"deep water\" effects with a lower performance cost compared to a dedicated shader.\nbindEnvironment_set_fog_height_enabled :: MethodBind\nbindEnvironment_set_fog_height_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_fog_height_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the height fog effect is enabled. When enabled, fog will appear in a defined height range, regardless of the distance from the camera. This can be used to simulate \"deep water\" effects with a lower performance cost compared to a dedicated shader.\nset_fog_height_enabled ::\n                         (Environment :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_fog_height_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_fog_height_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_fog_height_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_fog_height_enabled\n\n{-# NOINLINE bindEnvironment_set_fog_height_max #-}\n\n-- | The Y coordinate where the height fog will be the most intense. If this value is greater than @fog_height_min@, fog will be displayed from bottom to top. Otherwise, it will be displayed from top to bottom.\nbindEnvironment_set_fog_height_max :: MethodBind\nbindEnvironment_set_fog_height_max\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_fog_height_max\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The Y coordinate where the height fog will be the most intense. If this value is greater than @fog_height_min@, fog will be displayed from bottom to top. Otherwise, it will be displayed from top to bottom.\nset_fog_height_max ::\n                     (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_fog_height_max cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_fog_height_max\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_fog_height_max\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_fog_height_max\n\n{-# NOINLINE bindEnvironment_set_fog_height_min #-}\n\n-- | The Y coordinate where the height fog will be the least intense. If this value is greater than @fog_height_max@, fog will be displayed from top to bottom. Otherwise, it will be displayed from bottom to top.\nbindEnvironment_set_fog_height_min :: MethodBind\nbindEnvironment_set_fog_height_min\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_fog_height_min\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The Y coordinate where the height fog will be the least intense. If this value is greater than @fog_height_max@, fog will be displayed from top to bottom. Otherwise, it will be displayed from bottom to top.\nset_fog_height_min ::\n                     (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_fog_height_min cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_fog_height_min\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_fog_height_min\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_fog_height_min\n\n{-# NOINLINE bindEnvironment_set_fog_sun_amount #-}\n\n-- | The intensity of the depth fog color transition when looking towards the sun. The sun's direction is determined automatically using the DirectionalLight node in the scene.\nbindEnvironment_set_fog_sun_amount :: MethodBind\nbindEnvironment_set_fog_sun_amount\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_fog_sun_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The intensity of the depth fog color transition when looking towards the sun. The sun's direction is determined automatically using the DirectionalLight node in the scene.\nset_fog_sun_amount ::\n                     (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_fog_sun_amount cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_fog_sun_amount\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_fog_sun_amount\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_fog_sun_amount\n\n{-# NOINLINE bindEnvironment_set_fog_sun_color #-}\n\n-- | The depth fog's @Color@ when looking towards the sun.\nbindEnvironment_set_fog_sun_color :: MethodBind\nbindEnvironment_set_fog_sun_color\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_fog_sun_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The depth fog's @Color@ when looking towards the sun.\nset_fog_sun_color ::\n                    (Environment :< cls, Object :< cls) => cls -> Color -> IO ()\nset_fog_sun_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_fog_sun_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_fog_sun_color\" '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_fog_sun_color\n\n{-# NOINLINE bindEnvironment_set_fog_transmit_curve #-}\n\n-- | The intensity of the fog light transmittance effect. Amount of light that the fog transmits.\nbindEnvironment_set_fog_transmit_curve :: MethodBind\nbindEnvironment_set_fog_transmit_curve\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_fog_transmit_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The intensity of the fog light transmittance effect. Amount of light that the fog transmits.\nset_fog_transmit_curve ::\n                         (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_fog_transmit_curve cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_fog_transmit_curve\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_fog_transmit_curve\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_fog_transmit_curve\n\n{-# NOINLINE bindEnvironment_set_fog_transmit_enabled #-}\n\n-- | Enables fog's light transmission effect. If @true@, light will be more visible in the fog to simulate light scattering as in real life.\nbindEnvironment_set_fog_transmit_enabled :: MethodBind\nbindEnvironment_set_fog_transmit_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_fog_transmit_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables fog's light transmission effect. If @true@, light will be more visible in the fog to simulate light scattering as in real life.\nset_fog_transmit_enabled ::\n                           (Environment :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_fog_transmit_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_fog_transmit_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_fog_transmit_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_fog_transmit_enabled\n\n{-# NOINLINE bindEnvironment_set_glow_bicubic_upscale #-}\n\n-- | Smooths out the blockiness created by sampling higher levels, at the cost of performance.\n--   \t\t\t__Note:__ When using the GLES2 renderer, this is only available if the GPU supports the @GL_EXT_gpu_shader4@ extension.\nbindEnvironment_set_glow_bicubic_upscale :: MethodBind\nbindEnvironment_set_glow_bicubic_upscale\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_glow_bicubic_upscale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Smooths out the blockiness created by sampling higher levels, at the cost of performance.\n--   \t\t\t__Note:__ When using the GLES2 renderer, this is only available if the GPU supports the @GL_EXT_gpu_shader4@ extension.\nset_glow_bicubic_upscale ::\n                           (Environment :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_glow_bicubic_upscale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_glow_bicubic_upscale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_glow_bicubic_upscale\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_glow_bicubic_upscale\n\n{-# NOINLINE bindEnvironment_set_glow_blend_mode #-}\n\n-- | The glow blending mode.\nbindEnvironment_set_glow_blend_mode :: MethodBind\nbindEnvironment_set_glow_blend_mode\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_glow_blend_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The glow blending mode.\nset_glow_blend_mode ::\n                      (Environment :< cls, Object :< cls) => cls -> Int -> IO ()\nset_glow_blend_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_glow_blend_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_glow_blend_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_glow_blend_mode\n\n{-# NOINLINE bindEnvironment_set_glow_bloom #-}\n\n-- | The bloom's intensity. If set to a value higher than @0@, this will make glow visible in areas darker than the @glow_hdr_threshold@.\nbindEnvironment_set_glow_bloom :: MethodBind\nbindEnvironment_set_glow_bloom\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_glow_bloom\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The bloom's intensity. If set to a value higher than @0@, this will make glow visible in areas darker than the @glow_hdr_threshold@.\nset_glow_bloom ::\n                 (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_glow_bloom cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_glow_bloom (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_glow_bloom\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_glow_bloom\n\n{-# NOINLINE bindEnvironment_set_glow_enabled #-}\n\n-- | If @true@, the glow effect is enabled.\nbindEnvironment_set_glow_enabled :: MethodBind\nbindEnvironment_set_glow_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_glow_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the glow effect is enabled.\nset_glow_enabled ::\n                   (Environment :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_glow_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_glow_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_glow_enabled\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_glow_enabled\n\n{-# NOINLINE bindEnvironment_set_glow_hdr_bleed_scale #-}\n\n-- | The bleed scale of the HDR glow.\nbindEnvironment_set_glow_hdr_bleed_scale :: MethodBind\nbindEnvironment_set_glow_hdr_bleed_scale\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_glow_hdr_bleed_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The bleed scale of the HDR glow.\nset_glow_hdr_bleed_scale ::\n                           (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_glow_hdr_bleed_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_glow_hdr_bleed_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_glow_hdr_bleed_scale\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_glow_hdr_bleed_scale\n\n{-# NOINLINE bindEnvironment_set_glow_hdr_bleed_threshold #-}\n\n-- | The lower threshold of the HDR glow. When using the GLES2 renderer (which doesn't support HDR), this needs to be below @1.0@ for glow to be visible. A value of @0.9@ works well in this case.\nbindEnvironment_set_glow_hdr_bleed_threshold :: MethodBind\nbindEnvironment_set_glow_hdr_bleed_threshold\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_glow_hdr_bleed_threshold\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The lower threshold of the HDR glow. When using the GLES2 renderer (which doesn't support HDR), this needs to be below @1.0@ for glow to be visible. A value of @0.9@ works well in this case.\nset_glow_hdr_bleed_threshold ::\n                               (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_glow_hdr_bleed_threshold cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_glow_hdr_bleed_threshold\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_glow_hdr_bleed_threshold\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_glow_hdr_bleed_threshold\n\n{-# NOINLINE bindEnvironment_set_glow_hdr_luminance_cap #-}\n\n-- | The higher threshold of the HDR glow. Areas brighter than this threshold will be clamped for the purposes of the glow effect.\nbindEnvironment_set_glow_hdr_luminance_cap :: MethodBind\nbindEnvironment_set_glow_hdr_luminance_cap\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_glow_hdr_luminance_cap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The higher threshold of the HDR glow. Areas brighter than this threshold will be clamped for the purposes of the glow effect.\nset_glow_hdr_luminance_cap ::\n                             (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_glow_hdr_luminance_cap cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_glow_hdr_luminance_cap\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_glow_hdr_luminance_cap\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_glow_hdr_luminance_cap\n\n{-# NOINLINE bindEnvironment_set_glow_intensity #-}\n\n-- | The glow intensity. When using the GLES2 renderer, this should be increased to 1.5 to compensate for the lack of HDR rendering.\nbindEnvironment_set_glow_intensity :: MethodBind\nbindEnvironment_set_glow_intensity\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_glow_intensity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The glow intensity. When using the GLES2 renderer, this should be increased to 1.5 to compensate for the lack of HDR rendering.\nset_glow_intensity ::\n                     (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_glow_intensity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_glow_intensity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_glow_intensity\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_glow_intensity\n\n{-# NOINLINE bindEnvironment_set_glow_level #-}\n\n-- | Enables or disables the glow level at index @idx@. Each level relies on the previous level. This means that enabling higher glow levels will slow down the glow effect rendering, even if previous levels aren't enabled.\nbindEnvironment_set_glow_level :: MethodBind\nbindEnvironment_set_glow_level\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_glow_level\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables or disables the glow level at index @idx@. Each level relies on the previous level. This means that enabling higher glow levels will slow down the glow effect rendering, even if previous levels aren't enabled.\nset_glow_level ::\n                 (Environment :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_glow_level cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_glow_level (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_glow_level\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_glow_level\n\n{-# NOINLINE bindEnvironment_set_glow_strength #-}\n\n-- | The glow strength. When using the GLES2 renderer, this should be increased to 1.3 to compensate for the lack of HDR rendering.\nbindEnvironment_set_glow_strength :: MethodBind\nbindEnvironment_set_glow_strength\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_glow_strength\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The glow strength. When using the GLES2 renderer, this should be increased to 1.3 to compensate for the lack of HDR rendering.\nset_glow_strength ::\n                    (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_glow_strength cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_glow_strength\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_glow_strength\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_glow_strength\n\n{-# NOINLINE bindEnvironment_set_sky #-}\n\n-- | The @Sky@ resource defined as background.\nbindEnvironment_set_sky :: MethodBind\nbindEnvironment_set_sky\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_sky\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Sky@ resource defined as background.\nset_sky ::\n          (Environment :< cls, Object :< cls) => cls -> Sky -> IO ()\nset_sky cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_sky (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_sky\" '[Sky] (IO ()) where\n        nodeMethod = Godot.Core.Environment.set_sky\n\n{-# NOINLINE bindEnvironment_set_sky_custom_fov #-}\n\n-- | The @Sky@ resource's custom field of view.\nbindEnvironment_set_sky_custom_fov :: MethodBind\nbindEnvironment_set_sky_custom_fov\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_sky_custom_fov\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Sky@ resource's custom field of view.\nset_sky_custom_fov ::\n                     (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_sky_custom_fov cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_sky_custom_fov\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_sky_custom_fov\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_sky_custom_fov\n\n{-# NOINLINE bindEnvironment_set_sky_orientation #-}\n\n-- | The @Sky@ resource's rotation expressed as a @Basis@.\nbindEnvironment_set_sky_orientation :: MethodBind\nbindEnvironment_set_sky_orientation\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_sky_orientation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Sky@ resource's rotation expressed as a @Basis@.\nset_sky_orientation ::\n                      (Environment :< cls, Object :< cls) => cls -> Basis -> IO ()\nset_sky_orientation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_sky_orientation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_sky_orientation\" '[Basis]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_sky_orientation\n\n{-# NOINLINE bindEnvironment_set_sky_rotation #-}\n\n-- | The @Sky@ resource's rotation expressed as Euler angles in radians.\nbindEnvironment_set_sky_rotation :: MethodBind\nbindEnvironment_set_sky_rotation\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_sky_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Sky@ resource's rotation expressed as Euler angles in radians.\nset_sky_rotation ::\n                   (Environment :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_sky_rotation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_sky_rotation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_sky_rotation\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_sky_rotation\n\n{-# NOINLINE bindEnvironment_set_sky_rotation_degrees #-}\n\n-- | The @Sky@ resource's rotation expressed as Euler angles in degrees.\nbindEnvironment_set_sky_rotation_degrees :: MethodBind\nbindEnvironment_set_sky_rotation_degrees\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_sky_rotation_degrees\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Sky@ resource's rotation expressed as Euler angles in degrees.\nset_sky_rotation_degrees ::\n                           (Environment :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_sky_rotation_degrees cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_sky_rotation_degrees\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_sky_rotation_degrees\"\n           '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_sky_rotation_degrees\n\n{-# NOINLINE bindEnvironment_set_ssao_ao_channel_affect #-}\n\n-- | The screen-space ambient occlusion intensity on materials that have an AO texture defined. Values higher than @0@ will make the SSAO effect visible in areas darkened by AO textures.\nbindEnvironment_set_ssao_ao_channel_affect :: MethodBind\nbindEnvironment_set_ssao_ao_channel_affect\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssao_ao_channel_affect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The screen-space ambient occlusion intensity on materials that have an AO texture defined. Values higher than @0@ will make the SSAO effect visible in areas darkened by AO textures.\nset_ssao_ao_channel_affect ::\n                             (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_ssao_ao_channel_affect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ssao_ao_channel_affect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ssao_ao_channel_affect\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ssao_ao_channel_affect\n\n{-# NOINLINE bindEnvironment_set_ssao_bias #-}\n\n-- | The screen-space ambient occlusion bias. This should be kept high enough to prevent \"smooth\" curves from being affected by ambient occlusion.\nbindEnvironment_set_ssao_bias :: MethodBind\nbindEnvironment_set_ssao_bias\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssao_bias\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The screen-space ambient occlusion bias. This should be kept high enough to prevent \"smooth\" curves from being affected by ambient occlusion.\nset_ssao_bias ::\n                (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_ssao_bias cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ssao_bias (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ssao_bias\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ssao_bias\n\n{-# NOINLINE bindEnvironment_set_ssao_blur #-}\n\n-- | The screen-space ambient occlusion blur quality. See @enum SSAOBlur@ for possible values.\nbindEnvironment_set_ssao_blur :: MethodBind\nbindEnvironment_set_ssao_blur\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssao_blur\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The screen-space ambient occlusion blur quality. See @enum SSAOBlur@ for possible values.\nset_ssao_blur ::\n                (Environment :< cls, Object :< cls) => cls -> Int -> IO ()\nset_ssao_blur cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ssao_blur (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ssao_blur\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ssao_blur\n\n{-# NOINLINE bindEnvironment_set_ssao_color #-}\n\n-- | The screen-space ambient occlusion color.\nbindEnvironment_set_ssao_color :: MethodBind\nbindEnvironment_set_ssao_color\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssao_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The screen-space ambient occlusion color.\nset_ssao_color ::\n                 (Environment :< cls, Object :< cls) => cls -> Color -> IO ()\nset_ssao_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ssao_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ssao_color\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ssao_color\n\n{-# NOINLINE bindEnvironment_set_ssao_direct_light_affect #-}\n\n-- | The screen-space ambient occlusion intensity in direct light. In real life, ambient occlusion only applies to indirect light, which means its effects can't be seen in direct light. Values higher than @0@ will make the SSAO effect visible in direct light.\nbindEnvironment_set_ssao_direct_light_affect :: MethodBind\nbindEnvironment_set_ssao_direct_light_affect\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssao_direct_light_affect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The screen-space ambient occlusion intensity in direct light. In real life, ambient occlusion only applies to indirect light, which means its effects can't be seen in direct light. Values higher than @0@ will make the SSAO effect visible in direct light.\nset_ssao_direct_light_affect ::\n                               (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_ssao_direct_light_affect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ssao_direct_light_affect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ssao_direct_light_affect\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ssao_direct_light_affect\n\n{-# NOINLINE bindEnvironment_set_ssao_edge_sharpness #-}\n\n-- | The screen-space ambient occlusion edge sharpness.\nbindEnvironment_set_ssao_edge_sharpness :: MethodBind\nbindEnvironment_set_ssao_edge_sharpness\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssao_edge_sharpness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The screen-space ambient occlusion edge sharpness.\nset_ssao_edge_sharpness ::\n                          (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_ssao_edge_sharpness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ssao_edge_sharpness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ssao_edge_sharpness\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ssao_edge_sharpness\n\n{-# NOINLINE bindEnvironment_set_ssao_enabled #-}\n\n-- | If @true@, the screen-space ambient occlusion effect is enabled. This darkens objects' corners and cavities to simulate ambient light not reaching the entire object as in real life. This works well for small, dynamic objects, but baked lighting or ambient occlusion textures will do a better job at displaying ambient occlusion on large static objects. This is a costly effect and should be disabled first when running into performance issues.\nbindEnvironment_set_ssao_enabled :: MethodBind\nbindEnvironment_set_ssao_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssao_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the screen-space ambient occlusion effect is enabled. This darkens objects' corners and cavities to simulate ambient light not reaching the entire object as in real life. This works well for small, dynamic objects, but baked lighting or ambient occlusion textures will do a better job at displaying ambient occlusion on large static objects. This is a costly effect and should be disabled first when running into performance issues.\nset_ssao_enabled ::\n                   (Environment :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_ssao_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ssao_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ssao_enabled\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ssao_enabled\n\n{-# NOINLINE bindEnvironment_set_ssao_intensity #-}\n\n-- | The primary screen-space ambient occlusion intensity. See also @ssao_radius@.\nbindEnvironment_set_ssao_intensity :: MethodBind\nbindEnvironment_set_ssao_intensity\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssao_intensity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The primary screen-space ambient occlusion intensity. See also @ssao_radius@.\nset_ssao_intensity ::\n                     (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_ssao_intensity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ssao_intensity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ssao_intensity\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ssao_intensity\n\n{-# NOINLINE bindEnvironment_set_ssao_intensity2 #-}\n\n-- | The secondary screen-space ambient occlusion intensity. See also @ssao_radius2@.\nbindEnvironment_set_ssao_intensity2 :: MethodBind\nbindEnvironment_set_ssao_intensity2\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssao_intensity2\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The secondary screen-space ambient occlusion intensity. See also @ssao_radius2@.\nset_ssao_intensity2 ::\n                      (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_ssao_intensity2 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ssao_intensity2\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ssao_intensity2\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ssao_intensity2\n\n{-# NOINLINE bindEnvironment_set_ssao_quality #-}\n\n-- | The screen-space ambient occlusion quality. Higher qualities will make better use of small objects for ambient occlusion, but are slower.\nbindEnvironment_set_ssao_quality :: MethodBind\nbindEnvironment_set_ssao_quality\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssao_quality\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The screen-space ambient occlusion quality. Higher qualities will make better use of small objects for ambient occlusion, but are slower.\nset_ssao_quality ::\n                   (Environment :< cls, Object :< cls) => cls -> Int -> IO ()\nset_ssao_quality cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ssao_quality\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ssao_quality\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ssao_quality\n\n{-# NOINLINE bindEnvironment_set_ssao_radius #-}\n\n-- | The primary screen-space ambient occlusion radius.\nbindEnvironment_set_ssao_radius :: MethodBind\nbindEnvironment_set_ssao_radius\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssao_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The primary screen-space ambient occlusion radius.\nset_ssao_radius ::\n                  (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_ssao_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ssao_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ssao_radius\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ssao_radius\n\n{-# NOINLINE bindEnvironment_set_ssao_radius2 #-}\n\n-- | The secondary screen-space ambient occlusion radius. If set to a value higher than @0@, enables the secondary screen-space ambient occlusion effect which can be used to improve the effect's appearance (at the cost of performance).\nbindEnvironment_set_ssao_radius2 :: MethodBind\nbindEnvironment_set_ssao_radius2\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssao_radius2\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The secondary screen-space ambient occlusion radius. If set to a value higher than @0@, enables the secondary screen-space ambient occlusion effect which can be used to improve the effect's appearance (at the cost of performance).\nset_ssao_radius2 ::\n                   (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_ssao_radius2 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ssao_radius2\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ssao_radius2\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ssao_radius2\n\n{-# NOINLINE bindEnvironment_set_ssr_depth_tolerance #-}\n\n-- | The depth tolerance for screen-space reflections.\nbindEnvironment_set_ssr_depth_tolerance :: MethodBind\nbindEnvironment_set_ssr_depth_tolerance\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssr_depth_tolerance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The depth tolerance for screen-space reflections.\nset_ssr_depth_tolerance ::\n                          (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_ssr_depth_tolerance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ssr_depth_tolerance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ssr_depth_tolerance\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ssr_depth_tolerance\n\n{-# NOINLINE bindEnvironment_set_ssr_enabled #-}\n\n-- | If @true@, screen-space reflections are enabled. Screen-space reflections are more accurate than reflections from @GIProbe@s or @ReflectionProbe@s, but are slower and can't reflect surfaces occluded by others.\nbindEnvironment_set_ssr_enabled :: MethodBind\nbindEnvironment_set_ssr_enabled\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssr_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, screen-space reflections are enabled. Screen-space reflections are more accurate than reflections from @GIProbe@s or @ReflectionProbe@s, but are slower and can't reflect surfaces occluded by others.\nset_ssr_enabled ::\n                  (Environment :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_ssr_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ssr_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ssr_enabled\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ssr_enabled\n\n{-# NOINLINE bindEnvironment_set_ssr_fade_in #-}\n\n-- | The fade-in distance for screen-space reflections. Affects the area from the reflected material to the screen-space reflection).\nbindEnvironment_set_ssr_fade_in :: MethodBind\nbindEnvironment_set_ssr_fade_in\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssr_fade_in\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The fade-in distance for screen-space reflections. Affects the area from the reflected material to the screen-space reflection).\nset_ssr_fade_in ::\n                  (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_ssr_fade_in cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ssr_fade_in (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ssr_fade_in\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ssr_fade_in\n\n{-# NOINLINE bindEnvironment_set_ssr_fade_out #-}\n\n-- | The fade-out distance for screen-space reflections. Affects the area from the screen-space reflection to the \"global\" reflection.\nbindEnvironment_set_ssr_fade_out :: MethodBind\nbindEnvironment_set_ssr_fade_out\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssr_fade_out\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The fade-out distance for screen-space reflections. Affects the area from the screen-space reflection to the \"global\" reflection.\nset_ssr_fade_out ::\n                   (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_ssr_fade_out cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ssr_fade_out\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ssr_fade_out\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ssr_fade_out\n\n{-# NOINLINE bindEnvironment_set_ssr_max_steps #-}\n\n-- | The maximum number of steps for screen-space reflections. Higher values are slower.\nbindEnvironment_set_ssr_max_steps :: MethodBind\nbindEnvironment_set_ssr_max_steps\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssr_max_steps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum number of steps for screen-space reflections. Higher values are slower.\nset_ssr_max_steps ::\n                    (Environment :< cls, Object :< cls) => cls -> Int -> IO ()\nset_ssr_max_steps cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ssr_max_steps\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ssr_max_steps\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ssr_max_steps\n\n{-# NOINLINE bindEnvironment_set_ssr_rough #-}\n\n-- | If @true@, screen-space reflections will take the material roughness into account.\nbindEnvironment_set_ssr_rough :: MethodBind\nbindEnvironment_set_ssr_rough\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssr_rough\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, screen-space reflections will take the material roughness into account.\nset_ssr_rough ::\n                (Environment :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_ssr_rough cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_ssr_rough (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_ssr_rough\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_ssr_rough\n\n{-# NOINLINE bindEnvironment_set_tonemap_auto_exposure #-}\n\n-- | If @true@, enables the tonemapping auto exposure mode of the scene renderer. If @true@, the renderer will automatically determine the exposure setting to adapt to the scene's illumination and the observed light.\nbindEnvironment_set_tonemap_auto_exposure :: MethodBind\nbindEnvironment_set_tonemap_auto_exposure\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_tonemap_auto_exposure\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables the tonemapping auto exposure mode of the scene renderer. If @true@, the renderer will automatically determine the exposure setting to adapt to the scene's illumination and the observed light.\nset_tonemap_auto_exposure ::\n                            (Environment :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_tonemap_auto_exposure cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_tonemap_auto_exposure\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_tonemap_auto_exposure\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_tonemap_auto_exposure\n\n{-# NOINLINE bindEnvironment_set_tonemap_auto_exposure_grey #-}\n\n-- | The scale of the auto exposure effect. Affects the intensity of auto exposure.\nbindEnvironment_set_tonemap_auto_exposure_grey :: MethodBind\nbindEnvironment_set_tonemap_auto_exposure_grey\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_tonemap_auto_exposure_grey\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The scale of the auto exposure effect. Affects the intensity of auto exposure.\nset_tonemap_auto_exposure_grey ::\n                                 (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_tonemap_auto_exposure_grey cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEnvironment_set_tonemap_auto_exposure_grey\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_tonemap_auto_exposure_grey\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_tonemap_auto_exposure_grey\n\n{-# NOINLINE bindEnvironment_set_tonemap_auto_exposure_max #-}\n\n-- | The maximum luminance value for the auto exposure.\nbindEnvironment_set_tonemap_auto_exposure_max :: MethodBind\nbindEnvironment_set_tonemap_auto_exposure_max\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_tonemap_auto_exposure_max\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum luminance value for the auto exposure.\nset_tonemap_auto_exposure_max ::\n                                (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_tonemap_auto_exposure_max cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEnvironment_set_tonemap_auto_exposure_max\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_tonemap_auto_exposure_max\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_tonemap_auto_exposure_max\n\n{-# NOINLINE bindEnvironment_set_tonemap_auto_exposure_min #-}\n\n-- | The minimum luminance value for the auto exposure.\nbindEnvironment_set_tonemap_auto_exposure_min :: MethodBind\nbindEnvironment_set_tonemap_auto_exposure_min\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_tonemap_auto_exposure_min\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum luminance value for the auto exposure.\nset_tonemap_auto_exposure_min ::\n                                (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_tonemap_auto_exposure_min cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEnvironment_set_tonemap_auto_exposure_min\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_tonemap_auto_exposure_min\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_tonemap_auto_exposure_min\n\n{-# NOINLINE bindEnvironment_set_tonemap_auto_exposure_speed #-}\n\n-- | The speed of the auto exposure effect. Affects the time needed for the camera to perform auto exposure.\nbindEnvironment_set_tonemap_auto_exposure_speed :: MethodBind\nbindEnvironment_set_tonemap_auto_exposure_speed\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_tonemap_auto_exposure_speed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The speed of the auto exposure effect. Affects the time needed for the camera to perform auto exposure.\nset_tonemap_auto_exposure_speed ::\n                                  (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_tonemap_auto_exposure_speed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEnvironment_set_tonemap_auto_exposure_speed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_tonemap_auto_exposure_speed\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_tonemap_auto_exposure_speed\n\n{-# NOINLINE bindEnvironment_set_tonemap_exposure #-}\n\n-- | The default exposure used for tonemapping.\nbindEnvironment_set_tonemap_exposure :: MethodBind\nbindEnvironment_set_tonemap_exposure\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_tonemap_exposure\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The default exposure used for tonemapping.\nset_tonemap_exposure ::\n                       (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_tonemap_exposure cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_tonemap_exposure\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_tonemap_exposure\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_tonemap_exposure\n\n{-# NOINLINE bindEnvironment_set_tonemap_white #-}\n\n-- | The white reference value for tonemapping. Only effective if the @tonemap_mode@ isn't set to @TONE_MAPPER_LINEAR@.\nbindEnvironment_set_tonemap_white :: MethodBind\nbindEnvironment_set_tonemap_white\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_tonemap_white\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The white reference value for tonemapping. Only effective if the @tonemap_mode@ isn't set to @TONE_MAPPER_LINEAR@.\nset_tonemap_white ::\n                    (Environment :< cls, Object :< cls) => cls -> Float -> IO ()\nset_tonemap_white cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_tonemap_white\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_tonemap_white\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_tonemap_white\n\n{-# NOINLINE bindEnvironment_set_tonemapper #-}\n\n-- | The tonemapping mode to use. Tonemapping is the process that \"converts\" HDR values to be suitable for rendering on a LDR display. (Godot doesn't support rendering on HDR displays yet.)\nbindEnvironment_set_tonemapper :: MethodBind\nbindEnvironment_set_tonemapper\n  = unsafePerformIO $\n      withCString \"Environment\" $\n        \\ clsNamePtr ->\n          withCString \"set_tonemapper\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The tonemapping mode to use. Tonemapping is the process that \"converts\" HDR values to be suitable for rendering on a LDR display. (Godot doesn't support rendering on HDR displays yet.)\nset_tonemapper ::\n                 (Environment :< cls, Object :< cls) => cls -> Int -> IO ()\nset_tonemapper cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEnvironment_set_tonemapper (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Environment \"set_tonemapper\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Environment.set_tonemapper"
  },
  {
    "path": "src/Godot/Core/Expression.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Expression\n       (Godot.Core.Expression.execute,\n        Godot.Core.Expression.get_error_text,\n        Godot.Core.Expression.has_execute_failed,\n        Godot.Core.Expression.parse)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindExpression_execute #-}\n\n-- | Executes the expression that was previously parsed by @method parse@ and returns the result. Before you use the returned object, you should check if the method failed by calling @method has_execute_failed@.\n--   \t\t\t\tIf you defined input variables in @method parse@, you can specify their values in the inputs array, in the same order.\nbindExpression_execute :: MethodBind\nbindExpression_execute\n  = unsafePerformIO $\n      withCString \"Expression\" $\n        \\ clsNamePtr ->\n          withCString \"execute\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Executes the expression that was previously parsed by @method parse@ and returns the result. Before you use the returned object, you should check if the method failed by calling @method has_execute_failed@.\n--   \t\t\t\tIf you defined input variables in @method parse@, you can specify their values in the inputs array, in the same order.\nexecute ::\n          (Expression :< cls, Object :< cls) =>\n          cls -> Maybe Array -> Maybe Object -> Maybe Bool -> IO GodotVariant\nexecute cls arg1 arg2 arg3\n  = withVariantArray\n      [defaultedVariant VariantArray V.empty arg1,\n       maybe VariantNil toVariant arg2,\n       maybe (VariantBool True) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindExpression_execute (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Expression \"execute\"\n           '[Maybe Array, Maybe Object, Maybe Bool]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Expression.execute\n\n{-# NOINLINE bindExpression_get_error_text #-}\n\n-- | Returns the error text if @method parse@ has failed.\nbindExpression_get_error_text :: MethodBind\nbindExpression_get_error_text\n  = unsafePerformIO $\n      withCString \"Expression\" $\n        \\ clsNamePtr ->\n          withCString \"get_error_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the error text if @method parse@ has failed.\nget_error_text ::\n                 (Expression :< cls, Object :< cls) => cls -> IO GodotString\nget_error_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindExpression_get_error_text (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Expression \"get_error_text\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Expression.get_error_text\n\n{-# NOINLINE bindExpression_has_execute_failed #-}\n\n-- | Returns @true@ if @method execute@ has failed.\nbindExpression_has_execute_failed :: MethodBind\nbindExpression_has_execute_failed\n  = unsafePerformIO $\n      withCString \"Expression\" $\n        \\ clsNamePtr ->\n          withCString \"has_execute_failed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if @method execute@ has failed.\nhas_execute_failed ::\n                     (Expression :< cls, Object :< cls) => cls -> IO Bool\nhas_execute_failed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindExpression_has_execute_failed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Expression \"has_execute_failed\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Expression.has_execute_failed\n\n{-# NOINLINE bindExpression_parse #-}\n\n-- | Parses the expression and returns an @enum Error@ code.\n--   \t\t\t\tYou can optionally specify names of variables that may appear in the expression with @input_names@, so that you can bind them when it gets executed.\nbindExpression_parse :: MethodBind\nbindExpression_parse\n  = unsafePerformIO $\n      withCString \"Expression\" $\n        \\ clsNamePtr ->\n          withCString \"parse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Parses the expression and returns an @enum Error@ code.\n--   \t\t\t\tYou can optionally specify names of variables that may appear in the expression with @input_names@, so that you can bind them when it gets executed.\nparse ::\n        (Expression :< cls, Object :< cls) =>\n        cls -> GodotString -> Maybe PoolStringArray -> IO Int\nparse cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1,\n       defaultedVariant VariantPoolStringArray V.empty arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindExpression_parse (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Expression \"parse\"\n           '[GodotString, Maybe PoolStringArray]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Expression.parse"
  },
  {
    "path": "src/Godot/Core/File.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.File\n       (Godot.Core.File._COMPRESSION_DEFLATE, Godot.Core.File._READ,\n        Godot.Core.File._WRITE, Godot.Core.File._WRITE_READ,\n        Godot.Core.File._READ_WRITE, Godot.Core.File._COMPRESSION_FASTLZ,\n        Godot.Core.File._COMPRESSION_GZIP,\n        Godot.Core.File._COMPRESSION_ZSTD, Godot.Core.File.get_endian_swap,\n        Godot.Core.File.set_endian_swap, Godot.Core.File.close,\n        Godot.Core.File.eof_reached, Godot.Core.File.file_exists,\n        Godot.Core.File.get_16, Godot.Core.File.get_32,\n        Godot.Core.File.get_64, Godot.Core.File.get_8,\n        Godot.Core.File.get_as_text, Godot.Core.File.get_buffer,\n        Godot.Core.File.get_csv_line, Godot.Core.File.get_double,\n        Godot.Core.File.get_error, Godot.Core.File.get_float,\n        Godot.Core.File.get_len, Godot.Core.File.get_line,\n        Godot.Core.File.get_md5, Godot.Core.File.get_modified_time,\n        Godot.Core.File.get_pascal_string, Godot.Core.File.get_path,\n        Godot.Core.File.get_path_absolute, Godot.Core.File.get_position,\n        Godot.Core.File.get_real, Godot.Core.File.get_sha256,\n        Godot.Core.File.get_var, Godot.Core.File.is_open,\n        Godot.Core.File.open, Godot.Core.File.open_compressed,\n        Godot.Core.File.open_encrypted,\n        Godot.Core.File.open_encrypted_with_pass, Godot.Core.File.seek,\n        Godot.Core.File.seek_end, Godot.Core.File.store_16,\n        Godot.Core.File.store_32, Godot.Core.File.store_64,\n        Godot.Core.File.store_8, Godot.Core.File.store_buffer,\n        Godot.Core.File.store_csv_line, Godot.Core.File.store_double,\n        Godot.Core.File.store_float, Godot.Core.File.store_line,\n        Godot.Core.File.store_pascal_string, Godot.Core.File.store_real,\n        Godot.Core.File.store_string, Godot.Core.File.store_var)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n_COMPRESSION_DEFLATE :: Int\n_COMPRESSION_DEFLATE = 1\n\n_READ :: Int\n_READ = 1\n\n_WRITE :: Int\n_WRITE = 2\n\n_WRITE_READ :: Int\n_WRITE_READ = 7\n\n_READ_WRITE :: Int\n_READ_WRITE = 3\n\n_COMPRESSION_FASTLZ :: Int\n_COMPRESSION_FASTLZ = 0\n\n_COMPRESSION_GZIP :: Int\n_COMPRESSION_GZIP = 3\n\n_COMPRESSION_ZSTD :: Int\n_COMPRESSION_ZSTD = 2\n\n{-# NOINLINE bindFile_get_endian_swap #-}\n\n-- | If @true@, the file's endianness is swapped. Use this if you're dealing with files written on big-endian machines.\n--   \t\t\t__Note:__ This is about the file format, not CPU type. This is always reset to @false@ whenever you open the file.\nbindFile_get_endian_swap :: MethodBind\nbindFile_get_endian_swap\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_endian_swap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the file's endianness is swapped. Use this if you're dealing with files written on big-endian machines.\n--   \t\t\t__Note:__ This is about the file format, not CPU type. This is always reset to @false@ whenever you open the file.\nget_endian_swap :: (File :< cls, Object :< cls) => cls -> IO Bool\nget_endian_swap cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_endian_swap (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_endian_swap\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.File.get_endian_swap\n\n{-# NOINLINE bindFile_set_endian_swap #-}\n\n-- | If @true@, the file's endianness is swapped. Use this if you're dealing with files written on big-endian machines.\n--   \t\t\t__Note:__ This is about the file format, not CPU type. This is always reset to @false@ whenever you open the file.\nbindFile_set_endian_swap :: MethodBind\nbindFile_set_endian_swap\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"set_endian_swap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the file's endianness is swapped. Use this if you're dealing with files written on big-endian machines.\n--   \t\t\t__Note:__ This is about the file format, not CPU type. This is always reset to @false@ whenever you open the file.\nset_endian_swap ::\n                  (File :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_endian_swap cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_set_endian_swap (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"set_endian_swap\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.File.set_endian_swap\n\ninstance NodeProperty File \"endian_swap\" Bool 'False where\n        nodeProperty\n          = (get_endian_swap, wrapDroppingSetter set_endian_swap, Nothing)\n\n{-# NOINLINE bindFile_close #-}\n\n-- | Closes the currently opened file.\nbindFile_close :: MethodBind\nbindFile_close\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"close\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Closes the currently opened file.\nclose :: (File :< cls, Object :< cls) => cls -> IO ()\nclose cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_close (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"close\" '[] (IO ()) where\n        nodeMethod = Godot.Core.File.close\n\n{-# NOINLINE bindFile_eof_reached #-}\n\n-- | Returns @true@ if the file cursor has read past the end of the file.\n--   \t\t\t\t__Note:__ This function will still return @false@ while at the end of the file and only activates when reading past it. This can be confusing but it conforms to how low-level file access works in all operating systems. There is always @method get_len@ and @method get_position@ to implement a custom logic.\nbindFile_eof_reached :: MethodBind\nbindFile_eof_reached\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"eof_reached\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the file cursor has read past the end of the file.\n--   \t\t\t\t__Note:__ This function will still return @false@ while at the end of the file and only activates when reading past it. This can be confusing but it conforms to how low-level file access works in all operating systems. There is always @method get_len@ and @method get_position@ to implement a custom logic.\neof_reached :: (File :< cls, Object :< cls) => cls -> IO Bool\neof_reached cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_eof_reached (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"eof_reached\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.File.eof_reached\n\n{-# NOINLINE bindFile_file_exists #-}\n\n-- | Returns @true@ if the file exists in the given path.\n--   \t\t\t\t__Note:__ Many resources types are imported (e.g. textures or sound files), and that their source asset will not be included in the exported game, as only the imported version is used (in the @res://.import@ folder). To check for the existence of such resources while taking into account the remapping to their imported location, use @method ResourceLoader.exists@. Typically, using @File.file_exists@ on an imported resource would work while you are developing in the editor (the source asset is present in @res://@, but fail when exported).\nbindFile_file_exists :: MethodBind\nbindFile_file_exists\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"file_exists\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the file exists in the given path.\n--   \t\t\t\t__Note:__ Many resources types are imported (e.g. textures or sound files), and that their source asset will not be included in the exported game, as only the imported version is used (in the @res://.import@ folder). To check for the existence of such resources while taking into account the remapping to their imported location, use @method ResourceLoader.exists@. Typically, using @File.file_exists@ on an imported resource would work while you are developing in the editor (the source asset is present in @res://@, but fail when exported).\nfile_exists ::\n              (File :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nfile_exists cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_file_exists (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"file_exists\" '[GodotString] (IO Bool)\n         where\n        nodeMethod = Godot.Core.File.file_exists\n\n{-# NOINLINE bindFile_get_16 #-}\n\n-- | Returns the next 16 bits from the file as an integer. See @method store_16@ for details on what values can be stored and retrieved this way.\nbindFile_get_16 :: MethodBind\nbindFile_get_16\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_16\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the next 16 bits from the file as an integer. See @method store_16@ for details on what values can be stored and retrieved this way.\nget_16 :: (File :< cls, Object :< cls) => cls -> IO Int\nget_16 cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_16 (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_16\" '[] (IO Int) where\n        nodeMethod = Godot.Core.File.get_16\n\n{-# NOINLINE bindFile_get_32 #-}\n\n-- | Returns the next 32 bits from the file as an integer. See @method store_32@ for details on what values can be stored and retrieved this way.\nbindFile_get_32 :: MethodBind\nbindFile_get_32\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_32\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the next 32 bits from the file as an integer. See @method store_32@ for details on what values can be stored and retrieved this way.\nget_32 :: (File :< cls, Object :< cls) => cls -> IO Int\nget_32 cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_32 (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_32\" '[] (IO Int) where\n        nodeMethod = Godot.Core.File.get_32\n\n{-# NOINLINE bindFile_get_64 #-}\n\n-- | Returns the next 64 bits from the file as an integer. See @method store_64@ for details on what values can be stored and retrieved this way.\nbindFile_get_64 :: MethodBind\nbindFile_get_64\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_64\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the next 64 bits from the file as an integer. See @method store_64@ for details on what values can be stored and retrieved this way.\nget_64 :: (File :< cls, Object :< cls) => cls -> IO Int\nget_64 cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_64 (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_64\" '[] (IO Int) where\n        nodeMethod = Godot.Core.File.get_64\n\n{-# NOINLINE bindFile_get_8 #-}\n\n-- | Returns the next 8 bits from the file as an integer. See @method store_8@ for details on what values can be stored and retrieved this way.\nbindFile_get_8 :: MethodBind\nbindFile_get_8\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_8\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the next 8 bits from the file as an integer. See @method store_8@ for details on what values can be stored and retrieved this way.\nget_8 :: (File :< cls, Object :< cls) => cls -> IO Int\nget_8 cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_8 (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_8\" '[] (IO Int) where\n        nodeMethod = Godot.Core.File.get_8\n\n{-# NOINLINE bindFile_get_as_text #-}\n\n-- | Returns the whole file as a @String@.\n--   \t\t\t\tText is interpreted as being UTF-8 encoded.\nbindFile_get_as_text :: MethodBind\nbindFile_get_as_text\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_as_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the whole file as a @String@.\n--   \t\t\t\tText is interpreted as being UTF-8 encoded.\nget_as_text ::\n              (File :< cls, Object :< cls) => cls -> IO GodotString\nget_as_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_as_text (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_as_text\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.File.get_as_text\n\n{-# NOINLINE bindFile_get_buffer #-}\n\n-- | Returns next @len@ bytes of the file as a @PoolByteArray@.\nbindFile_get_buffer :: MethodBind\nbindFile_get_buffer\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_buffer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns next @len@ bytes of the file as a @PoolByteArray@.\nget_buffer ::\n             (File :< cls, Object :< cls) => cls -> Int -> IO PoolByteArray\nget_buffer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_buffer (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_buffer\" '[Int] (IO PoolByteArray)\n         where\n        nodeMethod = Godot.Core.File.get_buffer\n\n{-# NOINLINE bindFile_get_csv_line #-}\n\n-- | Returns the next value of the file in CSV (Comma-Separated Values) format. You can pass a different delimiter @delim@ to use other than the default @\",\"@ (comma). This delimiter must be one-character long.\n--   \t\t\t\tText is interpreted as being UTF-8 encoded.\nbindFile_get_csv_line :: MethodBind\nbindFile_get_csv_line\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_csv_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the next value of the file in CSV (Comma-Separated Values) format. You can pass a different delimiter @delim@ to use other than the default @\",\"@ (comma). This delimiter must be one-character long.\n--   \t\t\t\tText is interpreted as being UTF-8 encoded.\nget_csv_line ::\n               (File :< cls, Object :< cls) =>\n               cls -> Maybe GodotString -> IO PoolStringArray\nget_csv_line cls arg1\n  = withVariantArray [defaultedVariant VariantString \",\" arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_csv_line (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_csv_line\" '[Maybe GodotString]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.File.get_csv_line\n\n{-# NOINLINE bindFile_get_double #-}\n\n-- | Returns the next 64 bits from the file as a floating-point number.\nbindFile_get_double :: MethodBind\nbindFile_get_double\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_double\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the next 64 bits from the file as a floating-point number.\nget_double :: (File :< cls, Object :< cls) => cls -> IO Float\nget_double cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_double (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_double\" '[] (IO Float) where\n        nodeMethod = Godot.Core.File.get_double\n\n{-# NOINLINE bindFile_get_error #-}\n\n-- | Returns the last error that happened when trying to perform operations. Compare with the @ERR_FILE_*@ constants from @enum Error@.\nbindFile_get_error :: MethodBind\nbindFile_get_error\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_error\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the last error that happened when trying to perform operations. Compare with the @ERR_FILE_*@ constants from @enum Error@.\nget_error :: (File :< cls, Object :< cls) => cls -> IO Int\nget_error cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_error (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_error\" '[] (IO Int) where\n        nodeMethod = Godot.Core.File.get_error\n\n{-# NOINLINE bindFile_get_float #-}\n\n-- | Returns the next 32 bits from the file as a floating-point number.\nbindFile_get_float :: MethodBind\nbindFile_get_float\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_float\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the next 32 bits from the file as a floating-point number.\nget_float :: (File :< cls, Object :< cls) => cls -> IO Float\nget_float cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_float (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_float\" '[] (IO Float) where\n        nodeMethod = Godot.Core.File.get_float\n\n{-# NOINLINE bindFile_get_len #-}\n\n-- | Returns the size of the file in bytes.\nbindFile_get_len :: MethodBind\nbindFile_get_len\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_len\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the size of the file in bytes.\nget_len :: (File :< cls, Object :< cls) => cls -> IO Int\nget_len cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_len (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_len\" '[] (IO Int) where\n        nodeMethod = Godot.Core.File.get_len\n\n{-# NOINLINE bindFile_get_line #-}\n\n-- | Returns the next line of the file as a @String@.\n--   \t\t\t\tText is interpreted as being UTF-8 encoded.\nbindFile_get_line :: MethodBind\nbindFile_get_line\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the next line of the file as a @String@.\n--   \t\t\t\tText is interpreted as being UTF-8 encoded.\nget_line :: (File :< cls, Object :< cls) => cls -> IO GodotString\nget_line cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_line (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_line\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.File.get_line\n\n{-# NOINLINE bindFile_get_md5 #-}\n\n-- | Returns an MD5 String representing the file at the given path or an empty @String@ on failure.\nbindFile_get_md5 :: MethodBind\nbindFile_get_md5\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_md5\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an MD5 String representing the file at the given path or an empty @String@ on failure.\nget_md5 ::\n          (File :< cls, Object :< cls) =>\n          cls -> GodotString -> IO GodotString\nget_md5 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_md5 (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_md5\" '[GodotString] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.File.get_md5\n\n{-# NOINLINE bindFile_get_modified_time #-}\n\n-- | Returns the last time the @file@ was modified in unix timestamp format or returns a @String@ \"ERROR IN @file@\". This unix timestamp can be converted to datetime by using @method OS.get_datetime_from_unix_time@.\nbindFile_get_modified_time :: MethodBind\nbindFile_get_modified_time\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_modified_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the last time the @file@ was modified in unix timestamp format or returns a @String@ \"ERROR IN @file@\". This unix timestamp can be converted to datetime by using @method OS.get_datetime_from_unix_time@.\nget_modified_time ::\n                    (File :< cls, Object :< cls) => cls -> GodotString -> IO Int\nget_modified_time cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_modified_time (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_modified_time\" '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.File.get_modified_time\n\n{-# NOINLINE bindFile_get_pascal_string #-}\n\n-- | Returns a @String@ saved in Pascal format from the file.\n--   \t\t\t\tText is interpreted as being UTF-8 encoded.\nbindFile_get_pascal_string :: MethodBind\nbindFile_get_pascal_string\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_pascal_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @String@ saved in Pascal format from the file.\n--   \t\t\t\tText is interpreted as being UTF-8 encoded.\nget_pascal_string ::\n                    (File :< cls, Object :< cls) => cls -> IO GodotString\nget_pascal_string cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_pascal_string (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_pascal_string\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.File.get_pascal_string\n\n{-# NOINLINE bindFile_get_path #-}\n\n-- | Returns the path as a @String@ for the current open file.\nbindFile_get_path :: MethodBind\nbindFile_get_path\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the path as a @String@ for the current open file.\nget_path :: (File :< cls, Object :< cls) => cls -> IO GodotString\nget_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_path (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_path\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.File.get_path\n\n{-# NOINLINE bindFile_get_path_absolute #-}\n\n-- | Returns the absolute path as a @String@ for the current open file.\nbindFile_get_path_absolute :: MethodBind\nbindFile_get_path_absolute\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_path_absolute\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the absolute path as a @String@ for the current open file.\nget_path_absolute ::\n                    (File :< cls, Object :< cls) => cls -> IO GodotString\nget_path_absolute cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_path_absolute (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_path_absolute\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.File.get_path_absolute\n\n{-# NOINLINE bindFile_get_position #-}\n\n-- | Returns the file cursor's position.\nbindFile_get_position :: MethodBind\nbindFile_get_position\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the file cursor's position.\nget_position :: (File :< cls, Object :< cls) => cls -> IO Int\nget_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_position (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_position\" '[] (IO Int) where\n        nodeMethod = Godot.Core.File.get_position\n\n{-# NOINLINE bindFile_get_real #-}\n\n-- | Returns the next bits from the file as a floating-point number.\nbindFile_get_real :: MethodBind\nbindFile_get_real\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_real\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the next bits from the file as a floating-point number.\nget_real :: (File :< cls, Object :< cls) => cls -> IO Float\nget_real cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_real (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_real\" '[] (IO Float) where\n        nodeMethod = Godot.Core.File.get_real\n\n{-# NOINLINE bindFile_get_sha256 #-}\n\n-- | Returns a SHA-256 @String@ representing the file at the given path or an empty @String@ on failure.\nbindFile_get_sha256 :: MethodBind\nbindFile_get_sha256\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_sha256\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a SHA-256 @String@ representing the file at the given path or an empty @String@ on failure.\nget_sha256 ::\n             (File :< cls, Object :< cls) =>\n             cls -> GodotString -> IO GodotString\nget_sha256 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_sha256 (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_sha256\" '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.File.get_sha256\n\n{-# NOINLINE bindFile_get_var #-}\n\n-- | Returns the next @Variant@ value from the file. If @allow_objects@ is @true@, decoding objects is allowed.\n--   \t\t\t\t__Warning:__ Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.\nbindFile_get_var :: MethodBind\nbindFile_get_var\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"get_var\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the next @Variant@ value from the file. If @allow_objects@ is @true@, decoding objects is allowed.\n--   \t\t\t\t__Warning:__ Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.\nget_var ::\n          (File :< cls, Object :< cls) =>\n          cls -> Maybe Bool -> IO GodotVariant\nget_var cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_get_var (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"get_var\" '[Maybe Bool] (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.File.get_var\n\n{-# NOINLINE bindFile_is_open #-}\n\n-- | Returns @true@ if the file is currently opened.\nbindFile_is_open :: MethodBind\nbindFile_is_open\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"is_open\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the file is currently opened.\nis_open :: (File :< cls, Object :< cls) => cls -> IO Bool\nis_open cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_is_open (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"is_open\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.File.is_open\n\n{-# NOINLINE bindFile_open #-}\n\n-- | Opens the file for writing or reading, depending on the flags.\nbindFile_open :: MethodBind\nbindFile_open\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"open\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Opens the file for writing or reading, depending on the flags.\nopen ::\n       (File :< cls, Object :< cls) => cls -> GodotString -> Int -> IO Int\nopen cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_open (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"open\" '[GodotString, Int] (IO Int) where\n        nodeMethod = Godot.Core.File.open\n\n{-# NOINLINE bindFile_open_compressed #-}\n\n-- | Opens a compressed file for reading or writing.\nbindFile_open_compressed :: MethodBind\nbindFile_open_compressed\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"open_compressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Opens a compressed file for reading or writing.\nopen_compressed ::\n                  (File :< cls, Object :< cls) =>\n                  cls -> GodotString -> Int -> Maybe Int -> IO Int\nopen_compressed cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (0)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_open_compressed (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"open_compressed\"\n           '[GodotString, Int, Maybe Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.File.open_compressed\n\n{-# NOINLINE bindFile_open_encrypted #-}\n\n-- | Opens an encrypted file in write or read mode. You need to pass a binary key to encrypt/decrypt it.\n--   \t\t\t\t__Note:__ The provided key must be 32 bytes long.\nbindFile_open_encrypted :: MethodBind\nbindFile_open_encrypted\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"open_encrypted\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Opens an encrypted file in write or read mode. You need to pass a binary key to encrypt/decrypt it.\n--   \t\t\t\t__Note:__ The provided key must be 32 bytes long.\nopen_encrypted ::\n                 (File :< cls, Object :< cls) =>\n                 cls -> GodotString -> Int -> PoolByteArray -> IO Int\nopen_encrypted cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_open_encrypted (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"open_encrypted\"\n           '[GodotString, Int, PoolByteArray]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.File.open_encrypted\n\n{-# NOINLINE bindFile_open_encrypted_with_pass #-}\n\n-- | Opens an encrypted file in write or read mode. You need to pass a password to encrypt/decrypt it.\nbindFile_open_encrypted_with_pass :: MethodBind\nbindFile_open_encrypted_with_pass\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"open_encrypted_with_pass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Opens an encrypted file in write or read mode. You need to pass a password to encrypt/decrypt it.\nopen_encrypted_with_pass ::\n                           (File :< cls, Object :< cls) =>\n                           cls -> GodotString -> Int -> GodotString -> IO Int\nopen_encrypted_with_pass cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_open_encrypted_with_pass\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"open_encrypted_with_pass\"\n           '[GodotString, Int, GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.File.open_encrypted_with_pass\n\n{-# NOINLINE bindFile_seek #-}\n\n-- | Changes the file reading/writing cursor to the specified position (in bytes from the beginning of the file).\nbindFile_seek :: MethodBind\nbindFile_seek\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"seek\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes the file reading/writing cursor to the specified position (in bytes from the beginning of the file).\nseek :: (File :< cls, Object :< cls) => cls -> Int -> IO ()\nseek cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_seek (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"seek\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.File.seek\n\n{-# NOINLINE bindFile_seek_end #-}\n\n-- | Changes the file reading/writing cursor to the specified position (in bytes from the end of the file).\n--   \t\t\t\t__Note:__ This is an offset, so you should use negative numbers or the cursor will be at the end of the file.\nbindFile_seek_end :: MethodBind\nbindFile_seek_end\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"seek_end\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes the file reading/writing cursor to the specified position (in bytes from the end of the file).\n--   \t\t\t\t__Note:__ This is an offset, so you should use negative numbers or the cursor will be at the end of the file.\nseek_end ::\n           (File :< cls, Object :< cls) => cls -> Maybe Int -> IO ()\nseek_end cls arg1\n  = withVariantArray [maybe (VariantInt (0)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_seek_end (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"seek_end\" '[Maybe Int] (IO ()) where\n        nodeMethod = Godot.Core.File.seek_end\n\n{-# NOINLINE bindFile_store_16 #-}\n\n-- | Stores an integer as 16 bits in the file.\n--   \t\t\t\t__Note:__ The @value@ should lie in the interval @@0, 2^16 - 1@@. Any other value will overflow and wrap around.\n--   \t\t\t\tTo store a signed integer, use @method store_64@ or store a signed integer from the interval @@-2^15, 2^15 - 1@@ (i.e. keeping one bit for the signedness) and compute its sign manually when reading. For example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tconst MAX_15B = 1 << 15\n--   \t\t\t\tconst MAX_16B = 1 << 16\n--   \n--   \t\t\t\tfunc unsigned16_to_signed(unsigned):\n--   \t\t\t\t    return (unsigned + MAX_15B) % MAX_16B - MAX_15B\n--   \n--   \t\t\t\tfunc _ready():\n--   \t\t\t\t    var f = File.new()\n--   \t\t\t\t    f.open(\"user://file.dat\", File.WRITE_READ)\n--   \t\t\t\t    f.store_16(-42) # This wraps around and stores 65494 (2^16 - 42).\n--   \t\t\t\t    f.store_16(121) # In bounds, will store 121.\n--   \t\t\t\t    f.seek(0) # Go back to start to read the stored value.\n--   \t\t\t\t    var read1 = f.get_16() # 65494\n--   \t\t\t\t    var read2 = f.get_16() # 121\n--   \t\t\t\t    var converted1 = unsigned16_to_signed(read1) # -42\n--   \t\t\t\t    var converted2 = unsigned16_to_signed(read2) # 121\n--   \t\t\t\t\n--   @\nbindFile_store_16 :: MethodBind\nbindFile_store_16\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"store_16\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stores an integer as 16 bits in the file.\n--   \t\t\t\t__Note:__ The @value@ should lie in the interval @@0, 2^16 - 1@@. Any other value will overflow and wrap around.\n--   \t\t\t\tTo store a signed integer, use @method store_64@ or store a signed integer from the interval @@-2^15, 2^15 - 1@@ (i.e. keeping one bit for the signedness) and compute its sign manually when reading. For example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tconst MAX_15B = 1 << 15\n--   \t\t\t\tconst MAX_16B = 1 << 16\n--   \n--   \t\t\t\tfunc unsigned16_to_signed(unsigned):\n--   \t\t\t\t    return (unsigned + MAX_15B) % MAX_16B - MAX_15B\n--   \n--   \t\t\t\tfunc _ready():\n--   \t\t\t\t    var f = File.new()\n--   \t\t\t\t    f.open(\"user://file.dat\", File.WRITE_READ)\n--   \t\t\t\t    f.store_16(-42) # This wraps around and stores 65494 (2^16 - 42).\n--   \t\t\t\t    f.store_16(121) # In bounds, will store 121.\n--   \t\t\t\t    f.seek(0) # Go back to start to read the stored value.\n--   \t\t\t\t    var read1 = f.get_16() # 65494\n--   \t\t\t\t    var read2 = f.get_16() # 121\n--   \t\t\t\t    var converted1 = unsigned16_to_signed(read1) # -42\n--   \t\t\t\t    var converted2 = unsigned16_to_signed(read2) # 121\n--   \t\t\t\t\n--   @\nstore_16 :: (File :< cls, Object :< cls) => cls -> Int -> IO ()\nstore_16 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_store_16 (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"store_16\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.File.store_16\n\n{-# NOINLINE bindFile_store_32 #-}\n\n-- | Stores an integer as 32 bits in the file.\n--   \t\t\t\t__Note:__ The @value@ should lie in the interval @@0, 2^32 - 1@@. Any other value will overflow and wrap around.\n--   \t\t\t\tTo store a signed integer, use @method store_64@, or convert it manually (see @method store_16@ for an example).\nbindFile_store_32 :: MethodBind\nbindFile_store_32\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"store_32\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stores an integer as 32 bits in the file.\n--   \t\t\t\t__Note:__ The @value@ should lie in the interval @@0, 2^32 - 1@@. Any other value will overflow and wrap around.\n--   \t\t\t\tTo store a signed integer, use @method store_64@, or convert it manually (see @method store_16@ for an example).\nstore_32 :: (File :< cls, Object :< cls) => cls -> Int -> IO ()\nstore_32 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_store_32 (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"store_32\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.File.store_32\n\n{-# NOINLINE bindFile_store_64 #-}\n\n-- | Stores an integer as 64 bits in the file.\n--   \t\t\t\t__Note:__ The @value@ must lie in the interval @@-2^63, 2^63 - 1@@ (i.e. be a valid @int@ value).\nbindFile_store_64 :: MethodBind\nbindFile_store_64\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"store_64\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stores an integer as 64 bits in the file.\n--   \t\t\t\t__Note:__ The @value@ must lie in the interval @@-2^63, 2^63 - 1@@ (i.e. be a valid @int@ value).\nstore_64 :: (File :< cls, Object :< cls) => cls -> Int -> IO ()\nstore_64 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_store_64 (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"store_64\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.File.store_64\n\n{-# NOINLINE bindFile_store_8 #-}\n\n-- | Stores an integer as 8 bits in the file.\n--   \t\t\t\t__Note:__ The @value@ should lie in the interval @@0, 255@@. Any other value will overflow and wrap around.\n--   \t\t\t\tTo store a signed integer, use @method store_64@, or convert it manually (see @method store_16@ for an example).\nbindFile_store_8 :: MethodBind\nbindFile_store_8\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"store_8\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stores an integer as 8 bits in the file.\n--   \t\t\t\t__Note:__ The @value@ should lie in the interval @@0, 255@@. Any other value will overflow and wrap around.\n--   \t\t\t\tTo store a signed integer, use @method store_64@, or convert it manually (see @method store_16@ for an example).\nstore_8 :: (File :< cls, Object :< cls) => cls -> Int -> IO ()\nstore_8 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_store_8 (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"store_8\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.File.store_8\n\n{-# NOINLINE bindFile_store_buffer #-}\n\n-- | Stores the given array of bytes in the file.\nbindFile_store_buffer :: MethodBind\nbindFile_store_buffer\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"store_buffer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stores the given array of bytes in the file.\nstore_buffer ::\n               (File :< cls, Object :< cls) => cls -> PoolByteArray -> IO ()\nstore_buffer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_store_buffer (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"store_buffer\" '[PoolByteArray] (IO ())\n         where\n        nodeMethod = Godot.Core.File.store_buffer\n\n{-# NOINLINE bindFile_store_csv_line #-}\n\n-- | Store the given @PoolStringArray@ in the file as a line formatted in the CSV (Comma-Separated Values) format. You can pass a different delimiter @delim@ to use other than the default @\",\"@ (comma). This delimiter must be one-character long.\n--   \t\t\t\tText will be encoded as UTF-8.\nbindFile_store_csv_line :: MethodBind\nbindFile_store_csv_line\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"store_csv_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Store the given @PoolStringArray@ in the file as a line formatted in the CSV (Comma-Separated Values) format. You can pass a different delimiter @delim@ to use other than the default @\",\"@ (comma). This delimiter must be one-character long.\n--   \t\t\t\tText will be encoded as UTF-8.\nstore_csv_line ::\n                 (File :< cls, Object :< cls) =>\n                 cls -> PoolStringArray -> Maybe GodotString -> IO ()\nstore_csv_line cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \",\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_store_csv_line (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"store_csv_line\"\n           '[PoolStringArray, Maybe GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.File.store_csv_line\n\n{-# NOINLINE bindFile_store_double #-}\n\n-- | Stores a floating-point number as 64 bits in the file.\nbindFile_store_double :: MethodBind\nbindFile_store_double\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"store_double\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stores a floating-point number as 64 bits in the file.\nstore_double ::\n               (File :< cls, Object :< cls) => cls -> Float -> IO ()\nstore_double cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_store_double (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"store_double\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.File.store_double\n\n{-# NOINLINE bindFile_store_float #-}\n\n-- | Stores a floating-point number as 32 bits in the file.\nbindFile_store_float :: MethodBind\nbindFile_store_float\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"store_float\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stores a floating-point number as 32 bits in the file.\nstore_float ::\n              (File :< cls, Object :< cls) => cls -> Float -> IO ()\nstore_float cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_store_float (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"store_float\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.File.store_float\n\n{-# NOINLINE bindFile_store_line #-}\n\n-- | Stores the given @String@ as a line in the file.\n--   \t\t\t\tText will be encoded as UTF-8.\nbindFile_store_line :: MethodBind\nbindFile_store_line\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"store_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stores the given @String@ as a line in the file.\n--   \t\t\t\tText will be encoded as UTF-8.\nstore_line ::\n             (File :< cls, Object :< cls) => cls -> GodotString -> IO ()\nstore_line cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_store_line (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"store_line\" '[GodotString] (IO ()) where\n        nodeMethod = Godot.Core.File.store_line\n\n{-# NOINLINE bindFile_store_pascal_string #-}\n\n-- | Stores the given @String@ as a line in the file in Pascal format (i.e. also store the length of the string).\n--   \t\t\t\tText will be encoded as UTF-8.\nbindFile_store_pascal_string :: MethodBind\nbindFile_store_pascal_string\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"store_pascal_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stores the given @String@ as a line in the file in Pascal format (i.e. also store the length of the string).\n--   \t\t\t\tText will be encoded as UTF-8.\nstore_pascal_string ::\n                      (File :< cls, Object :< cls) => cls -> GodotString -> IO ()\nstore_pascal_string cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_store_pascal_string (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"store_pascal_string\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.File.store_pascal_string\n\n{-# NOINLINE bindFile_store_real #-}\n\n-- | Stores a floating-point number in the file.\nbindFile_store_real :: MethodBind\nbindFile_store_real\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"store_real\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stores a floating-point number in the file.\nstore_real :: (File :< cls, Object :< cls) => cls -> Float -> IO ()\nstore_real cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_store_real (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"store_real\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.File.store_real\n\n{-# NOINLINE bindFile_store_string #-}\n\n-- | Stores the given @String@ in the file.\n--   \t\t\t\tText will be encoded as UTF-8.\nbindFile_store_string :: MethodBind\nbindFile_store_string\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"store_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stores the given @String@ in the file.\n--   \t\t\t\tText will be encoded as UTF-8.\nstore_string ::\n               (File :< cls, Object :< cls) => cls -> GodotString -> IO ()\nstore_string cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_store_string (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"store_string\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.File.store_string\n\n{-# NOINLINE bindFile_store_var #-}\n\n-- | Stores any Variant value in the file. If @full_objects@ is @true@, encoding objects is allowed (and can potentially include code).\nbindFile_store_var :: MethodBind\nbindFile_store_var\n  = unsafePerformIO $\n      withCString \"_File\" $\n        \\ clsNamePtr ->\n          withCString \"store_var\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stores any Variant value in the file. If @full_objects@ is @true@, encoding objects is allowed (and can potentially include code).\nstore_var ::\n            (File :< cls, Object :< cls) =>\n            cls -> GodotVariant -> Maybe Bool -> IO ()\nstore_var cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFile_store_var (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod File \"store_var\" '[GodotVariant, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.File.store_var"
  },
  {
    "path": "src/Godot/Core/FileDialog.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.FileDialog\n       (Godot.Core.FileDialog._ACCESS_RESOURCES,\n        Godot.Core.FileDialog._MODE_OPEN_FILES,\n        Godot.Core.FileDialog._MODE_OPEN_FILE,\n        Godot.Core.FileDialog._MODE_SAVE_FILE,\n        Godot.Core.FileDialog._ACCESS_USERDATA,\n        Godot.Core.FileDialog._ACCESS_FILESYSTEM,\n        Godot.Core.FileDialog._MODE_OPEN_DIR,\n        Godot.Core.FileDialog._MODE_OPEN_ANY,\n        Godot.Core.FileDialog.sig_dir_selected,\n        Godot.Core.FileDialog.sig_file_selected,\n        Godot.Core.FileDialog.sig_files_selected,\n        Godot.Core.FileDialog._action_pressed,\n        Godot.Core.FileDialog._cancel_pressed,\n        Godot.Core.FileDialog._dir_entered,\n        Godot.Core.FileDialog._file_entered,\n        Godot.Core.FileDialog._filter_selected,\n        Godot.Core.FileDialog._go_up, Godot.Core.FileDialog._make_dir,\n        Godot.Core.FileDialog._make_dir_confirm,\n        Godot.Core.FileDialog._save_confirm_pressed,\n        Godot.Core.FileDialog._select_drive,\n        Godot.Core.FileDialog._tree_item_activated,\n        Godot.Core.FileDialog._tree_multi_selected,\n        Godot.Core.FileDialog._tree_selected,\n        Godot.Core.FileDialog._unhandled_input,\n        Godot.Core.FileDialog._update_dir,\n        Godot.Core.FileDialog._update_file_list,\n        Godot.Core.FileDialog._update_file_name,\n        Godot.Core.FileDialog.add_filter,\n        Godot.Core.FileDialog.clear_filters,\n        Godot.Core.FileDialog.deselect_items,\n        Godot.Core.FileDialog.get_access,\n        Godot.Core.FileDialog.get_current_dir,\n        Godot.Core.FileDialog.get_current_file,\n        Godot.Core.FileDialog.get_current_path,\n        Godot.Core.FileDialog.get_filters,\n        Godot.Core.FileDialog.get_line_edit,\n        Godot.Core.FileDialog.get_mode, Godot.Core.FileDialog.get_vbox,\n        Godot.Core.FileDialog.invalidate,\n        Godot.Core.FileDialog.is_mode_overriding_title,\n        Godot.Core.FileDialog.is_showing_hidden_files,\n        Godot.Core.FileDialog.set_access,\n        Godot.Core.FileDialog.set_current_dir,\n        Godot.Core.FileDialog.set_current_file,\n        Godot.Core.FileDialog.set_current_path,\n        Godot.Core.FileDialog.set_filters, Godot.Core.FileDialog.set_mode,\n        Godot.Core.FileDialog.set_mode_overrides_title,\n        Godot.Core.FileDialog.set_show_hidden_files)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.ConfirmationDialog()\n\n_ACCESS_RESOURCES :: Int\n_ACCESS_RESOURCES = 0\n\n_MODE_OPEN_FILES :: Int\n_MODE_OPEN_FILES = 1\n\n_MODE_OPEN_FILE :: Int\n_MODE_OPEN_FILE = 0\n\n_MODE_SAVE_FILE :: Int\n_MODE_SAVE_FILE = 4\n\n_ACCESS_USERDATA :: Int\n_ACCESS_USERDATA = 1\n\n_ACCESS_FILESYSTEM :: Int\n_ACCESS_FILESYSTEM = 2\n\n_MODE_OPEN_DIR :: Int\n_MODE_OPEN_DIR = 2\n\n_MODE_OPEN_ANY :: Int\n_MODE_OPEN_ANY = 3\n\n-- | Emitted when the user selects a directory.\nsig_dir_selected :: Godot.Internal.Dispatch.Signal FileDialog\nsig_dir_selected = Godot.Internal.Dispatch.Signal \"dir_selected\"\n\ninstance NodeSignal FileDialog \"dir_selected\" '[GodotString]\n\n-- | Emitted when the user selects a file by double-clicking it or pressing the __OK__ button.\nsig_file_selected :: Godot.Internal.Dispatch.Signal FileDialog\nsig_file_selected = Godot.Internal.Dispatch.Signal \"file_selected\"\n\ninstance NodeSignal FileDialog \"file_selected\" '[GodotString]\n\n-- | Emitted when the user selects multiple files.\nsig_files_selected :: Godot.Internal.Dispatch.Signal FileDialog\nsig_files_selected\n  = Godot.Internal.Dispatch.Signal \"files_selected\"\n\ninstance NodeSignal FileDialog \"files_selected\" '[PoolStringArray]\n\ninstance NodeProperty FileDialog \"access\" Int 'False where\n        nodeProperty = (get_access, wrapDroppingSetter set_access, Nothing)\n\ninstance NodeProperty FileDialog \"current_dir\" GodotString 'False\n         where\n        nodeProperty\n          = (get_current_dir, wrapDroppingSetter set_current_dir, Nothing)\n\ninstance NodeProperty FileDialog \"current_file\" GodotString 'False\n         where\n        nodeProperty\n          = (get_current_file, wrapDroppingSetter set_current_file, Nothing)\n\ninstance NodeProperty FileDialog \"current_path\" GodotString 'False\n         where\n        nodeProperty\n          = (get_current_path, wrapDroppingSetter set_current_path, Nothing)\n\ninstance NodeProperty FileDialog \"filters\" PoolStringArray 'False\n         where\n        nodeProperty\n          = (get_filters, wrapDroppingSetter set_filters, Nothing)\n\ninstance NodeProperty FileDialog \"mode\" Int 'False where\n        nodeProperty = (get_mode, wrapDroppingSetter set_mode, Nothing)\n\ninstance NodeProperty FileDialog \"mode_overrides_title\" Bool 'False\n         where\n        nodeProperty\n          = (is_mode_overriding_title,\n             wrapDroppingSetter set_mode_overrides_title, Nothing)\n\ninstance NodeProperty FileDialog \"show_hidden_files\" Bool 'False\n         where\n        nodeProperty\n          = (is_showing_hidden_files,\n             wrapDroppingSetter set_show_hidden_files, Nothing)\n\n{-# NOINLINE bindFileDialog__action_pressed #-}\n\nbindFileDialog__action_pressed :: MethodBind\nbindFileDialog__action_pressed\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_action_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_action_pressed ::\n                  (FileDialog :< cls, Object :< cls) => cls -> IO ()\n_action_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog__action_pressed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"_action_pressed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.FileDialog._action_pressed\n\n{-# NOINLINE bindFileDialog__cancel_pressed #-}\n\nbindFileDialog__cancel_pressed :: MethodBind\nbindFileDialog__cancel_pressed\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_cancel_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_cancel_pressed ::\n                  (FileDialog :< cls, Object :< cls) => cls -> IO ()\n_cancel_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog__cancel_pressed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"_cancel_pressed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.FileDialog._cancel_pressed\n\n{-# NOINLINE bindFileDialog__dir_entered #-}\n\nbindFileDialog__dir_entered :: MethodBind\nbindFileDialog__dir_entered\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_dir_entered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_dir_entered ::\n               (FileDialog :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_dir_entered cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog__dir_entered (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"_dir_entered\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.FileDialog._dir_entered\n\n{-# NOINLINE bindFileDialog__file_entered #-}\n\nbindFileDialog__file_entered :: MethodBind\nbindFileDialog__file_entered\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_file_entered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_file_entered ::\n                (FileDialog :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_file_entered cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog__file_entered (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"_file_entered\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.FileDialog._file_entered\n\n{-# NOINLINE bindFileDialog__filter_selected #-}\n\nbindFileDialog__filter_selected :: MethodBind\nbindFileDialog__filter_selected\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_filter_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_filter_selected ::\n                   (FileDialog :< cls, Object :< cls) => cls -> Int -> IO ()\n_filter_selected cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog__filter_selected (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"_filter_selected\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.FileDialog._filter_selected\n\n{-# NOINLINE bindFileDialog__go_up #-}\n\nbindFileDialog__go_up :: MethodBind\nbindFileDialog__go_up\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_go_up\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_go_up :: (FileDialog :< cls, Object :< cls) => cls -> IO ()\n_go_up cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog__go_up (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"_go_up\" '[] (IO ()) where\n        nodeMethod = Godot.Core.FileDialog._go_up\n\n{-# NOINLINE bindFileDialog__make_dir #-}\n\nbindFileDialog__make_dir :: MethodBind\nbindFileDialog__make_dir\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_make_dir\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_make_dir :: (FileDialog :< cls, Object :< cls) => cls -> IO ()\n_make_dir cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog__make_dir (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"_make_dir\" '[] (IO ()) where\n        nodeMethod = Godot.Core.FileDialog._make_dir\n\n{-# NOINLINE bindFileDialog__make_dir_confirm #-}\n\nbindFileDialog__make_dir_confirm :: MethodBind\nbindFileDialog__make_dir_confirm\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_make_dir_confirm\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_make_dir_confirm ::\n                    (FileDialog :< cls, Object :< cls) => cls -> IO ()\n_make_dir_confirm cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog__make_dir_confirm\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"_make_dir_confirm\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.FileDialog._make_dir_confirm\n\n{-# NOINLINE bindFileDialog__save_confirm_pressed #-}\n\nbindFileDialog__save_confirm_pressed :: MethodBind\nbindFileDialog__save_confirm_pressed\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_save_confirm_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_save_confirm_pressed ::\n                        (FileDialog :< cls, Object :< cls) => cls -> IO ()\n_save_confirm_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog__save_confirm_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"_save_confirm_pressed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.FileDialog._save_confirm_pressed\n\n{-# NOINLINE bindFileDialog__select_drive #-}\n\nbindFileDialog__select_drive :: MethodBind\nbindFileDialog__select_drive\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_select_drive\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_select_drive ::\n                (FileDialog :< cls, Object :< cls) => cls -> Int -> IO ()\n_select_drive cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog__select_drive (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"_select_drive\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.FileDialog._select_drive\n\n{-# NOINLINE bindFileDialog__tree_item_activated #-}\n\nbindFileDialog__tree_item_activated :: MethodBind\nbindFileDialog__tree_item_activated\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_tree_item_activated\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_tree_item_activated ::\n                       (FileDialog :< cls, Object :< cls) => cls -> IO ()\n_tree_item_activated cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog__tree_item_activated\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"_tree_item_activated\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.FileDialog._tree_item_activated\n\n{-# NOINLINE bindFileDialog__tree_multi_selected #-}\n\nbindFileDialog__tree_multi_selected :: MethodBind\nbindFileDialog__tree_multi_selected\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_tree_multi_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_tree_multi_selected ::\n                       (FileDialog :< cls, Object :< cls) =>\n                       cls -> Object -> Int -> Bool -> IO ()\n_tree_multi_selected cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog__tree_multi_selected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"_tree_multi_selected\"\n           '[Object, Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.FileDialog._tree_multi_selected\n\n{-# NOINLINE bindFileDialog__tree_selected #-}\n\nbindFileDialog__tree_selected :: MethodBind\nbindFileDialog__tree_selected\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_tree_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_tree_selected ::\n                 (FileDialog :< cls, Object :< cls) => cls -> IO ()\n_tree_selected cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog__tree_selected (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"_tree_selected\" '[] (IO ()) where\n        nodeMethod = Godot.Core.FileDialog._tree_selected\n\n{-# NOINLINE bindFileDialog__unhandled_input #-}\n\nbindFileDialog__unhandled_input :: MethodBind\nbindFileDialog__unhandled_input\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_unhandled_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_unhandled_input ::\n                   (FileDialog :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_unhandled_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog__unhandled_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"_unhandled_input\" '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.FileDialog._unhandled_input\n\n{-# NOINLINE bindFileDialog__update_dir #-}\n\nbindFileDialog__update_dir :: MethodBind\nbindFileDialog__update_dir\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_update_dir\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_dir :: (FileDialog :< cls, Object :< cls) => cls -> IO ()\n_update_dir cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog__update_dir (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"_update_dir\" '[] (IO ()) where\n        nodeMethod = Godot.Core.FileDialog._update_dir\n\n{-# NOINLINE bindFileDialog__update_file_list #-}\n\nbindFileDialog__update_file_list :: MethodBind\nbindFileDialog__update_file_list\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_update_file_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_file_list ::\n                    (FileDialog :< cls, Object :< cls) => cls -> IO ()\n_update_file_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog__update_file_list\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"_update_file_list\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.FileDialog._update_file_list\n\n{-# NOINLINE bindFileDialog__update_file_name #-}\n\nbindFileDialog__update_file_name :: MethodBind\nbindFileDialog__update_file_name\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_update_file_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_file_name ::\n                    (FileDialog :< cls, Object :< cls) => cls -> IO ()\n_update_file_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog__update_file_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"_update_file_name\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.FileDialog._update_file_name\n\n{-# NOINLINE bindFileDialog_add_filter #-}\n\n-- | Adds @filter@ as a custom filter; @filter@ should be of the form @\"filename.extension ; Description\"@. For example, @\"*.png ; PNG Images\"@.\nbindFileDialog_add_filter :: MethodBind\nbindFileDialog_add_filter\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"add_filter\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds @filter@ as a custom filter; @filter@ should be of the form @\"filename.extension ; Description\"@. For example, @\"*.png ; PNG Images\"@.\nadd_filter ::\n             (FileDialog :< cls, Object :< cls) => cls -> GodotString -> IO ()\nadd_filter cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_add_filter (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"add_filter\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.FileDialog.add_filter\n\n{-# NOINLINE bindFileDialog_clear_filters #-}\n\n-- | Clear all the added filters in the dialog.\nbindFileDialog_clear_filters :: MethodBind\nbindFileDialog_clear_filters\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"clear_filters\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clear all the added filters in the dialog.\nclear_filters :: (FileDialog :< cls, Object :< cls) => cls -> IO ()\nclear_filters cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_clear_filters (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"clear_filters\" '[] (IO ()) where\n        nodeMethod = Godot.Core.FileDialog.clear_filters\n\n{-# NOINLINE bindFileDialog_deselect_items #-}\n\n-- | Clear currently selected items in the dialog.\nbindFileDialog_deselect_items :: MethodBind\nbindFileDialog_deselect_items\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"deselect_items\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clear currently selected items in the dialog.\ndeselect_items ::\n                 (FileDialog :< cls, Object :< cls) => cls -> IO ()\ndeselect_items cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_deselect_items (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"deselect_items\" '[] (IO ()) where\n        nodeMethod = Godot.Core.FileDialog.deselect_items\n\n{-# NOINLINE bindFileDialog_get_access #-}\n\n-- | The file system access scope. See enum @Access@ constants.\n--   \t\t\t__Warning:__ Currently, in sandboxed environments such as HTML5 builds or sandboxed macOS apps, FileDialog cannot access the host file system. See @url=https://github.com/godotengine/godot-proposals/issues/1123@godot-proposals#1123@/url@.\nbindFileDialog_get_access :: MethodBind\nbindFileDialog_get_access\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_access\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The file system access scope. See enum @Access@ constants.\n--   \t\t\t__Warning:__ Currently, in sandboxed environments such as HTML5 builds or sandboxed macOS apps, FileDialog cannot access the host file system. See @url=https://github.com/godotengine/godot-proposals/issues/1123@godot-proposals#1123@/url@.\nget_access :: (FileDialog :< cls, Object :< cls) => cls -> IO Int\nget_access cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_get_access (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"get_access\" '[] (IO Int) where\n        nodeMethod = Godot.Core.FileDialog.get_access\n\n{-# NOINLINE bindFileDialog_get_current_dir #-}\n\n-- | The current working directory of the file dialog.\nbindFileDialog_get_current_dir :: MethodBind\nbindFileDialog_get_current_dir\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_dir\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current working directory of the file dialog.\nget_current_dir ::\n                  (FileDialog :< cls, Object :< cls) => cls -> IO GodotString\nget_current_dir cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_get_current_dir (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"get_current_dir\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.FileDialog.get_current_dir\n\n{-# NOINLINE bindFileDialog_get_current_file #-}\n\n-- | The currently selected file of the file dialog.\nbindFileDialog_get_current_file :: MethodBind\nbindFileDialog_get_current_file\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The currently selected file of the file dialog.\nget_current_file ::\n                   (FileDialog :< cls, Object :< cls) => cls -> IO GodotString\nget_current_file cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_get_current_file (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"get_current_file\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.FileDialog.get_current_file\n\n{-# NOINLINE bindFileDialog_get_current_path #-}\n\n-- | The currently selected file path of the file dialog.\nbindFileDialog_get_current_path :: MethodBind\nbindFileDialog_get_current_path\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The currently selected file path of the file dialog.\nget_current_path ::\n                   (FileDialog :< cls, Object :< cls) => cls -> IO GodotString\nget_current_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_get_current_path (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"get_current_path\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.FileDialog.get_current_path\n\n{-# NOINLINE bindFileDialog_get_filters #-}\n\n-- | The available file type filters. For example, this shows only @.png@ and @.gd@ files: @set_filters(PoolStringArray(@\"*.png ; PNG Images\",\"*.gd ; GDScript Files\"@))@.\nbindFileDialog_get_filters :: MethodBind\nbindFileDialog_get_filters\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_filters\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The available file type filters. For example, this shows only @.png@ and @.gd@ files: @set_filters(PoolStringArray(@\"*.png ; PNG Images\",\"*.gd ; GDScript Files\"@))@.\nget_filters ::\n              (FileDialog :< cls, Object :< cls) => cls -> IO PoolStringArray\nget_filters cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_get_filters (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"get_filters\" '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.FileDialog.get_filters\n\n{-# NOINLINE bindFileDialog_get_line_edit #-}\n\n-- | Returns the LineEdit for the selected file.\nbindFileDialog_get_line_edit :: MethodBind\nbindFileDialog_get_line_edit\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_line_edit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the LineEdit for the selected file.\nget_line_edit ::\n                (FileDialog :< cls, Object :< cls) => cls -> IO LineEdit\nget_line_edit cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_get_line_edit (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"get_line_edit\" '[] (IO LineEdit)\n         where\n        nodeMethod = Godot.Core.FileDialog.get_line_edit\n\n{-# NOINLINE bindFileDialog_get_mode #-}\n\n-- | The dialog's open or save mode, which affects the selection behavior. See enum @Mode@ constants.\nbindFileDialog_get_mode :: MethodBind\nbindFileDialog_get_mode\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The dialog's open or save mode, which affects the selection behavior. See enum @Mode@ constants.\nget_mode :: (FileDialog :< cls, Object :< cls) => cls -> IO Int\nget_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_get_mode (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"get_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.FileDialog.get_mode\n\n{-# NOINLINE bindFileDialog_get_vbox #-}\n\n-- | Returns the vertical box container of the dialog, custom controls can be added to it.\nbindFileDialog_get_vbox :: MethodBind\nbindFileDialog_get_vbox\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_vbox\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the vertical box container of the dialog, custom controls can be added to it.\nget_vbox ::\n           (FileDialog :< cls, Object :< cls) => cls -> IO VBoxContainer\nget_vbox cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_get_vbox (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"get_vbox\" '[] (IO VBoxContainer)\n         where\n        nodeMethod = Godot.Core.FileDialog.get_vbox\n\n{-# NOINLINE bindFileDialog_invalidate #-}\n\n-- | Invalidate and update the current dialog content list.\nbindFileDialog_invalidate :: MethodBind\nbindFileDialog_invalidate\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"invalidate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Invalidate and update the current dialog content list.\ninvalidate :: (FileDialog :< cls, Object :< cls) => cls -> IO ()\ninvalidate cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_invalidate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"invalidate\" '[] (IO ()) where\n        nodeMethod = Godot.Core.FileDialog.invalidate\n\n{-# NOINLINE bindFileDialog_is_mode_overriding_title #-}\n\n-- | If @true@, changing the @Mode@ property will set the window title accordingly (e.g. setting mode to @MODE_OPEN_FILE@ will change the window title to \"Open a File\").\nbindFileDialog_is_mode_overriding_title :: MethodBind\nbindFileDialog_is_mode_overriding_title\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"is_mode_overriding_title\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, changing the @Mode@ property will set the window title accordingly (e.g. setting mode to @MODE_OPEN_FILE@ will change the window title to \"Open a File\").\nis_mode_overriding_title ::\n                           (FileDialog :< cls, Object :< cls) => cls -> IO Bool\nis_mode_overriding_title cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_is_mode_overriding_title\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"is_mode_overriding_title\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.FileDialog.is_mode_overriding_title\n\n{-# NOINLINE bindFileDialog_is_showing_hidden_files #-}\n\n-- | If @true@, the dialog will show hidden files.\nbindFileDialog_is_showing_hidden_files :: MethodBind\nbindFileDialog_is_showing_hidden_files\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"is_showing_hidden_files\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the dialog will show hidden files.\nis_showing_hidden_files ::\n                          (FileDialog :< cls, Object :< cls) => cls -> IO Bool\nis_showing_hidden_files cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_is_showing_hidden_files\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"is_showing_hidden_files\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.FileDialog.is_showing_hidden_files\n\n{-# NOINLINE bindFileDialog_set_access #-}\n\n-- | The file system access scope. See enum @Access@ constants.\n--   \t\t\t__Warning:__ Currently, in sandboxed environments such as HTML5 builds or sandboxed macOS apps, FileDialog cannot access the host file system. See @url=https://github.com/godotengine/godot-proposals/issues/1123@godot-proposals#1123@/url@.\nbindFileDialog_set_access :: MethodBind\nbindFileDialog_set_access\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_access\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The file system access scope. See enum @Access@ constants.\n--   \t\t\t__Warning:__ Currently, in sandboxed environments such as HTML5 builds or sandboxed macOS apps, FileDialog cannot access the host file system. See @url=https://github.com/godotengine/godot-proposals/issues/1123@godot-proposals#1123@/url@.\nset_access ::\n             (FileDialog :< cls, Object :< cls) => cls -> Int -> IO ()\nset_access cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_set_access (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"set_access\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.FileDialog.set_access\n\n{-# NOINLINE bindFileDialog_set_current_dir #-}\n\n-- | The current working directory of the file dialog.\nbindFileDialog_set_current_dir :: MethodBind\nbindFileDialog_set_current_dir\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_current_dir\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current working directory of the file dialog.\nset_current_dir ::\n                  (FileDialog :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_current_dir cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_set_current_dir (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"set_current_dir\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.FileDialog.set_current_dir\n\n{-# NOINLINE bindFileDialog_set_current_file #-}\n\n-- | The currently selected file of the file dialog.\nbindFileDialog_set_current_file :: MethodBind\nbindFileDialog_set_current_file\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_current_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The currently selected file of the file dialog.\nset_current_file ::\n                   (FileDialog :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_current_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_set_current_file (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"set_current_file\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.FileDialog.set_current_file\n\n{-# NOINLINE bindFileDialog_set_current_path #-}\n\n-- | The currently selected file path of the file dialog.\nbindFileDialog_set_current_path :: MethodBind\nbindFileDialog_set_current_path\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_current_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The currently selected file path of the file dialog.\nset_current_path ::\n                   (FileDialog :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_current_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_set_current_path (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"set_current_path\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.FileDialog.set_current_path\n\n{-# NOINLINE bindFileDialog_set_filters #-}\n\n-- | The available file type filters. For example, this shows only @.png@ and @.gd@ files: @set_filters(PoolStringArray(@\"*.png ; PNG Images\",\"*.gd ; GDScript Files\"@))@.\nbindFileDialog_set_filters :: MethodBind\nbindFileDialog_set_filters\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_filters\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The available file type filters. For example, this shows only @.png@ and @.gd@ files: @set_filters(PoolStringArray(@\"*.png ; PNG Images\",\"*.gd ; GDScript Files\"@))@.\nset_filters ::\n              (FileDialog :< cls, Object :< cls) =>\n              cls -> PoolStringArray -> IO ()\nset_filters cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_set_filters (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"set_filters\" '[PoolStringArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.FileDialog.set_filters\n\n{-# NOINLINE bindFileDialog_set_mode #-}\n\n-- | The dialog's open or save mode, which affects the selection behavior. See enum @Mode@ constants.\nbindFileDialog_set_mode :: MethodBind\nbindFileDialog_set_mode\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The dialog's open or save mode, which affects the selection behavior. See enum @Mode@ constants.\nset_mode ::\n           (FileDialog :< cls, Object :< cls) => cls -> Int -> IO ()\nset_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_set_mode (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"set_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.FileDialog.set_mode\n\n{-# NOINLINE bindFileDialog_set_mode_overrides_title #-}\n\n-- | If @true@, changing the @Mode@ property will set the window title accordingly (e.g. setting mode to @MODE_OPEN_FILE@ will change the window title to \"Open a File\").\nbindFileDialog_set_mode_overrides_title :: MethodBind\nbindFileDialog_set_mode_overrides_title\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_mode_overrides_title\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, changing the @Mode@ property will set the window title accordingly (e.g. setting mode to @MODE_OPEN_FILE@ will change the window title to \"Open a File\").\nset_mode_overrides_title ::\n                           (FileDialog :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_mode_overrides_title cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_set_mode_overrides_title\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"set_mode_overrides_title\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.FileDialog.set_mode_overrides_title\n\n{-# NOINLINE bindFileDialog_set_show_hidden_files #-}\n\n-- | If @true@, the dialog will show hidden files.\nbindFileDialog_set_show_hidden_files :: MethodBind\nbindFileDialog_set_show_hidden_files\n  = unsafePerformIO $\n      withCString \"FileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_show_hidden_files\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the dialog will show hidden files.\nset_show_hidden_files ::\n                        (FileDialog :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_show_hidden_files cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFileDialog_set_show_hidden_files\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FileDialog \"set_show_hidden_files\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.FileDialog.set_show_hidden_files"
  },
  {
    "path": "src/Godot/Core/Font.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Font\n       (Godot.Core.Font.draw, Godot.Core.Font.draw_char,\n        Godot.Core.Font.get_ascent, Godot.Core.Font.get_descent,\n        Godot.Core.Font.get_height, Godot.Core.Font.get_string_size,\n        Godot.Core.Font.get_wordwrap_string_size,\n        Godot.Core.Font.has_outline,\n        Godot.Core.Font.is_distance_field_hint,\n        Godot.Core.Font.update_changes)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n{-# NOINLINE bindFont_draw #-}\n\n-- | Draw @string@ into a canvas item using the font at a given position, with @modulate@ color, and optionally clipping the width. @position@ specifies the baseline, not the top. To draw from the top, @i@ascent@/i@ must be added to the Y axis.\n--   \t\t\t\tSee also @method CanvasItem.draw_string@.\nbindFont_draw :: MethodBind\nbindFont_draw\n  = unsafePerformIO $\n      withCString \"Font\" $\n        \\ clsNamePtr ->\n          withCString \"draw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draw @string@ into a canvas item using the font at a given position, with @modulate@ color, and optionally clipping the width. @position@ specifies the baseline, not the top. To draw from the top, @i@ascent@/i@ must be added to the Y axis.\n--   \t\t\t\tSee also @method CanvasItem.draw_string@.\ndraw ::\n       (Font :< cls, Object :< cls) =>\n       cls ->\n         Rid ->\n           Vector2 ->\n             GodotString -> Maybe Color -> Maybe Int -> Maybe Color -> IO ()\ndraw cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg4,\n       maybe (VariantInt (-1)) toVariant arg5,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFont_draw (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Font \"draw\"\n           '[Rid, Vector2, GodotString, Maybe Color, Maybe Int, Maybe Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Font.draw\n\n{-# NOINLINE bindFont_draw_char #-}\n\n-- | Draw character @char@ into a canvas item using the font at a given position, with @modulate@ color, and optionally kerning if @next@ is passed. clipping the width. @position@ specifies the baseline, not the top. To draw from the top, @i@ascent@/i@ must be added to the Y axis. The width used by the character is returned, making this function useful for drawing strings character by character.\nbindFont_draw_char :: MethodBind\nbindFont_draw_char\n  = unsafePerformIO $\n      withCString \"Font\" $\n        \\ clsNamePtr ->\n          withCString \"draw_char\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draw character @char@ into a canvas item using the font at a given position, with @modulate@ color, and optionally kerning if @next@ is passed. clipping the width. @position@ specifies the baseline, not the top. To draw from the top, @i@ascent@/i@ must be added to the Y axis. The width used by the character is returned, making this function useful for drawing strings character by character.\ndraw_char ::\n            (Font :< cls, Object :< cls) =>\n            cls ->\n              Rid ->\n                Vector2 ->\n                  Int -> Maybe Int -> Maybe Color -> Maybe Bool -> IO Float\ndraw_char cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantInt (-1)) toVariant arg4,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg5,\n       maybe (VariantBool False) toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFont_draw_char (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Font \"draw_char\"\n           '[Rid, Vector2, Int, Maybe Int, Maybe Color, Maybe Bool]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Font.draw_char\n\n{-# NOINLINE bindFont_get_ascent #-}\n\n-- | Returns the font ascent (number of pixels above the baseline).\nbindFont_get_ascent :: MethodBind\nbindFont_get_ascent\n  = unsafePerformIO $\n      withCString \"Font\" $\n        \\ clsNamePtr ->\n          withCString \"get_ascent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the font ascent (number of pixels above the baseline).\nget_ascent :: (Font :< cls, Object :< cls) => cls -> IO Float\nget_ascent cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFont_get_ascent (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Font \"get_ascent\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Font.get_ascent\n\n{-# NOINLINE bindFont_get_descent #-}\n\n-- | Returns the font descent (number of pixels below the baseline).\nbindFont_get_descent :: MethodBind\nbindFont_get_descent\n  = unsafePerformIO $\n      withCString \"Font\" $\n        \\ clsNamePtr ->\n          withCString \"get_descent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the font descent (number of pixels below the baseline).\nget_descent :: (Font :< cls, Object :< cls) => cls -> IO Float\nget_descent cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFont_get_descent (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Font \"get_descent\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Font.get_descent\n\n{-# NOINLINE bindFont_get_height #-}\n\n-- | Returns the total font height (ascent plus descent) in pixels.\nbindFont_get_height :: MethodBind\nbindFont_get_height\n  = unsafePerformIO $\n      withCString \"Font\" $\n        \\ clsNamePtr ->\n          withCString \"get_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the total font height (ascent plus descent) in pixels.\nget_height :: (Font :< cls, Object :< cls) => cls -> IO Float\nget_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFont_get_height (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Font \"get_height\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Font.get_height\n\n{-# NOINLINE bindFont_get_string_size #-}\n\n-- | Returns the size of a string, taking kerning and advance into account.\nbindFont_get_string_size :: MethodBind\nbindFont_get_string_size\n  = unsafePerformIO $\n      withCString \"Font\" $\n        \\ clsNamePtr ->\n          withCString \"get_string_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the size of a string, taking kerning and advance into account.\nget_string_size ::\n                  (Font :< cls, Object :< cls) => cls -> GodotString -> IO Vector2\nget_string_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFont_get_string_size (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Font \"get_string_size\" '[GodotString]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Font.get_string_size\n\n{-# NOINLINE bindFont_get_wordwrap_string_size #-}\n\n-- | Returns the size that the string would have with word wrapping enabled with a fixed @width@.\nbindFont_get_wordwrap_string_size :: MethodBind\nbindFont_get_wordwrap_string_size\n  = unsafePerformIO $\n      withCString \"Font\" $\n        \\ clsNamePtr ->\n          withCString \"get_wordwrap_string_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the size that the string would have with word wrapping enabled with a fixed @width@.\nget_wordwrap_string_size ::\n                           (Font :< cls, Object :< cls) =>\n                           cls -> GodotString -> Float -> IO Vector2\nget_wordwrap_string_size cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFont_get_wordwrap_string_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Font \"get_wordwrap_string_size\"\n           '[GodotString, Float]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Font.get_wordwrap_string_size\n\n{-# NOINLINE bindFont_has_outline #-}\n\n-- | Returns @true@ if the font has an outline.\nbindFont_has_outline :: MethodBind\nbindFont_has_outline\n  = unsafePerformIO $\n      withCString \"Font\" $\n        \\ clsNamePtr ->\n          withCString \"has_outline\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the font has an outline.\nhas_outline :: (Font :< cls, Object :< cls) => cls -> IO Bool\nhas_outline cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFont_has_outline (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Font \"has_outline\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Font.has_outline\n\n{-# NOINLINE bindFont_is_distance_field_hint #-}\n\nbindFont_is_distance_field_hint :: MethodBind\nbindFont_is_distance_field_hint\n  = unsafePerformIO $\n      withCString \"Font\" $\n        \\ clsNamePtr ->\n          withCString \"is_distance_field_hint\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_distance_field_hint ::\n                         (Font :< cls, Object :< cls) => cls -> IO Bool\nis_distance_field_hint cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFont_is_distance_field_hint (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Font \"is_distance_field_hint\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Font.is_distance_field_hint\n\n{-# NOINLINE bindFont_update_changes #-}\n\n-- | After editing a font (changing size, ascent, char rects, etc.). Call this function to propagate changes to controls that might use it.\nbindFont_update_changes :: MethodBind\nbindFont_update_changes\n  = unsafePerformIO $\n      withCString \"Font\" $\n        \\ clsNamePtr ->\n          withCString \"update_changes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | After editing a font (changing size, ascent, char rects, etc.). Call this function to propagate changes to controls that might use it.\nupdate_changes :: (Font :< cls, Object :< cls) => cls -> IO ()\nupdate_changes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFont_update_changes (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Font \"update_changes\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Font.update_changes"
  },
  {
    "path": "src/Godot/Core/FuncRef.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.FuncRef\n       (Godot.Core.FuncRef.call_func, Godot.Core.FuncRef.call_funcv,\n        Godot.Core.FuncRef.is_valid, Godot.Core.FuncRef.set_function,\n        Godot.Core.FuncRef.set_instance)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindFuncRef_call_func #-}\n\n-- | Calls the referenced function previously set by @method set_function@ or @method @GDScript.funcref@.\nbindFuncRef_call_func :: MethodBind\nbindFuncRef_call_func\n  = unsafePerformIO $\n      withCString \"FuncRef\" $\n        \\ clsNamePtr ->\n          withCString \"call_func\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calls the referenced function previously set by @method set_function@ or @method @GDScript.funcref@.\ncall_func ::\n            (FuncRef :< cls, Object :< cls) =>\n            cls -> [Variant 'GodotTy] -> IO GodotVariant\ncall_func cls varargs\n  = withVariantArray ([] ++ varargs)\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFuncRef_call_func (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FuncRef \"call_func\" '[[Variant 'GodotTy]]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.FuncRef.call_func\n\n{-# NOINLINE bindFuncRef_call_funcv #-}\n\n-- | Calls the referenced function previously set by @method set_function@ or @method @GDScript.funcref@. Contrarily to @method call_func@, this method does not support a variable number of arguments but expects all parameters to be passed via a single @Array@.\nbindFuncRef_call_funcv :: MethodBind\nbindFuncRef_call_funcv\n  = unsafePerformIO $\n      withCString \"FuncRef\" $\n        \\ clsNamePtr ->\n          withCString \"call_funcv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calls the referenced function previously set by @method set_function@ or @method @GDScript.funcref@. Contrarily to @method call_func@, this method does not support a variable number of arguments but expects all parameters to be passed via a single @Array@.\ncall_funcv ::\n             (FuncRef :< cls, Object :< cls) => cls -> Array -> IO GodotVariant\ncall_funcv cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFuncRef_call_funcv (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FuncRef \"call_funcv\" '[Array] (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.FuncRef.call_funcv\n\n{-# NOINLINE bindFuncRef_is_valid #-}\n\n-- | Returns whether the object still exists and has the function assigned.\nbindFuncRef_is_valid :: MethodBind\nbindFuncRef_is_valid\n  = unsafePerformIO $\n      withCString \"FuncRef\" $\n        \\ clsNamePtr ->\n          withCString \"is_valid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether the object still exists and has the function assigned.\nis_valid :: (FuncRef :< cls, Object :< cls) => cls -> IO Bool\nis_valid cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFuncRef_is_valid (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FuncRef \"is_valid\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.FuncRef.is_valid\n\n{-# NOINLINE bindFuncRef_set_function #-}\n\n-- | The name of the referenced function to call on the object, without parentheses or any parameters.\nbindFuncRef_set_function :: MethodBind\nbindFuncRef_set_function\n  = unsafePerformIO $\n      withCString \"FuncRef\" $\n        \\ clsNamePtr ->\n          withCString \"set_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The name of the referenced function to call on the object, without parentheses or any parameters.\nset_function ::\n               (FuncRef :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_function cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFuncRef_set_function (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FuncRef \"set_function\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.FuncRef.set_function\n\n{-# NOINLINE bindFuncRef_set_instance #-}\n\n-- | The object containing the referenced function. This object must be of a type actually inheriting from @Object@, not a built-in type such as @int@, @Vector2@ or @Dictionary@.\nbindFuncRef_set_instance :: MethodBind\nbindFuncRef_set_instance\n  = unsafePerformIO $\n      withCString \"FuncRef\" $\n        \\ clsNamePtr ->\n          withCString \"set_instance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The object containing the referenced function. This object must be of a type actually inheriting from @Object@, not a built-in type such as @int@, @Vector2@ or @Dictionary@.\nset_instance ::\n               (FuncRef :< cls, Object :< cls) => cls -> Object -> IO ()\nset_instance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindFuncRef_set_instance (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod FuncRef \"set_instance\" '[Object] (IO ()) where\n        nodeMethod = Godot.Core.FuncRef.set_instance"
  },
  {
    "path": "src/Godot/Core/GDNative.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.GDNative\n       (Godot.Core.GDNative.call_native, Godot.Core.GDNative.get_library,\n        Godot.Core.GDNative.initialize, Godot.Core.GDNative.set_library,\n        Godot.Core.GDNative.terminate)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\ninstance NodeProperty GDNative \"library\" GDNativeLibrary 'False\n         where\n        nodeProperty\n          = (get_library, wrapDroppingSetter set_library, Nothing)\n\n{-# NOINLINE bindGDNative_call_native #-}\n\nbindGDNative_call_native :: MethodBind\nbindGDNative_call_native\n  = unsafePerformIO $\n      withCString \"GDNative\" $\n        \\ clsNamePtr ->\n          withCString \"call_native\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncall_native ::\n              (GDNative :< cls, Object :< cls) =>\n              cls -> GodotString -> GodotString -> Array -> IO GodotVariant\ncall_native cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDNative_call_native (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDNative \"call_native\"\n           '[GodotString, GodotString, Array]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.GDNative.call_native\n\n{-# NOINLINE bindGDNative_get_library #-}\n\nbindGDNative_get_library :: MethodBind\nbindGDNative_get_library\n  = unsafePerformIO $\n      withCString \"GDNative\" $\n        \\ clsNamePtr ->\n          withCString \"get_library\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_library ::\n              (GDNative :< cls, Object :< cls) => cls -> IO GDNativeLibrary\nget_library cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDNative_get_library (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDNative \"get_library\" '[] (IO GDNativeLibrary)\n         where\n        nodeMethod = Godot.Core.GDNative.get_library\n\n{-# NOINLINE bindGDNative_initialize #-}\n\nbindGDNative_initialize :: MethodBind\nbindGDNative_initialize\n  = unsafePerformIO $\n      withCString \"GDNative\" $\n        \\ clsNamePtr ->\n          withCString \"initialize\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ninitialize :: (GDNative :< cls, Object :< cls) => cls -> IO Bool\ninitialize cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDNative_initialize (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDNative \"initialize\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.GDNative.initialize\n\n{-# NOINLINE bindGDNative_set_library #-}\n\nbindGDNative_set_library :: MethodBind\nbindGDNative_set_library\n  = unsafePerformIO $\n      withCString \"GDNative\" $\n        \\ clsNamePtr ->\n          withCString \"set_library\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_library ::\n              (GDNative :< cls, Object :< cls) => cls -> GDNativeLibrary -> IO ()\nset_library cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDNative_set_library (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDNative \"set_library\" '[GDNativeLibrary]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GDNative.set_library\n\n{-# NOINLINE bindGDNative_terminate #-}\n\nbindGDNative_terminate :: MethodBind\nbindGDNative_terminate\n  = unsafePerformIO $\n      withCString \"GDNative\" $\n        \\ clsNamePtr ->\n          withCString \"terminate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nterminate :: (GDNative :< cls, Object :< cls) => cls -> IO Bool\nterminate cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDNative_terminate (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDNative \"terminate\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.GDNative.terminate"
  },
  {
    "path": "src/Godot/Core/GDNativeLibrary.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.GDNativeLibrary\n       (Godot.Core.GDNativeLibrary.get_config_file,\n        Godot.Core.GDNativeLibrary.get_current_dependencies,\n        Godot.Core.GDNativeLibrary.get_current_library_path,\n        Godot.Core.GDNativeLibrary.get_symbol_prefix,\n        Godot.Core.GDNativeLibrary.is_reloadable,\n        Godot.Core.GDNativeLibrary.is_singleton,\n        Godot.Core.GDNativeLibrary.set_config_file,\n        Godot.Core.GDNativeLibrary.set_load_once,\n        Godot.Core.GDNativeLibrary.set_reloadable,\n        Godot.Core.GDNativeLibrary.set_singleton,\n        Godot.Core.GDNativeLibrary.set_symbol_prefix,\n        Godot.Core.GDNativeLibrary.should_load_once)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty GDNativeLibrary \"config_file\" ConfigFile\n           'False\n         where\n        nodeProperty\n          = (get_config_file, wrapDroppingSetter set_config_file, Nothing)\n\ninstance NodeProperty GDNativeLibrary \"load_once\" Bool 'False where\n        nodeProperty\n          = (should_load_once, wrapDroppingSetter set_load_once, Nothing)\n\ninstance NodeProperty GDNativeLibrary \"reloadable\" Bool 'False\n         where\n        nodeProperty\n          = (is_reloadable, wrapDroppingSetter set_reloadable, Nothing)\n\ninstance NodeProperty GDNativeLibrary \"singleton\" Bool 'False where\n        nodeProperty\n          = (is_singleton, wrapDroppingSetter set_singleton, Nothing)\n\ninstance NodeProperty GDNativeLibrary \"symbol_prefix\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_symbol_prefix, wrapDroppingSetter set_symbol_prefix,\n             Nothing)\n\n{-# NOINLINE bindGDNativeLibrary_get_config_file #-}\n\nbindGDNativeLibrary_get_config_file :: MethodBind\nbindGDNativeLibrary_get_config_file\n  = unsafePerformIO $\n      withCString \"GDNativeLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"get_config_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_config_file ::\n                  (GDNativeLibrary :< cls, Object :< cls) => cls -> IO ConfigFile\nget_config_file cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDNativeLibrary_get_config_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDNativeLibrary \"get_config_file\" '[]\n           (IO ConfigFile)\n         where\n        nodeMethod = Godot.Core.GDNativeLibrary.get_config_file\n\n{-# NOINLINE bindGDNativeLibrary_get_current_dependencies #-}\n\nbindGDNativeLibrary_get_current_dependencies :: MethodBind\nbindGDNativeLibrary_get_current_dependencies\n  = unsafePerformIO $\n      withCString \"GDNativeLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_dependencies\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_current_dependencies ::\n                           (GDNativeLibrary :< cls, Object :< cls) =>\n                           cls -> IO PoolStringArray\nget_current_dependencies cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDNativeLibrary_get_current_dependencies\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDNativeLibrary \"get_current_dependencies\" '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.GDNativeLibrary.get_current_dependencies\n\n{-# NOINLINE bindGDNativeLibrary_get_current_library_path #-}\n\nbindGDNativeLibrary_get_current_library_path :: MethodBind\nbindGDNativeLibrary_get_current_library_path\n  = unsafePerformIO $\n      withCString \"GDNativeLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_library_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_current_library_path ::\n                           (GDNativeLibrary :< cls, Object :< cls) => cls -> IO GodotString\nget_current_library_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDNativeLibrary_get_current_library_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDNativeLibrary \"get_current_library_path\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.GDNativeLibrary.get_current_library_path\n\n{-# NOINLINE bindGDNativeLibrary_get_symbol_prefix #-}\n\nbindGDNativeLibrary_get_symbol_prefix :: MethodBind\nbindGDNativeLibrary_get_symbol_prefix\n  = unsafePerformIO $\n      withCString \"GDNativeLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"get_symbol_prefix\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_symbol_prefix ::\n                    (GDNativeLibrary :< cls, Object :< cls) => cls -> IO GodotString\nget_symbol_prefix cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDNativeLibrary_get_symbol_prefix\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDNativeLibrary \"get_symbol_prefix\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.GDNativeLibrary.get_symbol_prefix\n\n{-# NOINLINE bindGDNativeLibrary_is_reloadable #-}\n\nbindGDNativeLibrary_is_reloadable :: MethodBind\nbindGDNativeLibrary_is_reloadable\n  = unsafePerformIO $\n      withCString \"GDNativeLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"is_reloadable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_reloadable ::\n                (GDNativeLibrary :< cls, Object :< cls) => cls -> IO Bool\nis_reloadable cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDNativeLibrary_is_reloadable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDNativeLibrary \"is_reloadable\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.GDNativeLibrary.is_reloadable\n\n{-# NOINLINE bindGDNativeLibrary_is_singleton #-}\n\nbindGDNativeLibrary_is_singleton :: MethodBind\nbindGDNativeLibrary_is_singleton\n  = unsafePerformIO $\n      withCString \"GDNativeLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"is_singleton\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_singleton ::\n               (GDNativeLibrary :< cls, Object :< cls) => cls -> IO Bool\nis_singleton cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDNativeLibrary_is_singleton\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDNativeLibrary \"is_singleton\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.GDNativeLibrary.is_singleton\n\n{-# NOINLINE bindGDNativeLibrary_set_config_file #-}\n\nbindGDNativeLibrary_set_config_file :: MethodBind\nbindGDNativeLibrary_set_config_file\n  = unsafePerformIO $\n      withCString \"GDNativeLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"set_config_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_config_file ::\n                  (GDNativeLibrary :< cls, Object :< cls) =>\n                  cls -> ConfigFile -> IO ()\nset_config_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDNativeLibrary_set_config_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDNativeLibrary \"set_config_file\" '[ConfigFile]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GDNativeLibrary.set_config_file\n\n{-# NOINLINE bindGDNativeLibrary_set_load_once #-}\n\nbindGDNativeLibrary_set_load_once :: MethodBind\nbindGDNativeLibrary_set_load_once\n  = unsafePerformIO $\n      withCString \"GDNativeLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"set_load_once\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_load_once ::\n                (GDNativeLibrary :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_load_once cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDNativeLibrary_set_load_once\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDNativeLibrary \"set_load_once\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.GDNativeLibrary.set_load_once\n\n{-# NOINLINE bindGDNativeLibrary_set_reloadable #-}\n\nbindGDNativeLibrary_set_reloadable :: MethodBind\nbindGDNativeLibrary_set_reloadable\n  = unsafePerformIO $\n      withCString \"GDNativeLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"set_reloadable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_reloadable ::\n                 (GDNativeLibrary :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_reloadable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDNativeLibrary_set_reloadable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDNativeLibrary \"set_reloadable\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GDNativeLibrary.set_reloadable\n\n{-# NOINLINE bindGDNativeLibrary_set_singleton #-}\n\nbindGDNativeLibrary_set_singleton :: MethodBind\nbindGDNativeLibrary_set_singleton\n  = unsafePerformIO $\n      withCString \"GDNativeLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"set_singleton\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_singleton ::\n                (GDNativeLibrary :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_singleton cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDNativeLibrary_set_singleton\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDNativeLibrary \"set_singleton\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.GDNativeLibrary.set_singleton\n\n{-# NOINLINE bindGDNativeLibrary_set_symbol_prefix #-}\n\nbindGDNativeLibrary_set_symbol_prefix :: MethodBind\nbindGDNativeLibrary_set_symbol_prefix\n  = unsafePerformIO $\n      withCString \"GDNativeLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"set_symbol_prefix\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_symbol_prefix ::\n                    (GDNativeLibrary :< cls, Object :< cls) =>\n                    cls -> GodotString -> IO ()\nset_symbol_prefix cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDNativeLibrary_set_symbol_prefix\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDNativeLibrary \"set_symbol_prefix\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GDNativeLibrary.set_symbol_prefix\n\n{-# NOINLINE bindGDNativeLibrary_should_load_once #-}\n\nbindGDNativeLibrary_should_load_once :: MethodBind\nbindGDNativeLibrary_should_load_once\n  = unsafePerformIO $\n      withCString \"GDNativeLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"should_load_once\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nshould_load_once ::\n                   (GDNativeLibrary :< cls, Object :< cls) => cls -> IO Bool\nshould_load_once cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDNativeLibrary_should_load_once\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDNativeLibrary \"should_load_once\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.GDNativeLibrary.should_load_once"
  },
  {
    "path": "src/Godot/Core/GDScript.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.GDScript\n       (Godot.Core.GDScript.get_as_byte_code, Godot.Core.GDScript.new)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Script()\n\n{-# NOINLINE bindGDScript_get_as_byte_code #-}\n\nbindGDScript_get_as_byte_code :: MethodBind\nbindGDScript_get_as_byte_code\n  = unsafePerformIO $\n      withCString \"GDScript\" $\n        \\ clsNamePtr ->\n          withCString \"get_as_byte_code\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_as_byte_code ::\n                   (GDScript :< cls, Object :< cls) => cls -> IO PoolByteArray\nget_as_byte_code cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDScript_get_as_byte_code (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDScript \"get_as_byte_code\" '[]\n           (IO PoolByteArray)\n         where\n        nodeMethod = Godot.Core.GDScript.get_as_byte_code\n\n{-# NOINLINE bindGDScript_new #-}\n\nbindGDScript_new :: MethodBind\nbindGDScript_new\n  = unsafePerformIO $\n      withCString \"GDScript\" $\n        \\ clsNamePtr ->\n          withCString \"new\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nnew ::\n      (GDScript :< cls, Object :< cls) =>\n      cls -> [Variant 'GodotTy] -> IO GodotVariant\nnew cls varargs\n  = withVariantArray ([] ++ varargs)\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDScript_new (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDScript \"new\" '[[Variant 'GodotTy]]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.GDScript.new"
  },
  {
    "path": "src/Godot/Core/GDScriptFunctionState.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.GDScriptFunctionState\n       (Godot.Core.GDScriptFunctionState.sig_completed,\n        Godot.Core.GDScriptFunctionState._signal_callback,\n        Godot.Core.GDScriptFunctionState.is_valid,\n        Godot.Core.GDScriptFunctionState.resume)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\nsig_completed ::\n              Godot.Internal.Dispatch.Signal GDScriptFunctionState\nsig_completed = Godot.Internal.Dispatch.Signal \"completed\"\n\ninstance NodeSignal GDScriptFunctionState \"completed\"\n           '[GodotVariant]\n\n{-# NOINLINE bindGDScriptFunctionState__signal_callback #-}\n\nbindGDScriptFunctionState__signal_callback :: MethodBind\nbindGDScriptFunctionState__signal_callback\n  = unsafePerformIO $\n      withCString \"GDScriptFunctionState\" $\n        \\ clsNamePtr ->\n          withCString \"_signal_callback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_signal_callback ::\n                   (GDScriptFunctionState :< cls, Object :< cls) =>\n                   cls -> [Variant 'GodotTy] -> IO GodotVariant\n_signal_callback cls varargs\n  = withVariantArray ([] ++ varargs)\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDScriptFunctionState__signal_callback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDScriptFunctionState \"_signal_callback\"\n           '[[Variant 'GodotTy]]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.GDScriptFunctionState._signal_callback\n\n{-# NOINLINE bindGDScriptFunctionState_is_valid #-}\n\nbindGDScriptFunctionState_is_valid :: MethodBind\nbindGDScriptFunctionState_is_valid\n  = unsafePerformIO $\n      withCString \"GDScriptFunctionState\" $\n        \\ clsNamePtr ->\n          withCString \"is_valid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_valid ::\n           (GDScriptFunctionState :< cls, Object :< cls) =>\n           cls -> Maybe Bool -> IO Bool\nis_valid cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDScriptFunctionState_is_valid\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDScriptFunctionState \"is_valid\" '[Maybe Bool]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.GDScriptFunctionState.is_valid\n\n{-# NOINLINE bindGDScriptFunctionState_resume #-}\n\nbindGDScriptFunctionState_resume :: MethodBind\nbindGDScriptFunctionState_resume\n  = unsafePerformIO $\n      withCString \"GDScriptFunctionState\" $\n        \\ clsNamePtr ->\n          withCString \"resume\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nresume ::\n         (GDScriptFunctionState :< cls, Object :< cls) =>\n         cls -> Maybe GodotVariant -> IO GodotVariant\nresume cls arg1\n  = withVariantArray [maybe VariantNil toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGDScriptFunctionState_resume\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GDScriptFunctionState \"resume\"\n           '[Maybe GodotVariant]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.GDScriptFunctionState.resume"
  },
  {
    "path": "src/Godot/Core/GIProbe.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.GIProbe\n       (Godot.Core.GIProbe._SUBDIV_64, Godot.Core.GIProbe._SUBDIV_256,\n        Godot.Core.GIProbe._SUBDIV_MAX, Godot.Core.GIProbe._SUBDIV_128,\n        Godot.Core.GIProbe._SUBDIV_512, Godot.Core.GIProbe.bake,\n        Godot.Core.GIProbe.debug_bake, Godot.Core.GIProbe.get_bias,\n        Godot.Core.GIProbe.get_dynamic_range,\n        Godot.Core.GIProbe.get_energy, Godot.Core.GIProbe.get_extents,\n        Godot.Core.GIProbe.get_normal_bias,\n        Godot.Core.GIProbe.get_probe_data,\n        Godot.Core.GIProbe.get_propagation, Godot.Core.GIProbe.get_subdiv,\n        Godot.Core.GIProbe.is_compressed, Godot.Core.GIProbe.is_interior,\n        Godot.Core.GIProbe.set_bias, Godot.Core.GIProbe.set_compress,\n        Godot.Core.GIProbe.set_dynamic_range,\n        Godot.Core.GIProbe.set_energy, Godot.Core.GIProbe.set_extents,\n        Godot.Core.GIProbe.set_interior,\n        Godot.Core.GIProbe.set_normal_bias,\n        Godot.Core.GIProbe.set_probe_data,\n        Godot.Core.GIProbe.set_propagation, Godot.Core.GIProbe.set_subdiv)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualInstance()\n\n_SUBDIV_64 :: Int\n_SUBDIV_64 = 0\n\n_SUBDIV_256 :: Int\n_SUBDIV_256 = 2\n\n_SUBDIV_MAX :: Int\n_SUBDIV_MAX = 4\n\n_SUBDIV_128 :: Int\n_SUBDIV_128 = 1\n\n_SUBDIV_512 :: Int\n_SUBDIV_512 = 3\n\ninstance NodeProperty GIProbe \"bias\" Float 'False where\n        nodeProperty = (get_bias, wrapDroppingSetter set_bias, Nothing)\n\ninstance NodeProperty GIProbe \"compress\" Bool 'False where\n        nodeProperty\n          = (is_compressed, wrapDroppingSetter set_compress, Nothing)\n\ninstance NodeProperty GIProbe \"data\" GIProbeData 'False where\n        nodeProperty\n          = (get_probe_data, wrapDroppingSetter set_probe_data, Nothing)\n\ninstance NodeProperty GIProbe \"dynamic_range\" Int 'False where\n        nodeProperty\n          = (get_dynamic_range, wrapDroppingSetter set_dynamic_range,\n             Nothing)\n\ninstance NodeProperty GIProbe \"energy\" Float 'False where\n        nodeProperty = (get_energy, wrapDroppingSetter set_energy, Nothing)\n\ninstance NodeProperty GIProbe \"extents\" Vector3 'False where\n        nodeProperty\n          = (get_extents, wrapDroppingSetter set_extents, Nothing)\n\ninstance NodeProperty GIProbe \"interior\" Bool 'False where\n        nodeProperty\n          = (is_interior, wrapDroppingSetter set_interior, Nothing)\n\ninstance NodeProperty GIProbe \"normal_bias\" Float 'False where\n        nodeProperty\n          = (get_normal_bias, wrapDroppingSetter set_normal_bias, Nothing)\n\ninstance NodeProperty GIProbe \"propagation\" Float 'False where\n        nodeProperty\n          = (get_propagation, wrapDroppingSetter set_propagation, Nothing)\n\ninstance NodeProperty GIProbe \"subdiv\" Int 'False where\n        nodeProperty = (get_subdiv, wrapDroppingSetter set_subdiv, Nothing)\n\n{-# NOINLINE bindGIProbe_bake #-}\n\n-- | Bakes the effect from all @GeometryInstance@s marked with @GeometryInstance.use_in_baked_light@ and @Light@s marked with either @Light.BAKE_INDIRECT@ or @Light.BAKE_ALL@. If @create_visual_debug@ is @true@, after baking the light, this will generate a @MultiMesh@ that has a cube representing each solid cell with each cube colored to the cell's albedo color. This can be used to visualize the @GIProbe@'s data and debug any issues that may be occurring.\nbindGIProbe_bake :: MethodBind\nbindGIProbe_bake\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"bake\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Bakes the effect from all @GeometryInstance@s marked with @GeometryInstance.use_in_baked_light@ and @Light@s marked with either @Light.BAKE_INDIRECT@ or @Light.BAKE_ALL@. If @create_visual_debug@ is @true@, after baking the light, this will generate a @MultiMesh@ that has a cube representing each solid cell with each cube colored to the cell's albedo color. This can be used to visualize the @GIProbe@'s data and debug any issues that may be occurring.\nbake ::\n       (GIProbe :< cls, Object :< cls) =>\n       cls -> Maybe Node -> Maybe Bool -> IO ()\nbake cls arg1 arg2\n  = withVariantArray\n      [maybe VariantNil toVariant arg1,\n       maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_bake (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"bake\" '[Maybe Node, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GIProbe.bake\n\n{-# NOINLINE bindGIProbe_debug_bake #-}\n\n-- | Calls @method bake@ with @create_visual_debug@ enabled.\nbindGIProbe_debug_bake :: MethodBind\nbindGIProbe_debug_bake\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"debug_bake\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calls @method bake@ with @create_visual_debug@ enabled.\ndebug_bake :: (GIProbe :< cls, Object :< cls) => cls -> IO ()\ndebug_bake cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_debug_bake (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"debug_bake\" '[] (IO ()) where\n        nodeMethod = Godot.Core.GIProbe.debug_bake\n\n{-# NOINLINE bindGIProbe_get_bias #-}\n\n-- | Offsets the lookup of the light contribution from the @GIProbe@. This can be used to avoid self-shadowing, but may introduce light leaking at higher values. This and @normal_bias@ should be played around with to minimize self-shadowing and light leaking.\n--   \t\t\t__Note:__ @bias@ should usually be above 1.0 as that is the size of the voxels.\nbindGIProbe_get_bias :: MethodBind\nbindGIProbe_get_bias\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"get_bias\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Offsets the lookup of the light contribution from the @GIProbe@. This can be used to avoid self-shadowing, but may introduce light leaking at higher values. This and @normal_bias@ should be played around with to minimize self-shadowing and light leaking.\n--   \t\t\t__Note:__ @bias@ should usually be above 1.0 as that is the size of the voxels.\nget_bias :: (GIProbe :< cls, Object :< cls) => cls -> IO Float\nget_bias cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_get_bias (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"get_bias\" '[] (IO Float) where\n        nodeMethod = Godot.Core.GIProbe.get_bias\n\n{-# NOINLINE bindGIProbe_get_dynamic_range #-}\n\n-- | The maximum brightness that the @GIProbe@ will recognize. Brightness will be scaled within this range.\nbindGIProbe_get_dynamic_range :: MethodBind\nbindGIProbe_get_dynamic_range\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"get_dynamic_range\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum brightness that the @GIProbe@ will recognize. Brightness will be scaled within this range.\nget_dynamic_range ::\n                    (GIProbe :< cls, Object :< cls) => cls -> IO Int\nget_dynamic_range cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_get_dynamic_range (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"get_dynamic_range\" '[] (IO Int) where\n        nodeMethod = Godot.Core.GIProbe.get_dynamic_range\n\n{-# NOINLINE bindGIProbe_get_energy #-}\n\n-- | Energy multiplier. Makes the lighting contribution from the @GIProbe@ brighter.\nbindGIProbe_get_energy :: MethodBind\nbindGIProbe_get_energy\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"get_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Energy multiplier. Makes the lighting contribution from the @GIProbe@ brighter.\nget_energy :: (GIProbe :< cls, Object :< cls) => cls -> IO Float\nget_energy cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_get_energy (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"get_energy\" '[] (IO Float) where\n        nodeMethod = Godot.Core.GIProbe.get_energy\n\n{-# NOINLINE bindGIProbe_get_extents #-}\n\n-- | The size of the area covered by the @GIProbe@. If you make the extents larger without increasing the subdivisions with @subdiv@, the size of each cell will increase and result in lower detailed lighting.\nbindGIProbe_get_extents :: MethodBind\nbindGIProbe_get_extents\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"get_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size of the area covered by the @GIProbe@. If you make the extents larger without increasing the subdivisions with @subdiv@, the size of each cell will increase and result in lower detailed lighting.\nget_extents :: (GIProbe :< cls, Object :< cls) => cls -> IO Vector3\nget_extents cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_get_extents (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"get_extents\" '[] (IO Vector3) where\n        nodeMethod = Godot.Core.GIProbe.get_extents\n\n{-# NOINLINE bindGIProbe_get_normal_bias #-}\n\n-- | Offsets the lookup into the @GIProbe@ based on the object's normal direction. Can be used to reduce some self-shadowing artifacts.\nbindGIProbe_get_normal_bias :: MethodBind\nbindGIProbe_get_normal_bias\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"get_normal_bias\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Offsets the lookup into the @GIProbe@ based on the object's normal direction. Can be used to reduce some self-shadowing artifacts.\nget_normal_bias ::\n                  (GIProbe :< cls, Object :< cls) => cls -> IO Float\nget_normal_bias cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_get_normal_bias (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"get_normal_bias\" '[] (IO Float) where\n        nodeMethod = Godot.Core.GIProbe.get_normal_bias\n\n{-# NOINLINE bindGIProbe_get_probe_data #-}\n\n-- | The @GIProbeData@ resource that holds the data for this @GIProbe@.\nbindGIProbe_get_probe_data :: MethodBind\nbindGIProbe_get_probe_data\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"get_probe_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @GIProbeData@ resource that holds the data for this @GIProbe@.\nget_probe_data ::\n                 (GIProbe :< cls, Object :< cls) => cls -> IO GIProbeData\nget_probe_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_get_probe_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"get_probe_data\" '[] (IO GIProbeData)\n         where\n        nodeMethod = Godot.Core.GIProbe.get_probe_data\n\n{-# NOINLINE bindGIProbe_get_propagation #-}\n\n-- | How much light propagates through the probe internally. A higher value allows light to spread further.\nbindGIProbe_get_propagation :: MethodBind\nbindGIProbe_get_propagation\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"get_propagation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How much light propagates through the probe internally. A higher value allows light to spread further.\nget_propagation ::\n                  (GIProbe :< cls, Object :< cls) => cls -> IO Float\nget_propagation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_get_propagation (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"get_propagation\" '[] (IO Float) where\n        nodeMethod = Godot.Core.GIProbe.get_propagation\n\n{-# NOINLINE bindGIProbe_get_subdiv #-}\n\n-- | Number of times to subdivide the grid that the @GIProbe@ operates on. A higher number results in finer detail and thus higher visual quality, while lower numbers result in better performance.\nbindGIProbe_get_subdiv :: MethodBind\nbindGIProbe_get_subdiv\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"get_subdiv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of times to subdivide the grid that the @GIProbe@ operates on. A higher number results in finer detail and thus higher visual quality, while lower numbers result in better performance.\nget_subdiv :: (GIProbe :< cls, Object :< cls) => cls -> IO Int\nget_subdiv cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_get_subdiv (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"get_subdiv\" '[] (IO Int) where\n        nodeMethod = Godot.Core.GIProbe.get_subdiv\n\n{-# NOINLINE bindGIProbe_is_compressed #-}\n\n-- | If @true@, the data for this @GIProbe@ will be compressed. Compression saves space, but results in far worse visual quality.\nbindGIProbe_is_compressed :: MethodBind\nbindGIProbe_is_compressed\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"is_compressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the data for this @GIProbe@ will be compressed. Compression saves space, but results in far worse visual quality.\nis_compressed :: (GIProbe :< cls, Object :< cls) => cls -> IO Bool\nis_compressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_is_compressed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"is_compressed\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.GIProbe.is_compressed\n\n{-# NOINLINE bindGIProbe_is_interior #-}\n\n-- | If @true@, ignores the sky contribution when calculating lighting.\nbindGIProbe_is_interior :: MethodBind\nbindGIProbe_is_interior\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"is_interior\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, ignores the sky contribution when calculating lighting.\nis_interior :: (GIProbe :< cls, Object :< cls) => cls -> IO Bool\nis_interior cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_is_interior (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"is_interior\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.GIProbe.is_interior\n\n{-# NOINLINE bindGIProbe_set_bias #-}\n\n-- | Offsets the lookup of the light contribution from the @GIProbe@. This can be used to avoid self-shadowing, but may introduce light leaking at higher values. This and @normal_bias@ should be played around with to minimize self-shadowing and light leaking.\n--   \t\t\t__Note:__ @bias@ should usually be above 1.0 as that is the size of the voxels.\nbindGIProbe_set_bias :: MethodBind\nbindGIProbe_set_bias\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_bias\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Offsets the lookup of the light contribution from the @GIProbe@. This can be used to avoid self-shadowing, but may introduce light leaking at higher values. This and @normal_bias@ should be played around with to minimize self-shadowing and light leaking.\n--   \t\t\t__Note:__ @bias@ should usually be above 1.0 as that is the size of the voxels.\nset_bias ::\n           (GIProbe :< cls, Object :< cls) => cls -> Float -> IO ()\nset_bias cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_set_bias (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"set_bias\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.GIProbe.set_bias\n\n{-# NOINLINE bindGIProbe_set_compress #-}\n\n-- | If @true@, the data for this @GIProbe@ will be compressed. Compression saves space, but results in far worse visual quality.\nbindGIProbe_set_compress :: MethodBind\nbindGIProbe_set_compress\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_compress\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the data for this @GIProbe@ will be compressed. Compression saves space, but results in far worse visual quality.\nset_compress ::\n               (GIProbe :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_compress cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_set_compress (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"set_compress\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.GIProbe.set_compress\n\n{-# NOINLINE bindGIProbe_set_dynamic_range #-}\n\n-- | The maximum brightness that the @GIProbe@ will recognize. Brightness will be scaled within this range.\nbindGIProbe_set_dynamic_range :: MethodBind\nbindGIProbe_set_dynamic_range\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_dynamic_range\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum brightness that the @GIProbe@ will recognize. Brightness will be scaled within this range.\nset_dynamic_range ::\n                    (GIProbe :< cls, Object :< cls) => cls -> Int -> IO ()\nset_dynamic_range cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_set_dynamic_range (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"set_dynamic_range\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.GIProbe.set_dynamic_range\n\n{-# NOINLINE bindGIProbe_set_energy #-}\n\n-- | Energy multiplier. Makes the lighting contribution from the @GIProbe@ brighter.\nbindGIProbe_set_energy :: MethodBind\nbindGIProbe_set_energy\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Energy multiplier. Makes the lighting contribution from the @GIProbe@ brighter.\nset_energy ::\n             (GIProbe :< cls, Object :< cls) => cls -> Float -> IO ()\nset_energy cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_set_energy (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"set_energy\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.GIProbe.set_energy\n\n{-# NOINLINE bindGIProbe_set_extents #-}\n\n-- | The size of the area covered by the @GIProbe@. If you make the extents larger without increasing the subdivisions with @subdiv@, the size of each cell will increase and result in lower detailed lighting.\nbindGIProbe_set_extents :: MethodBind\nbindGIProbe_set_extents\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size of the area covered by the @GIProbe@. If you make the extents larger without increasing the subdivisions with @subdiv@, the size of each cell will increase and result in lower detailed lighting.\nset_extents ::\n              (GIProbe :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_extents cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_set_extents (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"set_extents\" '[Vector3] (IO ()) where\n        nodeMethod = Godot.Core.GIProbe.set_extents\n\n{-# NOINLINE bindGIProbe_set_interior #-}\n\n-- | If @true@, ignores the sky contribution when calculating lighting.\nbindGIProbe_set_interior :: MethodBind\nbindGIProbe_set_interior\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_interior\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, ignores the sky contribution when calculating lighting.\nset_interior ::\n               (GIProbe :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_interior cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_set_interior (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"set_interior\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.GIProbe.set_interior\n\n{-# NOINLINE bindGIProbe_set_normal_bias #-}\n\n-- | Offsets the lookup into the @GIProbe@ based on the object's normal direction. Can be used to reduce some self-shadowing artifacts.\nbindGIProbe_set_normal_bias :: MethodBind\nbindGIProbe_set_normal_bias\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_normal_bias\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Offsets the lookup into the @GIProbe@ based on the object's normal direction. Can be used to reduce some self-shadowing artifacts.\nset_normal_bias ::\n                  (GIProbe :< cls, Object :< cls) => cls -> Float -> IO ()\nset_normal_bias cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_set_normal_bias (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"set_normal_bias\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.GIProbe.set_normal_bias\n\n{-# NOINLINE bindGIProbe_set_probe_data #-}\n\n-- | The @GIProbeData@ resource that holds the data for this @GIProbe@.\nbindGIProbe_set_probe_data :: MethodBind\nbindGIProbe_set_probe_data\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_probe_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @GIProbeData@ resource that holds the data for this @GIProbe@.\nset_probe_data ::\n                 (GIProbe :< cls, Object :< cls) => cls -> GIProbeData -> IO ()\nset_probe_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_set_probe_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"set_probe_data\" '[GIProbeData] (IO ())\n         where\n        nodeMethod = Godot.Core.GIProbe.set_probe_data\n\n{-# NOINLINE bindGIProbe_set_propagation #-}\n\n-- | How much light propagates through the probe internally. A higher value allows light to spread further.\nbindGIProbe_set_propagation :: MethodBind\nbindGIProbe_set_propagation\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_propagation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How much light propagates through the probe internally. A higher value allows light to spread further.\nset_propagation ::\n                  (GIProbe :< cls, Object :< cls) => cls -> Float -> IO ()\nset_propagation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_set_propagation (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"set_propagation\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.GIProbe.set_propagation\n\n{-# NOINLINE bindGIProbe_set_subdiv #-}\n\n-- | Number of times to subdivide the grid that the @GIProbe@ operates on. A higher number results in finer detail and thus higher visual quality, while lower numbers result in better performance.\nbindGIProbe_set_subdiv :: MethodBind\nbindGIProbe_set_subdiv\n  = unsafePerformIO $\n      withCString \"GIProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_subdiv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of times to subdivide the grid that the @GIProbe@ operates on. A higher number results in finer detail and thus higher visual quality, while lower numbers result in better performance.\nset_subdiv ::\n             (GIProbe :< cls, Object :< cls) => cls -> Int -> IO ()\nset_subdiv cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbe_set_subdiv (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbe \"set_subdiv\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.GIProbe.set_subdiv"
  },
  {
    "path": "src/Godot/Core/GIProbeData.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.GIProbeData\n       (Godot.Core.GIProbeData.get_bias,\n        Godot.Core.GIProbeData.get_bounds,\n        Godot.Core.GIProbeData.get_cell_size,\n        Godot.Core.GIProbeData.get_dynamic_data,\n        Godot.Core.GIProbeData.get_dynamic_range,\n        Godot.Core.GIProbeData.get_energy,\n        Godot.Core.GIProbeData.get_normal_bias,\n        Godot.Core.GIProbeData.get_propagation,\n        Godot.Core.GIProbeData.get_to_cell_xform,\n        Godot.Core.GIProbeData.is_compressed,\n        Godot.Core.GIProbeData.is_interior,\n        Godot.Core.GIProbeData.set_bias, Godot.Core.GIProbeData.set_bounds,\n        Godot.Core.GIProbeData.set_cell_size,\n        Godot.Core.GIProbeData.set_compress,\n        Godot.Core.GIProbeData.set_dynamic_data,\n        Godot.Core.GIProbeData.set_dynamic_range,\n        Godot.Core.GIProbeData.set_energy,\n        Godot.Core.GIProbeData.set_interior,\n        Godot.Core.GIProbeData.set_normal_bias,\n        Godot.Core.GIProbeData.set_propagation,\n        Godot.Core.GIProbeData.set_to_cell_xform)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty GIProbeData \"bias\" Float 'False where\n        nodeProperty = (get_bias, wrapDroppingSetter set_bias, Nothing)\n\ninstance NodeProperty GIProbeData \"bounds\" Aabb 'False where\n        nodeProperty = (get_bounds, wrapDroppingSetter set_bounds, Nothing)\n\ninstance NodeProperty GIProbeData \"cell_size\" Float 'False where\n        nodeProperty\n          = (get_cell_size, wrapDroppingSetter set_cell_size, Nothing)\n\ninstance NodeProperty GIProbeData \"compress\" Bool 'False where\n        nodeProperty\n          = (is_compressed, wrapDroppingSetter set_compress, Nothing)\n\ninstance NodeProperty GIProbeData \"dynamic_data\" PoolIntArray\n           'False\n         where\n        nodeProperty\n          = (get_dynamic_data, wrapDroppingSetter set_dynamic_data, Nothing)\n\ninstance NodeProperty GIProbeData \"dynamic_range\" Int 'False where\n        nodeProperty\n          = (get_dynamic_range, wrapDroppingSetter set_dynamic_range,\n             Nothing)\n\ninstance NodeProperty GIProbeData \"energy\" Float 'False where\n        nodeProperty = (get_energy, wrapDroppingSetter set_energy, Nothing)\n\ninstance NodeProperty GIProbeData \"interior\" Bool 'False where\n        nodeProperty\n          = (is_interior, wrapDroppingSetter set_interior, Nothing)\n\ninstance NodeProperty GIProbeData \"normal_bias\" Float 'False where\n        nodeProperty\n          = (get_normal_bias, wrapDroppingSetter set_normal_bias, Nothing)\n\ninstance NodeProperty GIProbeData \"propagation\" Float 'False where\n        nodeProperty\n          = (get_propagation, wrapDroppingSetter set_propagation, Nothing)\n\ninstance NodeProperty GIProbeData \"to_cell_xform\" Transform 'False\n         where\n        nodeProperty\n          = (get_to_cell_xform, wrapDroppingSetter set_to_cell_xform,\n             Nothing)\n\n{-# NOINLINE bindGIProbeData_get_bias #-}\n\nbindGIProbeData_get_bias :: MethodBind\nbindGIProbeData_get_bias\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"get_bias\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_bias :: (GIProbeData :< cls, Object :< cls) => cls -> IO Float\nget_bias cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_get_bias (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"get_bias\" '[] (IO Float) where\n        nodeMethod = Godot.Core.GIProbeData.get_bias\n\n{-# NOINLINE bindGIProbeData_get_bounds #-}\n\nbindGIProbeData_get_bounds :: MethodBind\nbindGIProbeData_get_bounds\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"get_bounds\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_bounds :: (GIProbeData :< cls, Object :< cls) => cls -> IO Aabb\nget_bounds cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_get_bounds (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"get_bounds\" '[] (IO Aabb) where\n        nodeMethod = Godot.Core.GIProbeData.get_bounds\n\n{-# NOINLINE bindGIProbeData_get_cell_size #-}\n\nbindGIProbeData_get_cell_size :: MethodBind\nbindGIProbeData_get_cell_size\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"get_cell_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_cell_size ::\n                (GIProbeData :< cls, Object :< cls) => cls -> IO Float\nget_cell_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_get_cell_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"get_cell_size\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.GIProbeData.get_cell_size\n\n{-# NOINLINE bindGIProbeData_get_dynamic_data #-}\n\nbindGIProbeData_get_dynamic_data :: MethodBind\nbindGIProbeData_get_dynamic_data\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"get_dynamic_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_dynamic_data ::\n                   (GIProbeData :< cls, Object :< cls) => cls -> IO PoolIntArray\nget_dynamic_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_get_dynamic_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"get_dynamic_data\" '[]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.GIProbeData.get_dynamic_data\n\n{-# NOINLINE bindGIProbeData_get_dynamic_range #-}\n\nbindGIProbeData_get_dynamic_range :: MethodBind\nbindGIProbeData_get_dynamic_range\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"get_dynamic_range\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_dynamic_range ::\n                    (GIProbeData :< cls, Object :< cls) => cls -> IO Int\nget_dynamic_range cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_get_dynamic_range\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"get_dynamic_range\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.GIProbeData.get_dynamic_range\n\n{-# NOINLINE bindGIProbeData_get_energy #-}\n\nbindGIProbeData_get_energy :: MethodBind\nbindGIProbeData_get_energy\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"get_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_energy ::\n             (GIProbeData :< cls, Object :< cls) => cls -> IO Float\nget_energy cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_get_energy (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"get_energy\" '[] (IO Float) where\n        nodeMethod = Godot.Core.GIProbeData.get_energy\n\n{-# NOINLINE bindGIProbeData_get_normal_bias #-}\n\nbindGIProbeData_get_normal_bias :: MethodBind\nbindGIProbeData_get_normal_bias\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"get_normal_bias\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_normal_bias ::\n                  (GIProbeData :< cls, Object :< cls) => cls -> IO Float\nget_normal_bias cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_get_normal_bias (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"get_normal_bias\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.GIProbeData.get_normal_bias\n\n{-# NOINLINE bindGIProbeData_get_propagation #-}\n\nbindGIProbeData_get_propagation :: MethodBind\nbindGIProbeData_get_propagation\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"get_propagation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_propagation ::\n                  (GIProbeData :< cls, Object :< cls) => cls -> IO Float\nget_propagation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_get_propagation (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"get_propagation\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.GIProbeData.get_propagation\n\n{-# NOINLINE bindGIProbeData_get_to_cell_xform #-}\n\nbindGIProbeData_get_to_cell_xform :: MethodBind\nbindGIProbeData_get_to_cell_xform\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"get_to_cell_xform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_to_cell_xform ::\n                    (GIProbeData :< cls, Object :< cls) => cls -> IO Transform\nget_to_cell_xform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_get_to_cell_xform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"get_to_cell_xform\" '[]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.GIProbeData.get_to_cell_xform\n\n{-# NOINLINE bindGIProbeData_is_compressed #-}\n\nbindGIProbeData_is_compressed :: MethodBind\nbindGIProbeData_is_compressed\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"is_compressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_compressed ::\n                (GIProbeData :< cls, Object :< cls) => cls -> IO Bool\nis_compressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_is_compressed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"is_compressed\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.GIProbeData.is_compressed\n\n{-# NOINLINE bindGIProbeData_is_interior #-}\n\nbindGIProbeData_is_interior :: MethodBind\nbindGIProbeData_is_interior\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"is_interior\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_interior ::\n              (GIProbeData :< cls, Object :< cls) => cls -> IO Bool\nis_interior cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_is_interior (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"is_interior\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.GIProbeData.is_interior\n\n{-# NOINLINE bindGIProbeData_set_bias #-}\n\nbindGIProbeData_set_bias :: MethodBind\nbindGIProbeData_set_bias\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"set_bias\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_bias ::\n           (GIProbeData :< cls, Object :< cls) => cls -> Float -> IO ()\nset_bias cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_set_bias (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"set_bias\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.GIProbeData.set_bias\n\n{-# NOINLINE bindGIProbeData_set_bounds #-}\n\nbindGIProbeData_set_bounds :: MethodBind\nbindGIProbeData_set_bounds\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"set_bounds\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_bounds ::\n             (GIProbeData :< cls, Object :< cls) => cls -> Aabb -> IO ()\nset_bounds cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_set_bounds (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"set_bounds\" '[Aabb] (IO ()) where\n        nodeMethod = Godot.Core.GIProbeData.set_bounds\n\n{-# NOINLINE bindGIProbeData_set_cell_size #-}\n\nbindGIProbeData_set_cell_size :: MethodBind\nbindGIProbeData_set_cell_size\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"set_cell_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_cell_size ::\n                (GIProbeData :< cls, Object :< cls) => cls -> Float -> IO ()\nset_cell_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_set_cell_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"set_cell_size\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.GIProbeData.set_cell_size\n\n{-# NOINLINE bindGIProbeData_set_compress #-}\n\nbindGIProbeData_set_compress :: MethodBind\nbindGIProbeData_set_compress\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"set_compress\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_compress ::\n               (GIProbeData :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_compress cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_set_compress (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"set_compress\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.GIProbeData.set_compress\n\n{-# NOINLINE bindGIProbeData_set_dynamic_data #-}\n\nbindGIProbeData_set_dynamic_data :: MethodBind\nbindGIProbeData_set_dynamic_data\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"set_dynamic_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_dynamic_data ::\n                   (GIProbeData :< cls, Object :< cls) => cls -> PoolIntArray -> IO ()\nset_dynamic_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_set_dynamic_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"set_dynamic_data\" '[PoolIntArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GIProbeData.set_dynamic_data\n\n{-# NOINLINE bindGIProbeData_set_dynamic_range #-}\n\nbindGIProbeData_set_dynamic_range :: MethodBind\nbindGIProbeData_set_dynamic_range\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"set_dynamic_range\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_dynamic_range ::\n                    (GIProbeData :< cls, Object :< cls) => cls -> Int -> IO ()\nset_dynamic_range cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_set_dynamic_range\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"set_dynamic_range\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.GIProbeData.set_dynamic_range\n\n{-# NOINLINE bindGIProbeData_set_energy #-}\n\nbindGIProbeData_set_energy :: MethodBind\nbindGIProbeData_set_energy\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"set_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_energy ::\n             (GIProbeData :< cls, Object :< cls) => cls -> Float -> IO ()\nset_energy cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_set_energy (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"set_energy\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.GIProbeData.set_energy\n\n{-# NOINLINE bindGIProbeData_set_interior #-}\n\nbindGIProbeData_set_interior :: MethodBind\nbindGIProbeData_set_interior\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"set_interior\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_interior ::\n               (GIProbeData :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_interior cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_set_interior (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"set_interior\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.GIProbeData.set_interior\n\n{-# NOINLINE bindGIProbeData_set_normal_bias #-}\n\nbindGIProbeData_set_normal_bias :: MethodBind\nbindGIProbeData_set_normal_bias\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"set_normal_bias\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_normal_bias ::\n                  (GIProbeData :< cls, Object :< cls) => cls -> Float -> IO ()\nset_normal_bias cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_set_normal_bias (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"set_normal_bias\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.GIProbeData.set_normal_bias\n\n{-# NOINLINE bindGIProbeData_set_propagation #-}\n\nbindGIProbeData_set_propagation :: MethodBind\nbindGIProbeData_set_propagation\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"set_propagation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_propagation ::\n                  (GIProbeData :< cls, Object :< cls) => cls -> Float -> IO ()\nset_propagation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_set_propagation (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"set_propagation\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.GIProbeData.set_propagation\n\n{-# NOINLINE bindGIProbeData_set_to_cell_xform #-}\n\nbindGIProbeData_set_to_cell_xform :: MethodBind\nbindGIProbeData_set_to_cell_xform\n  = unsafePerformIO $\n      withCString \"GIProbeData\" $\n        \\ clsNamePtr ->\n          withCString \"set_to_cell_xform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_to_cell_xform ::\n                    (GIProbeData :< cls, Object :< cls) => cls -> Transform -> IO ()\nset_to_cell_xform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGIProbeData_set_to_cell_xform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GIProbeData \"set_to_cell_xform\" '[Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GIProbeData.set_to_cell_xform"
  },
  {
    "path": "src/Godot/Core/Generic6DOFJoint.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Generic6DOFJoint\n       (Godot.Core.Generic6DOFJoint._PARAM_ANGULAR_LOWER_LIMIT,\n        Godot.Core.Generic6DOFJoint._FLAG_ENABLE_LINEAR_MOTOR,\n        Godot.Core.Generic6DOFJoint._PARAM_LINEAR_MOTOR_TARGET_VELOCITY,\n        Godot.Core.Generic6DOFJoint._PARAM_LINEAR_DAMPING,\n        Godot.Core.Generic6DOFJoint._PARAM_ANGULAR_ERP,\n        Godot.Core.Generic6DOFJoint._PARAM_ANGULAR_DAMPING,\n        Godot.Core.Generic6DOFJoint._FLAG_ENABLE_ANGULAR_LIMIT,\n        Godot.Core.Generic6DOFJoint._PARAM_LINEAR_LIMIT_SOFTNESS,\n        Godot.Core.Generic6DOFJoint._PARAM_ANGULAR_MOTOR_TARGET_VELOCITY,\n        Godot.Core.Generic6DOFJoint._PARAM_LINEAR_LOWER_LIMIT,\n        Godot.Core.Generic6DOFJoint._PARAM_ANGULAR_MOTOR_FORCE_LIMIT,\n        Godot.Core.Generic6DOFJoint._PARAM_LINEAR_RESTITUTION,\n        Godot.Core.Generic6DOFJoint._FLAG_ENABLE_ANGULAR_SPRING,\n        Godot.Core.Generic6DOFJoint._PARAM_MAX,\n        Godot.Core.Generic6DOFJoint._FLAG_MAX,\n        Godot.Core.Generic6DOFJoint._PARAM_ANGULAR_LIMIT_SOFTNESS,\n        Godot.Core.Generic6DOFJoint._PARAM_LINEAR_UPPER_LIMIT,\n        Godot.Core.Generic6DOFJoint._PARAM_ANGULAR_FORCE_LIMIT,\n        Godot.Core.Generic6DOFJoint._FLAG_ENABLE_LINEAR_LIMIT,\n        Godot.Core.Generic6DOFJoint._PARAM_ANGULAR_UPPER_LIMIT,\n        Godot.Core.Generic6DOFJoint._FLAG_ENABLE_LINEAR_SPRING,\n        Godot.Core.Generic6DOFJoint._FLAG_ENABLE_MOTOR,\n        Godot.Core.Generic6DOFJoint._PARAM_LINEAR_MOTOR_FORCE_LIMIT,\n        Godot.Core.Generic6DOFJoint._PARAM_ANGULAR_RESTITUTION,\n        Godot.Core.Generic6DOFJoint._get_angular_hi_limit_x,\n        Godot.Core.Generic6DOFJoint._get_angular_hi_limit_y,\n        Godot.Core.Generic6DOFJoint._get_angular_hi_limit_z,\n        Godot.Core.Generic6DOFJoint._get_angular_lo_limit_x,\n        Godot.Core.Generic6DOFJoint._get_angular_lo_limit_y,\n        Godot.Core.Generic6DOFJoint._get_angular_lo_limit_z,\n        Godot.Core.Generic6DOFJoint._set_angular_hi_limit_x,\n        Godot.Core.Generic6DOFJoint._set_angular_hi_limit_y,\n        Godot.Core.Generic6DOFJoint._set_angular_hi_limit_z,\n        Godot.Core.Generic6DOFJoint._set_angular_lo_limit_x,\n        Godot.Core.Generic6DOFJoint._set_angular_lo_limit_y,\n        Godot.Core.Generic6DOFJoint._set_angular_lo_limit_z,\n        Godot.Core.Generic6DOFJoint.get_flag_x,\n        Godot.Core.Generic6DOFJoint.get_flag_y,\n        Godot.Core.Generic6DOFJoint.get_flag_z,\n        Godot.Core.Generic6DOFJoint.get_param_x,\n        Godot.Core.Generic6DOFJoint.get_param_y,\n        Godot.Core.Generic6DOFJoint.get_param_z,\n        Godot.Core.Generic6DOFJoint.get_precision,\n        Godot.Core.Generic6DOFJoint.set_flag_x,\n        Godot.Core.Generic6DOFJoint.set_flag_y,\n        Godot.Core.Generic6DOFJoint.set_flag_z,\n        Godot.Core.Generic6DOFJoint.set_param_x,\n        Godot.Core.Generic6DOFJoint.set_param_y,\n        Godot.Core.Generic6DOFJoint.set_param_z,\n        Godot.Core.Generic6DOFJoint.set_precision)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Joint()\n\n_PARAM_ANGULAR_LOWER_LIMIT :: Int\n_PARAM_ANGULAR_LOWER_LIMIT = 10\n\n_FLAG_ENABLE_LINEAR_MOTOR :: Int\n_FLAG_ENABLE_LINEAR_MOTOR = 5\n\n_PARAM_LINEAR_MOTOR_TARGET_VELOCITY :: Int\n_PARAM_LINEAR_MOTOR_TARGET_VELOCITY = 5\n\n_PARAM_LINEAR_DAMPING :: Int\n_PARAM_LINEAR_DAMPING = 4\n\n_PARAM_ANGULAR_ERP :: Int\n_PARAM_ANGULAR_ERP = 16\n\n_PARAM_ANGULAR_DAMPING :: Int\n_PARAM_ANGULAR_DAMPING = 13\n\n_FLAG_ENABLE_ANGULAR_LIMIT :: Int\n_FLAG_ENABLE_ANGULAR_LIMIT = 1\n\n_PARAM_LINEAR_LIMIT_SOFTNESS :: Int\n_PARAM_LINEAR_LIMIT_SOFTNESS = 2\n\n_PARAM_ANGULAR_MOTOR_TARGET_VELOCITY :: Int\n_PARAM_ANGULAR_MOTOR_TARGET_VELOCITY = 17\n\n_PARAM_LINEAR_LOWER_LIMIT :: Int\n_PARAM_LINEAR_LOWER_LIMIT = 0\n\n_PARAM_ANGULAR_MOTOR_FORCE_LIMIT :: Int\n_PARAM_ANGULAR_MOTOR_FORCE_LIMIT = 18\n\n_PARAM_LINEAR_RESTITUTION :: Int\n_PARAM_LINEAR_RESTITUTION = 3\n\n_FLAG_ENABLE_ANGULAR_SPRING :: Int\n_FLAG_ENABLE_ANGULAR_SPRING = 2\n\n_PARAM_MAX :: Int\n_PARAM_MAX = 22\n\n_FLAG_MAX :: Int\n_FLAG_MAX = 6\n\n_PARAM_ANGULAR_LIMIT_SOFTNESS :: Int\n_PARAM_ANGULAR_LIMIT_SOFTNESS = 12\n\n_PARAM_LINEAR_UPPER_LIMIT :: Int\n_PARAM_LINEAR_UPPER_LIMIT = 1\n\n_PARAM_ANGULAR_FORCE_LIMIT :: Int\n_PARAM_ANGULAR_FORCE_LIMIT = 15\n\n_FLAG_ENABLE_LINEAR_LIMIT :: Int\n_FLAG_ENABLE_LINEAR_LIMIT = 0\n\n_PARAM_ANGULAR_UPPER_LIMIT :: Int\n_PARAM_ANGULAR_UPPER_LIMIT = 11\n\n_FLAG_ENABLE_LINEAR_SPRING :: Int\n_FLAG_ENABLE_LINEAR_SPRING = 3\n\n_FLAG_ENABLE_MOTOR :: Int\n_FLAG_ENABLE_MOTOR = 4\n\n_PARAM_LINEAR_MOTOR_FORCE_LIMIT :: Int\n_PARAM_LINEAR_MOTOR_FORCE_LIMIT = 6\n\n_PARAM_ANGULAR_RESTITUTION :: Int\n_PARAM_ANGULAR_RESTITUTION = 14\n\ninstance NodeProperty Generic6DOFJoint \"angular_limit_x/damping\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 13 get_param_x,\n             wrapIndexedSetter 13 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_limit_x/enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_flag_x, wrapIndexedSetter 1 set_flag_x,\n             Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_limit_x/erp\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 16 get_param_x,\n             wrapIndexedSetter 16 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_limit_x/force_limit\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 15 get_param_x,\n             wrapIndexedSetter 15 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_limit_x/lower_angle\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (_get_angular_lo_limit_x,\n             wrapDroppingSetter _set_angular_lo_limit_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_limit_x/restitution\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 14 get_param_x,\n             wrapIndexedSetter 14 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_limit_x/softness\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 12 get_param_x,\n             wrapIndexedSetter 12 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_limit_x/upper_angle\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (_get_angular_hi_limit_x,\n             wrapDroppingSetter _set_angular_hi_limit_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_limit_y/damping\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 13 get_param_y,\n             wrapIndexedSetter 13 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_limit_y/enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_flag_y, wrapIndexedSetter 1 set_flag_y,\n             Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_limit_y/erp\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 16 get_param_y,\n             wrapIndexedSetter 16 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_limit_y/force_limit\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 15 get_param_y,\n             wrapIndexedSetter 15 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_limit_y/lower_angle\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (_get_angular_lo_limit_y,\n             wrapDroppingSetter _set_angular_lo_limit_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_limit_y/restitution\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 14 get_param_y,\n             wrapIndexedSetter 14 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_limit_y/softness\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 12 get_param_y,\n             wrapIndexedSetter 12 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_limit_y/upper_angle\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (_get_angular_hi_limit_y,\n             wrapDroppingSetter _set_angular_hi_limit_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_limit_z/damping\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 13 get_param_z,\n             wrapIndexedSetter 13 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_limit_z/enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_flag_z, wrapIndexedSetter 1 set_flag_z,\n             Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_limit_z/erp\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 16 get_param_z,\n             wrapIndexedSetter 16 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_limit_z/force_limit\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 15 get_param_z,\n             wrapIndexedSetter 15 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_limit_z/lower_angle\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (_get_angular_lo_limit_z,\n             wrapDroppingSetter _set_angular_lo_limit_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_limit_z/restitution\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 14 get_param_z,\n             wrapIndexedSetter 14 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_limit_z/softness\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 12 get_param_z,\n             wrapIndexedSetter 12 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_limit_z/upper_angle\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (_get_angular_hi_limit_z,\n             wrapDroppingSetter _set_angular_hi_limit_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_motor_x/enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_flag_x, wrapIndexedSetter 4 set_flag_x,\n             Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_motor_x/force_limit\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 18 get_param_x,\n             wrapIndexedSetter 18 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_motor_x/target_velocity\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 17 get_param_x,\n             wrapIndexedSetter 17 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_motor_y/enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_flag_y, wrapIndexedSetter 4 set_flag_y,\n             Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_motor_y/force_limit\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 18 get_param_y,\n             wrapIndexedSetter 18 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_motor_y/target_velocity\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 17 get_param_y,\n             wrapIndexedSetter 17 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_motor_z/enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_flag_z, wrapIndexedSetter 4 set_flag_z,\n             Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_motor_z/force_limit\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 18 get_param_z,\n             wrapIndexedSetter 18 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_motor_z/target_velocity\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 17 get_param_z,\n             wrapIndexedSetter 17 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_spring_x/damping\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 20 get_param_x,\n             wrapIndexedSetter 20 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_spring_x/enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_flag_x, wrapIndexedSetter 2 set_flag_x,\n             Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_spring_x/equilibrium_point\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 21 get_param_x,\n             wrapIndexedSetter 21 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_spring_x/stiffness\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 19 get_param_x,\n             wrapIndexedSetter 19 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_spring_y/damping\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 20 get_param_y,\n             wrapIndexedSetter 20 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_spring_y/enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_flag_y, wrapIndexedSetter 2 set_flag_y,\n             Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_spring_y/equilibrium_point\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 21 get_param_y,\n             wrapIndexedSetter 21 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_spring_y/stiffness\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 19 get_param_y,\n             wrapIndexedSetter 19 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_spring_z/damping\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 20 get_param_z,\n             wrapIndexedSetter 20 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_spring_z/enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_flag_z, wrapIndexedSetter 2 set_flag_z,\n             Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"angular_spring_z/equilibrium_point\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 21 get_param_z,\n             wrapIndexedSetter 21 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"angular_spring_z/stiffness\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 19 get_param_z,\n             wrapIndexedSetter 19 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_limit_x/damping\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_param_x,\n             wrapIndexedSetter 4 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_limit_x/enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_flag_x, wrapIndexedSetter 0 set_flag_x,\n             Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"linear_limit_x/lower_distance\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_param_x,\n             wrapIndexedSetter 0 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_limit_x/restitution\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_param_x,\n             wrapIndexedSetter 3 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_limit_x/softness\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_param_x,\n             wrapIndexedSetter 2 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"linear_limit_x/upper_distance\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_param_x,\n             wrapIndexedSetter 1 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_limit_y/damping\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_param_y,\n             wrapIndexedSetter 4 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_limit_y/enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_flag_y, wrapIndexedSetter 0 set_flag_y,\n             Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"linear_limit_y/lower_distance\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_param_y,\n             wrapIndexedSetter 0 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_limit_y/restitution\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_param_y,\n             wrapIndexedSetter 3 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_limit_y/softness\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_param_y,\n             wrapIndexedSetter 2 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"linear_limit_y/upper_distance\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_param_y,\n             wrapIndexedSetter 1 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_limit_z/damping\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_param_z,\n             wrapIndexedSetter 4 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_limit_z/enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_flag_z, wrapIndexedSetter 0 set_flag_z,\n             Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"linear_limit_z/lower_distance\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_param_z,\n             wrapIndexedSetter 0 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_limit_z/restitution\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_param_z,\n             wrapIndexedSetter 3 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_limit_z/softness\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_param_z,\n             wrapIndexedSetter 2 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"linear_limit_z/upper_distance\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_param_z,\n             wrapIndexedSetter 1 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_motor_x/enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_flag_x, wrapIndexedSetter 5 set_flag_x,\n             Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_motor_x/force_limit\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_param_x,\n             wrapIndexedSetter 6 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"linear_motor_x/target_velocity\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_param_x,\n             wrapIndexedSetter 5 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_motor_y/enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_flag_y, wrapIndexedSetter 5 set_flag_y,\n             Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_motor_y/force_limit\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_param_y,\n             wrapIndexedSetter 6 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"linear_motor_y/target_velocity\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_param_y,\n             wrapIndexedSetter 5 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_motor_z/enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_flag_z, wrapIndexedSetter 5 set_flag_z,\n             Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_motor_z/force_limit\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_param_z,\n             wrapIndexedSetter 6 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"linear_motor_z/target_velocity\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_param_z,\n             wrapIndexedSetter 5 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_spring_x/damping\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_param_x,\n             wrapIndexedSetter 8 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_spring_x/enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_flag_x, wrapIndexedSetter 3 set_flag_x,\n             Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"linear_spring_x/equilibrium_point\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_param_x,\n             wrapIndexedSetter 9 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_spring_x/stiffness\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_param_x,\n             wrapIndexedSetter 7 set_param_x, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_spring_y/damping\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_param_y,\n             wrapIndexedSetter 8 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_spring_y/enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_flag_y, wrapIndexedSetter 3 set_flag_y,\n             Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"linear_spring_y/equilibrium_point\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_param_y,\n             wrapIndexedSetter 9 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_spring_y/stiffness\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_param_y,\n             wrapIndexedSetter 7 set_param_y, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_spring_z/damping\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_param_z,\n             wrapIndexedSetter 8 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_spring_z/enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_flag_z, wrapIndexedSetter 3 set_flag_z,\n             Nothing)\n\ninstance NodeProperty Generic6DOFJoint\n           \"linear_spring_z/equilibrium_point\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_param_z,\n             wrapIndexedSetter 9 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"linear_spring_z/stiffness\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_param_z,\n             wrapIndexedSetter 7 set_param_z, Nothing)\n\ninstance NodeProperty Generic6DOFJoint \"precision\" Int 'False where\n        nodeProperty\n          = (get_precision, wrapDroppingSetter set_precision, Nothing)\n\n{-# NOINLINE bindGeneric6DOFJoint__get_angular_hi_limit_x #-}\n\n-- | The minimum rotation in positive direction to break loose and rotate around the X axis.\nbindGeneric6DOFJoint__get_angular_hi_limit_x :: MethodBind\nbindGeneric6DOFJoint__get_angular_hi_limit_x\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_get_angular_hi_limit_x\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum rotation in positive direction to break loose and rotate around the X axis.\n_get_angular_hi_limit_x ::\n                          (Generic6DOFJoint :< cls, Object :< cls) => cls -> IO Float\n_get_angular_hi_limit_x cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint__get_angular_hi_limit_x\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"_get_angular_hi_limit_x\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint._get_angular_hi_limit_x\n\n{-# NOINLINE bindGeneric6DOFJoint__get_angular_hi_limit_y #-}\n\n-- | The minimum rotation in positive direction to break loose and rotate around the Y axis.\nbindGeneric6DOFJoint__get_angular_hi_limit_y :: MethodBind\nbindGeneric6DOFJoint__get_angular_hi_limit_y\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_get_angular_hi_limit_y\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum rotation in positive direction to break loose and rotate around the Y axis.\n_get_angular_hi_limit_y ::\n                          (Generic6DOFJoint :< cls, Object :< cls) => cls -> IO Float\n_get_angular_hi_limit_y cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint__get_angular_hi_limit_y\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"_get_angular_hi_limit_y\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint._get_angular_hi_limit_y\n\n{-# NOINLINE bindGeneric6DOFJoint__get_angular_hi_limit_z #-}\n\n-- | The minimum rotation in positive direction to break loose and rotate around the Z axis.\nbindGeneric6DOFJoint__get_angular_hi_limit_z :: MethodBind\nbindGeneric6DOFJoint__get_angular_hi_limit_z\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_get_angular_hi_limit_z\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum rotation in positive direction to break loose and rotate around the Z axis.\n_get_angular_hi_limit_z ::\n                          (Generic6DOFJoint :< cls, Object :< cls) => cls -> IO Float\n_get_angular_hi_limit_z cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint__get_angular_hi_limit_z\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"_get_angular_hi_limit_z\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint._get_angular_hi_limit_z\n\n{-# NOINLINE bindGeneric6DOFJoint__get_angular_lo_limit_x #-}\n\n-- | The minimum rotation in negative direction to break loose and rotate around the X axis.\nbindGeneric6DOFJoint__get_angular_lo_limit_x :: MethodBind\nbindGeneric6DOFJoint__get_angular_lo_limit_x\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_get_angular_lo_limit_x\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum rotation in negative direction to break loose and rotate around the X axis.\n_get_angular_lo_limit_x ::\n                          (Generic6DOFJoint :< cls, Object :< cls) => cls -> IO Float\n_get_angular_lo_limit_x cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint__get_angular_lo_limit_x\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"_get_angular_lo_limit_x\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint._get_angular_lo_limit_x\n\n{-# NOINLINE bindGeneric6DOFJoint__get_angular_lo_limit_y #-}\n\n-- | The minimum rotation in negative direction to break loose and rotate around the Y axis.\nbindGeneric6DOFJoint__get_angular_lo_limit_y :: MethodBind\nbindGeneric6DOFJoint__get_angular_lo_limit_y\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_get_angular_lo_limit_y\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum rotation in negative direction to break loose and rotate around the Y axis.\n_get_angular_lo_limit_y ::\n                          (Generic6DOFJoint :< cls, Object :< cls) => cls -> IO Float\n_get_angular_lo_limit_y cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint__get_angular_lo_limit_y\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"_get_angular_lo_limit_y\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint._get_angular_lo_limit_y\n\n{-# NOINLINE bindGeneric6DOFJoint__get_angular_lo_limit_z #-}\n\n-- | The minimum rotation in negative direction to break loose and rotate around the Z axis.\nbindGeneric6DOFJoint__get_angular_lo_limit_z :: MethodBind\nbindGeneric6DOFJoint__get_angular_lo_limit_z\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_get_angular_lo_limit_z\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum rotation in negative direction to break loose and rotate around the Z axis.\n_get_angular_lo_limit_z ::\n                          (Generic6DOFJoint :< cls, Object :< cls) => cls -> IO Float\n_get_angular_lo_limit_z cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint__get_angular_lo_limit_z\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"_get_angular_lo_limit_z\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint._get_angular_lo_limit_z\n\n{-# NOINLINE bindGeneric6DOFJoint__set_angular_hi_limit_x #-}\n\n-- | The minimum rotation in positive direction to break loose and rotate around the X axis.\nbindGeneric6DOFJoint__set_angular_hi_limit_x :: MethodBind\nbindGeneric6DOFJoint__set_angular_hi_limit_x\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_set_angular_hi_limit_x\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum rotation in positive direction to break loose and rotate around the X axis.\n_set_angular_hi_limit_x ::\n                          (Generic6DOFJoint :< cls, Object :< cls) => cls -> Float -> IO ()\n_set_angular_hi_limit_x cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint__set_angular_hi_limit_x\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"_set_angular_hi_limit_x\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint._set_angular_hi_limit_x\n\n{-# NOINLINE bindGeneric6DOFJoint__set_angular_hi_limit_y #-}\n\n-- | The minimum rotation in positive direction to break loose and rotate around the Y axis.\nbindGeneric6DOFJoint__set_angular_hi_limit_y :: MethodBind\nbindGeneric6DOFJoint__set_angular_hi_limit_y\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_set_angular_hi_limit_y\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum rotation in positive direction to break loose and rotate around the Y axis.\n_set_angular_hi_limit_y ::\n                          (Generic6DOFJoint :< cls, Object :< cls) => cls -> Float -> IO ()\n_set_angular_hi_limit_y cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint__set_angular_hi_limit_y\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"_set_angular_hi_limit_y\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint._set_angular_hi_limit_y\n\n{-# NOINLINE bindGeneric6DOFJoint__set_angular_hi_limit_z #-}\n\n-- | The minimum rotation in positive direction to break loose and rotate around the Z axis.\nbindGeneric6DOFJoint__set_angular_hi_limit_z :: MethodBind\nbindGeneric6DOFJoint__set_angular_hi_limit_z\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_set_angular_hi_limit_z\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum rotation in positive direction to break loose and rotate around the Z axis.\n_set_angular_hi_limit_z ::\n                          (Generic6DOFJoint :< cls, Object :< cls) => cls -> Float -> IO ()\n_set_angular_hi_limit_z cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint__set_angular_hi_limit_z\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"_set_angular_hi_limit_z\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint._set_angular_hi_limit_z\n\n{-# NOINLINE bindGeneric6DOFJoint__set_angular_lo_limit_x #-}\n\n-- | The minimum rotation in negative direction to break loose and rotate around the X axis.\nbindGeneric6DOFJoint__set_angular_lo_limit_x :: MethodBind\nbindGeneric6DOFJoint__set_angular_lo_limit_x\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_set_angular_lo_limit_x\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum rotation in negative direction to break loose and rotate around the X axis.\n_set_angular_lo_limit_x ::\n                          (Generic6DOFJoint :< cls, Object :< cls) => cls -> Float -> IO ()\n_set_angular_lo_limit_x cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint__set_angular_lo_limit_x\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"_set_angular_lo_limit_x\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint._set_angular_lo_limit_x\n\n{-# NOINLINE bindGeneric6DOFJoint__set_angular_lo_limit_y #-}\n\n-- | The minimum rotation in negative direction to break loose and rotate around the Y axis.\nbindGeneric6DOFJoint__set_angular_lo_limit_y :: MethodBind\nbindGeneric6DOFJoint__set_angular_lo_limit_y\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_set_angular_lo_limit_y\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum rotation in negative direction to break loose and rotate around the Y axis.\n_set_angular_lo_limit_y ::\n                          (Generic6DOFJoint :< cls, Object :< cls) => cls -> Float -> IO ()\n_set_angular_lo_limit_y cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint__set_angular_lo_limit_y\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"_set_angular_lo_limit_y\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint._set_angular_lo_limit_y\n\n{-# NOINLINE bindGeneric6DOFJoint__set_angular_lo_limit_z #-}\n\n-- | The minimum rotation in negative direction to break loose and rotate around the Z axis.\nbindGeneric6DOFJoint__set_angular_lo_limit_z :: MethodBind\nbindGeneric6DOFJoint__set_angular_lo_limit_z\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_set_angular_lo_limit_z\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum rotation in negative direction to break loose and rotate around the Z axis.\n_set_angular_lo_limit_z ::\n                          (Generic6DOFJoint :< cls, Object :< cls) => cls -> Float -> IO ()\n_set_angular_lo_limit_z cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint__set_angular_lo_limit_z\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"_set_angular_lo_limit_z\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint._set_angular_lo_limit_z\n\n{-# NOINLINE bindGeneric6DOFJoint_get_flag_x #-}\n\n-- | If @true@, rotation across the X axis is limited.\nbindGeneric6DOFJoint_get_flag_x :: MethodBind\nbindGeneric6DOFJoint_get_flag_x\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"get_flag_x\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, rotation across the X axis is limited.\nget_flag_x ::\n             (Generic6DOFJoint :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_flag_x cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint_get_flag_x (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"get_flag_x\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint.get_flag_x\n\n{-# NOINLINE bindGeneric6DOFJoint_get_flag_y #-}\n\n-- | If @true@, rotation across the Y axis is limited.\nbindGeneric6DOFJoint_get_flag_y :: MethodBind\nbindGeneric6DOFJoint_get_flag_y\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"get_flag_y\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, rotation across the Y axis is limited.\nget_flag_y ::\n             (Generic6DOFJoint :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_flag_y cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint_get_flag_y (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"get_flag_y\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint.get_flag_y\n\n{-# NOINLINE bindGeneric6DOFJoint_get_flag_z #-}\n\n-- | If @true@, rotation across the Z axis is limited.\nbindGeneric6DOFJoint_get_flag_z :: MethodBind\nbindGeneric6DOFJoint_get_flag_z\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"get_flag_z\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, rotation across the Z axis is limited.\nget_flag_z ::\n             (Generic6DOFJoint :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_flag_z cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint_get_flag_z (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"get_flag_z\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint.get_flag_z\n\n{-# NOINLINE bindGeneric6DOFJoint_get_param_x #-}\n\n-- | The amount of rotational damping across the X axis.\n--   \t\t\tThe lower, the longer an impulse from one side takes to travel to the other side.\nbindGeneric6DOFJoint_get_param_x :: MethodBind\nbindGeneric6DOFJoint_get_param_x\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"get_param_x\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount of rotational damping across the X axis.\n--   \t\t\tThe lower, the longer an impulse from one side takes to travel to the other side.\nget_param_x ::\n              (Generic6DOFJoint :< cls, Object :< cls) => cls -> Int -> IO Float\nget_param_x cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint_get_param_x\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"get_param_x\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint.get_param_x\n\n{-# NOINLINE bindGeneric6DOFJoint_get_param_y #-}\n\n-- | The amount of rotational damping across the Y axis. The lower, the more dampening occurs.\nbindGeneric6DOFJoint_get_param_y :: MethodBind\nbindGeneric6DOFJoint_get_param_y\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"get_param_y\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount of rotational damping across the Y axis. The lower, the more dampening occurs.\nget_param_y ::\n              (Generic6DOFJoint :< cls, Object :< cls) => cls -> Int -> IO Float\nget_param_y cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint_get_param_y\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"get_param_y\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint.get_param_y\n\n{-# NOINLINE bindGeneric6DOFJoint_get_param_z #-}\n\n-- | The amount of rotational damping across the Z axis. The lower, the more dampening occurs.\nbindGeneric6DOFJoint_get_param_z :: MethodBind\nbindGeneric6DOFJoint_get_param_z\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"get_param_z\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount of rotational damping across the Z axis. The lower, the more dampening occurs.\nget_param_z ::\n              (Generic6DOFJoint :< cls, Object :< cls) => cls -> Int -> IO Float\nget_param_z cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint_get_param_z\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"get_param_z\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint.get_param_z\n\n{-# NOINLINE bindGeneric6DOFJoint_get_precision #-}\n\nbindGeneric6DOFJoint_get_precision :: MethodBind\nbindGeneric6DOFJoint_get_precision\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"get_precision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_precision ::\n                (Generic6DOFJoint :< cls, Object :< cls) => cls -> IO Int\nget_precision cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint_get_precision\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"get_precision\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint.get_precision\n\n{-# NOINLINE bindGeneric6DOFJoint_set_flag_x #-}\n\n-- | If @true@, rotation across the X axis is limited.\nbindGeneric6DOFJoint_set_flag_x :: MethodBind\nbindGeneric6DOFJoint_set_flag_x\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"set_flag_x\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, rotation across the X axis is limited.\nset_flag_x ::\n             (Generic6DOFJoint :< cls, Object :< cls) =>\n             cls -> Int -> Bool -> IO ()\nset_flag_x cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint_set_flag_x (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"set_flag_x\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint.set_flag_x\n\n{-# NOINLINE bindGeneric6DOFJoint_set_flag_y #-}\n\n-- | If @true@, rotation across the Y axis is limited.\nbindGeneric6DOFJoint_set_flag_y :: MethodBind\nbindGeneric6DOFJoint_set_flag_y\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"set_flag_y\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, rotation across the Y axis is limited.\nset_flag_y ::\n             (Generic6DOFJoint :< cls, Object :< cls) =>\n             cls -> Int -> Bool -> IO ()\nset_flag_y cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint_set_flag_y (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"set_flag_y\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint.set_flag_y\n\n{-# NOINLINE bindGeneric6DOFJoint_set_flag_z #-}\n\n-- | If @true@, rotation across the Z axis is limited.\nbindGeneric6DOFJoint_set_flag_z :: MethodBind\nbindGeneric6DOFJoint_set_flag_z\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"set_flag_z\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, rotation across the Z axis is limited.\nset_flag_z ::\n             (Generic6DOFJoint :< cls, Object :< cls) =>\n             cls -> Int -> Bool -> IO ()\nset_flag_z cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint_set_flag_z (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"set_flag_z\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint.set_flag_z\n\n{-# NOINLINE bindGeneric6DOFJoint_set_param_x #-}\n\n-- | The amount of rotational damping across the X axis.\n--   \t\t\tThe lower, the longer an impulse from one side takes to travel to the other side.\nbindGeneric6DOFJoint_set_param_x :: MethodBind\nbindGeneric6DOFJoint_set_param_x\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"set_param_x\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount of rotational damping across the X axis.\n--   \t\t\tThe lower, the longer an impulse from one side takes to travel to the other side.\nset_param_x ::\n              (Generic6DOFJoint :< cls, Object :< cls) =>\n              cls -> Int -> Float -> IO ()\nset_param_x cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint_set_param_x\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"set_param_x\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint.set_param_x\n\n{-# NOINLINE bindGeneric6DOFJoint_set_param_y #-}\n\n-- | The amount of rotational damping across the Y axis. The lower, the more dampening occurs.\nbindGeneric6DOFJoint_set_param_y :: MethodBind\nbindGeneric6DOFJoint_set_param_y\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"set_param_y\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount of rotational damping across the Y axis. The lower, the more dampening occurs.\nset_param_y ::\n              (Generic6DOFJoint :< cls, Object :< cls) =>\n              cls -> Int -> Float -> IO ()\nset_param_y cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint_set_param_y\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"set_param_y\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint.set_param_y\n\n{-# NOINLINE bindGeneric6DOFJoint_set_param_z #-}\n\n-- | The amount of rotational damping across the Z axis. The lower, the more dampening occurs.\nbindGeneric6DOFJoint_set_param_z :: MethodBind\nbindGeneric6DOFJoint_set_param_z\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"set_param_z\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount of rotational damping across the Z axis. The lower, the more dampening occurs.\nset_param_z ::\n              (Generic6DOFJoint :< cls, Object :< cls) =>\n              cls -> Int -> Float -> IO ()\nset_param_z cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint_set_param_z\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"set_param_z\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint.set_param_z\n\n{-# NOINLINE bindGeneric6DOFJoint_set_precision #-}\n\nbindGeneric6DOFJoint_set_precision :: MethodBind\nbindGeneric6DOFJoint_set_precision\n  = unsafePerformIO $\n      withCString \"Generic6DOFJoint\" $\n        \\ clsNamePtr ->\n          withCString \"set_precision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_precision ::\n                (Generic6DOFJoint :< cls, Object :< cls) => cls -> Int -> IO ()\nset_precision cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeneric6DOFJoint_set_precision\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Generic6DOFJoint \"set_precision\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Generic6DOFJoint.set_precision"
  },
  {
    "path": "src/Godot/Core/Geometry.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Geometry\n       (Godot.Core.Geometry._END_POLYGON, Godot.Core.Geometry._JOIN_ROUND,\n        Godot.Core.Geometry._OPERATION_XOR,\n        Godot.Core.Geometry._JOIN_MITER, Godot.Core.Geometry._END_JOINED,\n        Godot.Core.Geometry._OPERATION_UNION,\n        Godot.Core.Geometry._JOIN_SQUARE,\n        Godot.Core.Geometry._OPERATION_INTERSECTION,\n        Godot.Core.Geometry._END_BUTT, Godot.Core.Geometry._END_ROUND,\n        Godot.Core.Geometry._OPERATION_DIFFERENCE,\n        Godot.Core.Geometry._END_SQUARE,\n        Godot.Core.Geometry.build_box_planes,\n        Godot.Core.Geometry.build_capsule_planes,\n        Godot.Core.Geometry.build_cylinder_planes,\n        Godot.Core.Geometry.clip_polygon,\n        Godot.Core.Geometry.clip_polygons_2d,\n        Godot.Core.Geometry.clip_polyline_with_polygon_2d,\n        Godot.Core.Geometry.convex_hull_2d,\n        Godot.Core.Geometry.exclude_polygons_2d,\n        Godot.Core.Geometry.get_closest_point_to_segment,\n        Godot.Core.Geometry.get_closest_point_to_segment_2d,\n        Godot.Core.Geometry.get_closest_point_to_segment_uncapped,\n        Godot.Core.Geometry.get_closest_point_to_segment_uncapped_2d,\n        Godot.Core.Geometry.get_closest_points_between_segments,\n        Godot.Core.Geometry.get_closest_points_between_segments_2d,\n        Godot.Core.Geometry.get_uv84_normal_bit,\n        Godot.Core.Geometry.intersect_polygons_2d,\n        Godot.Core.Geometry.intersect_polyline_with_polygon_2d,\n        Godot.Core.Geometry.is_point_in_circle,\n        Godot.Core.Geometry.is_point_in_polygon,\n        Godot.Core.Geometry.is_polygon_clockwise,\n        Godot.Core.Geometry.line_intersects_line_2d,\n        Godot.Core.Geometry.make_atlas,\n        Godot.Core.Geometry.merge_polygons_2d,\n        Godot.Core.Geometry.offset_polygon_2d,\n        Godot.Core.Geometry.offset_polyline_2d,\n        Godot.Core.Geometry.point_is_inside_triangle,\n        Godot.Core.Geometry.ray_intersects_triangle,\n        Godot.Core.Geometry.segment_intersects_circle,\n        Godot.Core.Geometry.segment_intersects_convex,\n        Godot.Core.Geometry.segment_intersects_cylinder,\n        Godot.Core.Geometry.segment_intersects_segment_2d,\n        Godot.Core.Geometry.segment_intersects_sphere,\n        Godot.Core.Geometry.segment_intersects_triangle,\n        Godot.Core.Geometry.triangulate_delaunay_2d,\n        Godot.Core.Geometry.triangulate_polygon)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n_END_POLYGON :: Int\n_END_POLYGON = 0\n\n_JOIN_ROUND :: Int\n_JOIN_ROUND = 1\n\n_OPERATION_XOR :: Int\n_OPERATION_XOR = 3\n\n_JOIN_MITER :: Int\n_JOIN_MITER = 2\n\n_END_JOINED :: Int\n_END_JOINED = 1\n\n_OPERATION_UNION :: Int\n_OPERATION_UNION = 0\n\n_JOIN_SQUARE :: Int\n_JOIN_SQUARE = 0\n\n_OPERATION_INTERSECTION :: Int\n_OPERATION_INTERSECTION = 2\n\n_END_BUTT :: Int\n_END_BUTT = 2\n\n_END_ROUND :: Int\n_END_ROUND = 4\n\n_OPERATION_DIFFERENCE :: Int\n_OPERATION_DIFFERENCE = 1\n\n_END_SQUARE :: Int\n_END_SQUARE = 3\n\n{-# NOINLINE bindGeometry_build_box_planes #-}\n\n-- | Returns an array with 6 @Plane@s that describe the sides of a box centered at the origin. The box size is defined by @extents@, which represents one (positive) corner of the box (i.e. half its actual size).\nbindGeometry_build_box_planes :: MethodBind\nbindGeometry_build_box_planes\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"build_box_planes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array with 6 @Plane@s that describe the sides of a box centered at the origin. The box size is defined by @extents@, which represents one (positive) corner of the box (i.e. half its actual size).\nbuild_box_planes ::\n                   (Geometry :< cls, Object :< cls) => cls -> Vector3 -> IO Array\nbuild_box_planes cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_build_box_planes (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"build_box_planes\" '[Vector3]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Geometry.build_box_planes\n\n{-# NOINLINE bindGeometry_build_capsule_planes #-}\n\n-- | Returns an array of @Plane@s closely bounding a faceted capsule centered at the origin with radius @radius@ and height @height@. The parameter @sides@ defines how many planes will be generated for the side part of the capsule, whereas @lats@ gives the number of latitudinal steps at the bottom and top of the capsule. The parameter @axis@ describes the axis along which the capsule is oriented (0 for X, 1 for Y, 2 for Z).\nbindGeometry_build_capsule_planes :: MethodBind\nbindGeometry_build_capsule_planes\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"build_capsule_planes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of @Plane@s closely bounding a faceted capsule centered at the origin with radius @radius@ and height @height@. The parameter @sides@ defines how many planes will be generated for the side part of the capsule, whereas @lats@ gives the number of latitudinal steps at the bottom and top of the capsule. The parameter @axis@ describes the axis along which the capsule is oriented (0 for X, 1 for Y, 2 for Z).\nbuild_capsule_planes ::\n                       (Geometry :< cls, Object :< cls) =>\n                       cls -> Float -> Float -> Int -> Int -> Maybe Int -> IO Array\nbuild_capsule_planes cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       maybe (VariantInt (2)) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_build_capsule_planes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"build_capsule_planes\"\n           '[Float, Float, Int, Int, Maybe Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Geometry.build_capsule_planes\n\n{-# NOINLINE bindGeometry_build_cylinder_planes #-}\n\n-- | Returns an array of @Plane@s closely bounding a faceted cylinder centered at the origin with radius @radius@ and height @height@. The parameter @sides@ defines how many planes will be generated for the round part of the cylinder. The parameter @axis@ describes the axis along which the cylinder is oriented (0 for X, 1 for Y, 2 for Z).\nbindGeometry_build_cylinder_planes :: MethodBind\nbindGeometry_build_cylinder_planes\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"build_cylinder_planes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of @Plane@s closely bounding a faceted cylinder centered at the origin with radius @radius@ and height @height@. The parameter @sides@ defines how many planes will be generated for the round part of the cylinder. The parameter @axis@ describes the axis along which the cylinder is oriented (0 for X, 1 for Y, 2 for Z).\nbuild_cylinder_planes ::\n                        (Geometry :< cls, Object :< cls) =>\n                        cls -> Float -> Float -> Int -> Maybe Int -> IO Array\nbuild_cylinder_planes cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantInt (2)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_build_cylinder_planes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"build_cylinder_planes\"\n           '[Float, Float, Int, Maybe Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Geometry.build_cylinder_planes\n\n{-# NOINLINE bindGeometry_clip_polygon #-}\n\n-- | Clips the polygon defined by the points in @points@ against the @plane@ and returns the points of the clipped polygon.\nbindGeometry_clip_polygon :: MethodBind\nbindGeometry_clip_polygon\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"clip_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clips the polygon defined by the points in @points@ against the @plane@ and returns the points of the clipped polygon.\nclip_polygon ::\n               (Geometry :< cls, Object :< cls) =>\n               cls -> PoolVector3Array -> Plane -> IO PoolVector3Array\nclip_polygon cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_clip_polygon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"clip_polygon\"\n           '[PoolVector3Array, Plane]\n           (IO PoolVector3Array)\n         where\n        nodeMethod = Godot.Core.Geometry.clip_polygon\n\n{-# NOINLINE bindGeometry_clip_polygons_2d #-}\n\n-- | Clips @polygon_a@ against @polygon_b@ and returns an array of clipped polygons. This performs @OPERATION_DIFFERENCE@ between polygons. Returns an empty array if @polygon_b@ completely overlaps @polygon_a@.\n--   \t\t\t\tIf @polygon_b@ is enclosed by @polygon_a@, returns an outer polygon (boundary) and inner polygon (hole) which could be distiguished by calling @method is_polygon_clockwise@.\nbindGeometry_clip_polygons_2d :: MethodBind\nbindGeometry_clip_polygons_2d\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"clip_polygons_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clips @polygon_a@ against @polygon_b@ and returns an array of clipped polygons. This performs @OPERATION_DIFFERENCE@ between polygons. Returns an empty array if @polygon_b@ completely overlaps @polygon_a@.\n--   \t\t\t\tIf @polygon_b@ is enclosed by @polygon_a@, returns an outer polygon (boundary) and inner polygon (hole) which could be distiguished by calling @method is_polygon_clockwise@.\nclip_polygons_2d ::\n                   (Geometry :< cls, Object :< cls) =>\n                   cls -> PoolVector2Array -> PoolVector2Array -> IO Array\nclip_polygons_2d cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_clip_polygons_2d (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"clip_polygons_2d\"\n           '[PoolVector2Array, PoolVector2Array]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Geometry.clip_polygons_2d\n\n{-# NOINLINE bindGeometry_clip_polyline_with_polygon_2d #-}\n\n-- | Clips @polyline@ against @polygon@ and returns an array of clipped polylines. This performs @OPERATION_DIFFERENCE@ between the polyline and the polygon. This operation can be thought of as cutting a line with a closed shape.\nbindGeometry_clip_polyline_with_polygon_2d :: MethodBind\nbindGeometry_clip_polyline_with_polygon_2d\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"clip_polyline_with_polygon_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clips @polyline@ against @polygon@ and returns an array of clipped polylines. This performs @OPERATION_DIFFERENCE@ between the polyline and the polygon. This operation can be thought of as cutting a line with a closed shape.\nclip_polyline_with_polygon_2d ::\n                                (Geometry :< cls, Object :< cls) =>\n                                cls -> PoolVector2Array -> PoolVector2Array -> IO Array\nclip_polyline_with_polygon_2d cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_clip_polyline_with_polygon_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"clip_polyline_with_polygon_2d\"\n           '[PoolVector2Array, PoolVector2Array]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Geometry.clip_polyline_with_polygon_2d\n\n{-# NOINLINE bindGeometry_convex_hull_2d #-}\n\n-- | Given an array of @Vector2@s, returns the convex hull as a list of points in counterclockwise order. The last point is the same as the first one.\nbindGeometry_convex_hull_2d :: MethodBind\nbindGeometry_convex_hull_2d\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"convex_hull_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Given an array of @Vector2@s, returns the convex hull as a list of points in counterclockwise order. The last point is the same as the first one.\nconvex_hull_2d ::\n                 (Geometry :< cls, Object :< cls) =>\n                 cls -> PoolVector2Array -> IO PoolVector2Array\nconvex_hull_2d cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_convex_hull_2d (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"convex_hull_2d\" '[PoolVector2Array]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.Geometry.convex_hull_2d\n\n{-# NOINLINE bindGeometry_exclude_polygons_2d #-}\n\n-- | Mutually excludes common area defined by intersection of @polygon_a@ and @polygon_b@ (see @method intersect_polygons_2d@) and returns an array of excluded polygons. This performs @OPERATION_XOR@ between polygons. In other words, returns all but common area between polygons.\n--   \t\t\t\tThe operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distiguished by calling @method is_polygon_clockwise@.\nbindGeometry_exclude_polygons_2d :: MethodBind\nbindGeometry_exclude_polygons_2d\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"exclude_polygons_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Mutually excludes common area defined by intersection of @polygon_a@ and @polygon_b@ (see @method intersect_polygons_2d@) and returns an array of excluded polygons. This performs @OPERATION_XOR@ between polygons. In other words, returns all but common area between polygons.\n--   \t\t\t\tThe operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distiguished by calling @method is_polygon_clockwise@.\nexclude_polygons_2d ::\n                      (Geometry :< cls, Object :< cls) =>\n                      cls -> PoolVector2Array -> PoolVector2Array -> IO Array\nexclude_polygons_2d cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_exclude_polygons_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"exclude_polygons_2d\"\n           '[PoolVector2Array, PoolVector2Array]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Geometry.exclude_polygons_2d\n\n{-# NOINLINE bindGeometry_get_closest_point_to_segment #-}\n\n-- | Returns the 3D point on the 3D segment (@s1@, @s2@) that is closest to @point@. The returned point will always be inside the specified segment.\nbindGeometry_get_closest_point_to_segment :: MethodBind\nbindGeometry_get_closest_point_to_segment\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_point_to_segment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the 3D point on the 3D segment (@s1@, @s2@) that is closest to @point@. The returned point will always be inside the specified segment.\nget_closest_point_to_segment ::\n                               (Geometry :< cls, Object :< cls) =>\n                               cls -> Vector3 -> Vector3 -> Vector3 -> IO Vector3\nget_closest_point_to_segment cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_get_closest_point_to_segment\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"get_closest_point_to_segment\"\n           '[Vector3, Vector3, Vector3]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Geometry.get_closest_point_to_segment\n\n{-# NOINLINE bindGeometry_get_closest_point_to_segment_2d #-}\n\n-- | Returns the 2D point on the 2D segment (@s1@, @s2@) that is closest to @point@. The returned point will always be inside the specified segment.\nbindGeometry_get_closest_point_to_segment_2d :: MethodBind\nbindGeometry_get_closest_point_to_segment_2d\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_point_to_segment_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the 2D point on the 2D segment (@s1@, @s2@) that is closest to @point@. The returned point will always be inside the specified segment.\nget_closest_point_to_segment_2d ::\n                                  (Geometry :< cls, Object :< cls) =>\n                                  cls -> Vector2 -> Vector2 -> Vector2 -> IO Vector2\nget_closest_point_to_segment_2d cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_get_closest_point_to_segment_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"get_closest_point_to_segment_2d\"\n           '[Vector2, Vector2, Vector2]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Geometry.get_closest_point_to_segment_2d\n\n{-# NOINLINE bindGeometry_get_closest_point_to_segment_uncapped #-}\n\n-- | Returns the 3D point on the 3D line defined by (@s1@, @s2@) that is closest to @point@. The returned point can be inside the segment (@s1@, @s2@) or outside of it, i.e. somewhere on the line extending from the segment.\nbindGeometry_get_closest_point_to_segment_uncapped :: MethodBind\nbindGeometry_get_closest_point_to_segment_uncapped\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_point_to_segment_uncapped\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the 3D point on the 3D line defined by (@s1@, @s2@) that is closest to @point@. The returned point can be inside the segment (@s1@, @s2@) or outside of it, i.e. somewhere on the line extending from the segment.\nget_closest_point_to_segment_uncapped ::\n                                        (Geometry :< cls, Object :< cls) =>\n                                        cls -> Vector3 -> Vector3 -> Vector3 -> IO Vector3\nget_closest_point_to_segment_uncapped cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindGeometry_get_closest_point_to_segment_uncapped\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry\n           \"get_closest_point_to_segment_uncapped\"\n           '[Vector3, Vector3, Vector3]\n           (IO Vector3)\n         where\n        nodeMethod\n          = Godot.Core.Geometry.get_closest_point_to_segment_uncapped\n\n{-# NOINLINE bindGeometry_get_closest_point_to_segment_uncapped_2d\n             #-}\n\n-- | Returns the 2D point on the 2D line defined by (@s1@, @s2@) that is closest to @point@. The returned point can be inside the segment (@s1@, @s2@) or outside of it, i.e. somewhere on the line extending from the segment.\nbindGeometry_get_closest_point_to_segment_uncapped_2d :: MethodBind\nbindGeometry_get_closest_point_to_segment_uncapped_2d\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_point_to_segment_uncapped_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the 2D point on the 2D line defined by (@s1@, @s2@) that is closest to @point@. The returned point can be inside the segment (@s1@, @s2@) or outside of it, i.e. somewhere on the line extending from the segment.\nget_closest_point_to_segment_uncapped_2d ::\n                                           (Geometry :< cls, Object :< cls) =>\n                                           cls -> Vector2 -> Vector2 -> Vector2 -> IO Vector2\nget_closest_point_to_segment_uncapped_2d cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindGeometry_get_closest_point_to_segment_uncapped_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry\n           \"get_closest_point_to_segment_uncapped_2d\"\n           '[Vector2, Vector2, Vector2]\n           (IO Vector2)\n         where\n        nodeMethod\n          = Godot.Core.Geometry.get_closest_point_to_segment_uncapped_2d\n\n{-# NOINLINE bindGeometry_get_closest_points_between_segments #-}\n\n-- | Given the two 3D segments (@p1@, @p2@) and (@q1@, @q2@), finds those two points on the two segments that are closest to each other. Returns a @PoolVector3Array@ that contains this point on (@p1@, @p2@) as well the accompanying point on (@q1@, @q2@).\nbindGeometry_get_closest_points_between_segments :: MethodBind\nbindGeometry_get_closest_points_between_segments\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_points_between_segments\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Given the two 3D segments (@p1@, @p2@) and (@q1@, @q2@), finds those two points on the two segments that are closest to each other. Returns a @PoolVector3Array@ that contains this point on (@p1@, @p2@) as well the accompanying point on (@q1@, @q2@).\nget_closest_points_between_segments ::\n                                      (Geometry :< cls, Object :< cls) =>\n                                      cls ->\n                                        Vector3 ->\n                                          Vector3 -> Vector3 -> Vector3 -> IO PoolVector3Array\nget_closest_points_between_segments cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindGeometry_get_closest_points_between_segments\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"get_closest_points_between_segments\"\n           '[Vector3, Vector3, Vector3, Vector3]\n           (IO PoolVector3Array)\n         where\n        nodeMethod\n          = Godot.Core.Geometry.get_closest_points_between_segments\n\n{-# NOINLINE bindGeometry_get_closest_points_between_segments_2d\n             #-}\n\n-- | Given the two 2D segments (@p1@, @p2@) and (@q1@, @q2@), finds those two points on the two segments that are closest to each other. Returns a @PoolVector2Array@ that contains this point on (@p1@, @p2@) as well the accompanying point on (@q1@, @q2@).\nbindGeometry_get_closest_points_between_segments_2d :: MethodBind\nbindGeometry_get_closest_points_between_segments_2d\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_points_between_segments_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Given the two 2D segments (@p1@, @p2@) and (@q1@, @q2@), finds those two points on the two segments that are closest to each other. Returns a @PoolVector2Array@ that contains this point on (@p1@, @p2@) as well the accompanying point on (@q1@, @q2@).\nget_closest_points_between_segments_2d ::\n                                         (Geometry :< cls, Object :< cls) =>\n                                         cls ->\n                                           Vector2 ->\n                                             Vector2 -> Vector2 -> Vector2 -> IO PoolVector2Array\nget_closest_points_between_segments_2d cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindGeometry_get_closest_points_between_segments_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry\n           \"get_closest_points_between_segments_2d\"\n           '[Vector2, Vector2, Vector2, Vector2]\n           (IO PoolVector2Array)\n         where\n        nodeMethod\n          = Godot.Core.Geometry.get_closest_points_between_segments_2d\n\n{-# NOINLINE bindGeometry_get_uv84_normal_bit #-}\n\n-- | Used internally by the engine.\nbindGeometry_get_uv84_normal_bit :: MethodBind\nbindGeometry_get_uv84_normal_bit\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"get_uv84_normal_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Used internally by the engine.\nget_uv84_normal_bit ::\n                      (Geometry :< cls, Object :< cls) => cls -> Vector3 -> IO Int\nget_uv84_normal_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_get_uv84_normal_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"get_uv84_normal_bit\" '[Vector3]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Geometry.get_uv84_normal_bit\n\n{-# NOINLINE bindGeometry_intersect_polygons_2d #-}\n\n-- | Intersects @polygon_a@ with @polygon_b@ and returns an array of intersected polygons. This performs @OPERATION_INTERSECTION@ between polygons. In other words, returns common area shared by polygons. Returns an empty array if no intersection occurs.\n--   \t\t\t\tThe operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling @method is_polygon_clockwise@.\nbindGeometry_intersect_polygons_2d :: MethodBind\nbindGeometry_intersect_polygons_2d\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"intersect_polygons_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Intersects @polygon_a@ with @polygon_b@ and returns an array of intersected polygons. This performs @OPERATION_INTERSECTION@ between polygons. In other words, returns common area shared by polygons. Returns an empty array if no intersection occurs.\n--   \t\t\t\tThe operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling @method is_polygon_clockwise@.\nintersect_polygons_2d ::\n                        (Geometry :< cls, Object :< cls) =>\n                        cls -> PoolVector2Array -> PoolVector2Array -> IO Array\nintersect_polygons_2d cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_intersect_polygons_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"intersect_polygons_2d\"\n           '[PoolVector2Array, PoolVector2Array]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Geometry.intersect_polygons_2d\n\n{-# NOINLINE bindGeometry_intersect_polyline_with_polygon_2d #-}\n\n-- | Intersects @polyline@ with @polygon@ and returns an array of intersected polylines. This performs @OPERATION_INTERSECTION@ between the polyline and the polygon. This operation can be thought of as chopping a line with a closed shape.\nbindGeometry_intersect_polyline_with_polygon_2d :: MethodBind\nbindGeometry_intersect_polyline_with_polygon_2d\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"intersect_polyline_with_polygon_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Intersects @polyline@ with @polygon@ and returns an array of intersected polylines. This performs @OPERATION_INTERSECTION@ between the polyline and the polygon. This operation can be thought of as chopping a line with a closed shape.\nintersect_polyline_with_polygon_2d ::\n                                     (Geometry :< cls, Object :< cls) =>\n                                     cls -> PoolVector2Array -> PoolVector2Array -> IO Array\nintersect_polyline_with_polygon_2d cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindGeometry_intersect_polyline_with_polygon_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"intersect_polyline_with_polygon_2d\"\n           '[PoolVector2Array, PoolVector2Array]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Geometry.intersect_polyline_with_polygon_2d\n\n{-# NOINLINE bindGeometry_is_point_in_circle #-}\n\n-- | Returns @true@ if @point@ is inside the circle or if it's located exactly @i@on@/i@ the circle's boundary, otherwise returns @false@.\nbindGeometry_is_point_in_circle :: MethodBind\nbindGeometry_is_point_in_circle\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"is_point_in_circle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if @point@ is inside the circle or if it's located exactly @i@on@/i@ the circle's boundary, otherwise returns @false@.\nis_point_in_circle ::\n                     (Geometry :< cls, Object :< cls) =>\n                     cls -> Vector2 -> Vector2 -> Float -> IO Bool\nis_point_in_circle cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_is_point_in_circle (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"is_point_in_circle\"\n           '[Vector2, Vector2, Float]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Geometry.is_point_in_circle\n\n{-# NOINLINE bindGeometry_is_point_in_polygon #-}\n\n-- | Returns @true@ if @point@ is inside @polygon@ or if it's located exactly @i@on@/i@ polygon's boundary, otherwise returns @false@.\nbindGeometry_is_point_in_polygon :: MethodBind\nbindGeometry_is_point_in_polygon\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"is_point_in_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if @point@ is inside @polygon@ or if it's located exactly @i@on@/i@ polygon's boundary, otherwise returns @false@.\nis_point_in_polygon ::\n                      (Geometry :< cls, Object :< cls) =>\n                      cls -> Vector2 -> PoolVector2Array -> IO Bool\nis_point_in_polygon cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_is_point_in_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"is_point_in_polygon\"\n           '[Vector2, PoolVector2Array]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Geometry.is_point_in_polygon\n\n{-# NOINLINE bindGeometry_is_polygon_clockwise #-}\n\n-- | Returns @true@ if @polygon@'s vertices are ordered in clockwise order, otherwise returns @false@.\nbindGeometry_is_polygon_clockwise :: MethodBind\nbindGeometry_is_polygon_clockwise\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"is_polygon_clockwise\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if @polygon@'s vertices are ordered in clockwise order, otherwise returns @false@.\nis_polygon_clockwise ::\n                       (Geometry :< cls, Object :< cls) =>\n                       cls -> PoolVector2Array -> IO Bool\nis_polygon_clockwise cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_is_polygon_clockwise\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"is_polygon_clockwise\"\n           '[PoolVector2Array]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Geometry.is_polygon_clockwise\n\n{-# NOINLINE bindGeometry_line_intersects_line_2d #-}\n\n-- | Checks if the two lines (@from_a@, @dir_a@) and (@from_b@, @dir_b@) intersect. If yes, return the point of intersection as @Vector2@. If no intersection takes place, returns an empty @Variant@.\n--   \t\t\t\t__Note:__ The lines are specified using direction vectors, not end points.\nbindGeometry_line_intersects_line_2d :: MethodBind\nbindGeometry_line_intersects_line_2d\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"line_intersects_line_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Checks if the two lines (@from_a@, @dir_a@) and (@from_b@, @dir_b@) intersect. If yes, return the point of intersection as @Vector2@. If no intersection takes place, returns an empty @Variant@.\n--   \t\t\t\t__Note:__ The lines are specified using direction vectors, not end points.\nline_intersects_line_2d ::\n                          (Geometry :< cls, Object :< cls) =>\n                          cls -> Vector2 -> Vector2 -> Vector2 -> Vector2 -> IO GodotVariant\nline_intersects_line_2d cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_line_intersects_line_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"line_intersects_line_2d\"\n           '[Vector2, Vector2, Vector2, Vector2]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Geometry.line_intersects_line_2d\n\n{-# NOINLINE bindGeometry_make_atlas #-}\n\n-- | Given an array of @Vector2@s representing tiles, builds an atlas. The returned dictionary has two keys: @points@ is a vector of @Vector2@ that specifies the positions of each tile, @size@ contains the overall size of the whole atlas as @Vector2@.\nbindGeometry_make_atlas :: MethodBind\nbindGeometry_make_atlas\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"make_atlas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Given an array of @Vector2@s representing tiles, builds an atlas. The returned dictionary has two keys: @points@ is a vector of @Vector2@ that specifies the positions of each tile, @size@ contains the overall size of the whole atlas as @Vector2@.\nmake_atlas ::\n             (Geometry :< cls, Object :< cls) =>\n             cls -> PoolVector2Array -> IO Dictionary\nmake_atlas cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_make_atlas (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"make_atlas\" '[PoolVector2Array]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.Geometry.make_atlas\n\n{-# NOINLINE bindGeometry_merge_polygons_2d #-}\n\n-- | Merges (combines) @polygon_a@ and @polygon_b@ and returns an array of merged polygons. This performs @OPERATION_UNION@ between polygons.\n--   \t\t\t\tThe operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling @method is_polygon_clockwise@.\nbindGeometry_merge_polygons_2d :: MethodBind\nbindGeometry_merge_polygons_2d\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"merge_polygons_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Merges (combines) @polygon_a@ and @polygon_b@ and returns an array of merged polygons. This performs @OPERATION_UNION@ between polygons.\n--   \t\t\t\tThe operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling @method is_polygon_clockwise@.\nmerge_polygons_2d ::\n                    (Geometry :< cls, Object :< cls) =>\n                    cls -> PoolVector2Array -> PoolVector2Array -> IO Array\nmerge_polygons_2d cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_merge_polygons_2d (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"merge_polygons_2d\"\n           '[PoolVector2Array, PoolVector2Array]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Geometry.merge_polygons_2d\n\n{-# NOINLINE bindGeometry_offset_polygon_2d #-}\n\n-- | Inflates or deflates @polygon@ by @delta@ units (pixels). If @delta@ is positive, makes the polygon grow outward. If @delta@ is negative, shrinks the polygon inward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. Returns an empty array if @delta@ is negative and the absolute value of it approximately exceeds the minimum bounding rectangle dimensions of the polygon.\n--   \t\t\t\tEach polygon's vertices will be rounded as determined by @join_type@, see @enum PolyJoinType@.\n--   \t\t\t\tThe operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling @method is_polygon_clockwise@.\n--   \t\t\t\t__Note:__ To translate the polygon's vertices specifically, use the @method Transform2D.xform@ method:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar polygon = PoolVector2Array(@Vector2(0, 0), Vector2(100, 0), Vector2(100, 100), Vector2(0, 100)@)\n--   \t\t\t\tvar offset = Vector2(50, 50)\n--   \t\t\t\tpolygon = Transform2D(0, offset).xform(polygon)\n--   \t\t\t\tprint(polygon) # prints @Vector2(50, 50), Vector2(150, 50), Vector2(150, 150), Vector2(50, 150)@\n--   \t\t\t\t\n--   @\nbindGeometry_offset_polygon_2d :: MethodBind\nbindGeometry_offset_polygon_2d\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"offset_polygon_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Inflates or deflates @polygon@ by @delta@ units (pixels). If @delta@ is positive, makes the polygon grow outward. If @delta@ is negative, shrinks the polygon inward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. Returns an empty array if @delta@ is negative and the absolute value of it approximately exceeds the minimum bounding rectangle dimensions of the polygon.\n--   \t\t\t\tEach polygon's vertices will be rounded as determined by @join_type@, see @enum PolyJoinType@.\n--   \t\t\t\tThe operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling @method is_polygon_clockwise@.\n--   \t\t\t\t__Note:__ To translate the polygon's vertices specifically, use the @method Transform2D.xform@ method:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar polygon = PoolVector2Array(@Vector2(0, 0), Vector2(100, 0), Vector2(100, 100), Vector2(0, 100)@)\n--   \t\t\t\tvar offset = Vector2(50, 50)\n--   \t\t\t\tpolygon = Transform2D(0, offset).xform(polygon)\n--   \t\t\t\tprint(polygon) # prints @Vector2(50, 50), Vector2(150, 50), Vector2(150, 150), Vector2(50, 150)@\n--   \t\t\t\t\n--   @\noffset_polygon_2d ::\n                    (Geometry :< cls, Object :< cls) =>\n                    cls -> PoolVector2Array -> Float -> Maybe Int -> IO Array\noffset_polygon_2d cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (0)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_offset_polygon_2d (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"offset_polygon_2d\"\n           '[PoolVector2Array, Float, Maybe Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Geometry.offset_polygon_2d\n\n{-# NOINLINE bindGeometry_offset_polyline_2d #-}\n\n-- | Inflates or deflates @polyline@ by @delta@ units (pixels), producing polygons. If @delta@ is positive, makes the polyline grow outward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. If @delta@ is negative, returns an empty array.\n--   \t\t\t\tEach polygon's vertices will be rounded as determined by @join_type@, see @enum PolyJoinType@.\n--   \t\t\t\tEach polygon's endpoints will be rounded as determined by @end_type@, see @enum PolyEndType@.\n--   \t\t\t\tThe operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling @method is_polygon_clockwise@.\nbindGeometry_offset_polyline_2d :: MethodBind\nbindGeometry_offset_polyline_2d\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"offset_polyline_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Inflates or deflates @polyline@ by @delta@ units (pixels), producing polygons. If @delta@ is positive, makes the polyline grow outward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. If @delta@ is negative, returns an empty array.\n--   \t\t\t\tEach polygon's vertices will be rounded as determined by @join_type@, see @enum PolyJoinType@.\n--   \t\t\t\tEach polygon's endpoints will be rounded as determined by @end_type@, see @enum PolyEndType@.\n--   \t\t\t\tThe operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling @method is_polygon_clockwise@.\noffset_polyline_2d ::\n                     (Geometry :< cls, Object :< cls) =>\n                     cls ->\n                       PoolVector2Array -> Float -> Maybe Int -> Maybe Int -> IO Array\noffset_polyline_2d cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (0)) toVariant arg3,\n       maybe (VariantInt (3)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_offset_polyline_2d (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"offset_polyline_2d\"\n           '[PoolVector2Array, Float, Maybe Int, Maybe Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Geometry.offset_polyline_2d\n\n{-# NOINLINE bindGeometry_point_is_inside_triangle #-}\n\n-- | Returns if @point@ is inside the triangle specified by @a@, @b@ and @c@.\nbindGeometry_point_is_inside_triangle :: MethodBind\nbindGeometry_point_is_inside_triangle\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"point_is_inside_triangle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns if @point@ is inside the triangle specified by @a@, @b@ and @c@.\npoint_is_inside_triangle ::\n                           (Geometry :< cls, Object :< cls) =>\n                           cls -> Vector2 -> Vector2 -> Vector2 -> Vector2 -> IO Bool\npoint_is_inside_triangle cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_point_is_inside_triangle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"point_is_inside_triangle\"\n           '[Vector2, Vector2, Vector2, Vector2]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Geometry.point_is_inside_triangle\n\n{-# NOINLINE bindGeometry_ray_intersects_triangle #-}\n\n-- | Tests if the 3D ray starting at @from@ with the direction of @dir@ intersects the triangle specified by @a@, @b@ and @c@. If yes, returns the point of intersection as @Vector3@. If no intersection takes place, an empty @Variant@ is returned.\nbindGeometry_ray_intersects_triangle :: MethodBind\nbindGeometry_ray_intersects_triangle\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"ray_intersects_triangle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Tests if the 3D ray starting at @from@ with the direction of @dir@ intersects the triangle specified by @a@, @b@ and @c@. If yes, returns the point of intersection as @Vector3@. If no intersection takes place, an empty @Variant@ is returned.\nray_intersects_triangle ::\n                          (Geometry :< cls, Object :< cls) =>\n                          cls ->\n                            Vector3 ->\n                              Vector3 -> Vector3 -> Vector3 -> Vector3 -> IO GodotVariant\nray_intersects_triangle cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_ray_intersects_triangle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"ray_intersects_triangle\"\n           '[Vector3, Vector3, Vector3, Vector3, Vector3]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Geometry.ray_intersects_triangle\n\n{-# NOINLINE bindGeometry_segment_intersects_circle #-}\n\n-- | Given the 2D segment (@segment_from@, @segment_to@), returns the position on the segment (as a number between 0 and 1) at which the segment hits the circle that is located at position @circle_position@ and has radius @circle_radius@. If the segment does not intersect the circle, -1 is returned (this is also the case if the line extending the segment would intersect the circle, but the segment does not).\nbindGeometry_segment_intersects_circle :: MethodBind\nbindGeometry_segment_intersects_circle\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"segment_intersects_circle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Given the 2D segment (@segment_from@, @segment_to@), returns the position on the segment (as a number between 0 and 1) at which the segment hits the circle that is located at position @circle_position@ and has radius @circle_radius@. If the segment does not intersect the circle, -1 is returned (this is also the case if the line extending the segment would intersect the circle, but the segment does not).\nsegment_intersects_circle ::\n                            (Geometry :< cls, Object :< cls) =>\n                            cls -> Vector2 -> Vector2 -> Vector2 -> Float -> IO Float\nsegment_intersects_circle cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_segment_intersects_circle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"segment_intersects_circle\"\n           '[Vector2, Vector2, Vector2, Float]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Geometry.segment_intersects_circle\n\n{-# NOINLINE bindGeometry_segment_intersects_convex #-}\n\n-- | Given a convex hull defined though the @Plane@s in the array @planes@, tests if the segment (@from@, @to@) intersects with that hull. If an intersection is found, returns a @PoolVector3Array@ containing the point the intersection and the hull's normal. If no intersecion is found, an the returned array is empty.\nbindGeometry_segment_intersects_convex :: MethodBind\nbindGeometry_segment_intersects_convex\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"segment_intersects_convex\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Given a convex hull defined though the @Plane@s in the array @planes@, tests if the segment (@from@, @to@) intersects with that hull. If an intersection is found, returns a @PoolVector3Array@ containing the point the intersection and the hull's normal. If no intersecion is found, an the returned array is empty.\nsegment_intersects_convex ::\n                            (Geometry :< cls, Object :< cls) =>\n                            cls -> Vector3 -> Vector3 -> Array -> IO PoolVector3Array\nsegment_intersects_convex cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_segment_intersects_convex\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"segment_intersects_convex\"\n           '[Vector3, Vector3, Array]\n           (IO PoolVector3Array)\n         where\n        nodeMethod = Godot.Core.Geometry.segment_intersects_convex\n\n{-# NOINLINE bindGeometry_segment_intersects_cylinder #-}\n\n-- | Checks if the segment (@from@, @to@) intersects the cylinder with height @height@ that is centered at the origin and has radius @radius@. If no, returns an empty @PoolVector3Array@. If an intersection takes place, the returned array contains the point of intersection and the cylinder's normal at the point of intersection.\nbindGeometry_segment_intersects_cylinder :: MethodBind\nbindGeometry_segment_intersects_cylinder\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"segment_intersects_cylinder\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Checks if the segment (@from@, @to@) intersects the cylinder with height @height@ that is centered at the origin and has radius @radius@. If no, returns an empty @PoolVector3Array@. If an intersection takes place, the returned array contains the point of intersection and the cylinder's normal at the point of intersection.\nsegment_intersects_cylinder ::\n                              (Geometry :< cls, Object :< cls) =>\n                              cls -> Vector3 -> Vector3 -> Float -> Float -> IO PoolVector3Array\nsegment_intersects_cylinder cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_segment_intersects_cylinder\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"segment_intersects_cylinder\"\n           '[Vector3, Vector3, Float, Float]\n           (IO PoolVector3Array)\n         where\n        nodeMethod = Godot.Core.Geometry.segment_intersects_cylinder\n\n{-# NOINLINE bindGeometry_segment_intersects_segment_2d #-}\n\n-- | Checks if the two segments (@from_a@, @to_a@) and (@from_b@, @to_b@) intersect. If yes, return the point of intersection as @Vector2@. If no intersection takes place, returns an empty @Variant@.\nbindGeometry_segment_intersects_segment_2d :: MethodBind\nbindGeometry_segment_intersects_segment_2d\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"segment_intersects_segment_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Checks if the two segments (@from_a@, @to_a@) and (@from_b@, @to_b@) intersect. If yes, return the point of intersection as @Vector2@. If no intersection takes place, returns an empty @Variant@.\nsegment_intersects_segment_2d ::\n                                (Geometry :< cls, Object :< cls) =>\n                                cls -> Vector2 -> Vector2 -> Vector2 -> Vector2 -> IO GodotVariant\nsegment_intersects_segment_2d cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_segment_intersects_segment_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"segment_intersects_segment_2d\"\n           '[Vector2, Vector2, Vector2, Vector2]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Geometry.segment_intersects_segment_2d\n\n{-# NOINLINE bindGeometry_segment_intersects_sphere #-}\n\n-- | Checks if the segment (@from@, @to@) intersects the sphere that is located at @sphere_position@ and has radius @sphere_radius@. If no, returns an empty @PoolVector3Array@. If yes, returns a @PoolVector3Array@ containing the point of intersection and the sphere's normal at the point of intersection.\nbindGeometry_segment_intersects_sphere :: MethodBind\nbindGeometry_segment_intersects_sphere\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"segment_intersects_sphere\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Checks if the segment (@from@, @to@) intersects the sphere that is located at @sphere_position@ and has radius @sphere_radius@. If no, returns an empty @PoolVector3Array@. If yes, returns a @PoolVector3Array@ containing the point of intersection and the sphere's normal at the point of intersection.\nsegment_intersects_sphere ::\n                            (Geometry :< cls, Object :< cls) =>\n                            cls ->\n                              Vector3 -> Vector3 -> Vector3 -> Float -> IO PoolVector3Array\nsegment_intersects_sphere cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_segment_intersects_sphere\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"segment_intersects_sphere\"\n           '[Vector3, Vector3, Vector3, Float]\n           (IO PoolVector3Array)\n         where\n        nodeMethod = Godot.Core.Geometry.segment_intersects_sphere\n\n{-# NOINLINE bindGeometry_segment_intersects_triangle #-}\n\n-- | Tests if the segment (@from@, @to@) intersects the triangle @a@, @b@, @c@. If yes, returns the point of intersection as @Vector3@. If no intersection takes place, an empty @Variant@ is returned.\nbindGeometry_segment_intersects_triangle :: MethodBind\nbindGeometry_segment_intersects_triangle\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"segment_intersects_triangle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Tests if the segment (@from@, @to@) intersects the triangle @a@, @b@, @c@. If yes, returns the point of intersection as @Vector3@. If no intersection takes place, an empty @Variant@ is returned.\nsegment_intersects_triangle ::\n                              (Geometry :< cls, Object :< cls) =>\n                              cls ->\n                                Vector3 ->\n                                  Vector3 -> Vector3 -> Vector3 -> Vector3 -> IO GodotVariant\nsegment_intersects_triangle cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_segment_intersects_triangle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"segment_intersects_triangle\"\n           '[Vector3, Vector3, Vector3, Vector3, Vector3]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Geometry.segment_intersects_triangle\n\n{-# NOINLINE bindGeometry_triangulate_delaunay_2d #-}\n\n-- | Triangulates the area specified by discrete set of @points@ such that no point is inside the circumcircle of any resulting triangle. Returns a @PoolIntArray@ where each triangle consists of three consecutive point indices into @points@ (i.e. the returned array will have @n * 3@ elements, with @n@ being the number of found triangles). If the triangulation did not succeed, an empty @PoolIntArray@ is returned.\nbindGeometry_triangulate_delaunay_2d :: MethodBind\nbindGeometry_triangulate_delaunay_2d\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"triangulate_delaunay_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Triangulates the area specified by discrete set of @points@ such that no point is inside the circumcircle of any resulting triangle. Returns a @PoolIntArray@ where each triangle consists of three consecutive point indices into @points@ (i.e. the returned array will have @n * 3@ elements, with @n@ being the number of found triangles). If the triangulation did not succeed, an empty @PoolIntArray@ is returned.\ntriangulate_delaunay_2d ::\n                          (Geometry :< cls, Object :< cls) =>\n                          cls -> PoolVector2Array -> IO PoolIntArray\ntriangulate_delaunay_2d cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_triangulate_delaunay_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"triangulate_delaunay_2d\"\n           '[PoolVector2Array]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.Geometry.triangulate_delaunay_2d\n\n{-# NOINLINE bindGeometry_triangulate_polygon #-}\n\n-- | Triangulates the polygon specified by the points in @polygon@. Returns a @PoolIntArray@ where each triangle consists of three consecutive point indices into @polygon@ (i.e. the returned array will have @n * 3@ elements, with @n@ being the number of found triangles). If the triangulation did not succeed, an empty @PoolIntArray@ is returned.\nbindGeometry_triangulate_polygon :: MethodBind\nbindGeometry_triangulate_polygon\n  = unsafePerformIO $\n      withCString \"_Geometry\" $\n        \\ clsNamePtr ->\n          withCString \"triangulate_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Triangulates the polygon specified by the points in @polygon@. Returns a @PoolIntArray@ where each triangle consists of three consecutive point indices into @polygon@ (i.e. the returned array will have @n * 3@ elements, with @n@ being the number of found triangles). If the triangulation did not succeed, an empty @PoolIntArray@ is returned.\ntriangulate_polygon ::\n                      (Geometry :< cls, Object :< cls) =>\n                      cls -> PoolVector2Array -> IO PoolIntArray\ntriangulate_polygon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometry_triangulate_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Geometry \"triangulate_polygon\"\n           '[PoolVector2Array]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.Geometry.triangulate_polygon"
  },
  {
    "path": "src/Godot/Core/GeometryInstance.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.GeometryInstance\n       (Godot.Core.GeometryInstance._SHADOW_CASTING_SETTING_SHADOWS_ONLY,\n        Godot.Core.GeometryInstance._FLAG_USE_BAKED_LIGHT,\n        Godot.Core.GeometryInstance._FLAG_MAX,\n        Godot.Core.GeometryInstance._SHADOW_CASTING_SETTING_DOUBLE_SIDED,\n        Godot.Core.GeometryInstance._SHADOW_CASTING_SETTING_OFF,\n        Godot.Core.GeometryInstance._FLAG_DRAW_NEXT_FRAME_IF_VISIBLE,\n        Godot.Core.GeometryInstance._SHADOW_CASTING_SETTING_ON,\n        Godot.Core.GeometryInstance.get_cast_shadows_setting,\n        Godot.Core.GeometryInstance.get_extra_cull_margin,\n        Godot.Core.GeometryInstance.get_flag,\n        Godot.Core.GeometryInstance.get_lod_max_distance,\n        Godot.Core.GeometryInstance.get_lod_max_hysteresis,\n        Godot.Core.GeometryInstance.get_lod_min_distance,\n        Godot.Core.GeometryInstance.get_lod_min_hysteresis,\n        Godot.Core.GeometryInstance.get_material_override,\n        Godot.Core.GeometryInstance.set_cast_shadows_setting,\n        Godot.Core.GeometryInstance.set_custom_aabb,\n        Godot.Core.GeometryInstance.set_extra_cull_margin,\n        Godot.Core.GeometryInstance.set_flag,\n        Godot.Core.GeometryInstance.set_lod_max_distance,\n        Godot.Core.GeometryInstance.set_lod_max_hysteresis,\n        Godot.Core.GeometryInstance.set_lod_min_distance,\n        Godot.Core.GeometryInstance.set_lod_min_hysteresis,\n        Godot.Core.GeometryInstance.set_material_override)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualInstance()\n\n_SHADOW_CASTING_SETTING_SHADOWS_ONLY :: Int\n_SHADOW_CASTING_SETTING_SHADOWS_ONLY = 3\n\n_FLAG_USE_BAKED_LIGHT :: Int\n_FLAG_USE_BAKED_LIGHT = 0\n\n_FLAG_MAX :: Int\n_FLAG_MAX = 2\n\n_SHADOW_CASTING_SETTING_DOUBLE_SIDED :: Int\n_SHADOW_CASTING_SETTING_DOUBLE_SIDED = 2\n\n_SHADOW_CASTING_SETTING_OFF :: Int\n_SHADOW_CASTING_SETTING_OFF = 0\n\n_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE :: Int\n_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE = 1\n\n_SHADOW_CASTING_SETTING_ON :: Int\n_SHADOW_CASTING_SETTING_ON = 1\n\ninstance NodeProperty GeometryInstance \"cast_shadow\" Int 'False\n         where\n        nodeProperty\n          = (get_cast_shadows_setting,\n             wrapDroppingSetter set_cast_shadows_setting, Nothing)\n\ninstance NodeProperty GeometryInstance \"extra_cull_margin\" Float\n           'False\n         where\n        nodeProperty\n          = (get_extra_cull_margin, wrapDroppingSetter set_extra_cull_margin,\n             Nothing)\n\ninstance NodeProperty GeometryInstance \"lod_max_distance\" Float\n           'False\n         where\n        nodeProperty\n          = (get_lod_max_distance, wrapDroppingSetter set_lod_max_distance,\n             Nothing)\n\ninstance NodeProperty GeometryInstance \"lod_max_hysteresis\" Float\n           'False\n         where\n        nodeProperty\n          = (get_lod_max_hysteresis,\n             wrapDroppingSetter set_lod_max_hysteresis, Nothing)\n\ninstance NodeProperty GeometryInstance \"lod_min_distance\" Float\n           'False\n         where\n        nodeProperty\n          = (get_lod_min_distance, wrapDroppingSetter set_lod_min_distance,\n             Nothing)\n\ninstance NodeProperty GeometryInstance \"lod_min_hysteresis\" Float\n           'False\n         where\n        nodeProperty\n          = (get_lod_min_hysteresis,\n             wrapDroppingSetter set_lod_min_hysteresis, Nothing)\n\ninstance NodeProperty GeometryInstance \"material_override\" Material\n           'False\n         where\n        nodeProperty\n          = (get_material_override, wrapDroppingSetter set_material_override,\n             Nothing)\n\ninstance NodeProperty GeometryInstance \"use_in_baked_light\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_flag, wrapIndexedSetter 0 set_flag,\n             Nothing)\n\n{-# NOINLINE bindGeometryInstance_get_cast_shadows_setting #-}\n\n-- | The selected shadow casting flag. See @enum ShadowCastingSetting@ for possible values.\nbindGeometryInstance_get_cast_shadows_setting :: MethodBind\nbindGeometryInstance_get_cast_shadows_setting\n  = unsafePerformIO $\n      withCString \"GeometryInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_cast_shadows_setting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The selected shadow casting flag. See @enum ShadowCastingSetting@ for possible values.\nget_cast_shadows_setting ::\n                           (GeometryInstance :< cls, Object :< cls) => cls -> IO Int\nget_cast_shadows_setting cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindGeometryInstance_get_cast_shadows_setting\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GeometryInstance \"get_cast_shadows_setting\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.GeometryInstance.get_cast_shadows_setting\n\n{-# NOINLINE bindGeometryInstance_get_extra_cull_margin #-}\n\n-- | The extra distance added to the GeometryInstance's bounding box (@AABB@) to increase its cull box.\nbindGeometryInstance_get_extra_cull_margin :: MethodBind\nbindGeometryInstance_get_extra_cull_margin\n  = unsafePerformIO $\n      withCString \"GeometryInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_extra_cull_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The extra distance added to the GeometryInstance's bounding box (@AABB@) to increase its cull box.\nget_extra_cull_margin ::\n                        (GeometryInstance :< cls, Object :< cls) => cls -> IO Float\nget_extra_cull_margin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometryInstance_get_extra_cull_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GeometryInstance \"get_extra_cull_margin\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.GeometryInstance.get_extra_cull_margin\n\n{-# NOINLINE bindGeometryInstance_get_flag #-}\n\n-- | Returns the @enum GeometryInstance.Flags@ that have been set for this object.\nbindGeometryInstance_get_flag :: MethodBind\nbindGeometryInstance_get_flag\n  = unsafePerformIO $\n      withCString \"GeometryInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @enum GeometryInstance.Flags@ that have been set for this object.\nget_flag ::\n           (GeometryInstance :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_flag cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometryInstance_get_flag (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GeometryInstance \"get_flag\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.GeometryInstance.get_flag\n\n{-# NOINLINE bindGeometryInstance_get_lod_max_distance #-}\n\n-- | The GeometryInstance's max LOD distance.\n--   \t\t\t__Note:__ This property currently has no effect.\nbindGeometryInstance_get_lod_max_distance :: MethodBind\nbindGeometryInstance_get_lod_max_distance\n  = unsafePerformIO $\n      withCString \"GeometryInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_lod_max_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The GeometryInstance's max LOD distance.\n--   \t\t\t__Note:__ This property currently has no effect.\nget_lod_max_distance ::\n                       (GeometryInstance :< cls, Object :< cls) => cls -> IO Float\nget_lod_max_distance cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometryInstance_get_lod_max_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GeometryInstance \"get_lod_max_distance\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.GeometryInstance.get_lod_max_distance\n\n{-# NOINLINE bindGeometryInstance_get_lod_max_hysteresis #-}\n\n-- | The GeometryInstance's max LOD margin.\n--   \t\t\t__Note:__ This property currently has no effect.\nbindGeometryInstance_get_lod_max_hysteresis :: MethodBind\nbindGeometryInstance_get_lod_max_hysteresis\n  = unsafePerformIO $\n      withCString \"GeometryInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_lod_max_hysteresis\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The GeometryInstance's max LOD margin.\n--   \t\t\t__Note:__ This property currently has no effect.\nget_lod_max_hysteresis ::\n                         (GeometryInstance :< cls, Object :< cls) => cls -> IO Float\nget_lod_max_hysteresis cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometryInstance_get_lod_max_hysteresis\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GeometryInstance \"get_lod_max_hysteresis\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.GeometryInstance.get_lod_max_hysteresis\n\n{-# NOINLINE bindGeometryInstance_get_lod_min_distance #-}\n\n-- | The GeometryInstance's min LOD distance.\n--   \t\t\t__Note:__ This property currently has no effect.\nbindGeometryInstance_get_lod_min_distance :: MethodBind\nbindGeometryInstance_get_lod_min_distance\n  = unsafePerformIO $\n      withCString \"GeometryInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_lod_min_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The GeometryInstance's min LOD distance.\n--   \t\t\t__Note:__ This property currently has no effect.\nget_lod_min_distance ::\n                       (GeometryInstance :< cls, Object :< cls) => cls -> IO Float\nget_lod_min_distance cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometryInstance_get_lod_min_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GeometryInstance \"get_lod_min_distance\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.GeometryInstance.get_lod_min_distance\n\n{-# NOINLINE bindGeometryInstance_get_lod_min_hysteresis #-}\n\n-- | The GeometryInstance's min LOD margin.\n--   \t\t\t__Note:__ This property currently has no effect.\nbindGeometryInstance_get_lod_min_hysteresis :: MethodBind\nbindGeometryInstance_get_lod_min_hysteresis\n  = unsafePerformIO $\n      withCString \"GeometryInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_lod_min_hysteresis\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The GeometryInstance's min LOD margin.\n--   \t\t\t__Note:__ This property currently has no effect.\nget_lod_min_hysteresis ::\n                         (GeometryInstance :< cls, Object :< cls) => cls -> IO Float\nget_lod_min_hysteresis cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometryInstance_get_lod_min_hysteresis\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GeometryInstance \"get_lod_min_hysteresis\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.GeometryInstance.get_lod_min_hysteresis\n\n{-# NOINLINE bindGeometryInstance_get_material_override #-}\n\n-- | The material override for the whole geometry.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any material set in any material slot of the mesh.\nbindGeometryInstance_get_material_override :: MethodBind\nbindGeometryInstance_get_material_override\n  = unsafePerformIO $\n      withCString \"GeometryInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_material_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The material override for the whole geometry.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any material set in any material slot of the mesh.\nget_material_override ::\n                        (GeometryInstance :< cls, Object :< cls) => cls -> IO Material\nget_material_override cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometryInstance_get_material_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GeometryInstance \"get_material_override\" '[]\n           (IO Material)\n         where\n        nodeMethod = Godot.Core.GeometryInstance.get_material_override\n\n{-# NOINLINE bindGeometryInstance_set_cast_shadows_setting #-}\n\n-- | The selected shadow casting flag. See @enum ShadowCastingSetting@ for possible values.\nbindGeometryInstance_set_cast_shadows_setting :: MethodBind\nbindGeometryInstance_set_cast_shadows_setting\n  = unsafePerformIO $\n      withCString \"GeometryInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_cast_shadows_setting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The selected shadow casting flag. See @enum ShadowCastingSetting@ for possible values.\nset_cast_shadows_setting ::\n                           (GeometryInstance :< cls, Object :< cls) => cls -> Int -> IO ()\nset_cast_shadows_setting cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindGeometryInstance_set_cast_shadows_setting\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GeometryInstance \"set_cast_shadows_setting\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GeometryInstance.set_cast_shadows_setting\n\n{-# NOINLINE bindGeometryInstance_set_custom_aabb #-}\n\n-- | Overrides the bounding box of this node with a custom one. To remove it, set an @AABB@ with all fields set to zero.\nbindGeometryInstance_set_custom_aabb :: MethodBind\nbindGeometryInstance_set_custom_aabb\n  = unsafePerformIO $\n      withCString \"GeometryInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_custom_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Overrides the bounding box of this node with a custom one. To remove it, set an @AABB@ with all fields set to zero.\nset_custom_aabb ::\n                  (GeometryInstance :< cls, Object :< cls) => cls -> Aabb -> IO ()\nset_custom_aabb cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometryInstance_set_custom_aabb\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GeometryInstance \"set_custom_aabb\" '[Aabb]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GeometryInstance.set_custom_aabb\n\n{-# NOINLINE bindGeometryInstance_set_extra_cull_margin #-}\n\n-- | The extra distance added to the GeometryInstance's bounding box (@AABB@) to increase its cull box.\nbindGeometryInstance_set_extra_cull_margin :: MethodBind\nbindGeometryInstance_set_extra_cull_margin\n  = unsafePerformIO $\n      withCString \"GeometryInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_extra_cull_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The extra distance added to the GeometryInstance's bounding box (@AABB@) to increase its cull box.\nset_extra_cull_margin ::\n                        (GeometryInstance :< cls, Object :< cls) => cls -> Float -> IO ()\nset_extra_cull_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometryInstance_set_extra_cull_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GeometryInstance \"set_extra_cull_margin\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GeometryInstance.set_extra_cull_margin\n\n{-# NOINLINE bindGeometryInstance_set_flag #-}\n\n-- | Sets the @enum GeometryInstance.Flags@ specified. See @enum GeometryInstance.Flags@ for options.\nbindGeometryInstance_set_flag :: MethodBind\nbindGeometryInstance_set_flag\n  = unsafePerformIO $\n      withCString \"GeometryInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @enum GeometryInstance.Flags@ specified. See @enum GeometryInstance.Flags@ for options.\nset_flag ::\n           (GeometryInstance :< cls, Object :< cls) =>\n           cls -> Int -> Bool -> IO ()\nset_flag cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometryInstance_set_flag (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GeometryInstance \"set_flag\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GeometryInstance.set_flag\n\n{-# NOINLINE bindGeometryInstance_set_lod_max_distance #-}\n\n-- | The GeometryInstance's max LOD distance.\n--   \t\t\t__Note:__ This property currently has no effect.\nbindGeometryInstance_set_lod_max_distance :: MethodBind\nbindGeometryInstance_set_lod_max_distance\n  = unsafePerformIO $\n      withCString \"GeometryInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_lod_max_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The GeometryInstance's max LOD distance.\n--   \t\t\t__Note:__ This property currently has no effect.\nset_lod_max_distance ::\n                       (GeometryInstance :< cls, Object :< cls) => cls -> Float -> IO ()\nset_lod_max_distance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometryInstance_set_lod_max_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GeometryInstance \"set_lod_max_distance\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GeometryInstance.set_lod_max_distance\n\n{-# NOINLINE bindGeometryInstance_set_lod_max_hysteresis #-}\n\n-- | The GeometryInstance's max LOD margin.\n--   \t\t\t__Note:__ This property currently has no effect.\nbindGeometryInstance_set_lod_max_hysteresis :: MethodBind\nbindGeometryInstance_set_lod_max_hysteresis\n  = unsafePerformIO $\n      withCString \"GeometryInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_lod_max_hysteresis\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The GeometryInstance's max LOD margin.\n--   \t\t\t__Note:__ This property currently has no effect.\nset_lod_max_hysteresis ::\n                         (GeometryInstance :< cls, Object :< cls) => cls -> Float -> IO ()\nset_lod_max_hysteresis cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometryInstance_set_lod_max_hysteresis\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GeometryInstance \"set_lod_max_hysteresis\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GeometryInstance.set_lod_max_hysteresis\n\n{-# NOINLINE bindGeometryInstance_set_lod_min_distance #-}\n\n-- | The GeometryInstance's min LOD distance.\n--   \t\t\t__Note:__ This property currently has no effect.\nbindGeometryInstance_set_lod_min_distance :: MethodBind\nbindGeometryInstance_set_lod_min_distance\n  = unsafePerformIO $\n      withCString \"GeometryInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_lod_min_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The GeometryInstance's min LOD distance.\n--   \t\t\t__Note:__ This property currently has no effect.\nset_lod_min_distance ::\n                       (GeometryInstance :< cls, Object :< cls) => cls -> Float -> IO ()\nset_lod_min_distance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometryInstance_set_lod_min_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GeometryInstance \"set_lod_min_distance\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GeometryInstance.set_lod_min_distance\n\n{-# NOINLINE bindGeometryInstance_set_lod_min_hysteresis #-}\n\n-- | The GeometryInstance's min LOD margin.\n--   \t\t\t__Note:__ This property currently has no effect.\nbindGeometryInstance_set_lod_min_hysteresis :: MethodBind\nbindGeometryInstance_set_lod_min_hysteresis\n  = unsafePerformIO $\n      withCString \"GeometryInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_lod_min_hysteresis\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The GeometryInstance's min LOD margin.\n--   \t\t\t__Note:__ This property currently has no effect.\nset_lod_min_hysteresis ::\n                         (GeometryInstance :< cls, Object :< cls) => cls -> Float -> IO ()\nset_lod_min_hysteresis cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometryInstance_set_lod_min_hysteresis\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GeometryInstance \"set_lod_min_hysteresis\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GeometryInstance.set_lod_min_hysteresis\n\n{-# NOINLINE bindGeometryInstance_set_material_override #-}\n\n-- | The material override for the whole geometry.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any material set in any material slot of the mesh.\nbindGeometryInstance_set_material_override :: MethodBind\nbindGeometryInstance_set_material_override\n  = unsafePerformIO $\n      withCString \"GeometryInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_material_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The material override for the whole geometry.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any material set in any material slot of the mesh.\nset_material_override ::\n                        (GeometryInstance :< cls, Object :< cls) =>\n                        cls -> Material -> IO ()\nset_material_override cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGeometryInstance_set_material_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GeometryInstance \"set_material_override\"\n           '[Material]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GeometryInstance.set_material_override"
  },
  {
    "path": "src/Godot/Core/GlobalConstants.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.GlobalConstants\n       (Godot.Core.GlobalConstants._KEY_BACKTAB,\n        Godot.Core.GlobalConstants._KEY_BRACELEFT,\n        Godot.Core.GlobalConstants._OP_MULTIPLY,\n        Godot.Core.GlobalConstants._KEY_LAUNCH1,\n        Godot.Core.GlobalConstants._KEY_F2,\n        Godot.Core.GlobalConstants._TYPE_NIL,\n        Godot.Core.GlobalConstants._PROPERTY_USAGE_SCRIPT_VARIABLE,\n        Godot.Core.GlobalConstants._KEY_KP_ENTER,\n        Godot.Core.GlobalConstants._ERR_DUPLICATE_SYMBOL,\n        Godot.Core.GlobalConstants._KEY_LAUNCHA,\n        Godot.Core.GlobalConstants._OP_EQUAL,\n        Godot.Core.GlobalConstants._TYPE_INT,\n        Godot.Core.GlobalConstants._KEY_T,\n        Godot.Core.GlobalConstants._KEY_MACRON,\n        Godot.Core.GlobalConstants._TYPE_VECTOR2,\n        Godot.Core.GlobalConstants._OK,\n        Godot.Core.GlobalConstants._PROPERTY_USAGE_NETWORK,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_KEY_ACCEL,\n        Godot.Core.GlobalConstants._MIDI_MESSAGE_CONTROL_CHANGE,\n        Godot.Core.GlobalConstants._KEY_D,\n        Godot.Core.GlobalConstants._KEY_MODIFIER_MASK,\n        Godot.Core.GlobalConstants._KEY_KP_0,\n        Godot.Core.GlobalConstants._JOY_AXIS_3,\n        Godot.Core.GlobalConstants._KEY_CENT,\n        Godot.Core.GlobalConstants._KEY_LAUNCHMAIL,\n        Godot.Core.GlobalConstants._CORNER_TOP_RIGHT,\n        Godot.Core.GlobalConstants._OP_MAX,\n        Godot.Core.GlobalConstants._SPKEY,\n        Godot.Core.GlobalConstants._KEY_4,\n        Godot.Core.GlobalConstants._TYPE_STRING_ARRAY,\n        Godot.Core.GlobalConstants._KEY_SUPER_R,\n        Godot.Core.GlobalConstants._KEY_DEGREE,\n        Godot.Core.GlobalConstants._ERR_QUERY_FAILED,\n        Godot.Core.GlobalConstants._JOY_BUTTON_5,\n        Godot.Core.GlobalConstants._KEY_CURRENCY,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS,\n        Godot.Core.GlobalConstants._BUTTON_WHEEL_DOWN,\n        Godot.Core.GlobalConstants._VALIGN_TOP,\n        Godot.Core.GlobalConstants._KEY_OPENURL,\n        Godot.Core.GlobalConstants._KEY_F10,\n        Godot.Core.GlobalConstants._ERR_FILE_NOT_FOUND,\n        Godot.Core.GlobalConstants._KEY_IACUTE,\n        Godot.Core.GlobalConstants._KEY_F9,\n        Godot.Core.GlobalConstants._JOY_OPENVR_MENU,\n        Godot.Core.GlobalConstants._MIDI_MESSAGE_PROGRAM_CHANGE,\n        Godot.Core.GlobalConstants._JOY_SONY_X,\n        Godot.Core.GlobalConstants._ERR_BUSY,\n        Godot.Core.GlobalConstants._ERR_FILE_EOF,\n        Godot.Core.GlobalConstants._KEY_BRACERIGHT,\n        Godot.Core.GlobalConstants._KEY_THORN,\n        Godot.Core.GlobalConstants._BUTTON_MASK_MIDDLE,\n        Godot.Core.GlobalConstants._KEY_TAB,\n        Godot.Core.GlobalConstants._KEY_YACUTE,\n        Godot.Core.GlobalConstants._JOY_DPAD_DOWN,\n        Godot.Core.GlobalConstants._KEY_PERIODCENTERED,\n        Godot.Core.GlobalConstants._JOY_AXIS_8,\n        Godot.Core.GlobalConstants._KEY_O,\n        Godot.Core.GlobalConstants._KEY_OTILDE,\n        Godot.Core.GlobalConstants._ERR_FILE_BAD_DRIVE,\n        Godot.Core.GlobalConstants._KEY_END,\n        Godot.Core.GlobalConstants._KEY_PLUS,\n        Godot.Core.GlobalConstants._MARGIN_TOP,\n        Godot.Core.GlobalConstants._KEY_GREATER,\n        Godot.Core.GlobalConstants._KEY_KP_6,\n        Godot.Core.GlobalConstants._JOY_AXIS_5,\n        Godot.Core.GlobalConstants._KEY_B,\n        Godot.Core.GlobalConstants._KEY_NOBREAKSPACE,\n        Godot.Core.GlobalConstants._METHOD_FLAG_VIRTUAL,\n        Godot.Core.GlobalConstants._JOY_R3,\n        Godot.Core.GlobalConstants._JOY_BUTTON_8,\n        Godot.Core.GlobalConstants._KEY_2,\n        Godot.Core.GlobalConstants._TYPE_INT_ARRAY,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_FILE,\n        Godot.Core.GlobalConstants._JOY_ANALOG_LX,\n        Godot.Core.GlobalConstants._MIDI_MESSAGE_NOTE_OFF,\n        Godot.Core.GlobalConstants._TYPE_VECTOR2_ARRAY,\n        Godot.Core.GlobalConstants._OP_LESS_EQUAL,\n        Godot.Core.GlobalConstants._KEY_PAUSE,\n        Godot.Core.GlobalConstants._JOY_BUTTON_11,\n        Godot.Core.GlobalConstants._PROPERTY_USAGE_NOEDITOR,\n        Godot.Core.GlobalConstants._BUTTON_LEFT,\n        Godot.Core.GlobalConstants._KEY_LAUNCH7,\n        Godot.Core.GlobalConstants._MARGIN_LEFT,\n        Godot.Core.GlobalConstants._KEY_F4,\n        Godot.Core.GlobalConstants._METHOD_FLAG_EDITOR,\n        Godot.Core.GlobalConstants._BUTTON_MASK_RIGHT,\n        Godot.Core.GlobalConstants._TYPE_STRING,\n        Godot.Core.GlobalConstants._ERR_BUG,\n        Godot.Core.GlobalConstants._KEY_ASCIICIRCUM,\n        Godot.Core.GlobalConstants._JOY_DS_A,\n        Godot.Core.GlobalConstants._KEY_R,\n        Godot.Core.GlobalConstants._JOY_DPAD_RIGHT,\n        Godot.Core.GlobalConstants._TYPE_VECTOR3,\n        Godot.Core.GlobalConstants._ERR_DATABASE_CANT_READ,\n        Godot.Core.GlobalConstants._KEY_ICIRCUMFLEX,\n        Godot.Core.GlobalConstants._JOY_SONY_CIRCLE,\n        Godot.Core.GlobalConstants._JOY_AXIS_2,\n        Godot.Core.GlobalConstants._KEY_E,\n        Godot.Core.GlobalConstants._KEY_KP_1,\n        Godot.Core.GlobalConstants._ERR_CANT_FORK,\n        Godot.Core.GlobalConstants._PROPERTY_USAGE_NO_INSTANCE_STATE,\n        Godot.Core.GlobalConstants._KEY_5,\n        Godot.Core.GlobalConstants._OP_NOT,\n        Godot.Core.GlobalConstants._ERR_PRINTER_ON_FIRE,\n        Godot.Core.GlobalConstants._KEY_MASK_KPAD,\n        Godot.Core.GlobalConstants._OP_XOR,\n        Godot.Core.GlobalConstants._KEY_META,\n        Godot.Core.GlobalConstants._ERR_INVALID_PARAMETER,\n        Godot.Core.GlobalConstants._KEY_LAUNCH0,\n        Godot.Core.GlobalConstants._KEY_F3,\n        Godot.Core.GlobalConstants._OP_BIT_XOR,\n        Godot.Core.GlobalConstants._METHOD_FLAG_FROM_SCRIPT,\n        Godot.Core.GlobalConstants._KEY_KP_ADD,\n        Godot.Core.GlobalConstants._BUTTON_WHEEL_RIGHT,\n        Godot.Core.GlobalConstants._TYPE_NODE_PATH,\n        Godot.Core.GlobalConstants._KEY_U,\n        Godot.Core.GlobalConstants._ERR_UNCONFIGURED,\n        Godot.Core.GlobalConstants._JOY_XBOX_Y,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_LENGTH,\n        Godot.Core.GlobalConstants._KEY_STOP,\n        Godot.Core.GlobalConstants._ERR_UNAVAILABLE,\n        Godot.Core.GlobalConstants._ERR_ALREADY_IN_USE,\n        Godot.Core.GlobalConstants._JOY_DPAD_UP,\n        Godot.Core.GlobalConstants._KEY_X,\n        Godot.Core.GlobalConstants._KEY_QUOTEDBL,\n        Godot.Core.GlobalConstants._KEY_REGISTERED,\n        Godot.Core.GlobalConstants._KEY_H,\n        Godot.Core.GlobalConstants._KEY_DIRECTION_R,\n        Godot.Core.GlobalConstants._JOY_VR_TRIGGER,\n        Godot.Core.GlobalConstants._KEY_RIGHT,\n        Godot.Core.GlobalConstants._JOY_ANALOG_L2,\n        Godot.Core.GlobalConstants._JOY_BUTTON_2,\n        Godot.Core.GlobalConstants._KEY_GUILLEMOTRIGHT,\n        Godot.Core.GlobalConstants._PROPERTY_USAGE_RESTART_IF_CHANGED,\n        Godot.Core.GlobalConstants._KEY_MEDIAPLAY,\n        Godot.Core.GlobalConstants._BUTTON_WHEEL_UP,\n        Godot.Core.GlobalConstants._KEY_8,\n        Godot.Core.GlobalConstants._ERR_PARSE_ERROR,\n        Godot.Core.GlobalConstants._KEY_KP_MULTIPLY,\n        Godot.Core.GlobalConstants._JOY_BUTTON_10,\n        Godot.Core.GlobalConstants._KEY_EACUTE,\n        Godot.Core.GlobalConstants._KEY_LAUNCH6,\n        Godot.Core.GlobalConstants._KEY_F5,\n        Godot.Core.GlobalConstants._MIDI_MESSAGE_AFTERTOUCH,\n        Godot.Core.GlobalConstants._KEY_UACUTE,\n        Godot.Core.GlobalConstants._KEY_THREESUPERIOR,\n        Godot.Core.GlobalConstants._TYPE_VECTOR3_ARRAY,\n        Godot.Core.GlobalConstants._KEY_OCIRCUMFLEX,\n        Godot.Core.GlobalConstants._KEY_LAUNCHF,\n        Godot.Core.GlobalConstants._CORNER_BOTTOM_LEFT,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_DIR,\n        Godot.Core.GlobalConstants._JOY_XBOX_B,\n        Godot.Core.GlobalConstants._KEY_ARING,\n        Godot.Core.GlobalConstants._KEY_S,\n        Godot.Core.GlobalConstants._KEY_SEMICOLON,\n        Godot.Core.GlobalConstants._MIDI_MESSAGE_CHANNEL_PRESSURE,\n        Godot.Core.GlobalConstants._KEY_BRACKETLEFT,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_FLAGS,\n        Godot.Core.GlobalConstants._OP_AND,\n        Godot.Core.GlobalConstants._KEY_PARENLEFT,\n        Godot.Core.GlobalConstants._PROPERTY_USAGE_EDITOR,\n        Godot.Core.GlobalConstants._KEY_KP_7,\n        Godot.Core.GlobalConstants._JOY_AXIS_4,\n        Godot.Core.GlobalConstants._ERR_CANT_CONNECT,\n        Godot.Core.GlobalConstants._KEY_HYPER_R,\n        Godot.Core.GlobalConstants._KEY_C,\n        Godot.Core.GlobalConstants._ERR_CONNECTION_ERROR,\n        Godot.Core.GlobalConstants._OP_BIT_AND,\n        Godot.Core.GlobalConstants._JOY_R2,\n        Godot.Core.GlobalConstants._KEY_MEDIANEXT,\n        Godot.Core.GlobalConstants._KEY_BACK,\n        Godot.Core.GlobalConstants._JOY_BUTTON_9,\n        Godot.Core.GlobalConstants._KEY_MASK_SHIFT,\n        Godot.Core.GlobalConstants._KEY_3,\n        Godot.Core.GlobalConstants._KEY_SSHARP,\n        Godot.Core.GlobalConstants._JOY_ANALOG_LY,\n        Godot.Core.GlobalConstants._JOY_OCULUS_AX,\n        Godot.Core.GlobalConstants._KEY_SCROLLLOCK,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_GLOBAL_FILE,\n        Godot.Core.GlobalConstants._KEY_CODE_MASK,\n        Godot.Core.GlobalConstants._JOY_ANALOG_R2,\n        Godot.Core.GlobalConstants._ERR_LINK_FAILED,\n        Godot.Core.GlobalConstants._JOY_BUTTON_15,\n        Godot.Core.GlobalConstants._KEY_LAUNCH3,\n        Godot.Core.GlobalConstants._JOY_BUTTON_MAX,\n        Godot.Core.GlobalConstants._PROPERTY_USAGE_CHECKABLE,\n        Godot.Core.GlobalConstants._KEY_PAGEUP,\n        Godot.Core.GlobalConstants._METHOD_FLAG_CONST,\n        Godot.Core.GlobalConstants._OP_STRING_CONCAT,\n        Godot.Core.GlobalConstants._TYPE_ARRAY,\n        Godot.Core.GlobalConstants._ERR_FILE_BAD_PATH,\n        Godot.Core.GlobalConstants._KEY_LAUNCHC,\n        Godot.Core.GlobalConstants._KEY_SEARCH,\n        Godot.Core.GlobalConstants._KEY_IDIAERESIS,\n        Godot.Core.GlobalConstants._KEY_BACKSLASH,\n        Godot.Core.GlobalConstants._KEY_DIRECTION_L,\n        Godot.Core.GlobalConstants._KEY_V,\n        Godot.Core.GlobalConstants._KEY_YDIAERESIS,\n        Godot.Core.GlobalConstants._KEY_KP_2,\n        Godot.Core.GlobalConstants._JOY_AXIS_1,\n        Godot.Core.GlobalConstants._KEY_F,\n        Godot.Core.GlobalConstants._KEY_BASSUP,\n        Godot.Core.GlobalConstants._KEY_BASSBOOST,\n        Godot.Core.GlobalConstants._KEY_NTILDE,\n        Godot.Core.GlobalConstants._ERR_METHOD_NOT_FOUND,\n        Godot.Core.GlobalConstants._KEY_IGRAVE,\n        Godot.Core.GlobalConstants._KEY_QUESTION,\n        Godot.Core.GlobalConstants._KEY_6,\n        Godot.Core.GlobalConstants._KEY_EXCLAM,\n        Godot.Core.GlobalConstants._KEY_KP_PERIOD,\n        Godot.Core.GlobalConstants._KEY_I,\n        Godot.Core.GlobalConstants._KEY_ECIRCUMFLEX,\n        Godot.Core.GlobalConstants._OP_ADD,\n        Godot.Core.GlobalConstants._ERR_FILE_MISSING_DEPENDENCIES,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_LAYERS_2D_PHYSICS,\n        Godot.Core.GlobalConstants._JOY_BUTTON_3,\n        Godot.Core.GlobalConstants._KEY_QUOTELEFT,\n        Godot.Core.GlobalConstants._ERR_FILE_CANT_WRITE,\n        Godot.Core.GlobalConstants._KEY_9,\n        Godot.Core.GlobalConstants._HALIGN_CENTER,\n        Godot.Core.GlobalConstants._ERR_DOES_NOT_EXIST,\n        Godot.Core.GlobalConstants._TYPE_BOOL,\n        Godot.Core.GlobalConstants._KEY_F16,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_EXP_EASING,\n        Godot.Core.GlobalConstants._KEY_DIVISION,\n        Godot.Core.GlobalConstants._KEY_DELETE,\n        Godot.Core.GlobalConstants._JOY_XBOX_X,\n        Godot.Core.GlobalConstants._KEY_BAR,\n        Godot.Core.GlobalConstants._ERR_CANT_RESOLVE,\n        Godot.Core.GlobalConstants._HALIGN_LEFT,\n        Godot.Core.GlobalConstants._JOY_SONY_TRIANGLE,\n        Godot.Core.GlobalConstants._KEY_OACUTE,\n        Godot.Core.GlobalConstants._MARGIN_RIGHT,\n        Godot.Core.GlobalConstants._KEY_SECTION,\n        Godot.Core.GlobalConstants._ERR_TIMEOUT,\n        Godot.Core.GlobalConstants._BUTTON_RIGHT,\n        Godot.Core.GlobalConstants._KEY_Y,\n        Godot.Core.GlobalConstants._ERR_SCRIPT_FAILED,\n        Godot.Core.GlobalConstants._KEY_ETH,\n        Godot.Core.GlobalConstants._KEY_ALT,\n        Godot.Core.GlobalConstants._JOY_R,\n        Godot.Core.GlobalConstants._KEY_UCIRCUMFLEX,\n        Godot.Core.GlobalConstants._OP_LESS,\n        Godot.Core.GlobalConstants._ERR_INVALID_DATA,\n        Godot.Core.GlobalConstants._JOY_OCULUS_MENU,\n        Godot.Core.GlobalConstants._ERR_OUT_OF_MEMORY,\n        Godot.Core.GlobalConstants._KEY_HOMEPAGE,\n        Godot.Core.GlobalConstants._OP_SUBTRACT,\n        Godot.Core.GlobalConstants._KEY_KP_8,\n        Godot.Core.GlobalConstants._JOY_ANALOG_RX,\n        Godot.Core.GlobalConstants._KEY_L,\n        Godot.Core.GlobalConstants._KEY_MEDIASTOP,\n        Godot.Core.GlobalConstants._JOY_VR_GRIP,\n        Godot.Core.GlobalConstants._MIDI_MESSAGE_NOTE_ON,\n        Godot.Core.GlobalConstants._KEY_MULTIPLY,\n        Godot.Core.GlobalConstants._KEY_STERLING,\n        Godot.Core.GlobalConstants._OP_NEGATE,\n        Godot.Core.GlobalConstants._JOY_BUTTON_6,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_COLOR_NO_ALPHA,\n        Godot.Core.GlobalConstants._KEY_AE,\n        Godot.Core.GlobalConstants._KEY_MINUS,\n        Godot.Core.GlobalConstants._BUTTON_MIDDLE,\n        Godot.Core.GlobalConstants._KEY_F13,\n        Godot.Core.GlobalConstants._KEY_LAUNCH9,\n        Godot.Core.GlobalConstants._KEY_EXCLAMDOWN,\n        Godot.Core.GlobalConstants._ERR_PARAMETER_RANGE_ERROR,\n        Godot.Core.GlobalConstants._KEY_QUESTIONDOWN,\n        Godot.Core.GlobalConstants._ERR_INVALID_DECLARATION,\n        Godot.Core.GlobalConstants._TYPE_COLOR_ARRAY,\n        Godot.Core.GlobalConstants._KEY_EQUAL,\n        Godot.Core.GlobalConstants._JOY_OPENVR_TOUCHPADX,\n        Godot.Core.GlobalConstants._JOY_OCULUS_BY,\n        Godot.Core.GlobalConstants._OP_BIT_NEGATE,\n        Godot.Core.GlobalConstants._JOY_L3,\n        Godot.Core.GlobalConstants._OP_SHIFT_LEFT,\n        Godot.Core.GlobalConstants._KEY_SPACE,\n        Godot.Core.GlobalConstants._CORNER_TOP_LEFT,\n        Godot.Core.GlobalConstants._KEY_HOME,\n        Godot.Core.GlobalConstants._KEY_MASCULINE,\n        Godot.Core.GlobalConstants._ERR_COMPILATION_FAILED,\n        Godot.Core.GlobalConstants._KEY_W,\n        Godot.Core.GlobalConstants._VALIGN_CENTER,\n        Godot.Core.GlobalConstants._KEY_KP_3,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_GLOBAL_DIR,\n        Godot.Core.GlobalConstants._JOY_AXIS_0,\n        Godot.Core.GlobalConstants._KEY_G,\n        Godot.Core.GlobalConstants._TYPE_DICTIONARY,\n        Godot.Core.GlobalConstants._KEY_FAVORITES,\n        Godot.Core.GlobalConstants._JOY_L,\n        Godot.Core.GlobalConstants._KEY_DIAERESIS,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_IMAGE_COMPRESS_LOSSY,\n        Godot.Core.GlobalConstants._KEY_ONEHALF,\n        Godot.Core.GlobalConstants._KEY_7,\n        Godot.Core.GlobalConstants._KEY_INSERT,\n        Godot.Core.GlobalConstants._KEY_STANDBY,\n        Godot.Core.GlobalConstants._OP_IN,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_ENUM,\n        Godot.Core.GlobalConstants._KEY_BACKSPACE,\n        Godot.Core.GlobalConstants._TYPE_AABB,\n        Godot.Core.GlobalConstants._KEY_KP_DIVIDE,\n        Godot.Core.GlobalConstants._JOY_BUTTON_14,\n        Godot.Core.GlobalConstants._OP_SHIFT_RIGHT,\n        Godot.Core.GlobalConstants._KEY_LAUNCH2,\n        Godot.Core.GlobalConstants._KEY_F1,\n        Godot.Core.GlobalConstants._KEY_CONTROL,\n        Godot.Core.GlobalConstants._KEY_AACUTE,\n        Godot.Core.GlobalConstants._KEY_SYSREQ,\n        Godot.Core.GlobalConstants._KEY_LAUNCHB,\n        Godot.Core.GlobalConstants._PROPERTY_USAGE_CATEGORY,\n        Godot.Core.GlobalConstants._PROPERTY_USAGE_INTERNATIONALIZED,\n        Godot.Core.GlobalConstants._TYPE_OBJECT,\n        Godot.Core.GlobalConstants._KEY_CAPSLOCK,\n        Godot.Core.GlobalConstants._KEY_UGRAVE,\n        Godot.Core.GlobalConstants._JOY_DS_Y,\n        Godot.Core.GlobalConstants._KEY_CEDILLA,\n        Godot.Core.GlobalConstants._KEY_ORDFEMININE,\n        Godot.Core.GlobalConstants._KEY_Z,\n        Godot.Core.GlobalConstants._PROPERTY_USAGE_EDITOR_HELPER,\n        Godot.Core.GlobalConstants._ERR_CYCLIC_LINK,\n        Godot.Core.GlobalConstants._KEY_EGRAVE,\n        Godot.Core.GlobalConstants._KEY_DOWN,\n        Godot.Core.GlobalConstants._OP_MODULE,\n        Godot.Core.GlobalConstants._KEY_MASK_ALT,\n        Godot.Core.GlobalConstants._KEY_J,\n        Godot.Core.GlobalConstants._KEY_SUPER_L,\n        Godot.Core.GlobalConstants._HALIGN_RIGHT,\n        Godot.Core.GlobalConstants._JOY_BUTTON_0,\n        Godot.Core.GlobalConstants._KEY_TREBLEDOWN,\n        Godot.Core.GlobalConstants._KEY_EDIAERESIS,\n        Godot.Core.GlobalConstants._KEY_MASK_CTRL,\n        Godot.Core.GlobalConstants._OP_GREATER,\n        Godot.Core.GlobalConstants._KEY_HYPHEN,\n        Godot.Core.GlobalConstants._KEY_YEN,\n        Godot.Core.GlobalConstants._ERR_DATABASE_CANT_WRITE,\n        Godot.Core.GlobalConstants._TYPE_COLOR,\n        Godot.Core.GlobalConstants._VERTICAL,\n        Godot.Core.GlobalConstants._KEY_VOLUMEDOWN,\n        Godot.Core.GlobalConstants._KEY_F15,\n        Godot.Core.GlobalConstants._KEY_UDIAERESIS,\n        Godot.Core.GlobalConstants._KEY_REFRESH,\n        Godot.Core.GlobalConstants._KEY_SLASH,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_PLACEHOLDER_TEXT,\n        Godot.Core.GlobalConstants._KEY_F12,\n        Godot.Core.GlobalConstants._PROPERTY_USAGE_GROUP,\n        Godot.Core.GlobalConstants._OP_OR,\n        Godot.Core.GlobalConstants._KEY_COPYRIGHT,\n        Godot.Core.GlobalConstants._KEY_LAUNCH8,\n        Godot.Core.GlobalConstants._PROPERTY_USAGE_CHECKED,\n        Godot.Core.GlobalConstants._OP_BIT_OR,\n        Godot.Core.GlobalConstants._KEY_COMMA,\n        Godot.Core.GlobalConstants._TYPE_BASIS,\n        Godot.Core.GlobalConstants._JOY_OPENVR_TOUCHPADY,\n        Godot.Core.GlobalConstants._KEY_NUMLOCK,\n        Godot.Core.GlobalConstants._KEY_VOLUMEUP,\n        Godot.Core.GlobalConstants._METHOD_FLAG_NOSCRIPT,\n        Godot.Core.GlobalConstants._JOY_L2,\n        Godot.Core.GlobalConstants._TYPE_REAL,\n        Godot.Core.GlobalConstants._TYPE_TRANSFORM2D,\n        Godot.Core.GlobalConstants._KEY_HYPER_L,\n        Godot.Core.GlobalConstants._KEY_UP,\n        Godot.Core.GlobalConstants._JOY_VR_PAD,\n        Godot.Core.GlobalConstants._TYPE_RAW_ARRAY,\n        Godot.Core.GlobalConstants._KEY_PERIOD,\n        Godot.Core.GlobalConstants._KEY_ACIRCUMFLEX,\n        Godot.Core.GlobalConstants._TYPE_RECT2,\n        Godot.Core.GlobalConstants._KEY_KP_9,\n        Godot.Core.GlobalConstants._JOY_ANALOG_RY,\n        Godot.Core.GlobalConstants._KEY_M,\n        Godot.Core.GlobalConstants._KEY_MEDIAPREVIOUS,\n        Godot.Core.GlobalConstants._KEY_AT,\n        Godot.Core.GlobalConstants._JOY_VR_ANALOG_TRIGGER,\n        Godot.Core.GlobalConstants._KEY_TREBLEUP,\n        Godot.Core.GlobalConstants._JOY_BUTTON_7,\n        Godot.Core.GlobalConstants._BUTTON_MASK_XBUTTON1,\n        Godot.Core.GlobalConstants._BUTTON_XBUTTON2,\n        Godot.Core.GlobalConstants._KEY_0,\n        Godot.Core.GlobalConstants._KEY_UNDERSCORE,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_LAYERS_2D_RENDER,\n        Godot.Core.GlobalConstants._KEY_ENTER,\n        Godot.Core.GlobalConstants._KEY_ASTERISK,\n        Godot.Core.GlobalConstants._KEY_UNKNOWN,\n        Godot.Core.GlobalConstants._KEY_PARENRIGHT,\n        Godot.Core.GlobalConstants._JOY_BUTTON_13,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_LAYERS_3D_PHYSICS,\n        Godot.Core.GlobalConstants._KEY_LAUNCH5,\n        Godot.Core.GlobalConstants._KEY_F6,\n        Godot.Core.GlobalConstants._CORNER_BOTTOM_RIGHT,\n        Godot.Core.GlobalConstants._ERR_FILE_CANT_OPEN,\n        Godot.Core.GlobalConstants._KEY_LAUNCHE,\n        Godot.Core.GlobalConstants._KEY_NUMBERSIGN,\n        Godot.Core.GlobalConstants._JOY_XBOX_A,\n        Godot.Core.GlobalConstants._KEY_KP_SUBTRACT,\n        Godot.Core.GlobalConstants._KEY_SHIFT,\n        Godot.Core.GlobalConstants._KEY_P,\n        Godot.Core.GlobalConstants._ERR_CANT_ACQUIRE_RESOURCE,\n        Godot.Core.GlobalConstants._METHOD_FLAG_NORMAL,\n        Godot.Core.GlobalConstants._KEY_OGRAVE,\n        Godot.Core.GlobalConstants._TYPE_RID,\n        Godot.Core.GlobalConstants._KEY_ODIAERESIS,\n        Godot.Core.GlobalConstants._ERR_FILE_UNRECOGNIZED,\n        Godot.Core.GlobalConstants._KEY_DOLLAR,\n        Godot.Core.GlobalConstants._KEY_KP_4,\n        Godot.Core.GlobalConstants._JOY_AXIS_7,\n        Godot.Core.GlobalConstants._KEY_BRACKETRIGHT,\n        Godot.Core.GlobalConstants._KEY_MU,\n        Godot.Core.GlobalConstants._KEY_ONEQUARTER,\n        Godot.Core.GlobalConstants._ERR_LOCKED,\n        Godot.Core.GlobalConstants._TYPE_REAL_ARRAY,\n        Godot.Core.GlobalConstants._ERR_ALREADY_EXISTS,\n        Godot.Core.GlobalConstants._ERR_HELP,\n        Godot.Core.GlobalConstants._PROPERTY_USAGE_STORAGE,\n        Godot.Core.GlobalConstants._JOY_START,\n        Godot.Core.GlobalConstants._KEY_K,\n        Godot.Core.GlobalConstants._OP_DIVIDE,\n        Godot.Core.GlobalConstants._FAILED,\n        Godot.Core.GlobalConstants._JOY_BUTTON_1,\n        Godot.Core.GlobalConstants._KEY_PERCENT,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_RANGE,\n        Godot.Core.GlobalConstants._KEY_LEFT,\n        Godot.Core.GlobalConstants._KEY_F14,\n        Godot.Core.GlobalConstants._METHOD_FLAGS_DEFAULT,\n        Godot.Core.GlobalConstants._JOY_AXIS_MAX,\n        Godot.Core.GlobalConstants._METHOD_FLAG_REVERSE,\n        Godot.Core.GlobalConstants._KEY_GUILLEMOTLEFT,\n        Godot.Core.GlobalConstants._TYPE_TRANSFORM,\n        Godot.Core.GlobalConstants._JOY_DS_X,\n        Godot.Core.GlobalConstants._ERR_SKIP,\n        Godot.Core.GlobalConstants._OP_POSITIVE,\n        Godot.Core.GlobalConstants._KEY_FORWARD,\n        Godot.Core.GlobalConstants._KEY_AMPERSAND,\n        Godot.Core.GlobalConstants._TYPE_MAX,\n        Godot.Core.GlobalConstants._KEY_MENU,\n        Godot.Core.GlobalConstants._JOY_SELECT,\n        Godot.Core.GlobalConstants._VALIGN_BOTTOM,\n        Godot.Core.GlobalConstants._ERR_UNAUTHORIZED,\n        Godot.Core.GlobalConstants._JOY_DPAD_LEFT,\n        Godot.Core.GlobalConstants._KEY_PARAGRAPH,\n        Godot.Core.GlobalConstants._KEY_NOTSIGN,\n        Godot.Core.GlobalConstants._TYPE_QUAT,\n        Godot.Core.GlobalConstants._KEY_N,\n        Godot.Core.GlobalConstants._ERR_FILE_CANT_READ,\n        Godot.Core.GlobalConstants._JOY_AXIS_9,\n        Godot.Core.GlobalConstants._KEY_AGRAVE,\n        Godot.Core.GlobalConstants._JOY_BUTTON_4,\n        Godot.Core.GlobalConstants._KEY_BROKENBAR,\n        Godot.Core.GlobalConstants._ERR_FILE_NO_PERMISSION,\n        Godot.Core.GlobalConstants._BUTTON_WHEEL_LEFT,\n        Godot.Core.GlobalConstants._BUTTON_MASK_XBUTTON2,\n        Godot.Core.GlobalConstants._KEY_PLUSMINUS,\n        Godot.Core.GlobalConstants._JOY_SONY_SQUARE,\n        Godot.Core.GlobalConstants._ERR_FILE_CORRUPT,\n        Godot.Core.GlobalConstants._BUTTON_XBUTTON1,\n        Godot.Core.GlobalConstants._KEY_F11,\n        Godot.Core.GlobalConstants._OP_NOT_EQUAL,\n        Godot.Core.GlobalConstants._KEY_OOBLIQUE,\n        Godot.Core.GlobalConstants._MIDI_MESSAGE_PITCH_BEND,\n        Godot.Core.GlobalConstants._HORIZONTAL,\n        Godot.Core.GlobalConstants._KEY_ACUTE,\n        Godot.Core.GlobalConstants._KEY_F8,\n        Godot.Core.GlobalConstants._KEY_ADIAERESIS,\n        Godot.Core.GlobalConstants._MARGIN_BOTTOM,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_NONE,\n        Godot.Core.GlobalConstants._KEY_MASK_META,\n        Godot.Core.GlobalConstants._KEY_MASK_GROUP_SWITCH,\n        Godot.Core.GlobalConstants._KEY_COLON,\n        Godot.Core.GlobalConstants._KEY_HELP,\n        Godot.Core.GlobalConstants._KEY_LAUNCHD,\n        Godot.Core.GlobalConstants._KEY_ONESUPERIOR,\n        Godot.Core.GlobalConstants._KEY_BASSDOWN,\n        Godot.Core.GlobalConstants._KEY_ATILDE,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_MULTILINE_TEXT,\n        Godot.Core.GlobalConstants._KEY_LAUNCHMEDIA,\n        Godot.Core.GlobalConstants._JOY_DS_B,\n        Godot.Core.GlobalConstants._KEY_MEDIARECORD,\n        Godot.Core.GlobalConstants._KEY_Q,\n        Godot.Core.GlobalConstants._BUTTON_MASK_LEFT,\n        Godot.Core.GlobalConstants._KEY_CCEDILLA,\n        Godot.Core.GlobalConstants._ERR_CANT_CREATE,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_EXP_RANGE,\n        Godot.Core.GlobalConstants._OP_GREATER_EQUAL,\n        Godot.Core.GlobalConstants._KEY_KP_5,\n        Godot.Core.GlobalConstants._KEY_APOSTROPHE,\n        Godot.Core.GlobalConstants._JOY_AXIS_6,\n        Godot.Core.GlobalConstants._KEY_A,\n        Godot.Core.GlobalConstants._KEY_THREEQUARTERS,\n        Godot.Core.GlobalConstants._PROPERTY_USAGE_DEFAULT,\n        Godot.Core.GlobalConstants._KEY_LESS,\n        Godot.Core.GlobalConstants._JOY_VR_ANALOG_GRIP,\n        Godot.Core.GlobalConstants._KEY_CLEAR,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_RESOURCE_TYPE,\n        Godot.Core.GlobalConstants._KEY_ESCAPE,\n        Godot.Core.GlobalConstants._KEY_1,\n        Godot.Core.GlobalConstants._KEY_PAGEDOWN,\n        Godot.Core.GlobalConstants._KEY_TWOSUPERIOR,\n        Godot.Core.GlobalConstants._PROPERTY_HINT_LAYERS_3D_RENDER,\n        Godot.Core.GlobalConstants._PROPERTY_USAGE_DEFAULT_INTL,\n        Godot.Core.GlobalConstants._TYPE_PLANE,\n        Godot.Core.GlobalConstants._JOY_BUTTON_12,\n        Godot.Core.GlobalConstants._KEY_PRINT,\n        Godot.Core.GlobalConstants._ERR_FILE_ALREADY_IN_USE,\n        Godot.Core.GlobalConstants._KEY_LAUNCH4,\n        Godot.Core.GlobalConstants._KEY_F7,\n        Godot.Core.GlobalConstants._KEY_ASCIITILDE,\n        Godot.Core.GlobalConstants._KEY_MASK_CMD,\n        Godot.Core.GlobalConstants._KEY_VOLUMEMUTE,\n        Godot.Core.GlobalConstants._ERR_CANT_OPEN)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\n\n_KEY_BACKTAB :: Int\n_KEY_BACKTAB = 16777219\n\n_KEY_BRACELEFT :: Int\n_KEY_BRACELEFT = 123\n\n_OP_MULTIPLY :: Int\n_OP_MULTIPLY = 8\n\n_KEY_LAUNCH1 :: Int\n_KEY_LAUNCH1 = 16777305\n\n_KEY_F2 :: Int\n_KEY_F2 = 16777245\n\n_TYPE_NIL :: Int\n_TYPE_NIL = 0\n\n_PROPERTY_USAGE_SCRIPT_VARIABLE :: Int\n_PROPERTY_USAGE_SCRIPT_VARIABLE = 8192\n\n_KEY_KP_ENTER :: Int\n_KEY_KP_ENTER = 16777222\n\n_ERR_DUPLICATE_SYMBOL :: Int\n_ERR_DUPLICATE_SYMBOL = 42\n\n_KEY_LAUNCHA :: Int\n_KEY_LAUNCHA = 16777314\n\n_OP_EQUAL :: Int\n_OP_EQUAL = 0\n\n_TYPE_INT :: Int\n_TYPE_INT = 2\n\n_KEY_T :: Int\n_KEY_T = 84\n\n_KEY_MACRON :: Int\n_KEY_MACRON = 175\n\n_TYPE_VECTOR2 :: Int\n_TYPE_VECTOR2 = 5\n\n_OK :: Int\n_OK = 0\n\n_PROPERTY_USAGE_NETWORK :: Int\n_PROPERTY_USAGE_NETWORK = 4\n\n_PROPERTY_HINT_KEY_ACCEL :: Int\n_PROPERTY_HINT_KEY_ACCEL = 7\n\n_MIDI_MESSAGE_CONTROL_CHANGE :: Int\n_MIDI_MESSAGE_CONTROL_CHANGE = 11\n\n_KEY_D :: Int\n_KEY_D = 68\n\n_KEY_MODIFIER_MASK :: Int\n_KEY_MODIFIER_MASK = -16777216\n\n_KEY_KP_0 :: Int\n_KEY_KP_0 = 16777350\n\n_JOY_AXIS_3 :: Int\n_JOY_AXIS_3 = 3\n\n_KEY_CENT :: Int\n_KEY_CENT = 162\n\n_KEY_LAUNCHMAIL :: Int\n_KEY_LAUNCHMAIL = 16777302\n\n_CORNER_TOP_RIGHT :: Int\n_CORNER_TOP_RIGHT = 1\n\n_OP_MAX :: Int\n_OP_MAX = 25\n\n_SPKEY :: Int\n_SPKEY = 16777216\n\n_KEY_4 :: Int\n_KEY_4 = 52\n\n_TYPE_STRING_ARRAY :: Int\n_TYPE_STRING_ARRAY = 23\n\n_KEY_SUPER_R :: Int\n_KEY_SUPER_R = 16777261\n\n_KEY_DEGREE :: Int\n_KEY_DEGREE = 176\n\n_ERR_QUERY_FAILED :: Int\n_ERR_QUERY_FAILED = 21\n\n_JOY_BUTTON_5 :: Int\n_JOY_BUTTON_5 = 5\n\n_KEY_CURRENCY :: Int\n_KEY_CURRENCY = 164\n\n_PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS :: Int\n_PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS = 22\n\n_BUTTON_WHEEL_DOWN :: Int\n_BUTTON_WHEEL_DOWN = 5\n\n_VALIGN_TOP :: Int\n_VALIGN_TOP = 0\n\n_KEY_OPENURL :: Int\n_KEY_OPENURL = 16777301\n\n_KEY_F10 :: Int\n_KEY_F10 = 16777253\n\n_ERR_FILE_NOT_FOUND :: Int\n_ERR_FILE_NOT_FOUND = 7\n\n_KEY_IACUTE :: Int\n_KEY_IACUTE = 205\n\n_KEY_F9 :: Int\n_KEY_F9 = 16777252\n\n_JOY_OPENVR_MENU :: Int\n_JOY_OPENVR_MENU = 1\n\n_MIDI_MESSAGE_PROGRAM_CHANGE :: Int\n_MIDI_MESSAGE_PROGRAM_CHANGE = 12\n\n_JOY_SONY_X :: Int\n_JOY_SONY_X = 0\n\n_ERR_BUSY :: Int\n_ERR_BUSY = 44\n\n_ERR_FILE_EOF :: Int\n_ERR_FILE_EOF = 18\n\n_KEY_BRACERIGHT :: Int\n_KEY_BRACERIGHT = 125\n\n_KEY_THORN :: Int\n_KEY_THORN = 222\n\n_BUTTON_MASK_MIDDLE :: Int\n_BUTTON_MASK_MIDDLE = 4\n\n_KEY_TAB :: Int\n_KEY_TAB = 16777218\n\n_KEY_YACUTE :: Int\n_KEY_YACUTE = 221\n\n_JOY_DPAD_DOWN :: Int\n_JOY_DPAD_DOWN = 13\n\n_KEY_PERIODCENTERED :: Int\n_KEY_PERIODCENTERED = 183\n\n_JOY_AXIS_8 :: Int\n_JOY_AXIS_8 = 8\n\n_KEY_O :: Int\n_KEY_O = 79\n\n_KEY_OTILDE :: Int\n_KEY_OTILDE = 213\n\n_ERR_FILE_BAD_DRIVE :: Int\n_ERR_FILE_BAD_DRIVE = 8\n\n_KEY_END :: Int\n_KEY_END = 16777230\n\n_KEY_PLUS :: Int\n_KEY_PLUS = 43\n\n_MARGIN_TOP :: Int\n_MARGIN_TOP = 1\n\n_KEY_GREATER :: Int\n_KEY_GREATER = 62\n\n_KEY_KP_6 :: Int\n_KEY_KP_6 = 16777356\n\n_JOY_AXIS_5 :: Int\n_JOY_AXIS_5 = 5\n\n_KEY_B :: Int\n_KEY_B = 66\n\n_KEY_NOBREAKSPACE :: Int\n_KEY_NOBREAKSPACE = 160\n\n_METHOD_FLAG_VIRTUAL :: Int\n_METHOD_FLAG_VIRTUAL = 32\n\n_JOY_R3 :: Int\n_JOY_R3 = 9\n\n_JOY_BUTTON_8 :: Int\n_JOY_BUTTON_8 = 8\n\n_KEY_2 :: Int\n_KEY_2 = 50\n\n_TYPE_INT_ARRAY :: Int\n_TYPE_INT_ARRAY = 21\n\n_PROPERTY_HINT_FILE :: Int\n_PROPERTY_HINT_FILE = 13\n\n_JOY_ANALOG_LX :: Int\n_JOY_ANALOG_LX = 0\n\n_MIDI_MESSAGE_NOTE_OFF :: Int\n_MIDI_MESSAGE_NOTE_OFF = 8\n\n_TYPE_VECTOR2_ARRAY :: Int\n_TYPE_VECTOR2_ARRAY = 24\n\n_OP_LESS_EQUAL :: Int\n_OP_LESS_EQUAL = 3\n\n_KEY_PAUSE :: Int\n_KEY_PAUSE = 16777225\n\n_JOY_BUTTON_11 :: Int\n_JOY_BUTTON_11 = 11\n\n_PROPERTY_USAGE_NOEDITOR :: Int\n_PROPERTY_USAGE_NOEDITOR = 5\n\n_BUTTON_LEFT :: Int\n_BUTTON_LEFT = 1\n\n_KEY_LAUNCH7 :: Int\n_KEY_LAUNCH7 = 16777311\n\n_MARGIN_LEFT :: Int\n_MARGIN_LEFT = 0\n\n_KEY_F4 :: Int\n_KEY_F4 = 16777247\n\n_METHOD_FLAG_EDITOR :: Int\n_METHOD_FLAG_EDITOR = 2\n\n_BUTTON_MASK_RIGHT :: Int\n_BUTTON_MASK_RIGHT = 2\n\n_TYPE_STRING :: Int\n_TYPE_STRING = 4\n\n_ERR_BUG :: Int\n_ERR_BUG = 47\n\n_KEY_ASCIICIRCUM :: Int\n_KEY_ASCIICIRCUM = 94\n\n_JOY_DS_A :: Int\n_JOY_DS_A = 1\n\n_KEY_R :: Int\n_KEY_R = 82\n\n_JOY_DPAD_RIGHT :: Int\n_JOY_DPAD_RIGHT = 15\n\n_TYPE_VECTOR3 :: Int\n_TYPE_VECTOR3 = 7\n\n_ERR_DATABASE_CANT_READ :: Int\n_ERR_DATABASE_CANT_READ = 34\n\n_KEY_ICIRCUMFLEX :: Int\n_KEY_ICIRCUMFLEX = 206\n\n_JOY_SONY_CIRCLE :: Int\n_JOY_SONY_CIRCLE = 1\n\n_JOY_AXIS_2 :: Int\n_JOY_AXIS_2 = 2\n\n_KEY_E :: Int\n_KEY_E = 69\n\n_KEY_KP_1 :: Int\n_KEY_KP_1 = 16777351\n\n_ERR_CANT_FORK :: Int\n_ERR_CANT_FORK = 29\n\n_PROPERTY_USAGE_NO_INSTANCE_STATE :: Int\n_PROPERTY_USAGE_NO_INSTANCE_STATE = 2048\n\n_KEY_5 :: Int\n_KEY_5 = 53\n\n_OP_NOT :: Int\n_OP_NOT = 23\n\n_ERR_PRINTER_ON_FIRE :: Int\n_ERR_PRINTER_ON_FIRE = 48\n\n_KEY_MASK_KPAD :: Int\n_KEY_MASK_KPAD = 536870912\n\n_OP_XOR :: Int\n_OP_XOR = 22\n\n_KEY_META :: Int\n_KEY_META = 16777239\n\n_ERR_INVALID_PARAMETER :: Int\n_ERR_INVALID_PARAMETER = 31\n\n_KEY_LAUNCH0 :: Int\n_KEY_LAUNCH0 = 16777304\n\n_KEY_F3 :: Int\n_KEY_F3 = 16777246\n\n_OP_BIT_XOR :: Int\n_OP_BIT_XOR = 18\n\n_METHOD_FLAG_FROM_SCRIPT :: Int\n_METHOD_FLAG_FROM_SCRIPT = 64\n\n_KEY_KP_ADD :: Int\n_KEY_KP_ADD = 16777349\n\n_BUTTON_WHEEL_RIGHT :: Int\n_BUTTON_WHEEL_RIGHT = 7\n\n_TYPE_NODE_PATH :: Int\n_TYPE_NODE_PATH = 15\n\n_KEY_U :: Int\n_KEY_U = 85\n\n_ERR_UNCONFIGURED :: Int\n_ERR_UNCONFIGURED = 3\n\n_JOY_XBOX_Y :: Int\n_JOY_XBOX_Y = 3\n\n_PROPERTY_HINT_LENGTH :: Int\n_PROPERTY_HINT_LENGTH = 5\n\n_KEY_STOP :: Int\n_KEY_STOP = 16777282\n\n_ERR_UNAVAILABLE :: Int\n_ERR_UNAVAILABLE = 2\n\n_ERR_ALREADY_IN_USE :: Int\n_ERR_ALREADY_IN_USE = 22\n\n_JOY_DPAD_UP :: Int\n_JOY_DPAD_UP = 12\n\n_KEY_X :: Int\n_KEY_X = 88\n\n_KEY_QUOTEDBL :: Int\n_KEY_QUOTEDBL = 34\n\n_KEY_REGISTERED :: Int\n_KEY_REGISTERED = 174\n\n_KEY_H :: Int\n_KEY_H = 72\n\n_KEY_DIRECTION_R :: Int\n_KEY_DIRECTION_R = 16777267\n\n_JOY_VR_TRIGGER :: Int\n_JOY_VR_TRIGGER = 15\n\n_KEY_RIGHT :: Int\n_KEY_RIGHT = 16777233\n\n_JOY_ANALOG_L2 :: Int\n_JOY_ANALOG_L2 = 6\n\n_JOY_BUTTON_2 :: Int\n_JOY_BUTTON_2 = 2\n\n_KEY_GUILLEMOTRIGHT :: Int\n_KEY_GUILLEMOTRIGHT = 187\n\n_PROPERTY_USAGE_RESTART_IF_CHANGED :: Int\n_PROPERTY_USAGE_RESTART_IF_CHANGED = 4096\n\n_KEY_MEDIAPLAY :: Int\n_KEY_MEDIAPLAY = 16777292\n\n_BUTTON_WHEEL_UP :: Int\n_BUTTON_WHEEL_UP = 4\n\n_KEY_8 :: Int\n_KEY_8 = 56\n\n_ERR_PARSE_ERROR :: Int\n_ERR_PARSE_ERROR = 43\n\n_KEY_KP_MULTIPLY :: Int\n_KEY_KP_MULTIPLY = 16777345\n\n_JOY_BUTTON_10 :: Int\n_JOY_BUTTON_10 = 10\n\n_KEY_EACUTE :: Int\n_KEY_EACUTE = 201\n\n_KEY_LAUNCH6 :: Int\n_KEY_LAUNCH6 = 16777310\n\n_KEY_F5 :: Int\n_KEY_F5 = 16777248\n\n_MIDI_MESSAGE_AFTERTOUCH :: Int\n_MIDI_MESSAGE_AFTERTOUCH = 10\n\n_KEY_UACUTE :: Int\n_KEY_UACUTE = 218\n\n_KEY_THREESUPERIOR :: Int\n_KEY_THREESUPERIOR = 179\n\n_TYPE_VECTOR3_ARRAY :: Int\n_TYPE_VECTOR3_ARRAY = 25\n\n_KEY_OCIRCUMFLEX :: Int\n_KEY_OCIRCUMFLEX = 212\n\n_KEY_LAUNCHF :: Int\n_KEY_LAUNCHF = 16777319\n\n_CORNER_BOTTOM_LEFT :: Int\n_CORNER_BOTTOM_LEFT = 3\n\n_PROPERTY_HINT_DIR :: Int\n_PROPERTY_HINT_DIR = 14\n\n_JOY_XBOX_B :: Int\n_JOY_XBOX_B = 1\n\n_KEY_ARING :: Int\n_KEY_ARING = 197\n\n_KEY_S :: Int\n_KEY_S = 83\n\n_KEY_SEMICOLON :: Int\n_KEY_SEMICOLON = 59\n\n_MIDI_MESSAGE_CHANNEL_PRESSURE :: Int\n_MIDI_MESSAGE_CHANNEL_PRESSURE = 13\n\n_KEY_BRACKETLEFT :: Int\n_KEY_BRACKETLEFT = 91\n\n_PROPERTY_HINT_FLAGS :: Int\n_PROPERTY_HINT_FLAGS = 8\n\n_OP_AND :: Int\n_OP_AND = 20\n\n_KEY_PARENLEFT :: Int\n_KEY_PARENLEFT = 40\n\n_PROPERTY_USAGE_EDITOR :: Int\n_PROPERTY_USAGE_EDITOR = 2\n\n_KEY_KP_7 :: Int\n_KEY_KP_7 = 16777357\n\n_JOY_AXIS_4 :: Int\n_JOY_AXIS_4 = 4\n\n_ERR_CANT_CONNECT :: Int\n_ERR_CANT_CONNECT = 25\n\n_KEY_HYPER_R :: Int\n_KEY_HYPER_R = 16777264\n\n_KEY_C :: Int\n_KEY_C = 67\n\n_ERR_CONNECTION_ERROR :: Int\n_ERR_CONNECTION_ERROR = 27\n\n_OP_BIT_AND :: Int\n_OP_BIT_AND = 16\n\n_JOY_R2 :: Int\n_JOY_R2 = 7\n\n_KEY_MEDIANEXT :: Int\n_KEY_MEDIANEXT = 16777295\n\n_KEY_BACK :: Int\n_KEY_BACK = 16777280\n\n_JOY_BUTTON_9 :: Int\n_JOY_BUTTON_9 = 9\n\n_KEY_MASK_SHIFT :: Int\n_KEY_MASK_SHIFT = 33554432\n\n_KEY_3 :: Int\n_KEY_3 = 51\n\n_KEY_SSHARP :: Int\n_KEY_SSHARP = 223\n\n_JOY_ANALOG_LY :: Int\n_JOY_ANALOG_LY = 1\n\n_JOY_OCULUS_AX :: Int\n_JOY_OCULUS_AX = 7\n\n_KEY_SCROLLLOCK :: Int\n_KEY_SCROLLLOCK = 16777243\n\n_PROPERTY_HINT_GLOBAL_FILE :: Int\n_PROPERTY_HINT_GLOBAL_FILE = 15\n\n_KEY_CODE_MASK :: Int\n_KEY_CODE_MASK = 33554431\n\n_JOY_ANALOG_R2 :: Int\n_JOY_ANALOG_R2 = 7\n\n_ERR_LINK_FAILED :: Int\n_ERR_LINK_FAILED = 38\n\n_JOY_BUTTON_15 :: Int\n_JOY_BUTTON_15 = 15\n\n_KEY_LAUNCH3 :: Int\n_KEY_LAUNCH3 = 16777307\n\n_JOY_BUTTON_MAX :: Int\n_JOY_BUTTON_MAX = 16\n\n_PROPERTY_USAGE_CHECKABLE :: Int\n_PROPERTY_USAGE_CHECKABLE = 16\n\n_KEY_PAGEUP :: Int\n_KEY_PAGEUP = 16777235\n\n_METHOD_FLAG_CONST :: Int\n_METHOD_FLAG_CONST = 8\n\n_OP_STRING_CONCAT :: Int\n_OP_STRING_CONCAT = 13\n\n_TYPE_ARRAY :: Int\n_TYPE_ARRAY = 19\n\n_ERR_FILE_BAD_PATH :: Int\n_ERR_FILE_BAD_PATH = 9\n\n_KEY_LAUNCHC :: Int\n_KEY_LAUNCHC = 16777316\n\n_KEY_SEARCH :: Int\n_KEY_SEARCH = 16777299\n\n_KEY_IDIAERESIS :: Int\n_KEY_IDIAERESIS = 207\n\n_KEY_BACKSLASH :: Int\n_KEY_BACKSLASH = 92\n\n_KEY_DIRECTION_L :: Int\n_KEY_DIRECTION_L = 16777266\n\n_KEY_V :: Int\n_KEY_V = 86\n\n_KEY_YDIAERESIS :: Int\n_KEY_YDIAERESIS = 255\n\n_KEY_KP_2 :: Int\n_KEY_KP_2 = 16777352\n\n_JOY_AXIS_1 :: Int\n_JOY_AXIS_1 = 1\n\n_KEY_F :: Int\n_KEY_F = 70\n\n_KEY_BASSUP :: Int\n_KEY_BASSUP = 16777288\n\n_KEY_BASSBOOST :: Int\n_KEY_BASSBOOST = 16777287\n\n_KEY_NTILDE :: Int\n_KEY_NTILDE = 209\n\n_ERR_METHOD_NOT_FOUND :: Int\n_ERR_METHOD_NOT_FOUND = 37\n\n_KEY_IGRAVE :: Int\n_KEY_IGRAVE = 204\n\n_KEY_QUESTION :: Int\n_KEY_QUESTION = 63\n\n_KEY_6 :: Int\n_KEY_6 = 54\n\n_KEY_EXCLAM :: Int\n_KEY_EXCLAM = 33\n\n_KEY_KP_PERIOD :: Int\n_KEY_KP_PERIOD = 16777348\n\n_KEY_I :: Int\n_KEY_I = 73\n\n_KEY_ECIRCUMFLEX :: Int\n_KEY_ECIRCUMFLEX = 202\n\n_OP_ADD :: Int\n_OP_ADD = 6\n\n_ERR_FILE_MISSING_DEPENDENCIES :: Int\n_ERR_FILE_MISSING_DEPENDENCIES = 17\n\n_PROPERTY_HINT_LAYERS_2D_PHYSICS :: Int\n_PROPERTY_HINT_LAYERS_2D_PHYSICS = 10\n\n_JOY_BUTTON_3 :: Int\n_JOY_BUTTON_3 = 3\n\n_KEY_QUOTELEFT :: Int\n_KEY_QUOTELEFT = 96\n\n_ERR_FILE_CANT_WRITE :: Int\n_ERR_FILE_CANT_WRITE = 13\n\n_KEY_9 :: Int\n_KEY_9 = 57\n\n_HALIGN_CENTER :: Int\n_HALIGN_CENTER = 1\n\n_ERR_DOES_NOT_EXIST :: Int\n_ERR_DOES_NOT_EXIST = 33\n\n_TYPE_BOOL :: Int\n_TYPE_BOOL = 1\n\n_KEY_F16 :: Int\n_KEY_F16 = 16777259\n\n_PROPERTY_HINT_EXP_EASING :: Int\n_PROPERTY_HINT_EXP_EASING = 4\n\n_KEY_DIVISION :: Int\n_KEY_DIVISION = 247\n\n_KEY_DELETE :: Int\n_KEY_DELETE = 16777224\n\n_JOY_XBOX_X :: Int\n_JOY_XBOX_X = 2\n\n_KEY_BAR :: Int\n_KEY_BAR = 124\n\n_ERR_CANT_RESOLVE :: Int\n_ERR_CANT_RESOLVE = 26\n\n_HALIGN_LEFT :: Int\n_HALIGN_LEFT = 0\n\n_JOY_SONY_TRIANGLE :: Int\n_JOY_SONY_TRIANGLE = 3\n\n_KEY_OACUTE :: Int\n_KEY_OACUTE = 211\n\n_MARGIN_RIGHT :: Int\n_MARGIN_RIGHT = 2\n\n_KEY_SECTION :: Int\n_KEY_SECTION = 167\n\n_ERR_TIMEOUT :: Int\n_ERR_TIMEOUT = 24\n\n_BUTTON_RIGHT :: Int\n_BUTTON_RIGHT = 2\n\n_KEY_Y :: Int\n_KEY_Y = 89\n\n_ERR_SCRIPT_FAILED :: Int\n_ERR_SCRIPT_FAILED = 39\n\n_KEY_ETH :: Int\n_KEY_ETH = 208\n\n_KEY_ALT :: Int\n_KEY_ALT = 16777240\n\n_JOY_R :: Int\n_JOY_R = 5\n\n_KEY_UCIRCUMFLEX :: Int\n_KEY_UCIRCUMFLEX = 219\n\n_OP_LESS :: Int\n_OP_LESS = 2\n\n_ERR_INVALID_DATA :: Int\n_ERR_INVALID_DATA = 30\n\n_JOY_OCULUS_MENU :: Int\n_JOY_OCULUS_MENU = 3\n\n_ERR_OUT_OF_MEMORY :: Int\n_ERR_OUT_OF_MEMORY = 6\n\n_KEY_HOMEPAGE :: Int\n_KEY_HOMEPAGE = 16777297\n\n_OP_SUBTRACT :: Int\n_OP_SUBTRACT = 7\n\n_KEY_KP_8 :: Int\n_KEY_KP_8 = 16777358\n\n_JOY_ANALOG_RX :: Int\n_JOY_ANALOG_RX = 2\n\n_KEY_L :: Int\n_KEY_L = 76\n\n_KEY_MEDIASTOP :: Int\n_KEY_MEDIASTOP = 16777293\n\n_JOY_VR_GRIP :: Int\n_JOY_VR_GRIP = 2\n\n_MIDI_MESSAGE_NOTE_ON :: Int\n_MIDI_MESSAGE_NOTE_ON = 9\n\n_KEY_MULTIPLY :: Int\n_KEY_MULTIPLY = 215\n\n_KEY_STERLING :: Int\n_KEY_STERLING = 163\n\n_OP_NEGATE :: Int\n_OP_NEGATE = 10\n\n_JOY_BUTTON_6 :: Int\n_JOY_BUTTON_6 = 6\n\n_PROPERTY_HINT_COLOR_NO_ALPHA :: Int\n_PROPERTY_HINT_COLOR_NO_ALPHA = 20\n\n_KEY_AE :: Int\n_KEY_AE = 198\n\n_KEY_MINUS :: Int\n_KEY_MINUS = 45\n\n_BUTTON_MIDDLE :: Int\n_BUTTON_MIDDLE = 3\n\n_KEY_F13 :: Int\n_KEY_F13 = 16777256\n\n_KEY_LAUNCH9 :: Int\n_KEY_LAUNCH9 = 16777313\n\n_KEY_EXCLAMDOWN :: Int\n_KEY_EXCLAMDOWN = 161\n\n_ERR_PARAMETER_RANGE_ERROR :: Int\n_ERR_PARAMETER_RANGE_ERROR = 5\n\n_KEY_QUESTIONDOWN :: Int\n_KEY_QUESTIONDOWN = 191\n\n_ERR_INVALID_DECLARATION :: Int\n_ERR_INVALID_DECLARATION = 41\n\n_TYPE_COLOR_ARRAY :: Int\n_TYPE_COLOR_ARRAY = 26\n\n_KEY_EQUAL :: Int\n_KEY_EQUAL = 61\n\n_JOY_OPENVR_TOUCHPADX :: Int\n_JOY_OPENVR_TOUCHPADX = 0\n\n_JOY_OCULUS_BY :: Int\n_JOY_OCULUS_BY = 1\n\n_OP_BIT_NEGATE :: Int\n_OP_BIT_NEGATE = 19\n\n_JOY_L3 :: Int\n_JOY_L3 = 8\n\n_OP_SHIFT_LEFT :: Int\n_OP_SHIFT_LEFT = 14\n\n_KEY_SPACE :: Int\n_KEY_SPACE = 32\n\n_CORNER_TOP_LEFT :: Int\n_CORNER_TOP_LEFT = 0\n\n_KEY_HOME :: Int\n_KEY_HOME = 16777229\n\n_KEY_MASCULINE :: Int\n_KEY_MASCULINE = 186\n\n_ERR_COMPILATION_FAILED :: Int\n_ERR_COMPILATION_FAILED = 36\n\n_KEY_W :: Int\n_KEY_W = 87\n\n_VALIGN_CENTER :: Int\n_VALIGN_CENTER = 1\n\n_KEY_KP_3 :: Int\n_KEY_KP_3 = 16777353\n\n_PROPERTY_HINT_GLOBAL_DIR :: Int\n_PROPERTY_HINT_GLOBAL_DIR = 16\n\n_JOY_AXIS_0 :: Int\n_JOY_AXIS_0 = 0\n\n_KEY_G :: Int\n_KEY_G = 71\n\n_TYPE_DICTIONARY :: Int\n_TYPE_DICTIONARY = 18\n\n_KEY_FAVORITES :: Int\n_KEY_FAVORITES = 16777298\n\n_JOY_L :: Int\n_JOY_L = 4\n\n_KEY_DIAERESIS :: Int\n_KEY_DIAERESIS = 168\n\n_PROPERTY_HINT_IMAGE_COMPRESS_LOSSY :: Int\n_PROPERTY_HINT_IMAGE_COMPRESS_LOSSY = 21\n\n_KEY_ONEHALF :: Int\n_KEY_ONEHALF = 189\n\n_KEY_7 :: Int\n_KEY_7 = 55\n\n_KEY_INSERT :: Int\n_KEY_INSERT = 16777223\n\n_KEY_STANDBY :: Int\n_KEY_STANDBY = 16777300\n\n_OP_IN :: Int\n_OP_IN = 24\n\n_PROPERTY_HINT_ENUM :: Int\n_PROPERTY_HINT_ENUM = 3\n\n_KEY_BACKSPACE :: Int\n_KEY_BACKSPACE = 16777220\n\n_TYPE_AABB :: Int\n_TYPE_AABB = 11\n\n_KEY_KP_DIVIDE :: Int\n_KEY_KP_DIVIDE = 16777346\n\n_JOY_BUTTON_14 :: Int\n_JOY_BUTTON_14 = 14\n\n_OP_SHIFT_RIGHT :: Int\n_OP_SHIFT_RIGHT = 15\n\n_KEY_LAUNCH2 :: Int\n_KEY_LAUNCH2 = 16777306\n\n_KEY_F1 :: Int\n_KEY_F1 = 16777244\n\n_KEY_CONTROL :: Int\n_KEY_CONTROL = 16777238\n\n_KEY_AACUTE :: Int\n_KEY_AACUTE = 193\n\n_KEY_SYSREQ :: Int\n_KEY_SYSREQ = 16777227\n\n_KEY_LAUNCHB :: Int\n_KEY_LAUNCHB = 16777315\n\n_PROPERTY_USAGE_CATEGORY :: Int\n_PROPERTY_USAGE_CATEGORY = 256\n\n_PROPERTY_USAGE_INTERNATIONALIZED :: Int\n_PROPERTY_USAGE_INTERNATIONALIZED = 64\n\n_TYPE_OBJECT :: Int\n_TYPE_OBJECT = 17\n\n_KEY_CAPSLOCK :: Int\n_KEY_CAPSLOCK = 16777241\n\n_KEY_UGRAVE :: Int\n_KEY_UGRAVE = 217\n\n_JOY_DS_Y :: Int\n_JOY_DS_Y = 2\n\n_KEY_CEDILLA :: Int\n_KEY_CEDILLA = 184\n\n_KEY_ORDFEMININE :: Int\n_KEY_ORDFEMININE = 170\n\n_KEY_Z :: Int\n_KEY_Z = 90\n\n_PROPERTY_USAGE_EDITOR_HELPER :: Int\n_PROPERTY_USAGE_EDITOR_HELPER = 8\n\n_ERR_CYCLIC_LINK :: Int\n_ERR_CYCLIC_LINK = 40\n\n_KEY_EGRAVE :: Int\n_KEY_EGRAVE = 200\n\n_KEY_DOWN :: Int\n_KEY_DOWN = 16777234\n\n_OP_MODULE :: Int\n_OP_MODULE = 12\n\n_KEY_MASK_ALT :: Int\n_KEY_MASK_ALT = 67108864\n\n_KEY_J :: Int\n_KEY_J = 74\n\n_KEY_SUPER_L :: Int\n_KEY_SUPER_L = 16777260\n\n_HALIGN_RIGHT :: Int\n_HALIGN_RIGHT = 2\n\n_JOY_BUTTON_0 :: Int\n_JOY_BUTTON_0 = 0\n\n_KEY_TREBLEDOWN :: Int\n_KEY_TREBLEDOWN = 16777291\n\n_KEY_EDIAERESIS :: Int\n_KEY_EDIAERESIS = 203\n\n_KEY_MASK_CTRL :: Int\n_KEY_MASK_CTRL = 268435456\n\n_OP_GREATER :: Int\n_OP_GREATER = 4\n\n_KEY_HYPHEN :: Int\n_KEY_HYPHEN = 173\n\n_KEY_YEN :: Int\n_KEY_YEN = 165\n\n_ERR_DATABASE_CANT_WRITE :: Int\n_ERR_DATABASE_CANT_WRITE = 35\n\n_TYPE_COLOR :: Int\n_TYPE_COLOR = 14\n\n_VERTICAL :: Int\n_VERTICAL = 1\n\n_KEY_VOLUMEDOWN :: Int\n_KEY_VOLUMEDOWN = 16777284\n\n_KEY_F15 :: Int\n_KEY_F15 = 16777258\n\n_KEY_UDIAERESIS :: Int\n_KEY_UDIAERESIS = 220\n\n_KEY_REFRESH :: Int\n_KEY_REFRESH = 16777283\n\n_KEY_SLASH :: Int\n_KEY_SLASH = 47\n\n_PROPERTY_HINT_PLACEHOLDER_TEXT :: Int\n_PROPERTY_HINT_PLACEHOLDER_TEXT = 19\n\n_KEY_F12 :: Int\n_KEY_F12 = 16777255\n\n_PROPERTY_USAGE_GROUP :: Int\n_PROPERTY_USAGE_GROUP = 128\n\n_OP_OR :: Int\n_OP_OR = 21\n\n_KEY_COPYRIGHT :: Int\n_KEY_COPYRIGHT = 169\n\n_KEY_LAUNCH8 :: Int\n_KEY_LAUNCH8 = 16777312\n\n_PROPERTY_USAGE_CHECKED :: Int\n_PROPERTY_USAGE_CHECKED = 32\n\n_OP_BIT_OR :: Int\n_OP_BIT_OR = 17\n\n_KEY_COMMA :: Int\n_KEY_COMMA = 44\n\n_TYPE_BASIS :: Int\n_TYPE_BASIS = 12\n\n_JOY_OPENVR_TOUCHPADY :: Int\n_JOY_OPENVR_TOUCHPADY = 1\n\n_KEY_NUMLOCK :: Int\n_KEY_NUMLOCK = 16777242\n\n_KEY_VOLUMEUP :: Int\n_KEY_VOLUMEUP = 16777286\n\n_METHOD_FLAG_NOSCRIPT :: Int\n_METHOD_FLAG_NOSCRIPT = 4\n\n_JOY_L2 :: Int\n_JOY_L2 = 6\n\n_TYPE_REAL :: Int\n_TYPE_REAL = 3\n\n_TYPE_TRANSFORM2D :: Int\n_TYPE_TRANSFORM2D = 8\n\n_KEY_HYPER_L :: Int\n_KEY_HYPER_L = 16777263\n\n_KEY_UP :: Int\n_KEY_UP = 16777232\n\n_JOY_VR_PAD :: Int\n_JOY_VR_PAD = 14\n\n_TYPE_RAW_ARRAY :: Int\n_TYPE_RAW_ARRAY = 20\n\n_KEY_PERIOD :: Int\n_KEY_PERIOD = 46\n\n_KEY_ACIRCUMFLEX :: Int\n_KEY_ACIRCUMFLEX = 194\n\n_TYPE_RECT2 :: Int\n_TYPE_RECT2 = 6\n\n_KEY_KP_9 :: Int\n_KEY_KP_9 = 16777359\n\n_JOY_ANALOG_RY :: Int\n_JOY_ANALOG_RY = 3\n\n_KEY_M :: Int\n_KEY_M = 77\n\n_KEY_MEDIAPREVIOUS :: Int\n_KEY_MEDIAPREVIOUS = 16777294\n\n_KEY_AT :: Int\n_KEY_AT = 64\n\n_JOY_VR_ANALOG_TRIGGER :: Int\n_JOY_VR_ANALOG_TRIGGER = 2\n\n_KEY_TREBLEUP :: Int\n_KEY_TREBLEUP = 16777290\n\n_JOY_BUTTON_7 :: Int\n_JOY_BUTTON_7 = 7\n\n_BUTTON_MASK_XBUTTON1 :: Int\n_BUTTON_MASK_XBUTTON1 = 128\n\n_BUTTON_XBUTTON2 :: Int\n_BUTTON_XBUTTON2 = 9\n\n_KEY_0 :: Int\n_KEY_0 = 48\n\n_KEY_UNDERSCORE :: Int\n_KEY_UNDERSCORE = 95\n\n_PROPERTY_HINT_LAYERS_2D_RENDER :: Int\n_PROPERTY_HINT_LAYERS_2D_RENDER = 9\n\n_KEY_ENTER :: Int\n_KEY_ENTER = 16777221\n\n_KEY_ASTERISK :: Int\n_KEY_ASTERISK = 42\n\n_KEY_UNKNOWN :: Int\n_KEY_UNKNOWN = 33554431\n\n_KEY_PARENRIGHT :: Int\n_KEY_PARENRIGHT = 41\n\n_JOY_BUTTON_13 :: Int\n_JOY_BUTTON_13 = 13\n\n_PROPERTY_HINT_LAYERS_3D_PHYSICS :: Int\n_PROPERTY_HINT_LAYERS_3D_PHYSICS = 12\n\n_KEY_LAUNCH5 :: Int\n_KEY_LAUNCH5 = 16777309\n\n_KEY_F6 :: Int\n_KEY_F6 = 16777249\n\n_CORNER_BOTTOM_RIGHT :: Int\n_CORNER_BOTTOM_RIGHT = 2\n\n_ERR_FILE_CANT_OPEN :: Int\n_ERR_FILE_CANT_OPEN = 12\n\n_KEY_LAUNCHE :: Int\n_KEY_LAUNCHE = 16777318\n\n_KEY_NUMBERSIGN :: Int\n_KEY_NUMBERSIGN = 35\n\n_JOY_XBOX_A :: Int\n_JOY_XBOX_A = 0\n\n_KEY_KP_SUBTRACT :: Int\n_KEY_KP_SUBTRACT = 16777347\n\n_KEY_SHIFT :: Int\n_KEY_SHIFT = 16777237\n\n_KEY_P :: Int\n_KEY_P = 80\n\n_ERR_CANT_ACQUIRE_RESOURCE :: Int\n_ERR_CANT_ACQUIRE_RESOURCE = 28\n\n_METHOD_FLAG_NORMAL :: Int\n_METHOD_FLAG_NORMAL = 1\n\n_KEY_OGRAVE :: Int\n_KEY_OGRAVE = 210\n\n_TYPE_RID :: Int\n_TYPE_RID = 16\n\n_KEY_ODIAERESIS :: Int\n_KEY_ODIAERESIS = 214\n\n_ERR_FILE_UNRECOGNIZED :: Int\n_ERR_FILE_UNRECOGNIZED = 15\n\n_KEY_DOLLAR :: Int\n_KEY_DOLLAR = 36\n\n_KEY_KP_4 :: Int\n_KEY_KP_4 = 16777354\n\n_JOY_AXIS_7 :: Int\n_JOY_AXIS_7 = 7\n\n_KEY_BRACKETRIGHT :: Int\n_KEY_BRACKETRIGHT = 93\n\n_KEY_MU :: Int\n_KEY_MU = 181\n\n_KEY_ONEQUARTER :: Int\n_KEY_ONEQUARTER = 188\n\n_ERR_LOCKED :: Int\n_ERR_LOCKED = 23\n\n_TYPE_REAL_ARRAY :: Int\n_TYPE_REAL_ARRAY = 22\n\n_ERR_ALREADY_EXISTS :: Int\n_ERR_ALREADY_EXISTS = 32\n\n_ERR_HELP :: Int\n_ERR_HELP = 46\n\n_PROPERTY_USAGE_STORAGE :: Int\n_PROPERTY_USAGE_STORAGE = 1\n\n_JOY_START :: Int\n_JOY_START = 11\n\n_KEY_K :: Int\n_KEY_K = 75\n\n_OP_DIVIDE :: Int\n_OP_DIVIDE = 9\n\n_FAILED :: Int\n_FAILED = 1\n\n_JOY_BUTTON_1 :: Int\n_JOY_BUTTON_1 = 1\n\n_KEY_PERCENT :: Int\n_KEY_PERCENT = 37\n\n_PROPERTY_HINT_RANGE :: Int\n_PROPERTY_HINT_RANGE = 1\n\n_KEY_LEFT :: Int\n_KEY_LEFT = 16777231\n\n_KEY_F14 :: Int\n_KEY_F14 = 16777257\n\n_METHOD_FLAGS_DEFAULT :: Int\n_METHOD_FLAGS_DEFAULT = 1\n\n_JOY_AXIS_MAX :: Int\n_JOY_AXIS_MAX = 10\n\n_METHOD_FLAG_REVERSE :: Int\n_METHOD_FLAG_REVERSE = 16\n\n_KEY_GUILLEMOTLEFT :: Int\n_KEY_GUILLEMOTLEFT = 171\n\n_TYPE_TRANSFORM :: Int\n_TYPE_TRANSFORM = 13\n\n_JOY_DS_X :: Int\n_JOY_DS_X = 3\n\n_ERR_SKIP :: Int\n_ERR_SKIP = 45\n\n_OP_POSITIVE :: Int\n_OP_POSITIVE = 11\n\n_KEY_FORWARD :: Int\n_KEY_FORWARD = 16777281\n\n_KEY_AMPERSAND :: Int\n_KEY_AMPERSAND = 38\n\n_TYPE_MAX :: Int\n_TYPE_MAX = 27\n\n_KEY_MENU :: Int\n_KEY_MENU = 16777262\n\n_JOY_SELECT :: Int\n_JOY_SELECT = 10\n\n_VALIGN_BOTTOM :: Int\n_VALIGN_BOTTOM = 2\n\n_ERR_UNAUTHORIZED :: Int\n_ERR_UNAUTHORIZED = 4\n\n_JOY_DPAD_LEFT :: Int\n_JOY_DPAD_LEFT = 14\n\n_KEY_PARAGRAPH :: Int\n_KEY_PARAGRAPH = 182\n\n_KEY_NOTSIGN :: Int\n_KEY_NOTSIGN = 172\n\n_TYPE_QUAT :: Int\n_TYPE_QUAT = 10\n\n_KEY_N :: Int\n_KEY_N = 78\n\n_ERR_FILE_CANT_READ :: Int\n_ERR_FILE_CANT_READ = 14\n\n_JOY_AXIS_9 :: Int\n_JOY_AXIS_9 = 9\n\n_KEY_AGRAVE :: Int\n_KEY_AGRAVE = 192\n\n_JOY_BUTTON_4 :: Int\n_JOY_BUTTON_4 = 4\n\n_KEY_BROKENBAR :: Int\n_KEY_BROKENBAR = 166\n\n_ERR_FILE_NO_PERMISSION :: Int\n_ERR_FILE_NO_PERMISSION = 10\n\n_BUTTON_WHEEL_LEFT :: Int\n_BUTTON_WHEEL_LEFT = 6\n\n_BUTTON_MASK_XBUTTON2 :: Int\n_BUTTON_MASK_XBUTTON2 = 256\n\n_KEY_PLUSMINUS :: Int\n_KEY_PLUSMINUS = 177\n\n_JOY_SONY_SQUARE :: Int\n_JOY_SONY_SQUARE = 2\n\n_ERR_FILE_CORRUPT :: Int\n_ERR_FILE_CORRUPT = 16\n\n_BUTTON_XBUTTON1 :: Int\n_BUTTON_XBUTTON1 = 8\n\n_KEY_F11 :: Int\n_KEY_F11 = 16777254\n\n_OP_NOT_EQUAL :: Int\n_OP_NOT_EQUAL = 1\n\n_KEY_OOBLIQUE :: Int\n_KEY_OOBLIQUE = 216\n\n_MIDI_MESSAGE_PITCH_BEND :: Int\n_MIDI_MESSAGE_PITCH_BEND = 14\n\n_HORIZONTAL :: Int\n_HORIZONTAL = 0\n\n_KEY_ACUTE :: Int\n_KEY_ACUTE = 180\n\n_KEY_F8 :: Int\n_KEY_F8 = 16777251\n\n_KEY_ADIAERESIS :: Int\n_KEY_ADIAERESIS = 196\n\n_MARGIN_BOTTOM :: Int\n_MARGIN_BOTTOM = 3\n\n_PROPERTY_HINT_NONE :: Int\n_PROPERTY_HINT_NONE = 0\n\n_KEY_MASK_META :: Int\n_KEY_MASK_META = 134217728\n\n_KEY_MASK_GROUP_SWITCH :: Int\n_KEY_MASK_GROUP_SWITCH = 1073741824\n\n_KEY_COLON :: Int\n_KEY_COLON = 58\n\n_KEY_HELP :: Int\n_KEY_HELP = 16777265\n\n_KEY_LAUNCHD :: Int\n_KEY_LAUNCHD = 16777317\n\n_KEY_ONESUPERIOR :: Int\n_KEY_ONESUPERIOR = 185\n\n_KEY_BASSDOWN :: Int\n_KEY_BASSDOWN = 16777289\n\n_KEY_ATILDE :: Int\n_KEY_ATILDE = 195\n\n_PROPERTY_HINT_MULTILINE_TEXT :: Int\n_PROPERTY_HINT_MULTILINE_TEXT = 18\n\n_KEY_LAUNCHMEDIA :: Int\n_KEY_LAUNCHMEDIA = 16777303\n\n_JOY_DS_B :: Int\n_JOY_DS_B = 0\n\n_KEY_MEDIARECORD :: Int\n_KEY_MEDIARECORD = 16777296\n\n_KEY_Q :: Int\n_KEY_Q = 81\n\n_BUTTON_MASK_LEFT :: Int\n_BUTTON_MASK_LEFT = 1\n\n_KEY_CCEDILLA :: Int\n_KEY_CCEDILLA = 199\n\n_ERR_CANT_CREATE :: Int\n_ERR_CANT_CREATE = 20\n\n_PROPERTY_HINT_EXP_RANGE :: Int\n_PROPERTY_HINT_EXP_RANGE = 2\n\n_OP_GREATER_EQUAL :: Int\n_OP_GREATER_EQUAL = 5\n\n_KEY_KP_5 :: Int\n_KEY_KP_5 = 16777355\n\n_KEY_APOSTROPHE :: Int\n_KEY_APOSTROPHE = 39\n\n_JOY_AXIS_6 :: Int\n_JOY_AXIS_6 = 6\n\n_KEY_A :: Int\n_KEY_A = 65\n\n_KEY_THREEQUARTERS :: Int\n_KEY_THREEQUARTERS = 190\n\n_PROPERTY_USAGE_DEFAULT :: Int\n_PROPERTY_USAGE_DEFAULT = 7\n\n_KEY_LESS :: Int\n_KEY_LESS = 60\n\n_JOY_VR_ANALOG_GRIP :: Int\n_JOY_VR_ANALOG_GRIP = 4\n\n_KEY_CLEAR :: Int\n_KEY_CLEAR = 16777228\n\n_PROPERTY_HINT_RESOURCE_TYPE :: Int\n_PROPERTY_HINT_RESOURCE_TYPE = 17\n\n_KEY_ESCAPE :: Int\n_KEY_ESCAPE = 16777217\n\n_KEY_1 :: Int\n_KEY_1 = 49\n\n_KEY_PAGEDOWN :: Int\n_KEY_PAGEDOWN = 16777236\n\n_KEY_TWOSUPERIOR :: Int\n_KEY_TWOSUPERIOR = 178\n\n_PROPERTY_HINT_LAYERS_3D_RENDER :: Int\n_PROPERTY_HINT_LAYERS_3D_RENDER = 11\n\n_PROPERTY_USAGE_DEFAULT_INTL :: Int\n_PROPERTY_USAGE_DEFAULT_INTL = 71\n\n_TYPE_PLANE :: Int\n_TYPE_PLANE = 9\n\n_JOY_BUTTON_12 :: Int\n_JOY_BUTTON_12 = 12\n\n_KEY_PRINT :: Int\n_KEY_PRINT = 16777226\n\n_ERR_FILE_ALREADY_IN_USE :: Int\n_ERR_FILE_ALREADY_IN_USE = 11\n\n_KEY_LAUNCH4 :: Int\n_KEY_LAUNCH4 = 16777308\n\n_KEY_F7 :: Int\n_KEY_F7 = 16777250\n\n_KEY_ASCIITILDE :: Int\n_KEY_ASCIITILDE = 126\n\n_KEY_MASK_CMD :: Int\n_KEY_MASK_CMD = 268435456\n\n_KEY_VOLUMEMUTE :: Int\n_KEY_VOLUMEMUTE = 16777285\n\n_ERR_CANT_OPEN :: Int\n_ERR_CANT_OPEN = 19"
  },
  {
    "path": "src/Godot/Core/Gradient.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Gradient\n       (Godot.Core.Gradient.add_point, Godot.Core.Gradient.get_color,\n        Godot.Core.Gradient.get_colors, Godot.Core.Gradient.get_offset,\n        Godot.Core.Gradient.get_offsets,\n        Godot.Core.Gradient.get_point_count,\n        Godot.Core.Gradient.interpolate, Godot.Core.Gradient.remove_point,\n        Godot.Core.Gradient.set_color, Godot.Core.Gradient.set_colors,\n        Godot.Core.Gradient.set_offset, Godot.Core.Gradient.set_offsets)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty Gradient \"colors\" PoolColorArray 'False where\n        nodeProperty = (get_colors, wrapDroppingSetter set_colors, Nothing)\n\ninstance NodeProperty Gradient \"offsets\" PoolRealArray 'False where\n        nodeProperty\n          = (get_offsets, wrapDroppingSetter set_offsets, Nothing)\n\n{-# NOINLINE bindGradient_add_point #-}\n\n-- | Adds the specified color to the end of the ramp, with the specified offset.\nbindGradient_add_point :: MethodBind\nbindGradient_add_point\n  = unsafePerformIO $\n      withCString \"Gradient\" $\n        \\ clsNamePtr ->\n          withCString \"add_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds the specified color to the end of the ramp, with the specified offset.\nadd_point ::\n            (Gradient :< cls, Object :< cls) => cls -> Float -> Color -> IO ()\nadd_point cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGradient_add_point (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Gradient \"add_point\" '[Float, Color] (IO ())\n         where\n        nodeMethod = Godot.Core.Gradient.add_point\n\n{-# NOINLINE bindGradient_get_color #-}\n\n-- | Returns the color of the ramp color at index @point@.\nbindGradient_get_color :: MethodBind\nbindGradient_get_color\n  = unsafePerformIO $\n      withCString \"Gradient\" $\n        \\ clsNamePtr ->\n          withCString \"get_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the color of the ramp color at index @point@.\nget_color ::\n            (Gradient :< cls, Object :< cls) => cls -> Int -> IO Color\nget_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGradient_get_color (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Gradient \"get_color\" '[Int] (IO Color) where\n        nodeMethod = Godot.Core.Gradient.get_color\n\n{-# NOINLINE bindGradient_get_colors #-}\n\n-- | Gradient's colors returned as a @PoolColorArray@.\nbindGradient_get_colors :: MethodBind\nbindGradient_get_colors\n  = unsafePerformIO $\n      withCString \"Gradient\" $\n        \\ clsNamePtr ->\n          withCString \"get_colors\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gradient's colors returned as a @PoolColorArray@.\nget_colors ::\n             (Gradient :< cls, Object :< cls) => cls -> IO PoolColorArray\nget_colors cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGradient_get_colors (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Gradient \"get_colors\" '[] (IO PoolColorArray)\n         where\n        nodeMethod = Godot.Core.Gradient.get_colors\n\n{-# NOINLINE bindGradient_get_offset #-}\n\n-- | Returns the offset of the ramp color at index @point@.\nbindGradient_get_offset :: MethodBind\nbindGradient_get_offset\n  = unsafePerformIO $\n      withCString \"Gradient\" $\n        \\ clsNamePtr ->\n          withCString \"get_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the offset of the ramp color at index @point@.\nget_offset ::\n             (Gradient :< cls, Object :< cls) => cls -> Int -> IO Float\nget_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGradient_get_offset (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Gradient \"get_offset\" '[Int] (IO Float) where\n        nodeMethod = Godot.Core.Gradient.get_offset\n\n{-# NOINLINE bindGradient_get_offsets #-}\n\n-- | Gradient's offsets returned as a @PoolRealArray@.\nbindGradient_get_offsets :: MethodBind\nbindGradient_get_offsets\n  = unsafePerformIO $\n      withCString \"Gradient\" $\n        \\ clsNamePtr ->\n          withCString \"get_offsets\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gradient's offsets returned as a @PoolRealArray@.\nget_offsets ::\n              (Gradient :< cls, Object :< cls) => cls -> IO PoolRealArray\nget_offsets cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGradient_get_offsets (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Gradient \"get_offsets\" '[] (IO PoolRealArray)\n         where\n        nodeMethod = Godot.Core.Gradient.get_offsets\n\n{-# NOINLINE bindGradient_get_point_count #-}\n\n-- | Returns the number of colors in the ramp.\nbindGradient_get_point_count :: MethodBind\nbindGradient_get_point_count\n  = unsafePerformIO $\n      withCString \"Gradient\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of colors in the ramp.\nget_point_count ::\n                  (Gradient :< cls, Object :< cls) => cls -> IO Int\nget_point_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGradient_get_point_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Gradient \"get_point_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Gradient.get_point_count\n\n{-# NOINLINE bindGradient_interpolate #-}\n\n-- | Returns the interpolated color specified by @offset@.\nbindGradient_interpolate :: MethodBind\nbindGradient_interpolate\n  = unsafePerformIO $\n      withCString \"Gradient\" $\n        \\ clsNamePtr ->\n          withCString \"interpolate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the interpolated color specified by @offset@.\ninterpolate ::\n              (Gradient :< cls, Object :< cls) => cls -> Float -> IO Color\ninterpolate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGradient_interpolate (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Gradient \"interpolate\" '[Float] (IO Color)\n         where\n        nodeMethod = Godot.Core.Gradient.interpolate\n\n{-# NOINLINE bindGradient_remove_point #-}\n\n-- | Removes the color at the index @offset@.\nbindGradient_remove_point :: MethodBind\nbindGradient_remove_point\n  = unsafePerformIO $\n      withCString \"Gradient\" $\n        \\ clsNamePtr ->\n          withCString \"remove_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the color at the index @offset@.\nremove_point ::\n               (Gradient :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGradient_remove_point (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Gradient \"remove_point\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Gradient.remove_point\n\n{-# NOINLINE bindGradient_set_color #-}\n\n-- | Sets the color of the ramp color at index @point@.\nbindGradient_set_color :: MethodBind\nbindGradient_set_color\n  = unsafePerformIO $\n      withCString \"Gradient\" $\n        \\ clsNamePtr ->\n          withCString \"set_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the color of the ramp color at index @point@.\nset_color ::\n            (Gradient :< cls, Object :< cls) => cls -> Int -> Color -> IO ()\nset_color cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGradient_set_color (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Gradient \"set_color\" '[Int, Color] (IO ())\n         where\n        nodeMethod = Godot.Core.Gradient.set_color\n\n{-# NOINLINE bindGradient_set_colors #-}\n\n-- | Gradient's colors returned as a @PoolColorArray@.\nbindGradient_set_colors :: MethodBind\nbindGradient_set_colors\n  = unsafePerformIO $\n      withCString \"Gradient\" $\n        \\ clsNamePtr ->\n          withCString \"set_colors\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gradient's colors returned as a @PoolColorArray@.\nset_colors ::\n             (Gradient :< cls, Object :< cls) => cls -> PoolColorArray -> IO ()\nset_colors cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGradient_set_colors (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Gradient \"set_colors\" '[PoolColorArray] (IO ())\n         where\n        nodeMethod = Godot.Core.Gradient.set_colors\n\n{-# NOINLINE bindGradient_set_offset #-}\n\n-- | Sets the offset for the ramp color at index @point@.\nbindGradient_set_offset :: MethodBind\nbindGradient_set_offset\n  = unsafePerformIO $\n      withCString \"Gradient\" $\n        \\ clsNamePtr ->\n          withCString \"set_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the offset for the ramp color at index @point@.\nset_offset ::\n             (Gradient :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\nset_offset cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGradient_set_offset (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Gradient \"set_offset\" '[Int, Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Gradient.set_offset\n\n{-# NOINLINE bindGradient_set_offsets #-}\n\n-- | Gradient's offsets returned as a @PoolRealArray@.\nbindGradient_set_offsets :: MethodBind\nbindGradient_set_offsets\n  = unsafePerformIO $\n      withCString \"Gradient\" $\n        \\ clsNamePtr ->\n          withCString \"set_offsets\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gradient's offsets returned as a @PoolRealArray@.\nset_offsets ::\n              (Gradient :< cls, Object :< cls) => cls -> PoolRealArray -> IO ()\nset_offsets cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGradient_set_offsets (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Gradient \"set_offsets\" '[PoolRealArray] (IO ())\n         where\n        nodeMethod = Godot.Core.Gradient.set_offsets"
  },
  {
    "path": "src/Godot/Core/GradientTexture.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.GradientTexture\n       (Godot.Core.GradientTexture.get_width,\n        Godot.Core.GradientTexture._update,\n        Godot.Core.GradientTexture.get_gradient,\n        Godot.Core.GradientTexture.set_gradient,\n        Godot.Core.GradientTexture.set_width)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Texture()\n\ninstance NodeProperty GradientTexture \"gradient\" Gradient 'False\n         where\n        nodeProperty\n          = (get_gradient, wrapDroppingSetter set_gradient, Nothing)\n\n{-# NOINLINE bindGradientTexture_get_width #-}\n\n-- | The number of color samples that will be obtained from the @Gradient@.\nbindGradientTexture_get_width :: MethodBind\nbindGradientTexture_get_width\n  = unsafePerformIO $\n      withCString \"GradientTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of color samples that will be obtained from the @Gradient@.\nget_width ::\n            (GradientTexture :< cls, Object :< cls) => cls -> IO Int\nget_width cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGradientTexture_get_width (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GradientTexture \"get_width\" '[] (IO Int) where\n        nodeMethod = Godot.Core.GradientTexture.get_width\n\ninstance NodeProperty GradientTexture \"width\" Int 'False where\n        nodeProperty = (get_width, wrapDroppingSetter set_width, Nothing)\n\n{-# NOINLINE bindGradientTexture__update #-}\n\nbindGradientTexture__update :: MethodBind\nbindGradientTexture__update\n  = unsafePerformIO $\n      withCString \"GradientTexture\" $\n        \\ clsNamePtr ->\n          withCString \"_update\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update :: (GradientTexture :< cls, Object :< cls) => cls -> IO ()\n_update cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGradientTexture__update (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GradientTexture \"_update\" '[] (IO ()) where\n        nodeMethod = Godot.Core.GradientTexture._update\n\n{-# NOINLINE bindGradientTexture_get_gradient #-}\n\n-- | The @Gradient@ that will be used to fill the texture.\nbindGradientTexture_get_gradient :: MethodBind\nbindGradientTexture_get_gradient\n  = unsafePerformIO $\n      withCString \"GradientTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_gradient\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Gradient@ that will be used to fill the texture.\nget_gradient ::\n               (GradientTexture :< cls, Object :< cls) => cls -> IO Gradient\nget_gradient cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGradientTexture_get_gradient\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GradientTexture \"get_gradient\" '[]\n           (IO Gradient)\n         where\n        nodeMethod = Godot.Core.GradientTexture.get_gradient\n\n{-# NOINLINE bindGradientTexture_set_gradient #-}\n\n-- | The @Gradient@ that will be used to fill the texture.\nbindGradientTexture_set_gradient :: MethodBind\nbindGradientTexture_set_gradient\n  = unsafePerformIO $\n      withCString \"GradientTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_gradient\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Gradient@ that will be used to fill the texture.\nset_gradient ::\n               (GradientTexture :< cls, Object :< cls) => cls -> Gradient -> IO ()\nset_gradient cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGradientTexture_set_gradient\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GradientTexture \"set_gradient\" '[Gradient]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GradientTexture.set_gradient\n\n{-# NOINLINE bindGradientTexture_set_width #-}\n\n-- | The number of color samples that will be obtained from the @Gradient@.\nbindGradientTexture_set_width :: MethodBind\nbindGradientTexture_set_width\n  = unsafePerformIO $\n      withCString \"GradientTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of color samples that will be obtained from the @Gradient@.\nset_width ::\n            (GradientTexture :< cls, Object :< cls) => cls -> Int -> IO ()\nset_width cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGradientTexture_set_width (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GradientTexture \"set_width\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.GradientTexture.set_width"
  },
  {
    "path": "src/Godot/Core/GraphEdit.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.GraphEdit\n       (Godot.Core.GraphEdit.sig__begin_node_move,\n        Godot.Core.GraphEdit.sig__end_node_move,\n        Godot.Core.GraphEdit.sig_connection_from_empty,\n        Godot.Core.GraphEdit.sig_connection_request,\n        Godot.Core.GraphEdit.sig_connection_to_empty,\n        Godot.Core.GraphEdit.sig_copy_nodes_request,\n        Godot.Core.GraphEdit.sig_delete_nodes_request,\n        Godot.Core.GraphEdit.sig_disconnection_request,\n        Godot.Core.GraphEdit.sig_duplicate_nodes_request,\n        Godot.Core.GraphEdit.sig_node_selected,\n        Godot.Core.GraphEdit.sig_paste_nodes_request,\n        Godot.Core.GraphEdit.sig_popup_request,\n        Godot.Core.GraphEdit.sig_scroll_offset_changed,\n        Godot.Core.GraphEdit._connections_layer_draw,\n        Godot.Core.GraphEdit._graph_node_moved,\n        Godot.Core.GraphEdit._graph_node_raised,\n        Godot.Core.GraphEdit._gui_input,\n        Godot.Core.GraphEdit._scroll_moved,\n        Godot.Core.GraphEdit._snap_toggled,\n        Godot.Core.GraphEdit._snap_value_changed,\n        Godot.Core.GraphEdit._top_layer_draw,\n        Godot.Core.GraphEdit._top_layer_input,\n        Godot.Core.GraphEdit._update_scroll_offset,\n        Godot.Core.GraphEdit._zoom_minus, Godot.Core.GraphEdit._zoom_plus,\n        Godot.Core.GraphEdit._zoom_reset,\n        Godot.Core.GraphEdit.add_valid_connection_type,\n        Godot.Core.GraphEdit.add_valid_left_disconnect_type,\n        Godot.Core.GraphEdit.add_valid_right_disconnect_type,\n        Godot.Core.GraphEdit.clear_connections,\n        Godot.Core.GraphEdit.connect_node,\n        Godot.Core.GraphEdit.disconnect_node,\n        Godot.Core.GraphEdit.get_connection_list,\n        Godot.Core.GraphEdit.get_scroll_ofs, Godot.Core.GraphEdit.get_snap,\n        Godot.Core.GraphEdit.get_zoom, Godot.Core.GraphEdit.get_zoom_hbox,\n        Godot.Core.GraphEdit.is_node_connected,\n        Godot.Core.GraphEdit.is_right_disconnects_enabled,\n        Godot.Core.GraphEdit.is_using_snap,\n        Godot.Core.GraphEdit.is_valid_connection_type,\n        Godot.Core.GraphEdit.remove_valid_connection_type,\n        Godot.Core.GraphEdit.remove_valid_left_disconnect_type,\n        Godot.Core.GraphEdit.remove_valid_right_disconnect_type,\n        Godot.Core.GraphEdit.set_connection_activity,\n        Godot.Core.GraphEdit.set_right_disconnects,\n        Godot.Core.GraphEdit.set_scroll_ofs,\n        Godot.Core.GraphEdit.set_selected, Godot.Core.GraphEdit.set_snap,\n        Godot.Core.GraphEdit.set_use_snap, Godot.Core.GraphEdit.set_zoom)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()\n\n-- | Emitted at the beginning of a GraphNode movement.\nsig__begin_node_move :: Godot.Internal.Dispatch.Signal GraphEdit\nsig__begin_node_move\n  = Godot.Internal.Dispatch.Signal \"_begin_node_move\"\n\ninstance NodeSignal GraphEdit \"_begin_node_move\" '[]\n\n-- | Emitted at the end of a GraphNode movement.\nsig__end_node_move :: Godot.Internal.Dispatch.Signal GraphEdit\nsig__end_node_move\n  = Godot.Internal.Dispatch.Signal \"_end_node_move\"\n\ninstance NodeSignal GraphEdit \"_end_node_move\" '[]\n\n-- | Emitted when user dragging connection from input port into empty space of the graph.\nsig_connection_from_empty ::\n                          Godot.Internal.Dispatch.Signal GraphEdit\nsig_connection_from_empty\n  = Godot.Internal.Dispatch.Signal \"connection_from_empty\"\n\ninstance NodeSignal GraphEdit \"connection_from_empty\"\n           '[GodotString, Int, Vector2]\n\n-- | Emitted to the GraphEdit when the connection between the @from_slot@ slot of the @from@ GraphNode and the @to_slot@ slot of the @to@ GraphNode is attempted to be created.\nsig_connection_request :: Godot.Internal.Dispatch.Signal GraphEdit\nsig_connection_request\n  = Godot.Internal.Dispatch.Signal \"connection_request\"\n\ninstance NodeSignal GraphEdit \"connection_request\"\n           '[GodotString, Int, GodotString, Int]\n\n-- | Emitted when user dragging connection from output port into empty space of the graph.\nsig_connection_to_empty :: Godot.Internal.Dispatch.Signal GraphEdit\nsig_connection_to_empty\n  = Godot.Internal.Dispatch.Signal \"connection_to_empty\"\n\ninstance NodeSignal GraphEdit \"connection_to_empty\"\n           '[GodotString, Int, Vector2]\n\n-- | Emitted when the user presses @Ctrl + C@.\nsig_copy_nodes_request :: Godot.Internal.Dispatch.Signal GraphEdit\nsig_copy_nodes_request\n  = Godot.Internal.Dispatch.Signal \"copy_nodes_request\"\n\ninstance NodeSignal GraphEdit \"copy_nodes_request\" '[]\n\n-- | Emitted when a GraphNode is attempted to be removed from the GraphEdit.\nsig_delete_nodes_request ::\n                         Godot.Internal.Dispatch.Signal GraphEdit\nsig_delete_nodes_request\n  = Godot.Internal.Dispatch.Signal \"delete_nodes_request\"\n\ninstance NodeSignal GraphEdit \"delete_nodes_request\" '[]\n\n-- | Emitted to the GraphEdit when the connection between @from_slot@ slot of @from@ GraphNode and @to_slot@ slot of @to@ GraphNode is attempted to be removed.\nsig_disconnection_request ::\n                          Godot.Internal.Dispatch.Signal GraphEdit\nsig_disconnection_request\n  = Godot.Internal.Dispatch.Signal \"disconnection_request\"\n\ninstance NodeSignal GraphEdit \"disconnection_request\"\n           '[GodotString, Int, GodotString, Int]\n\n-- | Emitted when a GraphNode is attempted to be duplicated in the GraphEdit.\nsig_duplicate_nodes_request ::\n                            Godot.Internal.Dispatch.Signal GraphEdit\nsig_duplicate_nodes_request\n  = Godot.Internal.Dispatch.Signal \"duplicate_nodes_request\"\n\ninstance NodeSignal GraphEdit \"duplicate_nodes_request\" '[]\n\n-- | Emitted when a GraphNode is selected.\nsig_node_selected :: Godot.Internal.Dispatch.Signal GraphEdit\nsig_node_selected = Godot.Internal.Dispatch.Signal \"node_selected\"\n\ninstance NodeSignal GraphEdit \"node_selected\" '[Node]\n\n-- | Emitted when the user presses @Ctrl + V@.\nsig_paste_nodes_request :: Godot.Internal.Dispatch.Signal GraphEdit\nsig_paste_nodes_request\n  = Godot.Internal.Dispatch.Signal \"paste_nodes_request\"\n\ninstance NodeSignal GraphEdit \"paste_nodes_request\" '[]\n\n-- | Emitted when a popup is requested. Happens on right-clicking in the GraphEdit. @position@ is the position of the mouse pointer when the signal is sent.\nsig_popup_request :: Godot.Internal.Dispatch.Signal GraphEdit\nsig_popup_request = Godot.Internal.Dispatch.Signal \"popup_request\"\n\ninstance NodeSignal GraphEdit \"popup_request\" '[Vector2]\n\n-- | Emitted when the scroll offset is changed by the user. It will not be emitted when changed in code.\nsig_scroll_offset_changed ::\n                          Godot.Internal.Dispatch.Signal GraphEdit\nsig_scroll_offset_changed\n  = Godot.Internal.Dispatch.Signal \"scroll_offset_changed\"\n\ninstance NodeSignal GraphEdit \"scroll_offset_changed\" '[Vector2]\n\ninstance NodeProperty GraphEdit \"right_disconnects\" Bool 'False\n         where\n        nodeProperty\n          = (is_right_disconnects_enabled,\n             wrapDroppingSetter set_right_disconnects, Nothing)\n\ninstance NodeProperty GraphEdit \"scroll_offset\" Vector2 'False\n         where\n        nodeProperty\n          = (get_scroll_ofs, wrapDroppingSetter set_scroll_ofs, Nothing)\n\ninstance NodeProperty GraphEdit \"snap_distance\" Int 'False where\n        nodeProperty = (get_snap, wrapDroppingSetter set_snap, Nothing)\n\ninstance NodeProperty GraphEdit \"use_snap\" Bool 'False where\n        nodeProperty\n          = (is_using_snap, wrapDroppingSetter set_use_snap, Nothing)\n\ninstance NodeProperty GraphEdit \"zoom\" Float 'False where\n        nodeProperty = (get_zoom, wrapDroppingSetter set_zoom, Nothing)\n\n{-# NOINLINE bindGraphEdit__connections_layer_draw #-}\n\nbindGraphEdit__connections_layer_draw :: MethodBind\nbindGraphEdit__connections_layer_draw\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_connections_layer_draw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_connections_layer_draw ::\n                          (GraphEdit :< cls, Object :< cls) => cls -> IO ()\n_connections_layer_draw cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit__connections_layer_draw\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"_connections_layer_draw\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.GraphEdit._connections_layer_draw\n\n{-# NOINLINE bindGraphEdit__graph_node_moved #-}\n\nbindGraphEdit__graph_node_moved :: MethodBind\nbindGraphEdit__graph_node_moved\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_graph_node_moved\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_graph_node_moved ::\n                    (GraphEdit :< cls, Object :< cls) => cls -> Node -> IO ()\n_graph_node_moved cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit__graph_node_moved (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"_graph_node_moved\" '[Node] (IO ())\n         where\n        nodeMethod = Godot.Core.GraphEdit._graph_node_moved\n\n{-# NOINLINE bindGraphEdit__graph_node_raised #-}\n\nbindGraphEdit__graph_node_raised :: MethodBind\nbindGraphEdit__graph_node_raised\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_graph_node_raised\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_graph_node_raised ::\n                     (GraphEdit :< cls, Object :< cls) => cls -> Node -> IO ()\n_graph_node_raised cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit__graph_node_raised\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"_graph_node_raised\" '[Node] (IO ())\n         where\n        nodeMethod = Godot.Core.GraphEdit._graph_node_raised\n\n{-# NOINLINE bindGraphEdit__gui_input #-}\n\nbindGraphEdit__gui_input :: MethodBind\nbindGraphEdit__gui_input\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (GraphEdit :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit__gui_input (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"_gui_input\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.GraphEdit._gui_input\n\n{-# NOINLINE bindGraphEdit__scroll_moved #-}\n\nbindGraphEdit__scroll_moved :: MethodBind\nbindGraphEdit__scroll_moved\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_scroll_moved\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_scroll_moved ::\n                (GraphEdit :< cls, Object :< cls) => cls -> Float -> IO ()\n_scroll_moved cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit__scroll_moved (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"_scroll_moved\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.GraphEdit._scroll_moved\n\n{-# NOINLINE bindGraphEdit__snap_toggled #-}\n\nbindGraphEdit__snap_toggled :: MethodBind\nbindGraphEdit__snap_toggled\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_snap_toggled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_snap_toggled :: (GraphEdit :< cls, Object :< cls) => cls -> IO ()\n_snap_toggled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit__snap_toggled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"_snap_toggled\" '[] (IO ()) where\n        nodeMethod = Godot.Core.GraphEdit._snap_toggled\n\n{-# NOINLINE bindGraphEdit__snap_value_changed #-}\n\nbindGraphEdit__snap_value_changed :: MethodBind\nbindGraphEdit__snap_value_changed\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_snap_value_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_snap_value_changed ::\n                      (GraphEdit :< cls, Object :< cls) => cls -> Float -> IO ()\n_snap_value_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit__snap_value_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"_snap_value_changed\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GraphEdit._snap_value_changed\n\n{-# NOINLINE bindGraphEdit__top_layer_draw #-}\n\nbindGraphEdit__top_layer_draw :: MethodBind\nbindGraphEdit__top_layer_draw\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_top_layer_draw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_top_layer_draw ::\n                  (GraphEdit :< cls, Object :< cls) => cls -> IO ()\n_top_layer_draw cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit__top_layer_draw (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"_top_layer_draw\" '[] (IO ()) where\n        nodeMethod = Godot.Core.GraphEdit._top_layer_draw\n\n{-# NOINLINE bindGraphEdit__top_layer_input #-}\n\nbindGraphEdit__top_layer_input :: MethodBind\nbindGraphEdit__top_layer_input\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_top_layer_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_top_layer_input ::\n                   (GraphEdit :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_top_layer_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit__top_layer_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"_top_layer_input\" '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GraphEdit._top_layer_input\n\n{-# NOINLINE bindGraphEdit__update_scroll_offset #-}\n\nbindGraphEdit__update_scroll_offset :: MethodBind\nbindGraphEdit__update_scroll_offset\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_update_scroll_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_scroll_offset ::\n                        (GraphEdit :< cls, Object :< cls) => cls -> IO ()\n_update_scroll_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit__update_scroll_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"_update_scroll_offset\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.GraphEdit._update_scroll_offset\n\n{-# NOINLINE bindGraphEdit__zoom_minus #-}\n\nbindGraphEdit__zoom_minus :: MethodBind\nbindGraphEdit__zoom_minus\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_zoom_minus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_zoom_minus :: (GraphEdit :< cls, Object :< cls) => cls -> IO ()\n_zoom_minus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit__zoom_minus (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"_zoom_minus\" '[] (IO ()) where\n        nodeMethod = Godot.Core.GraphEdit._zoom_minus\n\n{-# NOINLINE bindGraphEdit__zoom_plus #-}\n\nbindGraphEdit__zoom_plus :: MethodBind\nbindGraphEdit__zoom_plus\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_zoom_plus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_zoom_plus :: (GraphEdit :< cls, Object :< cls) => cls -> IO ()\n_zoom_plus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit__zoom_plus (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"_zoom_plus\" '[] (IO ()) where\n        nodeMethod = Godot.Core.GraphEdit._zoom_plus\n\n{-# NOINLINE bindGraphEdit__zoom_reset #-}\n\nbindGraphEdit__zoom_reset :: MethodBind\nbindGraphEdit__zoom_reset\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_zoom_reset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_zoom_reset :: (GraphEdit :< cls, Object :< cls) => cls -> IO ()\n_zoom_reset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit__zoom_reset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"_zoom_reset\" '[] (IO ()) where\n        nodeMethod = Godot.Core.GraphEdit._zoom_reset\n\n{-# NOINLINE bindGraphEdit_add_valid_connection_type #-}\n\n-- | Makes possible the connection between two different slot types. The type is defined with the @method GraphNode.set_slot@ method.\nbindGraphEdit_add_valid_connection_type :: MethodBind\nbindGraphEdit_add_valid_connection_type\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"add_valid_connection_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Makes possible the connection between two different slot types. The type is defined with the @method GraphNode.set_slot@ method.\nadd_valid_connection_type ::\n                            (GraphEdit :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nadd_valid_connection_type cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_add_valid_connection_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"add_valid_connection_type\"\n           '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GraphEdit.add_valid_connection_type\n\n{-# NOINLINE bindGraphEdit_add_valid_left_disconnect_type #-}\n\n-- | Makes possible to disconnect nodes when dragging from the slot at the left if it has the specified type.\nbindGraphEdit_add_valid_left_disconnect_type :: MethodBind\nbindGraphEdit_add_valid_left_disconnect_type\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"add_valid_left_disconnect_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Makes possible to disconnect nodes when dragging from the slot at the left if it has the specified type.\nadd_valid_left_disconnect_type ::\n                                 (GraphEdit :< cls, Object :< cls) => cls -> Int -> IO ()\nadd_valid_left_disconnect_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_add_valid_left_disconnect_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"add_valid_left_disconnect_type\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GraphEdit.add_valid_left_disconnect_type\n\n{-# NOINLINE bindGraphEdit_add_valid_right_disconnect_type #-}\n\n-- | Makes possible to disconnect nodes when dragging from the slot at the right if it has the specified type.\nbindGraphEdit_add_valid_right_disconnect_type :: MethodBind\nbindGraphEdit_add_valid_right_disconnect_type\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"add_valid_right_disconnect_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Makes possible to disconnect nodes when dragging from the slot at the right if it has the specified type.\nadd_valid_right_disconnect_type ::\n                                  (GraphEdit :< cls, Object :< cls) => cls -> Int -> IO ()\nadd_valid_right_disconnect_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindGraphEdit_add_valid_right_disconnect_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"add_valid_right_disconnect_type\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GraphEdit.add_valid_right_disconnect_type\n\n{-# NOINLINE bindGraphEdit_clear_connections #-}\n\n-- | Removes all connections between nodes.\nbindGraphEdit_clear_connections :: MethodBind\nbindGraphEdit_clear_connections\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"clear_connections\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all connections between nodes.\nclear_connections ::\n                    (GraphEdit :< cls, Object :< cls) => cls -> IO ()\nclear_connections cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_clear_connections (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"clear_connections\" '[] (IO ()) where\n        nodeMethod = Godot.Core.GraphEdit.clear_connections\n\n{-# NOINLINE bindGraphEdit_connect_node #-}\n\n-- | Create a connection between the @from_port@ slot of the @from@ GraphNode and the @to_port@ slot of the @to@ GraphNode. If the connection already exists, no connection is created.\nbindGraphEdit_connect_node :: MethodBind\nbindGraphEdit_connect_node\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"connect_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Create a connection between the @from_port@ slot of the @from@ GraphNode and the @to_port@ slot of the @to@ GraphNode. If the connection already exists, no connection is created.\nconnect_node ::\n               (GraphEdit :< cls, Object :< cls) =>\n               cls -> GodotString -> Int -> GodotString -> Int -> IO Int\nconnect_node cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_connect_node (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"connect_node\"\n           '[GodotString, Int, GodotString, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.GraphEdit.connect_node\n\n{-# NOINLINE bindGraphEdit_disconnect_node #-}\n\n-- | Removes the connection between the @from_port@ slot of the @from@ GraphNode and the @to_port@ slot of the @to@ GraphNode. If the connection does not exist, no connection is removed.\nbindGraphEdit_disconnect_node :: MethodBind\nbindGraphEdit_disconnect_node\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"disconnect_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the connection between the @from_port@ slot of the @from@ GraphNode and the @to_port@ slot of the @to@ GraphNode. If the connection does not exist, no connection is removed.\ndisconnect_node ::\n                  (GraphEdit :< cls, Object :< cls) =>\n                  cls -> GodotString -> Int -> GodotString -> Int -> IO ()\ndisconnect_node cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_disconnect_node (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"disconnect_node\"\n           '[GodotString, Int, GodotString, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GraphEdit.disconnect_node\n\n{-# NOINLINE bindGraphEdit_get_connection_list #-}\n\n-- | Returns an Array containing the list of connections. A connection consists in a structure of the form @{ from_port: 0, from: \"GraphNode name 0\", to_port: 1, to: \"GraphNode name 1\" }@.\nbindGraphEdit_get_connection_list :: MethodBind\nbindGraphEdit_get_connection_list\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an Array containing the list of connections. A connection consists in a structure of the form @{ from_port: 0, from: \"GraphNode name 0\", to_port: 1, to: \"GraphNode name 1\" }@.\nget_connection_list ::\n                      (GraphEdit :< cls, Object :< cls) => cls -> IO Array\nget_connection_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_get_connection_list\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"get_connection_list\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.GraphEdit.get_connection_list\n\n{-# NOINLINE bindGraphEdit_get_scroll_ofs #-}\n\n-- | The scroll offset.\nbindGraphEdit_get_scroll_ofs :: MethodBind\nbindGraphEdit_get_scroll_ofs\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_scroll_ofs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The scroll offset.\nget_scroll_ofs ::\n                 (GraphEdit :< cls, Object :< cls) => cls -> IO Vector2\nget_scroll_ofs cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_get_scroll_ofs (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"get_scroll_ofs\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.GraphEdit.get_scroll_ofs\n\n{-# NOINLINE bindGraphEdit_get_snap #-}\n\n-- | The snapping distance in pixels.\nbindGraphEdit_get_snap :: MethodBind\nbindGraphEdit_get_snap\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_snap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The snapping distance in pixels.\nget_snap :: (GraphEdit :< cls, Object :< cls) => cls -> IO Int\nget_snap cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_get_snap (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"get_snap\" '[] (IO Int) where\n        nodeMethod = Godot.Core.GraphEdit.get_snap\n\n{-# NOINLINE bindGraphEdit_get_zoom #-}\n\n-- | The current zoom value.\nbindGraphEdit_get_zoom :: MethodBind\nbindGraphEdit_get_zoom\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_zoom\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current zoom value.\nget_zoom :: (GraphEdit :< cls, Object :< cls) => cls -> IO Float\nget_zoom cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_get_zoom (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"get_zoom\" '[] (IO Float) where\n        nodeMethod = Godot.Core.GraphEdit.get_zoom\n\n{-# NOINLINE bindGraphEdit_get_zoom_hbox #-}\n\n-- | Gets the @HBoxContainer@ that contains the zooming and grid snap controls in the top left of the graph.\n--   \t\t\t\tWarning: The intended usage of this function is to allow you to reposition or add your own custom controls to the container. This is an internal control and as such should not be freed. If you wish to hide this or any of it's children use their @CanvasItem.visible@ property instead.\nbindGraphEdit_get_zoom_hbox :: MethodBind\nbindGraphEdit_get_zoom_hbox\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_zoom_hbox\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the @HBoxContainer@ that contains the zooming and grid snap controls in the top left of the graph.\n--   \t\t\t\tWarning: The intended usage of this function is to allow you to reposition or add your own custom controls to the container. This is an internal control and as such should not be freed. If you wish to hide this or any of it's children use their @CanvasItem.visible@ property instead.\nget_zoom_hbox ::\n                (GraphEdit :< cls, Object :< cls) => cls -> IO HBoxContainer\nget_zoom_hbox cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_get_zoom_hbox (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"get_zoom_hbox\" '[]\n           (IO HBoxContainer)\n         where\n        nodeMethod = Godot.Core.GraphEdit.get_zoom_hbox\n\n{-# NOINLINE bindGraphEdit_is_node_connected #-}\n\n-- | Returns @true@ if the @from_port@ slot of the @from@ GraphNode is connected to the @to_port@ slot of the @to@ GraphNode.\nbindGraphEdit_is_node_connected :: MethodBind\nbindGraphEdit_is_node_connected\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_node_connected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the @from_port@ slot of the @from@ GraphNode is connected to the @to_port@ slot of the @to@ GraphNode.\nis_node_connected ::\n                    (GraphEdit :< cls, Object :< cls) =>\n                    cls -> GodotString -> Int -> GodotString -> Int -> IO Bool\nis_node_connected cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_is_node_connected (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"is_node_connected\"\n           '[GodotString, Int, GodotString, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.GraphEdit.is_node_connected\n\n{-# NOINLINE bindGraphEdit_is_right_disconnects_enabled #-}\n\n-- | If @true@, enables disconnection of existing connections in the GraphEdit by dragging the right end.\nbindGraphEdit_is_right_disconnects_enabled :: MethodBind\nbindGraphEdit_is_right_disconnects_enabled\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_right_disconnects_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables disconnection of existing connections in the GraphEdit by dragging the right end.\nis_right_disconnects_enabled ::\n                               (GraphEdit :< cls, Object :< cls) => cls -> IO Bool\nis_right_disconnects_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_is_right_disconnects_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"is_right_disconnects_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.GraphEdit.is_right_disconnects_enabled\n\n{-# NOINLINE bindGraphEdit_is_using_snap #-}\n\n-- | If @true@, enables snapping.\nbindGraphEdit_is_using_snap :: MethodBind\nbindGraphEdit_is_using_snap\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_snap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables snapping.\nis_using_snap ::\n                (GraphEdit :< cls, Object :< cls) => cls -> IO Bool\nis_using_snap cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_is_using_snap (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"is_using_snap\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.GraphEdit.is_using_snap\n\n{-# NOINLINE bindGraphEdit_is_valid_connection_type #-}\n\n-- | Returns whether it's possible to connect slots of the specified types.\nbindGraphEdit_is_valid_connection_type :: MethodBind\nbindGraphEdit_is_valid_connection_type\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_valid_connection_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether it's possible to connect slots of the specified types.\nis_valid_connection_type ::\n                           (GraphEdit :< cls, Object :< cls) => cls -> Int -> Int -> IO Bool\nis_valid_connection_type cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_is_valid_connection_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"is_valid_connection_type\"\n           '[Int, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.GraphEdit.is_valid_connection_type\n\n{-# NOINLINE bindGraphEdit_remove_valid_connection_type #-}\n\n-- | Makes it not possible to connect between two different slot types. The type is defined with the @method GraphNode.set_slot@ method.\nbindGraphEdit_remove_valid_connection_type :: MethodBind\nbindGraphEdit_remove_valid_connection_type\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"remove_valid_connection_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Makes it not possible to connect between two different slot types. The type is defined with the @method GraphNode.set_slot@ method.\nremove_valid_connection_type ::\n                               (GraphEdit :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nremove_valid_connection_type cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_remove_valid_connection_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"remove_valid_connection_type\"\n           '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GraphEdit.remove_valid_connection_type\n\n{-# NOINLINE bindGraphEdit_remove_valid_left_disconnect_type #-}\n\n-- | Removes the possibility to disconnect nodes when dragging from the slot at the left if it has the specified type.\nbindGraphEdit_remove_valid_left_disconnect_type :: MethodBind\nbindGraphEdit_remove_valid_left_disconnect_type\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"remove_valid_left_disconnect_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the possibility to disconnect nodes when dragging from the slot at the left if it has the specified type.\nremove_valid_left_disconnect_type ::\n                                    (GraphEdit :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_valid_left_disconnect_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindGraphEdit_remove_valid_left_disconnect_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"remove_valid_left_disconnect_type\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GraphEdit.remove_valid_left_disconnect_type\n\n{-# NOINLINE bindGraphEdit_remove_valid_right_disconnect_type #-}\n\n-- | Removes the possibility to disconnect nodes when dragging from the slot at the right if it has the specified type.\nbindGraphEdit_remove_valid_right_disconnect_type :: MethodBind\nbindGraphEdit_remove_valid_right_disconnect_type\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"remove_valid_right_disconnect_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the possibility to disconnect nodes when dragging from the slot at the right if it has the specified type.\nremove_valid_right_disconnect_type ::\n                                     (GraphEdit :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_valid_right_disconnect_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindGraphEdit_remove_valid_right_disconnect_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"remove_valid_right_disconnect_type\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.GraphEdit.remove_valid_right_disconnect_type\n\n{-# NOINLINE bindGraphEdit_set_connection_activity #-}\n\n-- | Sets the coloration of the connection between @from@'s @from_port@ and @to@'s @to_port@ with the color provided in the @activity@ theme property.\nbindGraphEdit_set_connection_activity :: MethodBind\nbindGraphEdit_set_connection_activity\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_connection_activity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the coloration of the connection between @from@'s @from_port@ and @to@'s @to_port@ with the color provided in the @activity@ theme property.\nset_connection_activity ::\n                          (GraphEdit :< cls, Object :< cls) =>\n                          cls -> GodotString -> Int -> GodotString -> Int -> Float -> IO ()\nset_connection_activity cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_set_connection_activity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"set_connection_activity\"\n           '[GodotString, Int, GodotString, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GraphEdit.set_connection_activity\n\n{-# NOINLINE bindGraphEdit_set_right_disconnects #-}\n\n-- | If @true@, enables disconnection of existing connections in the GraphEdit by dragging the right end.\nbindGraphEdit_set_right_disconnects :: MethodBind\nbindGraphEdit_set_right_disconnects\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_right_disconnects\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables disconnection of existing connections in the GraphEdit by dragging the right end.\nset_right_disconnects ::\n                        (GraphEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_right_disconnects cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_set_right_disconnects\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"set_right_disconnects\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GraphEdit.set_right_disconnects\n\n{-# NOINLINE bindGraphEdit_set_scroll_ofs #-}\n\n-- | The scroll offset.\nbindGraphEdit_set_scroll_ofs :: MethodBind\nbindGraphEdit_set_scroll_ofs\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_scroll_ofs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The scroll offset.\nset_scroll_ofs ::\n                 (GraphEdit :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_scroll_ofs cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_set_scroll_ofs (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"set_scroll_ofs\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.GraphEdit.set_scroll_ofs\n\n{-# NOINLINE bindGraphEdit_set_selected #-}\n\n-- | Sets the specified @node@ as the one selected.\nbindGraphEdit_set_selected :: MethodBind\nbindGraphEdit_set_selected\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the specified @node@ as the one selected.\nset_selected ::\n               (GraphEdit :< cls, Object :< cls) => cls -> Node -> IO ()\nset_selected cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_set_selected (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"set_selected\" '[Node] (IO ()) where\n        nodeMethod = Godot.Core.GraphEdit.set_selected\n\n{-# NOINLINE bindGraphEdit_set_snap #-}\n\n-- | The snapping distance in pixels.\nbindGraphEdit_set_snap :: MethodBind\nbindGraphEdit_set_snap\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_snap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The snapping distance in pixels.\nset_snap ::\n           (GraphEdit :< cls, Object :< cls) => cls -> Int -> IO ()\nset_snap cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_set_snap (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"set_snap\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.GraphEdit.set_snap\n\n{-# NOINLINE bindGraphEdit_set_use_snap #-}\n\n-- | If @true@, enables snapping.\nbindGraphEdit_set_use_snap :: MethodBind\nbindGraphEdit_set_use_snap\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_snap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables snapping.\nset_use_snap ::\n               (GraphEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_snap cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_set_use_snap (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"set_use_snap\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.GraphEdit.set_use_snap\n\n{-# NOINLINE bindGraphEdit_set_zoom #-}\n\n-- | The current zoom value.\nbindGraphEdit_set_zoom :: MethodBind\nbindGraphEdit_set_zoom\n  = unsafePerformIO $\n      withCString \"GraphEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_zoom\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current zoom value.\nset_zoom ::\n           (GraphEdit :< cls, Object :< cls) => cls -> Float -> IO ()\nset_zoom cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphEdit_set_zoom (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphEdit \"set_zoom\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.GraphEdit.set_zoom"
  },
  {
    "path": "src/Godot/Core/GraphNode.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.GraphNode\n       (Godot.Core.GraphNode._OVERLAY_DISABLED,\n        Godot.Core.GraphNode._OVERLAY_POSITION,\n        Godot.Core.GraphNode._OVERLAY_BREAKPOINT,\n        Godot.Core.GraphNode.sig_close_request,\n        Godot.Core.GraphNode.sig_dragged,\n        Godot.Core.GraphNode.sig_offset_changed,\n        Godot.Core.GraphNode.sig_raise_request,\n        Godot.Core.GraphNode.sig_resize_request,\n        Godot.Core.GraphNode._gui_input,\n        Godot.Core.GraphNode.clear_all_slots,\n        Godot.Core.GraphNode.clear_slot,\n        Godot.Core.GraphNode.get_connection_input_color,\n        Godot.Core.GraphNode.get_connection_input_count,\n        Godot.Core.GraphNode.get_connection_input_position,\n        Godot.Core.GraphNode.get_connection_input_type,\n        Godot.Core.GraphNode.get_connection_output_color,\n        Godot.Core.GraphNode.get_connection_output_count,\n        Godot.Core.GraphNode.get_connection_output_position,\n        Godot.Core.GraphNode.get_connection_output_type,\n        Godot.Core.GraphNode.get_offset, Godot.Core.GraphNode.get_overlay,\n        Godot.Core.GraphNode.get_slot_color_left,\n        Godot.Core.GraphNode.get_slot_color_right,\n        Godot.Core.GraphNode.get_slot_type_left,\n        Godot.Core.GraphNode.get_slot_type_right,\n        Godot.Core.GraphNode.get_title,\n        Godot.Core.GraphNode.is_close_button_visible,\n        Godot.Core.GraphNode.is_comment, Godot.Core.GraphNode.is_resizable,\n        Godot.Core.GraphNode.is_selected,\n        Godot.Core.GraphNode.is_slot_enabled_left,\n        Godot.Core.GraphNode.is_slot_enabled_right,\n        Godot.Core.GraphNode.set_comment, Godot.Core.GraphNode.set_offset,\n        Godot.Core.GraphNode.set_overlay,\n        Godot.Core.GraphNode.set_resizable,\n        Godot.Core.GraphNode.set_selected,\n        Godot.Core.GraphNode.set_show_close_button,\n        Godot.Core.GraphNode.set_slot, Godot.Core.GraphNode.set_title)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Container()\n\n_OVERLAY_DISABLED :: Int\n_OVERLAY_DISABLED = 0\n\n_OVERLAY_POSITION :: Int\n_OVERLAY_POSITION = 2\n\n_OVERLAY_BREAKPOINT :: Int\n_OVERLAY_BREAKPOINT = 1\n\n-- | Emitted when the GraphNode is requested to be closed. Happens on clicking the close button (see @show_close@).\nsig_close_request :: Godot.Internal.Dispatch.Signal GraphNode\nsig_close_request = Godot.Internal.Dispatch.Signal \"close_request\"\n\ninstance NodeSignal GraphNode \"close_request\" '[]\n\n-- | Emitted when the GraphNode is dragged.\nsig_dragged :: Godot.Internal.Dispatch.Signal GraphNode\nsig_dragged = Godot.Internal.Dispatch.Signal \"dragged\"\n\ninstance NodeSignal GraphNode \"dragged\" '[Vector2, Vector2]\n\n-- | Emitted when the GraphNode is moved.\nsig_offset_changed :: Godot.Internal.Dispatch.Signal GraphNode\nsig_offset_changed\n  = Godot.Internal.Dispatch.Signal \"offset_changed\"\n\ninstance NodeSignal GraphNode \"offset_changed\" '[]\n\n-- | Emitted when the GraphNode is requested to be displayed over other ones. Happens on focusing (clicking into) the GraphNode.\nsig_raise_request :: Godot.Internal.Dispatch.Signal GraphNode\nsig_raise_request = Godot.Internal.Dispatch.Signal \"raise_request\"\n\ninstance NodeSignal GraphNode \"raise_request\" '[]\n\n-- | Emitted when the GraphNode is requested to be resized. Happens on dragging the resizer handle (see @resizable@).\nsig_resize_request :: Godot.Internal.Dispatch.Signal GraphNode\nsig_resize_request\n  = Godot.Internal.Dispatch.Signal \"resize_request\"\n\ninstance NodeSignal GraphNode \"resize_request\" '[Vector2]\n\ninstance NodeProperty GraphNode \"comment\" Bool 'False where\n        nodeProperty\n          = (is_comment, wrapDroppingSetter set_comment, Nothing)\n\ninstance NodeProperty GraphNode \"offset\" Vector2 'False where\n        nodeProperty = (get_offset, wrapDroppingSetter set_offset, Nothing)\n\ninstance NodeProperty GraphNode \"overlay\" Int 'False where\n        nodeProperty\n          = (get_overlay, wrapDroppingSetter set_overlay, Nothing)\n\ninstance NodeProperty GraphNode \"resizable\" Bool 'False where\n        nodeProperty\n          = (is_resizable, wrapDroppingSetter set_resizable, Nothing)\n\ninstance NodeProperty GraphNode \"selected\" Bool 'False where\n        nodeProperty\n          = (is_selected, wrapDroppingSetter set_selected, Nothing)\n\ninstance NodeProperty GraphNode \"show_close\" Bool 'False where\n        nodeProperty\n          = (is_close_button_visible,\n             wrapDroppingSetter set_show_close_button, Nothing)\n\ninstance NodeProperty GraphNode \"title\" GodotString 'False where\n        nodeProperty = (get_title, wrapDroppingSetter set_title, Nothing)\n\n{-# NOINLINE bindGraphNode__gui_input #-}\n\nbindGraphNode__gui_input :: MethodBind\nbindGraphNode__gui_input\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (GraphNode :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode__gui_input (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"_gui_input\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.GraphNode._gui_input\n\n{-# NOINLINE bindGraphNode_clear_all_slots #-}\n\n-- | Disables all input and output slots of the GraphNode.\nbindGraphNode_clear_all_slots :: MethodBind\nbindGraphNode_clear_all_slots\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"clear_all_slots\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Disables all input and output slots of the GraphNode.\nclear_all_slots ::\n                  (GraphNode :< cls, Object :< cls) => cls -> IO ()\nclear_all_slots cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_clear_all_slots (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"clear_all_slots\" '[] (IO ()) where\n        nodeMethod = Godot.Core.GraphNode.clear_all_slots\n\n{-# NOINLINE bindGraphNode_clear_slot #-}\n\n-- | Disables input and output slot whose index is @idx@.\nbindGraphNode_clear_slot :: MethodBind\nbindGraphNode_clear_slot\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"clear_slot\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Disables input and output slot whose index is @idx@.\nclear_slot ::\n             (GraphNode :< cls, Object :< cls) => cls -> Int -> IO ()\nclear_slot cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_clear_slot (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"clear_slot\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.GraphNode.clear_slot\n\n{-# NOINLINE bindGraphNode_get_connection_input_color #-}\n\n-- | Returns the color of the input connection @idx@.\nbindGraphNode_get_connection_input_color :: MethodBind\nbindGraphNode_get_connection_input_color\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection_input_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the color of the input connection @idx@.\nget_connection_input_color ::\n                             (GraphNode :< cls, Object :< cls) => cls -> Int -> IO Color\nget_connection_input_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_get_connection_input_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"get_connection_input_color\" '[Int]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.GraphNode.get_connection_input_color\n\n{-# NOINLINE bindGraphNode_get_connection_input_count #-}\n\n-- | Returns the number of enabled input slots (connections) to the GraphNode.\nbindGraphNode_get_connection_input_count :: MethodBind\nbindGraphNode_get_connection_input_count\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection_input_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of enabled input slots (connections) to the GraphNode.\nget_connection_input_count ::\n                             (GraphNode :< cls, Object :< cls) => cls -> IO Int\nget_connection_input_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_get_connection_input_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"get_connection_input_count\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.GraphNode.get_connection_input_count\n\n{-# NOINLINE bindGraphNode_get_connection_input_position #-}\n\n-- | Returns the position of the input connection @idx@.\nbindGraphNode_get_connection_input_position :: MethodBind\nbindGraphNode_get_connection_input_position\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection_input_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position of the input connection @idx@.\nget_connection_input_position ::\n                                (GraphNode :< cls, Object :< cls) => cls -> Int -> IO Vector2\nget_connection_input_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_get_connection_input_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"get_connection_input_position\"\n           '[Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.GraphNode.get_connection_input_position\n\n{-# NOINLINE bindGraphNode_get_connection_input_type #-}\n\n-- | Returns the type of the input connection @idx@.\nbindGraphNode_get_connection_input_type :: MethodBind\nbindGraphNode_get_connection_input_type\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection_input_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the type of the input connection @idx@.\nget_connection_input_type ::\n                            (GraphNode :< cls, Object :< cls) => cls -> Int -> IO Int\nget_connection_input_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_get_connection_input_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"get_connection_input_type\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.GraphNode.get_connection_input_type\n\n{-# NOINLINE bindGraphNode_get_connection_output_color #-}\n\n-- | Returns the color of the output connection @idx@.\nbindGraphNode_get_connection_output_color :: MethodBind\nbindGraphNode_get_connection_output_color\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection_output_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the color of the output connection @idx@.\nget_connection_output_color ::\n                              (GraphNode :< cls, Object :< cls) => cls -> Int -> IO Color\nget_connection_output_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_get_connection_output_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"get_connection_output_color\" '[Int]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.GraphNode.get_connection_output_color\n\n{-# NOINLINE bindGraphNode_get_connection_output_count #-}\n\n-- | Returns the number of enabled output slots (connections) of the GraphNode.\nbindGraphNode_get_connection_output_count :: MethodBind\nbindGraphNode_get_connection_output_count\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection_output_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of enabled output slots (connections) of the GraphNode.\nget_connection_output_count ::\n                              (GraphNode :< cls, Object :< cls) => cls -> IO Int\nget_connection_output_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_get_connection_output_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"get_connection_output_count\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.GraphNode.get_connection_output_count\n\n{-# NOINLINE bindGraphNode_get_connection_output_position #-}\n\n-- | Returns the position of the output connection @idx@.\nbindGraphNode_get_connection_output_position :: MethodBind\nbindGraphNode_get_connection_output_position\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection_output_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position of the output connection @idx@.\nget_connection_output_position ::\n                                 (GraphNode :< cls, Object :< cls) => cls -> Int -> IO Vector2\nget_connection_output_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_get_connection_output_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"get_connection_output_position\"\n           '[Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.GraphNode.get_connection_output_position\n\n{-# NOINLINE bindGraphNode_get_connection_output_type #-}\n\n-- | Returns the type of the output connection @idx@.\nbindGraphNode_get_connection_output_type :: MethodBind\nbindGraphNode_get_connection_output_type\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection_output_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the type of the output connection @idx@.\nget_connection_output_type ::\n                             (GraphNode :< cls, Object :< cls) => cls -> Int -> IO Int\nget_connection_output_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_get_connection_output_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"get_connection_output_type\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.GraphNode.get_connection_output_type\n\n{-# NOINLINE bindGraphNode_get_offset #-}\n\n-- | The offset of the GraphNode, relative to the scroll offset of the @GraphEdit@.\n--   \t\t\t__Note:__ You cannot use position directly, as @GraphEdit@ is a @Container@.\nbindGraphNode_get_offset :: MethodBind\nbindGraphNode_get_offset\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The offset of the GraphNode, relative to the scroll offset of the @GraphEdit@.\n--   \t\t\t__Note:__ You cannot use position directly, as @GraphEdit@ is a @Container@.\nget_offset ::\n             (GraphNode :< cls, Object :< cls) => cls -> IO Vector2\nget_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_get_offset (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"get_offset\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.GraphNode.get_offset\n\n{-# NOINLINE bindGraphNode_get_overlay #-}\n\n-- | Sets the overlay shown above the GraphNode. See @enum Overlay@.\nbindGraphNode_get_overlay :: MethodBind\nbindGraphNode_get_overlay\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_overlay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the overlay shown above the GraphNode. See @enum Overlay@.\nget_overlay :: (GraphNode :< cls, Object :< cls) => cls -> IO Int\nget_overlay cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_get_overlay (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"get_overlay\" '[] (IO Int) where\n        nodeMethod = Godot.Core.GraphNode.get_overlay\n\n{-# NOINLINE bindGraphNode_get_slot_color_left #-}\n\n-- | Returns the color set to @idx@ left (input) slot.\nbindGraphNode_get_slot_color_left :: MethodBind\nbindGraphNode_get_slot_color_left\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_slot_color_left\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the color set to @idx@ left (input) slot.\nget_slot_color_left ::\n                      (GraphNode :< cls, Object :< cls) => cls -> Int -> IO Color\nget_slot_color_left cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_get_slot_color_left\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"get_slot_color_left\" '[Int]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.GraphNode.get_slot_color_left\n\n{-# NOINLINE bindGraphNode_get_slot_color_right #-}\n\n-- | Returns the color set to @idx@ right (output) slot.\nbindGraphNode_get_slot_color_right :: MethodBind\nbindGraphNode_get_slot_color_right\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_slot_color_right\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the color set to @idx@ right (output) slot.\nget_slot_color_right ::\n                       (GraphNode :< cls, Object :< cls) => cls -> Int -> IO Color\nget_slot_color_right cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_get_slot_color_right\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"get_slot_color_right\" '[Int]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.GraphNode.get_slot_color_right\n\n{-# NOINLINE bindGraphNode_get_slot_type_left #-}\n\n-- | Returns the (integer) type of left (input) @idx@ slot.\nbindGraphNode_get_slot_type_left :: MethodBind\nbindGraphNode_get_slot_type_left\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_slot_type_left\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the (integer) type of left (input) @idx@ slot.\nget_slot_type_left ::\n                     (GraphNode :< cls, Object :< cls) => cls -> Int -> IO Int\nget_slot_type_left cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_get_slot_type_left\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"get_slot_type_left\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.GraphNode.get_slot_type_left\n\n{-# NOINLINE bindGraphNode_get_slot_type_right #-}\n\n-- | Returns the (integer) type of right (output) @idx@ slot.\nbindGraphNode_get_slot_type_right :: MethodBind\nbindGraphNode_get_slot_type_right\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_slot_type_right\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the (integer) type of right (output) @idx@ slot.\nget_slot_type_right ::\n                      (GraphNode :< cls, Object :< cls) => cls -> Int -> IO Int\nget_slot_type_right cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_get_slot_type_right\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"get_slot_type_right\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.GraphNode.get_slot_type_right\n\n{-# NOINLINE bindGraphNode_get_title #-}\n\n-- | The text displayed in the GraphNode's title bar.\nbindGraphNode_get_title :: MethodBind\nbindGraphNode_get_title\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_title\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The text displayed in the GraphNode's title bar.\nget_title ::\n            (GraphNode :< cls, Object :< cls) => cls -> IO GodotString\nget_title cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_get_title (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"get_title\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.GraphNode.get_title\n\n{-# NOINLINE bindGraphNode_is_close_button_visible #-}\n\n-- | If @true@, the close button will be visible.\n--   \t\t\t__Note:__ Pressing it will only emit the @signal close_request@ signal, the GraphNode needs to be removed manually.\nbindGraphNode_is_close_button_visible :: MethodBind\nbindGraphNode_is_close_button_visible\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"is_close_button_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the close button will be visible.\n--   \t\t\t__Note:__ Pressing it will only emit the @signal close_request@ signal, the GraphNode needs to be removed manually.\nis_close_button_visible ::\n                          (GraphNode :< cls, Object :< cls) => cls -> IO Bool\nis_close_button_visible cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_is_close_button_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"is_close_button_visible\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.GraphNode.is_close_button_visible\n\n{-# NOINLINE bindGraphNode_is_comment #-}\n\n-- | If @true@, the GraphNode is a comment node.\nbindGraphNode_is_comment :: MethodBind\nbindGraphNode_is_comment\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"is_comment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the GraphNode is a comment node.\nis_comment :: (GraphNode :< cls, Object :< cls) => cls -> IO Bool\nis_comment cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_is_comment (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"is_comment\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.GraphNode.is_comment\n\n{-# NOINLINE bindGraphNode_is_resizable #-}\n\n-- | If @true@, the user can resize the GraphNode.\n--   \t\t\t__Note:__ Dragging the handle will only emit the @signal resize_request@ signal, the GraphNode needs to be resized manually.\nbindGraphNode_is_resizable :: MethodBind\nbindGraphNode_is_resizable\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"is_resizable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the user can resize the GraphNode.\n--   \t\t\t__Note:__ Dragging the handle will only emit the @signal resize_request@ signal, the GraphNode needs to be resized manually.\nis_resizable :: (GraphNode :< cls, Object :< cls) => cls -> IO Bool\nis_resizable cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_is_resizable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"is_resizable\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.GraphNode.is_resizable\n\n{-# NOINLINE bindGraphNode_is_selected #-}\n\n-- | If @true@, the GraphNode is selected.\nbindGraphNode_is_selected :: MethodBind\nbindGraphNode_is_selected\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"is_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the GraphNode is selected.\nis_selected :: (GraphNode :< cls, Object :< cls) => cls -> IO Bool\nis_selected cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_is_selected (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"is_selected\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.GraphNode.is_selected\n\n{-# NOINLINE bindGraphNode_is_slot_enabled_left #-}\n\n-- | Returns @true@ if left (input) slot @idx@ is enabled, @false@ otherwise.\nbindGraphNode_is_slot_enabled_left :: MethodBind\nbindGraphNode_is_slot_enabled_left\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"is_slot_enabled_left\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if left (input) slot @idx@ is enabled, @false@ otherwise.\nis_slot_enabled_left ::\n                       (GraphNode :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_slot_enabled_left cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_is_slot_enabled_left\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"is_slot_enabled_left\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.GraphNode.is_slot_enabled_left\n\n{-# NOINLINE bindGraphNode_is_slot_enabled_right #-}\n\n-- | Returns @true@ if right (output) slot @idx@ is enabled, @false@ otherwise.\nbindGraphNode_is_slot_enabled_right :: MethodBind\nbindGraphNode_is_slot_enabled_right\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"is_slot_enabled_right\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if right (output) slot @idx@ is enabled, @false@ otherwise.\nis_slot_enabled_right ::\n                        (GraphNode :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_slot_enabled_right cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_is_slot_enabled_right\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"is_slot_enabled_right\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.GraphNode.is_slot_enabled_right\n\n{-# NOINLINE bindGraphNode_set_comment #-}\n\n-- | If @true@, the GraphNode is a comment node.\nbindGraphNode_set_comment :: MethodBind\nbindGraphNode_set_comment\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"set_comment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the GraphNode is a comment node.\nset_comment ::\n              (GraphNode :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_comment cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_set_comment (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"set_comment\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.GraphNode.set_comment\n\n{-# NOINLINE bindGraphNode_set_offset #-}\n\n-- | The offset of the GraphNode, relative to the scroll offset of the @GraphEdit@.\n--   \t\t\t__Note:__ You cannot use position directly, as @GraphEdit@ is a @Container@.\nbindGraphNode_set_offset :: MethodBind\nbindGraphNode_set_offset\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"set_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The offset of the GraphNode, relative to the scroll offset of the @GraphEdit@.\n--   \t\t\t__Note:__ You cannot use position directly, as @GraphEdit@ is a @Container@.\nset_offset ::\n             (GraphNode :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_set_offset (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"set_offset\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.GraphNode.set_offset\n\n{-# NOINLINE bindGraphNode_set_overlay #-}\n\n-- | Sets the overlay shown above the GraphNode. See @enum Overlay@.\nbindGraphNode_set_overlay :: MethodBind\nbindGraphNode_set_overlay\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"set_overlay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the overlay shown above the GraphNode. See @enum Overlay@.\nset_overlay ::\n              (GraphNode :< cls, Object :< cls) => cls -> Int -> IO ()\nset_overlay cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_set_overlay (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"set_overlay\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.GraphNode.set_overlay\n\n{-# NOINLINE bindGraphNode_set_resizable #-}\n\n-- | If @true@, the user can resize the GraphNode.\n--   \t\t\t__Note:__ Dragging the handle will only emit the @signal resize_request@ signal, the GraphNode needs to be resized manually.\nbindGraphNode_set_resizable :: MethodBind\nbindGraphNode_set_resizable\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"set_resizable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the user can resize the GraphNode.\n--   \t\t\t__Note:__ Dragging the handle will only emit the @signal resize_request@ signal, the GraphNode needs to be resized manually.\nset_resizable ::\n                (GraphNode :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_resizable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_set_resizable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"set_resizable\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.GraphNode.set_resizable\n\n{-# NOINLINE bindGraphNode_set_selected #-}\n\n-- | If @true@, the GraphNode is selected.\nbindGraphNode_set_selected :: MethodBind\nbindGraphNode_set_selected\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"set_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the GraphNode is selected.\nset_selected ::\n               (GraphNode :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_selected cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_set_selected (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"set_selected\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.GraphNode.set_selected\n\n{-# NOINLINE bindGraphNode_set_show_close_button #-}\n\n-- | If @true@, the close button will be visible.\n--   \t\t\t__Note:__ Pressing it will only emit the @signal close_request@ signal, the GraphNode needs to be removed manually.\nbindGraphNode_set_show_close_button :: MethodBind\nbindGraphNode_set_show_close_button\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"set_show_close_button\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the close button will be visible.\n--   \t\t\t__Note:__ Pressing it will only emit the @signal close_request@ signal, the GraphNode needs to be removed manually.\nset_show_close_button ::\n                        (GraphNode :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_show_close_button cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_set_show_close_button\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"set_show_close_button\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GraphNode.set_show_close_button\n\n{-# NOINLINE bindGraphNode_set_slot #-}\n\n-- | Sets properties of the slot with ID @idx@.\n--   \t\t\t\tIf @enable_left@/@right@, a port will appear and the slot will be able to be connected from this side.\n--   \t\t\t\t@type_left@/@right@ is an arbitrary type of the port. Only ports with the same type values can be connected.\n--   \t\t\t\t@color_left@/@right@ is the tint of the port's icon on this side.\n--   \t\t\t\t@custom_left@/@right@ is a custom texture for this side's port.\n--   \t\t\t\t__Note:__ This method only sets properties of the slot. To create the slot, add a @Control@-derived child to the GraphNode.\nbindGraphNode_set_slot :: MethodBind\nbindGraphNode_set_slot\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"set_slot\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets properties of the slot with ID @idx@.\n--   \t\t\t\tIf @enable_left@/@right@, a port will appear and the slot will be able to be connected from this side.\n--   \t\t\t\t@type_left@/@right@ is an arbitrary type of the port. Only ports with the same type values can be connected.\n--   \t\t\t\t@color_left@/@right@ is the tint of the port's icon on this side.\n--   \t\t\t\t@custom_left@/@right@ is a custom texture for this side's port.\n--   \t\t\t\t__Note:__ This method only sets properties of the slot. To create the slot, add a @Control@-derived child to the GraphNode.\nset_slot ::\n           (GraphNode :< cls, Object :< cls) =>\n           cls ->\n             Int ->\n               Bool ->\n                 Int ->\n                   Color ->\n                     Bool -> Int -> Color -> Maybe Texture -> Maybe Texture -> IO ()\nset_slot cls arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6, toVariant arg7,\n       maybe VariantNil toVariant arg8, maybe VariantNil toVariant arg9]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_set_slot (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"set_slot\"\n           '[Int, Bool, Int, Color, Bool, Int, Color, Maybe Texture,\n             Maybe Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GraphNode.set_slot\n\n{-# NOINLINE bindGraphNode_set_title #-}\n\n-- | The text displayed in the GraphNode's title bar.\nbindGraphNode_set_title :: MethodBind\nbindGraphNode_set_title\n  = unsafePerformIO $\n      withCString \"GraphNode\" $\n        \\ clsNamePtr ->\n          withCString \"set_title\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The text displayed in the GraphNode's title bar.\nset_title ::\n            (GraphNode :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_title cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGraphNode_set_title (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GraphNode \"set_title\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.GraphNode.set_title"
  },
  {
    "path": "src/Godot/Core/GridContainer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.GridContainer\n       (Godot.Core.GridContainer.get_columns,\n        Godot.Core.GridContainer.set_columns)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Container()\n\ninstance NodeProperty GridContainer \"columns\" Int 'False where\n        nodeProperty\n          = (get_columns, wrapDroppingSetter set_columns, Nothing)\n\n{-# NOINLINE bindGridContainer_get_columns #-}\n\n-- | The number of columns in the @GridContainer@. If modified, @GridContainer@ reorders its Control-derived children to accommodate the new layout.\nbindGridContainer_get_columns :: MethodBind\nbindGridContainer_get_columns\n  = unsafePerformIO $\n      withCString \"GridContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_columns\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of columns in the @GridContainer@. If modified, @GridContainer@ reorders its Control-derived children to accommodate the new layout.\nget_columns ::\n              (GridContainer :< cls, Object :< cls) => cls -> IO Int\nget_columns cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridContainer_get_columns (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridContainer \"get_columns\" '[] (IO Int) where\n        nodeMethod = Godot.Core.GridContainer.get_columns\n\n{-# NOINLINE bindGridContainer_set_columns #-}\n\n-- | The number of columns in the @GridContainer@. If modified, @GridContainer@ reorders its Control-derived children to accommodate the new layout.\nbindGridContainer_set_columns :: MethodBind\nbindGridContainer_set_columns\n  = unsafePerformIO $\n      withCString \"GridContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_columns\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of columns in the @GridContainer@. If modified, @GridContainer@ reorders its Control-derived children to accommodate the new layout.\nset_columns ::\n              (GridContainer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_columns cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridContainer_set_columns (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridContainer \"set_columns\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.GridContainer.set_columns"
  },
  {
    "path": "src/Godot/Core/GridMap.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.GridMap\n       (Godot.Core.GridMap._INVALID_CELL_ITEM,\n        Godot.Core.GridMap.sig_cell_size_changed,\n        Godot.Core.GridMap._update_octants_callback,\n        Godot.Core.GridMap.clear, Godot.Core.GridMap.clear_baked_meshes,\n        Godot.Core.GridMap.get_bake_mesh_instance,\n        Godot.Core.GridMap.get_bake_meshes,\n        Godot.Core.GridMap.get_cell_item,\n        Godot.Core.GridMap.get_cell_item_orientation,\n        Godot.Core.GridMap.get_cell_scale,\n        Godot.Core.GridMap.get_cell_size, Godot.Core.GridMap.get_center_x,\n        Godot.Core.GridMap.get_center_y, Godot.Core.GridMap.get_center_z,\n        Godot.Core.GridMap.get_collision_layer,\n        Godot.Core.GridMap.get_collision_layer_bit,\n        Godot.Core.GridMap.get_collision_mask,\n        Godot.Core.GridMap.get_collision_mask_bit,\n        Godot.Core.GridMap.get_mesh_library, Godot.Core.GridMap.get_meshes,\n        Godot.Core.GridMap.get_octant_size,\n        Godot.Core.GridMap.get_used_cells,\n        Godot.Core.GridMap.make_baked_meshes,\n        Godot.Core.GridMap.map_to_world,\n        Godot.Core.GridMap.resource_changed,\n        Godot.Core.GridMap.set_cell_item,\n        Godot.Core.GridMap.set_cell_scale,\n        Godot.Core.GridMap.set_cell_size, Godot.Core.GridMap.set_center_x,\n        Godot.Core.GridMap.set_center_y, Godot.Core.GridMap.set_center_z,\n        Godot.Core.GridMap.set_clip,\n        Godot.Core.GridMap.set_collision_layer,\n        Godot.Core.GridMap.set_collision_layer_bit,\n        Godot.Core.GridMap.set_collision_mask,\n        Godot.Core.GridMap.set_collision_mask_bit,\n        Godot.Core.GridMap.set_mesh_library,\n        Godot.Core.GridMap.set_octant_size,\n        Godot.Core.GridMap.world_to_map)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\n_INVALID_CELL_ITEM :: Int\n_INVALID_CELL_ITEM = -1\n\nsig_cell_size_changed :: Godot.Internal.Dispatch.Signal GridMap\nsig_cell_size_changed\n  = Godot.Internal.Dispatch.Signal \"cell_size_changed\"\n\ninstance NodeSignal GridMap \"cell_size_changed\" '[Vector3]\n\ninstance NodeProperty GridMap \"cell_center_x\" Bool 'False where\n        nodeProperty\n          = (get_center_x, wrapDroppingSetter set_center_x, Nothing)\n\ninstance NodeProperty GridMap \"cell_center_y\" Bool 'False where\n        nodeProperty\n          = (get_center_y, wrapDroppingSetter set_center_y, Nothing)\n\ninstance NodeProperty GridMap \"cell_center_z\" Bool 'False where\n        nodeProperty\n          = (get_center_z, wrapDroppingSetter set_center_z, Nothing)\n\ninstance NodeProperty GridMap \"cell_octant_size\" Int 'False where\n        nodeProperty\n          = (get_octant_size, wrapDroppingSetter set_octant_size, Nothing)\n\ninstance NodeProperty GridMap \"cell_scale\" Float 'False where\n        nodeProperty\n          = (get_cell_scale, wrapDroppingSetter set_cell_scale, Nothing)\n\ninstance NodeProperty GridMap \"cell_size\" Vector3 'False where\n        nodeProperty\n          = (get_cell_size, wrapDroppingSetter set_cell_size, Nothing)\n\ninstance NodeProperty GridMap \"collision_layer\" Int 'False where\n        nodeProperty\n          = (get_collision_layer, wrapDroppingSetter set_collision_layer,\n             Nothing)\n\ninstance NodeProperty GridMap \"collision_mask\" Int 'False where\n        nodeProperty\n          = (get_collision_mask, wrapDroppingSetter set_collision_mask,\n             Nothing)\n\ninstance NodeProperty GridMap \"mesh_library\" MeshLibrary 'False\n         where\n        nodeProperty\n          = (get_mesh_library, wrapDroppingSetter set_mesh_library, Nothing)\n\n{-# NOINLINE bindGridMap__update_octants_callback #-}\n\nbindGridMap__update_octants_callback :: MethodBind\nbindGridMap__update_octants_callback\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"_update_octants_callback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_octants_callback ::\n                           (GridMap :< cls, Object :< cls) => cls -> IO ()\n_update_octants_callback cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap__update_octants_callback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"_update_octants_callback\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.GridMap._update_octants_callback\n\n{-# NOINLINE bindGridMap_clear #-}\n\nbindGridMap_clear :: MethodBind\nbindGridMap_clear\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nclear :: (GridMap :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_clear (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.GridMap.clear\n\n{-# NOINLINE bindGridMap_clear_baked_meshes #-}\n\nbindGridMap_clear_baked_meshes :: MethodBind\nbindGridMap_clear_baked_meshes\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"clear_baked_meshes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nclear_baked_meshes ::\n                     (GridMap :< cls, Object :< cls) => cls -> IO ()\nclear_baked_meshes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_clear_baked_meshes (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"clear_baked_meshes\" '[] (IO ()) where\n        nodeMethod = Godot.Core.GridMap.clear_baked_meshes\n\n{-# NOINLINE bindGridMap_get_bake_mesh_instance #-}\n\nbindGridMap_get_bake_mesh_instance :: MethodBind\nbindGridMap_get_bake_mesh_instance\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_bake_mesh_instance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_bake_mesh_instance ::\n                         (GridMap :< cls, Object :< cls) => cls -> Int -> IO Rid\nget_bake_mesh_instance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_get_bake_mesh_instance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"get_bake_mesh_instance\" '[Int]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.GridMap.get_bake_mesh_instance\n\n{-# NOINLINE bindGridMap_get_bake_meshes #-}\n\nbindGridMap_get_bake_meshes :: MethodBind\nbindGridMap_get_bake_meshes\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_bake_meshes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_bake_meshes ::\n                  (GridMap :< cls, Object :< cls) => cls -> IO Array\nget_bake_meshes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_get_bake_meshes (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"get_bake_meshes\" '[] (IO Array) where\n        nodeMethod = Godot.Core.GridMap.get_bake_meshes\n\n{-# NOINLINE bindGridMap_get_cell_item #-}\n\nbindGridMap_get_cell_item :: MethodBind\nbindGridMap_get_cell_item\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_cell_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_cell_item ::\n                (GridMap :< cls, Object :< cls) =>\n                cls -> Int -> Int -> Int -> IO Int\nget_cell_item cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_get_cell_item (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"get_cell_item\" '[Int, Int, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.GridMap.get_cell_item\n\n{-# NOINLINE bindGridMap_get_cell_item_orientation #-}\n\nbindGridMap_get_cell_item_orientation :: MethodBind\nbindGridMap_get_cell_item_orientation\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_cell_item_orientation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_cell_item_orientation ::\n                            (GridMap :< cls, Object :< cls) =>\n                            cls -> Int -> Int -> Int -> IO Int\nget_cell_item_orientation cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_get_cell_item_orientation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"get_cell_item_orientation\"\n           '[Int, Int, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.GridMap.get_cell_item_orientation\n\n{-# NOINLINE bindGridMap_get_cell_scale #-}\n\nbindGridMap_get_cell_scale :: MethodBind\nbindGridMap_get_cell_scale\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_cell_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_cell_scale ::\n                 (GridMap :< cls, Object :< cls) => cls -> IO Float\nget_cell_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_get_cell_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"get_cell_scale\" '[] (IO Float) where\n        nodeMethod = Godot.Core.GridMap.get_cell_scale\n\n{-# NOINLINE bindGridMap_get_cell_size #-}\n\nbindGridMap_get_cell_size :: MethodBind\nbindGridMap_get_cell_size\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_cell_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_cell_size ::\n                (GridMap :< cls, Object :< cls) => cls -> IO Vector3\nget_cell_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_get_cell_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"get_cell_size\" '[] (IO Vector3) where\n        nodeMethod = Godot.Core.GridMap.get_cell_size\n\n{-# NOINLINE bindGridMap_get_center_x #-}\n\nbindGridMap_get_center_x :: MethodBind\nbindGridMap_get_center_x\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_center_x\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_center_x :: (GridMap :< cls, Object :< cls) => cls -> IO Bool\nget_center_x cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_get_center_x (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"get_center_x\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.GridMap.get_center_x\n\n{-# NOINLINE bindGridMap_get_center_y #-}\n\nbindGridMap_get_center_y :: MethodBind\nbindGridMap_get_center_y\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_center_y\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_center_y :: (GridMap :< cls, Object :< cls) => cls -> IO Bool\nget_center_y cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_get_center_y (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"get_center_y\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.GridMap.get_center_y\n\n{-# NOINLINE bindGridMap_get_center_z #-}\n\nbindGridMap_get_center_z :: MethodBind\nbindGridMap_get_center_z\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_center_z\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_center_z :: (GridMap :< cls, Object :< cls) => cls -> IO Bool\nget_center_z cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_get_center_z (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"get_center_z\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.GridMap.get_center_z\n\n{-# NOINLINE bindGridMap_get_collision_layer #-}\n\nbindGridMap_get_collision_layer :: MethodBind\nbindGridMap_get_collision_layer\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_collision_layer ::\n                      (GridMap :< cls, Object :< cls) => cls -> IO Int\nget_collision_layer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_get_collision_layer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"get_collision_layer\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.GridMap.get_collision_layer\n\n{-# NOINLINE bindGridMap_get_collision_layer_bit #-}\n\nbindGridMap_get_collision_layer_bit :: MethodBind\nbindGridMap_get_collision_layer_bit\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_layer_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_collision_layer_bit ::\n                          (GridMap :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_layer_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_get_collision_layer_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"get_collision_layer_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.GridMap.get_collision_layer_bit\n\n{-# NOINLINE bindGridMap_get_collision_mask #-}\n\nbindGridMap_get_collision_mask :: MethodBind\nbindGridMap_get_collision_mask\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_collision_mask ::\n                     (GridMap :< cls, Object :< cls) => cls -> IO Int\nget_collision_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_get_collision_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"get_collision_mask\" '[] (IO Int) where\n        nodeMethod = Godot.Core.GridMap.get_collision_mask\n\n{-# NOINLINE bindGridMap_get_collision_mask_bit #-}\n\nbindGridMap_get_collision_mask_bit :: MethodBind\nbindGridMap_get_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_collision_mask_bit ::\n                         (GridMap :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_mask_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_get_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"get_collision_mask_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.GridMap.get_collision_mask_bit\n\n{-# NOINLINE bindGridMap_get_mesh_library #-}\n\nbindGridMap_get_mesh_library :: MethodBind\nbindGridMap_get_mesh_library\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_mesh_library\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_mesh_library ::\n                   (GridMap :< cls, Object :< cls) => cls -> IO MeshLibrary\nget_mesh_library cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_get_mesh_library (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"get_mesh_library\" '[] (IO MeshLibrary)\n         where\n        nodeMethod = Godot.Core.GridMap.get_mesh_library\n\n{-# NOINLINE bindGridMap_get_meshes #-}\n\nbindGridMap_get_meshes :: MethodBind\nbindGridMap_get_meshes\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_meshes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_meshes :: (GridMap :< cls, Object :< cls) => cls -> IO Array\nget_meshes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_get_meshes (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"get_meshes\" '[] (IO Array) where\n        nodeMethod = Godot.Core.GridMap.get_meshes\n\n{-# NOINLINE bindGridMap_get_octant_size #-}\n\nbindGridMap_get_octant_size :: MethodBind\nbindGridMap_get_octant_size\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_octant_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_octant_size :: (GridMap :< cls, Object :< cls) => cls -> IO Int\nget_octant_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_get_octant_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"get_octant_size\" '[] (IO Int) where\n        nodeMethod = Godot.Core.GridMap.get_octant_size\n\n{-# NOINLINE bindGridMap_get_used_cells #-}\n\nbindGridMap_get_used_cells :: MethodBind\nbindGridMap_get_used_cells\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_used_cells\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_used_cells ::\n                 (GridMap :< cls, Object :< cls) => cls -> IO Array\nget_used_cells cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_get_used_cells (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"get_used_cells\" '[] (IO Array) where\n        nodeMethod = Godot.Core.GridMap.get_used_cells\n\n{-# NOINLINE bindGridMap_make_baked_meshes #-}\n\nbindGridMap_make_baked_meshes :: MethodBind\nbindGridMap_make_baked_meshes\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"make_baked_meshes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nmake_baked_meshes ::\n                    (GridMap :< cls, Object :< cls) =>\n                    cls -> Maybe Bool -> Maybe Float -> IO ()\nmake_baked_meshes cls arg1 arg2\n  = withVariantArray\n      [maybe (VariantBool False) toVariant arg1,\n       maybe (VariantReal (0.1)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_make_baked_meshes (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"make_baked_meshes\"\n           '[Maybe Bool, Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GridMap.make_baked_meshes\n\n{-# NOINLINE bindGridMap_map_to_world #-}\n\nbindGridMap_map_to_world :: MethodBind\nbindGridMap_map_to_world\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"map_to_world\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nmap_to_world ::\n               (GridMap :< cls, Object :< cls) =>\n               cls -> Int -> Int -> Int -> IO Vector3\nmap_to_world cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_map_to_world (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"map_to_world\" '[Int, Int, Int]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.GridMap.map_to_world\n\n{-# NOINLINE bindGridMap_resource_changed #-}\n\nbindGridMap_resource_changed :: MethodBind\nbindGridMap_resource_changed\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"resource_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nresource_changed ::\n                   (GridMap :< cls, Object :< cls) => cls -> Resource -> IO ()\nresource_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_resource_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"resource_changed\" '[Resource] (IO ())\n         where\n        nodeMethod = Godot.Core.GridMap.resource_changed\n\n{-# NOINLINE bindGridMap_set_cell_item #-}\n\nbindGridMap_set_cell_item :: MethodBind\nbindGridMap_set_cell_item\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_cell_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_cell_item ::\n                (GridMap :< cls, Object :< cls) =>\n                cls -> Int -> Int -> Int -> Int -> Maybe Int -> IO ()\nset_cell_item cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       maybe (VariantInt (0)) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_set_cell_item (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"set_cell_item\"\n           '[Int, Int, Int, Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GridMap.set_cell_item\n\n{-# NOINLINE bindGridMap_set_cell_scale #-}\n\nbindGridMap_set_cell_scale :: MethodBind\nbindGridMap_set_cell_scale\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_cell_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_cell_scale ::\n                 (GridMap :< cls, Object :< cls) => cls -> Float -> IO ()\nset_cell_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_set_cell_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"set_cell_scale\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.GridMap.set_cell_scale\n\n{-# NOINLINE bindGridMap_set_cell_size #-}\n\nbindGridMap_set_cell_size :: MethodBind\nbindGridMap_set_cell_size\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_cell_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_cell_size ::\n                (GridMap :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_cell_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_set_cell_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"set_cell_size\" '[Vector3] (IO ())\n         where\n        nodeMethod = Godot.Core.GridMap.set_cell_size\n\n{-# NOINLINE bindGridMap_set_center_x #-}\n\nbindGridMap_set_center_x :: MethodBind\nbindGridMap_set_center_x\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_center_x\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_center_x ::\n               (GridMap :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_center_x cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_set_center_x (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"set_center_x\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.GridMap.set_center_x\n\n{-# NOINLINE bindGridMap_set_center_y #-}\n\nbindGridMap_set_center_y :: MethodBind\nbindGridMap_set_center_y\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_center_y\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_center_y ::\n               (GridMap :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_center_y cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_set_center_y (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"set_center_y\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.GridMap.set_center_y\n\n{-# NOINLINE bindGridMap_set_center_z #-}\n\nbindGridMap_set_center_z :: MethodBind\nbindGridMap_set_center_z\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_center_z\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_center_z ::\n               (GridMap :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_center_z cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_set_center_z (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"set_center_z\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.GridMap.set_center_z\n\n{-# NOINLINE bindGridMap_set_clip #-}\n\nbindGridMap_set_clip :: MethodBind\nbindGridMap_set_clip\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_clip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_clip ::\n           (GridMap :< cls, Object :< cls) =>\n           cls -> Bool -> Maybe Bool -> Maybe Int -> Maybe Int -> IO ()\nset_clip cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool True) toVariant arg2,\n       maybe (VariantInt (0)) toVariant arg3,\n       maybe (VariantInt (0)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_set_clip (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"set_clip\"\n           '[Bool, Maybe Bool, Maybe Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GridMap.set_clip\n\n{-# NOINLINE bindGridMap_set_collision_layer #-}\n\nbindGridMap_set_collision_layer :: MethodBind\nbindGridMap_set_collision_layer\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_collision_layer ::\n                      (GridMap :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_layer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_set_collision_layer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"set_collision_layer\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.GridMap.set_collision_layer\n\n{-# NOINLINE bindGridMap_set_collision_layer_bit #-}\n\nbindGridMap_set_collision_layer_bit :: MethodBind\nbindGridMap_set_collision_layer_bit\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_layer_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_collision_layer_bit ::\n                          (GridMap :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_collision_layer_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_set_collision_layer_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"set_collision_layer_bit\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GridMap.set_collision_layer_bit\n\n{-# NOINLINE bindGridMap_set_collision_mask #-}\n\nbindGridMap_set_collision_mask :: MethodBind\nbindGridMap_set_collision_mask\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_collision_mask ::\n                     (GridMap :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_set_collision_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"set_collision_mask\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.GridMap.set_collision_mask\n\n{-# NOINLINE bindGridMap_set_collision_mask_bit #-}\n\nbindGridMap_set_collision_mask_bit :: MethodBind\nbindGridMap_set_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_collision_mask_bit ::\n                         (GridMap :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_collision_mask_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_set_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"set_collision_mask_bit\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GridMap.set_collision_mask_bit\n\n{-# NOINLINE bindGridMap_set_mesh_library #-}\n\nbindGridMap_set_mesh_library :: MethodBind\nbindGridMap_set_mesh_library\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_mesh_library\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_mesh_library ::\n                   (GridMap :< cls, Object :< cls) => cls -> MeshLibrary -> IO ()\nset_mesh_library cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_set_mesh_library (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"set_mesh_library\" '[MeshLibrary]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GridMap.set_mesh_library\n\n{-# NOINLINE bindGridMap_set_octant_size #-}\n\nbindGridMap_set_octant_size :: MethodBind\nbindGridMap_set_octant_size\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_octant_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_octant_size ::\n                  (GridMap :< cls, Object :< cls) => cls -> Int -> IO ()\nset_octant_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_set_octant_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"set_octant_size\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.GridMap.set_octant_size\n\n{-# NOINLINE bindGridMap_world_to_map #-}\n\nbindGridMap_world_to_map :: MethodBind\nbindGridMap_world_to_map\n  = unsafePerformIO $\n      withCString \"GridMap\" $\n        \\ clsNamePtr ->\n          withCString \"world_to_map\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nworld_to_map ::\n               (GridMap :< cls, Object :< cls) => cls -> Vector3 -> IO Vector3\nworld_to_map cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGridMap_world_to_map (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GridMap \"world_to_map\" '[Vector3] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.GridMap.world_to_map"
  },
  {
    "path": "src/Godot/Core/GrooveJoint2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.GrooveJoint2D\n       (Godot.Core.GrooveJoint2D.get_initial_offset,\n        Godot.Core.GrooveJoint2D.get_length,\n        Godot.Core.GrooveJoint2D.set_initial_offset,\n        Godot.Core.GrooveJoint2D.set_length)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Joint2D()\n\ninstance NodeProperty GrooveJoint2D \"initial_offset\" Float 'False\n         where\n        nodeProperty\n          = (get_initial_offset, wrapDroppingSetter set_initial_offset,\n             Nothing)\n\ninstance NodeProperty GrooveJoint2D \"length\" Float 'False where\n        nodeProperty = (get_length, wrapDroppingSetter set_length, Nothing)\n\n{-# NOINLINE bindGrooveJoint2D_get_initial_offset #-}\n\n-- | The body B's initial anchor position defined by the joint's origin and a local offset @initial_offset@ along the joint's Y axis (along the groove).\nbindGrooveJoint2D_get_initial_offset :: MethodBind\nbindGrooveJoint2D_get_initial_offset\n  = unsafePerformIO $\n      withCString \"GrooveJoint2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_initial_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body B's initial anchor position defined by the joint's origin and a local offset @initial_offset@ along the joint's Y axis (along the groove).\nget_initial_offset ::\n                     (GrooveJoint2D :< cls, Object :< cls) => cls -> IO Float\nget_initial_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGrooveJoint2D_get_initial_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GrooveJoint2D \"get_initial_offset\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.GrooveJoint2D.get_initial_offset\n\n{-# NOINLINE bindGrooveJoint2D_get_length #-}\n\n-- | The groove's length. The groove is from the joint's origin towards @length@ along the joint's local Y axis.\nbindGrooveJoint2D_get_length :: MethodBind\nbindGrooveJoint2D_get_length\n  = unsafePerformIO $\n      withCString \"GrooveJoint2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The groove's length. The groove is from the joint's origin towards @length@ along the joint's local Y axis.\nget_length ::\n             (GrooveJoint2D :< cls, Object :< cls) => cls -> IO Float\nget_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGrooveJoint2D_get_length (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GrooveJoint2D \"get_length\" '[] (IO Float) where\n        nodeMethod = Godot.Core.GrooveJoint2D.get_length\n\n{-# NOINLINE bindGrooveJoint2D_set_initial_offset #-}\n\n-- | The body B's initial anchor position defined by the joint's origin and a local offset @initial_offset@ along the joint's Y axis (along the groove).\nbindGrooveJoint2D_set_initial_offset :: MethodBind\nbindGrooveJoint2D_set_initial_offset\n  = unsafePerformIO $\n      withCString \"GrooveJoint2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_initial_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body B's initial anchor position defined by the joint's origin and a local offset @initial_offset@ along the joint's Y axis (along the groove).\nset_initial_offset ::\n                     (GrooveJoint2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_initial_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGrooveJoint2D_set_initial_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GrooveJoint2D \"set_initial_offset\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.GrooveJoint2D.set_initial_offset\n\n{-# NOINLINE bindGrooveJoint2D_set_length #-}\n\n-- | The groove's length. The groove is from the joint's origin towards @length@ along the joint's local Y axis.\nbindGrooveJoint2D_set_length :: MethodBind\nbindGrooveJoint2D_set_length\n  = unsafePerformIO $\n      withCString \"GrooveJoint2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The groove's length. The groove is from the joint's origin towards @length@ along the joint's local Y axis.\nset_length ::\n             (GrooveJoint2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_length cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindGrooveJoint2D_set_length (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod GrooveJoint2D \"set_length\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.GrooveJoint2D.set_length"
  },
  {
    "path": "src/Godot/Core/HBoxContainer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.HBoxContainer () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.BoxContainer()"
  },
  {
    "path": "src/Godot/Core/HScrollBar.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.HScrollBar () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.ScrollBar()"
  },
  {
    "path": "src/Godot/Core/HSeparator.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.HSeparator () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Separator()"
  },
  {
    "path": "src/Godot/Core/HSlider.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.HSlider () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Slider()"
  },
  {
    "path": "src/Godot/Core/HSplitContainer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.HSplitContainer () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.SplitContainer()"
  },
  {
    "path": "src/Godot/Core/HTTPClient.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.HTTPClient\n       (Godot.Core.HTTPClient._STATUS_CONNECTED,\n        Godot.Core.HTTPClient._RESPONSE_CREATED,\n        Godot.Core.HTTPClient._RESPONSE_SWITCHING_PROTOCOLS,\n        Godot.Core.HTTPClient._RESPONSE_PRECONDITION_FAILED,\n        Godot.Core.HTTPClient._RESPONSE_USE_PROXY,\n        Godot.Core.HTTPClient._RESPONSE_SEE_OTHER,\n        Godot.Core.HTTPClient._RESPONSE_FAILED_DEPENDENCY,\n        Godot.Core.HTTPClient._RESPONSE_GONE,\n        Godot.Core.HTTPClient._RESPONSE_FORBIDDEN,\n        Godot.Core.HTTPClient._RESPONSE_INSUFFICIENT_STORAGE,\n        Godot.Core.HTTPClient._RESPONSE_NOT_MODIFIED,\n        Godot.Core.HTTPClient._RESPONSE_CONFLICT,\n        Godot.Core.HTTPClient._RESPONSE_REQUEST_URI_TOO_LONG,\n        Godot.Core.HTTPClient._STATUS_RESOLVING,\n        Godot.Core.HTTPClient._STATUS_CONNECTION_ERROR,\n        Godot.Core.HTTPClient._RESPONSE_ALREADY_REPORTED,\n        Godot.Core.HTTPClient._RESPONSE_TEMPORARY_REDIRECT,\n        Godot.Core.HTTPClient._STATUS_CANT_CONNECT,\n        Godot.Core.HTTPClient._STATUS_CONNECTING,\n        Godot.Core.HTTPClient._RESPONSE_BAD_REQUEST,\n        Godot.Core.HTTPClient._RESPONSE_UNSUPPORTED_MEDIA_TYPE,\n        Godot.Core.HTTPClient._RESPONSE_SWITCH_PROXY,\n        Godot.Core.HTTPClient._STATUS_CANT_RESOLVE,\n        Godot.Core.HTTPClient._RESPONSE_NOT_IMPLEMENTED,\n        Godot.Core.HTTPClient._RESPONSE_REQUEST_ENTITY_TOO_LARGE,\n        Godot.Core.HTTPClient._METHOD_OPTIONS,\n        Godot.Core.HTTPClient._RESPONSE_NON_AUTHORITATIVE_INFORMATION,\n        Godot.Core.HTTPClient._RESPONSE_OK,\n        Godot.Core.HTTPClient._RESPONSE_NO_CONTENT,\n        Godot.Core.HTTPClient._RESPONSE_NETWORK_AUTH_REQUIRED,\n        Godot.Core.HTTPClient._RESPONSE_PERMANENT_REDIRECT,\n        Godot.Core.HTTPClient._RESPONSE_PRECONDITION_REQUIRED,\n        Godot.Core.HTTPClient._RESPONSE_LENGTH_REQUIRED,\n        Godot.Core.HTTPClient._RESPONSE_UNAVAILABLE_FOR_LEGAL_REASONS,\n        Godot.Core.HTTPClient._RESPONSE_INTERNAL_SERVER_ERROR,\n        Godot.Core.HTTPClient._RESPONSE_REQUEST_TIMEOUT,\n        Godot.Core.HTTPClient._METHOD_TRACE,\n        Godot.Core.HTTPClient._RESPONSE_LOOP_DETECTED,\n        Godot.Core.HTTPClient._RESPONSE_MISDIRECTED_REQUEST,\n        Godot.Core.HTTPClient._METHOD_DELETE,\n        Godot.Core.HTTPClient._RESPONSE_TOO_MANY_REQUESTS,\n        Godot.Core.HTTPClient._RESPONSE_NOT_EXTENDED,\n        Godot.Core.HTTPClient._METHOD_PUT,\n        Godot.Core.HTTPClient._RESPONSE_MOVED_PERMANENTLY,\n        Godot.Core.HTTPClient._RESPONSE_NOT_ACCEPTABLE,\n        Godot.Core.HTTPClient._RESPONSE_SERVICE_UNAVAILABLE,\n        Godot.Core.HTTPClient._RESPONSE_BAD_GATEWAY,\n        Godot.Core.HTTPClient._METHOD_MAX,\n        Godot.Core.HTTPClient._RESPONSE_RESET_CONTENT,\n        Godot.Core.HTTPClient._RESPONSE_VARIANT_ALSO_NEGOTIATES,\n        Godot.Core.HTTPClient._RESPONSE_PROCESSING,\n        Godot.Core.HTTPClient._RESPONSE_UPGRADE_REQUIRED,\n        Godot.Core.HTTPClient._RESPONSE_EXPECTATION_FAILED,\n        Godot.Core.HTTPClient._RESPONSE_UNPROCESSABLE_ENTITY,\n        Godot.Core.HTTPClient._RESPONSE_REQUEST_HEADER_FIELDS_TOO_LARGE,\n        Godot.Core.HTTPClient._STATUS_REQUESTING,\n        Godot.Core.HTTPClient._RESPONSE_IM_A_TEAPOT,\n        Godot.Core.HTTPClient._RESPONSE_FOUND,\n        Godot.Core.HTTPClient._STATUS_DISCONNECTED,\n        Godot.Core.HTTPClient._RESPONSE_HTTP_VERSION_NOT_SUPPORTED,\n        Godot.Core.HTTPClient._RESPONSE_CONTINUE,\n        Godot.Core.HTTPClient._RESPONSE_ACCEPTED,\n        Godot.Core.HTTPClient._RESPONSE_IM_USED,\n        Godot.Core.HTTPClient._RESPONSE_REQUESTED_RANGE_NOT_SATISFIABLE,\n        Godot.Core.HTTPClient._STATUS_SSL_HANDSHAKE_ERROR,\n        Godot.Core.HTTPClient._METHOD_HEAD,\n        Godot.Core.HTTPClient._RESPONSE_UNAUTHORIZED,\n        Godot.Core.HTTPClient._RESPONSE_NOT_FOUND,\n        Godot.Core.HTTPClient._RESPONSE_PAYMENT_REQUIRED,\n        Godot.Core.HTTPClient._METHOD_POST,\n        Godot.Core.HTTPClient._RESPONSE_GATEWAY_TIMEOUT,\n        Godot.Core.HTTPClient._RESPONSE_MULTIPLE_CHOICES,\n        Godot.Core.HTTPClient._STATUS_BODY,\n        Godot.Core.HTTPClient._RESPONSE_METHOD_NOT_ALLOWED,\n        Godot.Core.HTTPClient._RESPONSE_MULTI_STATUS,\n        Godot.Core.HTTPClient._RESPONSE_LOCKED,\n        Godot.Core.HTTPClient._METHOD_CONNECT,\n        Godot.Core.HTTPClient._METHOD_PATCH,\n        Godot.Core.HTTPClient._METHOD_GET,\n        Godot.Core.HTTPClient._RESPONSE_PROXY_AUTHENTICATION_REQUIRED,\n        Godot.Core.HTTPClient._RESPONSE_PARTIAL_CONTENT,\n        Godot.Core.HTTPClient.close, Godot.Core.HTTPClient.connect_to_host,\n        Godot.Core.HTTPClient.get_connection,\n        Godot.Core.HTTPClient.get_read_chunk_size,\n        Godot.Core.HTTPClient.get_response_body_length,\n        Godot.Core.HTTPClient.get_response_code,\n        Godot.Core.HTTPClient.get_response_headers,\n        Godot.Core.HTTPClient.get_response_headers_as_dictionary,\n        Godot.Core.HTTPClient.get_status,\n        Godot.Core.HTTPClient.has_response,\n        Godot.Core.HTTPClient.is_blocking_mode_enabled,\n        Godot.Core.HTTPClient.is_response_chunked,\n        Godot.Core.HTTPClient.poll,\n        Godot.Core.HTTPClient.query_string_from_dict,\n        Godot.Core.HTTPClient.read_response_body_chunk,\n        Godot.Core.HTTPClient.request, Godot.Core.HTTPClient.request_raw,\n        Godot.Core.HTTPClient.set_blocking_mode,\n        Godot.Core.HTTPClient.set_connection,\n        Godot.Core.HTTPClient.set_read_chunk_size)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n_STATUS_CONNECTED :: Int\n_STATUS_CONNECTED = 5\n\n_RESPONSE_CREATED :: Int\n_RESPONSE_CREATED = 201\n\n_RESPONSE_SWITCHING_PROTOCOLS :: Int\n_RESPONSE_SWITCHING_PROTOCOLS = 101\n\n_RESPONSE_PRECONDITION_FAILED :: Int\n_RESPONSE_PRECONDITION_FAILED = 412\n\n_RESPONSE_USE_PROXY :: Int\n_RESPONSE_USE_PROXY = 305\n\n_RESPONSE_SEE_OTHER :: Int\n_RESPONSE_SEE_OTHER = 303\n\n_RESPONSE_FAILED_DEPENDENCY :: Int\n_RESPONSE_FAILED_DEPENDENCY = 424\n\n_RESPONSE_GONE :: Int\n_RESPONSE_GONE = 410\n\n_RESPONSE_FORBIDDEN :: Int\n_RESPONSE_FORBIDDEN = 403\n\n_RESPONSE_INSUFFICIENT_STORAGE :: Int\n_RESPONSE_INSUFFICIENT_STORAGE = 507\n\n_RESPONSE_NOT_MODIFIED :: Int\n_RESPONSE_NOT_MODIFIED = 304\n\n_RESPONSE_CONFLICT :: Int\n_RESPONSE_CONFLICT = 409\n\n_RESPONSE_REQUEST_URI_TOO_LONG :: Int\n_RESPONSE_REQUEST_URI_TOO_LONG = 414\n\n_STATUS_RESOLVING :: Int\n_STATUS_RESOLVING = 1\n\n_STATUS_CONNECTION_ERROR :: Int\n_STATUS_CONNECTION_ERROR = 8\n\n_RESPONSE_ALREADY_REPORTED :: Int\n_RESPONSE_ALREADY_REPORTED = 208\n\n_RESPONSE_TEMPORARY_REDIRECT :: Int\n_RESPONSE_TEMPORARY_REDIRECT = 307\n\n_STATUS_CANT_CONNECT :: Int\n_STATUS_CANT_CONNECT = 4\n\n_STATUS_CONNECTING :: Int\n_STATUS_CONNECTING = 3\n\n_RESPONSE_BAD_REQUEST :: Int\n_RESPONSE_BAD_REQUEST = 400\n\n_RESPONSE_UNSUPPORTED_MEDIA_TYPE :: Int\n_RESPONSE_UNSUPPORTED_MEDIA_TYPE = 415\n\n_RESPONSE_SWITCH_PROXY :: Int\n_RESPONSE_SWITCH_PROXY = 306\n\n_STATUS_CANT_RESOLVE :: Int\n_STATUS_CANT_RESOLVE = 2\n\n_RESPONSE_NOT_IMPLEMENTED :: Int\n_RESPONSE_NOT_IMPLEMENTED = 501\n\n_RESPONSE_REQUEST_ENTITY_TOO_LARGE :: Int\n_RESPONSE_REQUEST_ENTITY_TOO_LARGE = 413\n\n_METHOD_OPTIONS :: Int\n_METHOD_OPTIONS = 5\n\n_RESPONSE_NON_AUTHORITATIVE_INFORMATION :: Int\n_RESPONSE_NON_AUTHORITATIVE_INFORMATION = 203\n\n_RESPONSE_OK :: Int\n_RESPONSE_OK = 200\n\n_RESPONSE_NO_CONTENT :: Int\n_RESPONSE_NO_CONTENT = 204\n\n_RESPONSE_NETWORK_AUTH_REQUIRED :: Int\n_RESPONSE_NETWORK_AUTH_REQUIRED = 511\n\n_RESPONSE_PERMANENT_REDIRECT :: Int\n_RESPONSE_PERMANENT_REDIRECT = 308\n\n_RESPONSE_PRECONDITION_REQUIRED :: Int\n_RESPONSE_PRECONDITION_REQUIRED = 428\n\n_RESPONSE_LENGTH_REQUIRED :: Int\n_RESPONSE_LENGTH_REQUIRED = 411\n\n_RESPONSE_UNAVAILABLE_FOR_LEGAL_REASONS :: Int\n_RESPONSE_UNAVAILABLE_FOR_LEGAL_REASONS = 451\n\n_RESPONSE_INTERNAL_SERVER_ERROR :: Int\n_RESPONSE_INTERNAL_SERVER_ERROR = 500\n\n_RESPONSE_REQUEST_TIMEOUT :: Int\n_RESPONSE_REQUEST_TIMEOUT = 408\n\n_METHOD_TRACE :: Int\n_METHOD_TRACE = 6\n\n_RESPONSE_LOOP_DETECTED :: Int\n_RESPONSE_LOOP_DETECTED = 508\n\n_RESPONSE_MISDIRECTED_REQUEST :: Int\n_RESPONSE_MISDIRECTED_REQUEST = 421\n\n_METHOD_DELETE :: Int\n_METHOD_DELETE = 4\n\n_RESPONSE_TOO_MANY_REQUESTS :: Int\n_RESPONSE_TOO_MANY_REQUESTS = 429\n\n_RESPONSE_NOT_EXTENDED :: Int\n_RESPONSE_NOT_EXTENDED = 510\n\n_METHOD_PUT :: Int\n_METHOD_PUT = 3\n\n_RESPONSE_MOVED_PERMANENTLY :: Int\n_RESPONSE_MOVED_PERMANENTLY = 301\n\n_RESPONSE_NOT_ACCEPTABLE :: Int\n_RESPONSE_NOT_ACCEPTABLE = 406\n\n_RESPONSE_SERVICE_UNAVAILABLE :: Int\n_RESPONSE_SERVICE_UNAVAILABLE = 503\n\n_RESPONSE_BAD_GATEWAY :: Int\n_RESPONSE_BAD_GATEWAY = 502\n\n_METHOD_MAX :: Int\n_METHOD_MAX = 9\n\n_RESPONSE_RESET_CONTENT :: Int\n_RESPONSE_RESET_CONTENT = 205\n\n_RESPONSE_VARIANT_ALSO_NEGOTIATES :: Int\n_RESPONSE_VARIANT_ALSO_NEGOTIATES = 506\n\n_RESPONSE_PROCESSING :: Int\n_RESPONSE_PROCESSING = 102\n\n_RESPONSE_UPGRADE_REQUIRED :: Int\n_RESPONSE_UPGRADE_REQUIRED = 426\n\n_RESPONSE_EXPECTATION_FAILED :: Int\n_RESPONSE_EXPECTATION_FAILED = 417\n\n_RESPONSE_UNPROCESSABLE_ENTITY :: Int\n_RESPONSE_UNPROCESSABLE_ENTITY = 422\n\n_RESPONSE_REQUEST_HEADER_FIELDS_TOO_LARGE :: Int\n_RESPONSE_REQUEST_HEADER_FIELDS_TOO_LARGE = 431\n\n_STATUS_REQUESTING :: Int\n_STATUS_REQUESTING = 6\n\n_RESPONSE_IM_A_TEAPOT :: Int\n_RESPONSE_IM_A_TEAPOT = 418\n\n_RESPONSE_FOUND :: Int\n_RESPONSE_FOUND = 302\n\n_STATUS_DISCONNECTED :: Int\n_STATUS_DISCONNECTED = 0\n\n_RESPONSE_HTTP_VERSION_NOT_SUPPORTED :: Int\n_RESPONSE_HTTP_VERSION_NOT_SUPPORTED = 505\n\n_RESPONSE_CONTINUE :: Int\n_RESPONSE_CONTINUE = 100\n\n_RESPONSE_ACCEPTED :: Int\n_RESPONSE_ACCEPTED = 202\n\n_RESPONSE_IM_USED :: Int\n_RESPONSE_IM_USED = 226\n\n_RESPONSE_REQUESTED_RANGE_NOT_SATISFIABLE :: Int\n_RESPONSE_REQUESTED_RANGE_NOT_SATISFIABLE = 416\n\n_STATUS_SSL_HANDSHAKE_ERROR :: Int\n_STATUS_SSL_HANDSHAKE_ERROR = 9\n\n_METHOD_HEAD :: Int\n_METHOD_HEAD = 1\n\n_RESPONSE_UNAUTHORIZED :: Int\n_RESPONSE_UNAUTHORIZED = 401\n\n_RESPONSE_NOT_FOUND :: Int\n_RESPONSE_NOT_FOUND = 404\n\n_RESPONSE_PAYMENT_REQUIRED :: Int\n_RESPONSE_PAYMENT_REQUIRED = 402\n\n_METHOD_POST :: Int\n_METHOD_POST = 2\n\n_RESPONSE_GATEWAY_TIMEOUT :: Int\n_RESPONSE_GATEWAY_TIMEOUT = 504\n\n_RESPONSE_MULTIPLE_CHOICES :: Int\n_RESPONSE_MULTIPLE_CHOICES = 300\n\n_STATUS_BODY :: Int\n_STATUS_BODY = 7\n\n_RESPONSE_METHOD_NOT_ALLOWED :: Int\n_RESPONSE_METHOD_NOT_ALLOWED = 405\n\n_RESPONSE_MULTI_STATUS :: Int\n_RESPONSE_MULTI_STATUS = 207\n\n_RESPONSE_LOCKED :: Int\n_RESPONSE_LOCKED = 423\n\n_METHOD_CONNECT :: Int\n_METHOD_CONNECT = 7\n\n_METHOD_PATCH :: Int\n_METHOD_PATCH = 8\n\n_METHOD_GET :: Int\n_METHOD_GET = 0\n\n_RESPONSE_PROXY_AUTHENTICATION_REQUIRED :: Int\n_RESPONSE_PROXY_AUTHENTICATION_REQUIRED = 407\n\n_RESPONSE_PARTIAL_CONTENT :: Int\n_RESPONSE_PARTIAL_CONTENT = 206\n\ninstance NodeProperty HTTPClient \"blocking_mode_enabled\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_blocking_mode_enabled, wrapDroppingSetter set_blocking_mode,\n             Nothing)\n\ninstance NodeProperty HTTPClient \"connection\" StreamPeer 'False\n         where\n        nodeProperty\n          = (get_connection, wrapDroppingSetter set_connection, Nothing)\n\ninstance NodeProperty HTTPClient \"read_chunk_size\" Int 'False where\n        nodeProperty\n          = (get_read_chunk_size, wrapDroppingSetter set_read_chunk_size,\n             Nothing)\n\n{-# NOINLINE bindHTTPClient_close #-}\n\n-- | Closes the current connection, allowing reuse of this @HTTPClient@.\nbindHTTPClient_close :: MethodBind\nbindHTTPClient_close\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"close\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Closes the current connection, allowing reuse of this @HTTPClient@.\nclose :: (HTTPClient :< cls, Object :< cls) => cls -> IO ()\nclose cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_close (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"close\" '[] (IO ()) where\n        nodeMethod = Godot.Core.HTTPClient.close\n\n{-# NOINLINE bindHTTPClient_connect_to_host #-}\n\n-- | Connects to a host. This needs to be done before any requests are sent.\n--   \t\t\t\tThe host should not have http:// prepended but will strip the protocol identifier if provided.\n--   \t\t\t\tIf no @port@ is specified (or @-1@ is used), it is automatically set to 80 for HTTP and 443 for HTTPS (if @use_ssl@ is enabled).\n--   \t\t\t\t@verify_host@ will check the SSL identity of the host if set to @true@.\nbindHTTPClient_connect_to_host :: MethodBind\nbindHTTPClient_connect_to_host\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"connect_to_host\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Connects to a host. This needs to be done before any requests are sent.\n--   \t\t\t\tThe host should not have http:// prepended but will strip the protocol identifier if provided.\n--   \t\t\t\tIf no @port@ is specified (or @-1@ is used), it is automatically set to 80 for HTTP and 443 for HTTPS (if @use_ssl@ is enabled).\n--   \t\t\t\t@verify_host@ will check the SSL identity of the host if set to @true@.\nconnect_to_host ::\n                  (HTTPClient :< cls, Object :< cls) =>\n                  cls ->\n                    GodotString -> Maybe Int -> Maybe Bool -> Maybe Bool -> IO Int\nconnect_to_host cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (-1)) toVariant arg2,\n       maybe (VariantBool False) toVariant arg3,\n       maybe (VariantBool True) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_connect_to_host (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"connect_to_host\"\n           '[GodotString, Maybe Int, Maybe Bool, Maybe Bool]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.HTTPClient.connect_to_host\n\n{-# NOINLINE bindHTTPClient_get_connection #-}\n\n-- | The connection to use for this client.\nbindHTTPClient_get_connection :: MethodBind\nbindHTTPClient_get_connection\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The connection to use for this client.\nget_connection ::\n                 (HTTPClient :< cls, Object :< cls) => cls -> IO StreamPeer\nget_connection cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_get_connection (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"get_connection\" '[] (IO StreamPeer)\n         where\n        nodeMethod = Godot.Core.HTTPClient.get_connection\n\n{-# NOINLINE bindHTTPClient_get_read_chunk_size #-}\n\n-- | The size of the buffer used and maximum bytes to read per iteration. See @method read_response_body_chunk@.\nbindHTTPClient_get_read_chunk_size :: MethodBind\nbindHTTPClient_get_read_chunk_size\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"get_read_chunk_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size of the buffer used and maximum bytes to read per iteration. See @method read_response_body_chunk@.\nget_read_chunk_size ::\n                      (HTTPClient :< cls, Object :< cls) => cls -> IO Int\nget_read_chunk_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_get_read_chunk_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"get_read_chunk_size\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.HTTPClient.get_read_chunk_size\n\n{-# NOINLINE bindHTTPClient_get_response_body_length #-}\n\n-- | Returns the response's body length.\n--   \t\t\t\t__Note:__ Some Web servers may not send a body length. In this case, the value returned will be @-1@. If using chunked transfer encoding, the body length will also be @-1@.\nbindHTTPClient_get_response_body_length :: MethodBind\nbindHTTPClient_get_response_body_length\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"get_response_body_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the response's body length.\n--   \t\t\t\t__Note:__ Some Web servers may not send a body length. In this case, the value returned will be @-1@. If using chunked transfer encoding, the body length will also be @-1@.\nget_response_body_length ::\n                           (HTTPClient :< cls, Object :< cls) => cls -> IO Int\nget_response_body_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_get_response_body_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"get_response_body_length\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.HTTPClient.get_response_body_length\n\n{-# NOINLINE bindHTTPClient_get_response_code #-}\n\n-- | Returns the response's HTTP status code.\nbindHTTPClient_get_response_code :: MethodBind\nbindHTTPClient_get_response_code\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"get_response_code\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the response's HTTP status code.\nget_response_code ::\n                    (HTTPClient :< cls, Object :< cls) => cls -> IO Int\nget_response_code cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_get_response_code\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"get_response_code\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.HTTPClient.get_response_code\n\n{-# NOINLINE bindHTTPClient_get_response_headers #-}\n\n-- | Returns the response headers.\nbindHTTPClient_get_response_headers :: MethodBind\nbindHTTPClient_get_response_headers\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"get_response_headers\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the response headers.\nget_response_headers ::\n                       (HTTPClient :< cls, Object :< cls) => cls -> IO PoolStringArray\nget_response_headers cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_get_response_headers\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"get_response_headers\" '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.HTTPClient.get_response_headers\n\n{-# NOINLINE bindHTTPClient_get_response_headers_as_dictionary #-}\n\n-- | Returns all response headers as a Dictionary of structure @{ \"key\": \"value1; value2\" }@ where the case-sensitivity of the keys and values is kept like the server delivers it. A value is a simple String, this string can have more than one value where \"; \" is used as separator.\n--   \t\t\t\t__Example:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t{\n--   \t\t\t\t    \"content-length\": 12,\n--   \t\t\t\t    \"Content-Type\": \"application/json; charset=UTF-8\",\n--   \t\t\t\t}\n--   \t\t\t\t\n--   @\nbindHTTPClient_get_response_headers_as_dictionary :: MethodBind\nbindHTTPClient_get_response_headers_as_dictionary\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"get_response_headers_as_dictionary\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns all response headers as a Dictionary of structure @{ \"key\": \"value1; value2\" }@ where the case-sensitivity of the keys and values is kept like the server delivers it. A value is a simple String, this string can have more than one value where \"; \" is used as separator.\n--   \t\t\t\t__Example:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t{\n--   \t\t\t\t    \"content-length\": 12,\n--   \t\t\t\t    \"Content-Type\": \"application/json; charset=UTF-8\",\n--   \t\t\t\t}\n--   \t\t\t\t\n--   @\nget_response_headers_as_dictionary ::\n                                     (HTTPClient :< cls, Object :< cls) => cls -> IO Dictionary\nget_response_headers_as_dictionary cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindHTTPClient_get_response_headers_as_dictionary\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"get_response_headers_as_dictionary\"\n           '[]\n           (IO Dictionary)\n         where\n        nodeMethod\n          = Godot.Core.HTTPClient.get_response_headers_as_dictionary\n\n{-# NOINLINE bindHTTPClient_get_status #-}\n\n-- | Returns a @enum Status@ constant. Need to call @method poll@ in order to get status updates.\nbindHTTPClient_get_status :: MethodBind\nbindHTTPClient_get_status\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"get_status\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @enum Status@ constant. Need to call @method poll@ in order to get status updates.\nget_status :: (HTTPClient :< cls, Object :< cls) => cls -> IO Int\nget_status cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_get_status (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"get_status\" '[] (IO Int) where\n        nodeMethod = Godot.Core.HTTPClient.get_status\n\n{-# NOINLINE bindHTTPClient_has_response #-}\n\n-- | If @true@, this @HTTPClient@ has a response available.\nbindHTTPClient_has_response :: MethodBind\nbindHTTPClient_has_response\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"has_response\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this @HTTPClient@ has a response available.\nhas_response ::\n               (HTTPClient :< cls, Object :< cls) => cls -> IO Bool\nhas_response cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_has_response (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"has_response\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.HTTPClient.has_response\n\n{-# NOINLINE bindHTTPClient_is_blocking_mode_enabled #-}\n\n-- | If @true@, execution will block until all data is read from the response.\nbindHTTPClient_is_blocking_mode_enabled :: MethodBind\nbindHTTPClient_is_blocking_mode_enabled\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"is_blocking_mode_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, execution will block until all data is read from the response.\nis_blocking_mode_enabled ::\n                           (HTTPClient :< cls, Object :< cls) => cls -> IO Bool\nis_blocking_mode_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_is_blocking_mode_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"is_blocking_mode_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.HTTPClient.is_blocking_mode_enabled\n\n{-# NOINLINE bindHTTPClient_is_response_chunked #-}\n\n-- | If @true@, this @HTTPClient@ has a response that is chunked.\nbindHTTPClient_is_response_chunked :: MethodBind\nbindHTTPClient_is_response_chunked\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"is_response_chunked\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this @HTTPClient@ has a response that is chunked.\nis_response_chunked ::\n                      (HTTPClient :< cls, Object :< cls) => cls -> IO Bool\nis_response_chunked cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_is_response_chunked\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"is_response_chunked\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.HTTPClient.is_response_chunked\n\n{-# NOINLINE bindHTTPClient_poll #-}\n\n-- | This needs to be called in order to have any request processed. Check results with @method get_status@.\nbindHTTPClient_poll :: MethodBind\nbindHTTPClient_poll\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"poll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This needs to be called in order to have any request processed. Check results with @method get_status@.\npoll :: (HTTPClient :< cls, Object :< cls) => cls -> IO Int\npoll cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_poll (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"poll\" '[] (IO Int) where\n        nodeMethod = Godot.Core.HTTPClient.poll\n\n{-# NOINLINE bindHTTPClient_query_string_from_dict #-}\n\n-- | Generates a GET/POST application/x-www-form-urlencoded style query string from a provided dictionary, e.g.:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar fields = {\"username\": \"user\", \"password\": \"pass\"}\n--   \t\t\t\tvar query_string = http_client.query_string_from_dict(fields)\n--   \t\t\t\t# Returns \"username=user&password=pass\"\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tFurthermore, if a key has a @null@ value, only the key itself is added, without equal sign and value. If the value is an array, for each value in it a pair with the same key is added.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar fields = {\"single\": 123, \"not_valued\": null, \"multiple\": @22, 33, 44@}\n--   \t\t\t\tvar query_string = http_client.query_string_from_dict(fields)\n--   \t\t\t\t# Returns \"single=123&not_valued&multiple=22&multiple=33&multiple=44\"\n--   \t\t\t\t\n--   @\nbindHTTPClient_query_string_from_dict :: MethodBind\nbindHTTPClient_query_string_from_dict\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"query_string_from_dict\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Generates a GET/POST application/x-www-form-urlencoded style query string from a provided dictionary, e.g.:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar fields = {\"username\": \"user\", \"password\": \"pass\"}\n--   \t\t\t\tvar query_string = http_client.query_string_from_dict(fields)\n--   \t\t\t\t# Returns \"username=user&password=pass\"\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tFurthermore, if a key has a @null@ value, only the key itself is added, without equal sign and value. If the value is an array, for each value in it a pair with the same key is added.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar fields = {\"single\": 123, \"not_valued\": null, \"multiple\": @22, 33, 44@}\n--   \t\t\t\tvar query_string = http_client.query_string_from_dict(fields)\n--   \t\t\t\t# Returns \"single=123&not_valued&multiple=22&multiple=33&multiple=44\"\n--   \t\t\t\t\n--   @\nquery_string_from_dict ::\n                         (HTTPClient :< cls, Object :< cls) =>\n                         cls -> Dictionary -> IO GodotString\nquery_string_from_dict cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_query_string_from_dict\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"query_string_from_dict\"\n           '[Dictionary]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.HTTPClient.query_string_from_dict\n\n{-# NOINLINE bindHTTPClient_read_response_body_chunk #-}\n\n-- | Reads one chunk from the response.\nbindHTTPClient_read_response_body_chunk :: MethodBind\nbindHTTPClient_read_response_body_chunk\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"read_response_body_chunk\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Reads one chunk from the response.\nread_response_body_chunk ::\n                           (HTTPClient :< cls, Object :< cls) => cls -> IO PoolByteArray\nread_response_body_chunk cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_read_response_body_chunk\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"read_response_body_chunk\" '[]\n           (IO PoolByteArray)\n         where\n        nodeMethod = Godot.Core.HTTPClient.read_response_body_chunk\n\n{-# NOINLINE bindHTTPClient_request #-}\n\n-- | Sends a request to the connected host. The URL parameter is just the part after the host, so for @http://somehost.com/index.php@, it is @index.php@.\n--   \t\t\t\tHeaders are HTTP request headers. For available HTTP methods, see @enum Method@.\n--   \t\t\t\tTo create a POST request with query strings to push to the server, do:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar fields = {\"username\" : \"user\", \"password\" : \"pass\"}\n--   \t\t\t\tvar query_string = http_client.query_string_from_dict(fields)\n--   \t\t\t\tvar headers = @\"Content-Type: application/x-www-form-urlencoded\", \"Content-Length: \" + str(query_string.length())@\n--   \t\t\t\tvar result = http_client.request(http_client.METHOD_POST, \"index.php\", headers, query_string)\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t__Note:__ The @request_data@ parameter is ignored if @method@ is @HTTPClient.METHOD_GET@. This is because GET methods can't contain request data. As a workaround, you can pass request data as a query string in the URL. See @method String.http_escape@ for an example.\nbindHTTPClient_request :: MethodBind\nbindHTTPClient_request\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"request\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sends a request to the connected host. The URL parameter is just the part after the host, so for @http://somehost.com/index.php@, it is @index.php@.\n--   \t\t\t\tHeaders are HTTP request headers. For available HTTP methods, see @enum Method@.\n--   \t\t\t\tTo create a POST request with query strings to push to the server, do:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar fields = {\"username\" : \"user\", \"password\" : \"pass\"}\n--   \t\t\t\tvar query_string = http_client.query_string_from_dict(fields)\n--   \t\t\t\tvar headers = @\"Content-Type: application/x-www-form-urlencoded\", \"Content-Length: \" + str(query_string.length())@\n--   \t\t\t\tvar result = http_client.request(http_client.METHOD_POST, \"index.php\", headers, query_string)\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t__Note:__ The @request_data@ parameter is ignored if @method@ is @HTTPClient.METHOD_GET@. This is because GET methods can't contain request data. As a workaround, you can pass request data as a query string in the URL. See @method String.http_escape@ for an example.\nrequest ::\n          (HTTPClient :< cls, Object :< cls) =>\n          cls ->\n            Int ->\n              GodotString -> PoolStringArray -> Maybe GodotString -> IO Int\nrequest cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       defaultedVariant VariantString \"\" arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_request (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"request\"\n           '[Int, GodotString, PoolStringArray, Maybe GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.HTTPClient.request\n\n{-# NOINLINE bindHTTPClient_request_raw #-}\n\n-- | Sends a raw request to the connected host. The URL parameter is just the part after the host, so for @http://somehost.com/index.php@, it is @index.php@.\n--   \t\t\t\tHeaders are HTTP request headers. For available HTTP methods, see @enum Method@.\n--   \t\t\t\tSends the body data raw, as a byte array and does not encode it in any way.\nbindHTTPClient_request_raw :: MethodBind\nbindHTTPClient_request_raw\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"request_raw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sends a raw request to the connected host. The URL parameter is just the part after the host, so for @http://somehost.com/index.php@, it is @index.php@.\n--   \t\t\t\tHeaders are HTTP request headers. For available HTTP methods, see @enum Method@.\n--   \t\t\t\tSends the body data raw, as a byte array and does not encode it in any way.\nrequest_raw ::\n              (HTTPClient :< cls, Object :< cls) =>\n              cls ->\n                Int -> GodotString -> PoolStringArray -> PoolByteArray -> IO Int\nrequest_raw cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_request_raw (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"request_raw\"\n           '[Int, GodotString, PoolStringArray, PoolByteArray]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.HTTPClient.request_raw\n\n{-# NOINLINE bindHTTPClient_set_blocking_mode #-}\n\n-- | If @true@, execution will block until all data is read from the response.\nbindHTTPClient_set_blocking_mode :: MethodBind\nbindHTTPClient_set_blocking_mode\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"set_blocking_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, execution will block until all data is read from the response.\nset_blocking_mode ::\n                    (HTTPClient :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_blocking_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_set_blocking_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"set_blocking_mode\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.HTTPClient.set_blocking_mode\n\n{-# NOINLINE bindHTTPClient_set_connection #-}\n\n-- | The connection to use for this client.\nbindHTTPClient_set_connection :: MethodBind\nbindHTTPClient_set_connection\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"set_connection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The connection to use for this client.\nset_connection ::\n                 (HTTPClient :< cls, Object :< cls) => cls -> StreamPeer -> IO ()\nset_connection cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_set_connection (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"set_connection\" '[StreamPeer]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.HTTPClient.set_connection\n\n{-# NOINLINE bindHTTPClient_set_read_chunk_size #-}\n\n-- | The size of the buffer used and maximum bytes to read per iteration. See @method read_response_body_chunk@.\nbindHTTPClient_set_read_chunk_size :: MethodBind\nbindHTTPClient_set_read_chunk_size\n  = unsafePerformIO $\n      withCString \"HTTPClient\" $\n        \\ clsNamePtr ->\n          withCString \"set_read_chunk_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size of the buffer used and maximum bytes to read per iteration. See @method read_response_body_chunk@.\nset_read_chunk_size ::\n                      (HTTPClient :< cls, Object :< cls) => cls -> Int -> IO ()\nset_read_chunk_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPClient_set_read_chunk_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPClient \"set_read_chunk_size\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.HTTPClient.set_read_chunk_size"
  },
  {
    "path": "src/Godot/Core/HTTPRequest.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.HTTPRequest\n       (Godot.Core.HTTPRequest._RESULT_DOWNLOAD_FILE_CANT_OPEN,\n        Godot.Core.HTTPRequest._RESULT_SUCCESS,\n        Godot.Core.HTTPRequest._RESULT_NO_RESPONSE,\n        Godot.Core.HTTPRequest._RESULT_REQUEST_FAILED,\n        Godot.Core.HTTPRequest._RESULT_CONNECTION_ERROR,\n        Godot.Core.HTTPRequest._RESULT_CANT_CONNECT,\n        Godot.Core.HTTPRequest._RESULT_CHUNKED_BODY_SIZE_MISMATCH,\n        Godot.Core.HTTPRequest._RESULT_BODY_SIZE_LIMIT_EXCEEDED,\n        Godot.Core.HTTPRequest._RESULT_REDIRECT_LIMIT_REACHED,\n        Godot.Core.HTTPRequest._RESULT_SSL_HANDSHAKE_ERROR,\n        Godot.Core.HTTPRequest._RESULT_CANT_RESOLVE,\n        Godot.Core.HTTPRequest._RESULT_TIMEOUT,\n        Godot.Core.HTTPRequest._RESULT_DOWNLOAD_FILE_WRITE_ERROR,\n        Godot.Core.HTTPRequest.sig_request_completed,\n        Godot.Core.HTTPRequest._redirect_request,\n        Godot.Core.HTTPRequest._request_done,\n        Godot.Core.HTTPRequest._timeout,\n        Godot.Core.HTTPRequest.cancel_request,\n        Godot.Core.HTTPRequest.get_body_size,\n        Godot.Core.HTTPRequest.get_body_size_limit,\n        Godot.Core.HTTPRequest.get_download_chunk_size,\n        Godot.Core.HTTPRequest.get_download_file,\n        Godot.Core.HTTPRequest.get_downloaded_bytes,\n        Godot.Core.HTTPRequest.get_http_client_status,\n        Godot.Core.HTTPRequest.get_max_redirects,\n        Godot.Core.HTTPRequest.get_timeout,\n        Godot.Core.HTTPRequest.is_using_threads,\n        Godot.Core.HTTPRequest.request,\n        Godot.Core.HTTPRequest.set_body_size_limit,\n        Godot.Core.HTTPRequest.set_download_chunk_size,\n        Godot.Core.HTTPRequest.set_download_file,\n        Godot.Core.HTTPRequest.set_max_redirects,\n        Godot.Core.HTTPRequest.set_timeout,\n        Godot.Core.HTTPRequest.set_use_threads)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\n_RESULT_DOWNLOAD_FILE_CANT_OPEN :: Int\n_RESULT_DOWNLOAD_FILE_CANT_OPEN = 9\n\n_RESULT_SUCCESS :: Int\n_RESULT_SUCCESS = 0\n\n_RESULT_NO_RESPONSE :: Int\n_RESULT_NO_RESPONSE = 6\n\n_RESULT_REQUEST_FAILED :: Int\n_RESULT_REQUEST_FAILED = 8\n\n_RESULT_CONNECTION_ERROR :: Int\n_RESULT_CONNECTION_ERROR = 4\n\n_RESULT_CANT_CONNECT :: Int\n_RESULT_CANT_CONNECT = 2\n\n_RESULT_CHUNKED_BODY_SIZE_MISMATCH :: Int\n_RESULT_CHUNKED_BODY_SIZE_MISMATCH = 1\n\n_RESULT_BODY_SIZE_LIMIT_EXCEEDED :: Int\n_RESULT_BODY_SIZE_LIMIT_EXCEEDED = 7\n\n_RESULT_REDIRECT_LIMIT_REACHED :: Int\n_RESULT_REDIRECT_LIMIT_REACHED = 11\n\n_RESULT_SSL_HANDSHAKE_ERROR :: Int\n_RESULT_SSL_HANDSHAKE_ERROR = 5\n\n_RESULT_CANT_RESOLVE :: Int\n_RESULT_CANT_RESOLVE = 3\n\n_RESULT_TIMEOUT :: Int\n_RESULT_TIMEOUT = 12\n\n_RESULT_DOWNLOAD_FILE_WRITE_ERROR :: Int\n_RESULT_DOWNLOAD_FILE_WRITE_ERROR = 10\n\n-- | Emitted when a request is completed.\nsig_request_completed :: Godot.Internal.Dispatch.Signal HTTPRequest\nsig_request_completed\n  = Godot.Internal.Dispatch.Signal \"request_completed\"\n\ninstance NodeSignal HTTPRequest \"request_completed\"\n           '[Int, Int, PoolStringArray, PoolByteArray]\n\ninstance NodeProperty HTTPRequest \"body_size_limit\" Int 'False\n         where\n        nodeProperty\n          = (get_body_size_limit, wrapDroppingSetter set_body_size_limit,\n             Nothing)\n\ninstance NodeProperty HTTPRequest \"download_chunk_size\" Int 'False\n         where\n        nodeProperty\n          = (get_download_chunk_size,\n             wrapDroppingSetter set_download_chunk_size, Nothing)\n\ninstance NodeProperty HTTPRequest \"download_file\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_download_file, wrapDroppingSetter set_download_file,\n             Nothing)\n\ninstance NodeProperty HTTPRequest \"max_redirects\" Int 'False where\n        nodeProperty\n          = (get_max_redirects, wrapDroppingSetter set_max_redirects,\n             Nothing)\n\ninstance NodeProperty HTTPRequest \"timeout\" Int 'False where\n        nodeProperty\n          = (get_timeout, wrapDroppingSetter set_timeout, Nothing)\n\ninstance NodeProperty HTTPRequest \"use_threads\" Bool 'False where\n        nodeProperty\n          = (is_using_threads, wrapDroppingSetter set_use_threads, Nothing)\n\n{-# NOINLINE bindHTTPRequest__redirect_request #-}\n\nbindHTTPRequest__redirect_request :: MethodBind\nbindHTTPRequest__redirect_request\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"_redirect_request\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_redirect_request ::\n                    (HTTPRequest :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_redirect_request cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest__redirect_request\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"_redirect_request\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.HTTPRequest._redirect_request\n\n{-# NOINLINE bindHTTPRequest__request_done #-}\n\nbindHTTPRequest__request_done :: MethodBind\nbindHTTPRequest__request_done\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"_request_done\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_request_done ::\n                (HTTPRequest :< cls, Object :< cls) =>\n                cls -> Int -> Int -> PoolStringArray -> PoolByteArray -> IO ()\n_request_done cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest__request_done (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"_request_done\"\n           '[Int, Int, PoolStringArray, PoolByteArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.HTTPRequest._request_done\n\n{-# NOINLINE bindHTTPRequest__timeout #-}\n\nbindHTTPRequest__timeout :: MethodBind\nbindHTTPRequest__timeout\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"_timeout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_timeout :: (HTTPRequest :< cls, Object :< cls) => cls -> IO ()\n_timeout cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest__timeout (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"_timeout\" '[] (IO ()) where\n        nodeMethod = Godot.Core.HTTPRequest._timeout\n\n{-# NOINLINE bindHTTPRequest_cancel_request #-}\n\n-- | Cancels the current request.\nbindHTTPRequest_cancel_request :: MethodBind\nbindHTTPRequest_cancel_request\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"cancel_request\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Cancels the current request.\ncancel_request ::\n                 (HTTPRequest :< cls, Object :< cls) => cls -> IO ()\ncancel_request cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest_cancel_request (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"cancel_request\" '[] (IO ()) where\n        nodeMethod = Godot.Core.HTTPRequest.cancel_request\n\n{-# NOINLINE bindHTTPRequest_get_body_size #-}\n\n-- | Returns the response body length.\n--   \t\t\t\t__Note:__ Some Web servers may not send a body length. In this case, the value returned will be @-1@. If using chunked transfer encoding, the body length will also be @-1@.\nbindHTTPRequest_get_body_size :: MethodBind\nbindHTTPRequest_get_body_size\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"get_body_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the response body length.\n--   \t\t\t\t__Note:__ Some Web servers may not send a body length. In this case, the value returned will be @-1@. If using chunked transfer encoding, the body length will also be @-1@.\nget_body_size ::\n                (HTTPRequest :< cls, Object :< cls) => cls -> IO Int\nget_body_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest_get_body_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"get_body_size\" '[] (IO Int) where\n        nodeMethod = Godot.Core.HTTPRequest.get_body_size\n\n{-# NOINLINE bindHTTPRequest_get_body_size_limit #-}\n\n-- | Maximum allowed size for response bodies.\nbindHTTPRequest_get_body_size_limit :: MethodBind\nbindHTTPRequest_get_body_size_limit\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"get_body_size_limit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum allowed size for response bodies.\nget_body_size_limit ::\n                      (HTTPRequest :< cls, Object :< cls) => cls -> IO Int\nget_body_size_limit cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest_get_body_size_limit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"get_body_size_limit\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.HTTPRequest.get_body_size_limit\n\n{-# NOINLINE bindHTTPRequest_get_download_chunk_size #-}\n\n-- | The size of the buffer used and maximum bytes to read per iteration. See @HTTPClient.read_chunk_size@.\n--   \t\t\tSet this to a higher value (e.g. 65536 for 64 KiB) when downloading large files to achieve better speeds at the cost of memory.\nbindHTTPRequest_get_download_chunk_size :: MethodBind\nbindHTTPRequest_get_download_chunk_size\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"get_download_chunk_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size of the buffer used and maximum bytes to read per iteration. See @HTTPClient.read_chunk_size@.\n--   \t\t\tSet this to a higher value (e.g. 65536 for 64 KiB) when downloading large files to achieve better speeds at the cost of memory.\nget_download_chunk_size ::\n                          (HTTPRequest :< cls, Object :< cls) => cls -> IO Int\nget_download_chunk_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest_get_download_chunk_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"get_download_chunk_size\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.HTTPRequest.get_download_chunk_size\n\n{-# NOINLINE bindHTTPRequest_get_download_file #-}\n\n-- | The file to download into. Will output any received file into it.\nbindHTTPRequest_get_download_file :: MethodBind\nbindHTTPRequest_get_download_file\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"get_download_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The file to download into. Will output any received file into it.\nget_download_file ::\n                    (HTTPRequest :< cls, Object :< cls) => cls -> IO GodotString\nget_download_file cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest_get_download_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"get_download_file\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.HTTPRequest.get_download_file\n\n{-# NOINLINE bindHTTPRequest_get_downloaded_bytes #-}\n\n-- | Returns the amount of bytes this HTTPRequest downloaded.\nbindHTTPRequest_get_downloaded_bytes :: MethodBind\nbindHTTPRequest_get_downloaded_bytes\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"get_downloaded_bytes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the amount of bytes this HTTPRequest downloaded.\nget_downloaded_bytes ::\n                       (HTTPRequest :< cls, Object :< cls) => cls -> IO Int\nget_downloaded_bytes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest_get_downloaded_bytes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"get_downloaded_bytes\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.HTTPRequest.get_downloaded_bytes\n\n{-# NOINLINE bindHTTPRequest_get_http_client_status #-}\n\n-- | Returns the current status of the underlying @HTTPClient@. See @enum HTTPClient.Status@.\nbindHTTPRequest_get_http_client_status :: MethodBind\nbindHTTPRequest_get_http_client_status\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"get_http_client_status\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current status of the underlying @HTTPClient@. See @enum HTTPClient.Status@.\nget_http_client_status ::\n                         (HTTPRequest :< cls, Object :< cls) => cls -> IO Int\nget_http_client_status cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest_get_http_client_status\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"get_http_client_status\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.HTTPRequest.get_http_client_status\n\n{-# NOINLINE bindHTTPRequest_get_max_redirects #-}\n\n-- | Maximum number of allowed redirects.\nbindHTTPRequest_get_max_redirects :: MethodBind\nbindHTTPRequest_get_max_redirects\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"get_max_redirects\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum number of allowed redirects.\nget_max_redirects ::\n                    (HTTPRequest :< cls, Object :< cls) => cls -> IO Int\nget_max_redirects cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest_get_max_redirects\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"get_max_redirects\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.HTTPRequest.get_max_redirects\n\n{-# NOINLINE bindHTTPRequest_get_timeout #-}\n\nbindHTTPRequest_get_timeout :: MethodBind\nbindHTTPRequest_get_timeout\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"get_timeout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_timeout :: (HTTPRequest :< cls, Object :< cls) => cls -> IO Int\nget_timeout cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest_get_timeout (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"get_timeout\" '[] (IO Int) where\n        nodeMethod = Godot.Core.HTTPRequest.get_timeout\n\n{-# NOINLINE bindHTTPRequest_is_using_threads #-}\n\n-- | If @true@, multithreading is used to improve performance.\nbindHTTPRequest_is_using_threads :: MethodBind\nbindHTTPRequest_is_using_threads\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_threads\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, multithreading is used to improve performance.\nis_using_threads ::\n                   (HTTPRequest :< cls, Object :< cls) => cls -> IO Bool\nis_using_threads cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest_is_using_threads\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"is_using_threads\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.HTTPRequest.is_using_threads\n\n{-# NOINLINE bindHTTPRequest_request #-}\n\n-- | Creates request on the underlying @HTTPClient@. If there is no configuration errors, it tries to connect using @method HTTPClient.connect_to_host@ and passes parameters onto @method HTTPClient.request@.\n--   \t\t\t\tReturns @OK@ if request is successfully created. (Does not imply that the server has responded), @ERR_UNCONFIGURED@ if not in the tree, @ERR_BUSY@ if still processing previous request, @ERR_INVALID_PARAMETER@ if given string is not a valid URL format, or @ERR_CANT_CONNECT@ if not using thread and the @HTTPClient@ cannot connect to host.\n--   \t\t\t\t__Note:__ The @request_data@ parameter is ignored if @method@ is @HTTPClient.METHOD_GET@. This is because GET methods can't contain request data. As a workaround, you can pass request data as a query string in the URL. See @method String.http_escape@ for an example.\nbindHTTPRequest_request :: MethodBind\nbindHTTPRequest_request\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"request\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates request on the underlying @HTTPClient@. If there is no configuration errors, it tries to connect using @method HTTPClient.connect_to_host@ and passes parameters onto @method HTTPClient.request@.\n--   \t\t\t\tReturns @OK@ if request is successfully created. (Does not imply that the server has responded), @ERR_UNCONFIGURED@ if not in the tree, @ERR_BUSY@ if still processing previous request, @ERR_INVALID_PARAMETER@ if given string is not a valid URL format, or @ERR_CANT_CONNECT@ if not using thread and the @HTTPClient@ cannot connect to host.\n--   \t\t\t\t__Note:__ The @request_data@ parameter is ignored if @method@ is @HTTPClient.METHOD_GET@. This is because GET methods can't contain request data. As a workaround, you can pass request data as a query string in the URL. See @method String.http_escape@ for an example.\nrequest ::\n          (HTTPRequest :< cls, Object :< cls) =>\n          cls ->\n            GodotString ->\n              Maybe PoolStringArray ->\n                Maybe Bool -> Maybe Int -> Maybe GodotString -> IO Int\nrequest cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1,\n       defaultedVariant VariantPoolStringArray V.empty arg2,\n       maybe (VariantBool True) toVariant arg3,\n       maybe (VariantInt (0)) toVariant arg4,\n       defaultedVariant VariantString \"\" arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest_request (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"request\"\n           '[GodotString, Maybe PoolStringArray, Maybe Bool, Maybe Int,\n             Maybe GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.HTTPRequest.request\n\n{-# NOINLINE bindHTTPRequest_set_body_size_limit #-}\n\n-- | Maximum allowed size for response bodies.\nbindHTTPRequest_set_body_size_limit :: MethodBind\nbindHTTPRequest_set_body_size_limit\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"set_body_size_limit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum allowed size for response bodies.\nset_body_size_limit ::\n                      (HTTPRequest :< cls, Object :< cls) => cls -> Int -> IO ()\nset_body_size_limit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest_set_body_size_limit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"set_body_size_limit\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.HTTPRequest.set_body_size_limit\n\n{-# NOINLINE bindHTTPRequest_set_download_chunk_size #-}\n\n-- | The size of the buffer used and maximum bytes to read per iteration. See @HTTPClient.read_chunk_size@.\n--   \t\t\tSet this to a higher value (e.g. 65536 for 64 KiB) when downloading large files to achieve better speeds at the cost of memory.\nbindHTTPRequest_set_download_chunk_size :: MethodBind\nbindHTTPRequest_set_download_chunk_size\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"set_download_chunk_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size of the buffer used and maximum bytes to read per iteration. See @HTTPClient.read_chunk_size@.\n--   \t\t\tSet this to a higher value (e.g. 65536 for 64 KiB) when downloading large files to achieve better speeds at the cost of memory.\nset_download_chunk_size ::\n                          (HTTPRequest :< cls, Object :< cls) => cls -> Int -> IO ()\nset_download_chunk_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest_set_download_chunk_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"set_download_chunk_size\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.HTTPRequest.set_download_chunk_size\n\n{-# NOINLINE bindHTTPRequest_set_download_file #-}\n\n-- | The file to download into. Will output any received file into it.\nbindHTTPRequest_set_download_file :: MethodBind\nbindHTTPRequest_set_download_file\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"set_download_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The file to download into. Will output any received file into it.\nset_download_file ::\n                    (HTTPRequest :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_download_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest_set_download_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"set_download_file\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.HTTPRequest.set_download_file\n\n{-# NOINLINE bindHTTPRequest_set_max_redirects #-}\n\n-- | Maximum number of allowed redirects.\nbindHTTPRequest_set_max_redirects :: MethodBind\nbindHTTPRequest_set_max_redirects\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"set_max_redirects\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum number of allowed redirects.\nset_max_redirects ::\n                    (HTTPRequest :< cls, Object :< cls) => cls -> Int -> IO ()\nset_max_redirects cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest_set_max_redirects\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"set_max_redirects\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.HTTPRequest.set_max_redirects\n\n{-# NOINLINE bindHTTPRequest_set_timeout #-}\n\nbindHTTPRequest_set_timeout :: MethodBind\nbindHTTPRequest_set_timeout\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"set_timeout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_timeout ::\n              (HTTPRequest :< cls, Object :< cls) => cls -> Int -> IO ()\nset_timeout cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest_set_timeout (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"set_timeout\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.HTTPRequest.set_timeout\n\n{-# NOINLINE bindHTTPRequest_set_use_threads #-}\n\n-- | If @true@, multithreading is used to improve performance.\nbindHTTPRequest_set_use_threads :: MethodBind\nbindHTTPRequest_set_use_threads\n  = unsafePerformIO $\n      withCString \"HTTPRequest\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_threads\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, multithreading is used to improve performance.\nset_use_threads ::\n                  (HTTPRequest :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_threads cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHTTPRequest_set_use_threads (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HTTPRequest \"set_use_threads\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.HTTPRequest.set_use_threads"
  },
  {
    "path": "src/Godot/Core/HashingContext.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.HashingContext\n       (Godot.Core.HashingContext._HASH_SHA1,\n        Godot.Core.HashingContext._HASH_MD5,\n        Godot.Core.HashingContext._HASH_SHA256,\n        Godot.Core.HashingContext.finish, Godot.Core.HashingContext.start,\n        Godot.Core.HashingContext.update)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n_HASH_SHA1 :: Int\n_HASH_SHA1 = 1\n\n_HASH_MD5 :: Int\n_HASH_MD5 = 0\n\n_HASH_SHA256 :: Int\n_HASH_SHA256 = 2\n\n{-# NOINLINE bindHashingContext_finish #-}\n\n-- | Closes the current context, and return the computed hash.\nbindHashingContext_finish :: MethodBind\nbindHashingContext_finish\n  = unsafePerformIO $\n      withCString \"HashingContext\" $\n        \\ clsNamePtr ->\n          withCString \"finish\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Closes the current context, and return the computed hash.\nfinish ::\n         (HashingContext :< cls, Object :< cls) => cls -> IO PoolByteArray\nfinish cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHashingContext_finish (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HashingContext \"finish\" '[] (IO PoolByteArray)\n         where\n        nodeMethod = Godot.Core.HashingContext.finish\n\n{-# NOINLINE bindHashingContext_start #-}\n\n-- | Starts a new hash computation of the given @type@ (e.g. @HASH_SHA256@ to start computation of a SHA-256).\nbindHashingContext_start :: MethodBind\nbindHashingContext_start\n  = unsafePerformIO $\n      withCString \"HashingContext\" $\n        \\ clsNamePtr ->\n          withCString \"start\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Starts a new hash computation of the given @type@ (e.g. @HASH_SHA256@ to start computation of a SHA-256).\nstart ::\n        (HashingContext :< cls, Object :< cls) => cls -> Int -> IO Int\nstart cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHashingContext_start (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HashingContext \"start\" '[Int] (IO Int) where\n        nodeMethod = Godot.Core.HashingContext.start\n\n{-# NOINLINE bindHashingContext_update #-}\n\n-- | Updates the computation with the given @chunk@ of data.\nbindHashingContext_update :: MethodBind\nbindHashingContext_update\n  = unsafePerformIO $\n      withCString \"HashingContext\" $\n        \\ clsNamePtr ->\n          withCString \"update\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Updates the computation with the given @chunk@ of data.\nupdate ::\n         (HashingContext :< cls, Object :< cls) =>\n         cls -> PoolByteArray -> IO Int\nupdate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHashingContext_update (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HashingContext \"update\" '[PoolByteArray]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.HashingContext.update"
  },
  {
    "path": "src/Godot/Core/HeightMapShape.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.HeightMapShape\n       (Godot.Core.HeightMapShape.get_map_data,\n        Godot.Core.HeightMapShape.get_map_depth,\n        Godot.Core.HeightMapShape.get_map_width,\n        Godot.Core.HeightMapShape.set_map_data,\n        Godot.Core.HeightMapShape.set_map_depth,\n        Godot.Core.HeightMapShape.set_map_width)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Shape()\n\ninstance NodeProperty HeightMapShape \"map_data\" PoolRealArray\n           'False\n         where\n        nodeProperty\n          = (get_map_data, wrapDroppingSetter set_map_data, Nothing)\n\ninstance NodeProperty HeightMapShape \"map_depth\" Int 'False where\n        nodeProperty\n          = (get_map_depth, wrapDroppingSetter set_map_depth, Nothing)\n\ninstance NodeProperty HeightMapShape \"map_width\" Int 'False where\n        nodeProperty\n          = (get_map_width, wrapDroppingSetter set_map_width, Nothing)\n\n{-# NOINLINE bindHeightMapShape_get_map_data #-}\n\n-- | Height map data, pool array must be of @map_width@ * @map_depth@ size.\nbindHeightMapShape_get_map_data :: MethodBind\nbindHeightMapShape_get_map_data\n  = unsafePerformIO $\n      withCString \"HeightMapShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_map_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Height map data, pool array must be of @map_width@ * @map_depth@ size.\nget_map_data ::\n               (HeightMapShape :< cls, Object :< cls) => cls -> IO PoolRealArray\nget_map_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHeightMapShape_get_map_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HeightMapShape \"get_map_data\" '[]\n           (IO PoolRealArray)\n         where\n        nodeMethod = Godot.Core.HeightMapShape.get_map_data\n\n{-# NOINLINE bindHeightMapShape_get_map_depth #-}\n\n-- | Depth of the height map data. Changing this will resize the @map_data@.\nbindHeightMapShape_get_map_depth :: MethodBind\nbindHeightMapShape_get_map_depth\n  = unsafePerformIO $\n      withCString \"HeightMapShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_map_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Depth of the height map data. Changing this will resize the @map_data@.\nget_map_depth ::\n                (HeightMapShape :< cls, Object :< cls) => cls -> IO Int\nget_map_depth cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHeightMapShape_get_map_depth\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HeightMapShape \"get_map_depth\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.HeightMapShape.get_map_depth\n\n{-# NOINLINE bindHeightMapShape_get_map_width #-}\n\n-- | Width of the height map data. Changing this will resize the @map_data@.\nbindHeightMapShape_get_map_width :: MethodBind\nbindHeightMapShape_get_map_width\n  = unsafePerformIO $\n      withCString \"HeightMapShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_map_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Width of the height map data. Changing this will resize the @map_data@.\nget_map_width ::\n                (HeightMapShape :< cls, Object :< cls) => cls -> IO Int\nget_map_width cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHeightMapShape_get_map_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HeightMapShape \"get_map_width\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.HeightMapShape.get_map_width\n\n{-# NOINLINE bindHeightMapShape_set_map_data #-}\n\n-- | Height map data, pool array must be of @map_width@ * @map_depth@ size.\nbindHeightMapShape_set_map_data :: MethodBind\nbindHeightMapShape_set_map_data\n  = unsafePerformIO $\n      withCString \"HeightMapShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_map_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Height map data, pool array must be of @map_width@ * @map_depth@ size.\nset_map_data ::\n               (HeightMapShape :< cls, Object :< cls) =>\n               cls -> PoolRealArray -> IO ()\nset_map_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHeightMapShape_set_map_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HeightMapShape \"set_map_data\" '[PoolRealArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.HeightMapShape.set_map_data\n\n{-# NOINLINE bindHeightMapShape_set_map_depth #-}\n\n-- | Depth of the height map data. Changing this will resize the @map_data@.\nbindHeightMapShape_set_map_depth :: MethodBind\nbindHeightMapShape_set_map_depth\n  = unsafePerformIO $\n      withCString \"HeightMapShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_map_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Depth of the height map data. Changing this will resize the @map_data@.\nset_map_depth ::\n                (HeightMapShape :< cls, Object :< cls) => cls -> Int -> IO ()\nset_map_depth cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHeightMapShape_set_map_depth\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HeightMapShape \"set_map_depth\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.HeightMapShape.set_map_depth\n\n{-# NOINLINE bindHeightMapShape_set_map_width #-}\n\n-- | Width of the height map data. Changing this will resize the @map_data@.\nbindHeightMapShape_set_map_width :: MethodBind\nbindHeightMapShape_set_map_width\n  = unsafePerformIO $\n      withCString \"HeightMapShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_map_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Width of the height map data. Changing this will resize the @map_data@.\nset_map_width ::\n                (HeightMapShape :< cls, Object :< cls) => cls -> Int -> IO ()\nset_map_width cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHeightMapShape_set_map_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HeightMapShape \"set_map_width\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.HeightMapShape.set_map_width"
  },
  {
    "path": "src/Godot/Core/HingeJoint.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.HingeJoint\n       (Godot.Core.HingeJoint._PARAM_MOTOR_MAX_IMPULSE,\n        Godot.Core.HingeJoint._FLAG_USE_LIMIT,\n        Godot.Core.HingeJoint._PARAM_LIMIT_RELAXATION,\n        Godot.Core.HingeJoint._PARAM_LIMIT_UPPER,\n        Godot.Core.HingeJoint._PARAM_LIMIT_BIAS,\n        Godot.Core.HingeJoint._PARAM_MAX, Godot.Core.HingeJoint._FLAG_MAX,\n        Godot.Core.HingeJoint._PARAM_LIMIT_SOFTNESS,\n        Godot.Core.HingeJoint._PARAM_MOTOR_TARGET_VELOCITY,\n        Godot.Core.HingeJoint._FLAG_ENABLE_MOTOR,\n        Godot.Core.HingeJoint._PARAM_LIMIT_LOWER,\n        Godot.Core.HingeJoint._PARAM_BIAS,\n        Godot.Core.HingeJoint._get_lower_limit,\n        Godot.Core.HingeJoint._get_upper_limit,\n        Godot.Core.HingeJoint._set_lower_limit,\n        Godot.Core.HingeJoint._set_upper_limit,\n        Godot.Core.HingeJoint.get_flag, Godot.Core.HingeJoint.get_param,\n        Godot.Core.HingeJoint.set_flag, Godot.Core.HingeJoint.set_param)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Joint()\n\n_PARAM_MOTOR_MAX_IMPULSE :: Int\n_PARAM_MOTOR_MAX_IMPULSE = 7\n\n_FLAG_USE_LIMIT :: Int\n_FLAG_USE_LIMIT = 0\n\n_PARAM_LIMIT_RELAXATION :: Int\n_PARAM_LIMIT_RELAXATION = 5\n\n_PARAM_LIMIT_UPPER :: Int\n_PARAM_LIMIT_UPPER = 1\n\n_PARAM_LIMIT_BIAS :: Int\n_PARAM_LIMIT_BIAS = 3\n\n_PARAM_MAX :: Int\n_PARAM_MAX = 8\n\n_FLAG_MAX :: Int\n_FLAG_MAX = 2\n\n_PARAM_LIMIT_SOFTNESS :: Int\n_PARAM_LIMIT_SOFTNESS = 4\n\n_PARAM_MOTOR_TARGET_VELOCITY :: Int\n_PARAM_MOTOR_TARGET_VELOCITY = 6\n\n_FLAG_ENABLE_MOTOR :: Int\n_FLAG_ENABLE_MOTOR = 1\n\n_PARAM_LIMIT_LOWER :: Int\n_PARAM_LIMIT_LOWER = 2\n\n_PARAM_BIAS :: Int\n_PARAM_BIAS = 0\n\ninstance NodeProperty HingeJoint \"angular_limit/bias\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_param, wrapIndexedSetter 3 set_param,\n             Nothing)\n\ninstance NodeProperty HingeJoint \"angular_limit/enable\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_flag, wrapIndexedSetter 0 set_flag,\n             Nothing)\n\ninstance NodeProperty HingeJoint \"angular_limit/lower\" Float 'False\n         where\n        nodeProperty\n          = (_get_lower_limit, wrapDroppingSetter _set_lower_limit, Nothing)\n\ninstance NodeProperty HingeJoint \"angular_limit/relaxation\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_param, wrapIndexedSetter 5 set_param,\n             Nothing)\n\ninstance NodeProperty HingeJoint \"angular_limit/softness\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_param, wrapIndexedSetter 4 set_param,\n             Nothing)\n\ninstance NodeProperty HingeJoint \"angular_limit/upper\" Float 'False\n         where\n        nodeProperty\n          = (_get_upper_limit, wrapDroppingSetter _set_upper_limit, Nothing)\n\ninstance NodeProperty HingeJoint \"motor/enable\" Bool 'False where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_flag, wrapIndexedSetter 1 set_flag,\n             Nothing)\n\ninstance NodeProperty HingeJoint \"motor/max_impulse\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_param, wrapIndexedSetter 7 set_param,\n             Nothing)\n\ninstance NodeProperty HingeJoint \"motor/target_velocity\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_param, wrapIndexedSetter 6 set_param,\n             Nothing)\n\ninstance NodeProperty HingeJoint \"params/bias\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_param, wrapIndexedSetter 0 set_param,\n             Nothing)\n\n{-# NOINLINE bindHingeJoint__get_lower_limit #-}\n\n-- | The minimum rotation. Only active if @angular_limit/enable@ is @true@.\nbindHingeJoint__get_lower_limit :: MethodBind\nbindHingeJoint__get_lower_limit\n  = unsafePerformIO $\n      withCString \"HingeJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_get_lower_limit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum rotation. Only active if @angular_limit/enable@ is @true@.\n_get_lower_limit ::\n                   (HingeJoint :< cls, Object :< cls) => cls -> IO Float\n_get_lower_limit cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHingeJoint__get_lower_limit (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HingeJoint \"_get_lower_limit\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.HingeJoint._get_lower_limit\n\n{-# NOINLINE bindHingeJoint__get_upper_limit #-}\n\n-- | The maximum rotation. Only active if @angular_limit/enable@ is @true@.\nbindHingeJoint__get_upper_limit :: MethodBind\nbindHingeJoint__get_upper_limit\n  = unsafePerformIO $\n      withCString \"HingeJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_get_upper_limit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum rotation. Only active if @angular_limit/enable@ is @true@.\n_get_upper_limit ::\n                   (HingeJoint :< cls, Object :< cls) => cls -> IO Float\n_get_upper_limit cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHingeJoint__get_upper_limit (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HingeJoint \"_get_upper_limit\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.HingeJoint._get_upper_limit\n\n{-# NOINLINE bindHingeJoint__set_lower_limit #-}\n\n-- | The minimum rotation. Only active if @angular_limit/enable@ is @true@.\nbindHingeJoint__set_lower_limit :: MethodBind\nbindHingeJoint__set_lower_limit\n  = unsafePerformIO $\n      withCString \"HingeJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_set_lower_limit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum rotation. Only active if @angular_limit/enable@ is @true@.\n_set_lower_limit ::\n                   (HingeJoint :< cls, Object :< cls) => cls -> Float -> IO ()\n_set_lower_limit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHingeJoint__set_lower_limit (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HingeJoint \"_set_lower_limit\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.HingeJoint._set_lower_limit\n\n{-# NOINLINE bindHingeJoint__set_upper_limit #-}\n\n-- | The maximum rotation. Only active if @angular_limit/enable@ is @true@.\nbindHingeJoint__set_upper_limit :: MethodBind\nbindHingeJoint__set_upper_limit\n  = unsafePerformIO $\n      withCString \"HingeJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_set_upper_limit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum rotation. Only active if @angular_limit/enable@ is @true@.\n_set_upper_limit ::\n                   (HingeJoint :< cls, Object :< cls) => cls -> Float -> IO ()\n_set_upper_limit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHingeJoint__set_upper_limit (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HingeJoint \"_set_upper_limit\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.HingeJoint._set_upper_limit\n\n{-# NOINLINE bindHingeJoint_get_flag #-}\n\n-- | Returns the value of the specified flag.\nbindHingeJoint_get_flag :: MethodBind\nbindHingeJoint_get_flag\n  = unsafePerformIO $\n      withCString \"HingeJoint\" $\n        \\ clsNamePtr ->\n          withCString \"get_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of the specified flag.\nget_flag ::\n           (HingeJoint :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_flag cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHingeJoint_get_flag (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HingeJoint \"get_flag\" '[Int] (IO Bool) where\n        nodeMethod = Godot.Core.HingeJoint.get_flag\n\n{-# NOINLINE bindHingeJoint_get_param #-}\n\n-- | Returns the value of the specified parameter.\nbindHingeJoint_get_param :: MethodBind\nbindHingeJoint_get_param\n  = unsafePerformIO $\n      withCString \"HingeJoint\" $\n        \\ clsNamePtr ->\n          withCString \"get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of the specified parameter.\nget_param ::\n            (HingeJoint :< cls, Object :< cls) => cls -> Int -> IO Float\nget_param cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHingeJoint_get_param (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HingeJoint \"get_param\" '[Int] (IO Float) where\n        nodeMethod = Godot.Core.HingeJoint.get_param\n\n{-# NOINLINE bindHingeJoint_set_flag #-}\n\n-- | If @true@, enables the specified flag.\nbindHingeJoint_set_flag :: MethodBind\nbindHingeJoint_set_flag\n  = unsafePerformIO $\n      withCString \"HingeJoint\" $\n        \\ clsNamePtr ->\n          withCString \"set_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables the specified flag.\nset_flag ::\n           (HingeJoint :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_flag cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHingeJoint_set_flag (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HingeJoint \"set_flag\" '[Int, Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.HingeJoint.set_flag\n\n{-# NOINLINE bindHingeJoint_set_param #-}\n\n-- | Sets the value of the specified parameter.\nbindHingeJoint_set_param :: MethodBind\nbindHingeJoint_set_param\n  = unsafePerformIO $\n      withCString \"HingeJoint\" $\n        \\ clsNamePtr ->\n          withCString \"set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the value of the specified parameter.\nset_param ::\n            (HingeJoint :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\nset_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindHingeJoint_set_param (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod HingeJoint \"set_param\" '[Int, Float] (IO ())\n         where\n        nodeMethod = Godot.Core.HingeJoint.set_param"
  },
  {
    "path": "src/Godot/Core/IP.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.IP\n       (Godot.Core.IP._RESOLVER_INVALID_ID, Godot.Core.IP._TYPE_NONE,\n        Godot.Core.IP._RESOLVER_STATUS_WAITING, Godot.Core.IP._TYPE_IPV4,\n        Godot.Core.IP._RESOLVER_STATUS_ERROR,\n        Godot.Core.IP._RESOLVER_STATUS_DONE,\n        Godot.Core.IP._RESOLVER_STATUS_NONE, Godot.Core.IP._TYPE_IPV6,\n        Godot.Core.IP._RESOLVER_MAX_QUERIES, Godot.Core.IP._TYPE_ANY,\n        Godot.Core.IP.clear_cache, Godot.Core.IP.erase_resolve_item,\n        Godot.Core.IP.get_local_addresses,\n        Godot.Core.IP.get_local_interfaces,\n        Godot.Core.IP.get_resolve_item_address,\n        Godot.Core.IP.get_resolve_item_status,\n        Godot.Core.IP.resolve_hostname,\n        Godot.Core.IP.resolve_hostname_queue_item)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n_RESOLVER_INVALID_ID :: Int\n_RESOLVER_INVALID_ID = -1\n\n_TYPE_NONE :: Int\n_TYPE_NONE = 0\n\n_RESOLVER_STATUS_WAITING :: Int\n_RESOLVER_STATUS_WAITING = 1\n\n_TYPE_IPV4 :: Int\n_TYPE_IPV4 = 1\n\n_RESOLVER_STATUS_ERROR :: Int\n_RESOLVER_STATUS_ERROR = 3\n\n_RESOLVER_STATUS_DONE :: Int\n_RESOLVER_STATUS_DONE = 2\n\n_RESOLVER_STATUS_NONE :: Int\n_RESOLVER_STATUS_NONE = 0\n\n_TYPE_IPV6 :: Int\n_TYPE_IPV6 = 2\n\n_RESOLVER_MAX_QUERIES :: Int\n_RESOLVER_MAX_QUERIES = 32\n\n_TYPE_ANY :: Int\n_TYPE_ANY = 3\n\n{-# NOINLINE bindIP_clear_cache #-}\n\n-- | Removes all of a @hostname@'s cached references. If no @hostname@ is given, all cached IP addresses are removed.\nbindIP_clear_cache :: MethodBind\nbindIP_clear_cache\n  = unsafePerformIO $\n      withCString \"IP\" $\n        \\ clsNamePtr ->\n          withCString \"clear_cache\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all of a @hostname@'s cached references. If no @hostname@ is given, all cached IP addresses are removed.\nclear_cache ::\n              (IP :< cls, Object :< cls) => cls -> Maybe GodotString -> IO ()\nclear_cache cls arg1\n  = withVariantArray [defaultedVariant VariantString \"\" arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindIP_clear_cache (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod IP \"clear_cache\" '[Maybe GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.IP.clear_cache\n\n{-# NOINLINE bindIP_erase_resolve_item #-}\n\n-- | Removes a given item @id@ from the queue. This should be used to free a queue after it has completed to enable more queries to happen.\nbindIP_erase_resolve_item :: MethodBind\nbindIP_erase_resolve_item\n  = unsafePerformIO $\n      withCString \"IP\" $\n        \\ clsNamePtr ->\n          withCString \"erase_resolve_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a given item @id@ from the queue. This should be used to free a queue after it has completed to enable more queries to happen.\nerase_resolve_item ::\n                     (IP :< cls, Object :< cls) => cls -> Int -> IO ()\nerase_resolve_item cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindIP_erase_resolve_item (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod IP \"erase_resolve_item\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.IP.erase_resolve_item\n\n{-# NOINLINE bindIP_get_local_addresses #-}\n\n-- | Returns all of the user's current IPv4 and IPv6 addresses as an array.\nbindIP_get_local_addresses :: MethodBind\nbindIP_get_local_addresses\n  = unsafePerformIO $\n      withCString \"IP\" $\n        \\ clsNamePtr ->\n          withCString \"get_local_addresses\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns all of the user's current IPv4 and IPv6 addresses as an array.\nget_local_addresses ::\n                      (IP :< cls, Object :< cls) => cls -> IO Array\nget_local_addresses cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindIP_get_local_addresses (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod IP \"get_local_addresses\" '[] (IO Array) where\n        nodeMethod = Godot.Core.IP.get_local_addresses\n\n{-# NOINLINE bindIP_get_local_interfaces #-}\n\n-- | Returns all network adapters as an array.\n--   \t\t\t\tEach adapter is a dictionary of the form:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t{\n--   \t\t\t\t    \"index\": \"1\", # Interface index.\n--   \t\t\t\t    \"name\": \"eth0\", # Interface name.\n--   \t\t\t\t    \"friendly\": \"Ethernet One\", # A friendly name (might be empty).\n--   \t\t\t\t    \"addresses\": @\"192.168.1.101\"@, # An array of IP addresses associated to this interface.\n--   \t\t\t\t}\n--   \t\t\t\t\n--   @\nbindIP_get_local_interfaces :: MethodBind\nbindIP_get_local_interfaces\n  = unsafePerformIO $\n      withCString \"IP\" $\n        \\ clsNamePtr ->\n          withCString \"get_local_interfaces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns all network adapters as an array.\n--   \t\t\t\tEach adapter is a dictionary of the form:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t{\n--   \t\t\t\t    \"index\": \"1\", # Interface index.\n--   \t\t\t\t    \"name\": \"eth0\", # Interface name.\n--   \t\t\t\t    \"friendly\": \"Ethernet One\", # A friendly name (might be empty).\n--   \t\t\t\t    \"addresses\": @\"192.168.1.101\"@, # An array of IP addresses associated to this interface.\n--   \t\t\t\t}\n--   \t\t\t\t\n--   @\nget_local_interfaces ::\n                       (IP :< cls, Object :< cls) => cls -> IO Array\nget_local_interfaces cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindIP_get_local_interfaces (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod IP \"get_local_interfaces\" '[] (IO Array) where\n        nodeMethod = Godot.Core.IP.get_local_interfaces\n\n{-# NOINLINE bindIP_get_resolve_item_address #-}\n\n-- | Returns a queued hostname's IP address, given its queue @id@. Returns an empty string on error or if resolution hasn't happened yet (see @method get_resolve_item_status@).\nbindIP_get_resolve_item_address :: MethodBind\nbindIP_get_resolve_item_address\n  = unsafePerformIO $\n      withCString \"IP\" $\n        \\ clsNamePtr ->\n          withCString \"get_resolve_item_address\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a queued hostname's IP address, given its queue @id@. Returns an empty string on error or if resolution hasn't happened yet (see @method get_resolve_item_status@).\nget_resolve_item_address ::\n                           (IP :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_resolve_item_address cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindIP_get_resolve_item_address (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod IP \"get_resolve_item_address\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.IP.get_resolve_item_address\n\n{-# NOINLINE bindIP_get_resolve_item_status #-}\n\n-- | Returns a queued hostname's status as a @enum ResolverStatus@ constant, given its queue @id@.\nbindIP_get_resolve_item_status :: MethodBind\nbindIP_get_resolve_item_status\n  = unsafePerformIO $\n      withCString \"IP\" $\n        \\ clsNamePtr ->\n          withCString \"get_resolve_item_status\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a queued hostname's status as a @enum ResolverStatus@ constant, given its queue @id@.\nget_resolve_item_status ::\n                          (IP :< cls, Object :< cls) => cls -> Int -> IO Int\nget_resolve_item_status cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindIP_get_resolve_item_status (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod IP \"get_resolve_item_status\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.IP.get_resolve_item_status\n\n{-# NOINLINE bindIP_resolve_hostname #-}\n\n-- | Returns a given hostname's IPv4 or IPv6 address when resolved (blocking-type method). The address type returned depends on the @enum Type@ constant given as @ip_type@.\nbindIP_resolve_hostname :: MethodBind\nbindIP_resolve_hostname\n  = unsafePerformIO $\n      withCString \"IP\" $\n        \\ clsNamePtr ->\n          withCString \"resolve_hostname\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a given hostname's IPv4 or IPv6 address when resolved (blocking-type method). The address type returned depends on the @enum Type@ constant given as @ip_type@.\nresolve_hostname ::\n                   (IP :< cls, Object :< cls) =>\n                   cls -> GodotString -> Maybe Int -> IO GodotString\nresolve_hostname cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (3)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindIP_resolve_hostname (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod IP \"resolve_hostname\" '[GodotString, Maybe Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.IP.resolve_hostname\n\n{-# NOINLINE bindIP_resolve_hostname_queue_item #-}\n\n-- | Creates a queue item to resolve a hostname to an IPv4 or IPv6 address depending on the @enum Type@ constant given as @ip_type@. Returns the queue ID if successful, or @RESOLVER_INVALID_ID@ on error.\nbindIP_resolve_hostname_queue_item :: MethodBind\nbindIP_resolve_hostname_queue_item\n  = unsafePerformIO $\n      withCString \"IP\" $\n        \\ clsNamePtr ->\n          withCString \"resolve_hostname_queue_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a queue item to resolve a hostname to an IPv4 or IPv6 address depending on the @enum Type@ constant given as @ip_type@. Returns the queue ID if successful, or @RESOLVER_INVALID_ID@ on error.\nresolve_hostname_queue_item ::\n                              (IP :< cls, Object :< cls) =>\n                              cls -> GodotString -> Maybe Int -> IO Int\nresolve_hostname_queue_item cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (3)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindIP_resolve_hostname_queue_item\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod IP \"resolve_hostname_queue_item\"\n           '[GodotString, Maybe Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.IP.resolve_hostname_queue_item"
  },
  {
    "path": "src/Godot/Core/IP_Unix.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.IP_Unix () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.IP()"
  },
  {
    "path": "src/Godot/Core/Image.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Image\n       (Godot.Core.Image._FORMAT_RGBAF, Godot.Core.Image._FORMAT_PVRTC2A,\n        Godot.Core.Image._FORMAT_ETC2_RGB8, Godot.Core.Image._FORMAT_RGF,\n        Godot.Core.Image._FORMAT_DXT3,\n        Godot.Core.Image._COMPRESS_SOURCE_GENERIC,\n        Godot.Core.Image._FORMAT_ETC2_R11S,\n        Godot.Core.Image._FORMAT_PVRTC4A,\n        Godot.Core.Image._FORMAT_RGBA4444,\n        Godot.Core.Image._FORMAT_ETC2_RG11S, Godot.Core.Image._FORMAT_RGBF,\n        Godot.Core.Image._FORMAT_MAX,\n        Godot.Core.Image._COMPRESS_SOURCE_NORMAL,\n        Godot.Core.Image._COMPRESS_ETC, Godot.Core.Image._FORMAT_RGTC_R,\n        Godot.Core.Image._COMPRESS_S3TC, Godot.Core.Image._COMPRESS_PVRTC4,\n        Godot.Core.Image._FORMAT_ETC2_RG11, Godot.Core.Image._FORMAT_ETC,\n        Godot.Core.Image._FORMAT_RGBA5551, Godot.Core.Image._COMPRESS_ETC2,\n        Godot.Core.Image._FORMAT_ETC2_R11, Godot.Core.Image._FORMAT_LA8,\n        Godot.Core.Image._FORMAT_DXT5, Godot.Core.Image._ALPHA_NONE,\n        Godot.Core.Image._MAX_HEIGHT, Godot.Core.Image._ALPHA_BIT,\n        Godot.Core.Image._FORMAT_ETC2_RGB8A1,\n        Godot.Core.Image._FORMAT_RGTC_RG,\n        Godot.Core.Image._FORMAT_BPTC_RGBF,\n        Godot.Core.Image._COMPRESS_SOURCE_SRGB,\n        Godot.Core.Image._FORMAT_RGBA8,\n        Godot.Core.Image._INTERPOLATE_NEAREST,\n        Godot.Core.Image._FORMAT_RGBAH, Godot.Core.Image._FORMAT_RGBE9995,\n        Godot.Core.Image._FORMAT_BPTC_RGBFU,\n        Godot.Core.Image._INTERPOLATE_TRILINEAR,\n        Godot.Core.Image._ALPHA_BLEND, Godot.Core.Image._FORMAT_PVRTC2,\n        Godot.Core.Image._FORMAT_DXT1, Godot.Core.Image._MAX_WIDTH,\n        Godot.Core.Image._FORMAT_ETC2_RGBA8,\n        Godot.Core.Image._FORMAT_BPTC_RGBA,\n        Godot.Core.Image._COMPRESS_PVRTC2, Godot.Core.Image._FORMAT_RF,\n        Godot.Core.Image._FORMAT_L8, Godot.Core.Image._FORMAT_RGB8,\n        Godot.Core.Image._FORMAT_RGBH, Godot.Core.Image._FORMAT_PVRTC4,\n        Godot.Core.Image._FORMAT_RH, Godot.Core.Image._FORMAT_R8,\n        Godot.Core.Image._INTERPOLATE_BILINEAR,\n        Godot.Core.Image._INTERPOLATE_CUBIC,\n        Godot.Core.Image._INTERPOLATE_LANCZOS,\n        Godot.Core.Image._FORMAT_RG8, Godot.Core.Image._FORMAT_RGH,\n        Godot.Core.Image._get_data, Godot.Core.Image._set_data,\n        Godot.Core.Image.blend_rect, Godot.Core.Image.blend_rect_mask,\n        Godot.Core.Image.blit_rect, Godot.Core.Image.blit_rect_mask,\n        Godot.Core.Image.bumpmap_to_normalmap,\n        Godot.Core.Image.clear_mipmaps, Godot.Core.Image.compress,\n        Godot.Core.Image.convert, Godot.Core.Image.copy_from,\n        Godot.Core.Image.create, Godot.Core.Image.create_from_data,\n        Godot.Core.Image.crop, Godot.Core.Image.decompress,\n        Godot.Core.Image.detect_alpha, Godot.Core.Image.expand_x2_hq2x,\n        Godot.Core.Image.fill, Godot.Core.Image.fix_alpha_edges,\n        Godot.Core.Image.flip_x, Godot.Core.Image.flip_y,\n        Godot.Core.Image.generate_mipmaps, Godot.Core.Image.get_data,\n        Godot.Core.Image.get_format, Godot.Core.Image.get_height,\n        Godot.Core.Image.get_mipmap_offset, Godot.Core.Image.get_pixel,\n        Godot.Core.Image.get_pixelv, Godot.Core.Image.get_rect,\n        Godot.Core.Image.get_size, Godot.Core.Image.get_used_rect,\n        Godot.Core.Image.get_width, Godot.Core.Image.has_mipmaps,\n        Godot.Core.Image.is_compressed, Godot.Core.Image.is_empty,\n        Godot.Core.Image.is_invisible, Godot.Core.Image.load,\n        Godot.Core.Image.load_jpg_from_buffer,\n        Godot.Core.Image.load_png_from_buffer,\n        Godot.Core.Image.load_webp_from_buffer, Godot.Core.Image.lock,\n        Godot.Core.Image.normalmap_to_xy,\n        Godot.Core.Image.premultiply_alpha, Godot.Core.Image.resize,\n        Godot.Core.Image.resize_to_po2, Godot.Core.Image.rgbe_to_srgb,\n        Godot.Core.Image.save_exr, Godot.Core.Image.save_png,\n        Godot.Core.Image.set_pixel, Godot.Core.Image.set_pixelv,\n        Godot.Core.Image.shrink_x2, Godot.Core.Image.srgb_to_linear,\n        Godot.Core.Image.unlock)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_FORMAT_RGBAF :: Int\n_FORMAT_RGBAF = 11\n\n_FORMAT_PVRTC2A :: Int\n_FORMAT_PVRTC2A = 26\n\n_FORMAT_ETC2_RGB8 :: Int\n_FORMAT_ETC2_RGB8 = 34\n\n_FORMAT_RGF :: Int\n_FORMAT_RGF = 9\n\n_FORMAT_DXT3 :: Int\n_FORMAT_DXT3 = 18\n\n_COMPRESS_SOURCE_GENERIC :: Int\n_COMPRESS_SOURCE_GENERIC = 0\n\n_FORMAT_ETC2_R11S :: Int\n_FORMAT_ETC2_R11S = 31\n\n_FORMAT_PVRTC4A :: Int\n_FORMAT_PVRTC4A = 28\n\n_FORMAT_RGBA4444 :: Int\n_FORMAT_RGBA4444 = 6\n\n_FORMAT_ETC2_RG11S :: Int\n_FORMAT_ETC2_RG11S = 33\n\n_FORMAT_RGBF :: Int\n_FORMAT_RGBF = 10\n\n_FORMAT_MAX :: Int\n_FORMAT_MAX = 37\n\n_COMPRESS_SOURCE_NORMAL :: Int\n_COMPRESS_SOURCE_NORMAL = 2\n\n_COMPRESS_ETC :: Int\n_COMPRESS_ETC = 3\n\n_FORMAT_RGTC_R :: Int\n_FORMAT_RGTC_R = 20\n\n_COMPRESS_S3TC :: Int\n_COMPRESS_S3TC = 0\n\n_COMPRESS_PVRTC4 :: Int\n_COMPRESS_PVRTC4 = 2\n\n_FORMAT_ETC2_RG11 :: Int\n_FORMAT_ETC2_RG11 = 32\n\n_FORMAT_ETC :: Int\n_FORMAT_ETC = 29\n\n_FORMAT_RGBA5551 :: Int\n_FORMAT_RGBA5551 = 7\n\n_COMPRESS_ETC2 :: Int\n_COMPRESS_ETC2 = 4\n\n_FORMAT_ETC2_R11 :: Int\n_FORMAT_ETC2_R11 = 30\n\n_FORMAT_LA8 :: Int\n_FORMAT_LA8 = 1\n\n_FORMAT_DXT5 :: Int\n_FORMAT_DXT5 = 19\n\n_ALPHA_NONE :: Int\n_ALPHA_NONE = 0\n\n_MAX_HEIGHT :: Int\n_MAX_HEIGHT = 16384\n\n_ALPHA_BIT :: Int\n_ALPHA_BIT = 1\n\n_FORMAT_ETC2_RGB8A1 :: Int\n_FORMAT_ETC2_RGB8A1 = 36\n\n_FORMAT_RGTC_RG :: Int\n_FORMAT_RGTC_RG = 21\n\n_FORMAT_BPTC_RGBF :: Int\n_FORMAT_BPTC_RGBF = 23\n\n_COMPRESS_SOURCE_SRGB :: Int\n_COMPRESS_SOURCE_SRGB = 1\n\n_FORMAT_RGBA8 :: Int\n_FORMAT_RGBA8 = 5\n\n_INTERPOLATE_NEAREST :: Int\n_INTERPOLATE_NEAREST = 0\n\n_FORMAT_RGBAH :: Int\n_FORMAT_RGBAH = 15\n\n_FORMAT_RGBE9995 :: Int\n_FORMAT_RGBE9995 = 16\n\n_FORMAT_BPTC_RGBFU :: Int\n_FORMAT_BPTC_RGBFU = 24\n\n_INTERPOLATE_TRILINEAR :: Int\n_INTERPOLATE_TRILINEAR = 3\n\n_ALPHA_BLEND :: Int\n_ALPHA_BLEND = 2\n\n_FORMAT_PVRTC2 :: Int\n_FORMAT_PVRTC2 = 25\n\n_FORMAT_DXT1 :: Int\n_FORMAT_DXT1 = 17\n\n_MAX_WIDTH :: Int\n_MAX_WIDTH = 16384\n\n_FORMAT_ETC2_RGBA8 :: Int\n_FORMAT_ETC2_RGBA8 = 35\n\n_FORMAT_BPTC_RGBA :: Int\n_FORMAT_BPTC_RGBA = 22\n\n_COMPRESS_PVRTC2 :: Int\n_COMPRESS_PVRTC2 = 1\n\n_FORMAT_RF :: Int\n_FORMAT_RF = 8\n\n_FORMAT_L8 :: Int\n_FORMAT_L8 = 0\n\n_FORMAT_RGB8 :: Int\n_FORMAT_RGB8 = 4\n\n_FORMAT_RGBH :: Int\n_FORMAT_RGBH = 14\n\n_FORMAT_PVRTC4 :: Int\n_FORMAT_PVRTC4 = 27\n\n_FORMAT_RH :: Int\n_FORMAT_RH = 12\n\n_FORMAT_R8 :: Int\n_FORMAT_R8 = 2\n\n_INTERPOLATE_BILINEAR :: Int\n_INTERPOLATE_BILINEAR = 1\n\n_INTERPOLATE_CUBIC :: Int\n_INTERPOLATE_CUBIC = 2\n\n_INTERPOLATE_LANCZOS :: Int\n_INTERPOLATE_LANCZOS = 4\n\n_FORMAT_RG8 :: Int\n_FORMAT_RG8 = 3\n\n_FORMAT_RGH :: Int\n_FORMAT_RGH = 13\n\ninstance NodeProperty Image \"data\" Dictionary 'False where\n        nodeProperty = (_get_data, wrapDroppingSetter _set_data, Nothing)\n\n{-# NOINLINE bindImage__get_data #-}\n\n-- | Holds all of the image's color data in a given format. See @enum Format@ constants.\nbindImage__get_data :: MethodBind\nbindImage__get_data\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"_get_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Holds all of the image's color data in a given format. See @enum Format@ constants.\n_get_data :: (Image :< cls, Object :< cls) => cls -> IO Dictionary\n_get_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage__get_data (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"_get_data\" '[] (IO Dictionary) where\n        nodeMethod = Godot.Core.Image._get_data\n\n{-# NOINLINE bindImage__set_data #-}\n\n-- | Holds all of the image's color data in a given format. See @enum Format@ constants.\nbindImage__set_data :: MethodBind\nbindImage__set_data\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"_set_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Holds all of the image's color data in a given format. See @enum Format@ constants.\n_set_data ::\n            (Image :< cls, Object :< cls) => cls -> Dictionary -> IO ()\n_set_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage__set_data (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"_set_data\" '[Dictionary] (IO ()) where\n        nodeMethod = Godot.Core.Image._set_data\n\n{-# NOINLINE bindImage_blend_rect #-}\n\n-- | Alpha-blends @src_rect@ from @src@ image to this image at coordinates @dest@.\nbindImage_blend_rect :: MethodBind\nbindImage_blend_rect\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"blend_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Alpha-blends @src_rect@ from @src@ image to this image at coordinates @dest@.\nblend_rect ::\n             (Image :< cls, Object :< cls) =>\n             cls -> Image -> Rect2 -> Vector2 -> IO ()\nblend_rect cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_blend_rect (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"blend_rect\" '[Image, Rect2, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Image.blend_rect\n\n{-# NOINLINE bindImage_blend_rect_mask #-}\n\n-- | Alpha-blends @src_rect@ from @src@ image to this image using @mask@ image at coordinates @dst@. Alpha channels are required for both @src@ and @mask@. @dst@ pixels and @src@ pixels will blend if the corresponding mask pixel's alpha value is not 0. @src@ image and @mask@ image __must__ have the same size (width and height) but they can have different formats.\nbindImage_blend_rect_mask :: MethodBind\nbindImage_blend_rect_mask\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"blend_rect_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Alpha-blends @src_rect@ from @src@ image to this image using @mask@ image at coordinates @dst@. Alpha channels are required for both @src@ and @mask@. @dst@ pixels and @src@ pixels will blend if the corresponding mask pixel's alpha value is not 0. @src@ image and @mask@ image __must__ have the same size (width and height) but they can have different formats.\nblend_rect_mask ::\n                  (Image :< cls, Object :< cls) =>\n                  cls -> Image -> Image -> Rect2 -> Vector2 -> IO ()\nblend_rect_mask cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_blend_rect_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"blend_rect_mask\"\n           '[Image, Image, Rect2, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Image.blend_rect_mask\n\n{-# NOINLINE bindImage_blit_rect #-}\n\n-- | Copies @src_rect@ from @src@ image to this image at coordinates @dst@.\nbindImage_blit_rect :: MethodBind\nbindImage_blit_rect\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"blit_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Copies @src_rect@ from @src@ image to this image at coordinates @dst@.\nblit_rect ::\n            (Image :< cls, Object :< cls) =>\n            cls -> Image -> Rect2 -> Vector2 -> IO ()\nblit_rect cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_blit_rect (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"blit_rect\" '[Image, Rect2, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Image.blit_rect\n\n{-# NOINLINE bindImage_blit_rect_mask #-}\n\n-- | Blits @src_rect@ area from @src@ image to this image at the coordinates given by @dst@. @src@ pixel is copied onto @dst@ if the corresponding @mask@ pixel's alpha value is not 0. @src@ image and @mask@ image __must__ have the same size (width and height) but they can have different formats.\nbindImage_blit_rect_mask :: MethodBind\nbindImage_blit_rect_mask\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"blit_rect_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Blits @src_rect@ area from @src@ image to this image at the coordinates given by @dst@. @src@ pixel is copied onto @dst@ if the corresponding @mask@ pixel's alpha value is not 0. @src@ image and @mask@ image __must__ have the same size (width and height) but they can have different formats.\nblit_rect_mask ::\n                 (Image :< cls, Object :< cls) =>\n                 cls -> Image -> Image -> Rect2 -> Vector2 -> IO ()\nblit_rect_mask cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_blit_rect_mask (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"blit_rect_mask\"\n           '[Image, Image, Rect2, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Image.blit_rect_mask\n\n{-# NOINLINE bindImage_bumpmap_to_normalmap #-}\n\n-- | Converts a bumpmap to a normalmap. A bumpmap provides a height offset per-pixel, while a normalmap provides a normal direction per pixel.\nbindImage_bumpmap_to_normalmap :: MethodBind\nbindImage_bumpmap_to_normalmap\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"bumpmap_to_normalmap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Converts a bumpmap to a normalmap. A bumpmap provides a height offset per-pixel, while a normalmap provides a normal direction per pixel.\nbumpmap_to_normalmap ::\n                       (Image :< cls, Object :< cls) => cls -> Maybe Float -> IO ()\nbumpmap_to_normalmap cls arg1\n  = withVariantArray [maybe (VariantReal (1)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_bumpmap_to_normalmap (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"bumpmap_to_normalmap\" '[Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Image.bumpmap_to_normalmap\n\n{-# NOINLINE bindImage_clear_mipmaps #-}\n\n-- | Removes the image's mipmaps.\nbindImage_clear_mipmaps :: MethodBind\nbindImage_clear_mipmaps\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"clear_mipmaps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the image's mipmaps.\nclear_mipmaps :: (Image :< cls, Object :< cls) => cls -> IO ()\nclear_mipmaps cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_clear_mipmaps (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"clear_mipmaps\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Image.clear_mipmaps\n\n{-# NOINLINE bindImage_compress #-}\n\n-- | Compresses the image to use less memory. Can not directly access pixel data while the image is compressed. Returns error if the chosen compression mode is not available. See @enum CompressMode@ and @enum CompressSource@ constants.\nbindImage_compress :: MethodBind\nbindImage_compress\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"compress\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Compresses the image to use less memory. Can not directly access pixel data while the image is compressed. Returns error if the chosen compression mode is not available. See @enum CompressMode@ and @enum CompressSource@ constants.\ncompress ::\n           (Image :< cls, Object :< cls) =>\n           cls -> Int -> Int -> Float -> IO Int\ncompress cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_compress (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"compress\" '[Int, Int, Float] (IO Int)\n         where\n        nodeMethod = Godot.Core.Image.compress\n\n{-# NOINLINE bindImage_convert #-}\n\n-- | Converts the image's format. See @enum Format@ constants.\nbindImage_convert :: MethodBind\nbindImage_convert\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"convert\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Converts the image's format. See @enum Format@ constants.\nconvert :: (Image :< cls, Object :< cls) => cls -> Int -> IO ()\nconvert cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_convert (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"convert\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Image.convert\n\n{-# NOINLINE bindImage_copy_from #-}\n\n-- | Copies @src@ image to this image.\nbindImage_copy_from :: MethodBind\nbindImage_copy_from\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"copy_from\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Copies @src@ image to this image.\ncopy_from :: (Image :< cls, Object :< cls) => cls -> Image -> IO ()\ncopy_from cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_copy_from (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"copy_from\" '[Image] (IO ()) where\n        nodeMethod = Godot.Core.Image.copy_from\n\n{-# NOINLINE bindImage_create #-}\n\n-- | Creates an empty image of given size and format. See @enum Format@ constants. If @use_mipmaps@ is @true@ then generate mipmaps for this image. See the @method generate_mipmaps@.\nbindImage_create :: MethodBind\nbindImage_create\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates an empty image of given size and format. See @enum Format@ constants. If @use_mipmaps@ is @true@ then generate mipmaps for this image. See the @method generate_mipmaps@.\ncreate ::\n         (Image :< cls, Object :< cls) =>\n         cls -> Int -> Int -> Bool -> Int -> IO ()\ncreate cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_create (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"create\" '[Int, Int, Bool, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Image.create\n\n{-# NOINLINE bindImage_create_from_data #-}\n\n-- | Creates a new image of given size and format. See @enum Format@ constants. Fills the image with the given raw data. If @use_mipmaps@ is @true@ then loads mipmaps for this image from @data@. See @method generate_mipmaps@.\nbindImage_create_from_data :: MethodBind\nbindImage_create_from_data\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"create_from_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a new image of given size and format. See @enum Format@ constants. Fills the image with the given raw data. If @use_mipmaps@ is @true@ then loads mipmaps for this image from @data@. See @method generate_mipmaps@.\ncreate_from_data ::\n                   (Image :< cls, Object :< cls) =>\n                   cls -> Int -> Int -> Bool -> Int -> PoolByteArray -> IO ()\ncreate_from_data cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_create_from_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"create_from_data\"\n           '[Int, Int, Bool, Int, PoolByteArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Image.create_from_data\n\n{-# NOINLINE bindImage_crop #-}\n\n-- | Crops the image to the given @width@ and @height@. If the specified size is larger than the current size, the extra area is filled with black pixels.\nbindImage_crop :: MethodBind\nbindImage_crop\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"crop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Crops the image to the given @width@ and @height@. If the specified size is larger than the current size, the extra area is filled with black pixels.\ncrop :: (Image :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\ncrop cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_crop (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"crop\" '[Int, Int] (IO ()) where\n        nodeMethod = Godot.Core.Image.crop\n\n{-# NOINLINE bindImage_decompress #-}\n\n-- | Decompresses the image if it is compressed. Returns an error if decompress function is not available.\nbindImage_decompress :: MethodBind\nbindImage_decompress\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"decompress\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Decompresses the image if it is compressed. Returns an error if decompress function is not available.\ndecompress :: (Image :< cls, Object :< cls) => cls -> IO Int\ndecompress cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_decompress (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"decompress\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Image.decompress\n\n{-# NOINLINE bindImage_detect_alpha #-}\n\n-- | Returns @ALPHA_BLEND@ if the image has data for alpha values. Returns @ALPHA_BIT@ if all the alpha values are stored in a single bit. Returns @ALPHA_NONE@ if no data for alpha values is found.\nbindImage_detect_alpha :: MethodBind\nbindImage_detect_alpha\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"detect_alpha\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @ALPHA_BLEND@ if the image has data for alpha values. Returns @ALPHA_BIT@ if all the alpha values are stored in a single bit. Returns @ALPHA_NONE@ if no data for alpha values is found.\ndetect_alpha :: (Image :< cls, Object :< cls) => cls -> IO Int\ndetect_alpha cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_detect_alpha (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"detect_alpha\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Image.detect_alpha\n\n{-# NOINLINE bindImage_expand_x2_hq2x #-}\n\n-- | Stretches the image and enlarges it by a factor of 2. No interpolation is done.\nbindImage_expand_x2_hq2x :: MethodBind\nbindImage_expand_x2_hq2x\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"expand_x2_hq2x\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stretches the image and enlarges it by a factor of 2. No interpolation is done.\nexpand_x2_hq2x :: (Image :< cls, Object :< cls) => cls -> IO ()\nexpand_x2_hq2x cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_expand_x2_hq2x (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"expand_x2_hq2x\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Image.expand_x2_hq2x\n\n{-# NOINLINE bindImage_fill #-}\n\n-- | Fills the image with a given @Color@.\nbindImage_fill :: MethodBind\nbindImage_fill\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"fill\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Fills the image with a given @Color@.\nfill :: (Image :< cls, Object :< cls) => cls -> Color -> IO ()\nfill cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_fill (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"fill\" '[Color] (IO ()) where\n        nodeMethod = Godot.Core.Image.fill\n\n{-# NOINLINE bindImage_fix_alpha_edges #-}\n\n-- | Blends low-alpha pixels with nearby pixels.\nbindImage_fix_alpha_edges :: MethodBind\nbindImage_fix_alpha_edges\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"fix_alpha_edges\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Blends low-alpha pixels with nearby pixels.\nfix_alpha_edges :: (Image :< cls, Object :< cls) => cls -> IO ()\nfix_alpha_edges cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_fix_alpha_edges (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"fix_alpha_edges\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Image.fix_alpha_edges\n\n{-# NOINLINE bindImage_flip_x #-}\n\n-- | Flips the image horizontally.\nbindImage_flip_x :: MethodBind\nbindImage_flip_x\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"flip_x\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Flips the image horizontally.\nflip_x :: (Image :< cls, Object :< cls) => cls -> IO ()\nflip_x cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_flip_x (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"flip_x\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Image.flip_x\n\n{-# NOINLINE bindImage_flip_y #-}\n\n-- | Flips the image vertically.\nbindImage_flip_y :: MethodBind\nbindImage_flip_y\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"flip_y\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Flips the image vertically.\nflip_y :: (Image :< cls, Object :< cls) => cls -> IO ()\nflip_y cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_flip_y (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"flip_y\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Image.flip_y\n\n{-# NOINLINE bindImage_generate_mipmaps #-}\n\n-- | Generates mipmaps for the image. Mipmaps are pre-calculated and lower resolution copies of the image. Mipmaps are automatically used if the image needs to be scaled down when rendered. This improves image quality and the performance of the rendering. Returns an error if the image is compressed, in a custom format or if the image's width/height is 0.\nbindImage_generate_mipmaps :: MethodBind\nbindImage_generate_mipmaps\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"generate_mipmaps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Generates mipmaps for the image. Mipmaps are pre-calculated and lower resolution copies of the image. Mipmaps are automatically used if the image needs to be scaled down when rendered. This improves image quality and the performance of the rendering. Returns an error if the image is compressed, in a custom format or if the image's width/height is 0.\ngenerate_mipmaps ::\n                   (Image :< cls, Object :< cls) => cls -> Maybe Bool -> IO Int\ngenerate_mipmaps cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_generate_mipmaps (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"generate_mipmaps\" '[Maybe Bool] (IO Int)\n         where\n        nodeMethod = Godot.Core.Image.generate_mipmaps\n\n{-# NOINLINE bindImage_get_data #-}\n\n-- | Returns a copy of the image's raw data.\nbindImage_get_data :: MethodBind\nbindImage_get_data\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"get_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a copy of the image's raw data.\nget_data ::\n           (Image :< cls, Object :< cls) => cls -> IO PoolByteArray\nget_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_get_data (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"get_data\" '[] (IO PoolByteArray) where\n        nodeMethod = Godot.Core.Image.get_data\n\n{-# NOINLINE bindImage_get_format #-}\n\n-- | Returns the image's format. See @enum Format@ constants.\nbindImage_get_format :: MethodBind\nbindImage_get_format\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"get_format\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the image's format. See @enum Format@ constants.\nget_format :: (Image :< cls, Object :< cls) => cls -> IO Int\nget_format cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_get_format (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"get_format\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Image.get_format\n\n{-# NOINLINE bindImage_get_height #-}\n\n-- | Returns the image's height.\nbindImage_get_height :: MethodBind\nbindImage_get_height\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"get_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the image's height.\nget_height :: (Image :< cls, Object :< cls) => cls -> IO Int\nget_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_get_height (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"get_height\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Image.get_height\n\n{-# NOINLINE bindImage_get_mipmap_offset #-}\n\n-- | Returns the offset where the image's mipmap with index @mipmap@ is stored in the @data@ dictionary.\nbindImage_get_mipmap_offset :: MethodBind\nbindImage_get_mipmap_offset\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"get_mipmap_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the offset where the image's mipmap with index @mipmap@ is stored in the @data@ dictionary.\nget_mipmap_offset ::\n                    (Image :< cls, Object :< cls) => cls -> Int -> IO Int\nget_mipmap_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_get_mipmap_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"get_mipmap_offset\" '[Int] (IO Int) where\n        nodeMethod = Godot.Core.Image.get_mipmap_offset\n\n{-# NOINLINE bindImage_get_pixel #-}\n\n-- | Returns the color of the pixel at @(x, y)@ if the image is locked. If the image is unlocked, it always returns a @Color@ with the value @(0, 0, 0, 1.0)@. This is the same as @method get_pixelv@, but two integer arguments instead of a Vector2 argument.\nbindImage_get_pixel :: MethodBind\nbindImage_get_pixel\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"get_pixel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the color of the pixel at @(x, y)@ if the image is locked. If the image is unlocked, it always returns a @Color@ with the value @(0, 0, 0, 1.0)@. This is the same as @method get_pixelv@, but two integer arguments instead of a Vector2 argument.\nget_pixel ::\n            (Image :< cls, Object :< cls) => cls -> Int -> Int -> IO Color\nget_pixel cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_get_pixel (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"get_pixel\" '[Int, Int] (IO Color) where\n        nodeMethod = Godot.Core.Image.get_pixel\n\n{-# NOINLINE bindImage_get_pixelv #-}\n\n-- | Returns the color of the pixel at @src@ if the image is locked. If the image is unlocked, it always returns a @Color@ with the value @(0, 0, 0, 1.0)@. This is the same as @method get_pixel@, but with a Vector2 argument instead of two integer arguments.\nbindImage_get_pixelv :: MethodBind\nbindImage_get_pixelv\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"get_pixelv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the color of the pixel at @src@ if the image is locked. If the image is unlocked, it always returns a @Color@ with the value @(0, 0, 0, 1.0)@. This is the same as @method get_pixel@, but with a Vector2 argument instead of two integer arguments.\nget_pixelv ::\n             (Image :< cls, Object :< cls) => cls -> Vector2 -> IO Color\nget_pixelv cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_get_pixelv (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"get_pixelv\" '[Vector2] (IO Color) where\n        nodeMethod = Godot.Core.Image.get_pixelv\n\n{-# NOINLINE bindImage_get_rect #-}\n\n-- | Returns a new image that is a copy of the image's area specified with @rect@.\nbindImage_get_rect :: MethodBind\nbindImage_get_rect\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"get_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a new image that is a copy of the image's area specified with @rect@.\nget_rect ::\n           (Image :< cls, Object :< cls) => cls -> Rect2 -> IO Image\nget_rect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_get_rect (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"get_rect\" '[Rect2] (IO Image) where\n        nodeMethod = Godot.Core.Image.get_rect\n\n{-# NOINLINE bindImage_get_size #-}\n\n-- | Returns the image's size (width and height).\nbindImage_get_size :: MethodBind\nbindImage_get_size\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"get_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the image's size (width and height).\nget_size :: (Image :< cls, Object :< cls) => cls -> IO Vector2\nget_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_get_size (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"get_size\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.Image.get_size\n\n{-# NOINLINE bindImage_get_used_rect #-}\n\n-- | Returns a @Rect2@ enclosing the visible portion of the image, considering each pixel with a non-zero alpha channel as visible.\nbindImage_get_used_rect :: MethodBind\nbindImage_get_used_rect\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"get_used_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @Rect2@ enclosing the visible portion of the image, considering each pixel with a non-zero alpha channel as visible.\nget_used_rect :: (Image :< cls, Object :< cls) => cls -> IO Rect2\nget_used_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_get_used_rect (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"get_used_rect\" '[] (IO Rect2) where\n        nodeMethod = Godot.Core.Image.get_used_rect\n\n{-# NOINLINE bindImage_get_width #-}\n\n-- | Returns the image's width.\nbindImage_get_width :: MethodBind\nbindImage_get_width\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"get_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the image's width.\nget_width :: (Image :< cls, Object :< cls) => cls -> IO Int\nget_width cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_get_width (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"get_width\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Image.get_width\n\n{-# NOINLINE bindImage_has_mipmaps #-}\n\n-- | Returns @true@ if the image has generated mipmaps.\nbindImage_has_mipmaps :: MethodBind\nbindImage_has_mipmaps\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"has_mipmaps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the image has generated mipmaps.\nhas_mipmaps :: (Image :< cls, Object :< cls) => cls -> IO Bool\nhas_mipmaps cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_has_mipmaps (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"has_mipmaps\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Image.has_mipmaps\n\n{-# NOINLINE bindImage_is_compressed #-}\n\n-- | Returns @true@ if the image is compressed.\nbindImage_is_compressed :: MethodBind\nbindImage_is_compressed\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"is_compressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the image is compressed.\nis_compressed :: (Image :< cls, Object :< cls) => cls -> IO Bool\nis_compressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_is_compressed (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"is_compressed\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Image.is_compressed\n\n{-# NOINLINE bindImage_is_empty #-}\n\n-- | Returns @true@ if the image has no data.\nbindImage_is_empty :: MethodBind\nbindImage_is_empty\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"is_empty\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the image has no data.\nis_empty :: (Image :< cls, Object :< cls) => cls -> IO Bool\nis_empty cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_is_empty (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"is_empty\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Image.is_empty\n\n{-# NOINLINE bindImage_is_invisible #-}\n\n-- | Returns @true@ if all the image's pixels have an alpha value of 0. Returns @false@ if any pixel has an alpha value higher than 0.\nbindImage_is_invisible :: MethodBind\nbindImage_is_invisible\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"is_invisible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if all the image's pixels have an alpha value of 0. Returns @false@ if any pixel has an alpha value higher than 0.\nis_invisible :: (Image :< cls, Object :< cls) => cls -> IO Bool\nis_invisible cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_is_invisible (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"is_invisible\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Image.is_invisible\n\n{-# NOINLINE bindImage_load #-}\n\n-- | Loads an image from file @path@. See @url=https://docs.godotengine.org/en/latest/getting_started/workflow/assets/importing_images.html#supported-image-formats@Supported image formats@/url@ for a list of supported image formats and limitations.\nbindImage_load :: MethodBind\nbindImage_load\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"load\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Loads an image from file @path@. See @url=https://docs.godotengine.org/en/latest/getting_started/workflow/assets/importing_images.html#supported-image-formats@Supported image formats@/url@ for a list of supported image formats and limitations.\nload ::\n       (Image :< cls, Object :< cls) => cls -> GodotString -> IO Int\nload cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_load (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"load\" '[GodotString] (IO Int) where\n        nodeMethod = Godot.Core.Image.load\n\n{-# NOINLINE bindImage_load_jpg_from_buffer #-}\n\n-- | Loads an image from the binary contents of a JPEG file.\nbindImage_load_jpg_from_buffer :: MethodBind\nbindImage_load_jpg_from_buffer\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"load_jpg_from_buffer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Loads an image from the binary contents of a JPEG file.\nload_jpg_from_buffer ::\n                       (Image :< cls, Object :< cls) => cls -> PoolByteArray -> IO Int\nload_jpg_from_buffer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_load_jpg_from_buffer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"load_jpg_from_buffer\" '[PoolByteArray]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Image.load_jpg_from_buffer\n\n{-# NOINLINE bindImage_load_png_from_buffer #-}\n\n-- | Loads an image from the binary contents of a PNG file.\nbindImage_load_png_from_buffer :: MethodBind\nbindImage_load_png_from_buffer\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"load_png_from_buffer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Loads an image from the binary contents of a PNG file.\nload_png_from_buffer ::\n                       (Image :< cls, Object :< cls) => cls -> PoolByteArray -> IO Int\nload_png_from_buffer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_load_png_from_buffer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"load_png_from_buffer\" '[PoolByteArray]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Image.load_png_from_buffer\n\n{-# NOINLINE bindImage_load_webp_from_buffer #-}\n\n-- | Loads an image from the binary contents of a WebP file.\nbindImage_load_webp_from_buffer :: MethodBind\nbindImage_load_webp_from_buffer\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"load_webp_from_buffer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Loads an image from the binary contents of a WebP file.\nload_webp_from_buffer ::\n                        (Image :< cls, Object :< cls) => cls -> PoolByteArray -> IO Int\nload_webp_from_buffer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_load_webp_from_buffer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"load_webp_from_buffer\" '[PoolByteArray]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Image.load_webp_from_buffer\n\n{-# NOINLINE bindImage_lock #-}\n\n-- | Locks the data for reading and writing access. Sends an error to the console if the image is not locked when reading or writing a pixel.\nbindImage_lock :: MethodBind\nbindImage_lock\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"lock\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Locks the data for reading and writing access. Sends an error to the console if the image is not locked when reading or writing a pixel.\nlock :: (Image :< cls, Object :< cls) => cls -> IO ()\nlock cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_lock (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"lock\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Image.lock\n\n{-# NOINLINE bindImage_normalmap_to_xy #-}\n\n-- | Converts the image's data to represent coordinates on a 3D plane. This is used when the image represents a normalmap. A normalmap can add lots of detail to a 3D surface without increasing the polygon count.\nbindImage_normalmap_to_xy :: MethodBind\nbindImage_normalmap_to_xy\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"normalmap_to_xy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Converts the image's data to represent coordinates on a 3D plane. This is used when the image represents a normalmap. A normalmap can add lots of detail to a 3D surface without increasing the polygon count.\nnormalmap_to_xy :: (Image :< cls, Object :< cls) => cls -> IO ()\nnormalmap_to_xy cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_normalmap_to_xy (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"normalmap_to_xy\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Image.normalmap_to_xy\n\n{-# NOINLINE bindImage_premultiply_alpha #-}\n\n-- | Multiplies color values with alpha values. Resulting color values for a pixel are @(color * alpha)/256@.\nbindImage_premultiply_alpha :: MethodBind\nbindImage_premultiply_alpha\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"premultiply_alpha\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Multiplies color values with alpha values. Resulting color values for a pixel are @(color * alpha)/256@.\npremultiply_alpha :: (Image :< cls, Object :< cls) => cls -> IO ()\npremultiply_alpha cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_premultiply_alpha (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"premultiply_alpha\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Image.premultiply_alpha\n\n{-# NOINLINE bindImage_resize #-}\n\n-- | Resizes the image to the given @width@ and @height@. New pixels are calculated using @interpolation@. See @interpolation@ constants.\nbindImage_resize :: MethodBind\nbindImage_resize\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"resize\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Resizes the image to the given @width@ and @height@. New pixels are calculated using @interpolation@. See @interpolation@ constants.\nresize ::\n         (Image :< cls, Object :< cls) =>\n         cls -> Int -> Int -> Maybe Int -> IO ()\nresize cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (1)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_resize (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"resize\" '[Int, Int, Maybe Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Image.resize\n\n{-# NOINLINE bindImage_resize_to_po2 #-}\n\n-- | Resizes the image to the nearest power of 2 for the width and height. If @square@ is @true@ then set width and height to be the same.\nbindImage_resize_to_po2 :: MethodBind\nbindImage_resize_to_po2\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"resize_to_po2\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Resizes the image to the nearest power of 2 for the width and height. If @square@ is @true@ then set width and height to be the same.\nresize_to_po2 ::\n                (Image :< cls, Object :< cls) => cls -> Maybe Bool -> IO ()\nresize_to_po2 cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_resize_to_po2 (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"resize_to_po2\" '[Maybe Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Image.resize_to_po2\n\n{-# NOINLINE bindImage_rgbe_to_srgb #-}\n\n-- | Converts a standard RGBE (Red Green Blue Exponent) image to an sRGB image.\nbindImage_rgbe_to_srgb :: MethodBind\nbindImage_rgbe_to_srgb\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"rgbe_to_srgb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Converts a standard RGBE (Red Green Blue Exponent) image to an sRGB image.\nrgbe_to_srgb :: (Image :< cls, Object :< cls) => cls -> IO Image\nrgbe_to_srgb cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_rgbe_to_srgb (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"rgbe_to_srgb\" '[] (IO Image) where\n        nodeMethod = Godot.Core.Image.rgbe_to_srgb\n\n{-# NOINLINE bindImage_save_exr #-}\n\n-- | Saves the image as an EXR file to @path@. If @grayscale@ is @true@ and the image has only one channel, it will be saved explicitly as monochrome rather than one red channel. This function will return @ERR_UNAVAILABLE@ if Godot was compiled without the TinyEXR module.\nbindImage_save_exr :: MethodBind\nbindImage_save_exr\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"save_exr\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Saves the image as an EXR file to @path@. If @grayscale@ is @true@ and the image has only one channel, it will be saved explicitly as monochrome rather than one red channel. This function will return @ERR_UNAVAILABLE@ if Godot was compiled without the TinyEXR module.\nsave_exr ::\n           (Image :< cls, Object :< cls) =>\n           cls -> GodotString -> Maybe Bool -> IO Int\nsave_exr cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_save_exr (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"save_exr\" '[GodotString, Maybe Bool]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Image.save_exr\n\n{-# NOINLINE bindImage_save_png #-}\n\n-- | Saves the image as a PNG file to @path@.\nbindImage_save_png :: MethodBind\nbindImage_save_png\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"save_png\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Saves the image as a PNG file to @path@.\nsave_png ::\n           (Image :< cls, Object :< cls) => cls -> GodotString -> IO Int\nsave_png cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_save_png (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"save_png\" '[GodotString] (IO Int) where\n        nodeMethod = Godot.Core.Image.save_png\n\n{-# NOINLINE bindImage_set_pixel #-}\n\n-- | Sets the @Color@ of the pixel at @(x, y)@ if the image is locked. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar img = Image.new()\n--   \t\t\t\timg.create(img_width, img_height, false, Image.FORMAT_RGBA8)\n--   \t\t\t\timg.lock()\n--   \t\t\t\timg.set_pixel(x, y, color) # Works\n--   \t\t\t\timg.unlock()\n--   \t\t\t\timg.set_pixel(x, y, color) # Does not have an effect\n--   \t\t\t\t\n--   @\nbindImage_set_pixel :: MethodBind\nbindImage_set_pixel\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"set_pixel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Color@ of the pixel at @(x, y)@ if the image is locked. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar img = Image.new()\n--   \t\t\t\timg.create(img_width, img_height, false, Image.FORMAT_RGBA8)\n--   \t\t\t\timg.lock()\n--   \t\t\t\timg.set_pixel(x, y, color) # Works\n--   \t\t\t\timg.unlock()\n--   \t\t\t\timg.set_pixel(x, y, color) # Does not have an effect\n--   \t\t\t\t\n--   @\nset_pixel ::\n            (Image :< cls, Object :< cls) =>\n            cls -> Int -> Int -> Color -> IO ()\nset_pixel cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_set_pixel (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"set_pixel\" '[Int, Int, Color] (IO ())\n         where\n        nodeMethod = Godot.Core.Image.set_pixel\n\n{-# NOINLINE bindImage_set_pixelv #-}\n\n-- | Sets the @Color@ of the pixel at @(dst.x, dst.y)@ if the image is locked. Note that the @dst@ values must be integers. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar img = Image.new()\n--   \t\t\t\timg.create(img_width, img_height, false, Image.FORMAT_RGBA8)\n--   \t\t\t\timg.lock()\n--   \t\t\t\timg.set_pixelv(Vector2(x, y), color) # Works\n--   \t\t\t\timg.unlock()\n--   \t\t\t\timg.set_pixelv(Vector2(x, y), color) # Does not have an effect\n--   \t\t\t\t\n--   @\nbindImage_set_pixelv :: MethodBind\nbindImage_set_pixelv\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"set_pixelv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Color@ of the pixel at @(dst.x, dst.y)@ if the image is locked. Note that the @dst@ values must be integers. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar img = Image.new()\n--   \t\t\t\timg.create(img_width, img_height, false, Image.FORMAT_RGBA8)\n--   \t\t\t\timg.lock()\n--   \t\t\t\timg.set_pixelv(Vector2(x, y), color) # Works\n--   \t\t\t\timg.unlock()\n--   \t\t\t\timg.set_pixelv(Vector2(x, y), color) # Does not have an effect\n--   \t\t\t\t\n--   @\nset_pixelv ::\n             (Image :< cls, Object :< cls) => cls -> Vector2 -> Color -> IO ()\nset_pixelv cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_set_pixelv (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"set_pixelv\" '[Vector2, Color] (IO ())\n         where\n        nodeMethod = Godot.Core.Image.set_pixelv\n\n{-# NOINLINE bindImage_shrink_x2 #-}\n\n-- | Shrinks the image by a factor of 2.\nbindImage_shrink_x2 :: MethodBind\nbindImage_shrink_x2\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"shrink_x2\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Shrinks the image by a factor of 2.\nshrink_x2 :: (Image :< cls, Object :< cls) => cls -> IO ()\nshrink_x2 cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_shrink_x2 (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"shrink_x2\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Image.shrink_x2\n\n{-# NOINLINE bindImage_srgb_to_linear #-}\n\n-- | Converts the raw data from the sRGB colorspace to a linear scale.\nbindImage_srgb_to_linear :: MethodBind\nbindImage_srgb_to_linear\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"srgb_to_linear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Converts the raw data from the sRGB colorspace to a linear scale.\nsrgb_to_linear :: (Image :< cls, Object :< cls) => cls -> IO ()\nsrgb_to_linear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_srgb_to_linear (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"srgb_to_linear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Image.srgb_to_linear\n\n{-# NOINLINE bindImage_unlock #-}\n\n-- | Unlocks the data and prevents changes.\nbindImage_unlock :: MethodBind\nbindImage_unlock\n  = unsafePerformIO $\n      withCString \"Image\" $\n        \\ clsNamePtr ->\n          withCString \"unlock\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Unlocks the data and prevents changes.\nunlock :: (Image :< cls, Object :< cls) => cls -> IO ()\nunlock cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImage_unlock (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Image \"unlock\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Image.unlock"
  },
  {
    "path": "src/Godot/Core/ImageTexture.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ImageTexture\n       (Godot.Core.ImageTexture._STORAGE_RAW,\n        Godot.Core.ImageTexture._STORAGE_COMPRESS_LOSSLESS,\n        Godot.Core.ImageTexture._STORAGE_COMPRESS_LOSSY,\n        Godot.Core.ImageTexture._reload_hook,\n        Godot.Core.ImageTexture.create,\n        Godot.Core.ImageTexture.create_from_image,\n        Godot.Core.ImageTexture.get_format,\n        Godot.Core.ImageTexture.get_lossy_storage_quality,\n        Godot.Core.ImageTexture.get_storage, Godot.Core.ImageTexture.load,\n        Godot.Core.ImageTexture.set_data,\n        Godot.Core.ImageTexture.set_lossy_storage_quality,\n        Godot.Core.ImageTexture.set_size_override,\n        Godot.Core.ImageTexture.set_storage)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Texture()\n\n_STORAGE_RAW :: Int\n_STORAGE_RAW = 0\n\n_STORAGE_COMPRESS_LOSSLESS :: Int\n_STORAGE_COMPRESS_LOSSLESS = 2\n\n_STORAGE_COMPRESS_LOSSY :: Int\n_STORAGE_COMPRESS_LOSSY = 1\n\ninstance NodeProperty ImageTexture \"lossy_quality\" Float 'False\n         where\n        nodeProperty\n          = (get_lossy_storage_quality,\n             wrapDroppingSetter set_lossy_storage_quality, Nothing)\n\ninstance NodeProperty ImageTexture \"storage\" Int 'False where\n        nodeProperty\n          = (get_storage, wrapDroppingSetter set_storage, Nothing)\n\n{-# NOINLINE bindImageTexture__reload_hook #-}\n\nbindImageTexture__reload_hook :: MethodBind\nbindImageTexture__reload_hook\n  = unsafePerformIO $\n      withCString \"ImageTexture\" $\n        \\ clsNamePtr ->\n          withCString \"_reload_hook\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_reload_hook ::\n               (ImageTexture :< cls, Object :< cls) => cls -> Rid -> IO ()\n_reload_hook cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImageTexture__reload_hook (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImageTexture \"_reload_hook\" '[Rid] (IO ())\n         where\n        nodeMethod = Godot.Core.ImageTexture._reload_hook\n\n{-# NOINLINE bindImageTexture_create #-}\n\n-- | Create a new @ImageTexture@ with @width@ and @height@.\n--   \t\t\t\t@format@ is a value from @enum Image.Format@, @flags@ is any combination of @enum Texture.Flags@.\nbindImageTexture_create :: MethodBind\nbindImageTexture_create\n  = unsafePerformIO $\n      withCString \"ImageTexture\" $\n        \\ clsNamePtr ->\n          withCString \"create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Create a new @ImageTexture@ with @width@ and @height@.\n--   \t\t\t\t@format@ is a value from @enum Image.Format@, @flags@ is any combination of @enum Texture.Flags@.\ncreate ::\n         (ImageTexture :< cls, Object :< cls) =>\n         cls -> Int -> Int -> Int -> Maybe Int -> IO ()\ncreate cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantInt (7)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImageTexture_create (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImageTexture \"create\"\n           '[Int, Int, Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ImageTexture.create\n\n{-# NOINLINE bindImageTexture_create_from_image #-}\n\n-- | Create a new @ImageTexture@ from an @Image@ with @flags@ from @enum Texture.Flags@. An sRGB to linear color space conversion can take place, according to @enum Image.Format@.\nbindImageTexture_create_from_image :: MethodBind\nbindImageTexture_create_from_image\n  = unsafePerformIO $\n      withCString \"ImageTexture\" $\n        \\ clsNamePtr ->\n          withCString \"create_from_image\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Create a new @ImageTexture@ from an @Image@ with @flags@ from @enum Texture.Flags@. An sRGB to linear color space conversion can take place, according to @enum Image.Format@.\ncreate_from_image ::\n                    (ImageTexture :< cls, Object :< cls) =>\n                    cls -> Image -> Maybe Int -> IO ()\ncreate_from_image cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (7)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImageTexture_create_from_image\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImageTexture \"create_from_image\"\n           '[Image, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ImageTexture.create_from_image\n\n{-# NOINLINE bindImageTexture_get_format #-}\n\n-- | Returns the format of the @ImageTexture@, one of @enum Image.Format@.\nbindImageTexture_get_format :: MethodBind\nbindImageTexture_get_format\n  = unsafePerformIO $\n      withCString \"ImageTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_format\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the format of the @ImageTexture@, one of @enum Image.Format@.\nget_format :: (ImageTexture :< cls, Object :< cls) => cls -> IO Int\nget_format cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImageTexture_get_format (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImageTexture \"get_format\" '[] (IO Int) where\n        nodeMethod = Godot.Core.ImageTexture.get_format\n\n{-# NOINLINE bindImageTexture_get_lossy_storage_quality #-}\n\n-- | The storage quality for @STORAGE_COMPRESS_LOSSY@.\nbindImageTexture_get_lossy_storage_quality :: MethodBind\nbindImageTexture_get_lossy_storage_quality\n  = unsafePerformIO $\n      withCString \"ImageTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_lossy_storage_quality\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The storage quality for @STORAGE_COMPRESS_LOSSY@.\nget_lossy_storage_quality ::\n                            (ImageTexture :< cls, Object :< cls) => cls -> IO Float\nget_lossy_storage_quality cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImageTexture_get_lossy_storage_quality\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImageTexture \"get_lossy_storage_quality\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.ImageTexture.get_lossy_storage_quality\n\n{-# NOINLINE bindImageTexture_get_storage #-}\n\n-- | The storage type (raw, lossy, or compressed).\nbindImageTexture_get_storage :: MethodBind\nbindImageTexture_get_storage\n  = unsafePerformIO $\n      withCString \"ImageTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_storage\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The storage type (raw, lossy, or compressed).\nget_storage ::\n              (ImageTexture :< cls, Object :< cls) => cls -> IO Int\nget_storage cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImageTexture_get_storage (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImageTexture \"get_storage\" '[] (IO Int) where\n        nodeMethod = Godot.Core.ImageTexture.get_storage\n\n{-# NOINLINE bindImageTexture_load #-}\n\n-- | Load an @ImageTexture@ from a file path.\nbindImageTexture_load :: MethodBind\nbindImageTexture_load\n  = unsafePerformIO $\n      withCString \"ImageTexture\" $\n        \\ clsNamePtr ->\n          withCString \"load\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Load an @ImageTexture@ from a file path.\nload ::\n       (ImageTexture :< cls, Object :< cls) =>\n       cls -> GodotString -> IO Int\nload cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImageTexture_load (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImageTexture \"load\" '[GodotString] (IO Int)\n         where\n        nodeMethod = Godot.Core.ImageTexture.load\n\n{-# NOINLINE bindImageTexture_set_data #-}\n\n-- | Sets the @Image@ of this @ImageTexture@.\nbindImageTexture_set_data :: MethodBind\nbindImageTexture_set_data\n  = unsafePerformIO $\n      withCString \"ImageTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Image@ of this @ImageTexture@.\nset_data ::\n           (ImageTexture :< cls, Object :< cls) => cls -> Image -> IO ()\nset_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImageTexture_set_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImageTexture \"set_data\" '[Image] (IO ()) where\n        nodeMethod = Godot.Core.ImageTexture.set_data\n\n{-# NOINLINE bindImageTexture_set_lossy_storage_quality #-}\n\n-- | The storage quality for @STORAGE_COMPRESS_LOSSY@.\nbindImageTexture_set_lossy_storage_quality :: MethodBind\nbindImageTexture_set_lossy_storage_quality\n  = unsafePerformIO $\n      withCString \"ImageTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_lossy_storage_quality\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The storage quality for @STORAGE_COMPRESS_LOSSY@.\nset_lossy_storage_quality ::\n                            (ImageTexture :< cls, Object :< cls) => cls -> Float -> IO ()\nset_lossy_storage_quality cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImageTexture_set_lossy_storage_quality\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImageTexture \"set_lossy_storage_quality\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ImageTexture.set_lossy_storage_quality\n\n{-# NOINLINE bindImageTexture_set_size_override #-}\n\n-- | Resizes the @ImageTexture@ to the specified dimensions.\nbindImageTexture_set_size_override :: MethodBind\nbindImageTexture_set_size_override\n  = unsafePerformIO $\n      withCString \"ImageTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_size_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Resizes the @ImageTexture@ to the specified dimensions.\nset_size_override ::\n                    (ImageTexture :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_size_override cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImageTexture_set_size_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImageTexture \"set_size_override\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ImageTexture.set_size_override\n\n{-# NOINLINE bindImageTexture_set_storage #-}\n\n-- | The storage type (raw, lossy, or compressed).\nbindImageTexture_set_storage :: MethodBind\nbindImageTexture_set_storage\n  = unsafePerformIO $\n      withCString \"ImageTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_storage\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The storage type (raw, lossy, or compressed).\nset_storage ::\n              (ImageTexture :< cls, Object :< cls) => cls -> Int -> IO ()\nset_storage cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImageTexture_set_storage (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImageTexture \"set_storage\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.ImageTexture.set_storage"
  },
  {
    "path": "src/Godot/Core/ImmediateGeometry.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ImmediateGeometry\n       (Godot.Core.ImmediateGeometry.add_sphere,\n        Godot.Core.ImmediateGeometry.add_vertex,\n        Godot.Core.ImmediateGeometry.begin,\n        Godot.Core.ImmediateGeometry.clear,\n        Godot.Core.ImmediateGeometry.end,\n        Godot.Core.ImmediateGeometry.set_color,\n        Godot.Core.ImmediateGeometry.set_normal,\n        Godot.Core.ImmediateGeometry.set_tangent,\n        Godot.Core.ImmediateGeometry.set_uv,\n        Godot.Core.ImmediateGeometry.set_uv2)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.GeometryInstance()\n\n{-# NOINLINE bindImmediateGeometry_add_sphere #-}\n\n-- | Simple helper to draw an UV sphere with given latitude, longitude and radius.\nbindImmediateGeometry_add_sphere :: MethodBind\nbindImmediateGeometry_add_sphere\n  = unsafePerformIO $\n      withCString \"ImmediateGeometry\" $\n        \\ clsNamePtr ->\n          withCString \"add_sphere\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Simple helper to draw an UV sphere with given latitude, longitude and radius.\nadd_sphere ::\n             (ImmediateGeometry :< cls, Object :< cls) =>\n             cls -> Int -> Int -> Float -> Maybe Bool -> IO ()\nadd_sphere cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantBool True) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImmediateGeometry_add_sphere\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImmediateGeometry \"add_sphere\"\n           '[Int, Int, Float, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ImmediateGeometry.add_sphere\n\n{-# NOINLINE bindImmediateGeometry_add_vertex #-}\n\n-- | Adds a vertex in local coordinate space with the currently set color/uv/etc.\nbindImmediateGeometry_add_vertex :: MethodBind\nbindImmediateGeometry_add_vertex\n  = unsafePerformIO $\n      withCString \"ImmediateGeometry\" $\n        \\ clsNamePtr ->\n          withCString \"add_vertex\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a vertex in local coordinate space with the currently set color/uv/etc.\nadd_vertex ::\n             (ImmediateGeometry :< cls, Object :< cls) =>\n             cls -> Vector3 -> IO ()\nadd_vertex cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImmediateGeometry_add_vertex\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImmediateGeometry \"add_vertex\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ImmediateGeometry.add_vertex\n\n{-# NOINLINE bindImmediateGeometry_begin #-}\n\n-- | Begin drawing (and optionally pass a texture override). When done call @method end@. For more information on how this works, search for @glBegin()@ and @glEnd()@ references.\n--   \t\t\t\tFor the type of primitive, see the @enum Mesh.PrimitiveType@ enum.\nbindImmediateGeometry_begin :: MethodBind\nbindImmediateGeometry_begin\n  = unsafePerformIO $\n      withCString \"ImmediateGeometry\" $\n        \\ clsNamePtr ->\n          withCString \"begin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Begin drawing (and optionally pass a texture override). When done call @method end@. For more information on how this works, search for @glBegin()@ and @glEnd()@ references.\n--   \t\t\t\tFor the type of primitive, see the @enum Mesh.PrimitiveType@ enum.\nbegin ::\n        (ImmediateGeometry :< cls, Object :< cls) =>\n        cls -> Int -> Maybe Texture -> IO ()\nbegin cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe VariantNil toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImmediateGeometry_begin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImmediateGeometry \"begin\" '[Int, Maybe Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ImmediateGeometry.begin\n\n{-# NOINLINE bindImmediateGeometry_clear #-}\n\n-- | Clears everything that was drawn using begin/end.\nbindImmediateGeometry_clear :: MethodBind\nbindImmediateGeometry_clear\n  = unsafePerformIO $\n      withCString \"ImmediateGeometry\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears everything that was drawn using begin/end.\nclear :: (ImmediateGeometry :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImmediateGeometry_clear (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImmediateGeometry \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.ImmediateGeometry.clear\n\n{-# NOINLINE bindImmediateGeometry_end #-}\n\n-- | Ends a drawing context and displays the results.\nbindImmediateGeometry_end :: MethodBind\nbindImmediateGeometry_end\n  = unsafePerformIO $\n      withCString \"ImmediateGeometry\" $\n        \\ clsNamePtr ->\n          withCString \"end\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Ends a drawing context and displays the results.\nend :: (ImmediateGeometry :< cls, Object :< cls) => cls -> IO ()\nend cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImmediateGeometry_end (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImmediateGeometry \"end\" '[] (IO ()) where\n        nodeMethod = Godot.Core.ImmediateGeometry.end\n\n{-# NOINLINE bindImmediateGeometry_set_color #-}\n\n-- | The current drawing color.\nbindImmediateGeometry_set_color :: MethodBind\nbindImmediateGeometry_set_color\n  = unsafePerformIO $\n      withCString \"ImmediateGeometry\" $\n        \\ clsNamePtr ->\n          withCString \"set_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current drawing color.\nset_color ::\n            (ImmediateGeometry :< cls, Object :< cls) => cls -> Color -> IO ()\nset_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImmediateGeometry_set_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImmediateGeometry \"set_color\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.ImmediateGeometry.set_color\n\n{-# NOINLINE bindImmediateGeometry_set_normal #-}\n\n-- | The next vertex's normal.\nbindImmediateGeometry_set_normal :: MethodBind\nbindImmediateGeometry_set_normal\n  = unsafePerformIO $\n      withCString \"ImmediateGeometry\" $\n        \\ clsNamePtr ->\n          withCString \"set_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The next vertex's normal.\nset_normal ::\n             (ImmediateGeometry :< cls, Object :< cls) =>\n             cls -> Vector3 -> IO ()\nset_normal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImmediateGeometry_set_normal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImmediateGeometry \"set_normal\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ImmediateGeometry.set_normal\n\n{-# NOINLINE bindImmediateGeometry_set_tangent #-}\n\n-- | The next vertex's tangent (and binormal facing).\nbindImmediateGeometry_set_tangent :: MethodBind\nbindImmediateGeometry_set_tangent\n  = unsafePerformIO $\n      withCString \"ImmediateGeometry\" $\n        \\ clsNamePtr ->\n          withCString \"set_tangent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The next vertex's tangent (and binormal facing).\nset_tangent ::\n              (ImmediateGeometry :< cls, Object :< cls) => cls -> Plane -> IO ()\nset_tangent cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImmediateGeometry_set_tangent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImmediateGeometry \"set_tangent\" '[Plane]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ImmediateGeometry.set_tangent\n\n{-# NOINLINE bindImmediateGeometry_set_uv #-}\n\n-- | The next vertex's UV.\nbindImmediateGeometry_set_uv :: MethodBind\nbindImmediateGeometry_set_uv\n  = unsafePerformIO $\n      withCString \"ImmediateGeometry\" $\n        \\ clsNamePtr ->\n          withCString \"set_uv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The next vertex's UV.\nset_uv ::\n         (ImmediateGeometry :< cls, Object :< cls) =>\n         cls -> Vector2 -> IO ()\nset_uv cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImmediateGeometry_set_uv (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImmediateGeometry \"set_uv\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.ImmediateGeometry.set_uv\n\n{-# NOINLINE bindImmediateGeometry_set_uv2 #-}\n\n-- | The next vertex's second layer UV.\nbindImmediateGeometry_set_uv2 :: MethodBind\nbindImmediateGeometry_set_uv2\n  = unsafePerformIO $\n      withCString \"ImmediateGeometry\" $\n        \\ clsNamePtr ->\n          withCString \"set_uv2\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The next vertex's second layer UV.\nset_uv2 ::\n          (ImmediateGeometry :< cls, Object :< cls) =>\n          cls -> Vector2 -> IO ()\nset_uv2 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindImmediateGeometry_set_uv2 (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ImmediateGeometry \"set_uv2\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.ImmediateGeometry.set_uv2"
  },
  {
    "path": "src/Godot/Core/Input.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Input\n       (Godot.Core.Input._CURSOR_MOVE, Godot.Core.Input._CURSOR_ARROW,\n        Godot.Core.Input._CURSOR_IBEAM, Godot.Core.Input._CURSOR_HSPLIT,\n        Godot.Core.Input._CURSOR_DRAG, Godot.Core.Input._CURSOR_BUSY,\n        Godot.Core.Input._MOUSE_MODE_CONFINED,\n        Godot.Core.Input._CURSOR_CROSS, Godot.Core.Input._CURSOR_WAIT,\n        Godot.Core.Input._CURSOR_BDIAGSIZE, Godot.Core.Input._CURSOR_HELP,\n        Godot.Core.Input._MOUSE_MODE_VISIBLE,\n        Godot.Core.Input._CURSOR_CAN_DROP,\n        Godot.Core.Input._MOUSE_MODE_CAPTURED,\n        Godot.Core.Input._CURSOR_POINTING_HAND,\n        Godot.Core.Input._CURSOR_FDIAGSIZE, Godot.Core.Input._CURSOR_HSIZE,\n        Godot.Core.Input._MOUSE_MODE_HIDDEN,\n        Godot.Core.Input._CURSOR_FORBIDDEN, Godot.Core.Input._CURSOR_VSIZE,\n        Godot.Core.Input._CURSOR_VSPLIT,\n        Godot.Core.Input.sig_joy_connection_changed,\n        Godot.Core.Input.action_press, Godot.Core.Input.action_release,\n        Godot.Core.Input.add_joy_mapping,\n        Godot.Core.Input.get_accelerometer,\n        Godot.Core.Input.get_action_strength,\n        Godot.Core.Input.get_connected_joypads,\n        Godot.Core.Input.get_current_cursor_shape,\n        Godot.Core.Input.get_gravity, Godot.Core.Input.get_gyroscope,\n        Godot.Core.Input.get_joy_axis,\n        Godot.Core.Input.get_joy_axis_index_from_string,\n        Godot.Core.Input.get_joy_axis_string,\n        Godot.Core.Input.get_joy_button_index_from_string,\n        Godot.Core.Input.get_joy_button_string,\n        Godot.Core.Input.get_joy_guid, Godot.Core.Input.get_joy_name,\n        Godot.Core.Input.get_joy_vibration_duration,\n        Godot.Core.Input.get_joy_vibration_strength,\n        Godot.Core.Input.get_last_mouse_speed,\n        Godot.Core.Input.get_magnetometer,\n        Godot.Core.Input.get_mouse_button_mask,\n        Godot.Core.Input.get_mouse_mode,\n        Godot.Core.Input.is_action_just_pressed,\n        Godot.Core.Input.is_action_just_released,\n        Godot.Core.Input.is_action_pressed,\n        Godot.Core.Input.is_joy_button_pressed,\n        Godot.Core.Input.is_joy_known, Godot.Core.Input.is_key_pressed,\n        Godot.Core.Input.is_mouse_button_pressed,\n        Godot.Core.Input.joy_connection_changed,\n        Godot.Core.Input.parse_input_event,\n        Godot.Core.Input.remove_joy_mapping,\n        Godot.Core.Input.set_custom_mouse_cursor,\n        Godot.Core.Input.set_default_cursor_shape,\n        Godot.Core.Input.set_mouse_mode,\n        Godot.Core.Input.set_use_accumulated_input,\n        Godot.Core.Input.start_joy_vibration,\n        Godot.Core.Input.stop_joy_vibration,\n        Godot.Core.Input.vibrate_handheld,\n        Godot.Core.Input.warp_mouse_position)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n_CURSOR_MOVE :: Int\n_CURSOR_MOVE = 13\n\n_CURSOR_ARROW :: Int\n_CURSOR_ARROW = 0\n\n_CURSOR_IBEAM :: Int\n_CURSOR_IBEAM = 1\n\n_CURSOR_HSPLIT :: Int\n_CURSOR_HSPLIT = 15\n\n_CURSOR_DRAG :: Int\n_CURSOR_DRAG = 6\n\n_CURSOR_BUSY :: Int\n_CURSOR_BUSY = 5\n\n_MOUSE_MODE_CONFINED :: Int\n_MOUSE_MODE_CONFINED = 3\n\n_CURSOR_CROSS :: Int\n_CURSOR_CROSS = 3\n\n_CURSOR_WAIT :: Int\n_CURSOR_WAIT = 4\n\n_CURSOR_BDIAGSIZE :: Int\n_CURSOR_BDIAGSIZE = 11\n\n_CURSOR_HELP :: Int\n_CURSOR_HELP = 16\n\n_MOUSE_MODE_VISIBLE :: Int\n_MOUSE_MODE_VISIBLE = 0\n\n_CURSOR_CAN_DROP :: Int\n_CURSOR_CAN_DROP = 7\n\n_MOUSE_MODE_CAPTURED :: Int\n_MOUSE_MODE_CAPTURED = 2\n\n_CURSOR_POINTING_HAND :: Int\n_CURSOR_POINTING_HAND = 2\n\n_CURSOR_FDIAGSIZE :: Int\n_CURSOR_FDIAGSIZE = 12\n\n_CURSOR_HSIZE :: Int\n_CURSOR_HSIZE = 10\n\n_MOUSE_MODE_HIDDEN :: Int\n_MOUSE_MODE_HIDDEN = 1\n\n_CURSOR_FORBIDDEN :: Int\n_CURSOR_FORBIDDEN = 8\n\n_CURSOR_VSIZE :: Int\n_CURSOR_VSIZE = 9\n\n_CURSOR_VSPLIT :: Int\n_CURSOR_VSPLIT = 14\n\n-- | Emitted when a joypad device has been connected or disconnected.\nsig_joy_connection_changed :: Godot.Internal.Dispatch.Signal Input\nsig_joy_connection_changed\n  = Godot.Internal.Dispatch.Signal \"joy_connection_changed\"\n\ninstance NodeSignal Input \"joy_connection_changed\" '[Int, Bool]\n\n{-# NOINLINE bindInput_action_press #-}\n\n-- | This will simulate pressing the specified action.\n--   \t\t\t\tThe strength can be used for non-boolean actions, it's ranged between 0 and 1 representing the intensity of the given action.\n--   \t\t\t\t__Note:__ This method will not cause any @method Node._input@ calls. It is intended to be used with @method is_action_pressed@ and @method is_action_just_pressed@. If you want to simulate @_input@, use @method parse_input_event@ instead.\nbindInput_action_press :: MethodBind\nbindInput_action_press\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"action_press\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This will simulate pressing the specified action.\n--   \t\t\t\tThe strength can be used for non-boolean actions, it's ranged between 0 and 1 representing the intensity of the given action.\n--   \t\t\t\t__Note:__ This method will not cause any @method Node._input@ calls. It is intended to be used with @method is_action_pressed@ and @method is_action_just_pressed@. If you want to simulate @_input@, use @method parse_input_event@ instead.\naction_press ::\n               (Input :< cls, Object :< cls) =>\n               cls -> GodotString -> Maybe Float -> IO ()\naction_press cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantReal (1)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_action_press (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"action_press\"\n           '[GodotString, Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Input.action_press\n\n{-# NOINLINE bindInput_action_release #-}\n\n-- | If the specified action is already pressed, this will release it.\nbindInput_action_release :: MethodBind\nbindInput_action_release\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"action_release\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If the specified action is already pressed, this will release it.\naction_release ::\n                 (Input :< cls, Object :< cls) => cls -> GodotString -> IO ()\naction_release cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_action_release (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"action_release\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.Input.action_release\n\n{-# NOINLINE bindInput_add_joy_mapping #-}\n\n-- | Adds a new mapping entry (in SDL2 format) to the mapping database. Optionally update already connected devices.\nbindInput_add_joy_mapping :: MethodBind\nbindInput_add_joy_mapping\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"add_joy_mapping\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new mapping entry (in SDL2 format) to the mapping database. Optionally update already connected devices.\nadd_joy_mapping ::\n                  (Input :< cls, Object :< cls) =>\n                  cls -> GodotString -> Maybe Bool -> IO ()\nadd_joy_mapping cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_add_joy_mapping (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"add_joy_mapping\"\n           '[GodotString, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Input.add_joy_mapping\n\n{-# NOINLINE bindInput_get_accelerometer #-}\n\n-- | Returns the acceleration of the device's accelerometer, if the device has one. Otherwise, the method returns @Vector3.ZERO@.\n--   \t\t\t\tNote this method returns an empty @Vector3@ when running from the editor even when your device has an accelerometer. You must export your project to a supported device to read values from the accelerometer.\n--   \t\t\t\t__Note:__ This method only works on iOS, Android, and UWP. On other platforms, it always returns @Vector3.ZERO@.\nbindInput_get_accelerometer :: MethodBind\nbindInput_get_accelerometer\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_accelerometer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the acceleration of the device's accelerometer, if the device has one. Otherwise, the method returns @Vector3.ZERO@.\n--   \t\t\t\tNote this method returns an empty @Vector3@ when running from the editor even when your device has an accelerometer. You must export your project to a supported device to read values from the accelerometer.\n--   \t\t\t\t__Note:__ This method only works on iOS, Android, and UWP. On other platforms, it always returns @Vector3.ZERO@.\nget_accelerometer ::\n                    (Input :< cls, Object :< cls) => cls -> IO Vector3\nget_accelerometer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_accelerometer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_accelerometer\" '[] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Input.get_accelerometer\n\n{-# NOINLINE bindInput_get_action_strength #-}\n\n-- | Returns a value between 0 and 1 representing the intensity of the given action. In a joypad, for example, the further away the axis (analog sticks or L2, R2 triggers) is from the dead zone, the closer the value will be to 1. If the action is mapped to a control that has no axis as the keyboard, the value returned will be 0 or 1.\nbindInput_get_action_strength :: MethodBind\nbindInput_get_action_strength\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_action_strength\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a value between 0 and 1 representing the intensity of the given action. In a joypad, for example, the further away the axis (analog sticks or L2, R2 triggers) is from the dead zone, the closer the value will be to 1. If the action is mapped to a control that has no axis as the keyboard, the value returned will be 0 or 1.\nget_action_strength ::\n                      (Input :< cls, Object :< cls) => cls -> GodotString -> IO Float\nget_action_strength cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_action_strength (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_action_strength\" '[GodotString]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Input.get_action_strength\n\n{-# NOINLINE bindInput_get_connected_joypads #-}\n\n-- | Returns an @Array@ containing the device IDs of all currently connected joypads.\nbindInput_get_connected_joypads :: MethodBind\nbindInput_get_connected_joypads\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_connected_joypads\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an @Array@ containing the device IDs of all currently connected joypads.\nget_connected_joypads ::\n                        (Input :< cls, Object :< cls) => cls -> IO Array\nget_connected_joypads cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_connected_joypads (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_connected_joypads\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.Input.get_connected_joypads\n\n{-# NOINLINE bindInput_get_current_cursor_shape #-}\n\n-- | Returns the currently assigned cursor shape (see @enum CursorShape@).\nbindInput_get_current_cursor_shape :: MethodBind\nbindInput_get_current_cursor_shape\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_cursor_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the currently assigned cursor shape (see @enum CursorShape@).\nget_current_cursor_shape ::\n                           (Input :< cls, Object :< cls) => cls -> IO Int\nget_current_cursor_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_current_cursor_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_current_cursor_shape\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Input.get_current_cursor_shape\n\n{-# NOINLINE bindInput_get_gravity #-}\n\n-- | Returns the gravity of the device's accelerometer, if the device has one. Otherwise, the method returns @Vector3.ZERO@.\n--   \t\t\t\t__Note:__ This method only works on Android and iOS. On other platforms, it always returns @Vector3.ZERO@.\nbindInput_get_gravity :: MethodBind\nbindInput_get_gravity\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_gravity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the gravity of the device's accelerometer, if the device has one. Otherwise, the method returns @Vector3.ZERO@.\n--   \t\t\t\t__Note:__ This method only works on Android and iOS. On other platforms, it always returns @Vector3.ZERO@.\nget_gravity :: (Input :< cls, Object :< cls) => cls -> IO Vector3\nget_gravity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_gravity (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_gravity\" '[] (IO Vector3) where\n        nodeMethod = Godot.Core.Input.get_gravity\n\n{-# NOINLINE bindInput_get_gyroscope #-}\n\n-- | Returns the rotation rate in rad/s around a device's X, Y, and Z axes of the gyroscope, if the device has one. Otherwise, the method returns @Vector3.ZERO@.\n--   \t\t\t\t__Note:__ This method only works on Android. On other platforms, it always returns @Vector3.ZERO@.\nbindInput_get_gyroscope :: MethodBind\nbindInput_get_gyroscope\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_gyroscope\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the rotation rate in rad/s around a device's X, Y, and Z axes of the gyroscope, if the device has one. Otherwise, the method returns @Vector3.ZERO@.\n--   \t\t\t\t__Note:__ This method only works on Android. On other platforms, it always returns @Vector3.ZERO@.\nget_gyroscope :: (Input :< cls, Object :< cls) => cls -> IO Vector3\nget_gyroscope cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_gyroscope (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_gyroscope\" '[] (IO Vector3) where\n        nodeMethod = Godot.Core.Input.get_gyroscope\n\n{-# NOINLINE bindInput_get_joy_axis #-}\n\n-- | Returns the current value of the joypad axis at given index (see @enum JoystickList@).\nbindInput_get_joy_axis :: MethodBind\nbindInput_get_joy_axis\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_joy_axis\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current value of the joypad axis at given index (see @enum JoystickList@).\nget_joy_axis ::\n               (Input :< cls, Object :< cls) => cls -> Int -> Int -> IO Float\nget_joy_axis cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_joy_axis (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_joy_axis\" '[Int, Int] (IO Float)\n         where\n        nodeMethod = Godot.Core.Input.get_joy_axis\n\n{-# NOINLINE bindInput_get_joy_axis_index_from_string #-}\n\n-- | Returns the index of the provided axis name.\nbindInput_get_joy_axis_index_from_string :: MethodBind\nbindInput_get_joy_axis_index_from_string\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_joy_axis_index_from_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the index of the provided axis name.\nget_joy_axis_index_from_string ::\n                                 (Input :< cls, Object :< cls) => cls -> GodotString -> IO Int\nget_joy_axis_index_from_string cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_joy_axis_index_from_string\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_joy_axis_index_from_string\"\n           '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Input.get_joy_axis_index_from_string\n\n{-# NOINLINE bindInput_get_joy_axis_string #-}\n\n-- | Receives a @enum JoystickList@ axis and returns its equivalent name as a string.\nbindInput_get_joy_axis_string :: MethodBind\nbindInput_get_joy_axis_string\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_joy_axis_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Receives a @enum JoystickList@ axis and returns its equivalent name as a string.\nget_joy_axis_string ::\n                      (Input :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_joy_axis_string cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_joy_axis_string (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_joy_axis_string\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Input.get_joy_axis_string\n\n{-# NOINLINE bindInput_get_joy_button_index_from_string #-}\n\n-- | Returns the index of the provided button name.\nbindInput_get_joy_button_index_from_string :: MethodBind\nbindInput_get_joy_button_index_from_string\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_joy_button_index_from_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the index of the provided button name.\nget_joy_button_index_from_string ::\n                                   (Input :< cls, Object :< cls) => cls -> GodotString -> IO Int\nget_joy_button_index_from_string cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_joy_button_index_from_string\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_joy_button_index_from_string\"\n           '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Input.get_joy_button_index_from_string\n\n{-# NOINLINE bindInput_get_joy_button_string #-}\n\n-- | Receives a gamepad button from @enum JoystickList@ and returns its equivalent name as a string.\nbindInput_get_joy_button_string :: MethodBind\nbindInput_get_joy_button_string\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_joy_button_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Receives a gamepad button from @enum JoystickList@ and returns its equivalent name as a string.\nget_joy_button_string ::\n                        (Input :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_joy_button_string cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_joy_button_string (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_joy_button_string\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Input.get_joy_button_string\n\n{-# NOINLINE bindInput_get_joy_guid #-}\n\n-- | Returns a SDL2-compatible device GUID on platforms that use gamepad remapping. Returns @\"Default Gamepad\"@ otherwise.\nbindInput_get_joy_guid :: MethodBind\nbindInput_get_joy_guid\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_joy_guid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a SDL2-compatible device GUID on platforms that use gamepad remapping. Returns @\"Default Gamepad\"@ otherwise.\nget_joy_guid ::\n               (Input :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_joy_guid cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_joy_guid (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_joy_guid\" '[Int] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Input.get_joy_guid\n\n{-# NOINLINE bindInput_get_joy_name #-}\n\n-- | Returns the name of the joypad at the specified device index.\nbindInput_get_joy_name :: MethodBind\nbindInput_get_joy_name\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_joy_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of the joypad at the specified device index.\nget_joy_name ::\n               (Input :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_joy_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_joy_name (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_joy_name\" '[Int] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Input.get_joy_name\n\n{-# NOINLINE bindInput_get_joy_vibration_duration #-}\n\n-- | Returns the duration of the current vibration effect in seconds.\nbindInput_get_joy_vibration_duration :: MethodBind\nbindInput_get_joy_vibration_duration\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_joy_vibration_duration\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the duration of the current vibration effect in seconds.\nget_joy_vibration_duration ::\n                             (Input :< cls, Object :< cls) => cls -> Int -> IO Float\nget_joy_vibration_duration cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_joy_vibration_duration\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_joy_vibration_duration\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Input.get_joy_vibration_duration\n\n{-# NOINLINE bindInput_get_joy_vibration_strength #-}\n\n-- | Returns the strength of the joypad vibration: x is the strength of the weak motor, and y is the strength of the strong motor.\nbindInput_get_joy_vibration_strength :: MethodBind\nbindInput_get_joy_vibration_strength\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_joy_vibration_strength\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the strength of the joypad vibration: x is the strength of the weak motor, and y is the strength of the strong motor.\nget_joy_vibration_strength ::\n                             (Input :< cls, Object :< cls) => cls -> Int -> IO Vector2\nget_joy_vibration_strength cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_joy_vibration_strength\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_joy_vibration_strength\" '[Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Input.get_joy_vibration_strength\n\n{-# NOINLINE bindInput_get_last_mouse_speed #-}\n\n-- | Returns the mouse speed for the last time the cursor was moved, and this until the next frame where the mouse moves. This means that even if the mouse is not moving, this function will still return the value of the last motion.\nbindInput_get_last_mouse_speed :: MethodBind\nbindInput_get_last_mouse_speed\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_last_mouse_speed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the mouse speed for the last time the cursor was moved, and this until the next frame where the mouse moves. This means that even if the mouse is not moving, this function will still return the value of the last motion.\nget_last_mouse_speed ::\n                       (Input :< cls, Object :< cls) => cls -> IO Vector2\nget_last_mouse_speed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_last_mouse_speed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_last_mouse_speed\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Input.get_last_mouse_speed\n\n{-# NOINLINE bindInput_get_magnetometer #-}\n\n-- | Returns the the magnetic field strength in micro-Tesla for all axes of the device's magnetometer, if the device has one. Otherwise, the method returns @Vector3.ZERO@.\n--   \t\t\t\t__Note:__ This method only works on Android and UWP. On other platforms, it always returns @Vector3.ZERO@.\nbindInput_get_magnetometer :: MethodBind\nbindInput_get_magnetometer\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_magnetometer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the the magnetic field strength in micro-Tesla for all axes of the device's magnetometer, if the device has one. Otherwise, the method returns @Vector3.ZERO@.\n--   \t\t\t\t__Note:__ This method only works on Android and UWP. On other platforms, it always returns @Vector3.ZERO@.\nget_magnetometer ::\n                   (Input :< cls, Object :< cls) => cls -> IO Vector3\nget_magnetometer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_magnetometer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_magnetometer\" '[] (IO Vector3) where\n        nodeMethod = Godot.Core.Input.get_magnetometer\n\n{-# NOINLINE bindInput_get_mouse_button_mask #-}\n\n-- | Returns mouse buttons as a bitmask. If multiple mouse buttons are pressed at the same time, the bits are added together.\nbindInput_get_mouse_button_mask :: MethodBind\nbindInput_get_mouse_button_mask\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_mouse_button_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns mouse buttons as a bitmask. If multiple mouse buttons are pressed at the same time, the bits are added together.\nget_mouse_button_mask ::\n                        (Input :< cls, Object :< cls) => cls -> IO Int\nget_mouse_button_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_mouse_button_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_mouse_button_mask\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Input.get_mouse_button_mask\n\n{-# NOINLINE bindInput_get_mouse_mode #-}\n\n-- | Returns the mouse mode. See the constants for more information.\nbindInput_get_mouse_mode :: MethodBind\nbindInput_get_mouse_mode\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"get_mouse_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the mouse mode. See the constants for more information.\nget_mouse_mode :: (Input :< cls, Object :< cls) => cls -> IO Int\nget_mouse_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_get_mouse_mode (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"get_mouse_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Input.get_mouse_mode\n\n{-# NOINLINE bindInput_is_action_just_pressed #-}\n\n-- | Returns @true@ when the user starts pressing the action event, meaning it's @true@ only on the frame that the user pressed down the button.\n--   \t\t\t\tThis is useful for code that needs to run only once when an action is pressed, instead of every frame while it's pressed.\nbindInput_is_action_just_pressed :: MethodBind\nbindInput_is_action_just_pressed\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"is_action_just_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ when the user starts pressing the action event, meaning it's @true@ only on the frame that the user pressed down the button.\n--   \t\t\t\tThis is useful for code that needs to run only once when an action is pressed, instead of every frame while it's pressed.\nis_action_just_pressed ::\n                         (Input :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nis_action_just_pressed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_is_action_just_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"is_action_just_pressed\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Input.is_action_just_pressed\n\n{-# NOINLINE bindInput_is_action_just_released #-}\n\n-- | Returns @true@ when the user stops pressing the action event, meaning it's @true@ only on the frame that the user released the button.\nbindInput_is_action_just_released :: MethodBind\nbindInput_is_action_just_released\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"is_action_just_released\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ when the user stops pressing the action event, meaning it's @true@ only on the frame that the user released the button.\nis_action_just_released ::\n                          (Input :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nis_action_just_released cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_is_action_just_released\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"is_action_just_released\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Input.is_action_just_released\n\n{-# NOINLINE bindInput_is_action_pressed #-}\n\n-- | Returns @true@ if you are pressing the action event. Note that if an action has multiple buttons assigned and more than one of them is pressed, releasing one button will release the action, even if some other button assigned to this action is still pressed.\nbindInput_is_action_pressed :: MethodBind\nbindInput_is_action_pressed\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"is_action_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if you are pressing the action event. Note that if an action has multiple buttons assigned and more than one of them is pressed, releasing one button will release the action, even if some other button assigned to this action is still pressed.\nis_action_pressed ::\n                    (Input :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nis_action_pressed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_is_action_pressed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"is_action_pressed\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Input.is_action_pressed\n\n{-# NOINLINE bindInput_is_joy_button_pressed #-}\n\n-- | Returns @true@ if you are pressing the joypad button (see @enum JoystickList@).\nbindInput_is_joy_button_pressed :: MethodBind\nbindInput_is_joy_button_pressed\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"is_joy_button_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if you are pressing the joypad button (see @enum JoystickList@).\nis_joy_button_pressed ::\n                        (Input :< cls, Object :< cls) => cls -> Int -> Int -> IO Bool\nis_joy_button_pressed cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_is_joy_button_pressed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"is_joy_button_pressed\" '[Int, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Input.is_joy_button_pressed\n\n{-# NOINLINE bindInput_is_joy_known #-}\n\n-- | Returns @true@ if the system knows the specified device. This means that it sets all button and axis indices exactly as defined in @enum JoystickList@. Unknown joypads are not expected to match these constants, but you can still retrieve events from them.\nbindInput_is_joy_known :: MethodBind\nbindInput_is_joy_known\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"is_joy_known\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the system knows the specified device. This means that it sets all button and axis indices exactly as defined in @enum JoystickList@. Unknown joypads are not expected to match these constants, but you can still retrieve events from them.\nis_joy_known ::\n               (Input :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_joy_known cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_is_joy_known (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"is_joy_known\" '[Int] (IO Bool) where\n        nodeMethod = Godot.Core.Input.is_joy_known\n\n{-# NOINLINE bindInput_is_key_pressed #-}\n\n-- | Returns @true@ if you are pressing the key. You can pass a @enum KeyList@ constant.\nbindInput_is_key_pressed :: MethodBind\nbindInput_is_key_pressed\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"is_key_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if you are pressing the key. You can pass a @enum KeyList@ constant.\nis_key_pressed ::\n                 (Input :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_key_pressed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_is_key_pressed (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"is_key_pressed\" '[Int] (IO Bool) where\n        nodeMethod = Godot.Core.Input.is_key_pressed\n\n{-# NOINLINE bindInput_is_mouse_button_pressed #-}\n\n-- | Returns @true@ if you are pressing the mouse button specified with @enum ButtonList@.\nbindInput_is_mouse_button_pressed :: MethodBind\nbindInput_is_mouse_button_pressed\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"is_mouse_button_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if you are pressing the mouse button specified with @enum ButtonList@.\nis_mouse_button_pressed ::\n                          (Input :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_mouse_button_pressed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_is_mouse_button_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"is_mouse_button_pressed\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Input.is_mouse_button_pressed\n\n{-# NOINLINE bindInput_joy_connection_changed #-}\n\n-- | Notifies the @Input@ singleton that a connection has changed, to update the state for the @device@ index.\n--   \t\t\t\tThis is used internally and should not have to be called from user scripts. See @signal joy_connection_changed@ for the signal emitted when this is triggered internally.\nbindInput_joy_connection_changed :: MethodBind\nbindInput_joy_connection_changed\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"joy_connection_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Notifies the @Input@ singleton that a connection has changed, to update the state for the @device@ index.\n--   \t\t\t\tThis is used internally and should not have to be called from user scripts. See @signal joy_connection_changed@ for the signal emitted when this is triggered internally.\njoy_connection_changed ::\n                         (Input :< cls, Object :< cls) =>\n                         cls -> Int -> Bool -> GodotString -> GodotString -> IO ()\njoy_connection_changed cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_joy_connection_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"joy_connection_changed\"\n           '[Int, Bool, GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Input.joy_connection_changed\n\n{-# NOINLINE bindInput_parse_input_event #-}\n\n-- | Feeds an @InputEvent@ to the game. Can be used to artificially trigger input events from code. Also generates @method Node._input@ calls.\n--   \t\t\t\tExample:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar a = InputEventAction.new()\n--   \t\t\t\ta.action = \"ui_cancel\"\n--   \t\t\t\ta.pressed = true\n--   \t\t\t\tInput.parse_input_event(a)\n--   \t\t\t\t\n--   @\nbindInput_parse_input_event :: MethodBind\nbindInput_parse_input_event\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"parse_input_event\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Feeds an @InputEvent@ to the game. Can be used to artificially trigger input events from code. Also generates @method Node._input@ calls.\n--   \t\t\t\tExample:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar a = InputEventAction.new()\n--   \t\t\t\ta.action = \"ui_cancel\"\n--   \t\t\t\ta.pressed = true\n--   \t\t\t\tInput.parse_input_event(a)\n--   \t\t\t\t\n--   @\nparse_input_event ::\n                    (Input :< cls, Object :< cls) => cls -> InputEvent -> IO ()\nparse_input_event cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_parse_input_event (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"parse_input_event\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.Input.parse_input_event\n\n{-# NOINLINE bindInput_remove_joy_mapping #-}\n\n-- | Removes all mappings from the internal database that match the given GUID.\nbindInput_remove_joy_mapping :: MethodBind\nbindInput_remove_joy_mapping\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"remove_joy_mapping\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all mappings from the internal database that match the given GUID.\nremove_joy_mapping ::\n                     (Input :< cls, Object :< cls) => cls -> GodotString -> IO ()\nremove_joy_mapping cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_remove_joy_mapping (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"remove_joy_mapping\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Input.remove_joy_mapping\n\n{-# NOINLINE bindInput_set_custom_mouse_cursor #-}\n\n-- | Sets a custom mouse cursor image, which is only visible inside the game window. The hotspot can also be specified. Passing @null@ to the image parameter resets to the system cursor. See @enum CursorShape@ for the list of shapes.\n--   \t\t\t\t@image@'s size must be lower than 256×256.\n--   \t\t\t\t@hotspot@ must be within @image@'s size.\n--   \t\t\t\t__Note:__ @AnimatedTexture@s aren't supported as custom mouse cursors. If using an @AnimatedTexture@, only the first frame will be displayed.\n--   \t\t\t\t__Note:__ Only images imported with the __Lossless__, __Lossy__ or __Uncompressed__ compression modes are supported. The __Video RAM__ compression mode can't be used for custom cursors.\nbindInput_set_custom_mouse_cursor :: MethodBind\nbindInput_set_custom_mouse_cursor\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"set_custom_mouse_cursor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a custom mouse cursor image, which is only visible inside the game window. The hotspot can also be specified. Passing @null@ to the image parameter resets to the system cursor. See @enum CursorShape@ for the list of shapes.\n--   \t\t\t\t@image@'s size must be lower than 256×256.\n--   \t\t\t\t@hotspot@ must be within @image@'s size.\n--   \t\t\t\t__Note:__ @AnimatedTexture@s aren't supported as custom mouse cursors. If using an @AnimatedTexture@, only the first frame will be displayed.\n--   \t\t\t\t__Note:__ Only images imported with the __Lossless__, __Lossy__ or __Uncompressed__ compression modes are supported. The __Video RAM__ compression mode can't be used for custom cursors.\nset_custom_mouse_cursor ::\n                          (Input :< cls, Object :< cls) =>\n                          cls -> Resource -> Maybe Int -> Maybe Vector2 -> IO ()\nset_custom_mouse_cursor cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (0)) toVariant arg2,\n       defaultedVariant VariantVector2 (V2 0 0) arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_set_custom_mouse_cursor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"set_custom_mouse_cursor\"\n           '[Resource, Maybe Int, Maybe Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Input.set_custom_mouse_cursor\n\n{-# NOINLINE bindInput_set_default_cursor_shape #-}\n\n-- | Sets the default cursor shape to be used in the viewport instead of @CURSOR_ARROW@.\n--   \t\t\t\t__Note:__ If you want to change the default cursor shape for @Control@'s nodes, use @Control.mouse_default_cursor_shape@ instead.\n--   \t\t\t\t__Note:__ This method generates an @InputEventMouseMotion@ to update cursor immediately.\nbindInput_set_default_cursor_shape :: MethodBind\nbindInput_set_default_cursor_shape\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"set_default_cursor_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the default cursor shape to be used in the viewport instead of @CURSOR_ARROW@.\n--   \t\t\t\t__Note:__ If you want to change the default cursor shape for @Control@'s nodes, use @Control.mouse_default_cursor_shape@ instead.\n--   \t\t\t\t__Note:__ This method generates an @InputEventMouseMotion@ to update cursor immediately.\nset_default_cursor_shape ::\n                           (Input :< cls, Object :< cls) => cls -> Maybe Int -> IO ()\nset_default_cursor_shape cls arg1\n  = withVariantArray [maybe (VariantInt (0)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_set_default_cursor_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"set_default_cursor_shape\" '[Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Input.set_default_cursor_shape\n\n{-# NOINLINE bindInput_set_mouse_mode #-}\n\n-- | Sets the mouse mode. See the constants for more information.\nbindInput_set_mouse_mode :: MethodBind\nbindInput_set_mouse_mode\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"set_mouse_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the mouse mode. See the constants for more information.\nset_mouse_mode ::\n                 (Input :< cls, Object :< cls) => cls -> Int -> IO ()\nset_mouse_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_set_mouse_mode (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"set_mouse_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Input.set_mouse_mode\n\n{-# NOINLINE bindInput_set_use_accumulated_input #-}\n\n-- | Enables or disables the accumulation of similar input events sent by the operating system. When input accumulation is enabled, all input events generated during a frame will be merged and emitted when the frame is done rendering. Therefore, this limits the number of input method calls per second to the rendering FPS.\n--   \t\t\t\tInput accumulation is enabled by default. It can be disabled to get slightly more precise/reactive input at the cost of increased CPU usage. In applications where drawing freehand lines is required, input accumulation should generally be disabled while the user is drawing the line to get results that closely follow the actual input.\nbindInput_set_use_accumulated_input :: MethodBind\nbindInput_set_use_accumulated_input\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_accumulated_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables or disables the accumulation of similar input events sent by the operating system. When input accumulation is enabled, all input events generated during a frame will be merged and emitted when the frame is done rendering. Therefore, this limits the number of input method calls per second to the rendering FPS.\n--   \t\t\t\tInput accumulation is enabled by default. It can be disabled to get slightly more precise/reactive input at the cost of increased CPU usage. In applications where drawing freehand lines is required, input accumulation should generally be disabled while the user is drawing the line to get results that closely follow the actual input.\nset_use_accumulated_input ::\n                            (Input :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_accumulated_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_set_use_accumulated_input\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"set_use_accumulated_input\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Input.set_use_accumulated_input\n\n{-# NOINLINE bindInput_start_joy_vibration #-}\n\n-- | Starts to vibrate the joypad. Joypads usually come with two rumble motors, a strong and a weak one. @weak_magnitude@ is the strength of the weak motor (between 0 and 1) and @strong_magnitude@ is the strength of the strong motor (between 0 and 1). @duration@ is the duration of the effect in seconds (a duration of 0 will try to play the vibration indefinitely).\n--   \t\t\t\t__Note:__ Not every hardware is compatible with long effect durations; it is recommended to restart an effect if it has to be played for more than a few seconds.\nbindInput_start_joy_vibration :: MethodBind\nbindInput_start_joy_vibration\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"start_joy_vibration\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Starts to vibrate the joypad. Joypads usually come with two rumble motors, a strong and a weak one. @weak_magnitude@ is the strength of the weak motor (between 0 and 1) and @strong_magnitude@ is the strength of the strong motor (between 0 and 1). @duration@ is the duration of the effect in seconds (a duration of 0 will try to play the vibration indefinitely).\n--   \t\t\t\t__Note:__ Not every hardware is compatible with long effect durations; it is recommended to restart an effect if it has to be played for more than a few seconds.\nstart_joy_vibration ::\n                      (Input :< cls, Object :< cls) =>\n                      cls -> Int -> Float -> Float -> Maybe Float -> IO ()\nstart_joy_vibration cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantReal (0)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_start_joy_vibration (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"start_joy_vibration\"\n           '[Int, Float, Float, Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Input.start_joy_vibration\n\n{-# NOINLINE bindInput_stop_joy_vibration #-}\n\n-- | Stops the vibration of the joypad.\nbindInput_stop_joy_vibration :: MethodBind\nbindInput_stop_joy_vibration\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"stop_joy_vibration\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops the vibration of the joypad.\nstop_joy_vibration ::\n                     (Input :< cls, Object :< cls) => cls -> Int -> IO ()\nstop_joy_vibration cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_stop_joy_vibration (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"stop_joy_vibration\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Input.stop_joy_vibration\n\n{-# NOINLINE bindInput_vibrate_handheld #-}\n\n-- | Vibrate Android and iOS devices.\n--   \t\t\t\t__Note:__ It needs VIBRATE permission for Android at export settings. iOS does not support duration.\nbindInput_vibrate_handheld :: MethodBind\nbindInput_vibrate_handheld\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"vibrate_handheld\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Vibrate Android and iOS devices.\n--   \t\t\t\t__Note:__ It needs VIBRATE permission for Android at export settings. iOS does not support duration.\nvibrate_handheld ::\n                   (Input :< cls, Object :< cls) => cls -> Maybe Int -> IO ()\nvibrate_handheld cls arg1\n  = withVariantArray [maybe (VariantInt (500)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_vibrate_handheld (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"vibrate_handheld\" '[Maybe Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Input.vibrate_handheld\n\n{-# NOINLINE bindInput_warp_mouse_position #-}\n\n-- | Sets the mouse position to the specified vector.\nbindInput_warp_mouse_position :: MethodBind\nbindInput_warp_mouse_position\n  = unsafePerformIO $\n      withCString \"Input\" $\n        \\ clsNamePtr ->\n          withCString \"warp_mouse_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the mouse position to the specified vector.\nwarp_mouse_position ::\n                      (Input :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nwarp_mouse_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInput_warp_mouse_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Input \"warp_mouse_position\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.Input.warp_mouse_position"
  },
  {
    "path": "src/Godot/Core/InputDefault.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InputDefault () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Input()"
  },
  {
    "path": "src/Godot/Core/InputEvent.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InputEvent\n       (Godot.Core.InputEvent.accumulate, Godot.Core.InputEvent.as_text,\n        Godot.Core.InputEvent.get_action_strength,\n        Godot.Core.InputEvent.get_device, Godot.Core.InputEvent.is_action,\n        Godot.Core.InputEvent.is_action_pressed,\n        Godot.Core.InputEvent.is_action_released,\n        Godot.Core.InputEvent.is_action_type,\n        Godot.Core.InputEvent.is_echo, Godot.Core.InputEvent.is_pressed,\n        Godot.Core.InputEvent.set_device,\n        Godot.Core.InputEvent.shortcut_match,\n        Godot.Core.InputEvent.xformed_by)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty InputEvent \"device\" Int 'False where\n        nodeProperty = (get_device, wrapDroppingSetter set_device, Nothing)\n\n{-# NOINLINE bindInputEvent_accumulate #-}\n\n-- | Returns @true@ if the given input event and this input event can be added together (only for events of type @InputEventMouseMotion@).\n--   \t\t\t\tThe given input event's position, global position and speed will be copied. The resulting @relative@ is a sum of both events. Both events' modifiers have to be identical.\nbindInputEvent_accumulate :: MethodBind\nbindInputEvent_accumulate\n  = unsafePerformIO $\n      withCString \"InputEvent\" $\n        \\ clsNamePtr ->\n          withCString \"accumulate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the given input event and this input event can be added together (only for events of type @InputEventMouseMotion@).\n--   \t\t\t\tThe given input event's position, global position and speed will be copied. The resulting @relative@ is a sum of both events. Both events' modifiers have to be identical.\naccumulate ::\n             (InputEvent :< cls, Object :< cls) => cls -> InputEvent -> IO Bool\naccumulate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEvent_accumulate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEvent \"accumulate\" '[InputEvent] (IO Bool)\n         where\n        nodeMethod = Godot.Core.InputEvent.accumulate\n\n{-# NOINLINE bindInputEvent_as_text #-}\n\n-- | Returns a @String@ representation of the event.\nbindInputEvent_as_text :: MethodBind\nbindInputEvent_as_text\n  = unsafePerformIO $\n      withCString \"InputEvent\" $\n        \\ clsNamePtr ->\n          withCString \"as_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @String@ representation of the event.\nas_text ::\n          (InputEvent :< cls, Object :< cls) => cls -> IO GodotString\nas_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEvent_as_text (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEvent \"as_text\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.InputEvent.as_text\n\n{-# NOINLINE bindInputEvent_get_action_strength #-}\n\n-- | Returns a value between 0.0 and 1.0 depending on the given actions' state. Useful for getting the value of events of type @InputEventJoypadMotion@.\nbindInputEvent_get_action_strength :: MethodBind\nbindInputEvent_get_action_strength\n  = unsafePerformIO $\n      withCString \"InputEvent\" $\n        \\ clsNamePtr ->\n          withCString \"get_action_strength\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a value between 0.0 and 1.0 depending on the given actions' state. Useful for getting the value of events of type @InputEventJoypadMotion@.\nget_action_strength ::\n                      (InputEvent :< cls, Object :< cls) =>\n                      cls -> GodotString -> IO Float\nget_action_strength cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEvent_get_action_strength\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEvent \"get_action_strength\" '[GodotString]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.InputEvent.get_action_strength\n\n{-# NOINLINE bindInputEvent_get_device #-}\n\n-- | The event's device ID.\n--   \t\t\t__Note:__ This device ID will always be @-1@ for emulated mouse input from a touchscreen. This can be used to distinguish emulated mouse input from physical mouse input.\nbindInputEvent_get_device :: MethodBind\nbindInputEvent_get_device\n  = unsafePerformIO $\n      withCString \"InputEvent\" $\n        \\ clsNamePtr ->\n          withCString \"get_device\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The event's device ID.\n--   \t\t\t__Note:__ This device ID will always be @-1@ for emulated mouse input from a touchscreen. This can be used to distinguish emulated mouse input from physical mouse input.\nget_device :: (InputEvent :< cls, Object :< cls) => cls -> IO Int\nget_device cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEvent_get_device (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEvent \"get_device\" '[] (IO Int) where\n        nodeMethod = Godot.Core.InputEvent.get_device\n\n{-# NOINLINE bindInputEvent_is_action #-}\n\n-- | Returns @true@ if this input event matches a pre-defined action of any type.\nbindInputEvent_is_action :: MethodBind\nbindInputEvent_is_action\n  = unsafePerformIO $\n      withCString \"InputEvent\" $\n        \\ clsNamePtr ->\n          withCString \"is_action\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this input event matches a pre-defined action of any type.\nis_action ::\n            (InputEvent :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nis_action cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEvent_is_action (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEvent \"is_action\" '[GodotString] (IO Bool)\n         where\n        nodeMethod = Godot.Core.InputEvent.is_action\n\n{-# NOINLINE bindInputEvent_is_action_pressed #-}\n\n-- | Returns @true@ if the given action is being pressed (and is not an echo event for @InputEventKey@ events, unless @allow_echo@ is @true@). Not relevant for events of type @InputEventMouseMotion@ or @InputEventScreenDrag@.\nbindInputEvent_is_action_pressed :: MethodBind\nbindInputEvent_is_action_pressed\n  = unsafePerformIO $\n      withCString \"InputEvent\" $\n        \\ clsNamePtr ->\n          withCString \"is_action_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the given action is being pressed (and is not an echo event for @InputEventKey@ events, unless @allow_echo@ is @true@). Not relevant for events of type @InputEventMouseMotion@ or @InputEventScreenDrag@.\nis_action_pressed ::\n                    (InputEvent :< cls, Object :< cls) =>\n                    cls -> GodotString -> Maybe Bool -> IO Bool\nis_action_pressed cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEvent_is_action_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEvent \"is_action_pressed\"\n           '[GodotString, Maybe Bool]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.InputEvent.is_action_pressed\n\n{-# NOINLINE bindInputEvent_is_action_released #-}\n\n-- | Returns @true@ if the given action is released (i.e. not pressed). Not relevant for events of type @InputEventMouseMotion@ or @InputEventScreenDrag@.\nbindInputEvent_is_action_released :: MethodBind\nbindInputEvent_is_action_released\n  = unsafePerformIO $\n      withCString \"InputEvent\" $\n        \\ clsNamePtr ->\n          withCString \"is_action_released\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the given action is released (i.e. not pressed). Not relevant for events of type @InputEventMouseMotion@ or @InputEventScreenDrag@.\nis_action_released ::\n                     (InputEvent :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nis_action_released cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEvent_is_action_released\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEvent \"is_action_released\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.InputEvent.is_action_released\n\n{-# NOINLINE bindInputEvent_is_action_type #-}\n\n-- | Returns @true@ if this input event's type is one that can be assigned to an input action.\nbindInputEvent_is_action_type :: MethodBind\nbindInputEvent_is_action_type\n  = unsafePerformIO $\n      withCString \"InputEvent\" $\n        \\ clsNamePtr ->\n          withCString \"is_action_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this input event's type is one that can be assigned to an input action.\nis_action_type ::\n                 (InputEvent :< cls, Object :< cls) => cls -> IO Bool\nis_action_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEvent_is_action_type (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEvent \"is_action_type\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.InputEvent.is_action_type\n\n{-# NOINLINE bindInputEvent_is_echo #-}\n\n-- | Returns @true@ if this input event is an echo event (only for events of type @InputEventKey@).\nbindInputEvent_is_echo :: MethodBind\nbindInputEvent_is_echo\n  = unsafePerformIO $\n      withCString \"InputEvent\" $\n        \\ clsNamePtr ->\n          withCString \"is_echo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this input event is an echo event (only for events of type @InputEventKey@).\nis_echo :: (InputEvent :< cls, Object :< cls) => cls -> IO Bool\nis_echo cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEvent_is_echo (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEvent \"is_echo\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.InputEvent.is_echo\n\n{-# NOINLINE bindInputEvent_is_pressed #-}\n\n-- | Returns @true@ if this input event is pressed. Not relevant for events of type @InputEventMouseMotion@ or @InputEventScreenDrag@.\nbindInputEvent_is_pressed :: MethodBind\nbindInputEvent_is_pressed\n  = unsafePerformIO $\n      withCString \"InputEvent\" $\n        \\ clsNamePtr ->\n          withCString \"is_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this input event is pressed. Not relevant for events of type @InputEventMouseMotion@ or @InputEventScreenDrag@.\nis_pressed :: (InputEvent :< cls, Object :< cls) => cls -> IO Bool\nis_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEvent_is_pressed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEvent \"is_pressed\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.InputEvent.is_pressed\n\n{-# NOINLINE bindInputEvent_set_device #-}\n\n-- | The event's device ID.\n--   \t\t\t__Note:__ This device ID will always be @-1@ for emulated mouse input from a touchscreen. This can be used to distinguish emulated mouse input from physical mouse input.\nbindInputEvent_set_device :: MethodBind\nbindInputEvent_set_device\n  = unsafePerformIO $\n      withCString \"InputEvent\" $\n        \\ clsNamePtr ->\n          withCString \"set_device\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The event's device ID.\n--   \t\t\t__Note:__ This device ID will always be @-1@ for emulated mouse input from a touchscreen. This can be used to distinguish emulated mouse input from physical mouse input.\nset_device ::\n             (InputEvent :< cls, Object :< cls) => cls -> Int -> IO ()\nset_device cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEvent_set_device (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEvent \"set_device\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.InputEvent.set_device\n\n{-# NOINLINE bindInputEvent_shortcut_match #-}\n\n-- | Returns @true@ if the given input event is checking for the same key (@InputEventKey@), button (@InputEventJoypadButton@) or action (@InputEventAction@).\nbindInputEvent_shortcut_match :: MethodBind\nbindInputEvent_shortcut_match\n  = unsafePerformIO $\n      withCString \"InputEvent\" $\n        \\ clsNamePtr ->\n          withCString \"shortcut_match\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the given input event is checking for the same key (@InputEventKey@), button (@InputEventJoypadButton@) or action (@InputEventAction@).\nshortcut_match ::\n                 (InputEvent :< cls, Object :< cls) => cls -> InputEvent -> IO Bool\nshortcut_match cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEvent_shortcut_match (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEvent \"shortcut_match\" '[InputEvent]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.InputEvent.shortcut_match\n\n{-# NOINLINE bindInputEvent_xformed_by #-}\n\n-- | Returns a copy of the given input event which has been offset by @local_ofs@ and transformed by @xform@. Relevant for events of type @InputEventMouseButton@, @InputEventMouseMotion@, @InputEventScreenTouch@, @InputEventScreenDrag@, @InputEventMagnifyGesture@ and @InputEventPanGesture@.\nbindInputEvent_xformed_by :: MethodBind\nbindInputEvent_xformed_by\n  = unsafePerformIO $\n      withCString \"InputEvent\" $\n        \\ clsNamePtr ->\n          withCString \"xformed_by\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a copy of the given input event which has been offset by @local_ofs@ and transformed by @xform@. Relevant for events of type @InputEventMouseButton@, @InputEventMouseMotion@, @InputEventScreenTouch@, @InputEventScreenDrag@, @InputEventMagnifyGesture@ and @InputEventPanGesture@.\nxformed_by ::\n             (InputEvent :< cls, Object :< cls) =>\n             cls -> Transform2d -> Maybe Vector2 -> IO InputEvent\nxformed_by cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantVector2 (V2 0 0) arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEvent_xformed_by (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEvent \"xformed_by\"\n           '[Transform2d, Maybe Vector2]\n           (IO InputEvent)\n         where\n        nodeMethod = Godot.Core.InputEvent.xformed_by"
  },
  {
    "path": "src/Godot/Core/InputEventAction.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InputEventAction\n       (Godot.Core.InputEventAction.is_pressed,\n        Godot.Core.InputEventAction.get_action,\n        Godot.Core.InputEventAction.get_strength,\n        Godot.Core.InputEventAction.set_action,\n        Godot.Core.InputEventAction.set_pressed,\n        Godot.Core.InputEventAction.set_strength)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.InputEvent()\n\ninstance NodeProperty InputEventAction \"action\" GodotString 'False\n         where\n        nodeProperty = (get_action, wrapDroppingSetter set_action, Nothing)\n\n{-# NOINLINE bindInputEventAction_is_pressed #-}\n\n-- | If @true@, the action's state is pressed. If @false@, the action's state is released.\nbindInputEventAction_is_pressed :: MethodBind\nbindInputEventAction_is_pressed\n  = unsafePerformIO $\n      withCString \"InputEventAction\" $\n        \\ clsNamePtr ->\n          withCString \"is_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the action's state is pressed. If @false@, the action's state is released.\nis_pressed ::\n             (InputEventAction :< cls, Object :< cls) => cls -> IO Bool\nis_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventAction_is_pressed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventAction \"is_pressed\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.InputEventAction.is_pressed\n\ninstance NodeProperty InputEventAction \"pressed\" Bool 'False where\n        nodeProperty\n          = (is_pressed, wrapDroppingSetter set_pressed, Nothing)\n\ninstance NodeProperty InputEventAction \"strength\" Float 'False\n         where\n        nodeProperty\n          = (get_strength, wrapDroppingSetter set_strength, Nothing)\n\n{-# NOINLINE bindInputEventAction_get_action #-}\n\n-- | The action's name. Actions are accessed via this @String@.\nbindInputEventAction_get_action :: MethodBind\nbindInputEventAction_get_action\n  = unsafePerformIO $\n      withCString \"InputEventAction\" $\n        \\ clsNamePtr ->\n          withCString \"get_action\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The action's name. Actions are accessed via this @String@.\nget_action ::\n             (InputEventAction :< cls, Object :< cls) => cls -> IO GodotString\nget_action cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventAction_get_action (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventAction \"get_action\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.InputEventAction.get_action\n\n{-# NOINLINE bindInputEventAction_get_strength #-}\n\n-- | The action's strength between 0 and 1. This value is considered as equal to 0 if pressed is @false@. The event strength allows faking analog joypad motion events, by precising how strongly is the joypad axis bent or pressed.\nbindInputEventAction_get_strength :: MethodBind\nbindInputEventAction_get_strength\n  = unsafePerformIO $\n      withCString \"InputEventAction\" $\n        \\ clsNamePtr ->\n          withCString \"get_strength\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The action's strength between 0 and 1. This value is considered as equal to 0 if pressed is @false@. The event strength allows faking analog joypad motion events, by precising how strongly is the joypad axis bent or pressed.\nget_strength ::\n               (InputEventAction :< cls, Object :< cls) => cls -> IO Float\nget_strength cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventAction_get_strength\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventAction \"get_strength\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.InputEventAction.get_strength\n\n{-# NOINLINE bindInputEventAction_set_action #-}\n\n-- | The action's name. Actions are accessed via this @String@.\nbindInputEventAction_set_action :: MethodBind\nbindInputEventAction_set_action\n  = unsafePerformIO $\n      withCString \"InputEventAction\" $\n        \\ clsNamePtr ->\n          withCString \"set_action\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The action's name. Actions are accessed via this @String@.\nset_action ::\n             (InputEventAction :< cls, Object :< cls) =>\n             cls -> GodotString -> IO ()\nset_action cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventAction_set_action (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventAction \"set_action\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventAction.set_action\n\n{-# NOINLINE bindInputEventAction_set_pressed #-}\n\n-- | If @true@, the action's state is pressed. If @false@, the action's state is released.\nbindInputEventAction_set_pressed :: MethodBind\nbindInputEventAction_set_pressed\n  = unsafePerformIO $\n      withCString \"InputEventAction\" $\n        \\ clsNamePtr ->\n          withCString \"set_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the action's state is pressed. If @false@, the action's state is released.\nset_pressed ::\n              (InputEventAction :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_pressed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventAction_set_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventAction \"set_pressed\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventAction.set_pressed\n\n{-# NOINLINE bindInputEventAction_set_strength #-}\n\n-- | The action's strength between 0 and 1. This value is considered as equal to 0 if pressed is @false@. The event strength allows faking analog joypad motion events, by precising how strongly is the joypad axis bent or pressed.\nbindInputEventAction_set_strength :: MethodBind\nbindInputEventAction_set_strength\n  = unsafePerformIO $\n      withCString \"InputEventAction\" $\n        \\ clsNamePtr ->\n          withCString \"set_strength\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The action's strength between 0 and 1. This value is considered as equal to 0 if pressed is @false@. The event strength allows faking analog joypad motion events, by precising how strongly is the joypad axis bent or pressed.\nset_strength ::\n               (InputEventAction :< cls, Object :< cls) => cls -> Float -> IO ()\nset_strength cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventAction_set_strength\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventAction \"set_strength\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventAction.set_strength"
  },
  {
    "path": "src/Godot/Core/InputEventGesture.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InputEventGesture\n       (Godot.Core.InputEventGesture.get_position,\n        Godot.Core.InputEventGesture.set_position)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.InputEventWithModifiers()\n\ninstance NodeProperty InputEventGesture \"position\" Vector2 'False\n         where\n        nodeProperty\n          = (get_position, wrapDroppingSetter set_position, Nothing)\n\n{-# NOINLINE bindInputEventGesture_get_position #-}\n\n-- | The local gesture position relative to the @Viewport@. If used in @method Control._gui_input@, the position is relative to the current @Control@ that received this gesture.\nbindInputEventGesture_get_position :: MethodBind\nbindInputEventGesture_get_position\n  = unsafePerformIO $\n      withCString \"InputEventGesture\" $\n        \\ clsNamePtr ->\n          withCString \"get_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The local gesture position relative to the @Viewport@. If used in @method Control._gui_input@, the position is relative to the current @Control@ that received this gesture.\nget_position ::\n               (InputEventGesture :< cls, Object :< cls) => cls -> IO Vector2\nget_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventGesture_get_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventGesture \"get_position\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.InputEventGesture.get_position\n\n{-# NOINLINE bindInputEventGesture_set_position #-}\n\n-- | The local gesture position relative to the @Viewport@. If used in @method Control._gui_input@, the position is relative to the current @Control@ that received this gesture.\nbindInputEventGesture_set_position :: MethodBind\nbindInputEventGesture_set_position\n  = unsafePerformIO $\n      withCString \"InputEventGesture\" $\n        \\ clsNamePtr ->\n          withCString \"set_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The local gesture position relative to the @Viewport@. If used in @method Control._gui_input@, the position is relative to the current @Control@ that received this gesture.\nset_position ::\n               (InputEventGesture :< cls, Object :< cls) =>\n               cls -> Vector2 -> IO ()\nset_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventGesture_set_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventGesture \"set_position\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventGesture.set_position"
  },
  {
    "path": "src/Godot/Core/InputEventJoypadButton.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InputEventJoypadButton\n       (Godot.Core.InputEventJoypadButton.is_pressed,\n        Godot.Core.InputEventJoypadButton.get_button_index,\n        Godot.Core.InputEventJoypadButton.get_pressure,\n        Godot.Core.InputEventJoypadButton.set_button_index,\n        Godot.Core.InputEventJoypadButton.set_pressed,\n        Godot.Core.InputEventJoypadButton.set_pressure)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.InputEvent()\n\ninstance NodeProperty InputEventJoypadButton \"button_index\" Int\n           'False\n         where\n        nodeProperty\n          = (get_button_index, wrapDroppingSetter set_button_index, Nothing)\n\n{-# NOINLINE bindInputEventJoypadButton_is_pressed #-}\n\n-- | If @true@, the button's state is pressed. If @false@, the button's state is released.\nbindInputEventJoypadButton_is_pressed :: MethodBind\nbindInputEventJoypadButton_is_pressed\n  = unsafePerformIO $\n      withCString \"InputEventJoypadButton\" $\n        \\ clsNamePtr ->\n          withCString \"is_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the button's state is pressed. If @false@, the button's state is released.\nis_pressed ::\n             (InputEventJoypadButton :< cls, Object :< cls) => cls -> IO Bool\nis_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventJoypadButton_is_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventJoypadButton \"is_pressed\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.InputEventJoypadButton.is_pressed\n\ninstance NodeProperty InputEventJoypadButton \"pressed\" Bool 'False\n         where\n        nodeProperty\n          = (is_pressed, wrapDroppingSetter set_pressed, Nothing)\n\ninstance NodeProperty InputEventJoypadButton \"pressure\" Float\n           'False\n         where\n        nodeProperty\n          = (get_pressure, wrapDroppingSetter set_pressure, Nothing)\n\n{-# NOINLINE bindInputEventJoypadButton_get_button_index #-}\n\n-- | Button identifier. One of the @enum JoystickList@ button constants.\nbindInputEventJoypadButton_get_button_index :: MethodBind\nbindInputEventJoypadButton_get_button_index\n  = unsafePerformIO $\n      withCString \"InputEventJoypadButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_button_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Button identifier. One of the @enum JoystickList@ button constants.\nget_button_index ::\n                   (InputEventJoypadButton :< cls, Object :< cls) => cls -> IO Int\nget_button_index cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventJoypadButton_get_button_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventJoypadButton \"get_button_index\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.InputEventJoypadButton.get_button_index\n\n{-# NOINLINE bindInputEventJoypadButton_get_pressure #-}\n\n-- | Represents the pressure the user puts on the button with his finger, if the controller supports it. Ranges from @0@ to @1@.\nbindInputEventJoypadButton_get_pressure :: MethodBind\nbindInputEventJoypadButton_get_pressure\n  = unsafePerformIO $\n      withCString \"InputEventJoypadButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_pressure\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Represents the pressure the user puts on the button with his finger, if the controller supports it. Ranges from @0@ to @1@.\nget_pressure ::\n               (InputEventJoypadButton :< cls, Object :< cls) => cls -> IO Float\nget_pressure cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventJoypadButton_get_pressure\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventJoypadButton \"get_pressure\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.InputEventJoypadButton.get_pressure\n\n{-# NOINLINE bindInputEventJoypadButton_set_button_index #-}\n\n-- | Button identifier. One of the @enum JoystickList@ button constants.\nbindInputEventJoypadButton_set_button_index :: MethodBind\nbindInputEventJoypadButton_set_button_index\n  = unsafePerformIO $\n      withCString \"InputEventJoypadButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_button_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Button identifier. One of the @enum JoystickList@ button constants.\nset_button_index ::\n                   (InputEventJoypadButton :< cls, Object :< cls) =>\n                   cls -> Int -> IO ()\nset_button_index cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventJoypadButton_set_button_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventJoypadButton \"set_button_index\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventJoypadButton.set_button_index\n\n{-# NOINLINE bindInputEventJoypadButton_set_pressed #-}\n\n-- | If @true@, the button's state is pressed. If @false@, the button's state is released.\nbindInputEventJoypadButton_set_pressed :: MethodBind\nbindInputEventJoypadButton_set_pressed\n  = unsafePerformIO $\n      withCString \"InputEventJoypadButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the button's state is pressed. If @false@, the button's state is released.\nset_pressed ::\n              (InputEventJoypadButton :< cls, Object :< cls) =>\n              cls -> Bool -> IO ()\nset_pressed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventJoypadButton_set_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventJoypadButton \"set_pressed\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventJoypadButton.set_pressed\n\n{-# NOINLINE bindInputEventJoypadButton_set_pressure #-}\n\n-- | Represents the pressure the user puts on the button with his finger, if the controller supports it. Ranges from @0@ to @1@.\nbindInputEventJoypadButton_set_pressure :: MethodBind\nbindInputEventJoypadButton_set_pressure\n  = unsafePerformIO $\n      withCString \"InputEventJoypadButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_pressure\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Represents the pressure the user puts on the button with his finger, if the controller supports it. Ranges from @0@ to @1@.\nset_pressure ::\n               (InputEventJoypadButton :< cls, Object :< cls) =>\n               cls -> Float -> IO ()\nset_pressure cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventJoypadButton_set_pressure\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventJoypadButton \"set_pressure\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventJoypadButton.set_pressure"
  },
  {
    "path": "src/Godot/Core/InputEventJoypadMotion.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InputEventJoypadMotion\n       (Godot.Core.InputEventJoypadMotion.get_axis,\n        Godot.Core.InputEventJoypadMotion.get_axis_value,\n        Godot.Core.InputEventJoypadMotion.set_axis,\n        Godot.Core.InputEventJoypadMotion.set_axis_value)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.InputEvent()\n\ninstance NodeProperty InputEventJoypadMotion \"axis\" Int 'False\n         where\n        nodeProperty = (get_axis, wrapDroppingSetter set_axis, Nothing)\n\ninstance NodeProperty InputEventJoypadMotion \"axis_value\" Float\n           'False\n         where\n        nodeProperty\n          = (get_axis_value, wrapDroppingSetter set_axis_value, Nothing)\n\n{-# NOINLINE bindInputEventJoypadMotion_get_axis #-}\n\n-- | Axis identifier. Use one of the @enum JoystickList@ axis constants.\nbindInputEventJoypadMotion_get_axis :: MethodBind\nbindInputEventJoypadMotion_get_axis\n  = unsafePerformIO $\n      withCString \"InputEventJoypadMotion\" $\n        \\ clsNamePtr ->\n          withCString \"get_axis\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Axis identifier. Use one of the @enum JoystickList@ axis constants.\nget_axis ::\n           (InputEventJoypadMotion :< cls, Object :< cls) => cls -> IO Int\nget_axis cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventJoypadMotion_get_axis\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventJoypadMotion \"get_axis\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.InputEventJoypadMotion.get_axis\n\n{-# NOINLINE bindInputEventJoypadMotion_get_axis_value #-}\n\n-- | Current position of the joystick on the given axis. The value ranges from @-1.0@ to @1.0@. A value of @0@ means the axis is in its resting position.\nbindInputEventJoypadMotion_get_axis_value :: MethodBind\nbindInputEventJoypadMotion_get_axis_value\n  = unsafePerformIO $\n      withCString \"InputEventJoypadMotion\" $\n        \\ clsNamePtr ->\n          withCString \"get_axis_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Current position of the joystick on the given axis. The value ranges from @-1.0@ to @1.0@. A value of @0@ means the axis is in its resting position.\nget_axis_value ::\n                 (InputEventJoypadMotion :< cls, Object :< cls) => cls -> IO Float\nget_axis_value cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventJoypadMotion_get_axis_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventJoypadMotion \"get_axis_value\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.InputEventJoypadMotion.get_axis_value\n\n{-# NOINLINE bindInputEventJoypadMotion_set_axis #-}\n\n-- | Axis identifier. Use one of the @enum JoystickList@ axis constants.\nbindInputEventJoypadMotion_set_axis :: MethodBind\nbindInputEventJoypadMotion_set_axis\n  = unsafePerformIO $\n      withCString \"InputEventJoypadMotion\" $\n        \\ clsNamePtr ->\n          withCString \"set_axis\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Axis identifier. Use one of the @enum JoystickList@ axis constants.\nset_axis ::\n           (InputEventJoypadMotion :< cls, Object :< cls) =>\n           cls -> Int -> IO ()\nset_axis cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventJoypadMotion_set_axis\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventJoypadMotion \"set_axis\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventJoypadMotion.set_axis\n\n{-# NOINLINE bindInputEventJoypadMotion_set_axis_value #-}\n\n-- | Current position of the joystick on the given axis. The value ranges from @-1.0@ to @1.0@. A value of @0@ means the axis is in its resting position.\nbindInputEventJoypadMotion_set_axis_value :: MethodBind\nbindInputEventJoypadMotion_set_axis_value\n  = unsafePerformIO $\n      withCString \"InputEventJoypadMotion\" $\n        \\ clsNamePtr ->\n          withCString \"set_axis_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Current position of the joystick on the given axis. The value ranges from @-1.0@ to @1.0@. A value of @0@ means the axis is in its resting position.\nset_axis_value ::\n                 (InputEventJoypadMotion :< cls, Object :< cls) =>\n                 cls -> Float -> IO ()\nset_axis_value cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventJoypadMotion_set_axis_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventJoypadMotion \"set_axis_value\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventJoypadMotion.set_axis_value"
  },
  {
    "path": "src/Godot/Core/InputEventKey.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InputEventKey\n       (Godot.Core.InputEventKey.is_echo,\n        Godot.Core.InputEventKey.is_pressed,\n        Godot.Core.InputEventKey.get_scancode,\n        Godot.Core.InputEventKey.get_scancode_with_modifiers,\n        Godot.Core.InputEventKey.get_unicode,\n        Godot.Core.InputEventKey.set_echo,\n        Godot.Core.InputEventKey.set_pressed,\n        Godot.Core.InputEventKey.set_scancode,\n        Godot.Core.InputEventKey.set_unicode)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.InputEventWithModifiers()\n\n{-# NOINLINE bindInputEventKey_is_echo #-}\n\n-- | If @true@, the key was already pressed before this event. It means the user is holding the key down.\nbindInputEventKey_is_echo :: MethodBind\nbindInputEventKey_is_echo\n  = unsafePerformIO $\n      withCString \"InputEventKey\" $\n        \\ clsNamePtr ->\n          withCString \"is_echo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the key was already pressed before this event. It means the user is holding the key down.\nis_echo :: (InputEventKey :< cls, Object :< cls) => cls -> IO Bool\nis_echo cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventKey_is_echo (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventKey \"is_echo\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.InputEventKey.is_echo\n\ninstance NodeProperty InputEventKey \"echo\" Bool 'False where\n        nodeProperty = (is_echo, wrapDroppingSetter set_echo, Nothing)\n\n{-# NOINLINE bindInputEventKey_is_pressed #-}\n\n-- | If @true@, the key's state is pressed. If @false@, the key's state is released.\nbindInputEventKey_is_pressed :: MethodBind\nbindInputEventKey_is_pressed\n  = unsafePerformIO $\n      withCString \"InputEventKey\" $\n        \\ clsNamePtr ->\n          withCString \"is_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the key's state is pressed. If @false@, the key's state is released.\nis_pressed ::\n             (InputEventKey :< cls, Object :< cls) => cls -> IO Bool\nis_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventKey_is_pressed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventKey \"is_pressed\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.InputEventKey.is_pressed\n\ninstance NodeProperty InputEventKey \"pressed\" Bool 'False where\n        nodeProperty\n          = (is_pressed, wrapDroppingSetter set_pressed, Nothing)\n\ninstance NodeProperty InputEventKey \"scancode\" Int 'False where\n        nodeProperty\n          = (get_scancode, wrapDroppingSetter set_scancode, Nothing)\n\ninstance NodeProperty InputEventKey \"unicode\" Int 'False where\n        nodeProperty\n          = (get_unicode, wrapDroppingSetter set_unicode, Nothing)\n\n{-# NOINLINE bindInputEventKey_get_scancode #-}\n\n-- | The key scancode, which corresponds to one of the @enum KeyList@ constants.\n--   \t\t\tTo get a human-readable representation of the @InputEventKey@, use @OS.get_scancode_string(event.scancode)@ where @event@ is the @InputEventKey@.\nbindInputEventKey_get_scancode :: MethodBind\nbindInputEventKey_get_scancode\n  = unsafePerformIO $\n      withCString \"InputEventKey\" $\n        \\ clsNamePtr ->\n          withCString \"get_scancode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The key scancode, which corresponds to one of the @enum KeyList@ constants.\n--   \t\t\tTo get a human-readable representation of the @InputEventKey@, use @OS.get_scancode_string(event.scancode)@ where @event@ is the @InputEventKey@.\nget_scancode ::\n               (InputEventKey :< cls, Object :< cls) => cls -> IO Int\nget_scancode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventKey_get_scancode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventKey \"get_scancode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.InputEventKey.get_scancode\n\n{-# NOINLINE bindInputEventKey_get_scancode_with_modifiers #-}\n\n-- | Returns the scancode combined with modifier keys such as @Shift@ or @Alt@. See also @InputEventWithModifiers@.\n--   \t\t\t\tTo get a human-readable representation of the @InputEventKey@ with modifiers, use @OS.get_scancode_string(event.get_scancode_with_modifiers())@ where @event@ is the @InputEventKey@.\nbindInputEventKey_get_scancode_with_modifiers :: MethodBind\nbindInputEventKey_get_scancode_with_modifiers\n  = unsafePerformIO $\n      withCString \"InputEventKey\" $\n        \\ clsNamePtr ->\n          withCString \"get_scancode_with_modifiers\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the scancode combined with modifier keys such as @Shift@ or @Alt@. See also @InputEventWithModifiers@.\n--   \t\t\t\tTo get a human-readable representation of the @InputEventKey@ with modifiers, use @OS.get_scancode_string(event.get_scancode_with_modifiers())@ where @event@ is the @InputEventKey@.\nget_scancode_with_modifiers ::\n                              (InputEventKey :< cls, Object :< cls) => cls -> IO Int\nget_scancode_with_modifiers cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindInputEventKey_get_scancode_with_modifiers\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventKey \"get_scancode_with_modifiers\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.InputEventKey.get_scancode_with_modifiers\n\n{-# NOINLINE bindInputEventKey_get_unicode #-}\n\n-- | The key Unicode identifier (when relevant). Unicode identifiers for the composite characters and complex scripts may not be available unless IME input mode is active. See @method OS.set_ime_active@ for more information.\nbindInputEventKey_get_unicode :: MethodBind\nbindInputEventKey_get_unicode\n  = unsafePerformIO $\n      withCString \"InputEventKey\" $\n        \\ clsNamePtr ->\n          withCString \"get_unicode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The key Unicode identifier (when relevant). Unicode identifiers for the composite characters and complex scripts may not be available unless IME input mode is active. See @method OS.set_ime_active@ for more information.\nget_unicode ::\n              (InputEventKey :< cls, Object :< cls) => cls -> IO Int\nget_unicode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventKey_get_unicode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventKey \"get_unicode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.InputEventKey.get_unicode\n\n{-# NOINLINE bindInputEventKey_set_echo #-}\n\n-- | If @true@, the key was already pressed before this event. It means the user is holding the key down.\nbindInputEventKey_set_echo :: MethodBind\nbindInputEventKey_set_echo\n  = unsafePerformIO $\n      withCString \"InputEventKey\" $\n        \\ clsNamePtr ->\n          withCString \"set_echo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the key was already pressed before this event. It means the user is holding the key down.\nset_echo ::\n           (InputEventKey :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_echo cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventKey_set_echo (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventKey \"set_echo\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.InputEventKey.set_echo\n\n{-# NOINLINE bindInputEventKey_set_pressed #-}\n\n-- | If @true@, the key's state is pressed. If @false@, the key's state is released.\nbindInputEventKey_set_pressed :: MethodBind\nbindInputEventKey_set_pressed\n  = unsafePerformIO $\n      withCString \"InputEventKey\" $\n        \\ clsNamePtr ->\n          withCString \"set_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the key's state is pressed. If @false@, the key's state is released.\nset_pressed ::\n              (InputEventKey :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_pressed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventKey_set_pressed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventKey \"set_pressed\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventKey.set_pressed\n\n{-# NOINLINE bindInputEventKey_set_scancode #-}\n\n-- | The key scancode, which corresponds to one of the @enum KeyList@ constants.\n--   \t\t\tTo get a human-readable representation of the @InputEventKey@, use @OS.get_scancode_string(event.scancode)@ where @event@ is the @InputEventKey@.\nbindInputEventKey_set_scancode :: MethodBind\nbindInputEventKey_set_scancode\n  = unsafePerformIO $\n      withCString \"InputEventKey\" $\n        \\ clsNamePtr ->\n          withCString \"set_scancode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The key scancode, which corresponds to one of the @enum KeyList@ constants.\n--   \t\t\tTo get a human-readable representation of the @InputEventKey@, use @OS.get_scancode_string(event.scancode)@ where @event@ is the @InputEventKey@.\nset_scancode ::\n               (InputEventKey :< cls, Object :< cls) => cls -> Int -> IO ()\nset_scancode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventKey_set_scancode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventKey \"set_scancode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventKey.set_scancode\n\n{-# NOINLINE bindInputEventKey_set_unicode #-}\n\n-- | The key Unicode identifier (when relevant). Unicode identifiers for the composite characters and complex scripts may not be available unless IME input mode is active. See @method OS.set_ime_active@ for more information.\nbindInputEventKey_set_unicode :: MethodBind\nbindInputEventKey_set_unicode\n  = unsafePerformIO $\n      withCString \"InputEventKey\" $\n        \\ clsNamePtr ->\n          withCString \"set_unicode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The key Unicode identifier (when relevant). Unicode identifiers for the composite characters and complex scripts may not be available unless IME input mode is active. See @method OS.set_ime_active@ for more information.\nset_unicode ::\n              (InputEventKey :< cls, Object :< cls) => cls -> Int -> IO ()\nset_unicode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventKey_set_unicode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventKey \"set_unicode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventKey.set_unicode"
  },
  {
    "path": "src/Godot/Core/InputEventMIDI.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InputEventMIDI\n       (Godot.Core.InputEventMIDI.get_channel,\n        Godot.Core.InputEventMIDI.get_controller_number,\n        Godot.Core.InputEventMIDI.get_controller_value,\n        Godot.Core.InputEventMIDI.get_instrument,\n        Godot.Core.InputEventMIDI.get_message,\n        Godot.Core.InputEventMIDI.get_pitch,\n        Godot.Core.InputEventMIDI.get_pressure,\n        Godot.Core.InputEventMIDI.get_velocity,\n        Godot.Core.InputEventMIDI.set_channel,\n        Godot.Core.InputEventMIDI.set_controller_number,\n        Godot.Core.InputEventMIDI.set_controller_value,\n        Godot.Core.InputEventMIDI.set_instrument,\n        Godot.Core.InputEventMIDI.set_message,\n        Godot.Core.InputEventMIDI.set_pitch,\n        Godot.Core.InputEventMIDI.set_pressure,\n        Godot.Core.InputEventMIDI.set_velocity)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.InputEvent()\n\ninstance NodeProperty InputEventMIDI \"channel\" Int 'False where\n        nodeProperty\n          = (get_channel, wrapDroppingSetter set_channel, Nothing)\n\ninstance NodeProperty InputEventMIDI \"controller_number\" Int 'False\n         where\n        nodeProperty\n          = (get_controller_number, wrapDroppingSetter set_controller_number,\n             Nothing)\n\ninstance NodeProperty InputEventMIDI \"controller_value\" Int 'False\n         where\n        nodeProperty\n          = (get_controller_value, wrapDroppingSetter set_controller_value,\n             Nothing)\n\ninstance NodeProperty InputEventMIDI \"instrument\" Int 'False where\n        nodeProperty\n          = (get_instrument, wrapDroppingSetter set_instrument, Nothing)\n\ninstance NodeProperty InputEventMIDI \"message\" Int 'False where\n        nodeProperty\n          = (get_message, wrapDroppingSetter set_message, Nothing)\n\ninstance NodeProperty InputEventMIDI \"pitch\" Int 'False where\n        nodeProperty = (get_pitch, wrapDroppingSetter set_pitch, Nothing)\n\ninstance NodeProperty InputEventMIDI \"pressure\" Int 'False where\n        nodeProperty\n          = (get_pressure, wrapDroppingSetter set_pressure, Nothing)\n\ninstance NodeProperty InputEventMIDI \"velocity\" Int 'False where\n        nodeProperty\n          = (get_velocity, wrapDroppingSetter set_velocity, Nothing)\n\n{-# NOINLINE bindInputEventMIDI_get_channel #-}\n\nbindInputEventMIDI_get_channel :: MethodBind\nbindInputEventMIDI_get_channel\n  = unsafePerformIO $\n      withCString \"InputEventMIDI\" $\n        \\ clsNamePtr ->\n          withCString \"get_channel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_channel ::\n              (InputEventMIDI :< cls, Object :< cls) => cls -> IO Int\nget_channel cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMIDI_get_channel (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMIDI \"get_channel\" '[] (IO Int) where\n        nodeMethod = Godot.Core.InputEventMIDI.get_channel\n\n{-# NOINLINE bindInputEventMIDI_get_controller_number #-}\n\nbindInputEventMIDI_get_controller_number :: MethodBind\nbindInputEventMIDI_get_controller_number\n  = unsafePerformIO $\n      withCString \"InputEventMIDI\" $\n        \\ clsNamePtr ->\n          withCString \"get_controller_number\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_controller_number ::\n                        (InputEventMIDI :< cls, Object :< cls) => cls -> IO Int\nget_controller_number cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMIDI_get_controller_number\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMIDI \"get_controller_number\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.InputEventMIDI.get_controller_number\n\n{-# NOINLINE bindInputEventMIDI_get_controller_value #-}\n\nbindInputEventMIDI_get_controller_value :: MethodBind\nbindInputEventMIDI_get_controller_value\n  = unsafePerformIO $\n      withCString \"InputEventMIDI\" $\n        \\ clsNamePtr ->\n          withCString \"get_controller_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_controller_value ::\n                       (InputEventMIDI :< cls, Object :< cls) => cls -> IO Int\nget_controller_value cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMIDI_get_controller_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMIDI \"get_controller_value\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.InputEventMIDI.get_controller_value\n\n{-# NOINLINE bindInputEventMIDI_get_instrument #-}\n\nbindInputEventMIDI_get_instrument :: MethodBind\nbindInputEventMIDI_get_instrument\n  = unsafePerformIO $\n      withCString \"InputEventMIDI\" $\n        \\ clsNamePtr ->\n          withCString \"get_instrument\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_instrument ::\n                 (InputEventMIDI :< cls, Object :< cls) => cls -> IO Int\nget_instrument cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMIDI_get_instrument\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMIDI \"get_instrument\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.InputEventMIDI.get_instrument\n\n{-# NOINLINE bindInputEventMIDI_get_message #-}\n\nbindInputEventMIDI_get_message :: MethodBind\nbindInputEventMIDI_get_message\n  = unsafePerformIO $\n      withCString \"InputEventMIDI\" $\n        \\ clsNamePtr ->\n          withCString \"get_message\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_message ::\n              (InputEventMIDI :< cls, Object :< cls) => cls -> IO Int\nget_message cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMIDI_get_message (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMIDI \"get_message\" '[] (IO Int) where\n        nodeMethod = Godot.Core.InputEventMIDI.get_message\n\n{-# NOINLINE bindInputEventMIDI_get_pitch #-}\n\nbindInputEventMIDI_get_pitch :: MethodBind\nbindInputEventMIDI_get_pitch\n  = unsafePerformIO $\n      withCString \"InputEventMIDI\" $\n        \\ clsNamePtr ->\n          withCString \"get_pitch\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_pitch ::\n            (InputEventMIDI :< cls, Object :< cls) => cls -> IO Int\nget_pitch cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMIDI_get_pitch (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMIDI \"get_pitch\" '[] (IO Int) where\n        nodeMethod = Godot.Core.InputEventMIDI.get_pitch\n\n{-# NOINLINE bindInputEventMIDI_get_pressure #-}\n\nbindInputEventMIDI_get_pressure :: MethodBind\nbindInputEventMIDI_get_pressure\n  = unsafePerformIO $\n      withCString \"InputEventMIDI\" $\n        \\ clsNamePtr ->\n          withCString \"get_pressure\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_pressure ::\n               (InputEventMIDI :< cls, Object :< cls) => cls -> IO Int\nget_pressure cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMIDI_get_pressure (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMIDI \"get_pressure\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.InputEventMIDI.get_pressure\n\n{-# NOINLINE bindInputEventMIDI_get_velocity #-}\n\nbindInputEventMIDI_get_velocity :: MethodBind\nbindInputEventMIDI_get_velocity\n  = unsafePerformIO $\n      withCString \"InputEventMIDI\" $\n        \\ clsNamePtr ->\n          withCString \"get_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_velocity ::\n               (InputEventMIDI :< cls, Object :< cls) => cls -> IO Int\nget_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMIDI_get_velocity (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMIDI \"get_velocity\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.InputEventMIDI.get_velocity\n\n{-# NOINLINE bindInputEventMIDI_set_channel #-}\n\nbindInputEventMIDI_set_channel :: MethodBind\nbindInputEventMIDI_set_channel\n  = unsafePerformIO $\n      withCString \"InputEventMIDI\" $\n        \\ clsNamePtr ->\n          withCString \"set_channel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_channel ::\n              (InputEventMIDI :< cls, Object :< cls) => cls -> Int -> IO ()\nset_channel cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMIDI_set_channel (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMIDI \"set_channel\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMIDI.set_channel\n\n{-# NOINLINE bindInputEventMIDI_set_controller_number #-}\n\nbindInputEventMIDI_set_controller_number :: MethodBind\nbindInputEventMIDI_set_controller_number\n  = unsafePerformIO $\n      withCString \"InputEventMIDI\" $\n        \\ clsNamePtr ->\n          withCString \"set_controller_number\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_controller_number ::\n                        (InputEventMIDI :< cls, Object :< cls) => cls -> Int -> IO ()\nset_controller_number cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMIDI_set_controller_number\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMIDI \"set_controller_number\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMIDI.set_controller_number\n\n{-# NOINLINE bindInputEventMIDI_set_controller_value #-}\n\nbindInputEventMIDI_set_controller_value :: MethodBind\nbindInputEventMIDI_set_controller_value\n  = unsafePerformIO $\n      withCString \"InputEventMIDI\" $\n        \\ clsNamePtr ->\n          withCString \"set_controller_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_controller_value ::\n                       (InputEventMIDI :< cls, Object :< cls) => cls -> Int -> IO ()\nset_controller_value cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMIDI_set_controller_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMIDI \"set_controller_value\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMIDI.set_controller_value\n\n{-# NOINLINE bindInputEventMIDI_set_instrument #-}\n\nbindInputEventMIDI_set_instrument :: MethodBind\nbindInputEventMIDI_set_instrument\n  = unsafePerformIO $\n      withCString \"InputEventMIDI\" $\n        \\ clsNamePtr ->\n          withCString \"set_instrument\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_instrument ::\n                 (InputEventMIDI :< cls, Object :< cls) => cls -> Int -> IO ()\nset_instrument cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMIDI_set_instrument\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMIDI \"set_instrument\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMIDI.set_instrument\n\n{-# NOINLINE bindInputEventMIDI_set_message #-}\n\nbindInputEventMIDI_set_message :: MethodBind\nbindInputEventMIDI_set_message\n  = unsafePerformIO $\n      withCString \"InputEventMIDI\" $\n        \\ clsNamePtr ->\n          withCString \"set_message\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_message ::\n              (InputEventMIDI :< cls, Object :< cls) => cls -> Int -> IO ()\nset_message cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMIDI_set_message (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMIDI \"set_message\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMIDI.set_message\n\n{-# NOINLINE bindInputEventMIDI_set_pitch #-}\n\nbindInputEventMIDI_set_pitch :: MethodBind\nbindInputEventMIDI_set_pitch\n  = unsafePerformIO $\n      withCString \"InputEventMIDI\" $\n        \\ clsNamePtr ->\n          withCString \"set_pitch\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_pitch ::\n            (InputEventMIDI :< cls, Object :< cls) => cls -> Int -> IO ()\nset_pitch cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMIDI_set_pitch (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMIDI \"set_pitch\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.InputEventMIDI.set_pitch\n\n{-# NOINLINE bindInputEventMIDI_set_pressure #-}\n\nbindInputEventMIDI_set_pressure :: MethodBind\nbindInputEventMIDI_set_pressure\n  = unsafePerformIO $\n      withCString \"InputEventMIDI\" $\n        \\ clsNamePtr ->\n          withCString \"set_pressure\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_pressure ::\n               (InputEventMIDI :< cls, Object :< cls) => cls -> Int -> IO ()\nset_pressure cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMIDI_set_pressure (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMIDI \"set_pressure\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMIDI.set_pressure\n\n{-# NOINLINE bindInputEventMIDI_set_velocity #-}\n\nbindInputEventMIDI_set_velocity :: MethodBind\nbindInputEventMIDI_set_velocity\n  = unsafePerformIO $\n      withCString \"InputEventMIDI\" $\n        \\ clsNamePtr ->\n          withCString \"set_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_velocity ::\n               (InputEventMIDI :< cls, Object :< cls) => cls -> Int -> IO ()\nset_velocity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMIDI_set_velocity (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMIDI \"set_velocity\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMIDI.set_velocity"
  },
  {
    "path": "src/Godot/Core/InputEventMagnifyGesture.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InputEventMagnifyGesture\n       (Godot.Core.InputEventMagnifyGesture.get_factor,\n        Godot.Core.InputEventMagnifyGesture.set_factor)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.InputEventGesture()\n\ninstance NodeProperty InputEventMagnifyGesture \"factor\" Float\n           'False\n         where\n        nodeProperty = (get_factor, wrapDroppingSetter set_factor, Nothing)\n\n{-# NOINLINE bindInputEventMagnifyGesture_get_factor #-}\n\nbindInputEventMagnifyGesture_get_factor :: MethodBind\nbindInputEventMagnifyGesture_get_factor\n  = unsafePerformIO $\n      withCString \"InputEventMagnifyGesture\" $\n        \\ clsNamePtr ->\n          withCString \"get_factor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_factor ::\n             (InputEventMagnifyGesture :< cls, Object :< cls) => cls -> IO Float\nget_factor cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMagnifyGesture_get_factor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMagnifyGesture \"get_factor\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.InputEventMagnifyGesture.get_factor\n\n{-# NOINLINE bindInputEventMagnifyGesture_set_factor #-}\n\nbindInputEventMagnifyGesture_set_factor :: MethodBind\nbindInputEventMagnifyGesture_set_factor\n  = unsafePerformIO $\n      withCString \"InputEventMagnifyGesture\" $\n        \\ clsNamePtr ->\n          withCString \"set_factor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_factor ::\n             (InputEventMagnifyGesture :< cls, Object :< cls) =>\n             cls -> Float -> IO ()\nset_factor cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMagnifyGesture_set_factor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMagnifyGesture \"set_factor\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMagnifyGesture.set_factor"
  },
  {
    "path": "src/Godot/Core/InputEventMouse.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InputEventMouse\n       (Godot.Core.InputEventMouse.get_button_mask,\n        Godot.Core.InputEventMouse.get_global_position,\n        Godot.Core.InputEventMouse.get_position,\n        Godot.Core.InputEventMouse.set_button_mask,\n        Godot.Core.InputEventMouse.set_global_position,\n        Godot.Core.InputEventMouse.set_position)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.InputEventWithModifiers()\n\ninstance NodeProperty InputEventMouse \"button_mask\" Int 'False\n         where\n        nodeProperty\n          = (get_button_mask, wrapDroppingSetter set_button_mask, Nothing)\n\ninstance NodeProperty InputEventMouse \"global_position\" Vector2\n           'False\n         where\n        nodeProperty\n          = (get_global_position, wrapDroppingSetter set_global_position,\n             Nothing)\n\ninstance NodeProperty InputEventMouse \"position\" Vector2 'False\n         where\n        nodeProperty\n          = (get_position, wrapDroppingSetter set_position, Nothing)\n\n{-# NOINLINE bindInputEventMouse_get_button_mask #-}\n\n-- | The mouse button mask identifier, one of or a bitwise combination of the @enum ButtonList@ button masks.\nbindInputEventMouse_get_button_mask :: MethodBind\nbindInputEventMouse_get_button_mask\n  = unsafePerformIO $\n      withCString \"InputEventMouse\" $\n        \\ clsNamePtr ->\n          withCString \"get_button_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The mouse button mask identifier, one of or a bitwise combination of the @enum ButtonList@ button masks.\nget_button_mask ::\n                  (InputEventMouse :< cls, Object :< cls) => cls -> IO Int\nget_button_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouse_get_button_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouse \"get_button_mask\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.InputEventMouse.get_button_mask\n\n{-# NOINLINE bindInputEventMouse_get_global_position #-}\n\n-- | The global mouse position relative to the current @Viewport@ when used in @method Control._gui_input@, otherwise is at 0,0.\nbindInputEventMouse_get_global_position :: MethodBind\nbindInputEventMouse_get_global_position\n  = unsafePerformIO $\n      withCString \"InputEventMouse\" $\n        \\ clsNamePtr ->\n          withCString \"get_global_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The global mouse position relative to the current @Viewport@ when used in @method Control._gui_input@, otherwise is at 0,0.\nget_global_position ::\n                      (InputEventMouse :< cls, Object :< cls) => cls -> IO Vector2\nget_global_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouse_get_global_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouse \"get_global_position\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.InputEventMouse.get_global_position\n\n{-# NOINLINE bindInputEventMouse_get_position #-}\n\n-- | The local mouse position relative to the @Viewport@. If used in @method Control._gui_input@, the position is relative to the current @Control@ which is under the mouse.\nbindInputEventMouse_get_position :: MethodBind\nbindInputEventMouse_get_position\n  = unsafePerformIO $\n      withCString \"InputEventMouse\" $\n        \\ clsNamePtr ->\n          withCString \"get_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The local mouse position relative to the @Viewport@. If used in @method Control._gui_input@, the position is relative to the current @Control@ which is under the mouse.\nget_position ::\n               (InputEventMouse :< cls, Object :< cls) => cls -> IO Vector2\nget_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouse_get_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouse \"get_position\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.InputEventMouse.get_position\n\n{-# NOINLINE bindInputEventMouse_set_button_mask #-}\n\n-- | The mouse button mask identifier, one of or a bitwise combination of the @enum ButtonList@ button masks.\nbindInputEventMouse_set_button_mask :: MethodBind\nbindInputEventMouse_set_button_mask\n  = unsafePerformIO $\n      withCString \"InputEventMouse\" $\n        \\ clsNamePtr ->\n          withCString \"set_button_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The mouse button mask identifier, one of or a bitwise combination of the @enum ButtonList@ button masks.\nset_button_mask ::\n                  (InputEventMouse :< cls, Object :< cls) => cls -> Int -> IO ()\nset_button_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouse_set_button_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouse \"set_button_mask\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMouse.set_button_mask\n\n{-# NOINLINE bindInputEventMouse_set_global_position #-}\n\n-- | The global mouse position relative to the current @Viewport@ when used in @method Control._gui_input@, otherwise is at 0,0.\nbindInputEventMouse_set_global_position :: MethodBind\nbindInputEventMouse_set_global_position\n  = unsafePerformIO $\n      withCString \"InputEventMouse\" $\n        \\ clsNamePtr ->\n          withCString \"set_global_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The global mouse position relative to the current @Viewport@ when used in @method Control._gui_input@, otherwise is at 0,0.\nset_global_position ::\n                      (InputEventMouse :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_global_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouse_set_global_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouse \"set_global_position\"\n           '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMouse.set_global_position\n\n{-# NOINLINE bindInputEventMouse_set_position #-}\n\n-- | The local mouse position relative to the @Viewport@. If used in @method Control._gui_input@, the position is relative to the current @Control@ which is under the mouse.\nbindInputEventMouse_set_position :: MethodBind\nbindInputEventMouse_set_position\n  = unsafePerformIO $\n      withCString \"InputEventMouse\" $\n        \\ clsNamePtr ->\n          withCString \"set_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The local mouse position relative to the @Viewport@. If used in @method Control._gui_input@, the position is relative to the current @Control@ which is under the mouse.\nset_position ::\n               (InputEventMouse :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouse_set_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouse \"set_position\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMouse.set_position"
  },
  {
    "path": "src/Godot/Core/InputEventMouseButton.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InputEventMouseButton\n       (Godot.Core.InputEventMouseButton.is_pressed,\n        Godot.Core.InputEventMouseButton.get_button_index,\n        Godot.Core.InputEventMouseButton.get_factor,\n        Godot.Core.InputEventMouseButton.is_doubleclick,\n        Godot.Core.InputEventMouseButton.set_button_index,\n        Godot.Core.InputEventMouseButton.set_doubleclick,\n        Godot.Core.InputEventMouseButton.set_factor,\n        Godot.Core.InputEventMouseButton.set_pressed)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.InputEventMouse()\n\ninstance NodeProperty InputEventMouseButton \"button_index\" Int\n           'False\n         where\n        nodeProperty\n          = (get_button_index, wrapDroppingSetter set_button_index, Nothing)\n\ninstance NodeProperty InputEventMouseButton \"doubleclick\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_doubleclick, wrapDroppingSetter set_doubleclick, Nothing)\n\ninstance NodeProperty InputEventMouseButton \"factor\" Float 'False\n         where\n        nodeProperty = (get_factor, wrapDroppingSetter set_factor, Nothing)\n\n{-# NOINLINE bindInputEventMouseButton_is_pressed #-}\n\n-- | If @true@, the mouse button's state is pressed. If @false@, the mouse button's state is released.\nbindInputEventMouseButton_is_pressed :: MethodBind\nbindInputEventMouseButton_is_pressed\n  = unsafePerformIO $\n      withCString \"InputEventMouseButton\" $\n        \\ clsNamePtr ->\n          withCString \"is_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the mouse button's state is pressed. If @false@, the mouse button's state is released.\nis_pressed ::\n             (InputEventMouseButton :< cls, Object :< cls) => cls -> IO Bool\nis_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouseButton_is_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouseButton \"is_pressed\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.InputEventMouseButton.is_pressed\n\ninstance NodeProperty InputEventMouseButton \"pressed\" Bool 'False\n         where\n        nodeProperty\n          = (is_pressed, wrapDroppingSetter set_pressed, Nothing)\n\n{-# NOINLINE bindInputEventMouseButton_get_button_index #-}\n\n-- | The mouse button identifier, one of the @enum ButtonList@ button or button wheel constants.\nbindInputEventMouseButton_get_button_index :: MethodBind\nbindInputEventMouseButton_get_button_index\n  = unsafePerformIO $\n      withCString \"InputEventMouseButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_button_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The mouse button identifier, one of the @enum ButtonList@ button or button wheel constants.\nget_button_index ::\n                   (InputEventMouseButton :< cls, Object :< cls) => cls -> IO Int\nget_button_index cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouseButton_get_button_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouseButton \"get_button_index\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.InputEventMouseButton.get_button_index\n\n{-# NOINLINE bindInputEventMouseButton_get_factor #-}\n\n-- | The amount (or delta) of the event. When used for high-precision scroll events, this indicates the scroll amount (vertical or horizontal). This is only supported on some platforms; the reported sensitivity varies depending on the platform. May be @0@ if not supported.\nbindInputEventMouseButton_get_factor :: MethodBind\nbindInputEventMouseButton_get_factor\n  = unsafePerformIO $\n      withCString \"InputEventMouseButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_factor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount (or delta) of the event. When used for high-precision scroll events, this indicates the scroll amount (vertical or horizontal). This is only supported on some platforms; the reported sensitivity varies depending on the platform. May be @0@ if not supported.\nget_factor ::\n             (InputEventMouseButton :< cls, Object :< cls) => cls -> IO Float\nget_factor cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouseButton_get_factor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouseButton \"get_factor\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.InputEventMouseButton.get_factor\n\n{-# NOINLINE bindInputEventMouseButton_is_doubleclick #-}\n\n-- | If @true@, the mouse button's state is a double-click.\nbindInputEventMouseButton_is_doubleclick :: MethodBind\nbindInputEventMouseButton_is_doubleclick\n  = unsafePerformIO $\n      withCString \"InputEventMouseButton\" $\n        \\ clsNamePtr ->\n          withCString \"is_doubleclick\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the mouse button's state is a double-click.\nis_doubleclick ::\n                 (InputEventMouseButton :< cls, Object :< cls) => cls -> IO Bool\nis_doubleclick cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouseButton_is_doubleclick\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouseButton \"is_doubleclick\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.InputEventMouseButton.is_doubleclick\n\n{-# NOINLINE bindInputEventMouseButton_set_button_index #-}\n\n-- | The mouse button identifier, one of the @enum ButtonList@ button or button wheel constants.\nbindInputEventMouseButton_set_button_index :: MethodBind\nbindInputEventMouseButton_set_button_index\n  = unsafePerformIO $\n      withCString \"InputEventMouseButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_button_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The mouse button identifier, one of the @enum ButtonList@ button or button wheel constants.\nset_button_index ::\n                   (InputEventMouseButton :< cls, Object :< cls) =>\n                   cls -> Int -> IO ()\nset_button_index cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouseButton_set_button_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouseButton \"set_button_index\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMouseButton.set_button_index\n\n{-# NOINLINE bindInputEventMouseButton_set_doubleclick #-}\n\n-- | If @true@, the mouse button's state is a double-click.\nbindInputEventMouseButton_set_doubleclick :: MethodBind\nbindInputEventMouseButton_set_doubleclick\n  = unsafePerformIO $\n      withCString \"InputEventMouseButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_doubleclick\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the mouse button's state is a double-click.\nset_doubleclick ::\n                  (InputEventMouseButton :< cls, Object :< cls) =>\n                  cls -> Bool -> IO ()\nset_doubleclick cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouseButton_set_doubleclick\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouseButton \"set_doubleclick\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMouseButton.set_doubleclick\n\n{-# NOINLINE bindInputEventMouseButton_set_factor #-}\n\n-- | The amount (or delta) of the event. When used for high-precision scroll events, this indicates the scroll amount (vertical or horizontal). This is only supported on some platforms; the reported sensitivity varies depending on the platform. May be @0@ if not supported.\nbindInputEventMouseButton_set_factor :: MethodBind\nbindInputEventMouseButton_set_factor\n  = unsafePerformIO $\n      withCString \"InputEventMouseButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_factor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount (or delta) of the event. When used for high-precision scroll events, this indicates the scroll amount (vertical or horizontal). This is only supported on some platforms; the reported sensitivity varies depending on the platform. May be @0@ if not supported.\nset_factor ::\n             (InputEventMouseButton :< cls, Object :< cls) =>\n             cls -> Float -> IO ()\nset_factor cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouseButton_set_factor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouseButton \"set_factor\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMouseButton.set_factor\n\n{-# NOINLINE bindInputEventMouseButton_set_pressed #-}\n\n-- | If @true@, the mouse button's state is pressed. If @false@, the mouse button's state is released.\nbindInputEventMouseButton_set_pressed :: MethodBind\nbindInputEventMouseButton_set_pressed\n  = unsafePerformIO $\n      withCString \"InputEventMouseButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the mouse button's state is pressed. If @false@, the mouse button's state is released.\nset_pressed ::\n              (InputEventMouseButton :< cls, Object :< cls) =>\n              cls -> Bool -> IO ()\nset_pressed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouseButton_set_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouseButton \"set_pressed\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMouseButton.set_pressed"
  },
  {
    "path": "src/Godot/Core/InputEventMouseMotion.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InputEventMouseMotion\n       (Godot.Core.InputEventMouseMotion.get_pressure,\n        Godot.Core.InputEventMouseMotion.get_relative,\n        Godot.Core.InputEventMouseMotion.get_speed,\n        Godot.Core.InputEventMouseMotion.get_tilt,\n        Godot.Core.InputEventMouseMotion.set_pressure,\n        Godot.Core.InputEventMouseMotion.set_relative,\n        Godot.Core.InputEventMouseMotion.set_speed,\n        Godot.Core.InputEventMouseMotion.set_tilt)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.InputEventMouse()\n\ninstance NodeProperty InputEventMouseMotion \"pressure\" Float 'False\n         where\n        nodeProperty\n          = (get_pressure, wrapDroppingSetter set_pressure, Nothing)\n\ninstance NodeProperty InputEventMouseMotion \"relative\" Vector2\n           'False\n         where\n        nodeProperty\n          = (get_relative, wrapDroppingSetter set_relative, Nothing)\n\ninstance NodeProperty InputEventMouseMotion \"speed\" Vector2 'False\n         where\n        nodeProperty = (get_speed, wrapDroppingSetter set_speed, Nothing)\n\ninstance NodeProperty InputEventMouseMotion \"tilt\" Vector2 'False\n         where\n        nodeProperty = (get_tilt, wrapDroppingSetter set_tilt, Nothing)\n\n{-# NOINLINE bindInputEventMouseMotion_get_pressure #-}\n\n-- | Represents the pressure the user puts on the pen. Ranges from @0.0@ to @1.0@.\nbindInputEventMouseMotion_get_pressure :: MethodBind\nbindInputEventMouseMotion_get_pressure\n  = unsafePerformIO $\n      withCString \"InputEventMouseMotion\" $\n        \\ clsNamePtr ->\n          withCString \"get_pressure\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Represents the pressure the user puts on the pen. Ranges from @0.0@ to @1.0@.\nget_pressure ::\n               (InputEventMouseMotion :< cls, Object :< cls) => cls -> IO Float\nget_pressure cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouseMotion_get_pressure\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouseMotion \"get_pressure\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.InputEventMouseMotion.get_pressure\n\n{-# NOINLINE bindInputEventMouseMotion_get_relative #-}\n\n-- | The mouse position relative to the previous position (position at the last frame).\n--   \t\t\t__Note:__ Since @InputEventMouseMotion@ is only emitted when the mouse moves, the last event won't have a relative position of @Vector2(0, 0)@ when the user stops moving the mouse.\nbindInputEventMouseMotion_get_relative :: MethodBind\nbindInputEventMouseMotion_get_relative\n  = unsafePerformIO $\n      withCString \"InputEventMouseMotion\" $\n        \\ clsNamePtr ->\n          withCString \"get_relative\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The mouse position relative to the previous position (position at the last frame).\n--   \t\t\t__Note:__ Since @InputEventMouseMotion@ is only emitted when the mouse moves, the last event won't have a relative position of @Vector2(0, 0)@ when the user stops moving the mouse.\nget_relative ::\n               (InputEventMouseMotion :< cls, Object :< cls) => cls -> IO Vector2\nget_relative cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouseMotion_get_relative\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouseMotion \"get_relative\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.InputEventMouseMotion.get_relative\n\n{-# NOINLINE bindInputEventMouseMotion_get_speed #-}\n\n-- | The mouse speed in pixels per second.\nbindInputEventMouseMotion_get_speed :: MethodBind\nbindInputEventMouseMotion_get_speed\n  = unsafePerformIO $\n      withCString \"InputEventMouseMotion\" $\n        \\ clsNamePtr ->\n          withCString \"get_speed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The mouse speed in pixels per second.\nget_speed ::\n            (InputEventMouseMotion :< cls, Object :< cls) => cls -> IO Vector2\nget_speed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouseMotion_get_speed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouseMotion \"get_speed\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.InputEventMouseMotion.get_speed\n\n{-# NOINLINE bindInputEventMouseMotion_get_tilt #-}\n\n-- | Represents the angles of tilt of the pen. Positive X-coordinate value indicates a tilt to the right. Positive Y-coordinate value indicates a tilt toward the user. Ranges from @-1.0@ to @1.0@ for both axes.\nbindInputEventMouseMotion_get_tilt :: MethodBind\nbindInputEventMouseMotion_get_tilt\n  = unsafePerformIO $\n      withCString \"InputEventMouseMotion\" $\n        \\ clsNamePtr ->\n          withCString \"get_tilt\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Represents the angles of tilt of the pen. Positive X-coordinate value indicates a tilt to the right. Positive Y-coordinate value indicates a tilt toward the user. Ranges from @-1.0@ to @1.0@ for both axes.\nget_tilt ::\n           (InputEventMouseMotion :< cls, Object :< cls) => cls -> IO Vector2\nget_tilt cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouseMotion_get_tilt\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouseMotion \"get_tilt\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.InputEventMouseMotion.get_tilt\n\n{-# NOINLINE bindInputEventMouseMotion_set_pressure #-}\n\n-- | Represents the pressure the user puts on the pen. Ranges from @0.0@ to @1.0@.\nbindInputEventMouseMotion_set_pressure :: MethodBind\nbindInputEventMouseMotion_set_pressure\n  = unsafePerformIO $\n      withCString \"InputEventMouseMotion\" $\n        \\ clsNamePtr ->\n          withCString \"set_pressure\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Represents the pressure the user puts on the pen. Ranges from @0.0@ to @1.0@.\nset_pressure ::\n               (InputEventMouseMotion :< cls, Object :< cls) =>\n               cls -> Float -> IO ()\nset_pressure cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouseMotion_set_pressure\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouseMotion \"set_pressure\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMouseMotion.set_pressure\n\n{-# NOINLINE bindInputEventMouseMotion_set_relative #-}\n\n-- | The mouse position relative to the previous position (position at the last frame).\n--   \t\t\t__Note:__ Since @InputEventMouseMotion@ is only emitted when the mouse moves, the last event won't have a relative position of @Vector2(0, 0)@ when the user stops moving the mouse.\nbindInputEventMouseMotion_set_relative :: MethodBind\nbindInputEventMouseMotion_set_relative\n  = unsafePerformIO $\n      withCString \"InputEventMouseMotion\" $\n        \\ clsNamePtr ->\n          withCString \"set_relative\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The mouse position relative to the previous position (position at the last frame).\n--   \t\t\t__Note:__ Since @InputEventMouseMotion@ is only emitted when the mouse moves, the last event won't have a relative position of @Vector2(0, 0)@ when the user stops moving the mouse.\nset_relative ::\n               (InputEventMouseMotion :< cls, Object :< cls) =>\n               cls -> Vector2 -> IO ()\nset_relative cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouseMotion_set_relative\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouseMotion \"set_relative\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMouseMotion.set_relative\n\n{-# NOINLINE bindInputEventMouseMotion_set_speed #-}\n\n-- | The mouse speed in pixels per second.\nbindInputEventMouseMotion_set_speed :: MethodBind\nbindInputEventMouseMotion_set_speed\n  = unsafePerformIO $\n      withCString \"InputEventMouseMotion\" $\n        \\ clsNamePtr ->\n          withCString \"set_speed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The mouse speed in pixels per second.\nset_speed ::\n            (InputEventMouseMotion :< cls, Object :< cls) =>\n            cls -> Vector2 -> IO ()\nset_speed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouseMotion_set_speed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouseMotion \"set_speed\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMouseMotion.set_speed\n\n{-# NOINLINE bindInputEventMouseMotion_set_tilt #-}\n\n-- | Represents the angles of tilt of the pen. Positive X-coordinate value indicates a tilt to the right. Positive Y-coordinate value indicates a tilt toward the user. Ranges from @-1.0@ to @1.0@ for both axes.\nbindInputEventMouseMotion_set_tilt :: MethodBind\nbindInputEventMouseMotion_set_tilt\n  = unsafePerformIO $\n      withCString \"InputEventMouseMotion\" $\n        \\ clsNamePtr ->\n          withCString \"set_tilt\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Represents the angles of tilt of the pen. Positive X-coordinate value indicates a tilt to the right. Positive Y-coordinate value indicates a tilt toward the user. Ranges from @-1.0@ to @1.0@ for both axes.\nset_tilt ::\n           (InputEventMouseMotion :< cls, Object :< cls) =>\n           cls -> Vector2 -> IO ()\nset_tilt cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventMouseMotion_set_tilt\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventMouseMotion \"set_tilt\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventMouseMotion.set_tilt"
  },
  {
    "path": "src/Godot/Core/InputEventPanGesture.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InputEventPanGesture\n       (Godot.Core.InputEventPanGesture.get_delta,\n        Godot.Core.InputEventPanGesture.set_delta)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.InputEventGesture()\n\ninstance NodeProperty InputEventPanGesture \"delta\" Vector2 'False\n         where\n        nodeProperty = (get_delta, wrapDroppingSetter set_delta, Nothing)\n\n{-# NOINLINE bindInputEventPanGesture_get_delta #-}\n\nbindInputEventPanGesture_get_delta :: MethodBind\nbindInputEventPanGesture_get_delta\n  = unsafePerformIO $\n      withCString \"InputEventPanGesture\" $\n        \\ clsNamePtr ->\n          withCString \"get_delta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_delta ::\n            (InputEventPanGesture :< cls, Object :< cls) => cls -> IO Vector2\nget_delta cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventPanGesture_get_delta\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventPanGesture \"get_delta\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.InputEventPanGesture.get_delta\n\n{-# NOINLINE bindInputEventPanGesture_set_delta #-}\n\nbindInputEventPanGesture_set_delta :: MethodBind\nbindInputEventPanGesture_set_delta\n  = unsafePerformIO $\n      withCString \"InputEventPanGesture\" $\n        \\ clsNamePtr ->\n          withCString \"set_delta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_delta ::\n            (InputEventPanGesture :< cls, Object :< cls) =>\n            cls -> Vector2 -> IO ()\nset_delta cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventPanGesture_set_delta\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventPanGesture \"set_delta\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventPanGesture.set_delta"
  },
  {
    "path": "src/Godot/Core/InputEventScreenDrag.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InputEventScreenDrag\n       (Godot.Core.InputEventScreenDrag.get_index,\n        Godot.Core.InputEventScreenDrag.get_position,\n        Godot.Core.InputEventScreenDrag.get_relative,\n        Godot.Core.InputEventScreenDrag.get_speed,\n        Godot.Core.InputEventScreenDrag.set_index,\n        Godot.Core.InputEventScreenDrag.set_position,\n        Godot.Core.InputEventScreenDrag.set_relative,\n        Godot.Core.InputEventScreenDrag.set_speed)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.InputEvent()\n\ninstance NodeProperty InputEventScreenDrag \"index\" Int 'False where\n        nodeProperty = (get_index, wrapDroppingSetter set_index, Nothing)\n\ninstance NodeProperty InputEventScreenDrag \"position\" Vector2\n           'False\n         where\n        nodeProperty\n          = (get_position, wrapDroppingSetter set_position, Nothing)\n\ninstance NodeProperty InputEventScreenDrag \"relative\" Vector2\n           'False\n         where\n        nodeProperty\n          = (get_relative, wrapDroppingSetter set_relative, Nothing)\n\ninstance NodeProperty InputEventScreenDrag \"speed\" Vector2 'False\n         where\n        nodeProperty = (get_speed, wrapDroppingSetter set_speed, Nothing)\n\n{-# NOINLINE bindInputEventScreenDrag_get_index #-}\n\n-- | The drag event index in the case of a multi-drag event.\nbindInputEventScreenDrag_get_index :: MethodBind\nbindInputEventScreenDrag_get_index\n  = unsafePerformIO $\n      withCString \"InputEventScreenDrag\" $\n        \\ clsNamePtr ->\n          withCString \"get_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The drag event index in the case of a multi-drag event.\nget_index ::\n            (InputEventScreenDrag :< cls, Object :< cls) => cls -> IO Int\nget_index cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventScreenDrag_get_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventScreenDrag \"get_index\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.InputEventScreenDrag.get_index\n\n{-# NOINLINE bindInputEventScreenDrag_get_position #-}\n\n-- | The drag position.\nbindInputEventScreenDrag_get_position :: MethodBind\nbindInputEventScreenDrag_get_position\n  = unsafePerformIO $\n      withCString \"InputEventScreenDrag\" $\n        \\ clsNamePtr ->\n          withCString \"get_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The drag position.\nget_position ::\n               (InputEventScreenDrag :< cls, Object :< cls) => cls -> IO Vector2\nget_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventScreenDrag_get_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventScreenDrag \"get_position\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.InputEventScreenDrag.get_position\n\n{-# NOINLINE bindInputEventScreenDrag_get_relative #-}\n\n-- | The drag position relative to its start position.\nbindInputEventScreenDrag_get_relative :: MethodBind\nbindInputEventScreenDrag_get_relative\n  = unsafePerformIO $\n      withCString \"InputEventScreenDrag\" $\n        \\ clsNamePtr ->\n          withCString \"get_relative\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The drag position relative to its start position.\nget_relative ::\n               (InputEventScreenDrag :< cls, Object :< cls) => cls -> IO Vector2\nget_relative cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventScreenDrag_get_relative\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventScreenDrag \"get_relative\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.InputEventScreenDrag.get_relative\n\n{-# NOINLINE bindInputEventScreenDrag_get_speed #-}\n\n-- | The drag speed.\nbindInputEventScreenDrag_get_speed :: MethodBind\nbindInputEventScreenDrag_get_speed\n  = unsafePerformIO $\n      withCString \"InputEventScreenDrag\" $\n        \\ clsNamePtr ->\n          withCString \"get_speed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The drag speed.\nget_speed ::\n            (InputEventScreenDrag :< cls, Object :< cls) => cls -> IO Vector2\nget_speed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventScreenDrag_get_speed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventScreenDrag \"get_speed\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.InputEventScreenDrag.get_speed\n\n{-# NOINLINE bindInputEventScreenDrag_set_index #-}\n\n-- | The drag event index in the case of a multi-drag event.\nbindInputEventScreenDrag_set_index :: MethodBind\nbindInputEventScreenDrag_set_index\n  = unsafePerformIO $\n      withCString \"InputEventScreenDrag\" $\n        \\ clsNamePtr ->\n          withCString \"set_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The drag event index in the case of a multi-drag event.\nset_index ::\n            (InputEventScreenDrag :< cls, Object :< cls) => cls -> Int -> IO ()\nset_index cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventScreenDrag_set_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventScreenDrag \"set_index\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventScreenDrag.set_index\n\n{-# NOINLINE bindInputEventScreenDrag_set_position #-}\n\n-- | The drag position.\nbindInputEventScreenDrag_set_position :: MethodBind\nbindInputEventScreenDrag_set_position\n  = unsafePerformIO $\n      withCString \"InputEventScreenDrag\" $\n        \\ clsNamePtr ->\n          withCString \"set_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The drag position.\nset_position ::\n               (InputEventScreenDrag :< cls, Object :< cls) =>\n               cls -> Vector2 -> IO ()\nset_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventScreenDrag_set_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventScreenDrag \"set_position\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventScreenDrag.set_position\n\n{-# NOINLINE bindInputEventScreenDrag_set_relative #-}\n\n-- | The drag position relative to its start position.\nbindInputEventScreenDrag_set_relative :: MethodBind\nbindInputEventScreenDrag_set_relative\n  = unsafePerformIO $\n      withCString \"InputEventScreenDrag\" $\n        \\ clsNamePtr ->\n          withCString \"set_relative\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The drag position relative to its start position.\nset_relative ::\n               (InputEventScreenDrag :< cls, Object :< cls) =>\n               cls -> Vector2 -> IO ()\nset_relative cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventScreenDrag_set_relative\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventScreenDrag \"set_relative\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventScreenDrag.set_relative\n\n{-# NOINLINE bindInputEventScreenDrag_set_speed #-}\n\n-- | The drag speed.\nbindInputEventScreenDrag_set_speed :: MethodBind\nbindInputEventScreenDrag_set_speed\n  = unsafePerformIO $\n      withCString \"InputEventScreenDrag\" $\n        \\ clsNamePtr ->\n          withCString \"set_speed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The drag speed.\nset_speed ::\n            (InputEventScreenDrag :< cls, Object :< cls) =>\n            cls -> Vector2 -> IO ()\nset_speed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventScreenDrag_set_speed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventScreenDrag \"set_speed\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventScreenDrag.set_speed"
  },
  {
    "path": "src/Godot/Core/InputEventScreenTouch.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InputEventScreenTouch\n       (Godot.Core.InputEventScreenTouch.is_pressed,\n        Godot.Core.InputEventScreenTouch.get_index,\n        Godot.Core.InputEventScreenTouch.get_position,\n        Godot.Core.InputEventScreenTouch.set_index,\n        Godot.Core.InputEventScreenTouch.set_position,\n        Godot.Core.InputEventScreenTouch.set_pressed)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.InputEvent()\n\ninstance NodeProperty InputEventScreenTouch \"index\" Int 'False\n         where\n        nodeProperty = (get_index, wrapDroppingSetter set_index, Nothing)\n\ninstance NodeProperty InputEventScreenTouch \"position\" Vector2\n           'False\n         where\n        nodeProperty\n          = (get_position, wrapDroppingSetter set_position, Nothing)\n\n{-# NOINLINE bindInputEventScreenTouch_is_pressed #-}\n\n-- | If @true@, the touch's state is pressed. If @false@, the touch's state is released.\nbindInputEventScreenTouch_is_pressed :: MethodBind\nbindInputEventScreenTouch_is_pressed\n  = unsafePerformIO $\n      withCString \"InputEventScreenTouch\" $\n        \\ clsNamePtr ->\n          withCString \"is_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the touch's state is pressed. If @false@, the touch's state is released.\nis_pressed ::\n             (InputEventScreenTouch :< cls, Object :< cls) => cls -> IO Bool\nis_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventScreenTouch_is_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventScreenTouch \"is_pressed\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.InputEventScreenTouch.is_pressed\n\ninstance NodeProperty InputEventScreenTouch \"pressed\" Bool 'False\n         where\n        nodeProperty\n          = (is_pressed, wrapDroppingSetter set_pressed, Nothing)\n\n{-# NOINLINE bindInputEventScreenTouch_get_index #-}\n\n-- | The touch index in the case of a multi-touch event. One index = one finger.\nbindInputEventScreenTouch_get_index :: MethodBind\nbindInputEventScreenTouch_get_index\n  = unsafePerformIO $\n      withCString \"InputEventScreenTouch\" $\n        \\ clsNamePtr ->\n          withCString \"get_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The touch index in the case of a multi-touch event. One index = one finger.\nget_index ::\n            (InputEventScreenTouch :< cls, Object :< cls) => cls -> IO Int\nget_index cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventScreenTouch_get_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventScreenTouch \"get_index\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.InputEventScreenTouch.get_index\n\n{-# NOINLINE bindInputEventScreenTouch_get_position #-}\n\n-- | The touch position.\nbindInputEventScreenTouch_get_position :: MethodBind\nbindInputEventScreenTouch_get_position\n  = unsafePerformIO $\n      withCString \"InputEventScreenTouch\" $\n        \\ clsNamePtr ->\n          withCString \"get_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The touch position.\nget_position ::\n               (InputEventScreenTouch :< cls, Object :< cls) => cls -> IO Vector2\nget_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventScreenTouch_get_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventScreenTouch \"get_position\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.InputEventScreenTouch.get_position\n\n{-# NOINLINE bindInputEventScreenTouch_set_index #-}\n\n-- | The touch index in the case of a multi-touch event. One index = one finger.\nbindInputEventScreenTouch_set_index :: MethodBind\nbindInputEventScreenTouch_set_index\n  = unsafePerformIO $\n      withCString \"InputEventScreenTouch\" $\n        \\ clsNamePtr ->\n          withCString \"set_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The touch index in the case of a multi-touch event. One index = one finger.\nset_index ::\n            (InputEventScreenTouch :< cls, Object :< cls) =>\n            cls -> Int -> IO ()\nset_index cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventScreenTouch_set_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventScreenTouch \"set_index\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventScreenTouch.set_index\n\n{-# NOINLINE bindInputEventScreenTouch_set_position #-}\n\n-- | The touch position.\nbindInputEventScreenTouch_set_position :: MethodBind\nbindInputEventScreenTouch_set_position\n  = unsafePerformIO $\n      withCString \"InputEventScreenTouch\" $\n        \\ clsNamePtr ->\n          withCString \"set_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The touch position.\nset_position ::\n               (InputEventScreenTouch :< cls, Object :< cls) =>\n               cls -> Vector2 -> IO ()\nset_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventScreenTouch_set_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventScreenTouch \"set_position\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventScreenTouch.set_position\n\n{-# NOINLINE bindInputEventScreenTouch_set_pressed #-}\n\n-- | If @true@, the touch's state is pressed. If @false@, the touch's state is released.\nbindInputEventScreenTouch_set_pressed :: MethodBind\nbindInputEventScreenTouch_set_pressed\n  = unsafePerformIO $\n      withCString \"InputEventScreenTouch\" $\n        \\ clsNamePtr ->\n          withCString \"set_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the touch's state is pressed. If @false@, the touch's state is released.\nset_pressed ::\n              (InputEventScreenTouch :< cls, Object :< cls) =>\n              cls -> Bool -> IO ()\nset_pressed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventScreenTouch_set_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventScreenTouch \"set_pressed\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventScreenTouch.set_pressed"
  },
  {
    "path": "src/Godot/Core/InputEventWithModifiers.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InputEventWithModifiers\n       (Godot.Core.InputEventWithModifiers.get_alt,\n        Godot.Core.InputEventWithModifiers.get_command,\n        Godot.Core.InputEventWithModifiers.get_control,\n        Godot.Core.InputEventWithModifiers.get_metakey,\n        Godot.Core.InputEventWithModifiers.get_shift,\n        Godot.Core.InputEventWithModifiers.set_alt,\n        Godot.Core.InputEventWithModifiers.set_command,\n        Godot.Core.InputEventWithModifiers.set_control,\n        Godot.Core.InputEventWithModifiers.set_metakey,\n        Godot.Core.InputEventWithModifiers.set_shift)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.InputEvent()\n\ninstance NodeProperty InputEventWithModifiers \"alt\" Bool 'False\n         where\n        nodeProperty = (get_alt, wrapDroppingSetter set_alt, Nothing)\n\ninstance NodeProperty InputEventWithModifiers \"command\" Bool 'False\n         where\n        nodeProperty\n          = (get_command, wrapDroppingSetter set_command, Nothing)\n\ninstance NodeProperty InputEventWithModifiers \"control\" Bool 'False\n         where\n        nodeProperty\n          = (get_control, wrapDroppingSetter set_control, Nothing)\n\ninstance NodeProperty InputEventWithModifiers \"meta\" Bool 'False\n         where\n        nodeProperty\n          = (get_metakey, wrapDroppingSetter set_metakey, Nothing)\n\ninstance NodeProperty InputEventWithModifiers \"shift\" Bool 'False\n         where\n        nodeProperty = (get_shift, wrapDroppingSetter set_shift, Nothing)\n\n{-# NOINLINE bindInputEventWithModifiers_get_alt #-}\n\n-- | State of the @Alt@ modifier.\nbindInputEventWithModifiers_get_alt :: MethodBind\nbindInputEventWithModifiers_get_alt\n  = unsafePerformIO $\n      withCString \"InputEventWithModifiers\" $\n        \\ clsNamePtr ->\n          withCString \"get_alt\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | State of the @Alt@ modifier.\nget_alt ::\n          (InputEventWithModifiers :< cls, Object :< cls) => cls -> IO Bool\nget_alt cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventWithModifiers_get_alt\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventWithModifiers \"get_alt\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.InputEventWithModifiers.get_alt\n\n{-# NOINLINE bindInputEventWithModifiers_get_command #-}\n\n-- | State of the @Command@ modifier.\nbindInputEventWithModifiers_get_command :: MethodBind\nbindInputEventWithModifiers_get_command\n  = unsafePerformIO $\n      withCString \"InputEventWithModifiers\" $\n        \\ clsNamePtr ->\n          withCString \"get_command\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | State of the @Command@ modifier.\nget_command ::\n              (InputEventWithModifiers :< cls, Object :< cls) => cls -> IO Bool\nget_command cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventWithModifiers_get_command\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventWithModifiers \"get_command\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.InputEventWithModifiers.get_command\n\n{-# NOINLINE bindInputEventWithModifiers_get_control #-}\n\n-- | State of the @Ctrl@ modifier.\nbindInputEventWithModifiers_get_control :: MethodBind\nbindInputEventWithModifiers_get_control\n  = unsafePerformIO $\n      withCString \"InputEventWithModifiers\" $\n        \\ clsNamePtr ->\n          withCString \"get_control\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | State of the @Ctrl@ modifier.\nget_control ::\n              (InputEventWithModifiers :< cls, Object :< cls) => cls -> IO Bool\nget_control cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventWithModifiers_get_control\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventWithModifiers \"get_control\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.InputEventWithModifiers.get_control\n\n{-# NOINLINE bindInputEventWithModifiers_get_metakey #-}\n\n-- | State of the @Meta@ modifier.\nbindInputEventWithModifiers_get_metakey :: MethodBind\nbindInputEventWithModifiers_get_metakey\n  = unsafePerformIO $\n      withCString \"InputEventWithModifiers\" $\n        \\ clsNamePtr ->\n          withCString \"get_metakey\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | State of the @Meta@ modifier.\nget_metakey ::\n              (InputEventWithModifiers :< cls, Object :< cls) => cls -> IO Bool\nget_metakey cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventWithModifiers_get_metakey\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventWithModifiers \"get_metakey\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.InputEventWithModifiers.get_metakey\n\n{-# NOINLINE bindInputEventWithModifiers_get_shift #-}\n\n-- | State of the @Shift@ modifier.\nbindInputEventWithModifiers_get_shift :: MethodBind\nbindInputEventWithModifiers_get_shift\n  = unsafePerformIO $\n      withCString \"InputEventWithModifiers\" $\n        \\ clsNamePtr ->\n          withCString \"get_shift\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | State of the @Shift@ modifier.\nget_shift ::\n            (InputEventWithModifiers :< cls, Object :< cls) => cls -> IO Bool\nget_shift cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventWithModifiers_get_shift\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventWithModifiers \"get_shift\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.InputEventWithModifiers.get_shift\n\n{-# NOINLINE bindInputEventWithModifiers_set_alt #-}\n\n-- | State of the @Alt@ modifier.\nbindInputEventWithModifiers_set_alt :: MethodBind\nbindInputEventWithModifiers_set_alt\n  = unsafePerformIO $\n      withCString \"InputEventWithModifiers\" $\n        \\ clsNamePtr ->\n          withCString \"set_alt\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | State of the @Alt@ modifier.\nset_alt ::\n          (InputEventWithModifiers :< cls, Object :< cls) =>\n          cls -> Bool -> IO ()\nset_alt cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventWithModifiers_set_alt\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventWithModifiers \"set_alt\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventWithModifiers.set_alt\n\n{-# NOINLINE bindInputEventWithModifiers_set_command #-}\n\n-- | State of the @Command@ modifier.\nbindInputEventWithModifiers_set_command :: MethodBind\nbindInputEventWithModifiers_set_command\n  = unsafePerformIO $\n      withCString \"InputEventWithModifiers\" $\n        \\ clsNamePtr ->\n          withCString \"set_command\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | State of the @Command@ modifier.\nset_command ::\n              (InputEventWithModifiers :< cls, Object :< cls) =>\n              cls -> Bool -> IO ()\nset_command cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventWithModifiers_set_command\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventWithModifiers \"set_command\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventWithModifiers.set_command\n\n{-# NOINLINE bindInputEventWithModifiers_set_control #-}\n\n-- | State of the @Ctrl@ modifier.\nbindInputEventWithModifiers_set_control :: MethodBind\nbindInputEventWithModifiers_set_control\n  = unsafePerformIO $\n      withCString \"InputEventWithModifiers\" $\n        \\ clsNamePtr ->\n          withCString \"set_control\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | State of the @Ctrl@ modifier.\nset_control ::\n              (InputEventWithModifiers :< cls, Object :< cls) =>\n              cls -> Bool -> IO ()\nset_control cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventWithModifiers_set_control\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventWithModifiers \"set_control\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventWithModifiers.set_control\n\n{-# NOINLINE bindInputEventWithModifiers_set_metakey #-}\n\n-- | State of the @Meta@ modifier.\nbindInputEventWithModifiers_set_metakey :: MethodBind\nbindInputEventWithModifiers_set_metakey\n  = unsafePerformIO $\n      withCString \"InputEventWithModifiers\" $\n        \\ clsNamePtr ->\n          withCString \"set_metakey\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | State of the @Meta@ modifier.\nset_metakey ::\n              (InputEventWithModifiers :< cls, Object :< cls) =>\n              cls -> Bool -> IO ()\nset_metakey cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventWithModifiers_set_metakey\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventWithModifiers \"set_metakey\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventWithModifiers.set_metakey\n\n{-# NOINLINE bindInputEventWithModifiers_set_shift #-}\n\n-- | State of the @Shift@ modifier.\nbindInputEventWithModifiers_set_shift :: MethodBind\nbindInputEventWithModifiers_set_shift\n  = unsafePerformIO $\n      withCString \"InputEventWithModifiers\" $\n        \\ clsNamePtr ->\n          withCString \"set_shift\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | State of the @Shift@ modifier.\nset_shift ::\n            (InputEventWithModifiers :< cls, Object :< cls) =>\n            cls -> Bool -> IO ()\nset_shift cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputEventWithModifiers_set_shift\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputEventWithModifiers \"set_shift\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputEventWithModifiers.set_shift"
  },
  {
    "path": "src/Godot/Core/InputMap.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InputMap\n       (Godot.Core.InputMap.action_add_event,\n        Godot.Core.InputMap.action_erase_event,\n        Godot.Core.InputMap.action_erase_events,\n        Godot.Core.InputMap.action_has_event,\n        Godot.Core.InputMap.action_set_deadzone,\n        Godot.Core.InputMap.add_action, Godot.Core.InputMap.erase_action,\n        Godot.Core.InputMap.event_is_action,\n        Godot.Core.InputMap.get_action_list,\n        Godot.Core.InputMap.get_actions, Godot.Core.InputMap.has_action,\n        Godot.Core.InputMap.load_from_globals)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n{-# NOINLINE bindInputMap_action_add_event #-}\n\n-- | Adds an @InputEvent@ to an action. This @InputEvent@ will trigger the action.\nbindInputMap_action_add_event :: MethodBind\nbindInputMap_action_add_event\n  = unsafePerformIO $\n      withCString \"InputMap\" $\n        \\ clsNamePtr ->\n          withCString \"action_add_event\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an @InputEvent@ to an action. This @InputEvent@ will trigger the action.\naction_add_event ::\n                   (InputMap :< cls, Object :< cls) =>\n                   cls -> GodotString -> InputEvent -> IO ()\naction_add_event cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputMap_action_add_event (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputMap \"action_add_event\"\n           '[GodotString, InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputMap.action_add_event\n\n{-# NOINLINE bindInputMap_action_erase_event #-}\n\n-- | Removes an @InputEvent@ from an action.\nbindInputMap_action_erase_event :: MethodBind\nbindInputMap_action_erase_event\n  = unsafePerformIO $\n      withCString \"InputMap\" $\n        \\ clsNamePtr ->\n          withCString \"action_erase_event\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes an @InputEvent@ from an action.\naction_erase_event ::\n                     (InputMap :< cls, Object :< cls) =>\n                     cls -> GodotString -> InputEvent -> IO ()\naction_erase_event cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputMap_action_erase_event (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputMap \"action_erase_event\"\n           '[GodotString, InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputMap.action_erase_event\n\n{-# NOINLINE bindInputMap_action_erase_events #-}\n\n-- | Removes all events from an action.\nbindInputMap_action_erase_events :: MethodBind\nbindInputMap_action_erase_events\n  = unsafePerformIO $\n      withCString \"InputMap\" $\n        \\ clsNamePtr ->\n          withCString \"action_erase_events\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all events from an action.\naction_erase_events ::\n                      (InputMap :< cls, Object :< cls) => cls -> GodotString -> IO ()\naction_erase_events cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputMap_action_erase_events\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputMap \"action_erase_events\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputMap.action_erase_events\n\n{-# NOINLINE bindInputMap_action_has_event #-}\n\n-- | Returns @true@ if the action has the given @InputEvent@ associated with it.\nbindInputMap_action_has_event :: MethodBind\nbindInputMap_action_has_event\n  = unsafePerformIO $\n      withCString \"InputMap\" $\n        \\ clsNamePtr ->\n          withCString \"action_has_event\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the action has the given @InputEvent@ associated with it.\naction_has_event ::\n                   (InputMap :< cls, Object :< cls) =>\n                   cls -> GodotString -> InputEvent -> IO Bool\naction_has_event cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputMap_action_has_event (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputMap \"action_has_event\"\n           '[GodotString, InputEvent]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.InputMap.action_has_event\n\n{-# NOINLINE bindInputMap_action_set_deadzone #-}\n\n-- | Sets a deadzone value for the action.\nbindInputMap_action_set_deadzone :: MethodBind\nbindInputMap_action_set_deadzone\n  = unsafePerformIO $\n      withCString \"InputMap\" $\n        \\ clsNamePtr ->\n          withCString \"action_set_deadzone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a deadzone value for the action.\naction_set_deadzone ::\n                      (InputMap :< cls, Object :< cls) =>\n                      cls -> GodotString -> Float -> IO ()\naction_set_deadzone cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputMap_action_set_deadzone\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputMap \"action_set_deadzone\"\n           '[GodotString, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputMap.action_set_deadzone\n\n{-# NOINLINE bindInputMap_add_action #-}\n\n-- | Adds an empty action to the @InputMap@ with a configurable @deadzone@.\n--   \t\t\t\tAn @InputEvent@ can then be added to this action with @method action_add_event@.\nbindInputMap_add_action :: MethodBind\nbindInputMap_add_action\n  = unsafePerformIO $\n      withCString \"InputMap\" $\n        \\ clsNamePtr ->\n          withCString \"add_action\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an empty action to the @InputMap@ with a configurable @deadzone@.\n--   \t\t\t\tAn @InputEvent@ can then be added to this action with @method action_add_event@.\nadd_action ::\n             (InputMap :< cls, Object :< cls) =>\n             cls -> GodotString -> Maybe Float -> IO ()\nadd_action cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantReal (0.5)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputMap_add_action (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputMap \"add_action\"\n           '[GodotString, Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InputMap.add_action\n\n{-# NOINLINE bindInputMap_erase_action #-}\n\n-- | Removes an action from the @InputMap@.\nbindInputMap_erase_action :: MethodBind\nbindInputMap_erase_action\n  = unsafePerformIO $\n      withCString \"InputMap\" $\n        \\ clsNamePtr ->\n          withCString \"erase_action\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes an action from the @InputMap@.\nerase_action ::\n               (InputMap :< cls, Object :< cls) => cls -> GodotString -> IO ()\nerase_action cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputMap_erase_action (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputMap \"erase_action\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.InputMap.erase_action\n\n{-# NOINLINE bindInputMap_event_is_action #-}\n\n-- | Returns @true@ if the given event is part of an existing action. This method ignores keyboard modifiers if the given @InputEvent@ is not pressed (for proper release detection). See @method action_has_event@ if you don't want this behavior.\nbindInputMap_event_is_action :: MethodBind\nbindInputMap_event_is_action\n  = unsafePerformIO $\n      withCString \"InputMap\" $\n        \\ clsNamePtr ->\n          withCString \"event_is_action\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the given event is part of an existing action. This method ignores keyboard modifiers if the given @InputEvent@ is not pressed (for proper release detection). See @method action_has_event@ if you don't want this behavior.\nevent_is_action ::\n                  (InputMap :< cls, Object :< cls) =>\n                  cls -> InputEvent -> GodotString -> IO Bool\nevent_is_action cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputMap_event_is_action (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputMap \"event_is_action\"\n           '[InputEvent, GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.InputMap.event_is_action\n\n{-# NOINLINE bindInputMap_get_action_list #-}\n\n-- | Returns an array of @InputEvent@s associated with a given action.\nbindInputMap_get_action_list :: MethodBind\nbindInputMap_get_action_list\n  = unsafePerformIO $\n      withCString \"InputMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_action_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of @InputEvent@s associated with a given action.\nget_action_list ::\n                  (InputMap :< cls, Object :< cls) => cls -> GodotString -> IO Array\nget_action_list cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputMap_get_action_list (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputMap \"get_action_list\" '[GodotString]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.InputMap.get_action_list\n\n{-# NOINLINE bindInputMap_get_actions #-}\n\n-- | Returns an array of all actions in the @InputMap@.\nbindInputMap_get_actions :: MethodBind\nbindInputMap_get_actions\n  = unsafePerformIO $\n      withCString \"InputMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_actions\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of all actions in the @InputMap@.\nget_actions :: (InputMap :< cls, Object :< cls) => cls -> IO Array\nget_actions cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputMap_get_actions (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputMap \"get_actions\" '[] (IO Array) where\n        nodeMethod = Godot.Core.InputMap.get_actions\n\n{-# NOINLINE bindInputMap_has_action #-}\n\n-- | Returns @true@ if the @InputMap@ has a registered action with the given name.\nbindInputMap_has_action :: MethodBind\nbindInputMap_has_action\n  = unsafePerformIO $\n      withCString \"InputMap\" $\n        \\ clsNamePtr ->\n          withCString \"has_action\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the @InputMap@ has a registered action with the given name.\nhas_action ::\n             (InputMap :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_action cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputMap_has_action (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputMap \"has_action\" '[GodotString] (IO Bool)\n         where\n        nodeMethod = Godot.Core.InputMap.has_action\n\n{-# NOINLINE bindInputMap_load_from_globals #-}\n\n-- | Clears all @InputEventAction@ in the @InputMap@ and load it anew from @ProjectSettings@.\nbindInputMap_load_from_globals :: MethodBind\nbindInputMap_load_from_globals\n  = unsafePerformIO $\n      withCString \"InputMap\" $\n        \\ clsNamePtr ->\n          withCString \"load_from_globals\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears all @InputEventAction@ in the @InputMap@ and load it anew from @ProjectSettings@.\nload_from_globals ::\n                    (InputMap :< cls, Object :< cls) => cls -> IO ()\nload_from_globals cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInputMap_load_from_globals (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InputMap \"load_from_globals\" '[] (IO ()) where\n        nodeMethod = Godot.Core.InputMap.load_from_globals"
  },
  {
    "path": "src/Godot/Core/InstancePlaceholder.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InstancePlaceholder\n       (Godot.Core.InstancePlaceholder.create_instance,\n        Godot.Core.InstancePlaceholder.get_instance_path,\n        Godot.Core.InstancePlaceholder.get_stored_values,\n        Godot.Core.InstancePlaceholder.replace_by_instance)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\n{-# NOINLINE bindInstancePlaceholder_create_instance #-}\n\nbindInstancePlaceholder_create_instance :: MethodBind\nbindInstancePlaceholder_create_instance\n  = unsafePerformIO $\n      withCString \"InstancePlaceholder\" $\n        \\ clsNamePtr ->\n          withCString \"create_instance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncreate_instance ::\n                  (InstancePlaceholder :< cls, Object :< cls) =>\n                  cls -> Maybe Bool -> Maybe PackedScene -> IO Node\ncreate_instance cls arg1 arg2\n  = withVariantArray\n      [maybe (VariantBool False) toVariant arg1,\n       maybe VariantNil toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInstancePlaceholder_create_instance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InstancePlaceholder \"create_instance\"\n           '[Maybe Bool, Maybe PackedScene]\n           (IO Node)\n         where\n        nodeMethod = Godot.Core.InstancePlaceholder.create_instance\n\n{-# NOINLINE bindInstancePlaceholder_get_instance_path #-}\n\n-- | Gets the path to the @PackedScene@ resource file that is loaded by default when calling @method replace_by_instance@.\nbindInstancePlaceholder_get_instance_path :: MethodBind\nbindInstancePlaceholder_get_instance_path\n  = unsafePerformIO $\n      withCString \"InstancePlaceholder\" $\n        \\ clsNamePtr ->\n          withCString \"get_instance_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the path to the @PackedScene@ resource file that is loaded by default when calling @method replace_by_instance@.\nget_instance_path ::\n                    (InstancePlaceholder :< cls, Object :< cls) =>\n                    cls -> IO GodotString\nget_instance_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInstancePlaceholder_get_instance_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InstancePlaceholder \"get_instance_path\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.InstancePlaceholder.get_instance_path\n\n{-# NOINLINE bindInstancePlaceholder_get_stored_values #-}\n\nbindInstancePlaceholder_get_stored_values :: MethodBind\nbindInstancePlaceholder_get_stored_values\n  = unsafePerformIO $\n      withCString \"InstancePlaceholder\" $\n        \\ clsNamePtr ->\n          withCString \"get_stored_values\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_stored_values ::\n                    (InstancePlaceholder :< cls, Object :< cls) =>\n                    cls -> Maybe Bool -> IO Dictionary\nget_stored_values cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInstancePlaceholder_get_stored_values\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InstancePlaceholder \"get_stored_values\"\n           '[Maybe Bool]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.InstancePlaceholder.get_stored_values\n\n{-# NOINLINE bindInstancePlaceholder_replace_by_instance #-}\n\n-- | Replaces this placeholder by the scene handed as an argument, or the original scene if no argument is given. As for all resources, the scene is loaded only if it's not loaded already. By manually loading the scene beforehand, delays caused by this function can be avoided.\nbindInstancePlaceholder_replace_by_instance :: MethodBind\nbindInstancePlaceholder_replace_by_instance\n  = unsafePerformIO $\n      withCString \"InstancePlaceholder\" $\n        \\ clsNamePtr ->\n          withCString \"replace_by_instance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Replaces this placeholder by the scene handed as an argument, or the original scene if no argument is given. As for all resources, the scene is loaded only if it's not loaded already. By manually loading the scene beforehand, delays caused by this function can be avoided.\nreplace_by_instance ::\n                      (InstancePlaceholder :< cls, Object :< cls) =>\n                      cls -> Maybe PackedScene -> IO ()\nreplace_by_instance cls arg1\n  = withVariantArray [maybe VariantNil toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInstancePlaceholder_replace_by_instance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InstancePlaceholder \"replace_by_instance\"\n           '[Maybe PackedScene]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InstancePlaceholder.replace_by_instance"
  },
  {
    "path": "src/Godot/Core/InterpolatedCamera.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.InterpolatedCamera\n       (Godot.Core.InterpolatedCamera.get_speed,\n        Godot.Core.InterpolatedCamera.get_target_path,\n        Godot.Core.InterpolatedCamera.is_interpolation_enabled,\n        Godot.Core.InterpolatedCamera.set_interpolation_enabled,\n        Godot.Core.InterpolatedCamera.set_speed,\n        Godot.Core.InterpolatedCamera.set_target,\n        Godot.Core.InterpolatedCamera.set_target_path)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Camera()\n\ninstance NodeProperty InterpolatedCamera \"enabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_interpolation_enabled,\n             wrapDroppingSetter set_interpolation_enabled, Nothing)\n\ninstance NodeProperty InterpolatedCamera \"speed\" Float 'False where\n        nodeProperty = (get_speed, wrapDroppingSetter set_speed, Nothing)\n\ninstance NodeProperty InterpolatedCamera \"target\" NodePath 'False\n         where\n        nodeProperty\n          = (get_target_path, wrapDroppingSetter set_target_path, Nothing)\n\n{-# NOINLINE bindInterpolatedCamera_get_speed #-}\n\n-- | How quickly the camera moves toward its target. Higher values will result in tighter camera motion.\nbindInterpolatedCamera_get_speed :: MethodBind\nbindInterpolatedCamera_get_speed\n  = unsafePerformIO $\n      withCString \"InterpolatedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"get_speed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How quickly the camera moves toward its target. Higher values will result in tighter camera motion.\nget_speed ::\n            (InterpolatedCamera :< cls, Object :< cls) => cls -> IO Float\nget_speed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInterpolatedCamera_get_speed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InterpolatedCamera \"get_speed\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.InterpolatedCamera.get_speed\n\n{-# NOINLINE bindInterpolatedCamera_get_target_path #-}\n\n-- | The target's @NodePath@.\nbindInterpolatedCamera_get_target_path :: MethodBind\nbindInterpolatedCamera_get_target_path\n  = unsafePerformIO $\n      withCString \"InterpolatedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"get_target_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The target's @NodePath@.\nget_target_path ::\n                  (InterpolatedCamera :< cls, Object :< cls) => cls -> IO NodePath\nget_target_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInterpolatedCamera_get_target_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InterpolatedCamera \"get_target_path\" '[]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.InterpolatedCamera.get_target_path\n\n{-# NOINLINE bindInterpolatedCamera_is_interpolation_enabled #-}\n\n-- | If @true@, and a target is set, the camera will move automatically.\nbindInterpolatedCamera_is_interpolation_enabled :: MethodBind\nbindInterpolatedCamera_is_interpolation_enabled\n  = unsafePerformIO $\n      withCString \"InterpolatedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"is_interpolation_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, and a target is set, the camera will move automatically.\nis_interpolation_enabled ::\n                           (InterpolatedCamera :< cls, Object :< cls) => cls -> IO Bool\nis_interpolation_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindInterpolatedCamera_is_interpolation_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InterpolatedCamera \"is_interpolation_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.InterpolatedCamera.is_interpolation_enabled\n\n{-# NOINLINE bindInterpolatedCamera_set_interpolation_enabled #-}\n\n-- | If @true@, and a target is set, the camera will move automatically.\nbindInterpolatedCamera_set_interpolation_enabled :: MethodBind\nbindInterpolatedCamera_set_interpolation_enabled\n  = unsafePerformIO $\n      withCString \"InterpolatedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"set_interpolation_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, and a target is set, the camera will move automatically.\nset_interpolation_enabled ::\n                            (InterpolatedCamera :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_interpolation_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindInterpolatedCamera_set_interpolation_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InterpolatedCamera \"set_interpolation_enabled\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.InterpolatedCamera.set_interpolation_enabled\n\n{-# NOINLINE bindInterpolatedCamera_set_speed #-}\n\n-- | How quickly the camera moves toward its target. Higher values will result in tighter camera motion.\nbindInterpolatedCamera_set_speed :: MethodBind\nbindInterpolatedCamera_set_speed\n  = unsafePerformIO $\n      withCString \"InterpolatedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"set_speed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How quickly the camera moves toward its target. Higher values will result in tighter camera motion.\nset_speed ::\n            (InterpolatedCamera :< cls, Object :< cls) => cls -> Float -> IO ()\nset_speed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInterpolatedCamera_set_speed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InterpolatedCamera \"set_speed\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.InterpolatedCamera.set_speed\n\n{-# NOINLINE bindInterpolatedCamera_set_target #-}\n\n-- | Sets the node to move toward and orient with.\nbindInterpolatedCamera_set_target :: MethodBind\nbindInterpolatedCamera_set_target\n  = unsafePerformIO $\n      withCString \"InterpolatedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"set_target\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the node to move toward and orient with.\nset_target ::\n             (InterpolatedCamera :< cls, Object :< cls) =>\n             cls -> Object -> IO ()\nset_target cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInterpolatedCamera_set_target\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InterpolatedCamera \"set_target\" '[Object]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InterpolatedCamera.set_target\n\n{-# NOINLINE bindInterpolatedCamera_set_target_path #-}\n\n-- | The target's @NodePath@.\nbindInterpolatedCamera_set_target_path :: MethodBind\nbindInterpolatedCamera_set_target_path\n  = unsafePerformIO $\n      withCString \"InterpolatedCamera\" $\n        \\ clsNamePtr ->\n          withCString \"set_target_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The target's @NodePath@.\nset_target_path ::\n                  (InterpolatedCamera :< cls, Object :< cls) =>\n                  cls -> NodePath -> IO ()\nset_target_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindInterpolatedCamera_set_target_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod InterpolatedCamera \"set_target_path\"\n           '[NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.InterpolatedCamera.set_target_path"
  },
  {
    "path": "src/Godot/Core/ItemList.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ItemList\n       (Godot.Core.ItemList._ICON_MODE_LEFT,\n        Godot.Core.ItemList._SELECT_MULTI,\n        Godot.Core.ItemList._SELECT_SINGLE,\n        Godot.Core.ItemList._ICON_MODE_TOP,\n        Godot.Core.ItemList.sig_item_activated,\n        Godot.Core.ItemList.sig_item_rmb_selected,\n        Godot.Core.ItemList.sig_item_selected,\n        Godot.Core.ItemList.sig_multi_selected,\n        Godot.Core.ItemList.sig_nothing_selected,\n        Godot.Core.ItemList.sig_rmb_clicked,\n        Godot.Core.ItemList._get_items, Godot.Core.ItemList._gui_input,\n        Godot.Core.ItemList._scroll_changed,\n        Godot.Core.ItemList._set_items, Godot.Core.ItemList.add_icon_item,\n        Godot.Core.ItemList.add_item, Godot.Core.ItemList.clear,\n        Godot.Core.ItemList.ensure_current_is_visible,\n        Godot.Core.ItemList.get_allow_reselect,\n        Godot.Core.ItemList.get_allow_rmb_select,\n        Godot.Core.ItemList.get_fixed_column_width,\n        Godot.Core.ItemList.get_fixed_icon_size,\n        Godot.Core.ItemList.get_icon_mode,\n        Godot.Core.ItemList.get_icon_scale,\n        Godot.Core.ItemList.get_item_at_position,\n        Godot.Core.ItemList.get_item_count,\n        Godot.Core.ItemList.get_item_custom_bg_color,\n        Godot.Core.ItemList.get_item_custom_fg_color,\n        Godot.Core.ItemList.get_item_icon,\n        Godot.Core.ItemList.get_item_icon_modulate,\n        Godot.Core.ItemList.get_item_icon_region,\n        Godot.Core.ItemList.get_item_metadata,\n        Godot.Core.ItemList.get_item_text,\n        Godot.Core.ItemList.get_item_tooltip,\n        Godot.Core.ItemList.get_max_columns,\n        Godot.Core.ItemList.get_max_text_lines,\n        Godot.Core.ItemList.get_select_mode,\n        Godot.Core.ItemList.get_selected_items,\n        Godot.Core.ItemList.get_v_scroll,\n        Godot.Core.ItemList.has_auto_height,\n        Godot.Core.ItemList.is_anything_selected,\n        Godot.Core.ItemList.is_item_disabled,\n        Godot.Core.ItemList.is_item_icon_transposed,\n        Godot.Core.ItemList.is_item_selectable,\n        Godot.Core.ItemList.is_item_tooltip_enabled,\n        Godot.Core.ItemList.is_same_column_width,\n        Godot.Core.ItemList.is_selected, Godot.Core.ItemList.move_item,\n        Godot.Core.ItemList.remove_item, Godot.Core.ItemList.select,\n        Godot.Core.ItemList.set_allow_reselect,\n        Godot.Core.ItemList.set_allow_rmb_select,\n        Godot.Core.ItemList.set_auto_height,\n        Godot.Core.ItemList.set_fixed_column_width,\n        Godot.Core.ItemList.set_fixed_icon_size,\n        Godot.Core.ItemList.set_icon_mode,\n        Godot.Core.ItemList.set_icon_scale,\n        Godot.Core.ItemList.set_item_custom_bg_color,\n        Godot.Core.ItemList.set_item_custom_fg_color,\n        Godot.Core.ItemList.set_item_disabled,\n        Godot.Core.ItemList.set_item_icon,\n        Godot.Core.ItemList.set_item_icon_modulate,\n        Godot.Core.ItemList.set_item_icon_region,\n        Godot.Core.ItemList.set_item_icon_transposed,\n        Godot.Core.ItemList.set_item_metadata,\n        Godot.Core.ItemList.set_item_selectable,\n        Godot.Core.ItemList.set_item_text,\n        Godot.Core.ItemList.set_item_tooltip,\n        Godot.Core.ItemList.set_item_tooltip_enabled,\n        Godot.Core.ItemList.set_max_columns,\n        Godot.Core.ItemList.set_max_text_lines,\n        Godot.Core.ItemList.set_same_column_width,\n        Godot.Core.ItemList.set_select_mode,\n        Godot.Core.ItemList.sort_items_by_text,\n        Godot.Core.ItemList.unselect, Godot.Core.ItemList.unselect_all)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()\n\n_ICON_MODE_LEFT :: Int\n_ICON_MODE_LEFT = 1\n\n_SELECT_MULTI :: Int\n_SELECT_MULTI = 1\n\n_SELECT_SINGLE :: Int\n_SELECT_SINGLE = 0\n\n_ICON_MODE_TOP :: Int\n_ICON_MODE_TOP = 0\n\n-- | Triggered when specified list item is activated via double-clicking or by pressing Enter.\nsig_item_activated :: Godot.Internal.Dispatch.Signal ItemList\nsig_item_activated\n  = Godot.Internal.Dispatch.Signal \"item_activated\"\n\ninstance NodeSignal ItemList \"item_activated\" '[Int]\n\n-- | Triggered when specified list item has been selected via right mouse clicking.\n--   \t\t\t\tThe click position is also provided to allow appropriate popup of context menus at the correct location.\n--   \t\t\t\t@allow_rmb_select@ must be enabled.\nsig_item_rmb_selected :: Godot.Internal.Dispatch.Signal ItemList\nsig_item_rmb_selected\n  = Godot.Internal.Dispatch.Signal \"item_rmb_selected\"\n\ninstance NodeSignal ItemList \"item_rmb_selected\" '[Int, Vector2]\n\n-- | Triggered when specified item has been selected.\n--   \t\t\t\t@allow_reselect@ must be enabled to reselect an item.\nsig_item_selected :: Godot.Internal.Dispatch.Signal ItemList\nsig_item_selected = Godot.Internal.Dispatch.Signal \"item_selected\"\n\ninstance NodeSignal ItemList \"item_selected\" '[Int]\n\n-- | Triggered when a multiple selection is altered on a list allowing multiple selection.\nsig_multi_selected :: Godot.Internal.Dispatch.Signal ItemList\nsig_multi_selected\n  = Godot.Internal.Dispatch.Signal \"multi_selected\"\n\ninstance NodeSignal ItemList \"multi_selected\" '[Int, Bool]\n\n-- | Triggered when a left mouse click is issued within the rect of the list but on empty space.\nsig_nothing_selected :: Godot.Internal.Dispatch.Signal ItemList\nsig_nothing_selected\n  = Godot.Internal.Dispatch.Signal \"nothing_selected\"\n\ninstance NodeSignal ItemList \"nothing_selected\" '[]\n\n-- | Triggered when a right mouse click is issued within the rect of the list but on empty space.\n--   \t\t\t\t@allow_rmb_select@ must be enabled.\nsig_rmb_clicked :: Godot.Internal.Dispatch.Signal ItemList\nsig_rmb_clicked = Godot.Internal.Dispatch.Signal \"rmb_clicked\"\n\ninstance NodeSignal ItemList \"rmb_clicked\" '[Vector2]\n\ninstance NodeProperty ItemList \"allow_reselect\" Bool 'False where\n        nodeProperty\n          = (get_allow_reselect, wrapDroppingSetter set_allow_reselect,\n             Nothing)\n\ninstance NodeProperty ItemList \"allow_rmb_select\" Bool 'False where\n        nodeProperty\n          = (get_allow_rmb_select, wrapDroppingSetter set_allow_rmb_select,\n             Nothing)\n\ninstance NodeProperty ItemList \"auto_height\" Bool 'False where\n        nodeProperty\n          = (has_auto_height, wrapDroppingSetter set_auto_height, Nothing)\n\ninstance NodeProperty ItemList \"fixed_column_width\" Int 'False\n         where\n        nodeProperty\n          = (get_fixed_column_width,\n             wrapDroppingSetter set_fixed_column_width, Nothing)\n\ninstance NodeProperty ItemList \"fixed_icon_size\" Vector2 'False\n         where\n        nodeProperty\n          = (get_fixed_icon_size, wrapDroppingSetter set_fixed_icon_size,\n             Nothing)\n\ninstance NodeProperty ItemList \"icon_mode\" Int 'False where\n        nodeProperty\n          = (get_icon_mode, wrapDroppingSetter set_icon_mode, Nothing)\n\ninstance NodeProperty ItemList \"icon_scale\" Float 'False where\n        nodeProperty\n          = (get_icon_scale, wrapDroppingSetter set_icon_scale, Nothing)\n\ninstance NodeProperty ItemList \"items\" Array 'False where\n        nodeProperty = (_get_items, wrapDroppingSetter _set_items, Nothing)\n\ninstance NodeProperty ItemList \"max_columns\" Int 'False where\n        nodeProperty\n          = (get_max_columns, wrapDroppingSetter set_max_columns, Nothing)\n\ninstance NodeProperty ItemList \"max_text_lines\" Int 'False where\n        nodeProperty\n          = (get_max_text_lines, wrapDroppingSetter set_max_text_lines,\n             Nothing)\n\ninstance NodeProperty ItemList \"same_column_width\" Bool 'False\n         where\n        nodeProperty\n          = (is_same_column_width, wrapDroppingSetter set_same_column_width,\n             Nothing)\n\ninstance NodeProperty ItemList \"select_mode\" Int 'False where\n        nodeProperty\n          = (get_select_mode, wrapDroppingSetter set_select_mode, Nothing)\n\n{-# NOINLINE bindItemList__get_items #-}\n\nbindItemList__get_items :: MethodBind\nbindItemList__get_items\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"_get_items\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_items :: (ItemList :< cls, Object :< cls) => cls -> IO Array\n_get_items cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList__get_items (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"_get_items\" '[] (IO Array) where\n        nodeMethod = Godot.Core.ItemList._get_items\n\n{-# NOINLINE bindItemList__gui_input #-}\n\nbindItemList__gui_input :: MethodBind\nbindItemList__gui_input\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (ItemList :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList__gui_input (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"_gui_input\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList._gui_input\n\n{-# NOINLINE bindItemList__scroll_changed #-}\n\nbindItemList__scroll_changed :: MethodBind\nbindItemList__scroll_changed\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"_scroll_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_scroll_changed ::\n                  (ItemList :< cls, Object :< cls) => cls -> Float -> IO ()\n_scroll_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList__scroll_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"_scroll_changed\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList._scroll_changed\n\n{-# NOINLINE bindItemList__set_items #-}\n\nbindItemList__set_items :: MethodBind\nbindItemList__set_items\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"_set_items\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_items ::\n             (ItemList :< cls, Object :< cls) => cls -> Array -> IO ()\n_set_items cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList__set_items (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"_set_items\" '[Array] (IO ()) where\n        nodeMethod = Godot.Core.ItemList._set_items\n\n{-# NOINLINE bindItemList_add_icon_item #-}\n\n-- | Adds an item to the item list with no text, only an icon.\nbindItemList_add_icon_item :: MethodBind\nbindItemList_add_icon_item\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"add_icon_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an item to the item list with no text, only an icon.\nadd_icon_item ::\n                (ItemList :< cls, Object :< cls) =>\n                cls -> Texture -> Maybe Bool -> IO ()\nadd_icon_item cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool True) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_add_icon_item (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"add_icon_item\" '[Texture, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.add_icon_item\n\n{-# NOINLINE bindItemList_add_item #-}\n\n-- | Adds an item to the item list with specified text. Specify an @icon@, or use @null@ as the @icon@ for a list item with no icon.\n--   \t\t\t\tIf selectable is @true@, the list item will be selectable.\nbindItemList_add_item :: MethodBind\nbindItemList_add_item\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"add_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an item to the item list with specified text. Specify an @icon@, or use @null@ as the @icon@ for a list item with no icon.\n--   \t\t\t\tIf selectable is @true@, the list item will be selectable.\nadd_item ::\n           (ItemList :< cls, Object :< cls) =>\n           cls -> GodotString -> Maybe Texture -> Maybe Bool -> IO ()\nadd_item cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe VariantNil toVariant arg2,\n       maybe (VariantBool True) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_add_item (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"add_item\"\n           '[GodotString, Maybe Texture, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.add_item\n\n{-# NOINLINE bindItemList_clear #-}\n\n-- | Removes all items from the list.\nbindItemList_clear :: MethodBind\nbindItemList_clear\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all items from the list.\nclear :: (ItemList :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_clear (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.ItemList.clear\n\n{-# NOINLINE bindItemList_ensure_current_is_visible #-}\n\n-- | Ensure current selection is visible, adjusting the scroll position as necessary.\nbindItemList_ensure_current_is_visible :: MethodBind\nbindItemList_ensure_current_is_visible\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"ensure_current_is_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Ensure current selection is visible, adjusting the scroll position as necessary.\nensure_current_is_visible ::\n                            (ItemList :< cls, Object :< cls) => cls -> IO ()\nensure_current_is_visible cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_ensure_current_is_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"ensure_current_is_visible\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.ensure_current_is_visible\n\n{-# NOINLINE bindItemList_get_allow_reselect #-}\n\n-- | If @true@, the currently selected item can be selected again.\nbindItemList_get_allow_reselect :: MethodBind\nbindItemList_get_allow_reselect\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_allow_reselect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the currently selected item can be selected again.\nget_allow_reselect ::\n                     (ItemList :< cls, Object :< cls) => cls -> IO Bool\nget_allow_reselect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_allow_reselect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_allow_reselect\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ItemList.get_allow_reselect\n\n{-# NOINLINE bindItemList_get_allow_rmb_select #-}\n\n-- | If @true@, right mouse button click can select items.\nbindItemList_get_allow_rmb_select :: MethodBind\nbindItemList_get_allow_rmb_select\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_allow_rmb_select\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, right mouse button click can select items.\nget_allow_rmb_select ::\n                       (ItemList :< cls, Object :< cls) => cls -> IO Bool\nget_allow_rmb_select cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_allow_rmb_select\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_allow_rmb_select\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ItemList.get_allow_rmb_select\n\n{-# NOINLINE bindItemList_get_fixed_column_width #-}\n\n-- | The width all columns will be adjusted to.\n--   \t\t\tA value of zero disables the adjustment, each item will have a width equal to the width of its content and the columns will have an uneven width.\nbindItemList_get_fixed_column_width :: MethodBind\nbindItemList_get_fixed_column_width\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_fixed_column_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The width all columns will be adjusted to.\n--   \t\t\tA value of zero disables the adjustment, each item will have a width equal to the width of its content and the columns will have an uneven width.\nget_fixed_column_width ::\n                         (ItemList :< cls, Object :< cls) => cls -> IO Int\nget_fixed_column_width cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_fixed_column_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_fixed_column_width\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ItemList.get_fixed_column_width\n\n{-# NOINLINE bindItemList_get_fixed_icon_size #-}\n\n-- | The size all icons will be adjusted to.\n--   \t\t\tIf either X or Y component is not greater than zero, icon size won't be affected.\nbindItemList_get_fixed_icon_size :: MethodBind\nbindItemList_get_fixed_icon_size\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_fixed_icon_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size all icons will be adjusted to.\n--   \t\t\tIf either X or Y component is not greater than zero, icon size won't be affected.\nget_fixed_icon_size ::\n                      (ItemList :< cls, Object :< cls) => cls -> IO Vector2\nget_fixed_icon_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_fixed_icon_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_fixed_icon_size\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.ItemList.get_fixed_icon_size\n\n{-# NOINLINE bindItemList_get_icon_mode #-}\n\n-- | The icon position, whether above or to the left of the text. See the @enum IconMode@ constants.\nbindItemList_get_icon_mode :: MethodBind\nbindItemList_get_icon_mode\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_icon_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The icon position, whether above or to the left of the text. See the @enum IconMode@ constants.\nget_icon_mode :: (ItemList :< cls, Object :< cls) => cls -> IO Int\nget_icon_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_icon_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_icon_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.ItemList.get_icon_mode\n\n{-# NOINLINE bindItemList_get_icon_scale #-}\n\n-- | The scale of icon applied after @fixed_icon_size@ and transposing takes effect.\nbindItemList_get_icon_scale :: MethodBind\nbindItemList_get_icon_scale\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_icon_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The scale of icon applied after @fixed_icon_size@ and transposing takes effect.\nget_icon_scale ::\n                 (ItemList :< cls, Object :< cls) => cls -> IO Float\nget_icon_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_icon_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_icon_scale\" '[] (IO Float) where\n        nodeMethod = Godot.Core.ItemList.get_icon_scale\n\n{-# NOINLINE bindItemList_get_item_at_position #-}\n\n-- | Returns the item index at the given @position@.\n--   \t\t\t\tWhen there is no item at that point, -1 will be returned if @exact@ is @true@, and the closest item index will be returned otherwise.\nbindItemList_get_item_at_position :: MethodBind\nbindItemList_get_item_at_position\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_at_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the item index at the given @position@.\n--   \t\t\t\tWhen there is no item at that point, -1 will be returned if @exact@ is @true@, and the closest item index will be returned otherwise.\nget_item_at_position ::\n                       (ItemList :< cls, Object :< cls) =>\n                       cls -> Vector2 -> Maybe Bool -> IO Int\nget_item_at_position cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_item_at_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_item_at_position\"\n           '[Vector2, Maybe Bool]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ItemList.get_item_at_position\n\n{-# NOINLINE bindItemList_get_item_count #-}\n\n-- | Returns the number of items currently in the list.\nbindItemList_get_item_count :: MethodBind\nbindItemList_get_item_count\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of items currently in the list.\nget_item_count :: (ItemList :< cls, Object :< cls) => cls -> IO Int\nget_item_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_item_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_item_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.ItemList.get_item_count\n\n{-# NOINLINE bindItemList_get_item_custom_bg_color #-}\n\n-- | Returns the custom background color of the item specified by @idx@ index.\nbindItemList_get_item_custom_bg_color :: MethodBind\nbindItemList_get_item_custom_bg_color\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_custom_bg_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the custom background color of the item specified by @idx@ index.\nget_item_custom_bg_color ::\n                           (ItemList :< cls, Object :< cls) => cls -> Int -> IO Color\nget_item_custom_bg_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_item_custom_bg_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_item_custom_bg_color\" '[Int]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.ItemList.get_item_custom_bg_color\n\n{-# NOINLINE bindItemList_get_item_custom_fg_color #-}\n\n-- | Returns the custom foreground color of the item specified by @idx@ index.\nbindItemList_get_item_custom_fg_color :: MethodBind\nbindItemList_get_item_custom_fg_color\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_custom_fg_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the custom foreground color of the item specified by @idx@ index.\nget_item_custom_fg_color ::\n                           (ItemList :< cls, Object :< cls) => cls -> Int -> IO Color\nget_item_custom_fg_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_item_custom_fg_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_item_custom_fg_color\" '[Int]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.ItemList.get_item_custom_fg_color\n\n{-# NOINLINE bindItemList_get_item_icon #-}\n\n-- | Returns the icon associated with the specified index.\nbindItemList_get_item_icon :: MethodBind\nbindItemList_get_item_icon\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the icon associated with the specified index.\nget_item_icon ::\n                (ItemList :< cls, Object :< cls) => cls -> Int -> IO Texture\nget_item_icon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_item_icon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_item_icon\" '[Int] (IO Texture)\n         where\n        nodeMethod = Godot.Core.ItemList.get_item_icon\n\n{-# NOINLINE bindItemList_get_item_icon_modulate #-}\n\n-- | Returns a @Color@ modulating item's icon at the specified index.\nbindItemList_get_item_icon_modulate :: MethodBind\nbindItemList_get_item_icon_modulate\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_icon_modulate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @Color@ modulating item's icon at the specified index.\nget_item_icon_modulate ::\n                         (ItemList :< cls, Object :< cls) => cls -> Int -> IO Color\nget_item_icon_modulate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_item_icon_modulate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_item_icon_modulate\" '[Int]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.ItemList.get_item_icon_modulate\n\n{-# NOINLINE bindItemList_get_item_icon_region #-}\n\n-- | Returns the region of item's icon used. The whole icon will be used if the region has no area.\nbindItemList_get_item_icon_region :: MethodBind\nbindItemList_get_item_icon_region\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_icon_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the region of item's icon used. The whole icon will be used if the region has no area.\nget_item_icon_region ::\n                       (ItemList :< cls, Object :< cls) => cls -> Int -> IO Rect2\nget_item_icon_region cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_item_icon_region\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_item_icon_region\" '[Int]\n           (IO Rect2)\n         where\n        nodeMethod = Godot.Core.ItemList.get_item_icon_region\n\n{-# NOINLINE bindItemList_get_item_metadata #-}\n\n-- | Returns the metadata value of the specified index.\nbindItemList_get_item_metadata :: MethodBind\nbindItemList_get_item_metadata\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_metadata\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the metadata value of the specified index.\nget_item_metadata ::\n                    (ItemList :< cls, Object :< cls) => cls -> Int -> IO GodotVariant\nget_item_metadata cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_item_metadata (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_item_metadata\" '[Int]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.ItemList.get_item_metadata\n\n{-# NOINLINE bindItemList_get_item_text #-}\n\n-- | Returns the text associated with the specified index.\nbindItemList_get_item_text :: MethodBind\nbindItemList_get_item_text\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the text associated with the specified index.\nget_item_text ::\n                (ItemList :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_item_text cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_item_text (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_item_text\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.ItemList.get_item_text\n\n{-# NOINLINE bindItemList_get_item_tooltip #-}\n\n-- | Returns the tooltip hint associated with the specified index.\nbindItemList_get_item_tooltip :: MethodBind\nbindItemList_get_item_tooltip\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_tooltip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tooltip hint associated with the specified index.\nget_item_tooltip ::\n                   (ItemList :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_item_tooltip cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_item_tooltip (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_item_tooltip\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.ItemList.get_item_tooltip\n\n{-# NOINLINE bindItemList_get_max_columns #-}\n\n-- | Maximum columns the list will have.\n--   \t\t\tIf greater than zero, the content will be split among the specified columns.\n--   \t\t\tA value of zero means unlimited columns, i.e. all items will be put in the same row.\nbindItemList_get_max_columns :: MethodBind\nbindItemList_get_max_columns\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_max_columns\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum columns the list will have.\n--   \t\t\tIf greater than zero, the content will be split among the specified columns.\n--   \t\t\tA value of zero means unlimited columns, i.e. all items will be put in the same row.\nget_max_columns ::\n                  (ItemList :< cls, Object :< cls) => cls -> IO Int\nget_max_columns cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_max_columns (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_max_columns\" '[] (IO Int) where\n        nodeMethod = Godot.Core.ItemList.get_max_columns\n\n{-# NOINLINE bindItemList_get_max_text_lines #-}\n\n-- | Maximum lines of text allowed in each item. Space will be reserved even when there is not enough lines of text to display.\n--   \t\t\t__Note:__ This property takes effect only when @icon_mode@ is @ICON_MODE_TOP@. To make the text wrap, @fixed_column_width@ should be greater than zero.\nbindItemList_get_max_text_lines :: MethodBind\nbindItemList_get_max_text_lines\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_max_text_lines\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum lines of text allowed in each item. Space will be reserved even when there is not enough lines of text to display.\n--   \t\t\t__Note:__ This property takes effect only when @icon_mode@ is @ICON_MODE_TOP@. To make the text wrap, @fixed_column_width@ should be greater than zero.\nget_max_text_lines ::\n                     (ItemList :< cls, Object :< cls) => cls -> IO Int\nget_max_text_lines cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_max_text_lines (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_max_text_lines\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ItemList.get_max_text_lines\n\n{-# NOINLINE bindItemList_get_select_mode #-}\n\n-- | Allows single or multiple item selection. See the @enum SelectMode@ constants.\nbindItemList_get_select_mode :: MethodBind\nbindItemList_get_select_mode\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_select_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Allows single or multiple item selection. See the @enum SelectMode@ constants.\nget_select_mode ::\n                  (ItemList :< cls, Object :< cls) => cls -> IO Int\nget_select_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_select_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_select_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.ItemList.get_select_mode\n\n{-# NOINLINE bindItemList_get_selected_items #-}\n\n-- | Returns an array with the indexes of the selected items.\nbindItemList_get_selected_items :: MethodBind\nbindItemList_get_selected_items\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_selected_items\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array with the indexes of the selected items.\nget_selected_items ::\n                     (ItemList :< cls, Object :< cls) => cls -> IO PoolIntArray\nget_selected_items cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_selected_items (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_selected_items\" '[]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.ItemList.get_selected_items\n\n{-# NOINLINE bindItemList_get_v_scroll #-}\n\n-- | Returns the @Object@ ID associated with the list.\nbindItemList_get_v_scroll :: MethodBind\nbindItemList_get_v_scroll\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"get_v_scroll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Object@ ID associated with the list.\nget_v_scroll ::\n               (ItemList :< cls, Object :< cls) => cls -> IO VScrollBar\nget_v_scroll cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_get_v_scroll (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"get_v_scroll\" '[] (IO VScrollBar)\n         where\n        nodeMethod = Godot.Core.ItemList.get_v_scroll\n\n{-# NOINLINE bindItemList_has_auto_height #-}\n\n-- | If @true@, the control will automatically resize the height to fit its content.\nbindItemList_has_auto_height :: MethodBind\nbindItemList_has_auto_height\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"has_auto_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the control will automatically resize the height to fit its content.\nhas_auto_height ::\n                  (ItemList :< cls, Object :< cls) => cls -> IO Bool\nhas_auto_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_has_auto_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"has_auto_height\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.ItemList.has_auto_height\n\n{-# NOINLINE bindItemList_is_anything_selected #-}\n\n-- | Returns @true@ if one or more items are selected.\nbindItemList_is_anything_selected :: MethodBind\nbindItemList_is_anything_selected\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"is_anything_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if one or more items are selected.\nis_anything_selected ::\n                       (ItemList :< cls, Object :< cls) => cls -> IO Bool\nis_anything_selected cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_is_anything_selected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"is_anything_selected\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ItemList.is_anything_selected\n\n{-# NOINLINE bindItemList_is_item_disabled #-}\n\n-- | Returns @true@ if the item at the specified index is disabled.\nbindItemList_is_item_disabled :: MethodBind\nbindItemList_is_item_disabled\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"is_item_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the item at the specified index is disabled.\nis_item_disabled ::\n                   (ItemList :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_item_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_is_item_disabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"is_item_disabled\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ItemList.is_item_disabled\n\n{-# NOINLINE bindItemList_is_item_icon_transposed #-}\n\n-- | Returns @true@ if the item icon will be drawn transposed, i.e. the X and Y axes are swapped.\nbindItemList_is_item_icon_transposed :: MethodBind\nbindItemList_is_item_icon_transposed\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"is_item_icon_transposed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the item icon will be drawn transposed, i.e. the X and Y axes are swapped.\nis_item_icon_transposed ::\n                          (ItemList :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_item_icon_transposed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_is_item_icon_transposed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"is_item_icon_transposed\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ItemList.is_item_icon_transposed\n\n{-# NOINLINE bindItemList_is_item_selectable #-}\n\n-- | Returns @true@ if the item at the specified index is selectable.\nbindItemList_is_item_selectable :: MethodBind\nbindItemList_is_item_selectable\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"is_item_selectable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the item at the specified index is selectable.\nis_item_selectable ::\n                     (ItemList :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_item_selectable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_is_item_selectable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"is_item_selectable\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ItemList.is_item_selectable\n\n{-# NOINLINE bindItemList_is_item_tooltip_enabled #-}\n\n-- | Returns @true@ if the tooltip is enabled for specified item index.\nbindItemList_is_item_tooltip_enabled :: MethodBind\nbindItemList_is_item_tooltip_enabled\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"is_item_tooltip_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the tooltip is enabled for specified item index.\nis_item_tooltip_enabled ::\n                          (ItemList :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_item_tooltip_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_is_item_tooltip_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"is_item_tooltip_enabled\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ItemList.is_item_tooltip_enabled\n\n{-# NOINLINE bindItemList_is_same_column_width #-}\n\n-- | Whether all columns will have the same width.\n--   \t\t\tIf @true@, the width is equal to the largest column width of all columns.\nbindItemList_is_same_column_width :: MethodBind\nbindItemList_is_same_column_width\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"is_same_column_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Whether all columns will have the same width.\n--   \t\t\tIf @true@, the width is equal to the largest column width of all columns.\nis_same_column_width ::\n                       (ItemList :< cls, Object :< cls) => cls -> IO Bool\nis_same_column_width cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_is_same_column_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"is_same_column_width\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ItemList.is_same_column_width\n\n{-# NOINLINE bindItemList_is_selected #-}\n\n-- | Returns @true@ if the item at the specified index is currently selected.\nbindItemList_is_selected :: MethodBind\nbindItemList_is_selected\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"is_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the item at the specified index is currently selected.\nis_selected ::\n              (ItemList :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_selected cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_is_selected (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"is_selected\" '[Int] (IO Bool) where\n        nodeMethod = Godot.Core.ItemList.is_selected\n\n{-# NOINLINE bindItemList_move_item #-}\n\n-- | Moves item from index @from_idx@ to @to_idx@.\nbindItemList_move_item :: MethodBind\nbindItemList_move_item\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"move_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves item from index @from_idx@ to @to_idx@.\nmove_item ::\n            (ItemList :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nmove_item cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_move_item (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"move_item\" '[Int, Int] (IO ()) where\n        nodeMethod = Godot.Core.ItemList.move_item\n\n{-# NOINLINE bindItemList_remove_item #-}\n\n-- | Removes the item specified by @idx@ index from the list.\nbindItemList_remove_item :: MethodBind\nbindItemList_remove_item\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"remove_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the item specified by @idx@ index from the list.\nremove_item ::\n              (ItemList :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_item cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_remove_item (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"remove_item\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.ItemList.remove_item\n\n{-# NOINLINE bindItemList_select #-}\n\n-- | Select the item at the specified index.\n--   \t\t\t\t__Note:__ This method does not trigger the item selection signal.\nbindItemList_select :: MethodBind\nbindItemList_select\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"select\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Select the item at the specified index.\n--   \t\t\t\t__Note:__ This method does not trigger the item selection signal.\nselect ::\n         (ItemList :< cls, Object :< cls) =>\n         cls -> Int -> Maybe Bool -> IO ()\nselect cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool True) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_select (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"select\" '[Int, Maybe Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.select\n\n{-# NOINLINE bindItemList_set_allow_reselect #-}\n\n-- | If @true@, the currently selected item can be selected again.\nbindItemList_set_allow_reselect :: MethodBind\nbindItemList_set_allow_reselect\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_allow_reselect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the currently selected item can be selected again.\nset_allow_reselect ::\n                     (ItemList :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_allow_reselect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_allow_reselect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_allow_reselect\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_allow_reselect\n\n{-# NOINLINE bindItemList_set_allow_rmb_select #-}\n\n-- | If @true@, right mouse button click can select items.\nbindItemList_set_allow_rmb_select :: MethodBind\nbindItemList_set_allow_rmb_select\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_allow_rmb_select\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, right mouse button click can select items.\nset_allow_rmb_select ::\n                       (ItemList :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_allow_rmb_select cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_allow_rmb_select\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_allow_rmb_select\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_allow_rmb_select\n\n{-# NOINLINE bindItemList_set_auto_height #-}\n\n-- | If @true@, the control will automatically resize the height to fit its content.\nbindItemList_set_auto_height :: MethodBind\nbindItemList_set_auto_height\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_auto_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the control will automatically resize the height to fit its content.\nset_auto_height ::\n                  (ItemList :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_auto_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_auto_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_auto_height\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_auto_height\n\n{-# NOINLINE bindItemList_set_fixed_column_width #-}\n\n-- | The width all columns will be adjusted to.\n--   \t\t\tA value of zero disables the adjustment, each item will have a width equal to the width of its content and the columns will have an uneven width.\nbindItemList_set_fixed_column_width :: MethodBind\nbindItemList_set_fixed_column_width\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_fixed_column_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The width all columns will be adjusted to.\n--   \t\t\tA value of zero disables the adjustment, each item will have a width equal to the width of its content and the columns will have an uneven width.\nset_fixed_column_width ::\n                         (ItemList :< cls, Object :< cls) => cls -> Int -> IO ()\nset_fixed_column_width cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_fixed_column_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_fixed_column_width\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_fixed_column_width\n\n{-# NOINLINE bindItemList_set_fixed_icon_size #-}\n\n-- | The size all icons will be adjusted to.\n--   \t\t\tIf either X or Y component is not greater than zero, icon size won't be affected.\nbindItemList_set_fixed_icon_size :: MethodBind\nbindItemList_set_fixed_icon_size\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_fixed_icon_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size all icons will be adjusted to.\n--   \t\t\tIf either X or Y component is not greater than zero, icon size won't be affected.\nset_fixed_icon_size ::\n                      (ItemList :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_fixed_icon_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_fixed_icon_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_fixed_icon_size\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_fixed_icon_size\n\n{-# NOINLINE bindItemList_set_icon_mode #-}\n\n-- | The icon position, whether above or to the left of the text. See the @enum IconMode@ constants.\nbindItemList_set_icon_mode :: MethodBind\nbindItemList_set_icon_mode\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_icon_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The icon position, whether above or to the left of the text. See the @enum IconMode@ constants.\nset_icon_mode ::\n                (ItemList :< cls, Object :< cls) => cls -> Int -> IO ()\nset_icon_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_icon_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_icon_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.ItemList.set_icon_mode\n\n{-# NOINLINE bindItemList_set_icon_scale #-}\n\n-- | The scale of icon applied after @fixed_icon_size@ and transposing takes effect.\nbindItemList_set_icon_scale :: MethodBind\nbindItemList_set_icon_scale\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_icon_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The scale of icon applied after @fixed_icon_size@ and transposing takes effect.\nset_icon_scale ::\n                 (ItemList :< cls, Object :< cls) => cls -> Float -> IO ()\nset_icon_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_icon_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_icon_scale\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_icon_scale\n\n{-# NOINLINE bindItemList_set_item_custom_bg_color #-}\n\n-- | Sets the background color of the item specified by @idx@ index to the specified @Color@.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar some_string = \"Some text\"\n--   \t\t\t\tsome_string.set_item_custom_bg_color(0,Color(1, 0, 0, 1) # This will set the background color of the first item of the control to red.\n--   \t\t\t\t\n--   @\nbindItemList_set_item_custom_bg_color :: MethodBind\nbindItemList_set_item_custom_bg_color\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_custom_bg_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the background color of the item specified by @idx@ index to the specified @Color@.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar some_string = \"Some text\"\n--   \t\t\t\tsome_string.set_item_custom_bg_color(0,Color(1, 0, 0, 1) # This will set the background color of the first item of the control to red.\n--   \t\t\t\t\n--   @\nset_item_custom_bg_color ::\n                           (ItemList :< cls, Object :< cls) => cls -> Int -> Color -> IO ()\nset_item_custom_bg_color cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_item_custom_bg_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_item_custom_bg_color\"\n           '[Int, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_item_custom_bg_color\n\n{-# NOINLINE bindItemList_set_item_custom_fg_color #-}\n\n-- | Sets the foreground color of the item specified by @idx@ index to the specified @Color@.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar some_string = \"Some text\"\n--   \t\t\t\tsome_string.set_item_custom_fg_color(0,Color(1, 0, 0, 1) # This will set the foreground color of the first item of the control to red.\n--   \t\t\t\t\n--   @\nbindItemList_set_item_custom_fg_color :: MethodBind\nbindItemList_set_item_custom_fg_color\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_custom_fg_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the foreground color of the item specified by @idx@ index to the specified @Color@.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar some_string = \"Some text\"\n--   \t\t\t\tsome_string.set_item_custom_fg_color(0,Color(1, 0, 0, 1) # This will set the foreground color of the first item of the control to red.\n--   \t\t\t\t\n--   @\nset_item_custom_fg_color ::\n                           (ItemList :< cls, Object :< cls) => cls -> Int -> Color -> IO ()\nset_item_custom_fg_color cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_item_custom_fg_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_item_custom_fg_color\"\n           '[Int, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_item_custom_fg_color\n\n{-# NOINLINE bindItemList_set_item_disabled #-}\n\n-- | Disables (or enables) the item at the specified index.\n--   \t\t\t\tDisabled items cannot be selected and do not trigger activation signals (when double-clicking or pressing Enter).\nbindItemList_set_item_disabled :: MethodBind\nbindItemList_set_item_disabled\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Disables (or enables) the item at the specified index.\n--   \t\t\t\tDisabled items cannot be selected and do not trigger activation signals (when double-clicking or pressing Enter).\nset_item_disabled ::\n                    (ItemList :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_item_disabled cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_item_disabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_item_disabled\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_item_disabled\n\n{-# NOINLINE bindItemList_set_item_icon #-}\n\n-- | Sets (or replaces) the icon's @Texture@ associated with the specified index.\nbindItemList_set_item_icon :: MethodBind\nbindItemList_set_item_icon\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets (or replaces) the icon's @Texture@ associated with the specified index.\nset_item_icon ::\n                (ItemList :< cls, Object :< cls) => cls -> Int -> Texture -> IO ()\nset_item_icon cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_item_icon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_item_icon\" '[Int, Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_item_icon\n\n{-# NOINLINE bindItemList_set_item_icon_modulate #-}\n\n-- | Sets a modulating @Color@ of the item associated with the specified index.\nbindItemList_set_item_icon_modulate :: MethodBind\nbindItemList_set_item_icon_modulate\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_icon_modulate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a modulating @Color@ of the item associated with the specified index.\nset_item_icon_modulate ::\n                         (ItemList :< cls, Object :< cls) => cls -> Int -> Color -> IO ()\nset_item_icon_modulate cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_item_icon_modulate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_item_icon_modulate\" '[Int, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_item_icon_modulate\n\n{-# NOINLINE bindItemList_set_item_icon_region #-}\n\n-- | Sets the region of item's icon used. The whole icon will be used if the region has no area.\nbindItemList_set_item_icon_region :: MethodBind\nbindItemList_set_item_icon_region\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_icon_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the region of item's icon used. The whole icon will be used if the region has no area.\nset_item_icon_region ::\n                       (ItemList :< cls, Object :< cls) => cls -> Int -> Rect2 -> IO ()\nset_item_icon_region cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_item_icon_region\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_item_icon_region\" '[Int, Rect2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_item_icon_region\n\n{-# NOINLINE bindItemList_set_item_icon_transposed #-}\n\n-- | Sets whether the item icon will be drawn transposed.\nbindItemList_set_item_icon_transposed :: MethodBind\nbindItemList_set_item_icon_transposed\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_icon_transposed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether the item icon will be drawn transposed.\nset_item_icon_transposed ::\n                           (ItemList :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_item_icon_transposed cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_item_icon_transposed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_item_icon_transposed\"\n           '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_item_icon_transposed\n\n{-# NOINLINE bindItemList_set_item_metadata #-}\n\n-- | Sets a value (of any type) to be stored with the item associated with the specified index.\nbindItemList_set_item_metadata :: MethodBind\nbindItemList_set_item_metadata\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_metadata\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a value (of any type) to be stored with the item associated with the specified index.\nset_item_metadata ::\n                    (ItemList :< cls, Object :< cls) =>\n                    cls -> Int -> GodotVariant -> IO ()\nset_item_metadata cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_item_metadata (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_item_metadata\"\n           '[Int, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_item_metadata\n\n{-# NOINLINE bindItemList_set_item_selectable #-}\n\n-- | Allows or disallows selection of the item associated with the specified index.\nbindItemList_set_item_selectable :: MethodBind\nbindItemList_set_item_selectable\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_selectable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Allows or disallows selection of the item associated with the specified index.\nset_item_selectable ::\n                      (ItemList :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_item_selectable cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_item_selectable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_item_selectable\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_item_selectable\n\n{-# NOINLINE bindItemList_set_item_text #-}\n\n-- | Sets text of the item associated with the specified index.\nbindItemList_set_item_text :: MethodBind\nbindItemList_set_item_text\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets text of the item associated with the specified index.\nset_item_text ::\n                (ItemList :< cls, Object :< cls) =>\n                cls -> Int -> GodotString -> IO ()\nset_item_text cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_item_text (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_item_text\" '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_item_text\n\n{-# NOINLINE bindItemList_set_item_tooltip #-}\n\n-- | Sets the tooltip hint for the item associated with the specified index.\nbindItemList_set_item_tooltip :: MethodBind\nbindItemList_set_item_tooltip\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_tooltip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the tooltip hint for the item associated with the specified index.\nset_item_tooltip ::\n                   (ItemList :< cls, Object :< cls) =>\n                   cls -> Int -> GodotString -> IO ()\nset_item_tooltip cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_item_tooltip (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_item_tooltip\" '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_item_tooltip\n\n{-# NOINLINE bindItemList_set_item_tooltip_enabled #-}\n\n-- | Sets whether the tooltip hint is enabled for specified item index.\nbindItemList_set_item_tooltip_enabled :: MethodBind\nbindItemList_set_item_tooltip_enabled\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_tooltip_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether the tooltip hint is enabled for specified item index.\nset_item_tooltip_enabled ::\n                           (ItemList :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_item_tooltip_enabled cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_item_tooltip_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_item_tooltip_enabled\"\n           '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_item_tooltip_enabled\n\n{-# NOINLINE bindItemList_set_max_columns #-}\n\n-- | Maximum columns the list will have.\n--   \t\t\tIf greater than zero, the content will be split among the specified columns.\n--   \t\t\tA value of zero means unlimited columns, i.e. all items will be put in the same row.\nbindItemList_set_max_columns :: MethodBind\nbindItemList_set_max_columns\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_max_columns\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum columns the list will have.\n--   \t\t\tIf greater than zero, the content will be split among the specified columns.\n--   \t\t\tA value of zero means unlimited columns, i.e. all items will be put in the same row.\nset_max_columns ::\n                  (ItemList :< cls, Object :< cls) => cls -> Int -> IO ()\nset_max_columns cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_max_columns (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_max_columns\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.ItemList.set_max_columns\n\n{-# NOINLINE bindItemList_set_max_text_lines #-}\n\n-- | Maximum lines of text allowed in each item. Space will be reserved even when there is not enough lines of text to display.\n--   \t\t\t__Note:__ This property takes effect only when @icon_mode@ is @ICON_MODE_TOP@. To make the text wrap, @fixed_column_width@ should be greater than zero.\nbindItemList_set_max_text_lines :: MethodBind\nbindItemList_set_max_text_lines\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_max_text_lines\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum lines of text allowed in each item. Space will be reserved even when there is not enough lines of text to display.\n--   \t\t\t__Note:__ This property takes effect only when @icon_mode@ is @ICON_MODE_TOP@. To make the text wrap, @fixed_column_width@ should be greater than zero.\nset_max_text_lines ::\n                     (ItemList :< cls, Object :< cls) => cls -> Int -> IO ()\nset_max_text_lines cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_max_text_lines (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_max_text_lines\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_max_text_lines\n\n{-# NOINLINE bindItemList_set_same_column_width #-}\n\n-- | Whether all columns will have the same width.\n--   \t\t\tIf @true@, the width is equal to the largest column width of all columns.\nbindItemList_set_same_column_width :: MethodBind\nbindItemList_set_same_column_width\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_same_column_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Whether all columns will have the same width.\n--   \t\t\tIf @true@, the width is equal to the largest column width of all columns.\nset_same_column_width ::\n                        (ItemList :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_same_column_width cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_same_column_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_same_column_width\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ItemList.set_same_column_width\n\n{-# NOINLINE bindItemList_set_select_mode #-}\n\n-- | Allows single or multiple item selection. See the @enum SelectMode@ constants.\nbindItemList_set_select_mode :: MethodBind\nbindItemList_set_select_mode\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"set_select_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Allows single or multiple item selection. See the @enum SelectMode@ constants.\nset_select_mode ::\n                  (ItemList :< cls, Object :< cls) => cls -> Int -> IO ()\nset_select_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_set_select_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"set_select_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.ItemList.set_select_mode\n\n{-# NOINLINE bindItemList_sort_items_by_text #-}\n\n-- | Sorts items in the list by their text.\nbindItemList_sort_items_by_text :: MethodBind\nbindItemList_sort_items_by_text\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"sort_items_by_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sorts items in the list by their text.\nsort_items_by_text ::\n                     (ItemList :< cls, Object :< cls) => cls -> IO ()\nsort_items_by_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_sort_items_by_text (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"sort_items_by_text\" '[] (IO ()) where\n        nodeMethod = Godot.Core.ItemList.sort_items_by_text\n\n{-# NOINLINE bindItemList_unselect #-}\n\n-- | Ensures the item associated with the specified index is not selected.\nbindItemList_unselect :: MethodBind\nbindItemList_unselect\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"unselect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Ensures the item associated with the specified index is not selected.\nunselect :: (ItemList :< cls, Object :< cls) => cls -> Int -> IO ()\nunselect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_unselect (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"unselect\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.ItemList.unselect\n\n{-# NOINLINE bindItemList_unselect_all #-}\n\n-- | Ensures there are no items selected.\nbindItemList_unselect_all :: MethodBind\nbindItemList_unselect_all\n  = unsafePerformIO $\n      withCString \"ItemList\" $\n        \\ clsNamePtr ->\n          withCString \"unselect_all\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Ensures there are no items selected.\nunselect_all :: (ItemList :< cls, Object :< cls) => cls -> IO ()\nunselect_all cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindItemList_unselect_all (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ItemList \"unselect_all\" '[] (IO ()) where\n        nodeMethod = Godot.Core.ItemList.unselect_all"
  },
  {
    "path": "src/Godot/Core/JSON.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.JSON\n       (Godot.Core.JSON.parse, Godot.Core.JSON.print) where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n{-# NOINLINE bindJSON_parse #-}\n\n-- | Parses a JSON-encoded string and returns a @JSONParseResult@ containing the result.\nbindJSON_parse :: MethodBind\nbindJSON_parse\n  = unsafePerformIO $\n      withCString \"_JSON\" $\n        \\ clsNamePtr ->\n          withCString \"parse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Parses a JSON-encoded string and returns a @JSONParseResult@ containing the result.\nparse ::\n        (JSON :< cls, Object :< cls) =>\n        cls -> GodotString -> IO JSONParseResult\nparse cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJSON_parse (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JSON \"parse\" '[GodotString]\n           (IO JSONParseResult)\n         where\n        nodeMethod = Godot.Core.JSON.parse\n\n{-# NOINLINE bindJSON_print #-}\n\n-- | Converts a @Variant@ var to JSON text and returns the result. Useful for serializing data to store or send over the network.\n--   \t\t\t\t__Note:__ The JSON specification does not define integer or float types, but only a @i@number@/i@ type. Therefore, converting a Variant to JSON text will convert all numerical values to @float@ types.\n--   \t\t\t\tUse @indent@ parameter to pretty print the output.\n--   \t\t\t\t__Example output:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t## JSON.print(my_dictionary)\n--   \t\t\t\t{\"name\":\"my_dictionary\",\"version\":\"1.0.0\",\"entities\":@{\"name\":\"entity_0\",\"value\":\"value_0\"},{\"name\":\"entity_1\",\"value\":\"value_1\"}@}\n--   \n--   \t\t\t\t## JSON.print(my_dictionary, \"\\t\")\n--   \t\t\t\t{\n--   \t\t\t\t        \"name\": \"my_dictionary\",\n--   \t\t\t\t        \"version\": \"1.0.0\",\n--   \t\t\t\t        \"entities\": @\n--   \t\t\t\t                {\n--   \t\t\t\t                        \"name\": \"entity_0\",\n--   \t\t\t\t                        \"value\": \"value_0\"\n--   \t\t\t\t                },\n--   \t\t\t\t                {\n--   \t\t\t\t                        \"name\": \"entity_1\",\n--   \t\t\t\t                        \"value\": \"value_1\"\n--   \t\t\t\t                }\n--   \t\t\t\t        @\n--   \t\t\t\t}\n--   \t\t\t\t\n--   @\nbindJSON_print :: MethodBind\nbindJSON_print\n  = unsafePerformIO $\n      withCString \"_JSON\" $\n        \\ clsNamePtr ->\n          withCString \"print\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Converts a @Variant@ var to JSON text and returns the result. Useful for serializing data to store or send over the network.\n--   \t\t\t\t__Note:__ The JSON specification does not define integer or float types, but only a @i@number@/i@ type. Therefore, converting a Variant to JSON text will convert all numerical values to @float@ types.\n--   \t\t\t\tUse @indent@ parameter to pretty print the output.\n--   \t\t\t\t__Example output:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t## JSON.print(my_dictionary)\n--   \t\t\t\t{\"name\":\"my_dictionary\",\"version\":\"1.0.0\",\"entities\":@{\"name\":\"entity_0\",\"value\":\"value_0\"},{\"name\":\"entity_1\",\"value\":\"value_1\"}@}\n--   \n--   \t\t\t\t## JSON.print(my_dictionary, \"\\t\")\n--   \t\t\t\t{\n--   \t\t\t\t        \"name\": \"my_dictionary\",\n--   \t\t\t\t        \"version\": \"1.0.0\",\n--   \t\t\t\t        \"entities\": @\n--   \t\t\t\t                {\n--   \t\t\t\t                        \"name\": \"entity_0\",\n--   \t\t\t\t                        \"value\": \"value_0\"\n--   \t\t\t\t                },\n--   \t\t\t\t                {\n--   \t\t\t\t                        \"name\": \"entity_1\",\n--   \t\t\t\t                        \"value\": \"value_1\"\n--   \t\t\t\t                }\n--   \t\t\t\t        @\n--   \t\t\t\t}\n--   \t\t\t\t\n--   @\nprint ::\n        (JSON :< cls, Object :< cls) =>\n        cls ->\n          GodotVariant -> Maybe GodotString -> Maybe Bool -> IO GodotString\nprint cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2,\n       maybe (VariantBool False) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJSON_print (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JSON \"print\"\n           '[GodotVariant, Maybe GodotString, Maybe Bool]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.JSON.print"
  },
  {
    "path": "src/Godot/Core/JSONParseResult.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.JSONParseResult\n       (Godot.Core.JSONParseResult.get_error,\n        Godot.Core.JSONParseResult.get_error_line,\n        Godot.Core.JSONParseResult.get_error_string,\n        Godot.Core.JSONParseResult.get_result,\n        Godot.Core.JSONParseResult.set_error,\n        Godot.Core.JSONParseResult.set_error_line,\n        Godot.Core.JSONParseResult.set_error_string,\n        Godot.Core.JSONParseResult.set_result)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\ninstance NodeProperty JSONParseResult \"error\" Int 'False where\n        nodeProperty = (get_error, wrapDroppingSetter set_error, Nothing)\n\ninstance NodeProperty JSONParseResult \"error_line\" Int 'False where\n        nodeProperty\n          = (get_error_line, wrapDroppingSetter set_error_line, Nothing)\n\ninstance NodeProperty JSONParseResult \"error_string\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_error_string, wrapDroppingSetter set_error_string, Nothing)\n\ninstance NodeProperty JSONParseResult \"result\" GodotVariant 'False\n         where\n        nodeProperty = (get_result, wrapDroppingSetter set_result, Nothing)\n\n{-# NOINLINE bindJSONParseResult_get_error #-}\n\n-- | The error type if the JSON source was not successfully parsed. See the @enum Error@ constants.\nbindJSONParseResult_get_error :: MethodBind\nbindJSONParseResult_get_error\n  = unsafePerformIO $\n      withCString \"JSONParseResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_error\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The error type if the JSON source was not successfully parsed. See the @enum Error@ constants.\nget_error ::\n            (JSONParseResult :< cls, Object :< cls) => cls -> IO Int\nget_error cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJSONParseResult_get_error (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JSONParseResult \"get_error\" '[] (IO Int) where\n        nodeMethod = Godot.Core.JSONParseResult.get_error\n\n{-# NOINLINE bindJSONParseResult_get_error_line #-}\n\n-- | The line number where the error occurred if the JSON source was not successfully parsed.\nbindJSONParseResult_get_error_line :: MethodBind\nbindJSONParseResult_get_error_line\n  = unsafePerformIO $\n      withCString \"JSONParseResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_error_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The line number where the error occurred if the JSON source was not successfully parsed.\nget_error_line ::\n                 (JSONParseResult :< cls, Object :< cls) => cls -> IO Int\nget_error_line cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJSONParseResult_get_error_line\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JSONParseResult \"get_error_line\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.JSONParseResult.get_error_line\n\n{-# NOINLINE bindJSONParseResult_get_error_string #-}\n\n-- | The error message if the JSON source was not successfully parsed. See the @enum Error@ constants.\nbindJSONParseResult_get_error_string :: MethodBind\nbindJSONParseResult_get_error_string\n  = unsafePerformIO $\n      withCString \"JSONParseResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_error_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The error message if the JSON source was not successfully parsed. See the @enum Error@ constants.\nget_error_string ::\n                   (JSONParseResult :< cls, Object :< cls) => cls -> IO GodotString\nget_error_string cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJSONParseResult_get_error_string\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JSONParseResult \"get_error_string\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.JSONParseResult.get_error_string\n\n{-# NOINLINE bindJSONParseResult_get_result #-}\n\n-- | A @Variant@ containing the parsed JSON. Use @method @GDScript.typeof@ or the @is@ keyword to check if it is what you expect. For example, if the JSON source starts with curly braces (@{}@), a @Dictionary@ will be returned. If the JSON source starts with brackets (@@@@), an @Array@ will be returned.\n--   \t\t\t__Note:__ The JSON specification does not define integer or float types, but only a @i@number@/i@ type. Therefore, parsing a JSON text will convert all numerical values to @float@ types.\n--   \t\t\t__Note:__ JSON objects do not preserve key order like Godot dictionaries, thus, you should not rely on keys being in a certain order if a dictionary is constructed from JSON. In contrast, JSON arrays retain the order of their elements:\n--   \t\t\t\n--   @\n--   \n--   \t\t\tvar p = JSON.parse('@\"hello\", \"world\", \"!\"@')\n--   \t\t\tif typeof(p.result) == TYPE_ARRAY:\n--   \t\t\t    print(p.result@0@) # Prints \"hello\"\n--   \t\t\telse:\n--   \t\t\t    push_error(\"Unexpected results.\")\n--   \t\t\t\n--   @\nbindJSONParseResult_get_result :: MethodBind\nbindJSONParseResult_get_result\n  = unsafePerformIO $\n      withCString \"JSONParseResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_result\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A @Variant@ containing the parsed JSON. Use @method @GDScript.typeof@ or the @is@ keyword to check if it is what you expect. For example, if the JSON source starts with curly braces (@{}@), a @Dictionary@ will be returned. If the JSON source starts with brackets (@@@@), an @Array@ will be returned.\n--   \t\t\t__Note:__ The JSON specification does not define integer or float types, but only a @i@number@/i@ type. Therefore, parsing a JSON text will convert all numerical values to @float@ types.\n--   \t\t\t__Note:__ JSON objects do not preserve key order like Godot dictionaries, thus, you should not rely on keys being in a certain order if a dictionary is constructed from JSON. In contrast, JSON arrays retain the order of their elements:\n--   \t\t\t\n--   @\n--   \n--   \t\t\tvar p = JSON.parse('@\"hello\", \"world\", \"!\"@')\n--   \t\t\tif typeof(p.result) == TYPE_ARRAY:\n--   \t\t\t    print(p.result@0@) # Prints \"hello\"\n--   \t\t\telse:\n--   \t\t\t    push_error(\"Unexpected results.\")\n--   \t\t\t\n--   @\nget_result ::\n             (JSONParseResult :< cls, Object :< cls) => cls -> IO GodotVariant\nget_result cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJSONParseResult_get_result (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JSONParseResult \"get_result\" '[]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.JSONParseResult.get_result\n\n{-# NOINLINE bindJSONParseResult_set_error #-}\n\n-- | The error type if the JSON source was not successfully parsed. See the @enum Error@ constants.\nbindJSONParseResult_set_error :: MethodBind\nbindJSONParseResult_set_error\n  = unsafePerformIO $\n      withCString \"JSONParseResult\" $\n        \\ clsNamePtr ->\n          withCString \"set_error\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The error type if the JSON source was not successfully parsed. See the @enum Error@ constants.\nset_error ::\n            (JSONParseResult :< cls, Object :< cls) => cls -> Int -> IO ()\nset_error cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJSONParseResult_set_error (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JSONParseResult \"set_error\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.JSONParseResult.set_error\n\n{-# NOINLINE bindJSONParseResult_set_error_line #-}\n\n-- | The line number where the error occurred if the JSON source was not successfully parsed.\nbindJSONParseResult_set_error_line :: MethodBind\nbindJSONParseResult_set_error_line\n  = unsafePerformIO $\n      withCString \"JSONParseResult\" $\n        \\ clsNamePtr ->\n          withCString \"set_error_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The line number where the error occurred if the JSON source was not successfully parsed.\nset_error_line ::\n                 (JSONParseResult :< cls, Object :< cls) => cls -> Int -> IO ()\nset_error_line cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJSONParseResult_set_error_line\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JSONParseResult \"set_error_line\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.JSONParseResult.set_error_line\n\n{-# NOINLINE bindJSONParseResult_set_error_string #-}\n\n-- | The error message if the JSON source was not successfully parsed. See the @enum Error@ constants.\nbindJSONParseResult_set_error_string :: MethodBind\nbindJSONParseResult_set_error_string\n  = unsafePerformIO $\n      withCString \"JSONParseResult\" $\n        \\ clsNamePtr ->\n          withCString \"set_error_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The error message if the JSON source was not successfully parsed. See the @enum Error@ constants.\nset_error_string ::\n                   (JSONParseResult :< cls, Object :< cls) =>\n                   cls -> GodotString -> IO ()\nset_error_string cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJSONParseResult_set_error_string\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JSONParseResult \"set_error_string\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.JSONParseResult.set_error_string\n\n{-# NOINLINE bindJSONParseResult_set_result #-}\n\n-- | A @Variant@ containing the parsed JSON. Use @method @GDScript.typeof@ or the @is@ keyword to check if it is what you expect. For example, if the JSON source starts with curly braces (@{}@), a @Dictionary@ will be returned. If the JSON source starts with brackets (@@@@), an @Array@ will be returned.\n--   \t\t\t__Note:__ The JSON specification does not define integer or float types, but only a @i@number@/i@ type. Therefore, parsing a JSON text will convert all numerical values to @float@ types.\n--   \t\t\t__Note:__ JSON objects do not preserve key order like Godot dictionaries, thus, you should not rely on keys being in a certain order if a dictionary is constructed from JSON. In contrast, JSON arrays retain the order of their elements:\n--   \t\t\t\n--   @\n--   \n--   \t\t\tvar p = JSON.parse('@\"hello\", \"world\", \"!\"@')\n--   \t\t\tif typeof(p.result) == TYPE_ARRAY:\n--   \t\t\t    print(p.result@0@) # Prints \"hello\"\n--   \t\t\telse:\n--   \t\t\t    push_error(\"Unexpected results.\")\n--   \t\t\t\n--   @\nbindJSONParseResult_set_result :: MethodBind\nbindJSONParseResult_set_result\n  = unsafePerformIO $\n      withCString \"JSONParseResult\" $\n        \\ clsNamePtr ->\n          withCString \"set_result\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A @Variant@ containing the parsed JSON. Use @method @GDScript.typeof@ or the @is@ keyword to check if it is what you expect. For example, if the JSON source starts with curly braces (@{}@), a @Dictionary@ will be returned. If the JSON source starts with brackets (@@@@), an @Array@ will be returned.\n--   \t\t\t__Note:__ The JSON specification does not define integer or float types, but only a @i@number@/i@ type. Therefore, parsing a JSON text will convert all numerical values to @float@ types.\n--   \t\t\t__Note:__ JSON objects do not preserve key order like Godot dictionaries, thus, you should not rely on keys being in a certain order if a dictionary is constructed from JSON. In contrast, JSON arrays retain the order of their elements:\n--   \t\t\t\n--   @\n--   \n--   \t\t\tvar p = JSON.parse('@\"hello\", \"world\", \"!\"@')\n--   \t\t\tif typeof(p.result) == TYPE_ARRAY:\n--   \t\t\t    print(p.result@0@) # Prints \"hello\"\n--   \t\t\telse:\n--   \t\t\t    push_error(\"Unexpected results.\")\n--   \t\t\t\n--   @\nset_result ::\n             (JSONParseResult :< cls, Object :< cls) =>\n             cls -> GodotVariant -> IO ()\nset_result cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJSONParseResult_set_result (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JSONParseResult \"set_result\" '[GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.JSONParseResult.set_result"
  },
  {
    "path": "src/Godot/Core/JSONRPC.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.JSONRPC\n       (Godot.Core.JSONRPC._METHOD_NOT_FOUND,\n        Godot.Core.JSONRPC._INTERNAL_ERROR,\n        Godot.Core.JSONRPC._INVALID_REQUEST,\n        Godot.Core.JSONRPC._PARSE_ERROR,\n        Godot.Core.JSONRPC._INVALID_PARAMS,\n        Godot.Core.JSONRPC.make_notification,\n        Godot.Core.JSONRPC.make_request, Godot.Core.JSONRPC.make_response,\n        Godot.Core.JSONRPC.make_response_error,\n        Godot.Core.JSONRPC.process_action,\n        Godot.Core.JSONRPC.process_string, Godot.Core.JSONRPC.set_scope)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n_METHOD_NOT_FOUND :: Int\n_METHOD_NOT_FOUND = -32601\n\n_INTERNAL_ERROR :: Int\n_INTERNAL_ERROR = -32603\n\n_INVALID_REQUEST :: Int\n_INVALID_REQUEST = -32600\n\n_PARSE_ERROR :: Int\n_PARSE_ERROR = -32700\n\n_INVALID_PARAMS :: Int\n_INVALID_PARAMS = -32602\n\n{-# NOINLINE bindJSONRPC_make_notification #-}\n\nbindJSONRPC_make_notification :: MethodBind\nbindJSONRPC_make_notification\n  = unsafePerformIO $\n      withCString \"JSONRPC\" $\n        \\ clsNamePtr ->\n          withCString \"make_notification\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nmake_notification ::\n                    (JSONRPC :< cls, Object :< cls) =>\n                    cls -> GodotString -> GodotVariant -> IO Dictionary\nmake_notification cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJSONRPC_make_notification (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JSONRPC \"make_notification\"\n           '[GodotString, GodotVariant]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.JSONRPC.make_notification\n\n{-# NOINLINE bindJSONRPC_make_request #-}\n\nbindJSONRPC_make_request :: MethodBind\nbindJSONRPC_make_request\n  = unsafePerformIO $\n      withCString \"JSONRPC\" $\n        \\ clsNamePtr ->\n          withCString \"make_request\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nmake_request ::\n               (JSONRPC :< cls, Object :< cls) =>\n               cls -> GodotString -> GodotVariant -> GodotVariant -> IO Dictionary\nmake_request cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJSONRPC_make_request (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JSONRPC \"make_request\"\n           '[GodotString, GodotVariant, GodotVariant]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.JSONRPC.make_request\n\n{-# NOINLINE bindJSONRPC_make_response #-}\n\nbindJSONRPC_make_response :: MethodBind\nbindJSONRPC_make_response\n  = unsafePerformIO $\n      withCString \"JSONRPC\" $\n        \\ clsNamePtr ->\n          withCString \"make_response\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nmake_response ::\n                (JSONRPC :< cls, Object :< cls) =>\n                cls -> GodotVariant -> GodotVariant -> IO Dictionary\nmake_response cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJSONRPC_make_response (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JSONRPC \"make_response\"\n           '[GodotVariant, GodotVariant]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.JSONRPC.make_response\n\n{-# NOINLINE bindJSONRPC_make_response_error #-}\n\nbindJSONRPC_make_response_error :: MethodBind\nbindJSONRPC_make_response_error\n  = unsafePerformIO $\n      withCString \"JSONRPC\" $\n        \\ clsNamePtr ->\n          withCString \"make_response_error\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nmake_response_error ::\n                      (JSONRPC :< cls, Object :< cls) =>\n                      cls -> Int -> GodotString -> Maybe GodotVariant -> IO Dictionary\nmake_response_error cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, maybe VariantNil toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJSONRPC_make_response_error (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JSONRPC \"make_response_error\"\n           '[Int, GodotString, Maybe GodotVariant]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.JSONRPC.make_response_error\n\n{-# NOINLINE bindJSONRPC_process_action #-}\n\nbindJSONRPC_process_action :: MethodBind\nbindJSONRPC_process_action\n  = unsafePerformIO $\n      withCString \"JSONRPC\" $\n        \\ clsNamePtr ->\n          withCString \"process_action\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nprocess_action ::\n                 (JSONRPC :< cls, Object :< cls) =>\n                 cls -> GodotVariant -> Maybe Bool -> IO GodotVariant\nprocess_action cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJSONRPC_process_action (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JSONRPC \"process_action\"\n           '[GodotVariant, Maybe Bool]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.JSONRPC.process_action\n\n{-# NOINLINE bindJSONRPC_process_string #-}\n\nbindJSONRPC_process_string :: MethodBind\nbindJSONRPC_process_string\n  = unsafePerformIO $\n      withCString \"JSONRPC\" $\n        \\ clsNamePtr ->\n          withCString \"process_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nprocess_string ::\n                 (JSONRPC :< cls, Object :< cls) =>\n                 cls -> GodotString -> IO GodotString\nprocess_string cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJSONRPC_process_string (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JSONRPC \"process_string\" '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.JSONRPC.process_string\n\n{-# NOINLINE bindJSONRPC_set_scope #-}\n\nbindJSONRPC_set_scope :: MethodBind\nbindJSONRPC_set_scope\n  = unsafePerformIO $\n      withCString \"JSONRPC\" $\n        \\ clsNamePtr ->\n          withCString \"set_scope\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_scope ::\n            (JSONRPC :< cls, Object :< cls) =>\n            cls -> GodotString -> Object -> IO ()\nset_scope cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJSONRPC_set_scope (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JSONRPC \"set_scope\" '[GodotString, Object]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.JSONRPC.set_scope"
  },
  {
    "path": "src/Godot/Core/JavaClass.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.JavaClass () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()"
  },
  {
    "path": "src/Godot/Core/JavaClassWrapper.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.JavaClassWrapper\n       (Godot.Core.JavaClassWrapper.wrap) where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n{-# NOINLINE bindJavaClassWrapper_wrap #-}\n\nbindJavaClassWrapper_wrap :: MethodBind\nbindJavaClassWrapper_wrap\n  = unsafePerformIO $\n      withCString \"JavaClassWrapper\" $\n        \\ clsNamePtr ->\n          withCString \"wrap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nwrap ::\n       (JavaClassWrapper :< cls, Object :< cls) =>\n       cls -> GodotString -> IO JavaClass\nwrap cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJavaClassWrapper_wrap (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JavaClassWrapper \"wrap\" '[GodotString]\n           (IO JavaClass)\n         where\n        nodeMethod = Godot.Core.JavaClassWrapper.wrap"
  },
  {
    "path": "src/Godot/Core/JavaScript.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.JavaScript (Godot.Core.JavaScript.eval) where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n{-# NOINLINE bindJavaScript_eval #-}\n\n-- | Execute the string @code@ as JavaScript code within the browser window. This is a call to the actual global JavaScript function @eval()@.\n--   \t\t\t\tIf @use_global_execution_context@ is @true@, the code will be evaluated in the global execution context. Otherwise, it is evaluated in the execution context of a function within the engine's runtime environment.\nbindJavaScript_eval :: MethodBind\nbindJavaScript_eval\n  = unsafePerformIO $\n      withCString \"JavaScript\" $\n        \\ clsNamePtr ->\n          withCString \"eval\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Execute the string @code@ as JavaScript code within the browser window. This is a call to the actual global JavaScript function @eval()@.\n--   \t\t\t\tIf @use_global_execution_context@ is @true@, the code will be evaluated in the global execution context. Otherwise, it is evaluated in the execution context of a function within the engine's runtime environment.\neval ::\n       (JavaScript :< cls, Object :< cls) =>\n       cls -> GodotString -> Maybe Bool -> IO GodotVariant\neval cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJavaScript_eval (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod JavaScript \"eval\" '[GodotString, Maybe Bool]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.JavaScript.eval"
  },
  {
    "path": "src/Godot/Core/Joint.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Joint\n       (Godot.Core.Joint.get_exclude_nodes_from_collision,\n        Godot.Core.Joint.get_node_a, Godot.Core.Joint.get_node_b,\n        Godot.Core.Joint.get_solver_priority,\n        Godot.Core.Joint.set_exclude_nodes_from_collision,\n        Godot.Core.Joint.set_node_a, Godot.Core.Joint.set_node_b,\n        Godot.Core.Joint.set_solver_priority)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\ninstance NodeProperty Joint \"collision/exclude_nodes\" Bool 'False\n         where\n        nodeProperty\n          = (get_exclude_nodes_from_collision,\n             wrapDroppingSetter set_exclude_nodes_from_collision, Nothing)\n\ninstance NodeProperty Joint \"nodes/node_a\" NodePath 'False where\n        nodeProperty = (get_node_a, wrapDroppingSetter set_node_a, Nothing)\n\ninstance NodeProperty Joint \"nodes/node_b\" NodePath 'False where\n        nodeProperty = (get_node_b, wrapDroppingSetter set_node_b, Nothing)\n\ninstance NodeProperty Joint \"solver/priority\" Int 'False where\n        nodeProperty\n          = (get_solver_priority, wrapDroppingSetter set_solver_priority,\n             Nothing)\n\n{-# NOINLINE bindJoint_get_exclude_nodes_from_collision #-}\n\n-- | If @true@, the two bodies of the nodes are not able to collide with each other.\nbindJoint_get_exclude_nodes_from_collision :: MethodBind\nbindJoint_get_exclude_nodes_from_collision\n  = unsafePerformIO $\n      withCString \"Joint\" $\n        \\ clsNamePtr ->\n          withCString \"get_exclude_nodes_from_collision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the two bodies of the nodes are not able to collide with each other.\nget_exclude_nodes_from_collision ::\n                                   (Joint :< cls, Object :< cls) => cls -> IO Bool\nget_exclude_nodes_from_collision cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJoint_get_exclude_nodes_from_collision\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Joint \"get_exclude_nodes_from_collision\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Joint.get_exclude_nodes_from_collision\n\n{-# NOINLINE bindJoint_get_node_a #-}\n\n-- | The node attached to the first side (A) of the joint.\nbindJoint_get_node_a :: MethodBind\nbindJoint_get_node_a\n  = unsafePerformIO $\n      withCString \"Joint\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_a\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node attached to the first side (A) of the joint.\nget_node_a :: (Joint :< cls, Object :< cls) => cls -> IO NodePath\nget_node_a cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJoint_get_node_a (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Joint \"get_node_a\" '[] (IO NodePath) where\n        nodeMethod = Godot.Core.Joint.get_node_a\n\n{-# NOINLINE bindJoint_get_node_b #-}\n\n-- | The node attached to the second side (B) of the joint.\nbindJoint_get_node_b :: MethodBind\nbindJoint_get_node_b\n  = unsafePerformIO $\n      withCString \"Joint\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_b\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node attached to the second side (B) of the joint.\nget_node_b :: (Joint :< cls, Object :< cls) => cls -> IO NodePath\nget_node_b cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJoint_get_node_b (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Joint \"get_node_b\" '[] (IO NodePath) where\n        nodeMethod = Godot.Core.Joint.get_node_b\n\n{-# NOINLINE bindJoint_get_solver_priority #-}\n\n-- | The priority used to define which solver is executed first for multiple joints. The lower the value, the higher the priority.\nbindJoint_get_solver_priority :: MethodBind\nbindJoint_get_solver_priority\n  = unsafePerformIO $\n      withCString \"Joint\" $\n        \\ clsNamePtr ->\n          withCString \"get_solver_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The priority used to define which solver is executed first for multiple joints. The lower the value, the higher the priority.\nget_solver_priority ::\n                      (Joint :< cls, Object :< cls) => cls -> IO Int\nget_solver_priority cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJoint_get_solver_priority (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Joint \"get_solver_priority\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Joint.get_solver_priority\n\n{-# NOINLINE bindJoint_set_exclude_nodes_from_collision #-}\n\n-- | If @true@, the two bodies of the nodes are not able to collide with each other.\nbindJoint_set_exclude_nodes_from_collision :: MethodBind\nbindJoint_set_exclude_nodes_from_collision\n  = unsafePerformIO $\n      withCString \"Joint\" $\n        \\ clsNamePtr ->\n          withCString \"set_exclude_nodes_from_collision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the two bodies of the nodes are not able to collide with each other.\nset_exclude_nodes_from_collision ::\n                                   (Joint :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_exclude_nodes_from_collision cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJoint_set_exclude_nodes_from_collision\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Joint \"set_exclude_nodes_from_collision\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Joint.set_exclude_nodes_from_collision\n\n{-# NOINLINE bindJoint_set_node_a #-}\n\n-- | The node attached to the first side (A) of the joint.\nbindJoint_set_node_a :: MethodBind\nbindJoint_set_node_a\n  = unsafePerformIO $\n      withCString \"Joint\" $\n        \\ clsNamePtr ->\n          withCString \"set_node_a\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node attached to the first side (A) of the joint.\nset_node_a ::\n             (Joint :< cls, Object :< cls) => cls -> NodePath -> IO ()\nset_node_a cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJoint_set_node_a (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Joint \"set_node_a\" '[NodePath] (IO ()) where\n        nodeMethod = Godot.Core.Joint.set_node_a\n\n{-# NOINLINE bindJoint_set_node_b #-}\n\n-- | The node attached to the second side (B) of the joint.\nbindJoint_set_node_b :: MethodBind\nbindJoint_set_node_b\n  = unsafePerformIO $\n      withCString \"Joint\" $\n        \\ clsNamePtr ->\n          withCString \"set_node_b\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node attached to the second side (B) of the joint.\nset_node_b ::\n             (Joint :< cls, Object :< cls) => cls -> NodePath -> IO ()\nset_node_b cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJoint_set_node_b (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Joint \"set_node_b\" '[NodePath] (IO ()) where\n        nodeMethod = Godot.Core.Joint.set_node_b\n\n{-# NOINLINE bindJoint_set_solver_priority #-}\n\n-- | The priority used to define which solver is executed first for multiple joints. The lower the value, the higher the priority.\nbindJoint_set_solver_priority :: MethodBind\nbindJoint_set_solver_priority\n  = unsafePerformIO $\n      withCString \"Joint\" $\n        \\ clsNamePtr ->\n          withCString \"set_solver_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The priority used to define which solver is executed first for multiple joints. The lower the value, the higher the priority.\nset_solver_priority ::\n                      (Joint :< cls, Object :< cls) => cls -> Int -> IO ()\nset_solver_priority cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJoint_set_solver_priority (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Joint \"set_solver_priority\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Joint.set_solver_priority"
  },
  {
    "path": "src/Godot/Core/Joint2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Joint2D\n       (Godot.Core.Joint2D.get_bias,\n        Godot.Core.Joint2D.get_exclude_nodes_from_collision,\n        Godot.Core.Joint2D.get_node_a, Godot.Core.Joint2D.get_node_b,\n        Godot.Core.Joint2D.set_bias,\n        Godot.Core.Joint2D.set_exclude_nodes_from_collision,\n        Godot.Core.Joint2D.set_node_a, Godot.Core.Joint2D.set_node_b)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\ninstance NodeProperty Joint2D \"bias\" Float 'False where\n        nodeProperty = (get_bias, wrapDroppingSetter set_bias, Nothing)\n\ninstance NodeProperty Joint2D \"disable_collision\" Bool 'False where\n        nodeProperty\n          = (get_exclude_nodes_from_collision,\n             wrapDroppingSetter set_exclude_nodes_from_collision, Nothing)\n\ninstance NodeProperty Joint2D \"node_a\" NodePath 'False where\n        nodeProperty = (get_node_a, wrapDroppingSetter set_node_a, Nothing)\n\ninstance NodeProperty Joint2D \"node_b\" NodePath 'False where\n        nodeProperty = (get_node_b, wrapDroppingSetter set_node_b, Nothing)\n\n{-# NOINLINE bindJoint2D_get_bias #-}\n\n-- | When @node_a@ and @node_b@ move in different directions the @bias@ controls how fast the joint pulls them back to their original position. The lower the @bias@ the more the two bodies can pull on the joint.\nbindJoint2D_get_bias :: MethodBind\nbindJoint2D_get_bias\n  = unsafePerformIO $\n      withCString \"Joint2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_bias\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | When @node_a@ and @node_b@ move in different directions the @bias@ controls how fast the joint pulls them back to their original position. The lower the @bias@ the more the two bodies can pull on the joint.\nget_bias :: (Joint2D :< cls, Object :< cls) => cls -> IO Float\nget_bias cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJoint2D_get_bias (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Joint2D \"get_bias\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Joint2D.get_bias\n\n{-# NOINLINE bindJoint2D_get_exclude_nodes_from_collision #-}\n\n-- | If @true@, @node_a@ and @node_b@ can not collide.\nbindJoint2D_get_exclude_nodes_from_collision :: MethodBind\nbindJoint2D_get_exclude_nodes_from_collision\n  = unsafePerformIO $\n      withCString \"Joint2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_exclude_nodes_from_collision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, @node_a@ and @node_b@ can not collide.\nget_exclude_nodes_from_collision ::\n                                   (Joint2D :< cls, Object :< cls) => cls -> IO Bool\nget_exclude_nodes_from_collision cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJoint2D_get_exclude_nodes_from_collision\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Joint2D \"get_exclude_nodes_from_collision\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Joint2D.get_exclude_nodes_from_collision\n\n{-# NOINLINE bindJoint2D_get_node_a #-}\n\n-- | The first body attached to the joint. Must derive from @PhysicsBody2D@.\nbindJoint2D_get_node_a :: MethodBind\nbindJoint2D_get_node_a\n  = unsafePerformIO $\n      withCString \"Joint2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_a\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The first body attached to the joint. Must derive from @PhysicsBody2D@.\nget_node_a :: (Joint2D :< cls, Object :< cls) => cls -> IO NodePath\nget_node_a cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJoint2D_get_node_a (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Joint2D \"get_node_a\" '[] (IO NodePath) where\n        nodeMethod = Godot.Core.Joint2D.get_node_a\n\n{-# NOINLINE bindJoint2D_get_node_b #-}\n\n-- | The second body attached to the joint. Must derive from @PhysicsBody2D@.\nbindJoint2D_get_node_b :: MethodBind\nbindJoint2D_get_node_b\n  = unsafePerformIO $\n      withCString \"Joint2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_b\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The second body attached to the joint. Must derive from @PhysicsBody2D@.\nget_node_b :: (Joint2D :< cls, Object :< cls) => cls -> IO NodePath\nget_node_b cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJoint2D_get_node_b (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Joint2D \"get_node_b\" '[] (IO NodePath) where\n        nodeMethod = Godot.Core.Joint2D.get_node_b\n\n{-# NOINLINE bindJoint2D_set_bias #-}\n\n-- | When @node_a@ and @node_b@ move in different directions the @bias@ controls how fast the joint pulls them back to their original position. The lower the @bias@ the more the two bodies can pull on the joint.\nbindJoint2D_set_bias :: MethodBind\nbindJoint2D_set_bias\n  = unsafePerformIO $\n      withCString \"Joint2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_bias\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | When @node_a@ and @node_b@ move in different directions the @bias@ controls how fast the joint pulls them back to their original position. The lower the @bias@ the more the two bodies can pull on the joint.\nset_bias ::\n           (Joint2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_bias cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJoint2D_set_bias (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Joint2D \"set_bias\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Joint2D.set_bias\n\n{-# NOINLINE bindJoint2D_set_exclude_nodes_from_collision #-}\n\n-- | If @true@, @node_a@ and @node_b@ can not collide.\nbindJoint2D_set_exclude_nodes_from_collision :: MethodBind\nbindJoint2D_set_exclude_nodes_from_collision\n  = unsafePerformIO $\n      withCString \"Joint2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_exclude_nodes_from_collision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, @node_a@ and @node_b@ can not collide.\nset_exclude_nodes_from_collision ::\n                                   (Joint2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_exclude_nodes_from_collision cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJoint2D_set_exclude_nodes_from_collision\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Joint2D \"set_exclude_nodes_from_collision\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Joint2D.set_exclude_nodes_from_collision\n\n{-# NOINLINE bindJoint2D_set_node_a #-}\n\n-- | The first body attached to the joint. Must derive from @PhysicsBody2D@.\nbindJoint2D_set_node_a :: MethodBind\nbindJoint2D_set_node_a\n  = unsafePerformIO $\n      withCString \"Joint2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_node_a\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The first body attached to the joint. Must derive from @PhysicsBody2D@.\nset_node_a ::\n             (Joint2D :< cls, Object :< cls) => cls -> NodePath -> IO ()\nset_node_a cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJoint2D_set_node_a (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Joint2D \"set_node_a\" '[NodePath] (IO ()) where\n        nodeMethod = Godot.Core.Joint2D.set_node_a\n\n{-# NOINLINE bindJoint2D_set_node_b #-}\n\n-- | The second body attached to the joint. Must derive from @PhysicsBody2D@.\nbindJoint2D_set_node_b :: MethodBind\nbindJoint2D_set_node_b\n  = unsafePerformIO $\n      withCString \"Joint2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_node_b\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The second body attached to the joint. Must derive from @PhysicsBody2D@.\nset_node_b ::\n             (Joint2D :< cls, Object :< cls) => cls -> NodePath -> IO ()\nset_node_b cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindJoint2D_set_node_b (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Joint2D \"set_node_b\" '[NodePath] (IO ()) where\n        nodeMethod = Godot.Core.Joint2D.set_node_b"
  },
  {
    "path": "src/Godot/Core/KinematicBody.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.KinematicBody\n       (Godot.Core.KinematicBody.get_axis_lock,\n        Godot.Core.KinematicBody.get_floor_normal,\n        Godot.Core.KinematicBody.get_floor_velocity,\n        Godot.Core.KinematicBody.get_safe_margin,\n        Godot.Core.KinematicBody.get_slide_collision,\n        Godot.Core.KinematicBody.get_slide_count,\n        Godot.Core.KinematicBody.is_on_ceiling,\n        Godot.Core.KinematicBody.is_on_floor,\n        Godot.Core.KinematicBody.is_on_wall,\n        Godot.Core.KinematicBody.move_and_collide,\n        Godot.Core.KinematicBody.move_and_slide,\n        Godot.Core.KinematicBody.move_and_slide_with_snap,\n        Godot.Core.KinematicBody.set_axis_lock,\n        Godot.Core.KinematicBody.set_safe_margin,\n        Godot.Core.KinematicBody.test_move)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PhysicsBody()\n\ninstance NodeProperty KinematicBody \"collision/safe_margin\" Float\n           'False\n         where\n        nodeProperty\n          = (get_safe_margin, wrapDroppingSetter set_safe_margin, Nothing)\n\ninstance NodeProperty KinematicBody \"move_lock_x\" Bool 'False where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_axis_lock,\n             wrapIndexedSetter 1 set_axis_lock, Nothing)\n\ninstance NodeProperty KinematicBody \"move_lock_y\" Bool 'False where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_axis_lock,\n             wrapIndexedSetter 2 set_axis_lock, Nothing)\n\ninstance NodeProperty KinematicBody \"move_lock_z\" Bool 'False where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_axis_lock,\n             wrapIndexedSetter 4 set_axis_lock, Nothing)\n\n{-# NOINLINE bindKinematicBody_get_axis_lock #-}\n\n-- | Returns @true@ if the specified @axis@ is locked. See also @move_lock_x@, @move_lock_y@ and @move_lock_z@.\nbindKinematicBody_get_axis_lock :: MethodBind\nbindKinematicBody_get_axis_lock\n  = unsafePerformIO $\n      withCString \"KinematicBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_axis_lock\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the specified @axis@ is locked. See also @move_lock_x@, @move_lock_y@ and @move_lock_z@.\nget_axis_lock ::\n                (KinematicBody :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_axis_lock cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody_get_axis_lock (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody \"get_axis_lock\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.KinematicBody.get_axis_lock\n\n{-# NOINLINE bindKinematicBody_get_floor_normal #-}\n\n-- | Returns the surface normal of the floor at the last collision point. Only valid after calling @method move_and_slide@ or @method move_and_slide_with_snap@ and when @method is_on_floor@ returns @true@.\nbindKinematicBody_get_floor_normal :: MethodBind\nbindKinematicBody_get_floor_normal\n  = unsafePerformIO $\n      withCString \"KinematicBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_floor_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the surface normal of the floor at the last collision point. Only valid after calling @method move_and_slide@ or @method move_and_slide_with_snap@ and when @method is_on_floor@ returns @true@.\nget_floor_normal ::\n                   (KinematicBody :< cls, Object :< cls) => cls -> IO Vector3\nget_floor_normal cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody_get_floor_normal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody \"get_floor_normal\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.KinematicBody.get_floor_normal\n\n{-# NOINLINE bindKinematicBody_get_floor_velocity #-}\n\n-- | Returns the linear velocity of the floor at the last collision point. Only valid after calling @method move_and_slide@ or @method move_and_slide_with_snap@ and when @method is_on_floor@ returns @true@.\nbindKinematicBody_get_floor_velocity :: MethodBind\nbindKinematicBody_get_floor_velocity\n  = unsafePerformIO $\n      withCString \"KinematicBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_floor_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the linear velocity of the floor at the last collision point. Only valid after calling @method move_and_slide@ or @method move_and_slide_with_snap@ and when @method is_on_floor@ returns @true@.\nget_floor_velocity ::\n                     (KinematicBody :< cls, Object :< cls) => cls -> IO Vector3\nget_floor_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody_get_floor_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody \"get_floor_velocity\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.KinematicBody.get_floor_velocity\n\n{-# NOINLINE bindKinematicBody_get_safe_margin #-}\n\n-- | If the body is at least this close to another body, this body will consider them to be colliding.\nbindKinematicBody_get_safe_margin :: MethodBind\nbindKinematicBody_get_safe_margin\n  = unsafePerformIO $\n      withCString \"KinematicBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_safe_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If the body is at least this close to another body, this body will consider them to be colliding.\nget_safe_margin ::\n                  (KinematicBody :< cls, Object :< cls) => cls -> IO Float\nget_safe_margin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody_get_safe_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody \"get_safe_margin\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.KinematicBody.get_safe_margin\n\n{-# NOINLINE bindKinematicBody_get_slide_collision #-}\n\n-- | Returns a @KinematicCollision@, which contains information about a collision that occurred during the last @method move_and_slide@ call. Since the body can collide several times in a single call to @method move_and_slide@, you must specify the index of the collision in the range 0 to (@method get_slide_count@ - 1).\nbindKinematicBody_get_slide_collision :: MethodBind\nbindKinematicBody_get_slide_collision\n  = unsafePerformIO $\n      withCString \"KinematicBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_slide_collision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @KinematicCollision@, which contains information about a collision that occurred during the last @method move_and_slide@ call. Since the body can collide several times in a single call to @method move_and_slide@, you must specify the index of the collision in the range 0 to (@method get_slide_count@ - 1).\nget_slide_collision ::\n                      (KinematicBody :< cls, Object :< cls) =>\n                      cls -> Int -> IO KinematicCollision\nget_slide_collision cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody_get_slide_collision\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody \"get_slide_collision\" '[Int]\n           (IO KinematicCollision)\n         where\n        nodeMethod = Godot.Core.KinematicBody.get_slide_collision\n\n{-# NOINLINE bindKinematicBody_get_slide_count #-}\n\n-- | Returns the number of times the body collided and changed direction during the last call to @method move_and_slide@.\nbindKinematicBody_get_slide_count :: MethodBind\nbindKinematicBody_get_slide_count\n  = unsafePerformIO $\n      withCString \"KinematicBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_slide_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of times the body collided and changed direction during the last call to @method move_and_slide@.\nget_slide_count ::\n                  (KinematicBody :< cls, Object :< cls) => cls -> IO Int\nget_slide_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody_get_slide_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody \"get_slide_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.KinematicBody.get_slide_count\n\n{-# NOINLINE bindKinematicBody_is_on_ceiling #-}\n\n-- | Returns @true@ if the body is on the ceiling. Only updates when calling @method move_and_slide@.\nbindKinematicBody_is_on_ceiling :: MethodBind\nbindKinematicBody_is_on_ceiling\n  = unsafePerformIO $\n      withCString \"KinematicBody\" $\n        \\ clsNamePtr ->\n          withCString \"is_on_ceiling\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the body is on the ceiling. Only updates when calling @method move_and_slide@.\nis_on_ceiling ::\n                (KinematicBody :< cls, Object :< cls) => cls -> IO Bool\nis_on_ceiling cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody_is_on_ceiling (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody \"is_on_ceiling\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.KinematicBody.is_on_ceiling\n\n{-# NOINLINE bindKinematicBody_is_on_floor #-}\n\n-- | Returns @true@ if the body is on the floor. Only updates when calling @method move_and_slide@.\nbindKinematicBody_is_on_floor :: MethodBind\nbindKinematicBody_is_on_floor\n  = unsafePerformIO $\n      withCString \"KinematicBody\" $\n        \\ clsNamePtr ->\n          withCString \"is_on_floor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the body is on the floor. Only updates when calling @method move_and_slide@.\nis_on_floor ::\n              (KinematicBody :< cls, Object :< cls) => cls -> IO Bool\nis_on_floor cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody_is_on_floor (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody \"is_on_floor\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.KinematicBody.is_on_floor\n\n{-# NOINLINE bindKinematicBody_is_on_wall #-}\n\n-- | Returns @true@ if the body is on a wall. Only updates when calling @method move_and_slide@.\nbindKinematicBody_is_on_wall :: MethodBind\nbindKinematicBody_is_on_wall\n  = unsafePerformIO $\n      withCString \"KinematicBody\" $\n        \\ clsNamePtr ->\n          withCString \"is_on_wall\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the body is on a wall. Only updates when calling @method move_and_slide@.\nis_on_wall ::\n             (KinematicBody :< cls, Object :< cls) => cls -> IO Bool\nis_on_wall cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody_is_on_wall (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody \"is_on_wall\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.KinematicBody.is_on_wall\n\n{-# NOINLINE bindKinematicBody_move_and_collide #-}\n\n-- | Moves the body along the vector @rel_vec@. The body will stop if it collides. Returns a @KinematicCollision@, which contains information about the collision.\n--   \t\t\t\tIf @test_only@ is @true@, the body does not move but the would-be collision information is given.\nbindKinematicBody_move_and_collide :: MethodBind\nbindKinematicBody_move_and_collide\n  = unsafePerformIO $\n      withCString \"KinematicBody\" $\n        \\ clsNamePtr ->\n          withCString \"move_and_collide\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves the body along the vector @rel_vec@. The body will stop if it collides. Returns a @KinematicCollision@, which contains information about the collision.\n--   \t\t\t\tIf @test_only@ is @true@, the body does not move but the would-be collision information is given.\nmove_and_collide ::\n                   (KinematicBody :< cls, Object :< cls) =>\n                   cls ->\n                     Vector3 ->\n                       Maybe Bool -> Maybe Bool -> Maybe Bool -> IO KinematicCollision\nmove_and_collide cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool True) toVariant arg2,\n       maybe (VariantBool True) toVariant arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody_move_and_collide\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody \"move_and_collide\"\n           '[Vector3, Maybe Bool, Maybe Bool, Maybe Bool]\n           (IO KinematicCollision)\n         where\n        nodeMethod = Godot.Core.KinematicBody.move_and_collide\n\n{-# NOINLINE bindKinematicBody_move_and_slide #-}\n\n-- | Moves the body along a vector. If the body collides with another, it will slide along the other body rather than stop immediately. If the other body is a @KinematicBody@ or @RigidBody@, it will also be affected by the motion of the other body. You can use this to make moving or rotating platforms, or to make nodes push other nodes.\n--   \t\t\t\tThis method should be used in @method Node._physics_process@ (or in a method called by @method Node._physics_process@), as it uses the physics step's @delta@ value automatically in calculations. Otherwise, the simulation will run at an incorrect speed.\n--   \t\t\t\t@linear_velocity@ is the velocity vector (typically meters per second). Unlike in @method move_and_collide@, you should @i@not@/i@ multiply it by @delta@ — the physics engine handles applying the velocity.\n--   \t\t\t\t@up_direction@ is the up direction, used to determine what is a wall and what is a floor or a ceiling. If set to the default value of @Vector3(0, 0, 0)@, everything is considered a wall.\n--   \t\t\t\tIf @stop_on_slope@ is @true@, body will not slide on slopes when you include gravity in @linear_velocity@ and the body is standing still.\n--   \t\t\t\tIf the body collides, it will change direction a maximum of @max_slides@ times before it stops.\n--   \t\t\t\t@floor_max_angle@ is the maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall. The default value equals 45 degrees.\n--   \t\t\t\tIf @infinite_inertia@ is @true@, body will be able to push @RigidBody@ nodes, but it won't also detect any collisions with them. If @false@, it will interact with @RigidBody@ nodes like with @StaticBody@.\n--   \t\t\t\tReturns the @linear_velocity@ vector, rotated and/or scaled if a slide collision occurred. To get detailed information about collisions that occurred, use @method get_slide_collision@.\nbindKinematicBody_move_and_slide :: MethodBind\nbindKinematicBody_move_and_slide\n  = unsafePerformIO $\n      withCString \"KinematicBody\" $\n        \\ clsNamePtr ->\n          withCString \"move_and_slide\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves the body along a vector. If the body collides with another, it will slide along the other body rather than stop immediately. If the other body is a @KinematicBody@ or @RigidBody@, it will also be affected by the motion of the other body. You can use this to make moving or rotating platforms, or to make nodes push other nodes.\n--   \t\t\t\tThis method should be used in @method Node._physics_process@ (or in a method called by @method Node._physics_process@), as it uses the physics step's @delta@ value automatically in calculations. Otherwise, the simulation will run at an incorrect speed.\n--   \t\t\t\t@linear_velocity@ is the velocity vector (typically meters per second). Unlike in @method move_and_collide@, you should @i@not@/i@ multiply it by @delta@ — the physics engine handles applying the velocity.\n--   \t\t\t\t@up_direction@ is the up direction, used to determine what is a wall and what is a floor or a ceiling. If set to the default value of @Vector3(0, 0, 0)@, everything is considered a wall.\n--   \t\t\t\tIf @stop_on_slope@ is @true@, body will not slide on slopes when you include gravity in @linear_velocity@ and the body is standing still.\n--   \t\t\t\tIf the body collides, it will change direction a maximum of @max_slides@ times before it stops.\n--   \t\t\t\t@floor_max_angle@ is the maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall. The default value equals 45 degrees.\n--   \t\t\t\tIf @infinite_inertia@ is @true@, body will be able to push @RigidBody@ nodes, but it won't also detect any collisions with them. If @false@, it will interact with @RigidBody@ nodes like with @StaticBody@.\n--   \t\t\t\tReturns the @linear_velocity@ vector, rotated and/or scaled if a slide collision occurred. To get detailed information about collisions that occurred, use @method get_slide_collision@.\nmove_and_slide ::\n                 (KinematicBody :< cls, Object :< cls) =>\n                 cls ->\n                   Vector3 ->\n                     Maybe Vector3 ->\n                       Maybe Bool -> Maybe Int -> Maybe Float -> Maybe Bool -> IO Vector3\nmove_and_slide cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantVector3 (V3 0 0 0) arg2,\n       maybe (VariantBool False) toVariant arg3,\n       maybe (VariantInt (4)) toVariant arg4,\n       maybe (VariantReal (0.785398)) toVariant arg5,\n       maybe (VariantBool True) toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody_move_and_slide\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody \"move_and_slide\"\n           '[Vector3, Maybe Vector3, Maybe Bool, Maybe Int, Maybe Float,\n             Maybe Bool]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.KinematicBody.move_and_slide\n\n{-# NOINLINE bindKinematicBody_move_and_slide_with_snap #-}\n\n-- | Moves the body while keeping it attached to slopes. Similar to @method move_and_slide@.\n--   \t\t\t\tAs long as the @snap@ vector is in contact with the ground, the body will remain attached to the surface. This means you must disable snap in order to jump, for example. You can do this by setting @snap@ to @(0, 0, 0)@ or by using @method move_and_slide@ instead.\nbindKinematicBody_move_and_slide_with_snap :: MethodBind\nbindKinematicBody_move_and_slide_with_snap\n  = unsafePerformIO $\n      withCString \"KinematicBody\" $\n        \\ clsNamePtr ->\n          withCString \"move_and_slide_with_snap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves the body while keeping it attached to slopes. Similar to @method move_and_slide@.\n--   \t\t\t\tAs long as the @snap@ vector is in contact with the ground, the body will remain attached to the surface. This means you must disable snap in order to jump, for example. You can do this by setting @snap@ to @(0, 0, 0)@ or by using @method move_and_slide@ instead.\nmove_and_slide_with_snap ::\n                           (KinematicBody :< cls, Object :< cls) =>\n                           cls ->\n                             Vector3 ->\n                               Vector3 ->\n                                 Maybe Vector3 ->\n                                   Maybe Bool ->\n                                     Maybe Int -> Maybe Float -> Maybe Bool -> IO Vector3\nmove_and_slide_with_snap cls arg1 arg2 arg3 arg4 arg5 arg6 arg7\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantVector3 (V3 0 0 0) arg3,\n       maybe (VariantBool False) toVariant arg4,\n       maybe (VariantInt (4)) toVariant arg5,\n       maybe (VariantReal (0.785398)) toVariant arg6,\n       maybe (VariantBool True) toVariant arg7]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody_move_and_slide_with_snap\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody \"move_and_slide_with_snap\"\n           '[Vector3, Vector3, Maybe Vector3, Maybe Bool, Maybe Int,\n             Maybe Float, Maybe Bool]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.KinematicBody.move_and_slide_with_snap\n\n{-# NOINLINE bindKinematicBody_set_axis_lock #-}\n\n-- | Locks or unlocks the specified @axis@ depending on the value of @lock@. See also @move_lock_x@, @move_lock_y@ and @move_lock_z@.\nbindKinematicBody_set_axis_lock :: MethodBind\nbindKinematicBody_set_axis_lock\n  = unsafePerformIO $\n      withCString \"KinematicBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_axis_lock\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Locks or unlocks the specified @axis@ depending on the value of @lock@. See also @move_lock_x@, @move_lock_y@ and @move_lock_z@.\nset_axis_lock ::\n                (KinematicBody :< cls, Object :< cls) =>\n                cls -> Int -> Bool -> IO ()\nset_axis_lock cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody_set_axis_lock (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody \"set_axis_lock\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.KinematicBody.set_axis_lock\n\n{-# NOINLINE bindKinematicBody_set_safe_margin #-}\n\n-- | If the body is at least this close to another body, this body will consider them to be colliding.\nbindKinematicBody_set_safe_margin :: MethodBind\nbindKinematicBody_set_safe_margin\n  = unsafePerformIO $\n      withCString \"KinematicBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_safe_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If the body is at least this close to another body, this body will consider them to be colliding.\nset_safe_margin ::\n                  (KinematicBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_safe_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody_set_safe_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody \"set_safe_margin\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.KinematicBody.set_safe_margin\n\n{-# NOINLINE bindKinematicBody_test_move #-}\n\n-- | Checks for collisions without moving the body. Virtually sets the node's position, scale and rotation to that of the given @Transform@, then tries to move the body along the vector @rel_vec@. Returns @true@ if a collision would occur.\nbindKinematicBody_test_move :: MethodBind\nbindKinematicBody_test_move\n  = unsafePerformIO $\n      withCString \"KinematicBody\" $\n        \\ clsNamePtr ->\n          withCString \"test_move\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Checks for collisions without moving the body. Virtually sets the node's position, scale and rotation to that of the given @Transform@, then tries to move the body along the vector @rel_vec@. Returns @true@ if a collision would occur.\ntest_move ::\n            (KinematicBody :< cls, Object :< cls) =>\n            cls -> Transform -> Vector3 -> Maybe Bool -> IO Bool\ntest_move cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool True) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody_test_move (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody \"test_move\"\n           '[Transform, Vector3, Maybe Bool]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.KinematicBody.test_move"
  },
  {
    "path": "src/Godot/Core/KinematicBody2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.KinematicBody2D\n       (Godot.Core.KinematicBody2D._direct_state_changed,\n        Godot.Core.KinematicBody2D.get_floor_normal,\n        Godot.Core.KinematicBody2D.get_floor_velocity,\n        Godot.Core.KinematicBody2D.get_safe_margin,\n        Godot.Core.KinematicBody2D.get_slide_collision,\n        Godot.Core.KinematicBody2D.get_slide_count,\n        Godot.Core.KinematicBody2D.is_on_ceiling,\n        Godot.Core.KinematicBody2D.is_on_floor,\n        Godot.Core.KinematicBody2D.is_on_wall,\n        Godot.Core.KinematicBody2D.is_sync_to_physics_enabled,\n        Godot.Core.KinematicBody2D.move_and_collide,\n        Godot.Core.KinematicBody2D.move_and_slide,\n        Godot.Core.KinematicBody2D.move_and_slide_with_snap,\n        Godot.Core.KinematicBody2D.set_safe_margin,\n        Godot.Core.KinematicBody2D.set_sync_to_physics,\n        Godot.Core.KinematicBody2D.test_move)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PhysicsBody2D()\n\ninstance NodeProperty KinematicBody2D \"collision/safe_margin\" Float\n           'False\n         where\n        nodeProperty\n          = (get_safe_margin, wrapDroppingSetter set_safe_margin, Nothing)\n\ninstance NodeProperty KinematicBody2D \"motion/sync_to_physics\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_sync_to_physics_enabled,\n             wrapDroppingSetter set_sync_to_physics, Nothing)\n\n{-# NOINLINE bindKinematicBody2D__direct_state_changed #-}\n\nbindKinematicBody2D__direct_state_changed :: MethodBind\nbindKinematicBody2D__direct_state_changed\n  = unsafePerformIO $\n      withCString \"KinematicBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"_direct_state_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_direct_state_changed ::\n                        (KinematicBody2D :< cls, Object :< cls) => cls -> Object -> IO ()\n_direct_state_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody2D__direct_state_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody2D \"_direct_state_changed\"\n           '[Object]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.KinematicBody2D._direct_state_changed\n\n{-# NOINLINE bindKinematicBody2D_get_floor_normal #-}\n\n-- | Returns the surface normal of the floor at the last collision point. Only valid after calling @method move_and_slide@ or @method move_and_slide_with_snap@ and when @method is_on_floor@ returns @true@.\nbindKinematicBody2D_get_floor_normal :: MethodBind\nbindKinematicBody2D_get_floor_normal\n  = unsafePerformIO $\n      withCString \"KinematicBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_floor_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the surface normal of the floor at the last collision point. Only valid after calling @method move_and_slide@ or @method move_and_slide_with_snap@ and when @method is_on_floor@ returns @true@.\nget_floor_normal ::\n                   (KinematicBody2D :< cls, Object :< cls) => cls -> IO Vector2\nget_floor_normal cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody2D_get_floor_normal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody2D \"get_floor_normal\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.KinematicBody2D.get_floor_normal\n\n{-# NOINLINE bindKinematicBody2D_get_floor_velocity #-}\n\n-- | Returns the linear velocity of the floor at the last collision point. Only valid after calling @method move_and_slide@ or @method move_and_slide_with_snap@ and when @method is_on_floor@ returns @true@.\nbindKinematicBody2D_get_floor_velocity :: MethodBind\nbindKinematicBody2D_get_floor_velocity\n  = unsafePerformIO $\n      withCString \"KinematicBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_floor_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the linear velocity of the floor at the last collision point. Only valid after calling @method move_and_slide@ or @method move_and_slide_with_snap@ and when @method is_on_floor@ returns @true@.\nget_floor_velocity ::\n                     (KinematicBody2D :< cls, Object :< cls) => cls -> IO Vector2\nget_floor_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody2D_get_floor_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody2D \"get_floor_velocity\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.KinematicBody2D.get_floor_velocity\n\n{-# NOINLINE bindKinematicBody2D_get_safe_margin #-}\n\n-- | If the body is at least this close to another body, this body will consider them to be colliding.\nbindKinematicBody2D_get_safe_margin :: MethodBind\nbindKinematicBody2D_get_safe_margin\n  = unsafePerformIO $\n      withCString \"KinematicBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_safe_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If the body is at least this close to another body, this body will consider them to be colliding.\nget_safe_margin ::\n                  (KinematicBody2D :< cls, Object :< cls) => cls -> IO Float\nget_safe_margin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody2D_get_safe_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody2D \"get_safe_margin\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.KinematicBody2D.get_safe_margin\n\n{-# NOINLINE bindKinematicBody2D_get_slide_collision #-}\n\n-- | Returns a @KinematicCollision2D@, which contains information about a collision that occurred during the last @method move_and_slide@ call. Since the body can collide several times in a single call to @method move_and_slide@, you must specify the index of the collision in the range 0 to (@method get_slide_count@ - 1).\n--   \t\t\t\t__Example usage:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfor i in get_slide_count():\n--   \t\t\t\t    var collision = get_slide_collision(i)\n--   \t\t\t\t    print(\"Collided with: \", collision.collider.name)\n--   \t\t\t\t\n--   @\nbindKinematicBody2D_get_slide_collision :: MethodBind\nbindKinematicBody2D_get_slide_collision\n  = unsafePerformIO $\n      withCString \"KinematicBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_slide_collision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @KinematicCollision2D@, which contains information about a collision that occurred during the last @method move_and_slide@ call. Since the body can collide several times in a single call to @method move_and_slide@, you must specify the index of the collision in the range 0 to (@method get_slide_count@ - 1).\n--   \t\t\t\t__Example usage:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfor i in get_slide_count():\n--   \t\t\t\t    var collision = get_slide_collision(i)\n--   \t\t\t\t    print(\"Collided with: \", collision.collider.name)\n--   \t\t\t\t\n--   @\nget_slide_collision ::\n                      (KinematicBody2D :< cls, Object :< cls) =>\n                      cls -> Int -> IO KinematicCollision2D\nget_slide_collision cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody2D_get_slide_collision\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody2D \"get_slide_collision\" '[Int]\n           (IO KinematicCollision2D)\n         where\n        nodeMethod = Godot.Core.KinematicBody2D.get_slide_collision\n\n{-# NOINLINE bindKinematicBody2D_get_slide_count #-}\n\n-- | Returns the number of times the body collided and changed direction during the last call to @method move_and_slide@.\nbindKinematicBody2D_get_slide_count :: MethodBind\nbindKinematicBody2D_get_slide_count\n  = unsafePerformIO $\n      withCString \"KinematicBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_slide_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of times the body collided and changed direction during the last call to @method move_and_slide@.\nget_slide_count ::\n                  (KinematicBody2D :< cls, Object :< cls) => cls -> IO Int\nget_slide_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody2D_get_slide_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody2D \"get_slide_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.KinematicBody2D.get_slide_count\n\n{-# NOINLINE bindKinematicBody2D_is_on_ceiling #-}\n\n-- | Returns @true@ if the body is on the ceiling. Only updates when calling @method move_and_slide@.\nbindKinematicBody2D_is_on_ceiling :: MethodBind\nbindKinematicBody2D_is_on_ceiling\n  = unsafePerformIO $\n      withCString \"KinematicBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_on_ceiling\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the body is on the ceiling. Only updates when calling @method move_and_slide@.\nis_on_ceiling ::\n                (KinematicBody2D :< cls, Object :< cls) => cls -> IO Bool\nis_on_ceiling cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody2D_is_on_ceiling\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody2D \"is_on_ceiling\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.KinematicBody2D.is_on_ceiling\n\n{-# NOINLINE bindKinematicBody2D_is_on_floor #-}\n\n-- | Returns @true@ if the body is on the floor. Only updates when calling @method move_and_slide@.\nbindKinematicBody2D_is_on_floor :: MethodBind\nbindKinematicBody2D_is_on_floor\n  = unsafePerformIO $\n      withCString \"KinematicBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_on_floor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the body is on the floor. Only updates when calling @method move_and_slide@.\nis_on_floor ::\n              (KinematicBody2D :< cls, Object :< cls) => cls -> IO Bool\nis_on_floor cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody2D_is_on_floor (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody2D \"is_on_floor\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.KinematicBody2D.is_on_floor\n\n{-# NOINLINE bindKinematicBody2D_is_on_wall #-}\n\n-- | Returns @true@ if the body is on a wall. Only updates when calling @method move_and_slide@.\nbindKinematicBody2D_is_on_wall :: MethodBind\nbindKinematicBody2D_is_on_wall\n  = unsafePerformIO $\n      withCString \"KinematicBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_on_wall\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the body is on a wall. Only updates when calling @method move_and_slide@.\nis_on_wall ::\n             (KinematicBody2D :< cls, Object :< cls) => cls -> IO Bool\nis_on_wall cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody2D_is_on_wall (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody2D \"is_on_wall\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.KinematicBody2D.is_on_wall\n\n{-# NOINLINE bindKinematicBody2D_is_sync_to_physics_enabled #-}\n\n-- | If @true@, the body's movement will be synchronized to the physics frame. This is useful when animating movement via @AnimationPlayer@, for example on moving platforms. Do __not__ use together with @method move_and_slide@ or @method move_and_collide@ functions.\nbindKinematicBody2D_is_sync_to_physics_enabled :: MethodBind\nbindKinematicBody2D_is_sync_to_physics_enabled\n  = unsafePerformIO $\n      withCString \"KinematicBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_sync_to_physics_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the body's movement will be synchronized to the physics frame. This is useful when animating movement via @AnimationPlayer@, for example on moving platforms. Do __not__ use together with @method move_and_slide@ or @method move_and_collide@ functions.\nis_sync_to_physics_enabled ::\n                             (KinematicBody2D :< cls, Object :< cls) => cls -> IO Bool\nis_sync_to_physics_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindKinematicBody2D_is_sync_to_physics_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody2D \"is_sync_to_physics_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.KinematicBody2D.is_sync_to_physics_enabled\n\n{-# NOINLINE bindKinematicBody2D_move_and_collide #-}\n\n-- | Moves the body along the vector @rel_vec@. The body will stop if it collides. Returns a @KinematicCollision2D@, which contains information about the collision.\n--   \t\t\t\tIf @test_only@ is @true@, the body does not move but the would-be collision information is given.\nbindKinematicBody2D_move_and_collide :: MethodBind\nbindKinematicBody2D_move_and_collide\n  = unsafePerformIO $\n      withCString \"KinematicBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"move_and_collide\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves the body along the vector @rel_vec@. The body will stop if it collides. Returns a @KinematicCollision2D@, which contains information about the collision.\n--   \t\t\t\tIf @test_only@ is @true@, the body does not move but the would-be collision information is given.\nmove_and_collide ::\n                   (KinematicBody2D :< cls, Object :< cls) =>\n                   cls ->\n                     Vector2 ->\n                       Maybe Bool -> Maybe Bool -> Maybe Bool -> IO KinematicCollision2D\nmove_and_collide cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool True) toVariant arg2,\n       maybe (VariantBool True) toVariant arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody2D_move_and_collide\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody2D \"move_and_collide\"\n           '[Vector2, Maybe Bool, Maybe Bool, Maybe Bool]\n           (IO KinematicCollision2D)\n         where\n        nodeMethod = Godot.Core.KinematicBody2D.move_and_collide\n\n{-# NOINLINE bindKinematicBody2D_move_and_slide #-}\n\n-- | Moves the body along a vector. If the body collides with another, it will slide along the other body rather than stop immediately. If the other body is a @KinematicBody2D@ or @RigidBody2D@, it will also be affected by the motion of the other body. You can use this to make moving or rotating platforms, or to make nodes push other nodes.\n--   \t\t\t\tThis method should be used in @method Node._physics_process@ (or in a method called by @method Node._physics_process@), as it uses the physics step's @delta@ value automatically in calculations. Otherwise, the simulation will run at an incorrect speed.\n--   \t\t\t\t@linear_velocity@ is the velocity vector in pixels per second. Unlike in @method move_and_collide@, you should @i@not@/i@ multiply it by @delta@ — the physics engine handles applying the velocity.\n--   \t\t\t\t@up_direction@ is the up direction, used to determine what is a wall and what is a floor or a ceiling. If set to the default value of @Vector2(0, 0)@, everything is considered a wall. This is useful for topdown games.\n--   \t\t\t\tIf @stop_on_slope@ is @true@, body will not slide on slopes when you include gravity in @linear_velocity@ and the body is standing still.\n--   \t\t\t\tIf the body collides, it will change direction a maximum of @max_slides@ times before it stops.\n--   \t\t\t\t@floor_max_angle@ is the maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall. The default value equals 45 degrees.\n--   \t\t\t\tIf @infinite_inertia@ is @true@, body will be able to push @RigidBody2D@ nodes, but it won't also detect any collisions with them. If @false@, it will interact with @RigidBody2D@ nodes like with @StaticBody2D@.\n--   \t\t\t\tReturns the @linear_velocity@ vector, rotated and/or scaled if a slide collision occurred. To get detailed information about collisions that occurred, use @method get_slide_collision@.\nbindKinematicBody2D_move_and_slide :: MethodBind\nbindKinematicBody2D_move_and_slide\n  = unsafePerformIO $\n      withCString \"KinematicBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"move_and_slide\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves the body along a vector. If the body collides with another, it will slide along the other body rather than stop immediately. If the other body is a @KinematicBody2D@ or @RigidBody2D@, it will also be affected by the motion of the other body. You can use this to make moving or rotating platforms, or to make nodes push other nodes.\n--   \t\t\t\tThis method should be used in @method Node._physics_process@ (or in a method called by @method Node._physics_process@), as it uses the physics step's @delta@ value automatically in calculations. Otherwise, the simulation will run at an incorrect speed.\n--   \t\t\t\t@linear_velocity@ is the velocity vector in pixels per second. Unlike in @method move_and_collide@, you should @i@not@/i@ multiply it by @delta@ — the physics engine handles applying the velocity.\n--   \t\t\t\t@up_direction@ is the up direction, used to determine what is a wall and what is a floor or a ceiling. If set to the default value of @Vector2(0, 0)@, everything is considered a wall. This is useful for topdown games.\n--   \t\t\t\tIf @stop_on_slope@ is @true@, body will not slide on slopes when you include gravity in @linear_velocity@ and the body is standing still.\n--   \t\t\t\tIf the body collides, it will change direction a maximum of @max_slides@ times before it stops.\n--   \t\t\t\t@floor_max_angle@ is the maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall. The default value equals 45 degrees.\n--   \t\t\t\tIf @infinite_inertia@ is @true@, body will be able to push @RigidBody2D@ nodes, but it won't also detect any collisions with them. If @false@, it will interact with @RigidBody2D@ nodes like with @StaticBody2D@.\n--   \t\t\t\tReturns the @linear_velocity@ vector, rotated and/or scaled if a slide collision occurred. To get detailed information about collisions that occurred, use @method get_slide_collision@.\nmove_and_slide ::\n                 (KinematicBody2D :< cls, Object :< cls) =>\n                 cls ->\n                   Vector2 ->\n                     Maybe Vector2 ->\n                       Maybe Bool -> Maybe Int -> Maybe Float -> Maybe Bool -> IO Vector2\nmove_and_slide cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantVector2 (V2 0 0) arg2,\n       maybe (VariantBool False) toVariant arg3,\n       maybe (VariantInt (4)) toVariant arg4,\n       maybe (VariantReal (0.785398)) toVariant arg5,\n       maybe (VariantBool True) toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody2D_move_and_slide\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody2D \"move_and_slide\"\n           '[Vector2, Maybe Vector2, Maybe Bool, Maybe Int, Maybe Float,\n             Maybe Bool]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.KinematicBody2D.move_and_slide\n\n{-# NOINLINE bindKinematicBody2D_move_and_slide_with_snap #-}\n\n-- | Moves the body while keeping it attached to slopes. Similar to @method move_and_slide@.\n--   \t\t\t\tAs long as the @snap@ vector is in contact with the ground, the body will remain attached to the surface. This means you must disable snap in order to jump, for example. You can do this by setting @snap@ to @(0, 0)@ or by using @method move_and_slide@ instead.\nbindKinematicBody2D_move_and_slide_with_snap :: MethodBind\nbindKinematicBody2D_move_and_slide_with_snap\n  = unsafePerformIO $\n      withCString \"KinematicBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"move_and_slide_with_snap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves the body while keeping it attached to slopes. Similar to @method move_and_slide@.\n--   \t\t\t\tAs long as the @snap@ vector is in contact with the ground, the body will remain attached to the surface. This means you must disable snap in order to jump, for example. You can do this by setting @snap@ to @(0, 0)@ or by using @method move_and_slide@ instead.\nmove_and_slide_with_snap ::\n                           (KinematicBody2D :< cls, Object :< cls) =>\n                           cls ->\n                             Vector2 ->\n                               Vector2 ->\n                                 Maybe Vector2 ->\n                                   Maybe Bool ->\n                                     Maybe Int -> Maybe Float -> Maybe Bool -> IO Vector2\nmove_and_slide_with_snap cls arg1 arg2 arg3 arg4 arg5 arg6 arg7\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantVector2 (V2 0 0) arg3,\n       maybe (VariantBool False) toVariant arg4,\n       maybe (VariantInt (4)) toVariant arg5,\n       maybe (VariantReal (0.785398)) toVariant arg6,\n       maybe (VariantBool True) toVariant arg7]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody2D_move_and_slide_with_snap\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody2D \"move_and_slide_with_snap\"\n           '[Vector2, Vector2, Maybe Vector2, Maybe Bool, Maybe Int,\n             Maybe Float, Maybe Bool]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.KinematicBody2D.move_and_slide_with_snap\n\n{-# NOINLINE bindKinematicBody2D_set_safe_margin #-}\n\n-- | If the body is at least this close to another body, this body will consider them to be colliding.\nbindKinematicBody2D_set_safe_margin :: MethodBind\nbindKinematicBody2D_set_safe_margin\n  = unsafePerformIO $\n      withCString \"KinematicBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_safe_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If the body is at least this close to another body, this body will consider them to be colliding.\nset_safe_margin ::\n                  (KinematicBody2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_safe_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody2D_set_safe_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody2D \"set_safe_margin\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.KinematicBody2D.set_safe_margin\n\n{-# NOINLINE bindKinematicBody2D_set_sync_to_physics #-}\n\n-- | If @true@, the body's movement will be synchronized to the physics frame. This is useful when animating movement via @AnimationPlayer@, for example on moving platforms. Do __not__ use together with @method move_and_slide@ or @method move_and_collide@ functions.\nbindKinematicBody2D_set_sync_to_physics :: MethodBind\nbindKinematicBody2D_set_sync_to_physics\n  = unsafePerformIO $\n      withCString \"KinematicBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_sync_to_physics\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the body's movement will be synchronized to the physics frame. This is useful when animating movement via @AnimationPlayer@, for example on moving platforms. Do __not__ use together with @method move_and_slide@ or @method move_and_collide@ functions.\nset_sync_to_physics ::\n                      (KinematicBody2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_sync_to_physics cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody2D_set_sync_to_physics\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody2D \"set_sync_to_physics\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.KinematicBody2D.set_sync_to_physics\n\n{-# NOINLINE bindKinematicBody2D_test_move #-}\n\n-- | Checks for collisions without moving the body. Virtually sets the node's position, scale and rotation to that of the given @Transform2D@, then tries to move the body along the vector @rel_vec@. Returns @true@ if a collision would occur.\nbindKinematicBody2D_test_move :: MethodBind\nbindKinematicBody2D_test_move\n  = unsafePerformIO $\n      withCString \"KinematicBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"test_move\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Checks for collisions without moving the body. Virtually sets the node's position, scale and rotation to that of the given @Transform2D@, then tries to move the body along the vector @rel_vec@. Returns @true@ if a collision would occur.\ntest_move ::\n            (KinematicBody2D :< cls, Object :< cls) =>\n            cls -> Transform2d -> Vector2 -> Maybe Bool -> IO Bool\ntest_move cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool True) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicBody2D_test_move (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicBody2D \"test_move\"\n           '[Transform2d, Vector2, Maybe Bool]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.KinematicBody2D.test_move"
  },
  {
    "path": "src/Godot/Core/KinematicCollision.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.KinematicCollision\n       (Godot.Core.KinematicCollision.get_collider,\n        Godot.Core.KinematicCollision.get_collider_id,\n        Godot.Core.KinematicCollision.get_collider_metadata,\n        Godot.Core.KinematicCollision.get_collider_shape,\n        Godot.Core.KinematicCollision.get_collider_shape_index,\n        Godot.Core.KinematicCollision.get_collider_velocity,\n        Godot.Core.KinematicCollision.get_local_shape,\n        Godot.Core.KinematicCollision.get_normal,\n        Godot.Core.KinematicCollision.get_position,\n        Godot.Core.KinematicCollision.get_remainder,\n        Godot.Core.KinematicCollision.get_travel)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\ninstance NodeProperty KinematicCollision \"collider\" Object 'True\n         where\n        nodeProperty = (get_collider, (), Nothing)\n\ninstance NodeProperty KinematicCollision \"collider_id\" Int 'True\n         where\n        nodeProperty = (get_collider_id, (), Nothing)\n\ninstance NodeProperty KinematicCollision \"collider_metadata\"\n           GodotVariant\n           'True\n         where\n        nodeProperty = (get_collider_metadata, (), Nothing)\n\ninstance NodeProperty KinematicCollision \"collider_shape\" Object\n           'True\n         where\n        nodeProperty = (get_collider_shape, (), Nothing)\n\ninstance NodeProperty KinematicCollision \"collider_shape_index\" Int\n           'True\n         where\n        nodeProperty = (get_collider_shape_index, (), Nothing)\n\ninstance NodeProperty KinematicCollision \"collider_velocity\"\n           Vector3\n           'True\n         where\n        nodeProperty = (get_collider_velocity, (), Nothing)\n\ninstance NodeProperty KinematicCollision \"local_shape\" Object 'True\n         where\n        nodeProperty = (get_local_shape, (), Nothing)\n\ninstance NodeProperty KinematicCollision \"normal\" Vector3 'True\n         where\n        nodeProperty = (get_normal, (), Nothing)\n\ninstance NodeProperty KinematicCollision \"position\" Vector3 'True\n         where\n        nodeProperty = (get_position, (), Nothing)\n\ninstance NodeProperty KinematicCollision \"remainder\" Vector3 'True\n         where\n        nodeProperty = (get_remainder, (), Nothing)\n\ninstance NodeProperty KinematicCollision \"travel\" Vector3 'True\n         where\n        nodeProperty = (get_travel, (), Nothing)\n\n{-# NOINLINE bindKinematicCollision_get_collider #-}\n\n-- | The colliding body.\nbindKinematicCollision_get_collider :: MethodBind\nbindKinematicCollision_get_collider\n  = unsafePerformIO $\n      withCString \"KinematicCollision\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The colliding body.\nget_collider ::\n               (KinematicCollision :< cls, Object :< cls) => cls -> IO Object\nget_collider cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicCollision_get_collider\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision \"get_collider\" '[]\n           (IO Object)\n         where\n        nodeMethod = Godot.Core.KinematicCollision.get_collider\n\n{-# NOINLINE bindKinematicCollision_get_collider_id #-}\n\n-- | The colliding body's unique instance ID. See @method Object.get_instance_id@.\nbindKinematicCollision_get_collider_id :: MethodBind\nbindKinematicCollision_get_collider_id\n  = unsafePerformIO $\n      withCString \"KinematicCollision\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The colliding body's unique instance ID. See @method Object.get_instance_id@.\nget_collider_id ::\n                  (KinematicCollision :< cls, Object :< cls) => cls -> IO Int\nget_collider_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicCollision_get_collider_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision \"get_collider_id\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.KinematicCollision.get_collider_id\n\n{-# NOINLINE bindKinematicCollision_get_collider_metadata #-}\n\n-- | The colliding body's metadata. See @Object@.\nbindKinematicCollision_get_collider_metadata :: MethodBind\nbindKinematicCollision_get_collider_metadata\n  = unsafePerformIO $\n      withCString \"KinematicCollision\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider_metadata\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The colliding body's metadata. See @Object@.\nget_collider_metadata ::\n                        (KinematicCollision :< cls, Object :< cls) =>\n                        cls -> IO GodotVariant\nget_collider_metadata cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicCollision_get_collider_metadata\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision \"get_collider_metadata\" '[]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.KinematicCollision.get_collider_metadata\n\n{-# NOINLINE bindKinematicCollision_get_collider_shape #-}\n\n-- | The colliding body's shape.\nbindKinematicCollision_get_collider_shape :: MethodBind\nbindKinematicCollision_get_collider_shape\n  = unsafePerformIO $\n      withCString \"KinematicCollision\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The colliding body's shape.\nget_collider_shape ::\n                     (KinematicCollision :< cls, Object :< cls) => cls -> IO Object\nget_collider_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicCollision_get_collider_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision \"get_collider_shape\" '[]\n           (IO Object)\n         where\n        nodeMethod = Godot.Core.KinematicCollision.get_collider_shape\n\n{-# NOINLINE bindKinematicCollision_get_collider_shape_index #-}\n\n-- | The colliding shape's index. See @CollisionObject@.\nbindKinematicCollision_get_collider_shape_index :: MethodBind\nbindKinematicCollision_get_collider_shape_index\n  = unsafePerformIO $\n      withCString \"KinematicCollision\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider_shape_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The colliding shape's index. See @CollisionObject@.\nget_collider_shape_index ::\n                           (KinematicCollision :< cls, Object :< cls) => cls -> IO Int\nget_collider_shape_index cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindKinematicCollision_get_collider_shape_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision \"get_collider_shape_index\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.KinematicCollision.get_collider_shape_index\n\n{-# NOINLINE bindKinematicCollision_get_collider_velocity #-}\n\n-- | The colliding object's velocity.\nbindKinematicCollision_get_collider_velocity :: MethodBind\nbindKinematicCollision_get_collider_velocity\n  = unsafePerformIO $\n      withCString \"KinematicCollision\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The colliding object's velocity.\nget_collider_velocity ::\n                        (KinematicCollision :< cls, Object :< cls) => cls -> IO Vector3\nget_collider_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicCollision_get_collider_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision \"get_collider_velocity\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.KinematicCollision.get_collider_velocity\n\n{-# NOINLINE bindKinematicCollision_get_local_shape #-}\n\n-- | The moving object's colliding shape.\nbindKinematicCollision_get_local_shape :: MethodBind\nbindKinematicCollision_get_local_shape\n  = unsafePerformIO $\n      withCString \"KinematicCollision\" $\n        \\ clsNamePtr ->\n          withCString \"get_local_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The moving object's colliding shape.\nget_local_shape ::\n                  (KinematicCollision :< cls, Object :< cls) => cls -> IO Object\nget_local_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicCollision_get_local_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision \"get_local_shape\" '[]\n           (IO Object)\n         where\n        nodeMethod = Godot.Core.KinematicCollision.get_local_shape\n\n{-# NOINLINE bindKinematicCollision_get_normal #-}\n\n-- | The colliding body's shape's normal at the point of collision.\nbindKinematicCollision_get_normal :: MethodBind\nbindKinematicCollision_get_normal\n  = unsafePerformIO $\n      withCString \"KinematicCollision\" $\n        \\ clsNamePtr ->\n          withCString \"get_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The colliding body's shape's normal at the point of collision.\nget_normal ::\n             (KinematicCollision :< cls, Object :< cls) => cls -> IO Vector3\nget_normal cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicCollision_get_normal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision \"get_normal\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.KinematicCollision.get_normal\n\n{-# NOINLINE bindKinematicCollision_get_position #-}\n\n-- | The point of collision, in global coordinates.\nbindKinematicCollision_get_position :: MethodBind\nbindKinematicCollision_get_position\n  = unsafePerformIO $\n      withCString \"KinematicCollision\" $\n        \\ clsNamePtr ->\n          withCString \"get_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The point of collision, in global coordinates.\nget_position ::\n               (KinematicCollision :< cls, Object :< cls) => cls -> IO Vector3\nget_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicCollision_get_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision \"get_position\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.KinematicCollision.get_position\n\n{-# NOINLINE bindKinematicCollision_get_remainder #-}\n\n-- | The moving object's remaining movement vector.\nbindKinematicCollision_get_remainder :: MethodBind\nbindKinematicCollision_get_remainder\n  = unsafePerformIO $\n      withCString \"KinematicCollision\" $\n        \\ clsNamePtr ->\n          withCString \"get_remainder\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The moving object's remaining movement vector.\nget_remainder ::\n                (KinematicCollision :< cls, Object :< cls) => cls -> IO Vector3\nget_remainder cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicCollision_get_remainder\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision \"get_remainder\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.KinematicCollision.get_remainder\n\n{-# NOINLINE bindKinematicCollision_get_travel #-}\n\n-- | The distance the moving object traveled before collision.\nbindKinematicCollision_get_travel :: MethodBind\nbindKinematicCollision_get_travel\n  = unsafePerformIO $\n      withCString \"KinematicCollision\" $\n        \\ clsNamePtr ->\n          withCString \"get_travel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance the moving object traveled before collision.\nget_travel ::\n             (KinematicCollision :< cls, Object :< cls) => cls -> IO Vector3\nget_travel cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicCollision_get_travel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision \"get_travel\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.KinematicCollision.get_travel"
  },
  {
    "path": "src/Godot/Core/KinematicCollision2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.KinematicCollision2D\n       (Godot.Core.KinematicCollision2D.get_collider,\n        Godot.Core.KinematicCollision2D.get_collider_id,\n        Godot.Core.KinematicCollision2D.get_collider_metadata,\n        Godot.Core.KinematicCollision2D.get_collider_shape,\n        Godot.Core.KinematicCollision2D.get_collider_shape_index,\n        Godot.Core.KinematicCollision2D.get_collider_velocity,\n        Godot.Core.KinematicCollision2D.get_local_shape,\n        Godot.Core.KinematicCollision2D.get_normal,\n        Godot.Core.KinematicCollision2D.get_position,\n        Godot.Core.KinematicCollision2D.get_remainder,\n        Godot.Core.KinematicCollision2D.get_travel)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\ninstance NodeProperty KinematicCollision2D \"collider\" Object 'True\n         where\n        nodeProperty = (get_collider, (), Nothing)\n\ninstance NodeProperty KinematicCollision2D \"collider_id\" Int 'True\n         where\n        nodeProperty = (get_collider_id, (), Nothing)\n\ninstance NodeProperty KinematicCollision2D \"collider_metadata\"\n           GodotVariant\n           'True\n         where\n        nodeProperty = (get_collider_metadata, (), Nothing)\n\ninstance NodeProperty KinematicCollision2D \"collider_shape\" Object\n           'True\n         where\n        nodeProperty = (get_collider_shape, (), Nothing)\n\ninstance NodeProperty KinematicCollision2D \"collider_shape_index\"\n           Int\n           'True\n         where\n        nodeProperty = (get_collider_shape_index, (), Nothing)\n\ninstance NodeProperty KinematicCollision2D \"collider_velocity\"\n           Vector2\n           'True\n         where\n        nodeProperty = (get_collider_velocity, (), Nothing)\n\ninstance NodeProperty KinematicCollision2D \"local_shape\" Object\n           'True\n         where\n        nodeProperty = (get_local_shape, (), Nothing)\n\ninstance NodeProperty KinematicCollision2D \"normal\" Vector2 'True\n         where\n        nodeProperty = (get_normal, (), Nothing)\n\ninstance NodeProperty KinematicCollision2D \"position\" Vector2 'True\n         where\n        nodeProperty = (get_position, (), Nothing)\n\ninstance NodeProperty KinematicCollision2D \"remainder\" Vector2\n           'True\n         where\n        nodeProperty = (get_remainder, (), Nothing)\n\ninstance NodeProperty KinematicCollision2D \"travel\" Vector2 'True\n         where\n        nodeProperty = (get_travel, (), Nothing)\n\n{-# NOINLINE bindKinematicCollision2D_get_collider #-}\n\n-- | The colliding body.\nbindKinematicCollision2D_get_collider :: MethodBind\nbindKinematicCollision2D_get_collider\n  = unsafePerformIO $\n      withCString \"KinematicCollision2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The colliding body.\nget_collider ::\n               (KinematicCollision2D :< cls, Object :< cls) => cls -> IO Object\nget_collider cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicCollision2D_get_collider\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision2D \"get_collider\" '[]\n           (IO Object)\n         where\n        nodeMethod = Godot.Core.KinematicCollision2D.get_collider\n\n{-# NOINLINE bindKinematicCollision2D_get_collider_id #-}\n\n-- | The colliding body's unique instance ID. See @method Object.get_instance_id@.\nbindKinematicCollision2D_get_collider_id :: MethodBind\nbindKinematicCollision2D_get_collider_id\n  = unsafePerformIO $\n      withCString \"KinematicCollision2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The colliding body's unique instance ID. See @method Object.get_instance_id@.\nget_collider_id ::\n                  (KinematicCollision2D :< cls, Object :< cls) => cls -> IO Int\nget_collider_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicCollision2D_get_collider_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision2D \"get_collider_id\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.KinematicCollision2D.get_collider_id\n\n{-# NOINLINE bindKinematicCollision2D_get_collider_metadata #-}\n\n-- | The colliding body's metadata. See @Object@.\nbindKinematicCollision2D_get_collider_metadata :: MethodBind\nbindKinematicCollision2D_get_collider_metadata\n  = unsafePerformIO $\n      withCString \"KinematicCollision2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider_metadata\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The colliding body's metadata. See @Object@.\nget_collider_metadata ::\n                        (KinematicCollision2D :< cls, Object :< cls) =>\n                        cls -> IO GodotVariant\nget_collider_metadata cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindKinematicCollision2D_get_collider_metadata\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision2D \"get_collider_metadata\"\n           '[]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.KinematicCollision2D.get_collider_metadata\n\n{-# NOINLINE bindKinematicCollision2D_get_collider_shape #-}\n\n-- | The colliding body's shape.\nbindKinematicCollision2D_get_collider_shape :: MethodBind\nbindKinematicCollision2D_get_collider_shape\n  = unsafePerformIO $\n      withCString \"KinematicCollision2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The colliding body's shape.\nget_collider_shape ::\n                     (KinematicCollision2D :< cls, Object :< cls) => cls -> IO Object\nget_collider_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicCollision2D_get_collider_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision2D \"get_collider_shape\" '[]\n           (IO Object)\n         where\n        nodeMethod = Godot.Core.KinematicCollision2D.get_collider_shape\n\n{-# NOINLINE bindKinematicCollision2D_get_collider_shape_index #-}\n\n-- | The colliding shape's index. See @CollisionObject2D@.\nbindKinematicCollision2D_get_collider_shape_index :: MethodBind\nbindKinematicCollision2D_get_collider_shape_index\n  = unsafePerformIO $\n      withCString \"KinematicCollision2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider_shape_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The colliding shape's index. See @CollisionObject2D@.\nget_collider_shape_index ::\n                           (KinematicCollision2D :< cls, Object :< cls) => cls -> IO Int\nget_collider_shape_index cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindKinematicCollision2D_get_collider_shape_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision2D \"get_collider_shape_index\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.KinematicCollision2D.get_collider_shape_index\n\n{-# NOINLINE bindKinematicCollision2D_get_collider_velocity #-}\n\n-- | The colliding object's velocity.\nbindKinematicCollision2D_get_collider_velocity :: MethodBind\nbindKinematicCollision2D_get_collider_velocity\n  = unsafePerformIO $\n      withCString \"KinematicCollision2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The colliding object's velocity.\nget_collider_velocity ::\n                        (KinematicCollision2D :< cls, Object :< cls) => cls -> IO Vector2\nget_collider_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindKinematicCollision2D_get_collider_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision2D \"get_collider_velocity\"\n           '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.KinematicCollision2D.get_collider_velocity\n\n{-# NOINLINE bindKinematicCollision2D_get_local_shape #-}\n\n-- | The moving object's colliding shape.\nbindKinematicCollision2D_get_local_shape :: MethodBind\nbindKinematicCollision2D_get_local_shape\n  = unsafePerformIO $\n      withCString \"KinematicCollision2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_local_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The moving object's colliding shape.\nget_local_shape ::\n                  (KinematicCollision2D :< cls, Object :< cls) => cls -> IO Object\nget_local_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicCollision2D_get_local_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision2D \"get_local_shape\" '[]\n           (IO Object)\n         where\n        nodeMethod = Godot.Core.KinematicCollision2D.get_local_shape\n\n{-# NOINLINE bindKinematicCollision2D_get_normal #-}\n\n-- | The colliding body's shape's normal at the point of collision.\nbindKinematicCollision2D_get_normal :: MethodBind\nbindKinematicCollision2D_get_normal\n  = unsafePerformIO $\n      withCString \"KinematicCollision2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The colliding body's shape's normal at the point of collision.\nget_normal ::\n             (KinematicCollision2D :< cls, Object :< cls) => cls -> IO Vector2\nget_normal cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicCollision2D_get_normal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision2D \"get_normal\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.KinematicCollision2D.get_normal\n\n{-# NOINLINE bindKinematicCollision2D_get_position #-}\n\n-- | The point of collision, in global coordinates.\nbindKinematicCollision2D_get_position :: MethodBind\nbindKinematicCollision2D_get_position\n  = unsafePerformIO $\n      withCString \"KinematicCollision2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The point of collision, in global coordinates.\nget_position ::\n               (KinematicCollision2D :< cls, Object :< cls) => cls -> IO Vector2\nget_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicCollision2D_get_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision2D \"get_position\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.KinematicCollision2D.get_position\n\n{-# NOINLINE bindKinematicCollision2D_get_remainder #-}\n\n-- | The moving object's remaining movement vector.\nbindKinematicCollision2D_get_remainder :: MethodBind\nbindKinematicCollision2D_get_remainder\n  = unsafePerformIO $\n      withCString \"KinematicCollision2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_remainder\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The moving object's remaining movement vector.\nget_remainder ::\n                (KinematicCollision2D :< cls, Object :< cls) => cls -> IO Vector2\nget_remainder cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicCollision2D_get_remainder\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision2D \"get_remainder\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.KinematicCollision2D.get_remainder\n\n{-# NOINLINE bindKinematicCollision2D_get_travel #-}\n\n-- | The distance the moving object traveled before collision.\nbindKinematicCollision2D_get_travel :: MethodBind\nbindKinematicCollision2D_get_travel\n  = unsafePerformIO $\n      withCString \"KinematicCollision2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_travel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance the moving object traveled before collision.\nget_travel ::\n             (KinematicCollision2D :< cls, Object :< cls) => cls -> IO Vector2\nget_travel cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindKinematicCollision2D_get_travel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod KinematicCollision2D \"get_travel\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.KinematicCollision2D.get_travel"
  },
  {
    "path": "src/Godot/Core/Label.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Label\n       (Godot.Core.Label._VALIGN_TOP, Godot.Core.Label._ALIGN_RIGHT,\n        Godot.Core.Label._ALIGN_FILL, Godot.Core.Label._VALIGN_FILL,\n        Godot.Core.Label._VALIGN_CENTER, Godot.Core.Label._VALIGN_BOTTOM,\n        Godot.Core.Label._ALIGN_LEFT, Godot.Core.Label._ALIGN_CENTER,\n        Godot.Core.Label.get_align, Godot.Core.Label.get_line_count,\n        Godot.Core.Label.get_line_height,\n        Godot.Core.Label.get_lines_skipped,\n        Godot.Core.Label.get_max_lines_visible,\n        Godot.Core.Label.get_percent_visible, Godot.Core.Label.get_text,\n        Godot.Core.Label.get_total_character_count,\n        Godot.Core.Label.get_valign,\n        Godot.Core.Label.get_visible_characters,\n        Godot.Core.Label.get_visible_line_count,\n        Godot.Core.Label.has_autowrap, Godot.Core.Label.is_clipping_text,\n        Godot.Core.Label.is_uppercase, Godot.Core.Label.set_align,\n        Godot.Core.Label.set_autowrap, Godot.Core.Label.set_clip_text,\n        Godot.Core.Label.set_lines_skipped,\n        Godot.Core.Label.set_max_lines_visible,\n        Godot.Core.Label.set_percent_visible, Godot.Core.Label.set_text,\n        Godot.Core.Label.set_uppercase, Godot.Core.Label.set_valign,\n        Godot.Core.Label.set_visible_characters)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()\n\n_VALIGN_TOP :: Int\n_VALIGN_TOP = 0\n\n_ALIGN_RIGHT :: Int\n_ALIGN_RIGHT = 2\n\n_ALIGN_FILL :: Int\n_ALIGN_FILL = 3\n\n_VALIGN_FILL :: Int\n_VALIGN_FILL = 3\n\n_VALIGN_CENTER :: Int\n_VALIGN_CENTER = 1\n\n_VALIGN_BOTTOM :: Int\n_VALIGN_BOTTOM = 2\n\n_ALIGN_LEFT :: Int\n_ALIGN_LEFT = 0\n\n_ALIGN_CENTER :: Int\n_ALIGN_CENTER = 1\n\ninstance NodeProperty Label \"align\" Int 'False where\n        nodeProperty = (get_align, wrapDroppingSetter set_align, Nothing)\n\ninstance NodeProperty Label \"autowrap\" Bool 'False where\n        nodeProperty\n          = (has_autowrap, wrapDroppingSetter set_autowrap, Nothing)\n\ninstance NodeProperty Label \"clip_text\" Bool 'False where\n        nodeProperty\n          = (is_clipping_text, wrapDroppingSetter set_clip_text, Nothing)\n\ninstance NodeProperty Label \"lines_skipped\" Int 'False where\n        nodeProperty\n          = (get_lines_skipped, wrapDroppingSetter set_lines_skipped,\n             Nothing)\n\ninstance NodeProperty Label \"max_lines_visible\" Int 'False where\n        nodeProperty\n          = (get_max_lines_visible, wrapDroppingSetter set_max_lines_visible,\n             Nothing)\n\ninstance NodeProperty Label \"percent_visible\" Float 'False where\n        nodeProperty\n          = (get_percent_visible, wrapDroppingSetter set_percent_visible,\n             Nothing)\n\ninstance NodeProperty Label \"text\" GodotString 'False where\n        nodeProperty = (get_text, wrapDroppingSetter set_text, Nothing)\n\ninstance NodeProperty Label \"uppercase\" Bool 'False where\n        nodeProperty\n          = (is_uppercase, wrapDroppingSetter set_uppercase, Nothing)\n\ninstance NodeProperty Label \"valign\" Int 'False where\n        nodeProperty = (get_valign, wrapDroppingSetter set_valign, Nothing)\n\ninstance NodeProperty Label \"visible_characters\" Int 'False where\n        nodeProperty\n          = (get_visible_characters,\n             wrapDroppingSetter set_visible_characters, Nothing)\n\n{-# NOINLINE bindLabel_get_align #-}\n\n-- | Controls the text's horizontal align. Supports left, center, right, and fill, or justify. Set it to one of the @enum Align@ constants.\nbindLabel_get_align :: MethodBind\nbindLabel_get_align\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"get_align\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls the text's horizontal align. Supports left, center, right, and fill, or justify. Set it to one of the @enum Align@ constants.\nget_align :: (Label :< cls, Object :< cls) => cls -> IO Int\nget_align cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_get_align (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"get_align\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Label.get_align\n\n{-# NOINLINE bindLabel_get_line_count #-}\n\n-- | Returns the amount of lines of text the Label has.\nbindLabel_get_line_count :: MethodBind\nbindLabel_get_line_count\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"get_line_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the amount of lines of text the Label has.\nget_line_count :: (Label :< cls, Object :< cls) => cls -> IO Int\nget_line_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_get_line_count (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"get_line_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Label.get_line_count\n\n{-# NOINLINE bindLabel_get_line_height #-}\n\n-- | Returns the font size in pixels.\nbindLabel_get_line_height :: MethodBind\nbindLabel_get_line_height\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"get_line_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the font size in pixels.\nget_line_height :: (Label :< cls, Object :< cls) => cls -> IO Int\nget_line_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_get_line_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"get_line_height\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Label.get_line_height\n\n{-# NOINLINE bindLabel_get_lines_skipped #-}\n\n-- | The node ignores the first @lines_skipped@ lines before it starts to display text.\nbindLabel_get_lines_skipped :: MethodBind\nbindLabel_get_lines_skipped\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"get_lines_skipped\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node ignores the first @lines_skipped@ lines before it starts to display text.\nget_lines_skipped :: (Label :< cls, Object :< cls) => cls -> IO Int\nget_lines_skipped cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_get_lines_skipped (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"get_lines_skipped\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Label.get_lines_skipped\n\n{-# NOINLINE bindLabel_get_max_lines_visible #-}\n\n-- | Limits the lines of text the node shows on screen.\nbindLabel_get_max_lines_visible :: MethodBind\nbindLabel_get_max_lines_visible\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"get_max_lines_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Limits the lines of text the node shows on screen.\nget_max_lines_visible ::\n                        (Label :< cls, Object :< cls) => cls -> IO Int\nget_max_lines_visible cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_get_max_lines_visible (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"get_max_lines_visible\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Label.get_max_lines_visible\n\n{-# NOINLINE bindLabel_get_percent_visible #-}\n\n-- | Limits the amount of visible characters. If you set @percent_visible@ to 0.5, only up to half of the text's characters will display on screen. Useful to animate the text in a dialog box.\nbindLabel_get_percent_visible :: MethodBind\nbindLabel_get_percent_visible\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"get_percent_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Limits the amount of visible characters. If you set @percent_visible@ to 0.5, only up to half of the text's characters will display on screen. Useful to animate the text in a dialog box.\nget_percent_visible ::\n                      (Label :< cls, Object :< cls) => cls -> IO Float\nget_percent_visible cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_get_percent_visible (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"get_percent_visible\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Label.get_percent_visible\n\n{-# NOINLINE bindLabel_get_text #-}\n\n-- | The text to display on screen.\nbindLabel_get_text :: MethodBind\nbindLabel_get_text\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"get_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The text to display on screen.\nget_text :: (Label :< cls, Object :< cls) => cls -> IO GodotString\nget_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_get_text (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"get_text\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.Label.get_text\n\n{-# NOINLINE bindLabel_get_total_character_count #-}\n\n-- | Returns the total number of printable characters in the text (excluding spaces and newlines).\nbindLabel_get_total_character_count :: MethodBind\nbindLabel_get_total_character_count\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"get_total_character_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the total number of printable characters in the text (excluding spaces and newlines).\nget_total_character_count ::\n                            (Label :< cls, Object :< cls) => cls -> IO Int\nget_total_character_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_get_total_character_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"get_total_character_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Label.get_total_character_count\n\n{-# NOINLINE bindLabel_get_valign #-}\n\n-- | Controls the text's vertical align. Supports top, center, bottom, and fill. Set it to one of the @enum VAlign@ constants.\nbindLabel_get_valign :: MethodBind\nbindLabel_get_valign\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"get_valign\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls the text's vertical align. Supports top, center, bottom, and fill. Set it to one of the @enum VAlign@ constants.\nget_valign :: (Label :< cls, Object :< cls) => cls -> IO Int\nget_valign cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_get_valign (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"get_valign\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Label.get_valign\n\n{-# NOINLINE bindLabel_get_visible_characters #-}\n\n-- | Restricts the number of characters to display. Set to -1 to disable.\nbindLabel_get_visible_characters :: MethodBind\nbindLabel_get_visible_characters\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"get_visible_characters\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Restricts the number of characters to display. Set to -1 to disable.\nget_visible_characters ::\n                         (Label :< cls, Object :< cls) => cls -> IO Int\nget_visible_characters cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_get_visible_characters\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"get_visible_characters\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Label.get_visible_characters\n\n{-# NOINLINE bindLabel_get_visible_line_count #-}\n\n-- | Returns the number of lines shown. Useful if the @Label@'s height cannot currently display all lines.\nbindLabel_get_visible_line_count :: MethodBind\nbindLabel_get_visible_line_count\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"get_visible_line_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of lines shown. Useful if the @Label@'s height cannot currently display all lines.\nget_visible_line_count ::\n                         (Label :< cls, Object :< cls) => cls -> IO Int\nget_visible_line_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_get_visible_line_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"get_visible_line_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Label.get_visible_line_count\n\n{-# NOINLINE bindLabel_has_autowrap #-}\n\n-- | If @true@, wraps the text inside the node's bounding rectangle. If you resize the node, it will change its height automatically to show all the text.\nbindLabel_has_autowrap :: MethodBind\nbindLabel_has_autowrap\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"has_autowrap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, wraps the text inside the node's bounding rectangle. If you resize the node, it will change its height automatically to show all the text.\nhas_autowrap :: (Label :< cls, Object :< cls) => cls -> IO Bool\nhas_autowrap cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_has_autowrap (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"has_autowrap\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Label.has_autowrap\n\n{-# NOINLINE bindLabel_is_clipping_text #-}\n\n-- | If @true@, the Label only shows the text that fits inside its bounding rectangle. It also lets you scale the node down freely.\nbindLabel_is_clipping_text :: MethodBind\nbindLabel_is_clipping_text\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"is_clipping_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the Label only shows the text that fits inside its bounding rectangle. It also lets you scale the node down freely.\nis_clipping_text :: (Label :< cls, Object :< cls) => cls -> IO Bool\nis_clipping_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_is_clipping_text (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"is_clipping_text\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Label.is_clipping_text\n\n{-# NOINLINE bindLabel_is_uppercase #-}\n\n-- | If @true@, all the text displays as UPPERCASE.\nbindLabel_is_uppercase :: MethodBind\nbindLabel_is_uppercase\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"is_uppercase\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, all the text displays as UPPERCASE.\nis_uppercase :: (Label :< cls, Object :< cls) => cls -> IO Bool\nis_uppercase cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_is_uppercase (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"is_uppercase\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Label.is_uppercase\n\n{-# NOINLINE bindLabel_set_align #-}\n\n-- | Controls the text's horizontal align. Supports left, center, right, and fill, or justify. Set it to one of the @enum Align@ constants.\nbindLabel_set_align :: MethodBind\nbindLabel_set_align\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"set_align\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls the text's horizontal align. Supports left, center, right, and fill, or justify. Set it to one of the @enum Align@ constants.\nset_align :: (Label :< cls, Object :< cls) => cls -> Int -> IO ()\nset_align cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_set_align (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"set_align\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Label.set_align\n\n{-# NOINLINE bindLabel_set_autowrap #-}\n\n-- | If @true@, wraps the text inside the node's bounding rectangle. If you resize the node, it will change its height automatically to show all the text.\nbindLabel_set_autowrap :: MethodBind\nbindLabel_set_autowrap\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"set_autowrap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, wraps the text inside the node's bounding rectangle. If you resize the node, it will change its height automatically to show all the text.\nset_autowrap ::\n               (Label :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_autowrap cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_set_autowrap (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"set_autowrap\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Label.set_autowrap\n\n{-# NOINLINE bindLabel_set_clip_text #-}\n\n-- | If @true@, the Label only shows the text that fits inside its bounding rectangle. It also lets you scale the node down freely.\nbindLabel_set_clip_text :: MethodBind\nbindLabel_set_clip_text\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"set_clip_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the Label only shows the text that fits inside its bounding rectangle. It also lets you scale the node down freely.\nset_clip_text ::\n                (Label :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_clip_text cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_set_clip_text (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"set_clip_text\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Label.set_clip_text\n\n{-# NOINLINE bindLabel_set_lines_skipped #-}\n\n-- | The node ignores the first @lines_skipped@ lines before it starts to display text.\nbindLabel_set_lines_skipped :: MethodBind\nbindLabel_set_lines_skipped\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"set_lines_skipped\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node ignores the first @lines_skipped@ lines before it starts to display text.\nset_lines_skipped ::\n                    (Label :< cls, Object :< cls) => cls -> Int -> IO ()\nset_lines_skipped cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_set_lines_skipped (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"set_lines_skipped\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Label.set_lines_skipped\n\n{-# NOINLINE bindLabel_set_max_lines_visible #-}\n\n-- | Limits the lines of text the node shows on screen.\nbindLabel_set_max_lines_visible :: MethodBind\nbindLabel_set_max_lines_visible\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"set_max_lines_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Limits the lines of text the node shows on screen.\nset_max_lines_visible ::\n                        (Label :< cls, Object :< cls) => cls -> Int -> IO ()\nset_max_lines_visible cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_set_max_lines_visible (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"set_max_lines_visible\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Label.set_max_lines_visible\n\n{-# NOINLINE bindLabel_set_percent_visible #-}\n\n-- | Limits the amount of visible characters. If you set @percent_visible@ to 0.5, only up to half of the text's characters will display on screen. Useful to animate the text in a dialog box.\nbindLabel_set_percent_visible :: MethodBind\nbindLabel_set_percent_visible\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"set_percent_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Limits the amount of visible characters. If you set @percent_visible@ to 0.5, only up to half of the text's characters will display on screen. Useful to animate the text in a dialog box.\nset_percent_visible ::\n                      (Label :< cls, Object :< cls) => cls -> Float -> IO ()\nset_percent_visible cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_set_percent_visible (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"set_percent_visible\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Label.set_percent_visible\n\n{-# NOINLINE bindLabel_set_text #-}\n\n-- | The text to display on screen.\nbindLabel_set_text :: MethodBind\nbindLabel_set_text\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"set_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The text to display on screen.\nset_text ::\n           (Label :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_text cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_set_text (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"set_text\" '[GodotString] (IO ()) where\n        nodeMethod = Godot.Core.Label.set_text\n\n{-# NOINLINE bindLabel_set_uppercase #-}\n\n-- | If @true@, all the text displays as UPPERCASE.\nbindLabel_set_uppercase :: MethodBind\nbindLabel_set_uppercase\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"set_uppercase\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, all the text displays as UPPERCASE.\nset_uppercase ::\n                (Label :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_uppercase cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_set_uppercase (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"set_uppercase\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Label.set_uppercase\n\n{-# NOINLINE bindLabel_set_valign #-}\n\n-- | Controls the text's vertical align. Supports top, center, bottom, and fill. Set it to one of the @enum VAlign@ constants.\nbindLabel_set_valign :: MethodBind\nbindLabel_set_valign\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"set_valign\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls the text's vertical align. Supports top, center, bottom, and fill. Set it to one of the @enum VAlign@ constants.\nset_valign :: (Label :< cls, Object :< cls) => cls -> Int -> IO ()\nset_valign cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_set_valign (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"set_valign\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Label.set_valign\n\n{-# NOINLINE bindLabel_set_visible_characters #-}\n\n-- | Restricts the number of characters to display. Set to -1 to disable.\nbindLabel_set_visible_characters :: MethodBind\nbindLabel_set_visible_characters\n  = unsafePerformIO $\n      withCString \"Label\" $\n        \\ clsNamePtr ->\n          withCString \"set_visible_characters\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Restricts the number of characters to display. Set to -1 to disable.\nset_visible_characters ::\n                         (Label :< cls, Object :< cls) => cls -> Int -> IO ()\nset_visible_characters cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLabel_set_visible_characters\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Label \"set_visible_characters\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Label.set_visible_characters"
  },
  {
    "path": "src/Godot/Core/LargeTexture.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.LargeTexture\n       (Godot.Core.LargeTexture._get_data,\n        Godot.Core.LargeTexture._set_data,\n        Godot.Core.LargeTexture.add_piece, Godot.Core.LargeTexture.clear,\n        Godot.Core.LargeTexture.get_piece_count,\n        Godot.Core.LargeTexture.get_piece_offset,\n        Godot.Core.LargeTexture.get_piece_texture,\n        Godot.Core.LargeTexture.set_piece_offset,\n        Godot.Core.LargeTexture.set_piece_texture,\n        Godot.Core.LargeTexture.set_size)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Texture()\n\ninstance NodeProperty LargeTexture \"_data\" Array 'False where\n        nodeProperty = (_get_data, wrapDroppingSetter _set_data, Nothing)\n\n{-# NOINLINE bindLargeTexture__get_data #-}\n\nbindLargeTexture__get_data :: MethodBind\nbindLargeTexture__get_data\n  = unsafePerformIO $\n      withCString \"LargeTexture\" $\n        \\ clsNamePtr ->\n          withCString \"_get_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_data ::\n            (LargeTexture :< cls, Object :< cls) => cls -> IO Array\n_get_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLargeTexture__get_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LargeTexture \"_get_data\" '[] (IO Array) where\n        nodeMethod = Godot.Core.LargeTexture._get_data\n\n{-# NOINLINE bindLargeTexture__set_data #-}\n\nbindLargeTexture__set_data :: MethodBind\nbindLargeTexture__set_data\n  = unsafePerformIO $\n      withCString \"LargeTexture\" $\n        \\ clsNamePtr ->\n          withCString \"_set_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_data ::\n            (LargeTexture :< cls, Object :< cls) => cls -> Array -> IO ()\n_set_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLargeTexture__set_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LargeTexture \"_set_data\" '[Array] (IO ()) where\n        nodeMethod = Godot.Core.LargeTexture._set_data\n\n{-# NOINLINE bindLargeTexture_add_piece #-}\n\n-- | Adds @texture@ to this @LargeTexture@, starting on offset @ofs@.\nbindLargeTexture_add_piece :: MethodBind\nbindLargeTexture_add_piece\n  = unsafePerformIO $\n      withCString \"LargeTexture\" $\n        \\ clsNamePtr ->\n          withCString \"add_piece\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds @texture@ to this @LargeTexture@, starting on offset @ofs@.\nadd_piece ::\n            (LargeTexture :< cls, Object :< cls) =>\n            cls -> Vector2 -> Texture -> IO Int\nadd_piece cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLargeTexture_add_piece (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LargeTexture \"add_piece\" '[Vector2, Texture]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.LargeTexture.add_piece\n\n{-# NOINLINE bindLargeTexture_clear #-}\n\n-- | Clears the @LargeTexture@.\nbindLargeTexture_clear :: MethodBind\nbindLargeTexture_clear\n  = unsafePerformIO $\n      withCString \"LargeTexture\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears the @LargeTexture@.\nclear :: (LargeTexture :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLargeTexture_clear (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LargeTexture \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.LargeTexture.clear\n\n{-# NOINLINE bindLargeTexture_get_piece_count #-}\n\n-- | Returns the number of pieces currently in this @LargeTexture@.\nbindLargeTexture_get_piece_count :: MethodBind\nbindLargeTexture_get_piece_count\n  = unsafePerformIO $\n      withCString \"LargeTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_piece_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of pieces currently in this @LargeTexture@.\nget_piece_count ::\n                  (LargeTexture :< cls, Object :< cls) => cls -> IO Int\nget_piece_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLargeTexture_get_piece_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LargeTexture \"get_piece_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.LargeTexture.get_piece_count\n\n{-# NOINLINE bindLargeTexture_get_piece_offset #-}\n\n-- | Returns the offset of the piece with the index @idx@.\nbindLargeTexture_get_piece_offset :: MethodBind\nbindLargeTexture_get_piece_offset\n  = unsafePerformIO $\n      withCString \"LargeTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_piece_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the offset of the piece with the index @idx@.\nget_piece_offset ::\n                   (LargeTexture :< cls, Object :< cls) => cls -> Int -> IO Vector2\nget_piece_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLargeTexture_get_piece_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LargeTexture \"get_piece_offset\" '[Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.LargeTexture.get_piece_offset\n\n{-# NOINLINE bindLargeTexture_get_piece_texture #-}\n\n-- | Returns the @Texture@ of the piece with the index @idx@.\nbindLargeTexture_get_piece_texture :: MethodBind\nbindLargeTexture_get_piece_texture\n  = unsafePerformIO $\n      withCString \"LargeTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_piece_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Texture@ of the piece with the index @idx@.\nget_piece_texture ::\n                    (LargeTexture :< cls, Object :< cls) => cls -> Int -> IO Texture\nget_piece_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLargeTexture_get_piece_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LargeTexture \"get_piece_texture\" '[Int]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.LargeTexture.get_piece_texture\n\n{-# NOINLINE bindLargeTexture_set_piece_offset #-}\n\n-- | Sets the offset of the piece with the index @idx@ to @ofs@.\nbindLargeTexture_set_piece_offset :: MethodBind\nbindLargeTexture_set_piece_offset\n  = unsafePerformIO $\n      withCString \"LargeTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_piece_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the offset of the piece with the index @idx@ to @ofs@.\nset_piece_offset ::\n                   (LargeTexture :< cls, Object :< cls) =>\n                   cls -> Int -> Vector2 -> IO ()\nset_piece_offset cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLargeTexture_set_piece_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LargeTexture \"set_piece_offset\" '[Int, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.LargeTexture.set_piece_offset\n\n{-# NOINLINE bindLargeTexture_set_piece_texture #-}\n\n-- | Sets the @Texture@ of the piece with index @idx@ to @texture@.\nbindLargeTexture_set_piece_texture :: MethodBind\nbindLargeTexture_set_piece_texture\n  = unsafePerformIO $\n      withCString \"LargeTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_piece_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Texture@ of the piece with index @idx@ to @texture@.\nset_piece_texture ::\n                    (LargeTexture :< cls, Object :< cls) =>\n                    cls -> Int -> Texture -> IO ()\nset_piece_texture cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLargeTexture_set_piece_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LargeTexture \"set_piece_texture\"\n           '[Int, Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.LargeTexture.set_piece_texture\n\n{-# NOINLINE bindLargeTexture_set_size #-}\n\n-- | Sets the size of this @LargeTexture@.\nbindLargeTexture_set_size :: MethodBind\nbindLargeTexture_set_size\n  = unsafePerformIO $\n      withCString \"LargeTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the size of this @LargeTexture@.\nset_size ::\n           (LargeTexture :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLargeTexture_set_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LargeTexture \"set_size\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.LargeTexture.set_size"
  },
  {
    "path": "src/Godot/Core/Light.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Light\n       (Godot.Core.Light._PARAM_SHADOW_NORMAL_BIAS,\n        Godot.Core.Light._PARAM_SHADOW_SPLIT_2_OFFSET,\n        Godot.Core.Light._PARAM_SPECULAR,\n        Godot.Core.Light._PARAM_SHADOW_SPLIT_1_OFFSET,\n        Godot.Core.Light._PARAM_INDIRECT_ENERGY,\n        Godot.Core.Light._PARAM_RANGE,\n        Godot.Core.Light._PARAM_SPOT_ATTENUATION,\n        Godot.Core.Light._PARAM_SHADOW_MAX_DISTANCE,\n        Godot.Core.Light._PARAM_MAX,\n        Godot.Core.Light._PARAM_SHADOW_BIAS_SPLIT_SCALE,\n        Godot.Core.Light._BAKE_DISABLED,\n        Godot.Core.Light._PARAM_ATTENUATION,\n        Godot.Core.Light._PARAM_ENERGY,\n        Godot.Core.Light._PARAM_SHADOW_SPLIT_3_OFFSET,\n        Godot.Core.Light._BAKE_INDIRECT,\n        Godot.Core.Light._PARAM_SHADOW_BIAS, Godot.Core.Light._BAKE_ALL,\n        Godot.Core.Light._PARAM_CONTACT_SHADOW_SIZE,\n        Godot.Core.Light._PARAM_SPOT_ANGLE, Godot.Core.Light.get_bake_mode,\n        Godot.Core.Light.get_color, Godot.Core.Light.get_cull_mask,\n        Godot.Core.Light.get_param, Godot.Core.Light.get_shadow_color,\n        Godot.Core.Light.get_shadow_reverse_cull_face,\n        Godot.Core.Light.has_shadow, Godot.Core.Light.is_editor_only,\n        Godot.Core.Light.is_negative, Godot.Core.Light.set_bake_mode,\n        Godot.Core.Light.set_color, Godot.Core.Light.set_cull_mask,\n        Godot.Core.Light.set_editor_only, Godot.Core.Light.set_negative,\n        Godot.Core.Light.set_param, Godot.Core.Light.set_shadow,\n        Godot.Core.Light.set_shadow_color,\n        Godot.Core.Light.set_shadow_reverse_cull_face)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualInstance()\n\n_PARAM_SHADOW_NORMAL_BIAS :: Int\n_PARAM_SHADOW_NORMAL_BIAS = 12\n\n_PARAM_SHADOW_SPLIT_2_OFFSET :: Int\n_PARAM_SHADOW_SPLIT_2_OFFSET = 10\n\n_PARAM_SPECULAR :: Int\n_PARAM_SPECULAR = 2\n\n_PARAM_SHADOW_SPLIT_1_OFFSET :: Int\n_PARAM_SHADOW_SPLIT_1_OFFSET = 9\n\n_PARAM_INDIRECT_ENERGY :: Int\n_PARAM_INDIRECT_ENERGY = 1\n\n_PARAM_RANGE :: Int\n_PARAM_RANGE = 3\n\n_PARAM_SPOT_ATTENUATION :: Int\n_PARAM_SPOT_ATTENUATION = 6\n\n_PARAM_SHADOW_MAX_DISTANCE :: Int\n_PARAM_SHADOW_MAX_DISTANCE = 8\n\n_PARAM_MAX :: Int\n_PARAM_MAX = 15\n\n_PARAM_SHADOW_BIAS_SPLIT_SCALE :: Int\n_PARAM_SHADOW_BIAS_SPLIT_SCALE = 14\n\n_BAKE_DISABLED :: Int\n_BAKE_DISABLED = 0\n\n_PARAM_ATTENUATION :: Int\n_PARAM_ATTENUATION = 4\n\n_PARAM_ENERGY :: Int\n_PARAM_ENERGY = 0\n\n_PARAM_SHADOW_SPLIT_3_OFFSET :: Int\n_PARAM_SHADOW_SPLIT_3_OFFSET = 11\n\n_BAKE_INDIRECT :: Int\n_BAKE_INDIRECT = 1\n\n_PARAM_SHADOW_BIAS :: Int\n_PARAM_SHADOW_BIAS = 13\n\n_BAKE_ALL :: Int\n_BAKE_ALL = 2\n\n_PARAM_CONTACT_SHADOW_SIZE :: Int\n_PARAM_CONTACT_SHADOW_SIZE = 7\n\n_PARAM_SPOT_ANGLE :: Int\n_PARAM_SPOT_ANGLE = 5\n\ninstance NodeProperty Light \"editor_only\" Bool 'False where\n        nodeProperty\n          = (is_editor_only, wrapDroppingSetter set_editor_only, Nothing)\n\ninstance NodeProperty Light \"light_bake_mode\" Int 'False where\n        nodeProperty\n          = (get_bake_mode, wrapDroppingSetter set_bake_mode, Nothing)\n\ninstance NodeProperty Light \"light_color\" Color 'False where\n        nodeProperty = (get_color, wrapDroppingSetter set_color, Nothing)\n\ninstance NodeProperty Light \"light_cull_mask\" Int 'False where\n        nodeProperty\n          = (get_cull_mask, wrapDroppingSetter set_cull_mask, Nothing)\n\ninstance NodeProperty Light \"light_energy\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_param, wrapIndexedSetter 0 set_param,\n             Nothing)\n\ninstance NodeProperty Light \"light_indirect_energy\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_param, wrapIndexedSetter 1 set_param,\n             Nothing)\n\ninstance NodeProperty Light \"light_negative\" Bool 'False where\n        nodeProperty\n          = (is_negative, wrapDroppingSetter set_negative, Nothing)\n\ninstance NodeProperty Light \"light_specular\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_param, wrapIndexedSetter 2 set_param,\n             Nothing)\n\ninstance NodeProperty Light \"shadow_bias\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 13 get_param, wrapIndexedSetter 13 set_param,\n             Nothing)\n\ninstance NodeProperty Light \"shadow_color\" Color 'False where\n        nodeProperty\n          = (get_shadow_color, wrapDroppingSetter set_shadow_color, Nothing)\n\ninstance NodeProperty Light \"shadow_contact\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_param, wrapIndexedSetter 7 set_param,\n             Nothing)\n\ninstance NodeProperty Light \"shadow_enabled\" Bool 'False where\n        nodeProperty = (has_shadow, wrapDroppingSetter set_shadow, Nothing)\n\ninstance NodeProperty Light \"shadow_reverse_cull_face\" Bool 'False\n         where\n        nodeProperty\n          = (get_shadow_reverse_cull_face,\n             wrapDroppingSetter set_shadow_reverse_cull_face, Nothing)\n\n{-# NOINLINE bindLight_get_bake_mode #-}\n\n-- | The light's bake mode. See @enum BakeMode@.\nbindLight_get_bake_mode :: MethodBind\nbindLight_get_bake_mode\n  = unsafePerformIO $\n      withCString \"Light\" $\n        \\ clsNamePtr ->\n          withCString \"get_bake_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The light's bake mode. See @enum BakeMode@.\nget_bake_mode :: (Light :< cls, Object :< cls) => cls -> IO Int\nget_bake_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight_get_bake_mode (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light \"get_bake_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Light.get_bake_mode\n\n{-# NOINLINE bindLight_get_color #-}\n\n-- | The light's color. An @i@overbright@/i@ color can be used to achieve a result equivalent to increasing the light's @light_energy@.\nbindLight_get_color :: MethodBind\nbindLight_get_color\n  = unsafePerformIO $\n      withCString \"Light\" $\n        \\ clsNamePtr ->\n          withCString \"get_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The light's color. An @i@overbright@/i@ color can be used to achieve a result equivalent to increasing the light's @light_energy@.\nget_color :: (Light :< cls, Object :< cls) => cls -> IO Color\nget_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight_get_color (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light \"get_color\" '[] (IO Color) where\n        nodeMethod = Godot.Core.Light.get_color\n\n{-# NOINLINE bindLight_get_cull_mask #-}\n\n-- | The light will affect objects in the selected layers.\nbindLight_get_cull_mask :: MethodBind\nbindLight_get_cull_mask\n  = unsafePerformIO $\n      withCString \"Light\" $\n        \\ clsNamePtr ->\n          withCString \"get_cull_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The light will affect objects in the selected layers.\nget_cull_mask :: (Light :< cls, Object :< cls) => cls -> IO Int\nget_cull_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight_get_cull_mask (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light \"get_cull_mask\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Light.get_cull_mask\n\n{-# NOINLINE bindLight_get_param #-}\n\n-- | Returns the value of the specified @enum Light.Param@ parameter.\nbindLight_get_param :: MethodBind\nbindLight_get_param\n  = unsafePerformIO $\n      withCString \"Light\" $\n        \\ clsNamePtr ->\n          withCString \"get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of the specified @enum Light.Param@ parameter.\nget_param ::\n            (Light :< cls, Object :< cls) => cls -> Int -> IO Float\nget_param cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight_get_param (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light \"get_param\" '[Int] (IO Float) where\n        nodeMethod = Godot.Core.Light.get_param\n\n{-# NOINLINE bindLight_get_shadow_color #-}\n\n-- | The color of shadows cast by this light.\nbindLight_get_shadow_color :: MethodBind\nbindLight_get_shadow_color\n  = unsafePerformIO $\n      withCString \"Light\" $\n        \\ clsNamePtr ->\n          withCString \"get_shadow_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The color of shadows cast by this light.\nget_shadow_color ::\n                   (Light :< cls, Object :< cls) => cls -> IO Color\nget_shadow_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight_get_shadow_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light \"get_shadow_color\" '[] (IO Color) where\n        nodeMethod = Godot.Core.Light.get_shadow_color\n\n{-# NOINLINE bindLight_get_shadow_reverse_cull_face #-}\n\n-- | If @true@, reverses the backface culling of the mesh. This can be useful when you have a flat mesh that has a light behind it. If you need to cast a shadow on both sides of the mesh, set the mesh to use double-sided shadows with @GeometryInstance.SHADOW_CASTING_SETTING_DOUBLE_SIDED@.\nbindLight_get_shadow_reverse_cull_face :: MethodBind\nbindLight_get_shadow_reverse_cull_face\n  = unsafePerformIO $\n      withCString \"Light\" $\n        \\ clsNamePtr ->\n          withCString \"get_shadow_reverse_cull_face\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, reverses the backface culling of the mesh. This can be useful when you have a flat mesh that has a light behind it. If you need to cast a shadow on both sides of the mesh, set the mesh to use double-sided shadows with @GeometryInstance.SHADOW_CASTING_SETTING_DOUBLE_SIDED@.\nget_shadow_reverse_cull_face ::\n                               (Light :< cls, Object :< cls) => cls -> IO Bool\nget_shadow_reverse_cull_face cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight_get_shadow_reverse_cull_face\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light \"get_shadow_reverse_cull_face\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Light.get_shadow_reverse_cull_face\n\n{-# NOINLINE bindLight_has_shadow #-}\n\n-- | If @true@, the light will cast shadows.\nbindLight_has_shadow :: MethodBind\nbindLight_has_shadow\n  = unsafePerformIO $\n      withCString \"Light\" $\n        \\ clsNamePtr ->\n          withCString \"has_shadow\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the light will cast shadows.\nhas_shadow :: (Light :< cls, Object :< cls) => cls -> IO Bool\nhas_shadow cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight_has_shadow (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light \"has_shadow\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Light.has_shadow\n\n{-# NOINLINE bindLight_is_editor_only #-}\n\n-- | If @true@, the light only appears in the editor and will not be visible at runtime.\nbindLight_is_editor_only :: MethodBind\nbindLight_is_editor_only\n  = unsafePerformIO $\n      withCString \"Light\" $\n        \\ clsNamePtr ->\n          withCString \"is_editor_only\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the light only appears in the editor and will not be visible at runtime.\nis_editor_only :: (Light :< cls, Object :< cls) => cls -> IO Bool\nis_editor_only cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight_is_editor_only (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light \"is_editor_only\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Light.is_editor_only\n\n{-# NOINLINE bindLight_is_negative #-}\n\n-- | If @true@, the light's effect is reversed, darkening areas and casting bright shadows.\nbindLight_is_negative :: MethodBind\nbindLight_is_negative\n  = unsafePerformIO $\n      withCString \"Light\" $\n        \\ clsNamePtr ->\n          withCString \"is_negative\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the light's effect is reversed, darkening areas and casting bright shadows.\nis_negative :: (Light :< cls, Object :< cls) => cls -> IO Bool\nis_negative cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight_is_negative (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light \"is_negative\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Light.is_negative\n\n{-# NOINLINE bindLight_set_bake_mode #-}\n\n-- | The light's bake mode. See @enum BakeMode@.\nbindLight_set_bake_mode :: MethodBind\nbindLight_set_bake_mode\n  = unsafePerformIO $\n      withCString \"Light\" $\n        \\ clsNamePtr ->\n          withCString \"set_bake_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The light's bake mode. See @enum BakeMode@.\nset_bake_mode ::\n                (Light :< cls, Object :< cls) => cls -> Int -> IO ()\nset_bake_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight_set_bake_mode (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light \"set_bake_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Light.set_bake_mode\n\n{-# NOINLINE bindLight_set_color #-}\n\n-- | The light's color. An @i@overbright@/i@ color can be used to achieve a result equivalent to increasing the light's @light_energy@.\nbindLight_set_color :: MethodBind\nbindLight_set_color\n  = unsafePerformIO $\n      withCString \"Light\" $\n        \\ clsNamePtr ->\n          withCString \"set_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The light's color. An @i@overbright@/i@ color can be used to achieve a result equivalent to increasing the light's @light_energy@.\nset_color :: (Light :< cls, Object :< cls) => cls -> Color -> IO ()\nset_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight_set_color (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light \"set_color\" '[Color] (IO ()) where\n        nodeMethod = Godot.Core.Light.set_color\n\n{-# NOINLINE bindLight_set_cull_mask #-}\n\n-- | The light will affect objects in the selected layers.\nbindLight_set_cull_mask :: MethodBind\nbindLight_set_cull_mask\n  = unsafePerformIO $\n      withCString \"Light\" $\n        \\ clsNamePtr ->\n          withCString \"set_cull_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The light will affect objects in the selected layers.\nset_cull_mask ::\n                (Light :< cls, Object :< cls) => cls -> Int -> IO ()\nset_cull_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight_set_cull_mask (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light \"set_cull_mask\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Light.set_cull_mask\n\n{-# NOINLINE bindLight_set_editor_only #-}\n\n-- | If @true@, the light only appears in the editor and will not be visible at runtime.\nbindLight_set_editor_only :: MethodBind\nbindLight_set_editor_only\n  = unsafePerformIO $\n      withCString \"Light\" $\n        \\ clsNamePtr ->\n          withCString \"set_editor_only\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the light only appears in the editor and will not be visible at runtime.\nset_editor_only ::\n                  (Light :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_editor_only cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight_set_editor_only (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light \"set_editor_only\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Light.set_editor_only\n\n{-# NOINLINE bindLight_set_negative #-}\n\n-- | If @true@, the light's effect is reversed, darkening areas and casting bright shadows.\nbindLight_set_negative :: MethodBind\nbindLight_set_negative\n  = unsafePerformIO $\n      withCString \"Light\" $\n        \\ clsNamePtr ->\n          withCString \"set_negative\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the light's effect is reversed, darkening areas and casting bright shadows.\nset_negative ::\n               (Light :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_negative cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight_set_negative (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light \"set_negative\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Light.set_negative\n\n{-# NOINLINE bindLight_set_param #-}\n\n-- | Sets the value of the specified @enum Light.Param@ parameter.\nbindLight_set_param :: MethodBind\nbindLight_set_param\n  = unsafePerformIO $\n      withCString \"Light\" $\n        \\ clsNamePtr ->\n          withCString \"set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the value of the specified @enum Light.Param@ parameter.\nset_param ::\n            (Light :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\nset_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight_set_param (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light \"set_param\" '[Int, Float] (IO ()) where\n        nodeMethod = Godot.Core.Light.set_param\n\n{-# NOINLINE bindLight_set_shadow #-}\n\n-- | If @true@, the light will cast shadows.\nbindLight_set_shadow :: MethodBind\nbindLight_set_shadow\n  = unsafePerformIO $\n      withCString \"Light\" $\n        \\ clsNamePtr ->\n          withCString \"set_shadow\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the light will cast shadows.\nset_shadow :: (Light :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_shadow cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight_set_shadow (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light \"set_shadow\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Light.set_shadow\n\n{-# NOINLINE bindLight_set_shadow_color #-}\n\n-- | The color of shadows cast by this light.\nbindLight_set_shadow_color :: MethodBind\nbindLight_set_shadow_color\n  = unsafePerformIO $\n      withCString \"Light\" $\n        \\ clsNamePtr ->\n          withCString \"set_shadow_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The color of shadows cast by this light.\nset_shadow_color ::\n                   (Light :< cls, Object :< cls) => cls -> Color -> IO ()\nset_shadow_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight_set_shadow_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light \"set_shadow_color\" '[Color] (IO ()) where\n        nodeMethod = Godot.Core.Light.set_shadow_color\n\n{-# NOINLINE bindLight_set_shadow_reverse_cull_face #-}\n\n-- | If @true@, reverses the backface culling of the mesh. This can be useful when you have a flat mesh that has a light behind it. If you need to cast a shadow on both sides of the mesh, set the mesh to use double-sided shadows with @GeometryInstance.SHADOW_CASTING_SETTING_DOUBLE_SIDED@.\nbindLight_set_shadow_reverse_cull_face :: MethodBind\nbindLight_set_shadow_reverse_cull_face\n  = unsafePerformIO $\n      withCString \"Light\" $\n        \\ clsNamePtr ->\n          withCString \"set_shadow_reverse_cull_face\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, reverses the backface culling of the mesh. This can be useful when you have a flat mesh that has a light behind it. If you need to cast a shadow on both sides of the mesh, set the mesh to use double-sided shadows with @GeometryInstance.SHADOW_CASTING_SETTING_DOUBLE_SIDED@.\nset_shadow_reverse_cull_face ::\n                               (Light :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_shadow_reverse_cull_face cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight_set_shadow_reverse_cull_face\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light \"set_shadow_reverse_cull_face\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Light.set_shadow_reverse_cull_face"
  },
  {
    "path": "src/Godot/Core/Light2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Light2D\n       (Godot.Core.Light2D._SHADOW_FILTER_PCF7,\n        Godot.Core.Light2D._MODE_ADD, Godot.Core.Light2D._MODE_SUB,\n        Godot.Core.Light2D._SHADOW_FILTER_PCF5,\n        Godot.Core.Light2D._SHADOW_FILTER_NONE,\n        Godot.Core.Light2D._SHADOW_FILTER_PCF9,\n        Godot.Core.Light2D._MODE_MASK, Godot.Core.Light2D._MODE_MIX,\n        Godot.Core.Light2D._SHADOW_FILTER_PCF3,\n        Godot.Core.Light2D._SHADOW_FILTER_PCF13,\n        Godot.Core.Light2D.get_color, Godot.Core.Light2D.get_energy,\n        Godot.Core.Light2D.get_height,\n        Godot.Core.Light2D.get_item_cull_mask,\n        Godot.Core.Light2D.get_item_shadow_cull_mask,\n        Godot.Core.Light2D.get_layer_range_max,\n        Godot.Core.Light2D.get_layer_range_min,\n        Godot.Core.Light2D.get_mode,\n        Godot.Core.Light2D.get_shadow_buffer_size,\n        Godot.Core.Light2D.get_shadow_color,\n        Godot.Core.Light2D.get_shadow_filter,\n        Godot.Core.Light2D.get_shadow_gradient_length,\n        Godot.Core.Light2D.get_shadow_smooth,\n        Godot.Core.Light2D.get_texture,\n        Godot.Core.Light2D.get_texture_offset,\n        Godot.Core.Light2D.get_texture_scale,\n        Godot.Core.Light2D.get_z_range_max,\n        Godot.Core.Light2D.get_z_range_min,\n        Godot.Core.Light2D.is_editor_only, Godot.Core.Light2D.is_enabled,\n        Godot.Core.Light2D.is_shadow_enabled, Godot.Core.Light2D.set_color,\n        Godot.Core.Light2D.set_editor_only, Godot.Core.Light2D.set_enabled,\n        Godot.Core.Light2D.set_energy, Godot.Core.Light2D.set_height,\n        Godot.Core.Light2D.set_item_cull_mask,\n        Godot.Core.Light2D.set_item_shadow_cull_mask,\n        Godot.Core.Light2D.set_layer_range_max,\n        Godot.Core.Light2D.set_layer_range_min,\n        Godot.Core.Light2D.set_mode,\n        Godot.Core.Light2D.set_shadow_buffer_size,\n        Godot.Core.Light2D.set_shadow_color,\n        Godot.Core.Light2D.set_shadow_enabled,\n        Godot.Core.Light2D.set_shadow_filter,\n        Godot.Core.Light2D.set_shadow_gradient_length,\n        Godot.Core.Light2D.set_shadow_smooth,\n        Godot.Core.Light2D.set_texture,\n        Godot.Core.Light2D.set_texture_offset,\n        Godot.Core.Light2D.set_texture_scale,\n        Godot.Core.Light2D.set_z_range_max,\n        Godot.Core.Light2D.set_z_range_min)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\n_SHADOW_FILTER_PCF7 :: Int\n_SHADOW_FILTER_PCF7 = 3\n\n_MODE_ADD :: Int\n_MODE_ADD = 0\n\n_MODE_SUB :: Int\n_MODE_SUB = 1\n\n_SHADOW_FILTER_PCF5 :: Int\n_SHADOW_FILTER_PCF5 = 2\n\n_SHADOW_FILTER_NONE :: Int\n_SHADOW_FILTER_NONE = 0\n\n_SHADOW_FILTER_PCF9 :: Int\n_SHADOW_FILTER_PCF9 = 4\n\n_MODE_MASK :: Int\n_MODE_MASK = 3\n\n_MODE_MIX :: Int\n_MODE_MIX = 2\n\n_SHADOW_FILTER_PCF3 :: Int\n_SHADOW_FILTER_PCF3 = 1\n\n_SHADOW_FILTER_PCF13 :: Int\n_SHADOW_FILTER_PCF13 = 5\n\ninstance NodeProperty Light2D \"color\" Color 'False where\n        nodeProperty = (get_color, wrapDroppingSetter set_color, Nothing)\n\ninstance NodeProperty Light2D \"editor_only\" Bool 'False where\n        nodeProperty\n          = (is_editor_only, wrapDroppingSetter set_editor_only, Nothing)\n\ninstance NodeProperty Light2D \"enabled\" Bool 'False where\n        nodeProperty\n          = (is_enabled, wrapDroppingSetter set_enabled, Nothing)\n\ninstance NodeProperty Light2D \"energy\" Float 'False where\n        nodeProperty = (get_energy, wrapDroppingSetter set_energy, Nothing)\n\ninstance NodeProperty Light2D \"mode\" Int 'False where\n        nodeProperty = (get_mode, wrapDroppingSetter set_mode, Nothing)\n\ninstance NodeProperty Light2D \"offset\" Vector2 'False where\n        nodeProperty\n          = (get_texture_offset, wrapDroppingSetter set_texture_offset,\n             Nothing)\n\ninstance NodeProperty Light2D \"range_height\" Float 'False where\n        nodeProperty = (get_height, wrapDroppingSetter set_height, Nothing)\n\ninstance NodeProperty Light2D \"range_item_cull_mask\" Int 'False\n         where\n        nodeProperty\n          = (get_item_cull_mask, wrapDroppingSetter set_item_cull_mask,\n             Nothing)\n\ninstance NodeProperty Light2D \"range_layer_max\" Int 'False where\n        nodeProperty\n          = (get_layer_range_max, wrapDroppingSetter set_layer_range_max,\n             Nothing)\n\ninstance NodeProperty Light2D \"range_layer_min\" Int 'False where\n        nodeProperty\n          = (get_layer_range_min, wrapDroppingSetter set_layer_range_min,\n             Nothing)\n\ninstance NodeProperty Light2D \"range_z_max\" Int 'False where\n        nodeProperty\n          = (get_z_range_max, wrapDroppingSetter set_z_range_max, Nothing)\n\ninstance NodeProperty Light2D \"range_z_min\" Int 'False where\n        nodeProperty\n          = (get_z_range_min, wrapDroppingSetter set_z_range_min, Nothing)\n\ninstance NodeProperty Light2D \"shadow_buffer_size\" Int 'False where\n        nodeProperty\n          = (get_shadow_buffer_size,\n             wrapDroppingSetter set_shadow_buffer_size, Nothing)\n\ninstance NodeProperty Light2D \"shadow_color\" Color 'False where\n        nodeProperty\n          = (get_shadow_color, wrapDroppingSetter set_shadow_color, Nothing)\n\ninstance NodeProperty Light2D \"shadow_enabled\" Bool 'False where\n        nodeProperty\n          = (is_shadow_enabled, wrapDroppingSetter set_shadow_enabled,\n             Nothing)\n\ninstance NodeProperty Light2D \"shadow_filter\" Int 'False where\n        nodeProperty\n          = (get_shadow_filter, wrapDroppingSetter set_shadow_filter,\n             Nothing)\n\ninstance NodeProperty Light2D \"shadow_filter_smooth\" Float 'False\n         where\n        nodeProperty\n          = (get_shadow_smooth, wrapDroppingSetter set_shadow_smooth,\n             Nothing)\n\ninstance NodeProperty Light2D \"shadow_gradient_length\" Float 'False\n         where\n        nodeProperty\n          = (get_shadow_gradient_length,\n             wrapDroppingSetter set_shadow_gradient_length, Nothing)\n\ninstance NodeProperty Light2D \"shadow_item_cull_mask\" Int 'False\n         where\n        nodeProperty\n          = (get_item_shadow_cull_mask,\n             wrapDroppingSetter set_item_shadow_cull_mask, Nothing)\n\ninstance NodeProperty Light2D \"texture\" Texture 'False where\n        nodeProperty\n          = (get_texture, wrapDroppingSetter set_texture, Nothing)\n\ninstance NodeProperty Light2D \"texture_scale\" Float 'False where\n        nodeProperty\n          = (get_texture_scale, wrapDroppingSetter set_texture_scale,\n             Nothing)\n\n{-# NOINLINE bindLight2D_get_color #-}\n\n-- | The Light2D's @Color@.\nbindLight2D_get_color :: MethodBind\nbindLight2D_get_color\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The Light2D's @Color@.\nget_color :: (Light2D :< cls, Object :< cls) => cls -> IO Color\nget_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_get_color (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"get_color\" '[] (IO Color) where\n        nodeMethod = Godot.Core.Light2D.get_color\n\n{-# NOINLINE bindLight2D_get_energy #-}\n\n-- | The Light2D's energy value. The larger the value, the stronger the light.\nbindLight2D_get_energy :: MethodBind\nbindLight2D_get_energy\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The Light2D's energy value. The larger the value, the stronger the light.\nget_energy :: (Light2D :< cls, Object :< cls) => cls -> IO Float\nget_energy cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_get_energy (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"get_energy\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Light2D.get_energy\n\n{-# NOINLINE bindLight2D_get_height #-}\n\n-- | The height of the Light2D. Used with 2D normal mapping.\nbindLight2D_get_height :: MethodBind\nbindLight2D_get_height\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The height of the Light2D. Used with 2D normal mapping.\nget_height :: (Light2D :< cls, Object :< cls) => cls -> IO Float\nget_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_get_height (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"get_height\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Light2D.get_height\n\n{-# NOINLINE bindLight2D_get_item_cull_mask #-}\n\n-- | The layer mask. Only objects with a matching mask will be affected by the Light2D.\nbindLight2D_get_item_cull_mask :: MethodBind\nbindLight2D_get_item_cull_mask\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_cull_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The layer mask. Only objects with a matching mask will be affected by the Light2D.\nget_item_cull_mask ::\n                     (Light2D :< cls, Object :< cls) => cls -> IO Int\nget_item_cull_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_get_item_cull_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"get_item_cull_mask\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Light2D.get_item_cull_mask\n\n{-# NOINLINE bindLight2D_get_item_shadow_cull_mask #-}\n\n-- | The shadow mask. Used with @LightOccluder2D@ to cast shadows. Only occluders with a matching light mask will cast shadows.\nbindLight2D_get_item_shadow_cull_mask :: MethodBind\nbindLight2D_get_item_shadow_cull_mask\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_shadow_cull_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The shadow mask. Used with @LightOccluder2D@ to cast shadows. Only occluders with a matching light mask will cast shadows.\nget_item_shadow_cull_mask ::\n                            (Light2D :< cls, Object :< cls) => cls -> IO Int\nget_item_shadow_cull_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_get_item_shadow_cull_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"get_item_shadow_cull_mask\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Light2D.get_item_shadow_cull_mask\n\n{-# NOINLINE bindLight2D_get_layer_range_max #-}\n\n-- | Maximum layer value of objects that are affected by the Light2D.\nbindLight2D_get_layer_range_max :: MethodBind\nbindLight2D_get_layer_range_max\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_layer_range_max\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum layer value of objects that are affected by the Light2D.\nget_layer_range_max ::\n                      (Light2D :< cls, Object :< cls) => cls -> IO Int\nget_layer_range_max cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_get_layer_range_max (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"get_layer_range_max\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Light2D.get_layer_range_max\n\n{-# NOINLINE bindLight2D_get_layer_range_min #-}\n\n-- | Minimum layer value of objects that are affected by the Light2D.\nbindLight2D_get_layer_range_min :: MethodBind\nbindLight2D_get_layer_range_min\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_layer_range_min\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Minimum layer value of objects that are affected by the Light2D.\nget_layer_range_min ::\n                      (Light2D :< cls, Object :< cls) => cls -> IO Int\nget_layer_range_min cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_get_layer_range_min (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"get_layer_range_min\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Light2D.get_layer_range_min\n\n{-# NOINLINE bindLight2D_get_mode #-}\n\n-- | The Light2D's mode. See @enum Mode@ constants for values.\nbindLight2D_get_mode :: MethodBind\nbindLight2D_get_mode\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The Light2D's mode. See @enum Mode@ constants for values.\nget_mode :: (Light2D :< cls, Object :< cls) => cls -> IO Int\nget_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_get_mode (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"get_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Light2D.get_mode\n\n{-# NOINLINE bindLight2D_get_shadow_buffer_size #-}\n\n-- | Shadow buffer size.\nbindLight2D_get_shadow_buffer_size :: MethodBind\nbindLight2D_get_shadow_buffer_size\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_shadow_buffer_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Shadow buffer size.\nget_shadow_buffer_size ::\n                         (Light2D :< cls, Object :< cls) => cls -> IO Int\nget_shadow_buffer_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_get_shadow_buffer_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"get_shadow_buffer_size\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Light2D.get_shadow_buffer_size\n\n{-# NOINLINE bindLight2D_get_shadow_color #-}\n\n-- | @Color@ of shadows cast by the Light2D.\nbindLight2D_get_shadow_color :: MethodBind\nbindLight2D_get_shadow_color\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_shadow_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Color@ of shadows cast by the Light2D.\nget_shadow_color ::\n                   (Light2D :< cls, Object :< cls) => cls -> IO Color\nget_shadow_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_get_shadow_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"get_shadow_color\" '[] (IO Color) where\n        nodeMethod = Godot.Core.Light2D.get_shadow_color\n\n{-# NOINLINE bindLight2D_get_shadow_filter #-}\n\n-- | Shadow filter type. See @enum ShadowFilter@ for possible values.\nbindLight2D_get_shadow_filter :: MethodBind\nbindLight2D_get_shadow_filter\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_shadow_filter\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Shadow filter type. See @enum ShadowFilter@ for possible values.\nget_shadow_filter ::\n                    (Light2D :< cls, Object :< cls) => cls -> IO Int\nget_shadow_filter cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_get_shadow_filter (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"get_shadow_filter\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Light2D.get_shadow_filter\n\n{-# NOINLINE bindLight2D_get_shadow_gradient_length #-}\n\n-- | Smooth shadow gradient length.\nbindLight2D_get_shadow_gradient_length :: MethodBind\nbindLight2D_get_shadow_gradient_length\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_shadow_gradient_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Smooth shadow gradient length.\nget_shadow_gradient_length ::\n                             (Light2D :< cls, Object :< cls) => cls -> IO Float\nget_shadow_gradient_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_get_shadow_gradient_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"get_shadow_gradient_length\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Light2D.get_shadow_gradient_length\n\n{-# NOINLINE bindLight2D_get_shadow_smooth #-}\n\n-- | Smoothing value for shadows.\nbindLight2D_get_shadow_smooth :: MethodBind\nbindLight2D_get_shadow_smooth\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_shadow_smooth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Smoothing value for shadows.\nget_shadow_smooth ::\n                    (Light2D :< cls, Object :< cls) => cls -> IO Float\nget_shadow_smooth cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_get_shadow_smooth (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"get_shadow_smooth\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Light2D.get_shadow_smooth\n\n{-# NOINLINE bindLight2D_get_texture #-}\n\n-- | @Texture@ used for the Light2D's appearance.\nbindLight2D_get_texture :: MethodBind\nbindLight2D_get_texture\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Texture@ used for the Light2D's appearance.\nget_texture :: (Light2D :< cls, Object :< cls) => cls -> IO Texture\nget_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_get_texture (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"get_texture\" '[] (IO Texture) where\n        nodeMethod = Godot.Core.Light2D.get_texture\n\n{-# NOINLINE bindLight2D_get_texture_offset #-}\n\n-- | The offset of the Light2D's @texture@.\nbindLight2D_get_texture_offset :: MethodBind\nbindLight2D_get_texture_offset\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The offset of the Light2D's @texture@.\nget_texture_offset ::\n                     (Light2D :< cls, Object :< cls) => cls -> IO Vector2\nget_texture_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_get_texture_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"get_texture_offset\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Light2D.get_texture_offset\n\n{-# NOINLINE bindLight2D_get_texture_scale #-}\n\n-- | The @texture@'s scale factor.\nbindLight2D_get_texture_scale :: MethodBind\nbindLight2D_get_texture_scale\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @texture@'s scale factor.\nget_texture_scale ::\n                    (Light2D :< cls, Object :< cls) => cls -> IO Float\nget_texture_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_get_texture_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"get_texture_scale\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Light2D.get_texture_scale\n\n{-# NOINLINE bindLight2D_get_z_range_max #-}\n\n-- | Maximum @z@ value of objects that are affected by the Light2D.\nbindLight2D_get_z_range_max :: MethodBind\nbindLight2D_get_z_range_max\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_z_range_max\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum @z@ value of objects that are affected by the Light2D.\nget_z_range_max :: (Light2D :< cls, Object :< cls) => cls -> IO Int\nget_z_range_max cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_get_z_range_max (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"get_z_range_max\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Light2D.get_z_range_max\n\n{-# NOINLINE bindLight2D_get_z_range_min #-}\n\n-- | Minimum @z@ value of objects that are affected by the Light2D.\nbindLight2D_get_z_range_min :: MethodBind\nbindLight2D_get_z_range_min\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_z_range_min\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Minimum @z@ value of objects that are affected by the Light2D.\nget_z_range_min :: (Light2D :< cls, Object :< cls) => cls -> IO Int\nget_z_range_min cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_get_z_range_min (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"get_z_range_min\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Light2D.get_z_range_min\n\n{-# NOINLINE bindLight2D_is_editor_only #-}\n\n-- | If @true@, Light2D will only appear when editing the scene.\nbindLight2D_is_editor_only :: MethodBind\nbindLight2D_is_editor_only\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_editor_only\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, Light2D will only appear when editing the scene.\nis_editor_only :: (Light2D :< cls, Object :< cls) => cls -> IO Bool\nis_editor_only cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_is_editor_only (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"is_editor_only\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Light2D.is_editor_only\n\n{-# NOINLINE bindLight2D_is_enabled #-}\n\n-- | If @true@, Light2D will emit light.\nbindLight2D_is_enabled :: MethodBind\nbindLight2D_is_enabled\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, Light2D will emit light.\nis_enabled :: (Light2D :< cls, Object :< cls) => cls -> IO Bool\nis_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_is_enabled (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"is_enabled\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Light2D.is_enabled\n\n{-# NOINLINE bindLight2D_is_shadow_enabled #-}\n\n-- | If @true@, the Light2D will cast shadows.\nbindLight2D_is_shadow_enabled :: MethodBind\nbindLight2D_is_shadow_enabled\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_shadow_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the Light2D will cast shadows.\nis_shadow_enabled ::\n                    (Light2D :< cls, Object :< cls) => cls -> IO Bool\nis_shadow_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_is_shadow_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"is_shadow_enabled\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Light2D.is_shadow_enabled\n\n{-# NOINLINE bindLight2D_set_color #-}\n\n-- | The Light2D's @Color@.\nbindLight2D_set_color :: MethodBind\nbindLight2D_set_color\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The Light2D's @Color@.\nset_color ::\n            (Light2D :< cls, Object :< cls) => cls -> Color -> IO ()\nset_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_color (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_color\" '[Color] (IO ()) where\n        nodeMethod = Godot.Core.Light2D.set_color\n\n{-# NOINLINE bindLight2D_set_editor_only #-}\n\n-- | If @true@, Light2D will only appear when editing the scene.\nbindLight2D_set_editor_only :: MethodBind\nbindLight2D_set_editor_only\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_editor_only\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, Light2D will only appear when editing the scene.\nset_editor_only ::\n                  (Light2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_editor_only cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_editor_only (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_editor_only\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Light2D.set_editor_only\n\n{-# NOINLINE bindLight2D_set_enabled #-}\n\n-- | If @true@, Light2D will emit light.\nbindLight2D_set_enabled :: MethodBind\nbindLight2D_set_enabled\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, Light2D will emit light.\nset_enabled ::\n              (Light2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_enabled (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_enabled\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Light2D.set_enabled\n\n{-# NOINLINE bindLight2D_set_energy #-}\n\n-- | The Light2D's energy value. The larger the value, the stronger the light.\nbindLight2D_set_energy :: MethodBind\nbindLight2D_set_energy\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The Light2D's energy value. The larger the value, the stronger the light.\nset_energy ::\n             (Light2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_energy cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_energy (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_energy\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Light2D.set_energy\n\n{-# NOINLINE bindLight2D_set_height #-}\n\n-- | The height of the Light2D. Used with 2D normal mapping.\nbindLight2D_set_height :: MethodBind\nbindLight2D_set_height\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The height of the Light2D. Used with 2D normal mapping.\nset_height ::\n             (Light2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_height (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_height\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Light2D.set_height\n\n{-# NOINLINE bindLight2D_set_item_cull_mask #-}\n\n-- | The layer mask. Only objects with a matching mask will be affected by the Light2D.\nbindLight2D_set_item_cull_mask :: MethodBind\nbindLight2D_set_item_cull_mask\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_cull_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The layer mask. Only objects with a matching mask will be affected by the Light2D.\nset_item_cull_mask ::\n                     (Light2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_item_cull_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_item_cull_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_item_cull_mask\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Light2D.set_item_cull_mask\n\n{-# NOINLINE bindLight2D_set_item_shadow_cull_mask #-}\n\n-- | The shadow mask. Used with @LightOccluder2D@ to cast shadows. Only occluders with a matching light mask will cast shadows.\nbindLight2D_set_item_shadow_cull_mask :: MethodBind\nbindLight2D_set_item_shadow_cull_mask\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_shadow_cull_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The shadow mask. Used with @LightOccluder2D@ to cast shadows. Only occluders with a matching light mask will cast shadows.\nset_item_shadow_cull_mask ::\n                            (Light2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_item_shadow_cull_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_item_shadow_cull_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_item_shadow_cull_mask\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Light2D.set_item_shadow_cull_mask\n\n{-# NOINLINE bindLight2D_set_layer_range_max #-}\n\n-- | Maximum layer value of objects that are affected by the Light2D.\nbindLight2D_set_layer_range_max :: MethodBind\nbindLight2D_set_layer_range_max\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_layer_range_max\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum layer value of objects that are affected by the Light2D.\nset_layer_range_max ::\n                      (Light2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_layer_range_max cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_layer_range_max (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_layer_range_max\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Light2D.set_layer_range_max\n\n{-# NOINLINE bindLight2D_set_layer_range_min #-}\n\n-- | Minimum layer value of objects that are affected by the Light2D.\nbindLight2D_set_layer_range_min :: MethodBind\nbindLight2D_set_layer_range_min\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_layer_range_min\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Minimum layer value of objects that are affected by the Light2D.\nset_layer_range_min ::\n                      (Light2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_layer_range_min cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_layer_range_min (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_layer_range_min\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Light2D.set_layer_range_min\n\n{-# NOINLINE bindLight2D_set_mode #-}\n\n-- | The Light2D's mode. See @enum Mode@ constants for values.\nbindLight2D_set_mode :: MethodBind\nbindLight2D_set_mode\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The Light2D's mode. See @enum Mode@ constants for values.\nset_mode :: (Light2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_mode (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Light2D.set_mode\n\n{-# NOINLINE bindLight2D_set_shadow_buffer_size #-}\n\n-- | Shadow buffer size.\nbindLight2D_set_shadow_buffer_size :: MethodBind\nbindLight2D_set_shadow_buffer_size\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_shadow_buffer_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Shadow buffer size.\nset_shadow_buffer_size ::\n                         (Light2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_shadow_buffer_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_shadow_buffer_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_shadow_buffer_size\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Light2D.set_shadow_buffer_size\n\n{-# NOINLINE bindLight2D_set_shadow_color #-}\n\n-- | @Color@ of shadows cast by the Light2D.\nbindLight2D_set_shadow_color :: MethodBind\nbindLight2D_set_shadow_color\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_shadow_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Color@ of shadows cast by the Light2D.\nset_shadow_color ::\n                   (Light2D :< cls, Object :< cls) => cls -> Color -> IO ()\nset_shadow_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_shadow_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_shadow_color\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.Light2D.set_shadow_color\n\n{-# NOINLINE bindLight2D_set_shadow_enabled #-}\n\n-- | If @true@, the Light2D will cast shadows.\nbindLight2D_set_shadow_enabled :: MethodBind\nbindLight2D_set_shadow_enabled\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_shadow_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the Light2D will cast shadows.\nset_shadow_enabled ::\n                     (Light2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_shadow_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_shadow_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_shadow_enabled\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Light2D.set_shadow_enabled\n\n{-# NOINLINE bindLight2D_set_shadow_filter #-}\n\n-- | Shadow filter type. See @enum ShadowFilter@ for possible values.\nbindLight2D_set_shadow_filter :: MethodBind\nbindLight2D_set_shadow_filter\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_shadow_filter\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Shadow filter type. See @enum ShadowFilter@ for possible values.\nset_shadow_filter ::\n                    (Light2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_shadow_filter cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_shadow_filter (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_shadow_filter\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Light2D.set_shadow_filter\n\n{-# NOINLINE bindLight2D_set_shadow_gradient_length #-}\n\n-- | Smooth shadow gradient length.\nbindLight2D_set_shadow_gradient_length :: MethodBind\nbindLight2D_set_shadow_gradient_length\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_shadow_gradient_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Smooth shadow gradient length.\nset_shadow_gradient_length ::\n                             (Light2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_shadow_gradient_length cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_shadow_gradient_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_shadow_gradient_length\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Light2D.set_shadow_gradient_length\n\n{-# NOINLINE bindLight2D_set_shadow_smooth #-}\n\n-- | Smoothing value for shadows.\nbindLight2D_set_shadow_smooth :: MethodBind\nbindLight2D_set_shadow_smooth\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_shadow_smooth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Smoothing value for shadows.\nset_shadow_smooth ::\n                    (Light2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_shadow_smooth cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_shadow_smooth (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_shadow_smooth\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Light2D.set_shadow_smooth\n\n{-# NOINLINE bindLight2D_set_texture #-}\n\n-- | @Texture@ used for the Light2D's appearance.\nbindLight2D_set_texture :: MethodBind\nbindLight2D_set_texture\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Texture@ used for the Light2D's appearance.\nset_texture ::\n              (Light2D :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_texture (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_texture\" '[Texture] (IO ()) where\n        nodeMethod = Godot.Core.Light2D.set_texture\n\n{-# NOINLINE bindLight2D_set_texture_offset #-}\n\n-- | The offset of the Light2D's @texture@.\nbindLight2D_set_texture_offset :: MethodBind\nbindLight2D_set_texture_offset\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The offset of the Light2D's @texture@.\nset_texture_offset ::\n                     (Light2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_texture_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_texture_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_texture_offset\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.Light2D.set_texture_offset\n\n{-# NOINLINE bindLight2D_set_texture_scale #-}\n\n-- | The @texture@'s scale factor.\nbindLight2D_set_texture_scale :: MethodBind\nbindLight2D_set_texture_scale\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @texture@'s scale factor.\nset_texture_scale ::\n                    (Light2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_texture_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_texture_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_texture_scale\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Light2D.set_texture_scale\n\n{-# NOINLINE bindLight2D_set_z_range_max #-}\n\n-- | Maximum @z@ value of objects that are affected by the Light2D.\nbindLight2D_set_z_range_max :: MethodBind\nbindLight2D_set_z_range_max\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_z_range_max\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum @z@ value of objects that are affected by the Light2D.\nset_z_range_max ::\n                  (Light2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_z_range_max cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_z_range_max (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_z_range_max\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Light2D.set_z_range_max\n\n{-# NOINLINE bindLight2D_set_z_range_min #-}\n\n-- | Minimum @z@ value of objects that are affected by the Light2D.\nbindLight2D_set_z_range_min :: MethodBind\nbindLight2D_set_z_range_min\n  = unsafePerformIO $\n      withCString \"Light2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_z_range_min\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Minimum @z@ value of objects that are affected by the Light2D.\nset_z_range_min ::\n                  (Light2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_z_range_min cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLight2D_set_z_range_min (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Light2D \"set_z_range_min\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Light2D.set_z_range_min"
  },
  {
    "path": "src/Godot/Core/LightOccluder2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.LightOccluder2D\n       (Godot.Core.LightOccluder2D._poly_changed,\n        Godot.Core.LightOccluder2D.get_occluder_light_mask,\n        Godot.Core.LightOccluder2D.get_occluder_polygon,\n        Godot.Core.LightOccluder2D.set_occluder_light_mask,\n        Godot.Core.LightOccluder2D.set_occluder_polygon)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\ninstance NodeProperty LightOccluder2D \"light_mask\" Int 'False where\n        nodeProperty\n          = (get_occluder_light_mask,\n             wrapDroppingSetter set_occluder_light_mask, Nothing)\n\ninstance NodeProperty LightOccluder2D \"occluder\" OccluderPolygon2D\n           'False\n         where\n        nodeProperty\n          = (get_occluder_polygon, wrapDroppingSetter set_occluder_polygon,\n             Nothing)\n\n{-# NOINLINE bindLightOccluder2D__poly_changed #-}\n\nbindLightOccluder2D__poly_changed :: MethodBind\nbindLightOccluder2D__poly_changed\n  = unsafePerformIO $\n      withCString \"LightOccluder2D\" $\n        \\ clsNamePtr ->\n          withCString \"_poly_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_poly_changed ::\n                (LightOccluder2D :< cls, Object :< cls) => cls -> IO ()\n_poly_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLightOccluder2D__poly_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LightOccluder2D \"_poly_changed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.LightOccluder2D._poly_changed\n\n{-# NOINLINE bindLightOccluder2D_get_occluder_light_mask #-}\n\n-- | The LightOccluder2D's light mask. The LightOccluder2D will cast shadows only from Light2D(s) that have the same light mask(s).\nbindLightOccluder2D_get_occluder_light_mask :: MethodBind\nbindLightOccluder2D_get_occluder_light_mask\n  = unsafePerformIO $\n      withCString \"LightOccluder2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_occluder_light_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The LightOccluder2D's light mask. The LightOccluder2D will cast shadows only from Light2D(s) that have the same light mask(s).\nget_occluder_light_mask ::\n                          (LightOccluder2D :< cls, Object :< cls) => cls -> IO Int\nget_occluder_light_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLightOccluder2D_get_occluder_light_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LightOccluder2D \"get_occluder_light_mask\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.LightOccluder2D.get_occluder_light_mask\n\n{-# NOINLINE bindLightOccluder2D_get_occluder_polygon #-}\n\n-- | The @OccluderPolygon2D@ used to compute the shadow.\nbindLightOccluder2D_get_occluder_polygon :: MethodBind\nbindLightOccluder2D_get_occluder_polygon\n  = unsafePerformIO $\n      withCString \"LightOccluder2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_occluder_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @OccluderPolygon2D@ used to compute the shadow.\nget_occluder_polygon ::\n                       (LightOccluder2D :< cls, Object :< cls) =>\n                       cls -> IO OccluderPolygon2D\nget_occluder_polygon cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLightOccluder2D_get_occluder_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LightOccluder2D \"get_occluder_polygon\" '[]\n           (IO OccluderPolygon2D)\n         where\n        nodeMethod = Godot.Core.LightOccluder2D.get_occluder_polygon\n\n{-# NOINLINE bindLightOccluder2D_set_occluder_light_mask #-}\n\n-- | The LightOccluder2D's light mask. The LightOccluder2D will cast shadows only from Light2D(s) that have the same light mask(s).\nbindLightOccluder2D_set_occluder_light_mask :: MethodBind\nbindLightOccluder2D_set_occluder_light_mask\n  = unsafePerformIO $\n      withCString \"LightOccluder2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_occluder_light_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The LightOccluder2D's light mask. The LightOccluder2D will cast shadows only from Light2D(s) that have the same light mask(s).\nset_occluder_light_mask ::\n                          (LightOccluder2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_occluder_light_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLightOccluder2D_set_occluder_light_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LightOccluder2D \"set_occluder_light_mask\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.LightOccluder2D.set_occluder_light_mask\n\n{-# NOINLINE bindLightOccluder2D_set_occluder_polygon #-}\n\n-- | The @OccluderPolygon2D@ used to compute the shadow.\nbindLightOccluder2D_set_occluder_polygon :: MethodBind\nbindLightOccluder2D_set_occluder_polygon\n  = unsafePerformIO $\n      withCString \"LightOccluder2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_occluder_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @OccluderPolygon2D@ used to compute the shadow.\nset_occluder_polygon ::\n                       (LightOccluder2D :< cls, Object :< cls) =>\n                       cls -> OccluderPolygon2D -> IO ()\nset_occluder_polygon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLightOccluder2D_set_occluder_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LightOccluder2D \"set_occluder_polygon\"\n           '[OccluderPolygon2D]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.LightOccluder2D.set_occluder_polygon"
  },
  {
    "path": "src/Godot/Core/Line2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Line2D\n       (Godot.Core.Line2D._LINE_JOINT_ROUND,\n        Godot.Core.Line2D._LINE_TEXTURE_NONE,\n        Godot.Core.Line2D._LINE_CAP_ROUND,\n        Godot.Core.Line2D._LINE_CAP_NONE,\n        Godot.Core.Line2D._LINE_TEXTURE_TILE,\n        Godot.Core.Line2D._LINE_JOINT_BEVEL,\n        Godot.Core.Line2D._LINE_JOINT_SHARP,\n        Godot.Core.Line2D._LINE_TEXTURE_STRETCH,\n        Godot.Core.Line2D._LINE_CAP_BOX, Godot.Core.Line2D._curve_changed,\n        Godot.Core.Line2D._gradient_changed, Godot.Core.Line2D.add_point,\n        Godot.Core.Line2D.clear_points, Godot.Core.Line2D.get_antialiased,\n        Godot.Core.Line2D.get_begin_cap_mode, Godot.Core.Line2D.get_curve,\n        Godot.Core.Line2D.get_default_color,\n        Godot.Core.Line2D.get_end_cap_mode, Godot.Core.Line2D.get_gradient,\n        Godot.Core.Line2D.get_joint_mode,\n        Godot.Core.Line2D.get_point_count,\n        Godot.Core.Line2D.get_point_position, Godot.Core.Line2D.get_points,\n        Godot.Core.Line2D.get_round_precision,\n        Godot.Core.Line2D.get_sharp_limit, Godot.Core.Line2D.get_texture,\n        Godot.Core.Line2D.get_texture_mode, Godot.Core.Line2D.get_width,\n        Godot.Core.Line2D.remove_point, Godot.Core.Line2D.set_antialiased,\n        Godot.Core.Line2D.set_begin_cap_mode, Godot.Core.Line2D.set_curve,\n        Godot.Core.Line2D.set_default_color,\n        Godot.Core.Line2D.set_end_cap_mode, Godot.Core.Line2D.set_gradient,\n        Godot.Core.Line2D.set_joint_mode,\n        Godot.Core.Line2D.set_point_position, Godot.Core.Line2D.set_points,\n        Godot.Core.Line2D.set_round_precision,\n        Godot.Core.Line2D.set_sharp_limit, Godot.Core.Line2D.set_texture,\n        Godot.Core.Line2D.set_texture_mode, Godot.Core.Line2D.set_width)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\n_LINE_JOINT_ROUND :: Int\n_LINE_JOINT_ROUND = 2\n\n_LINE_TEXTURE_NONE :: Int\n_LINE_TEXTURE_NONE = 0\n\n_LINE_CAP_ROUND :: Int\n_LINE_CAP_ROUND = 2\n\n_LINE_CAP_NONE :: Int\n_LINE_CAP_NONE = 0\n\n_LINE_TEXTURE_TILE :: Int\n_LINE_TEXTURE_TILE = 1\n\n_LINE_JOINT_BEVEL :: Int\n_LINE_JOINT_BEVEL = 1\n\n_LINE_JOINT_SHARP :: Int\n_LINE_JOINT_SHARP = 0\n\n_LINE_TEXTURE_STRETCH :: Int\n_LINE_TEXTURE_STRETCH = 2\n\n_LINE_CAP_BOX :: Int\n_LINE_CAP_BOX = 1\n\ninstance NodeProperty Line2D \"antialiased\" Bool 'False where\n        nodeProperty\n          = (get_antialiased, wrapDroppingSetter set_antialiased, Nothing)\n\ninstance NodeProperty Line2D \"begin_cap_mode\" Int 'False where\n        nodeProperty\n          = (get_begin_cap_mode, wrapDroppingSetter set_begin_cap_mode,\n             Nothing)\n\ninstance NodeProperty Line2D \"default_color\" Color 'False where\n        nodeProperty\n          = (get_default_color, wrapDroppingSetter set_default_color,\n             Nothing)\n\ninstance NodeProperty Line2D \"end_cap_mode\" Int 'False where\n        nodeProperty\n          = (get_end_cap_mode, wrapDroppingSetter set_end_cap_mode, Nothing)\n\ninstance NodeProperty Line2D \"gradient\" Gradient 'False where\n        nodeProperty\n          = (get_gradient, wrapDroppingSetter set_gradient, Nothing)\n\ninstance NodeProperty Line2D \"joint_mode\" Int 'False where\n        nodeProperty\n          = (get_joint_mode, wrapDroppingSetter set_joint_mode, Nothing)\n\ninstance NodeProperty Line2D \"points\" PoolVector2Array 'False where\n        nodeProperty = (get_points, wrapDroppingSetter set_points, Nothing)\n\ninstance NodeProperty Line2D \"round_precision\" Int 'False where\n        nodeProperty\n          = (get_round_precision, wrapDroppingSetter set_round_precision,\n             Nothing)\n\ninstance NodeProperty Line2D \"sharp_limit\" Float 'False where\n        nodeProperty\n          = (get_sharp_limit, wrapDroppingSetter set_sharp_limit, Nothing)\n\ninstance NodeProperty Line2D \"texture\" Texture 'False where\n        nodeProperty\n          = (get_texture, wrapDroppingSetter set_texture, Nothing)\n\ninstance NodeProperty Line2D \"texture_mode\" Int 'False where\n        nodeProperty\n          = (get_texture_mode, wrapDroppingSetter set_texture_mode, Nothing)\n\ninstance NodeProperty Line2D \"width\" Float 'False where\n        nodeProperty = (get_width, wrapDroppingSetter set_width, Nothing)\n\ninstance NodeProperty Line2D \"width_curve\" Curve 'False where\n        nodeProperty = (get_curve, wrapDroppingSetter set_curve, Nothing)\n\n{-# NOINLINE bindLine2D__curve_changed #-}\n\nbindLine2D__curve_changed :: MethodBind\nbindLine2D__curve_changed\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"_curve_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_curve_changed :: (Line2D :< cls, Object :< cls) => cls -> IO ()\n_curve_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D__curve_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"_curve_changed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Line2D._curve_changed\n\n{-# NOINLINE bindLine2D__gradient_changed #-}\n\nbindLine2D__gradient_changed :: MethodBind\nbindLine2D__gradient_changed\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"_gradient_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gradient_changed :: (Line2D :< cls, Object :< cls) => cls -> IO ()\n_gradient_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D__gradient_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"_gradient_changed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Line2D._gradient_changed\n\n{-# NOINLINE bindLine2D_add_point #-}\n\n-- | Adds a point at the @position@. Appends the point at the end of the line.\n--   \t\t\t\tIf @at_position@ is given, the point is inserted before the point number @at_position@, moving that point (and every point after) after the inserted point. If @at_position@ is not given, or is an illegal value (@at_position < 0@ or @at_position >= @method get_point_count@@), the point will be appended at the end of the point list.\nbindLine2D_add_point :: MethodBind\nbindLine2D_add_point\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"add_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a point at the @position@. Appends the point at the end of the line.\n--   \t\t\t\tIf @at_position@ is given, the point is inserted before the point number @at_position@, moving that point (and every point after) after the inserted point. If @at_position@ is not given, or is an illegal value (@at_position < 0@ or @at_position >= @method get_point_count@@), the point will be appended at the end of the point list.\nadd_point ::\n            (Line2D :< cls, Object :< cls) =>\n            cls -> Vector2 -> Maybe Int -> IO ()\nadd_point cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (-1)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_add_point (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"add_point\" '[Vector2, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Line2D.add_point\n\n{-# NOINLINE bindLine2D_clear_points #-}\n\n-- | Removes all points from the line.\nbindLine2D_clear_points :: MethodBind\nbindLine2D_clear_points\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"clear_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all points from the line.\nclear_points :: (Line2D :< cls, Object :< cls) => cls -> IO ()\nclear_points cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_clear_points (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"clear_points\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Line2D.clear_points\n\n{-# NOINLINE bindLine2D_get_antialiased #-}\n\n-- | If @true@, the line's border will be anti-aliased.\nbindLine2D_get_antialiased :: MethodBind\nbindLine2D_get_antialiased\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_antialiased\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the line's border will be anti-aliased.\nget_antialiased :: (Line2D :< cls, Object :< cls) => cls -> IO Bool\nget_antialiased cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_get_antialiased (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"get_antialiased\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Line2D.get_antialiased\n\n{-# NOINLINE bindLine2D_get_begin_cap_mode #-}\n\n-- | Controls the style of the line's first point. Use @enum LineCapMode@ constants.\nbindLine2D_get_begin_cap_mode :: MethodBind\nbindLine2D_get_begin_cap_mode\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_begin_cap_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls the style of the line's first point. Use @enum LineCapMode@ constants.\nget_begin_cap_mode ::\n                     (Line2D :< cls, Object :< cls) => cls -> IO Int\nget_begin_cap_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_get_begin_cap_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"get_begin_cap_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Line2D.get_begin_cap_mode\n\n{-# NOINLINE bindLine2D_get_curve #-}\n\n-- | The line's width varies with the curve. The original width is simply multiply by the value of the Curve.\nbindLine2D_get_curve :: MethodBind\nbindLine2D_get_curve\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The line's width varies with the curve. The original width is simply multiply by the value of the Curve.\nget_curve :: (Line2D :< cls, Object :< cls) => cls -> IO Curve\nget_curve cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_get_curve (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"get_curve\" '[] (IO Curve) where\n        nodeMethod = Godot.Core.Line2D.get_curve\n\n{-# NOINLINE bindLine2D_get_default_color #-}\n\n-- | The line's color. Will not be used if a gradient is set.\nbindLine2D_get_default_color :: MethodBind\nbindLine2D_get_default_color\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_default_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The line's color. Will not be used if a gradient is set.\nget_default_color ::\n                    (Line2D :< cls, Object :< cls) => cls -> IO Color\nget_default_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_get_default_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"get_default_color\" '[] (IO Color) where\n        nodeMethod = Godot.Core.Line2D.get_default_color\n\n{-# NOINLINE bindLine2D_get_end_cap_mode #-}\n\n-- | Controls the style of the line's last point. Use @enum LineCapMode@ constants.\nbindLine2D_get_end_cap_mode :: MethodBind\nbindLine2D_get_end_cap_mode\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_end_cap_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls the style of the line's last point. Use @enum LineCapMode@ constants.\nget_end_cap_mode :: (Line2D :< cls, Object :< cls) => cls -> IO Int\nget_end_cap_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_get_end_cap_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"get_end_cap_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Line2D.get_end_cap_mode\n\n{-# NOINLINE bindLine2D_get_gradient #-}\n\n-- | The gradient is drawn through the whole line from start to finish. The default color will not be used if a gradient is set.\nbindLine2D_get_gradient :: MethodBind\nbindLine2D_get_gradient\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_gradient\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The gradient is drawn through the whole line from start to finish. The default color will not be used if a gradient is set.\nget_gradient ::\n               (Line2D :< cls, Object :< cls) => cls -> IO Gradient\nget_gradient cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_get_gradient (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"get_gradient\" '[] (IO Gradient) where\n        nodeMethod = Godot.Core.Line2D.get_gradient\n\n{-# NOINLINE bindLine2D_get_joint_mode #-}\n\n-- | The style for the points between the start and the end.\nbindLine2D_get_joint_mode :: MethodBind\nbindLine2D_get_joint_mode\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_joint_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The style for the points between the start and the end.\nget_joint_mode :: (Line2D :< cls, Object :< cls) => cls -> IO Int\nget_joint_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_get_joint_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"get_joint_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Line2D.get_joint_mode\n\n{-# NOINLINE bindLine2D_get_point_count #-}\n\n-- | Returns the Line2D's amount of points.\nbindLine2D_get_point_count :: MethodBind\nbindLine2D_get_point_count\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the Line2D's amount of points.\nget_point_count :: (Line2D :< cls, Object :< cls) => cls -> IO Int\nget_point_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_get_point_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"get_point_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Line2D.get_point_count\n\n{-# NOINLINE bindLine2D_get_point_position #-}\n\n-- | Returns point @i@'s position.\nbindLine2D_get_point_position :: MethodBind\nbindLine2D_get_point_position\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns point @i@'s position.\nget_point_position ::\n                     (Line2D :< cls, Object :< cls) => cls -> Int -> IO Vector2\nget_point_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_get_point_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"get_point_position\" '[Int] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Line2D.get_point_position\n\n{-# NOINLINE bindLine2D_get_points #-}\n\n-- | The points that form the lines. The line is drawn between every point set in this array. Points are interpreted as local vectors.\nbindLine2D_get_points :: MethodBind\nbindLine2D_get_points\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The points that form the lines. The line is drawn between every point set in this array. Points are interpreted as local vectors.\nget_points ::\n             (Line2D :< cls, Object :< cls) => cls -> IO PoolVector2Array\nget_points cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_get_points (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"get_points\" '[] (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.Line2D.get_points\n\n{-# NOINLINE bindLine2D_get_round_precision #-}\n\n-- | The smoothness of the rounded joints and caps. This is only used if a cap or joint is set as round.\nbindLine2D_get_round_precision :: MethodBind\nbindLine2D_get_round_precision\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_round_precision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The smoothness of the rounded joints and caps. This is only used if a cap or joint is set as round.\nget_round_precision ::\n                      (Line2D :< cls, Object :< cls) => cls -> IO Int\nget_round_precision cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_get_round_precision (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"get_round_precision\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Line2D.get_round_precision\n\n{-# NOINLINE bindLine2D_get_sharp_limit #-}\n\n-- | The direction difference in radians between vector points. This value is only used if @joint mode@ is set to @LINE_JOINT_SHARP@.\nbindLine2D_get_sharp_limit :: MethodBind\nbindLine2D_get_sharp_limit\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_sharp_limit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The direction difference in radians between vector points. This value is only used if @joint mode@ is set to @LINE_JOINT_SHARP@.\nget_sharp_limit ::\n                  (Line2D :< cls, Object :< cls) => cls -> IO Float\nget_sharp_limit cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_get_sharp_limit (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"get_sharp_limit\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Line2D.get_sharp_limit\n\n{-# NOINLINE bindLine2D_get_texture #-}\n\n-- | The texture used for the line's texture. Uses @texture_mode@ for drawing style.\nbindLine2D_get_texture :: MethodBind\nbindLine2D_get_texture\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The texture used for the line's texture. Uses @texture_mode@ for drawing style.\nget_texture :: (Line2D :< cls, Object :< cls) => cls -> IO Texture\nget_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_get_texture (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"get_texture\" '[] (IO Texture) where\n        nodeMethod = Godot.Core.Line2D.get_texture\n\n{-# NOINLINE bindLine2D_get_texture_mode #-}\n\n-- | The style to render the @texture@ on the line. Use @enum LineTextureMode@ constants.\nbindLine2D_get_texture_mode :: MethodBind\nbindLine2D_get_texture_mode\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The style to render the @texture@ on the line. Use @enum LineTextureMode@ constants.\nget_texture_mode :: (Line2D :< cls, Object :< cls) => cls -> IO Int\nget_texture_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_get_texture_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"get_texture_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Line2D.get_texture_mode\n\n{-# NOINLINE bindLine2D_get_width #-}\n\n-- | The line's width.\nbindLine2D_get_width :: MethodBind\nbindLine2D_get_width\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The line's width.\nget_width :: (Line2D :< cls, Object :< cls) => cls -> IO Float\nget_width cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_get_width (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"get_width\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Line2D.get_width\n\n{-# NOINLINE bindLine2D_remove_point #-}\n\n-- | Removes the point at index @i@ from the line.\nbindLine2D_remove_point :: MethodBind\nbindLine2D_remove_point\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"remove_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the point at index @i@ from the line.\nremove_point ::\n               (Line2D :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_remove_point (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"remove_point\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Line2D.remove_point\n\n{-# NOINLINE bindLine2D_set_antialiased #-}\n\n-- | If @true@, the line's border will be anti-aliased.\nbindLine2D_set_antialiased :: MethodBind\nbindLine2D_set_antialiased\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_antialiased\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the line's border will be anti-aliased.\nset_antialiased ::\n                  (Line2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_antialiased cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_set_antialiased (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"set_antialiased\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Line2D.set_antialiased\n\n{-# NOINLINE bindLine2D_set_begin_cap_mode #-}\n\n-- | Controls the style of the line's first point. Use @enum LineCapMode@ constants.\nbindLine2D_set_begin_cap_mode :: MethodBind\nbindLine2D_set_begin_cap_mode\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_begin_cap_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls the style of the line's first point. Use @enum LineCapMode@ constants.\nset_begin_cap_mode ::\n                     (Line2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_begin_cap_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_set_begin_cap_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"set_begin_cap_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Line2D.set_begin_cap_mode\n\n{-# NOINLINE bindLine2D_set_curve #-}\n\n-- | The line's width varies with the curve. The original width is simply multiply by the value of the Curve.\nbindLine2D_set_curve :: MethodBind\nbindLine2D_set_curve\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The line's width varies with the curve. The original width is simply multiply by the value of the Curve.\nset_curve ::\n            (Line2D :< cls, Object :< cls) => cls -> Curve -> IO ()\nset_curve cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_set_curve (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"set_curve\" '[Curve] (IO ()) where\n        nodeMethod = Godot.Core.Line2D.set_curve\n\n{-# NOINLINE bindLine2D_set_default_color #-}\n\n-- | The line's color. Will not be used if a gradient is set.\nbindLine2D_set_default_color :: MethodBind\nbindLine2D_set_default_color\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_default_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The line's color. Will not be used if a gradient is set.\nset_default_color ::\n                    (Line2D :< cls, Object :< cls) => cls -> Color -> IO ()\nset_default_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_set_default_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"set_default_color\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.Line2D.set_default_color\n\n{-# NOINLINE bindLine2D_set_end_cap_mode #-}\n\n-- | Controls the style of the line's last point. Use @enum LineCapMode@ constants.\nbindLine2D_set_end_cap_mode :: MethodBind\nbindLine2D_set_end_cap_mode\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_end_cap_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls the style of the line's last point. Use @enum LineCapMode@ constants.\nset_end_cap_mode ::\n                   (Line2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_end_cap_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_set_end_cap_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"set_end_cap_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Line2D.set_end_cap_mode\n\n{-# NOINLINE bindLine2D_set_gradient #-}\n\n-- | The gradient is drawn through the whole line from start to finish. The default color will not be used if a gradient is set.\nbindLine2D_set_gradient :: MethodBind\nbindLine2D_set_gradient\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_gradient\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The gradient is drawn through the whole line from start to finish. The default color will not be used if a gradient is set.\nset_gradient ::\n               (Line2D :< cls, Object :< cls) => cls -> Gradient -> IO ()\nset_gradient cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_set_gradient (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"set_gradient\" '[Gradient] (IO ()) where\n        nodeMethod = Godot.Core.Line2D.set_gradient\n\n{-# NOINLINE bindLine2D_set_joint_mode #-}\n\n-- | The style for the points between the start and the end.\nbindLine2D_set_joint_mode :: MethodBind\nbindLine2D_set_joint_mode\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_joint_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The style for the points between the start and the end.\nset_joint_mode ::\n                 (Line2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_joint_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_set_joint_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"set_joint_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Line2D.set_joint_mode\n\n{-# NOINLINE bindLine2D_set_point_position #-}\n\n-- | Overwrites the position in point @i@ with the supplied @position@.\nbindLine2D_set_point_position :: MethodBind\nbindLine2D_set_point_position\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Overwrites the position in point @i@ with the supplied @position@.\nset_point_position ::\n                     (Line2D :< cls, Object :< cls) => cls -> Int -> Vector2 -> IO ()\nset_point_position cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_set_point_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"set_point_position\" '[Int, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Line2D.set_point_position\n\n{-# NOINLINE bindLine2D_set_points #-}\n\n-- | The points that form the lines. The line is drawn between every point set in this array. Points are interpreted as local vectors.\nbindLine2D_set_points :: MethodBind\nbindLine2D_set_points\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_points\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The points that form the lines. The line is drawn between every point set in this array. Points are interpreted as local vectors.\nset_points ::\n             (Line2D :< cls, Object :< cls) => cls -> PoolVector2Array -> IO ()\nset_points cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_set_points (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"set_points\" '[PoolVector2Array] (IO ())\n         where\n        nodeMethod = Godot.Core.Line2D.set_points\n\n{-# NOINLINE bindLine2D_set_round_precision #-}\n\n-- | The smoothness of the rounded joints and caps. This is only used if a cap or joint is set as round.\nbindLine2D_set_round_precision :: MethodBind\nbindLine2D_set_round_precision\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_round_precision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The smoothness of the rounded joints and caps. This is only used if a cap or joint is set as round.\nset_round_precision ::\n                      (Line2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_round_precision cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_set_round_precision (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"set_round_precision\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Line2D.set_round_precision\n\n{-# NOINLINE bindLine2D_set_sharp_limit #-}\n\n-- | The direction difference in radians between vector points. This value is only used if @joint mode@ is set to @LINE_JOINT_SHARP@.\nbindLine2D_set_sharp_limit :: MethodBind\nbindLine2D_set_sharp_limit\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_sharp_limit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The direction difference in radians between vector points. This value is only used if @joint mode@ is set to @LINE_JOINT_SHARP@.\nset_sharp_limit ::\n                  (Line2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_sharp_limit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_set_sharp_limit (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"set_sharp_limit\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Line2D.set_sharp_limit\n\n{-# NOINLINE bindLine2D_set_texture #-}\n\n-- | The texture used for the line's texture. Uses @texture_mode@ for drawing style.\nbindLine2D_set_texture :: MethodBind\nbindLine2D_set_texture\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The texture used for the line's texture. Uses @texture_mode@ for drawing style.\nset_texture ::\n              (Line2D :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_set_texture (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"set_texture\" '[Texture] (IO ()) where\n        nodeMethod = Godot.Core.Line2D.set_texture\n\n{-# NOINLINE bindLine2D_set_texture_mode #-}\n\n-- | The style to render the @texture@ on the line. Use @enum LineTextureMode@ constants.\nbindLine2D_set_texture_mode :: MethodBind\nbindLine2D_set_texture_mode\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The style to render the @texture@ on the line. Use @enum LineTextureMode@ constants.\nset_texture_mode ::\n                   (Line2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_texture_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_set_texture_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"set_texture_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Line2D.set_texture_mode\n\n{-# NOINLINE bindLine2D_set_width #-}\n\n-- | The line's width.\nbindLine2D_set_width :: MethodBind\nbindLine2D_set_width\n  = unsafePerformIO $\n      withCString \"Line2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The line's width.\nset_width ::\n            (Line2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_width cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLine2D_set_width (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Line2D \"set_width\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Line2D.set_width"
  },
  {
    "path": "src/Godot/Core/LineEdit.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.LineEdit\n       (Godot.Core.LineEdit._MENU_PASTE, Godot.Core.LineEdit._ALIGN_RIGHT,\n        Godot.Core.LineEdit._ALIGN_FILL, Godot.Core.LineEdit._MENU_CLEAR,\n        Godot.Core.LineEdit._MENU_MAX, Godot.Core.LineEdit._MENU_REDO,\n        Godot.Core.LineEdit._MENU_COPY, Godot.Core.LineEdit._MENU_UNDO,\n        Godot.Core.LineEdit._MENU_SELECT_ALL,\n        Godot.Core.LineEdit._MENU_CUT, Godot.Core.LineEdit._ALIGN_LEFT,\n        Godot.Core.LineEdit._ALIGN_CENTER,\n        Godot.Core.LineEdit.sig_text_change_rejected,\n        Godot.Core.LineEdit.sig_text_changed,\n        Godot.Core.LineEdit.sig_text_entered,\n        Godot.Core.LineEdit._editor_settings_changed,\n        Godot.Core.LineEdit._gui_input, Godot.Core.LineEdit._text_changed,\n        Godot.Core.LineEdit._toggle_draw_caret,\n        Godot.Core.LineEdit.append_at_cursor, Godot.Core.LineEdit.clear,\n        Godot.Core.LineEdit.cursor_get_blink_enabled,\n        Godot.Core.LineEdit.cursor_get_blink_speed,\n        Godot.Core.LineEdit.cursor_set_blink_enabled,\n        Godot.Core.LineEdit.cursor_set_blink_speed,\n        Godot.Core.LineEdit.deselect, Godot.Core.LineEdit.get_align,\n        Godot.Core.LineEdit.get_cursor_position,\n        Godot.Core.LineEdit.get_expand_to_text_length,\n        Godot.Core.LineEdit.get_max_length, Godot.Core.LineEdit.get_menu,\n        Godot.Core.LineEdit.get_placeholder,\n        Godot.Core.LineEdit.get_placeholder_alpha,\n        Godot.Core.LineEdit.get_right_icon,\n        Godot.Core.LineEdit.get_secret_character,\n        Godot.Core.LineEdit.get_text,\n        Godot.Core.LineEdit.is_clear_button_enabled,\n        Godot.Core.LineEdit.is_context_menu_enabled,\n        Godot.Core.LineEdit.is_editable, Godot.Core.LineEdit.is_secret,\n        Godot.Core.LineEdit.is_selecting_enabled,\n        Godot.Core.LineEdit.is_shortcut_keys_enabled,\n        Godot.Core.LineEdit.menu_option, Godot.Core.LineEdit.select,\n        Godot.Core.LineEdit.select_all, Godot.Core.LineEdit.set_align,\n        Godot.Core.LineEdit.set_clear_button_enabled,\n        Godot.Core.LineEdit.set_context_menu_enabled,\n        Godot.Core.LineEdit.set_cursor_position,\n        Godot.Core.LineEdit.set_editable,\n        Godot.Core.LineEdit.set_expand_to_text_length,\n        Godot.Core.LineEdit.set_max_length,\n        Godot.Core.LineEdit.set_placeholder,\n        Godot.Core.LineEdit.set_placeholder_alpha,\n        Godot.Core.LineEdit.set_right_icon, Godot.Core.LineEdit.set_secret,\n        Godot.Core.LineEdit.set_secret_character,\n        Godot.Core.LineEdit.set_selecting_enabled,\n        Godot.Core.LineEdit.set_shortcut_keys_enabled,\n        Godot.Core.LineEdit.set_text)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()\n\n_MENU_PASTE :: Int\n_MENU_PASTE = 2\n\n_ALIGN_RIGHT :: Int\n_ALIGN_RIGHT = 2\n\n_ALIGN_FILL :: Int\n_ALIGN_FILL = 3\n\n_MENU_CLEAR :: Int\n_MENU_CLEAR = 3\n\n_MENU_MAX :: Int\n_MENU_MAX = 7\n\n_MENU_REDO :: Int\n_MENU_REDO = 6\n\n_MENU_COPY :: Int\n_MENU_COPY = 1\n\n_MENU_UNDO :: Int\n_MENU_UNDO = 5\n\n_MENU_SELECT_ALL :: Int\n_MENU_SELECT_ALL = 4\n\n_MENU_CUT :: Int\n_MENU_CUT = 0\n\n_ALIGN_LEFT :: Int\n_ALIGN_LEFT = 0\n\n_ALIGN_CENTER :: Int\n_ALIGN_CENTER = 1\n\n-- | Emitted when trying to append text that would overflow the @max_length@.\nsig_text_change_rejected :: Godot.Internal.Dispatch.Signal LineEdit\nsig_text_change_rejected\n  = Godot.Internal.Dispatch.Signal \"text_change_rejected\"\n\ninstance NodeSignal LineEdit \"text_change_rejected\" '[]\n\n-- | Emitted when the text changes.\nsig_text_changed :: Godot.Internal.Dispatch.Signal LineEdit\nsig_text_changed = Godot.Internal.Dispatch.Signal \"text_changed\"\n\ninstance NodeSignal LineEdit \"text_changed\" '[GodotString]\n\n-- | Emitted when the user presses @KEY_ENTER@ on the @LineEdit@.\nsig_text_entered :: Godot.Internal.Dispatch.Signal LineEdit\nsig_text_entered = Godot.Internal.Dispatch.Signal \"text_entered\"\n\ninstance NodeSignal LineEdit \"text_entered\" '[GodotString]\n\ninstance NodeProperty LineEdit \"align\" Int 'False where\n        nodeProperty = (get_align, wrapDroppingSetter set_align, Nothing)\n\ninstance NodeProperty LineEdit \"caret_blink\" Bool 'False where\n        nodeProperty\n          = (cursor_get_blink_enabled,\n             wrapDroppingSetter cursor_set_blink_enabled, Nothing)\n\ninstance NodeProperty LineEdit \"caret_blink_speed\" Float 'False\n         where\n        nodeProperty\n          = (cursor_get_blink_speed,\n             wrapDroppingSetter cursor_set_blink_speed, Nothing)\n\ninstance NodeProperty LineEdit \"caret_position\" Int 'False where\n        nodeProperty\n          = (get_cursor_position, wrapDroppingSetter set_cursor_position,\n             Nothing)\n\ninstance NodeProperty LineEdit \"clear_button_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_clear_button_enabled,\n             wrapDroppingSetter set_clear_button_enabled, Nothing)\n\ninstance NodeProperty LineEdit \"context_menu_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_context_menu_enabled,\n             wrapDroppingSetter set_context_menu_enabled, Nothing)\n\ninstance NodeProperty LineEdit \"editable\" Bool 'False where\n        nodeProperty\n          = (is_editable, wrapDroppingSetter set_editable, Nothing)\n\ninstance NodeProperty LineEdit \"expand_to_text_length\" Bool 'False\n         where\n        nodeProperty\n          = (get_expand_to_text_length,\n             wrapDroppingSetter set_expand_to_text_length, Nothing)\n\ninstance NodeProperty LineEdit \"max_length\" Int 'False where\n        nodeProperty\n          = (get_max_length, wrapDroppingSetter set_max_length, Nothing)\n\ninstance NodeProperty LineEdit \"placeholder_alpha\" Float 'False\n         where\n        nodeProperty\n          = (get_placeholder_alpha, wrapDroppingSetter set_placeholder_alpha,\n             Nothing)\n\ninstance NodeProperty LineEdit \"placeholder_text\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_placeholder, wrapDroppingSetter set_placeholder, Nothing)\n\ninstance NodeProperty LineEdit \"right_icon\" Texture 'False where\n        nodeProperty\n          = (get_right_icon, wrapDroppingSetter set_right_icon, Nothing)\n\ninstance NodeProperty LineEdit \"secret\" Bool 'False where\n        nodeProperty = (is_secret, wrapDroppingSetter set_secret, Nothing)\n\ninstance NodeProperty LineEdit \"secret_character\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_secret_character, wrapDroppingSetter set_secret_character,\n             Nothing)\n\ninstance NodeProperty LineEdit \"selecting_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_selecting_enabled, wrapDroppingSetter set_selecting_enabled,\n             Nothing)\n\ninstance NodeProperty LineEdit \"shortcut_keys_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_shortcut_keys_enabled,\n             wrapDroppingSetter set_shortcut_keys_enabled, Nothing)\n\ninstance NodeProperty LineEdit \"text\" GodotString 'False where\n        nodeProperty = (get_text, wrapDroppingSetter set_text, Nothing)\n\n{-# NOINLINE bindLineEdit__editor_settings_changed #-}\n\nbindLineEdit__editor_settings_changed :: MethodBind\nbindLineEdit__editor_settings_changed\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_editor_settings_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_editor_settings_changed ::\n                           (LineEdit :< cls, Object :< cls) => cls -> IO ()\n_editor_settings_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit__editor_settings_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"_editor_settings_changed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.LineEdit._editor_settings_changed\n\n{-# NOINLINE bindLineEdit__gui_input #-}\n\nbindLineEdit__gui_input :: MethodBind\nbindLineEdit__gui_input\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (LineEdit :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit__gui_input (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"_gui_input\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.LineEdit._gui_input\n\n{-# NOINLINE bindLineEdit__text_changed #-}\n\nbindLineEdit__text_changed :: MethodBind\nbindLineEdit__text_changed\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_text_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_text_changed :: (LineEdit :< cls, Object :< cls) => cls -> IO ()\n_text_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit__text_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"_text_changed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.LineEdit._text_changed\n\n{-# NOINLINE bindLineEdit__toggle_draw_caret #-}\n\nbindLineEdit__toggle_draw_caret :: MethodBind\nbindLineEdit__toggle_draw_caret\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_toggle_draw_caret\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_toggle_draw_caret ::\n                     (LineEdit :< cls, Object :< cls) => cls -> IO ()\n_toggle_draw_caret cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit__toggle_draw_caret (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"_toggle_draw_caret\" '[] (IO ()) where\n        nodeMethod = Godot.Core.LineEdit._toggle_draw_caret\n\n{-# NOINLINE bindLineEdit_append_at_cursor #-}\n\n-- | Adds @text@ after the cursor. If the resulting value is longer than @max_length@, nothing happens.\nbindLineEdit_append_at_cursor :: MethodBind\nbindLineEdit_append_at_cursor\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"append_at_cursor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds @text@ after the cursor. If the resulting value is longer than @max_length@, nothing happens.\nappend_at_cursor ::\n                   (LineEdit :< cls, Object :< cls) => cls -> GodotString -> IO ()\nappend_at_cursor cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_append_at_cursor (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"append_at_cursor\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.LineEdit.append_at_cursor\n\n{-# NOINLINE bindLineEdit_clear #-}\n\n-- | Erases the @LineEdit@'s @text@.\nbindLineEdit_clear :: MethodBind\nbindLineEdit_clear\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Erases the @LineEdit@'s @text@.\nclear :: (LineEdit :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_clear (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.LineEdit.clear\n\n{-# NOINLINE bindLineEdit_cursor_get_blink_enabled #-}\n\n-- | If @true@, the caret (visual cursor) blinks.\nbindLineEdit_cursor_get_blink_enabled :: MethodBind\nbindLineEdit_cursor_get_blink_enabled\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"cursor_get_blink_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the caret (visual cursor) blinks.\ncursor_get_blink_enabled ::\n                           (LineEdit :< cls, Object :< cls) => cls -> IO Bool\ncursor_get_blink_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_cursor_get_blink_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"cursor_get_blink_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.LineEdit.cursor_get_blink_enabled\n\n{-# NOINLINE bindLineEdit_cursor_get_blink_speed #-}\n\n-- | Duration (in seconds) of a caret's blinking cycle.\nbindLineEdit_cursor_get_blink_speed :: MethodBind\nbindLineEdit_cursor_get_blink_speed\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"cursor_get_blink_speed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Duration (in seconds) of a caret's blinking cycle.\ncursor_get_blink_speed ::\n                         (LineEdit :< cls, Object :< cls) => cls -> IO Float\ncursor_get_blink_speed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_cursor_get_blink_speed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"cursor_get_blink_speed\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.LineEdit.cursor_get_blink_speed\n\n{-# NOINLINE bindLineEdit_cursor_set_blink_enabled #-}\n\n-- | If @true@, the caret (visual cursor) blinks.\nbindLineEdit_cursor_set_blink_enabled :: MethodBind\nbindLineEdit_cursor_set_blink_enabled\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"cursor_set_blink_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the caret (visual cursor) blinks.\ncursor_set_blink_enabled ::\n                           (LineEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\ncursor_set_blink_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_cursor_set_blink_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"cursor_set_blink_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.LineEdit.cursor_set_blink_enabled\n\n{-# NOINLINE bindLineEdit_cursor_set_blink_speed #-}\n\n-- | Duration (in seconds) of a caret's blinking cycle.\nbindLineEdit_cursor_set_blink_speed :: MethodBind\nbindLineEdit_cursor_set_blink_speed\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"cursor_set_blink_speed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Duration (in seconds) of a caret's blinking cycle.\ncursor_set_blink_speed ::\n                         (LineEdit :< cls, Object :< cls) => cls -> Float -> IO ()\ncursor_set_blink_speed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_cursor_set_blink_speed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"cursor_set_blink_speed\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.LineEdit.cursor_set_blink_speed\n\n{-# NOINLINE bindLineEdit_deselect #-}\n\n-- | Clears the current selection.\nbindLineEdit_deselect :: MethodBind\nbindLineEdit_deselect\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"deselect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears the current selection.\ndeselect :: (LineEdit :< cls, Object :< cls) => cls -> IO ()\ndeselect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_deselect (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"deselect\" '[] (IO ()) where\n        nodeMethod = Godot.Core.LineEdit.deselect\n\n{-# NOINLINE bindLineEdit_get_align #-}\n\n-- | Text alignment as defined in the @enum Align@ enum.\nbindLineEdit_get_align :: MethodBind\nbindLineEdit_get_align\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_align\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Text alignment as defined in the @enum Align@ enum.\nget_align :: (LineEdit :< cls, Object :< cls) => cls -> IO Int\nget_align cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_get_align (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"get_align\" '[] (IO Int) where\n        nodeMethod = Godot.Core.LineEdit.get_align\n\n{-# NOINLINE bindLineEdit_get_cursor_position #-}\n\n-- | The cursor's position inside the @LineEdit@. When set, the text may scroll to accommodate it.\nbindLineEdit_get_cursor_position :: MethodBind\nbindLineEdit_get_cursor_position\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_cursor_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The cursor's position inside the @LineEdit@. When set, the text may scroll to accommodate it.\nget_cursor_position ::\n                      (LineEdit :< cls, Object :< cls) => cls -> IO Int\nget_cursor_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_get_cursor_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"get_cursor_position\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.LineEdit.get_cursor_position\n\n{-# NOINLINE bindLineEdit_get_expand_to_text_length #-}\n\n-- | If @true@, the @LineEdit@ width will increase to stay longer than the @text@. It will __not__ compress if the @text@ is shortened.\nbindLineEdit_get_expand_to_text_length :: MethodBind\nbindLineEdit_get_expand_to_text_length\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_expand_to_text_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @LineEdit@ width will increase to stay longer than the @text@. It will __not__ compress if the @text@ is shortened.\nget_expand_to_text_length ::\n                            (LineEdit :< cls, Object :< cls) => cls -> IO Bool\nget_expand_to_text_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_get_expand_to_text_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"get_expand_to_text_length\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.LineEdit.get_expand_to_text_length\n\n{-# NOINLINE bindLineEdit_get_max_length #-}\n\n-- | Maximum amount of characters that can be entered inside the @LineEdit@. If @0@, there is no limit.\nbindLineEdit_get_max_length :: MethodBind\nbindLineEdit_get_max_length\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_max_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum amount of characters that can be entered inside the @LineEdit@. If @0@, there is no limit.\nget_max_length :: (LineEdit :< cls, Object :< cls) => cls -> IO Int\nget_max_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_get_max_length (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"get_max_length\" '[] (IO Int) where\n        nodeMethod = Godot.Core.LineEdit.get_max_length\n\n{-# NOINLINE bindLineEdit_get_menu #-}\n\n-- | Returns the @PopupMenu@ of this @LineEdit@. By default, this menu is displayed when right-clicking on the @LineEdit@.\nbindLineEdit_get_menu :: MethodBind\nbindLineEdit_get_menu\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_menu\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @PopupMenu@ of this @LineEdit@. By default, this menu is displayed when right-clicking on the @LineEdit@.\nget_menu :: (LineEdit :< cls, Object :< cls) => cls -> IO PopupMenu\nget_menu cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_get_menu (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"get_menu\" '[] (IO PopupMenu) where\n        nodeMethod = Godot.Core.LineEdit.get_menu\n\n{-# NOINLINE bindLineEdit_get_placeholder #-}\n\n-- | Text shown when the @LineEdit@ is empty. It is __not__ the @LineEdit@'s default value (see @text@).\nbindLineEdit_get_placeholder :: MethodBind\nbindLineEdit_get_placeholder\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_placeholder\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Text shown when the @LineEdit@ is empty. It is __not__ the @LineEdit@'s default value (see @text@).\nget_placeholder ::\n                  (LineEdit :< cls, Object :< cls) => cls -> IO GodotString\nget_placeholder cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_get_placeholder (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"get_placeholder\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.LineEdit.get_placeholder\n\n{-# NOINLINE bindLineEdit_get_placeholder_alpha #-}\n\n-- | Opacity of the @placeholder_text@. From @0@ to @1@.\nbindLineEdit_get_placeholder_alpha :: MethodBind\nbindLineEdit_get_placeholder_alpha\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_placeholder_alpha\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Opacity of the @placeholder_text@. From @0@ to @1@.\nget_placeholder_alpha ::\n                        (LineEdit :< cls, Object :< cls) => cls -> IO Float\nget_placeholder_alpha cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_get_placeholder_alpha\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"get_placeholder_alpha\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.LineEdit.get_placeholder_alpha\n\n{-# NOINLINE bindLineEdit_get_right_icon #-}\n\n-- | Sets the icon that will appear in the right end of the @LineEdit@ if there's no @text@, or always, if @clear_button_enabled@ is set to @false@.\nbindLineEdit_get_right_icon :: MethodBind\nbindLineEdit_get_right_icon\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_right_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the icon that will appear in the right end of the @LineEdit@ if there's no @text@, or always, if @clear_button_enabled@ is set to @false@.\nget_right_icon ::\n                 (LineEdit :< cls, Object :< cls) => cls -> IO Texture\nget_right_icon cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_get_right_icon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"get_right_icon\" '[] (IO Texture)\n         where\n        nodeMethod = Godot.Core.LineEdit.get_right_icon\n\n{-# NOINLINE bindLineEdit_get_secret_character #-}\n\n-- | The character to use to mask secret input (defaults to \"*\"). Only a single character can be used as the secret character.\nbindLineEdit_get_secret_character :: MethodBind\nbindLineEdit_get_secret_character\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_secret_character\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The character to use to mask secret input (defaults to \"*\"). Only a single character can be used as the secret character.\nget_secret_character ::\n                       (LineEdit :< cls, Object :< cls) => cls -> IO GodotString\nget_secret_character cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_get_secret_character\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"get_secret_character\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.LineEdit.get_secret_character\n\n{-# NOINLINE bindLineEdit_get_text #-}\n\n-- | String value of the @LineEdit@.\n--   \t\t\t__Note:__ Changing text using this property won't emit the @signal text_changed@ signal.\nbindLineEdit_get_text :: MethodBind\nbindLineEdit_get_text\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | String value of the @LineEdit@.\n--   \t\t\t__Note:__ Changing text using this property won't emit the @signal text_changed@ signal.\nget_text ::\n           (LineEdit :< cls, Object :< cls) => cls -> IO GodotString\nget_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_get_text (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"get_text\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.LineEdit.get_text\n\n{-# NOINLINE bindLineEdit_is_clear_button_enabled #-}\n\n-- | If @true@, the @LineEdit@ will show a clear button if @text@ is not empty, which can be used to clear the text quickly.\nbindLineEdit_is_clear_button_enabled :: MethodBind\nbindLineEdit_is_clear_button_enabled\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_clear_button_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @LineEdit@ will show a clear button if @text@ is not empty, which can be used to clear the text quickly.\nis_clear_button_enabled ::\n                          (LineEdit :< cls, Object :< cls) => cls -> IO Bool\nis_clear_button_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_is_clear_button_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"is_clear_button_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.LineEdit.is_clear_button_enabled\n\n{-# NOINLINE bindLineEdit_is_context_menu_enabled #-}\n\n-- | If @true@, the context menu will appear when right-clicked.\nbindLineEdit_is_context_menu_enabled :: MethodBind\nbindLineEdit_is_context_menu_enabled\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_context_menu_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the context menu will appear when right-clicked.\nis_context_menu_enabled ::\n                          (LineEdit :< cls, Object :< cls) => cls -> IO Bool\nis_context_menu_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_is_context_menu_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"is_context_menu_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.LineEdit.is_context_menu_enabled\n\n{-# NOINLINE bindLineEdit_is_editable #-}\n\n-- | If @false@, existing text cannot be modified and new text cannot be added.\nbindLineEdit_is_editable :: MethodBind\nbindLineEdit_is_editable\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_editable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @false@, existing text cannot be modified and new text cannot be added.\nis_editable :: (LineEdit :< cls, Object :< cls) => cls -> IO Bool\nis_editable cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_is_editable (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"is_editable\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.LineEdit.is_editable\n\n{-# NOINLINE bindLineEdit_is_secret #-}\n\n-- | If @true@, every character is replaced with the secret character (see @secret_character@).\nbindLineEdit_is_secret :: MethodBind\nbindLineEdit_is_secret\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_secret\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, every character is replaced with the secret character (see @secret_character@).\nis_secret :: (LineEdit :< cls, Object :< cls) => cls -> IO Bool\nis_secret cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_is_secret (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"is_secret\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.LineEdit.is_secret\n\n{-# NOINLINE bindLineEdit_is_selecting_enabled #-}\n\n-- | If @false@, it's impossible to select the text using mouse nor keyboard.\nbindLineEdit_is_selecting_enabled :: MethodBind\nbindLineEdit_is_selecting_enabled\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_selecting_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @false@, it's impossible to select the text using mouse nor keyboard.\nis_selecting_enabled ::\n                       (LineEdit :< cls, Object :< cls) => cls -> IO Bool\nis_selecting_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_is_selecting_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"is_selecting_enabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.LineEdit.is_selecting_enabled\n\n{-# NOINLINE bindLineEdit_is_shortcut_keys_enabled #-}\n\n-- | If @false@, using shortcuts will be disabled.\nbindLineEdit_is_shortcut_keys_enabled :: MethodBind\nbindLineEdit_is_shortcut_keys_enabled\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_shortcut_keys_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @false@, using shortcuts will be disabled.\nis_shortcut_keys_enabled ::\n                           (LineEdit :< cls, Object :< cls) => cls -> IO Bool\nis_shortcut_keys_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_is_shortcut_keys_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"is_shortcut_keys_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.LineEdit.is_shortcut_keys_enabled\n\n{-# NOINLINE bindLineEdit_menu_option #-}\n\n-- | Executes a given action as defined in the @enum MenuItems@ enum.\nbindLineEdit_menu_option :: MethodBind\nbindLineEdit_menu_option\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"menu_option\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Executes a given action as defined in the @enum MenuItems@ enum.\nmenu_option ::\n              (LineEdit :< cls, Object :< cls) => cls -> Int -> IO ()\nmenu_option cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_menu_option (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"menu_option\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.LineEdit.menu_option\n\n{-# NOINLINE bindLineEdit_select #-}\n\n-- | Selects characters inside @LineEdit@ between @from@ and @to@. By default, @from@ is at the beginning and @to@ at the end.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\ttext = \"Welcome\"\n--   \t\t\t\tselect() # Will select \"Welcome\".\n--   \t\t\t\tselect(4) # Will select \"ome\".\n--   \t\t\t\tselect(2, 5) # Will select \"lco\".\n--   \t\t\t\t\n--   @\nbindLineEdit_select :: MethodBind\nbindLineEdit_select\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"select\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Selects characters inside @LineEdit@ between @from@ and @to@. By default, @from@ is at the beginning and @to@ at the end.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\ttext = \"Welcome\"\n--   \t\t\t\tselect() # Will select \"Welcome\".\n--   \t\t\t\tselect(4) # Will select \"ome\".\n--   \t\t\t\tselect(2, 5) # Will select \"lco\".\n--   \t\t\t\t\n--   @\nselect ::\n         (LineEdit :< cls, Object :< cls) =>\n         cls -> Maybe Int -> Maybe Int -> IO ()\nselect cls arg1 arg2\n  = withVariantArray\n      [maybe (VariantInt (0)) toVariant arg1,\n       maybe (VariantInt (-1)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_select (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"select\" '[Maybe Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.LineEdit.select\n\n{-# NOINLINE bindLineEdit_select_all #-}\n\n-- | Selects the whole @String@.\nbindLineEdit_select_all :: MethodBind\nbindLineEdit_select_all\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"select_all\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Selects the whole @String@.\nselect_all :: (LineEdit :< cls, Object :< cls) => cls -> IO ()\nselect_all cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_select_all (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"select_all\" '[] (IO ()) where\n        nodeMethod = Godot.Core.LineEdit.select_all\n\n{-# NOINLINE bindLineEdit_set_align #-}\n\n-- | Text alignment as defined in the @enum Align@ enum.\nbindLineEdit_set_align :: MethodBind\nbindLineEdit_set_align\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_align\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Text alignment as defined in the @enum Align@ enum.\nset_align ::\n            (LineEdit :< cls, Object :< cls) => cls -> Int -> IO ()\nset_align cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_set_align (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"set_align\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.LineEdit.set_align\n\n{-# NOINLINE bindLineEdit_set_clear_button_enabled #-}\n\n-- | If @true@, the @LineEdit@ will show a clear button if @text@ is not empty, which can be used to clear the text quickly.\nbindLineEdit_set_clear_button_enabled :: MethodBind\nbindLineEdit_set_clear_button_enabled\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_clear_button_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @LineEdit@ will show a clear button if @text@ is not empty, which can be used to clear the text quickly.\nset_clear_button_enabled ::\n                           (LineEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_clear_button_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_set_clear_button_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"set_clear_button_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.LineEdit.set_clear_button_enabled\n\n{-# NOINLINE bindLineEdit_set_context_menu_enabled #-}\n\n-- | If @true@, the context menu will appear when right-clicked.\nbindLineEdit_set_context_menu_enabled :: MethodBind\nbindLineEdit_set_context_menu_enabled\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_context_menu_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the context menu will appear when right-clicked.\nset_context_menu_enabled ::\n                           (LineEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_context_menu_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_set_context_menu_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"set_context_menu_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.LineEdit.set_context_menu_enabled\n\n{-# NOINLINE bindLineEdit_set_cursor_position #-}\n\n-- | The cursor's position inside the @LineEdit@. When set, the text may scroll to accommodate it.\nbindLineEdit_set_cursor_position :: MethodBind\nbindLineEdit_set_cursor_position\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_cursor_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The cursor's position inside the @LineEdit@. When set, the text may scroll to accommodate it.\nset_cursor_position ::\n                      (LineEdit :< cls, Object :< cls) => cls -> Int -> IO ()\nset_cursor_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_set_cursor_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"set_cursor_position\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.LineEdit.set_cursor_position\n\n{-# NOINLINE bindLineEdit_set_editable #-}\n\n-- | If @false@, existing text cannot be modified and new text cannot be added.\nbindLineEdit_set_editable :: MethodBind\nbindLineEdit_set_editable\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_editable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @false@, existing text cannot be modified and new text cannot be added.\nset_editable ::\n               (LineEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_editable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_set_editable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"set_editable\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.LineEdit.set_editable\n\n{-# NOINLINE bindLineEdit_set_expand_to_text_length #-}\n\n-- | If @true@, the @LineEdit@ width will increase to stay longer than the @text@. It will __not__ compress if the @text@ is shortened.\nbindLineEdit_set_expand_to_text_length :: MethodBind\nbindLineEdit_set_expand_to_text_length\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_expand_to_text_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @LineEdit@ width will increase to stay longer than the @text@. It will __not__ compress if the @text@ is shortened.\nset_expand_to_text_length ::\n                            (LineEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_expand_to_text_length cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_set_expand_to_text_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"set_expand_to_text_length\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.LineEdit.set_expand_to_text_length\n\n{-# NOINLINE bindLineEdit_set_max_length #-}\n\n-- | Maximum amount of characters that can be entered inside the @LineEdit@. If @0@, there is no limit.\nbindLineEdit_set_max_length :: MethodBind\nbindLineEdit_set_max_length\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_max_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum amount of characters that can be entered inside the @LineEdit@. If @0@, there is no limit.\nset_max_length ::\n                 (LineEdit :< cls, Object :< cls) => cls -> Int -> IO ()\nset_max_length cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_set_max_length (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"set_max_length\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.LineEdit.set_max_length\n\n{-# NOINLINE bindLineEdit_set_placeholder #-}\n\n-- | Text shown when the @LineEdit@ is empty. It is __not__ the @LineEdit@'s default value (see @text@).\nbindLineEdit_set_placeholder :: MethodBind\nbindLineEdit_set_placeholder\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_placeholder\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Text shown when the @LineEdit@ is empty. It is __not__ the @LineEdit@'s default value (see @text@).\nset_placeholder ::\n                  (LineEdit :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_placeholder cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_set_placeholder (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"set_placeholder\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.LineEdit.set_placeholder\n\n{-# NOINLINE bindLineEdit_set_placeholder_alpha #-}\n\n-- | Opacity of the @placeholder_text@. From @0@ to @1@.\nbindLineEdit_set_placeholder_alpha :: MethodBind\nbindLineEdit_set_placeholder_alpha\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_placeholder_alpha\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Opacity of the @placeholder_text@. From @0@ to @1@.\nset_placeholder_alpha ::\n                        (LineEdit :< cls, Object :< cls) => cls -> Float -> IO ()\nset_placeholder_alpha cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_set_placeholder_alpha\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"set_placeholder_alpha\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.LineEdit.set_placeholder_alpha\n\n{-# NOINLINE bindLineEdit_set_right_icon #-}\n\n-- | Sets the icon that will appear in the right end of the @LineEdit@ if there's no @text@, or always, if @clear_button_enabled@ is set to @false@.\nbindLineEdit_set_right_icon :: MethodBind\nbindLineEdit_set_right_icon\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_right_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the icon that will appear in the right end of the @LineEdit@ if there's no @text@, or always, if @clear_button_enabled@ is set to @false@.\nset_right_icon ::\n                 (LineEdit :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_right_icon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_set_right_icon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"set_right_icon\" '[Texture] (IO ())\n         where\n        nodeMethod = Godot.Core.LineEdit.set_right_icon\n\n{-# NOINLINE bindLineEdit_set_secret #-}\n\n-- | If @true@, every character is replaced with the secret character (see @secret_character@).\nbindLineEdit_set_secret :: MethodBind\nbindLineEdit_set_secret\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_secret\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, every character is replaced with the secret character (see @secret_character@).\nset_secret ::\n             (LineEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_secret cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_set_secret (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"set_secret\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.LineEdit.set_secret\n\n{-# NOINLINE bindLineEdit_set_secret_character #-}\n\n-- | The character to use to mask secret input (defaults to \"*\"). Only a single character can be used as the secret character.\nbindLineEdit_set_secret_character :: MethodBind\nbindLineEdit_set_secret_character\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_secret_character\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The character to use to mask secret input (defaults to \"*\"). Only a single character can be used as the secret character.\nset_secret_character ::\n                       (LineEdit :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_secret_character cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_set_secret_character\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"set_secret_character\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.LineEdit.set_secret_character\n\n{-# NOINLINE bindLineEdit_set_selecting_enabled #-}\n\n-- | If @false@, it's impossible to select the text using mouse nor keyboard.\nbindLineEdit_set_selecting_enabled :: MethodBind\nbindLineEdit_set_selecting_enabled\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_selecting_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @false@, it's impossible to select the text using mouse nor keyboard.\nset_selecting_enabled ::\n                        (LineEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_selecting_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_set_selecting_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"set_selecting_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.LineEdit.set_selecting_enabled\n\n{-# NOINLINE bindLineEdit_set_shortcut_keys_enabled #-}\n\n-- | If @false@, using shortcuts will be disabled.\nbindLineEdit_set_shortcut_keys_enabled :: MethodBind\nbindLineEdit_set_shortcut_keys_enabled\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_shortcut_keys_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @false@, using shortcuts will be disabled.\nset_shortcut_keys_enabled ::\n                            (LineEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_shortcut_keys_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_set_shortcut_keys_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"set_shortcut_keys_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.LineEdit.set_shortcut_keys_enabled\n\n{-# NOINLINE bindLineEdit_set_text #-}\n\n-- | String value of the @LineEdit@.\n--   \t\t\t__Note:__ Changing text using this property won't emit the @signal text_changed@ signal.\nbindLineEdit_set_text :: MethodBind\nbindLineEdit_set_text\n  = unsafePerformIO $\n      withCString \"LineEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | String value of the @LineEdit@.\n--   \t\t\t__Note:__ Changing text using this property won't emit the @signal text_changed@ signal.\nset_text ::\n           (LineEdit :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_text cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineEdit_set_text (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineEdit \"set_text\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.LineEdit.set_text"
  },
  {
    "path": "src/Godot/Core/LineShape2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.LineShape2D\n       (Godot.Core.LineShape2D.get_d, Godot.Core.LineShape2D.get_normal,\n        Godot.Core.LineShape2D.set_d, Godot.Core.LineShape2D.set_normal)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Shape2D()\n\ninstance NodeProperty LineShape2D \"d\" Float 'False where\n        nodeProperty = (get_d, wrapDroppingSetter set_d, Nothing)\n\ninstance NodeProperty LineShape2D \"normal\" Vector2 'False where\n        nodeProperty = (get_normal, wrapDroppingSetter set_normal, Nothing)\n\n{-# NOINLINE bindLineShape2D_get_d #-}\n\n-- | The line's distance from the origin.\nbindLineShape2D_get_d :: MethodBind\nbindLineShape2D_get_d\n  = unsafePerformIO $\n      withCString \"LineShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The line's distance from the origin.\nget_d :: (LineShape2D :< cls, Object :< cls) => cls -> IO Float\nget_d cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineShape2D_get_d (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineShape2D \"get_d\" '[] (IO Float) where\n        nodeMethod = Godot.Core.LineShape2D.get_d\n\n{-# NOINLINE bindLineShape2D_get_normal #-}\n\n-- | The line's normal.\nbindLineShape2D_get_normal :: MethodBind\nbindLineShape2D_get_normal\n  = unsafePerformIO $\n      withCString \"LineShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The line's normal.\nget_normal ::\n             (LineShape2D :< cls, Object :< cls) => cls -> IO Vector2\nget_normal cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineShape2D_get_normal (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineShape2D \"get_normal\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.LineShape2D.get_normal\n\n{-# NOINLINE bindLineShape2D_set_d #-}\n\n-- | The line's distance from the origin.\nbindLineShape2D_set_d :: MethodBind\nbindLineShape2D_set_d\n  = unsafePerformIO $\n      withCString \"LineShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The line's distance from the origin.\nset_d ::\n        (LineShape2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_d cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineShape2D_set_d (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineShape2D \"set_d\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.LineShape2D.set_d\n\n{-# NOINLINE bindLineShape2D_set_normal #-}\n\n-- | The line's normal.\nbindLineShape2D_set_normal :: MethodBind\nbindLineShape2D_set_normal\n  = unsafePerformIO $\n      withCString \"LineShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The line's normal.\nset_normal ::\n             (LineShape2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_normal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLineShape2D_set_normal (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LineShape2D \"set_normal\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.LineShape2D.set_normal"
  },
  {
    "path": "src/Godot/Core/LinkButton.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.LinkButton\n       (Godot.Core.LinkButton._UNDERLINE_MODE_ALWAYS,\n        Godot.Core.LinkButton._UNDERLINE_MODE_NEVER,\n        Godot.Core.LinkButton._UNDERLINE_MODE_ON_HOVER,\n        Godot.Core.LinkButton.get_text,\n        Godot.Core.LinkButton.get_underline_mode,\n        Godot.Core.LinkButton.set_text,\n        Godot.Core.LinkButton.set_underline_mode)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.BaseButton()\n\n_UNDERLINE_MODE_ALWAYS :: Int\n_UNDERLINE_MODE_ALWAYS = 0\n\n_UNDERLINE_MODE_NEVER :: Int\n_UNDERLINE_MODE_NEVER = 2\n\n_UNDERLINE_MODE_ON_HOVER :: Int\n_UNDERLINE_MODE_ON_HOVER = 1\n\ninstance NodeProperty LinkButton \"text\" GodotString 'False where\n        nodeProperty = (get_text, wrapDroppingSetter set_text, Nothing)\n\ninstance NodeProperty LinkButton \"underline\" Int 'False where\n        nodeProperty\n          = (get_underline_mode, wrapDroppingSetter set_underline_mode,\n             Nothing)\n\n{-# NOINLINE bindLinkButton_get_text #-}\n\n-- | The button's text that will be displayed inside the button's area.\nbindLinkButton_get_text :: MethodBind\nbindLinkButton_get_text\n  = unsafePerformIO $\n      withCString \"LinkButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The button's text that will be displayed inside the button's area.\nget_text ::\n           (LinkButton :< cls, Object :< cls) => cls -> IO GodotString\nget_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLinkButton_get_text (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LinkButton \"get_text\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.LinkButton.get_text\n\n{-# NOINLINE bindLinkButton_get_underline_mode #-}\n\n-- | Determines when to show the underline. See @enum UnderlineMode@ for options.\nbindLinkButton_get_underline_mode :: MethodBind\nbindLinkButton_get_underline_mode\n  = unsafePerformIO $\n      withCString \"LinkButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_underline_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Determines when to show the underline. See @enum UnderlineMode@ for options.\nget_underline_mode ::\n                     (LinkButton :< cls, Object :< cls) => cls -> IO Int\nget_underline_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLinkButton_get_underline_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LinkButton \"get_underline_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.LinkButton.get_underline_mode\n\n{-# NOINLINE bindLinkButton_set_text #-}\n\n-- | The button's text that will be displayed inside the button's area.\nbindLinkButton_set_text :: MethodBind\nbindLinkButton_set_text\n  = unsafePerformIO $\n      withCString \"LinkButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The button's text that will be displayed inside the button's area.\nset_text ::\n           (LinkButton :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_text cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLinkButton_set_text (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LinkButton \"set_text\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.LinkButton.set_text\n\n{-# NOINLINE bindLinkButton_set_underline_mode #-}\n\n-- | Determines when to show the underline. See @enum UnderlineMode@ for options.\nbindLinkButton_set_underline_mode :: MethodBind\nbindLinkButton_set_underline_mode\n  = unsafePerformIO $\n      withCString \"LinkButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_underline_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Determines when to show the underline. See @enum UnderlineMode@ for options.\nset_underline_mode ::\n                     (LinkButton :< cls, Object :< cls) => cls -> Int -> IO ()\nset_underline_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindLinkButton_set_underline_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod LinkButton \"set_underline_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.LinkButton.set_underline_mode"
  },
  {
    "path": "src/Godot/Core/Listener.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Listener\n       (Godot.Core.Listener.clear_current,\n        Godot.Core.Listener.get_listener_transform,\n        Godot.Core.Listener.is_current, Godot.Core.Listener.make_current)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\n{-# NOINLINE bindListener_clear_current #-}\n\n-- | Disables the listener to use the current camera's listener instead.\nbindListener_clear_current :: MethodBind\nbindListener_clear_current\n  = unsafePerformIO $\n      withCString \"Listener\" $\n        \\ clsNamePtr ->\n          withCString \"clear_current\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Disables the listener to use the current camera's listener instead.\nclear_current :: (Listener :< cls, Object :< cls) => cls -> IO ()\nclear_current cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindListener_clear_current (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Listener \"clear_current\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Listener.clear_current\n\n{-# NOINLINE bindListener_get_listener_transform #-}\n\n-- | Returns the listener's global orthonormalized @Transform@.\nbindListener_get_listener_transform :: MethodBind\nbindListener_get_listener_transform\n  = unsafePerformIO $\n      withCString \"Listener\" $\n        \\ clsNamePtr ->\n          withCString \"get_listener_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the listener's global orthonormalized @Transform@.\nget_listener_transform ::\n                         (Listener :< cls, Object :< cls) => cls -> IO Transform\nget_listener_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindListener_get_listener_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Listener \"get_listener_transform\" '[]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.Listener.get_listener_transform\n\n{-# NOINLINE bindListener_is_current #-}\n\n-- | Returns @true@ if the listener was made current using @method make_current@, @false@ otherwise.\n--   \t\t\t\t__Note:__ There may be more than one Listener marked as \"current\" in the scene tree, but only the one that was made current last will be used.\nbindListener_is_current :: MethodBind\nbindListener_is_current\n  = unsafePerformIO $\n      withCString \"Listener\" $\n        \\ clsNamePtr ->\n          withCString \"is_current\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the listener was made current using @method make_current@, @false@ otherwise.\n--   \t\t\t\t__Note:__ There may be more than one Listener marked as \"current\" in the scene tree, but only the one that was made current last will be used.\nis_current :: (Listener :< cls, Object :< cls) => cls -> IO Bool\nis_current cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindListener_is_current (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Listener \"is_current\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Listener.is_current\n\n{-# NOINLINE bindListener_make_current #-}\n\n-- | Enables the listener. This will override the current camera's listener.\nbindListener_make_current :: MethodBind\nbindListener_make_current\n  = unsafePerformIO $\n      withCString \"Listener\" $\n        \\ clsNamePtr ->\n          withCString \"make_current\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables the listener. This will override the current camera's listener.\nmake_current :: (Listener :< cls, Object :< cls) => cls -> IO ()\nmake_current cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindListener_make_current (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Listener \"make_current\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Listener.make_current"
  },
  {
    "path": "src/Godot/Core/MainLoop.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.MainLoop\n       (Godot.Core.MainLoop._NOTIFICATION_WM_ABOUT,\n        Godot.Core.MainLoop._NOTIFICATION_APP_PAUSED,\n        Godot.Core.MainLoop._NOTIFICATION_WM_GO_BACK_REQUEST,\n        Godot.Core.MainLoop._NOTIFICATION_WM_QUIT_REQUEST,\n        Godot.Core.MainLoop._NOTIFICATION_WM_FOCUS_IN,\n        Godot.Core.MainLoop._NOTIFICATION_WM_MOUSE_EXIT,\n        Godot.Core.MainLoop._NOTIFICATION_TRANSLATION_CHANGED,\n        Godot.Core.MainLoop._NOTIFICATION_WM_FOCUS_OUT,\n        Godot.Core.MainLoop._NOTIFICATION_OS_MEMORY_WARNING,\n        Godot.Core.MainLoop._NOTIFICATION_WM_UNFOCUS_REQUEST,\n        Godot.Core.MainLoop._NOTIFICATION_OS_IME_UPDATE,\n        Godot.Core.MainLoop._NOTIFICATION_APP_RESUMED,\n        Godot.Core.MainLoop._NOTIFICATION_WM_MOUSE_ENTER,\n        Godot.Core.MainLoop._NOTIFICATION_CRASH,\n        Godot.Core.MainLoop.sig_on_request_permissions_result,\n        Godot.Core.MainLoop._drop_files, Godot.Core.MainLoop._finalize,\n        Godot.Core.MainLoop._global_menu_action, Godot.Core.MainLoop._idle,\n        Godot.Core.MainLoop._initialize, Godot.Core.MainLoop._input_event,\n        Godot.Core.MainLoop._input_text, Godot.Core.MainLoop._iteration,\n        Godot.Core.MainLoop.finish, Godot.Core.MainLoop.idle,\n        Godot.Core.MainLoop.init, Godot.Core.MainLoop.input_event,\n        Godot.Core.MainLoop.input_text, Godot.Core.MainLoop.iteration)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n_NOTIFICATION_WM_ABOUT :: Int\n_NOTIFICATION_WM_ABOUT = 1011\n\n_NOTIFICATION_APP_PAUSED :: Int\n_NOTIFICATION_APP_PAUSED = 1015\n\n_NOTIFICATION_WM_GO_BACK_REQUEST :: Int\n_NOTIFICATION_WM_GO_BACK_REQUEST = 1007\n\n_NOTIFICATION_WM_QUIT_REQUEST :: Int\n_NOTIFICATION_WM_QUIT_REQUEST = 1006\n\n_NOTIFICATION_WM_FOCUS_IN :: Int\n_NOTIFICATION_WM_FOCUS_IN = 1004\n\n_NOTIFICATION_WM_MOUSE_EXIT :: Int\n_NOTIFICATION_WM_MOUSE_EXIT = 1003\n\n_NOTIFICATION_TRANSLATION_CHANGED :: Int\n_NOTIFICATION_TRANSLATION_CHANGED = 1010\n\n_NOTIFICATION_WM_FOCUS_OUT :: Int\n_NOTIFICATION_WM_FOCUS_OUT = 1005\n\n_NOTIFICATION_OS_MEMORY_WARNING :: Int\n_NOTIFICATION_OS_MEMORY_WARNING = 1009\n\n_NOTIFICATION_WM_UNFOCUS_REQUEST :: Int\n_NOTIFICATION_WM_UNFOCUS_REQUEST = 1008\n\n_NOTIFICATION_OS_IME_UPDATE :: Int\n_NOTIFICATION_OS_IME_UPDATE = 1013\n\n_NOTIFICATION_APP_RESUMED :: Int\n_NOTIFICATION_APP_RESUMED = 1014\n\n_NOTIFICATION_WM_MOUSE_ENTER :: Int\n_NOTIFICATION_WM_MOUSE_ENTER = 1002\n\n_NOTIFICATION_CRASH :: Int\n_NOTIFICATION_CRASH = 1012\n\n-- | Emitted when a user responds to a permission request.\nsig_on_request_permissions_result ::\n                                  Godot.Internal.Dispatch.Signal MainLoop\nsig_on_request_permissions_result\n  = Godot.Internal.Dispatch.Signal \"on_request_permissions_result\"\n\ninstance NodeSignal MainLoop \"on_request_permissions_result\"\n           '[GodotString, Bool]\n\n{-# NOINLINE bindMainLoop__drop_files #-}\n\n-- | Called when files are dragged from the OS file manager and dropped in the game window. The arguments are a list of file paths and the identifier of the screen where the drag originated.\nbindMainLoop__drop_files :: MethodBind\nbindMainLoop__drop_files\n  = unsafePerformIO $\n      withCString \"MainLoop\" $\n        \\ clsNamePtr ->\n          withCString \"_drop_files\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called when files are dragged from the OS file manager and dropped in the game window. The arguments are a list of file paths and the identifier of the screen where the drag originated.\n_drop_files ::\n              (MainLoop :< cls, Object :< cls) =>\n              cls -> PoolStringArray -> Int -> IO ()\n_drop_files cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMainLoop__drop_files (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MainLoop \"_drop_files\" '[PoolStringArray, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MainLoop._drop_files\n\n{-# NOINLINE bindMainLoop__finalize #-}\n\n-- | Called before the program exits.\nbindMainLoop__finalize :: MethodBind\nbindMainLoop__finalize\n  = unsafePerformIO $\n      withCString \"MainLoop\" $\n        \\ clsNamePtr ->\n          withCString \"_finalize\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called before the program exits.\n_finalize :: (MainLoop :< cls, Object :< cls) => cls -> IO ()\n_finalize cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMainLoop__finalize (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MainLoop \"_finalize\" '[] (IO ()) where\n        nodeMethod = Godot.Core.MainLoop._finalize\n\n{-# NOINLINE bindMainLoop__global_menu_action #-}\n\n-- | Called when the user performs an action in the system global menu (e.g. the Mac OS menu bar).\nbindMainLoop__global_menu_action :: MethodBind\nbindMainLoop__global_menu_action\n  = unsafePerformIO $\n      withCString \"MainLoop\" $\n        \\ clsNamePtr ->\n          withCString \"_global_menu_action\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called when the user performs an action in the system global menu (e.g. the Mac OS menu bar).\n_global_menu_action ::\n                      (MainLoop :< cls, Object :< cls) =>\n                      cls -> GodotVariant -> GodotVariant -> IO ()\n_global_menu_action cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMainLoop__global_menu_action\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MainLoop \"_global_menu_action\"\n           '[GodotVariant, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MainLoop._global_menu_action\n\n{-# NOINLINE bindMainLoop__idle #-}\n\n-- | Called each idle frame with the time since the last idle frame as argument (in seconds). Equivalent to @method Node._process@.\n--   \t\t\t\tIf implemented, the method must return a boolean value. @true@ ends the main loop, while @false@ lets it proceed to the next frame.\nbindMainLoop__idle :: MethodBind\nbindMainLoop__idle\n  = unsafePerformIO $\n      withCString \"MainLoop\" $\n        \\ clsNamePtr ->\n          withCString \"_idle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called each idle frame with the time since the last idle frame as argument (in seconds). Equivalent to @method Node._process@.\n--   \t\t\t\tIf implemented, the method must return a boolean value. @true@ ends the main loop, while @false@ lets it proceed to the next frame.\n_idle ::\n        (MainLoop :< cls, Object :< cls) => cls -> Float -> IO Bool\n_idle cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMainLoop__idle (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MainLoop \"_idle\" '[Float] (IO Bool) where\n        nodeMethod = Godot.Core.MainLoop._idle\n\n{-# NOINLINE bindMainLoop__initialize #-}\n\n-- | Called once during initialization.\nbindMainLoop__initialize :: MethodBind\nbindMainLoop__initialize\n  = unsafePerformIO $\n      withCString \"MainLoop\" $\n        \\ clsNamePtr ->\n          withCString \"_initialize\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called once during initialization.\n_initialize :: (MainLoop :< cls, Object :< cls) => cls -> IO ()\n_initialize cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMainLoop__initialize (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MainLoop \"_initialize\" '[] (IO ()) where\n        nodeMethod = Godot.Core.MainLoop._initialize\n\n{-# NOINLINE bindMainLoop__input_event #-}\n\n-- | Called whenever an @InputEvent@ is received by the main loop.\nbindMainLoop__input_event :: MethodBind\nbindMainLoop__input_event\n  = unsafePerformIO $\n      withCString \"MainLoop\" $\n        \\ clsNamePtr ->\n          withCString \"_input_event\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called whenever an @InputEvent@ is received by the main loop.\n_input_event ::\n               (MainLoop :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_input_event cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMainLoop__input_event (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MainLoop \"_input_event\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.MainLoop._input_event\n\n{-# NOINLINE bindMainLoop__input_text #-}\n\n-- | Deprecated callback, does not do anything. Use @method _input_event@ to parse text input. Will be removed in Godot 4.0.\nbindMainLoop__input_text :: MethodBind\nbindMainLoop__input_text\n  = unsafePerformIO $\n      withCString \"MainLoop\" $\n        \\ clsNamePtr ->\n          withCString \"_input_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Deprecated callback, does not do anything. Use @method _input_event@ to parse text input. Will be removed in Godot 4.0.\n_input_text ::\n              (MainLoop :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_input_text cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMainLoop__input_text (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MainLoop \"_input_text\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.MainLoop._input_text\n\n{-# NOINLINE bindMainLoop__iteration #-}\n\n-- | Called each physics frame with the time since the last physics frame as argument (in seconds). Equivalent to @method Node._physics_process@.\n--   \t\t\t\tIf implemented, the method must return a boolean value. @true@ ends the main loop, while @false@ lets it proceed to the next frame.\nbindMainLoop__iteration :: MethodBind\nbindMainLoop__iteration\n  = unsafePerformIO $\n      withCString \"MainLoop\" $\n        \\ clsNamePtr ->\n          withCString \"_iteration\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called each physics frame with the time since the last physics frame as argument (in seconds). Equivalent to @method Node._physics_process@.\n--   \t\t\t\tIf implemented, the method must return a boolean value. @true@ ends the main loop, while @false@ lets it proceed to the next frame.\n_iteration ::\n             (MainLoop :< cls, Object :< cls) => cls -> Float -> IO Bool\n_iteration cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMainLoop__iteration (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MainLoop \"_iteration\" '[Float] (IO Bool) where\n        nodeMethod = Godot.Core.MainLoop._iteration\n\n{-# NOINLINE bindMainLoop_finish #-}\n\n-- | Should not be called manually, override @method _finalize@ instead. Will be removed in Godot 4.0.\nbindMainLoop_finish :: MethodBind\nbindMainLoop_finish\n  = unsafePerformIO $\n      withCString \"MainLoop\" $\n        \\ clsNamePtr ->\n          withCString \"finish\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Should not be called manually, override @method _finalize@ instead. Will be removed in Godot 4.0.\nfinish :: (MainLoop :< cls, Object :< cls) => cls -> IO ()\nfinish cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMainLoop_finish (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MainLoop \"finish\" '[] (IO ()) where\n        nodeMethod = Godot.Core.MainLoop.finish\n\n{-# NOINLINE bindMainLoop_idle #-}\n\n-- | Should not be called manually, override @method _idle@ instead. Will be removed in Godot 4.0.\nbindMainLoop_idle :: MethodBind\nbindMainLoop_idle\n  = unsafePerformIO $\n      withCString \"MainLoop\" $\n        \\ clsNamePtr ->\n          withCString \"idle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Should not be called manually, override @method _idle@ instead. Will be removed in Godot 4.0.\nidle :: (MainLoop :< cls, Object :< cls) => cls -> Float -> IO Bool\nidle cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMainLoop_idle (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MainLoop \"idle\" '[Float] (IO Bool) where\n        nodeMethod = Godot.Core.MainLoop.idle\n\n{-# NOINLINE bindMainLoop_init #-}\n\n-- | Should not be called manually, override @method _initialize@ instead. Will be removed in Godot 4.0.\nbindMainLoop_init :: MethodBind\nbindMainLoop_init\n  = unsafePerformIO $\n      withCString \"MainLoop\" $\n        \\ clsNamePtr ->\n          withCString \"init\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Should not be called manually, override @method _initialize@ instead. Will be removed in Godot 4.0.\ninit :: (MainLoop :< cls, Object :< cls) => cls -> IO ()\ninit cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMainLoop_init (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MainLoop \"init\" '[] (IO ()) where\n        nodeMethod = Godot.Core.MainLoop.init\n\n{-# NOINLINE bindMainLoop_input_event #-}\n\n-- | Should not be called manually, override @method _input_event@ instead. Will be removed in Godot 4.0.\nbindMainLoop_input_event :: MethodBind\nbindMainLoop_input_event\n  = unsafePerformIO $\n      withCString \"MainLoop\" $\n        \\ clsNamePtr ->\n          withCString \"input_event\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Should not be called manually, override @method _input_event@ instead. Will be removed in Godot 4.0.\ninput_event ::\n              (MainLoop :< cls, Object :< cls) => cls -> InputEvent -> IO ()\ninput_event cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMainLoop_input_event (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MainLoop \"input_event\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.MainLoop.input_event\n\n{-# NOINLINE bindMainLoop_input_text #-}\n\n-- | Should not be called manually, override @method _input_text@ instead. Will be removed in Godot 4.0.\nbindMainLoop_input_text :: MethodBind\nbindMainLoop_input_text\n  = unsafePerformIO $\n      withCString \"MainLoop\" $\n        \\ clsNamePtr ->\n          withCString \"input_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Should not be called manually, override @method _input_text@ instead. Will be removed in Godot 4.0.\ninput_text ::\n             (MainLoop :< cls, Object :< cls) => cls -> GodotString -> IO ()\ninput_text cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMainLoop_input_text (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MainLoop \"input_text\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.MainLoop.input_text\n\n{-# NOINLINE bindMainLoop_iteration #-}\n\n-- | Should not be called manually, override @method _iteration@ instead. Will be removed in Godot 4.0.\nbindMainLoop_iteration :: MethodBind\nbindMainLoop_iteration\n  = unsafePerformIO $\n      withCString \"MainLoop\" $\n        \\ clsNamePtr ->\n          withCString \"iteration\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Should not be called manually, override @method _iteration@ instead. Will be removed in Godot 4.0.\niteration ::\n            (MainLoop :< cls, Object :< cls) => cls -> Float -> IO Bool\niteration cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMainLoop_iteration (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MainLoop \"iteration\" '[Float] (IO Bool) where\n        nodeMethod = Godot.Core.MainLoop.iteration"
  },
  {
    "path": "src/Godot/Core/MarginContainer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.MarginContainer () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Container()"
  },
  {
    "path": "src/Godot/Core/Marshalls.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Marshalls\n       (Godot.Core.Marshalls.base64_to_raw,\n        Godot.Core.Marshalls.base64_to_utf8,\n        Godot.Core.Marshalls.base64_to_variant,\n        Godot.Core.Marshalls.raw_to_base64,\n        Godot.Core.Marshalls.utf8_to_base64,\n        Godot.Core.Marshalls.variant_to_base64)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindMarshalls_base64_to_raw #-}\n\n-- | Returns a decoded @PoolByteArray@ corresponding to the Base64-encoded string @base64_str@.\nbindMarshalls_base64_to_raw :: MethodBind\nbindMarshalls_base64_to_raw\n  = unsafePerformIO $\n      withCString \"_Marshalls\" $\n        \\ clsNamePtr ->\n          withCString \"base64_to_raw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a decoded @PoolByteArray@ corresponding to the Base64-encoded string @base64_str@.\nbase64_to_raw ::\n                (Marshalls :< cls, Object :< cls) =>\n                cls -> GodotString -> IO PoolByteArray\nbase64_to_raw cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMarshalls_base64_to_raw (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Marshalls \"base64_to_raw\" '[GodotString]\n           (IO PoolByteArray)\n         where\n        nodeMethod = Godot.Core.Marshalls.base64_to_raw\n\n{-# NOINLINE bindMarshalls_base64_to_utf8 #-}\n\n-- | Returns a decoded string corresponding to the Base64-encoded string @base64_str@.\nbindMarshalls_base64_to_utf8 :: MethodBind\nbindMarshalls_base64_to_utf8\n  = unsafePerformIO $\n      withCString \"_Marshalls\" $\n        \\ clsNamePtr ->\n          withCString \"base64_to_utf8\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a decoded string corresponding to the Base64-encoded string @base64_str@.\nbase64_to_utf8 ::\n                 (Marshalls :< cls, Object :< cls) =>\n                 cls -> GodotString -> IO GodotString\nbase64_to_utf8 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMarshalls_base64_to_utf8 (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Marshalls \"base64_to_utf8\" '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Marshalls.base64_to_utf8\n\n{-# NOINLINE bindMarshalls_base64_to_variant #-}\n\n-- | Returns a decoded @Variant@ corresponding to the Base64-encoded string @base64_str@. If @allow_objects@ is @true@, decoding objects is allowed.\n--   \t\t\t\t__Warning:__ Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.\nbindMarshalls_base64_to_variant :: MethodBind\nbindMarshalls_base64_to_variant\n  = unsafePerformIO $\n      withCString \"_Marshalls\" $\n        \\ clsNamePtr ->\n          withCString \"base64_to_variant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a decoded @Variant@ corresponding to the Base64-encoded string @base64_str@. If @allow_objects@ is @true@, decoding objects is allowed.\n--   \t\t\t\t__Warning:__ Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.\nbase64_to_variant ::\n                    (Marshalls :< cls, Object :< cls) =>\n                    cls -> GodotString -> Maybe Bool -> IO GodotVariant\nbase64_to_variant cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMarshalls_base64_to_variant (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Marshalls \"base64_to_variant\"\n           '[GodotString, Maybe Bool]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Marshalls.base64_to_variant\n\n{-# NOINLINE bindMarshalls_raw_to_base64 #-}\n\n-- | Returns a Base64-encoded string of a given @PoolByteArray@.\nbindMarshalls_raw_to_base64 :: MethodBind\nbindMarshalls_raw_to_base64\n  = unsafePerformIO $\n      withCString \"_Marshalls\" $\n        \\ clsNamePtr ->\n          withCString \"raw_to_base64\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a Base64-encoded string of a given @PoolByteArray@.\nraw_to_base64 ::\n                (Marshalls :< cls, Object :< cls) =>\n                cls -> PoolByteArray -> IO GodotString\nraw_to_base64 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMarshalls_raw_to_base64 (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Marshalls \"raw_to_base64\" '[PoolByteArray]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Marshalls.raw_to_base64\n\n{-# NOINLINE bindMarshalls_utf8_to_base64 #-}\n\n-- | Returns a Base64-encoded string of the UTF-8 string @utf8_str@.\nbindMarshalls_utf8_to_base64 :: MethodBind\nbindMarshalls_utf8_to_base64\n  = unsafePerformIO $\n      withCString \"_Marshalls\" $\n        \\ clsNamePtr ->\n          withCString \"utf8_to_base64\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a Base64-encoded string of the UTF-8 string @utf8_str@.\nutf8_to_base64 ::\n                 (Marshalls :< cls, Object :< cls) =>\n                 cls -> GodotString -> IO GodotString\nutf8_to_base64 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMarshalls_utf8_to_base64 (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Marshalls \"utf8_to_base64\" '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Marshalls.utf8_to_base64\n\n{-# NOINLINE bindMarshalls_variant_to_base64 #-}\n\n-- | Returns a Base64-encoded string of the @Variant@ @variant@. If @full_objects@ is @true@, encoding objects is allowed (and can potentially include code).\nbindMarshalls_variant_to_base64 :: MethodBind\nbindMarshalls_variant_to_base64\n  = unsafePerformIO $\n      withCString \"_Marshalls\" $\n        \\ clsNamePtr ->\n          withCString \"variant_to_base64\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a Base64-encoded string of the @Variant@ @variant@. If @full_objects@ is @true@, encoding objects is allowed (and can potentially include code).\nvariant_to_base64 ::\n                    (Marshalls :< cls, Object :< cls) =>\n                    cls -> GodotVariant -> Maybe Bool -> IO GodotString\nvariant_to_base64 cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMarshalls_variant_to_base64 (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Marshalls \"variant_to_base64\"\n           '[GodotVariant, Maybe Bool]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Marshalls.variant_to_base64"
  },
  {
    "path": "src/Godot/Core/Material.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Material\n       (Godot.Core.Material._RENDER_PRIORITY_MAX,\n        Godot.Core.Material._RENDER_PRIORITY_MIN,\n        Godot.Core.Material.get_next_pass,\n        Godot.Core.Material.get_render_priority,\n        Godot.Core.Material.set_next_pass,\n        Godot.Core.Material.set_render_priority)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_RENDER_PRIORITY_MAX :: Int\n_RENDER_PRIORITY_MAX = 127\n\n_RENDER_PRIORITY_MIN :: Int\n_RENDER_PRIORITY_MIN = -128\n\ninstance NodeProperty Material \"next_pass\" Material 'False where\n        nodeProperty\n          = (get_next_pass, wrapDroppingSetter set_next_pass, Nothing)\n\ninstance NodeProperty Material \"render_priority\" Int 'False where\n        nodeProperty\n          = (get_render_priority, wrapDroppingSetter set_render_priority,\n             Nothing)\n\n{-# NOINLINE bindMaterial_get_next_pass #-}\n\n-- | Sets the @Material@ to be used for the next pass. This renders the object again using a different material.\n--   \t\t\t__Note:__ only applies to @SpatialMaterial@s and @ShaderMaterial@s with type \"Spatial\".\nbindMaterial_get_next_pass :: MethodBind\nbindMaterial_get_next_pass\n  = unsafePerformIO $\n      withCString \"Material\" $\n        \\ clsNamePtr ->\n          withCString \"get_next_pass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Material@ to be used for the next pass. This renders the object again using a different material.\n--   \t\t\t__Note:__ only applies to @SpatialMaterial@s and @ShaderMaterial@s with type \"Spatial\".\nget_next_pass ::\n                (Material :< cls, Object :< cls) => cls -> IO Material\nget_next_pass cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMaterial_get_next_pass (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Material \"get_next_pass\" '[] (IO Material)\n         where\n        nodeMethod = Godot.Core.Material.get_next_pass\n\n{-# NOINLINE bindMaterial_get_render_priority #-}\n\n-- | Sets the render priority for transparent objects in 3D scenes. Higher priority objects will be sorted in front of lower priority objects.\n--   \t\t\t__Note:__ this only applies to sorting of transparent objects. This will not impact how transparent objects are sorted relative to opaque objects. This is because opaque objects are not sorted, while transparent objects are sorted from back to front (subject to priority).\nbindMaterial_get_render_priority :: MethodBind\nbindMaterial_get_render_priority\n  = unsafePerformIO $\n      withCString \"Material\" $\n        \\ clsNamePtr ->\n          withCString \"get_render_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the render priority for transparent objects in 3D scenes. Higher priority objects will be sorted in front of lower priority objects.\n--   \t\t\t__Note:__ this only applies to sorting of transparent objects. This will not impact how transparent objects are sorted relative to opaque objects. This is because opaque objects are not sorted, while transparent objects are sorted from back to front (subject to priority).\nget_render_priority ::\n                      (Material :< cls, Object :< cls) => cls -> IO Int\nget_render_priority cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMaterial_get_render_priority\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Material \"get_render_priority\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Material.get_render_priority\n\n{-# NOINLINE bindMaterial_set_next_pass #-}\n\n-- | Sets the @Material@ to be used for the next pass. This renders the object again using a different material.\n--   \t\t\t__Note:__ only applies to @SpatialMaterial@s and @ShaderMaterial@s with type \"Spatial\".\nbindMaterial_set_next_pass :: MethodBind\nbindMaterial_set_next_pass\n  = unsafePerformIO $\n      withCString \"Material\" $\n        \\ clsNamePtr ->\n          withCString \"set_next_pass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Material@ to be used for the next pass. This renders the object again using a different material.\n--   \t\t\t__Note:__ only applies to @SpatialMaterial@s and @ShaderMaterial@s with type \"Spatial\".\nset_next_pass ::\n                (Material :< cls, Object :< cls) => cls -> Material -> IO ()\nset_next_pass cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMaterial_set_next_pass (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Material \"set_next_pass\" '[Material] (IO ())\n         where\n        nodeMethod = Godot.Core.Material.set_next_pass\n\n{-# NOINLINE bindMaterial_set_render_priority #-}\n\n-- | Sets the render priority for transparent objects in 3D scenes. Higher priority objects will be sorted in front of lower priority objects.\n--   \t\t\t__Note:__ this only applies to sorting of transparent objects. This will not impact how transparent objects are sorted relative to opaque objects. This is because opaque objects are not sorted, while transparent objects are sorted from back to front (subject to priority).\nbindMaterial_set_render_priority :: MethodBind\nbindMaterial_set_render_priority\n  = unsafePerformIO $\n      withCString \"Material\" $\n        \\ clsNamePtr ->\n          withCString \"set_render_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the render priority for transparent objects in 3D scenes. Higher priority objects will be sorted in front of lower priority objects.\n--   \t\t\t__Note:__ this only applies to sorting of transparent objects. This will not impact how transparent objects are sorted relative to opaque objects. This is because opaque objects are not sorted, while transparent objects are sorted from back to front (subject to priority).\nset_render_priority ::\n                      (Material :< cls, Object :< cls) => cls -> Int -> IO ()\nset_render_priority cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMaterial_set_render_priority\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Material \"set_render_priority\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Material.set_render_priority"
  },
  {
    "path": "src/Godot/Core/MenuButton.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.MenuButton\n       (Godot.Core.MenuButton.sig_about_to_show,\n        Godot.Core.MenuButton._get_items, Godot.Core.MenuButton._set_items,\n        Godot.Core.MenuButton._unhandled_key_input,\n        Godot.Core.MenuButton.get_popup,\n        Godot.Core.MenuButton.is_switch_on_hover,\n        Godot.Core.MenuButton.set_disable_shortcuts,\n        Godot.Core.MenuButton.set_switch_on_hover)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Button()\n\n-- | Emitted when @PopupMenu@ of this MenuButton is about to show.\nsig_about_to_show :: Godot.Internal.Dispatch.Signal MenuButton\nsig_about_to_show = Godot.Internal.Dispatch.Signal \"about_to_show\"\n\ninstance NodeSignal MenuButton \"about_to_show\" '[]\n\ninstance NodeProperty MenuButton \"items\" Array 'False where\n        nodeProperty = (_get_items, wrapDroppingSetter _set_items, Nothing)\n\ninstance NodeProperty MenuButton \"switch_on_hover\" Bool 'False\n         where\n        nodeProperty\n          = (is_switch_on_hover, wrapDroppingSetter set_switch_on_hover,\n             Nothing)\n\n{-# NOINLINE bindMenuButton__get_items #-}\n\nbindMenuButton__get_items :: MethodBind\nbindMenuButton__get_items\n  = unsafePerformIO $\n      withCString \"MenuButton\" $\n        \\ clsNamePtr ->\n          withCString \"_get_items\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_items :: (MenuButton :< cls, Object :< cls) => cls -> IO Array\n_get_items cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMenuButton__get_items (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MenuButton \"_get_items\" '[] (IO Array) where\n        nodeMethod = Godot.Core.MenuButton._get_items\n\n{-# NOINLINE bindMenuButton__set_items #-}\n\nbindMenuButton__set_items :: MethodBind\nbindMenuButton__set_items\n  = unsafePerformIO $\n      withCString \"MenuButton\" $\n        \\ clsNamePtr ->\n          withCString \"_set_items\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_items ::\n             (MenuButton :< cls, Object :< cls) => cls -> Array -> IO ()\n_set_items cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMenuButton__set_items (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MenuButton \"_set_items\" '[Array] (IO ()) where\n        nodeMethod = Godot.Core.MenuButton._set_items\n\n{-# NOINLINE bindMenuButton__unhandled_key_input #-}\n\nbindMenuButton__unhandled_key_input :: MethodBind\nbindMenuButton__unhandled_key_input\n  = unsafePerformIO $\n      withCString \"MenuButton\" $\n        \\ clsNamePtr ->\n          withCString \"_unhandled_key_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_unhandled_key_input ::\n                       (MenuButton :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_unhandled_key_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMenuButton__unhandled_key_input\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MenuButton \"_unhandled_key_input\" '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MenuButton._unhandled_key_input\n\n{-# NOINLINE bindMenuButton_get_popup #-}\n\n-- | Returns the @PopupMenu@ contained in this button.\nbindMenuButton_get_popup :: MethodBind\nbindMenuButton_get_popup\n  = unsafePerformIO $\n      withCString \"MenuButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_popup\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @PopupMenu@ contained in this button.\nget_popup ::\n            (MenuButton :< cls, Object :< cls) => cls -> IO PopupMenu\nget_popup cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMenuButton_get_popup (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MenuButton \"get_popup\" '[] (IO PopupMenu) where\n        nodeMethod = Godot.Core.MenuButton.get_popup\n\n{-# NOINLINE bindMenuButton_is_switch_on_hover #-}\n\n-- | If @true@, when the cursor hovers above another @MenuButton@ within the same parent which also has @switch_on_hover@ enabled, it will close the current @MenuButton@ and open the other one.\nbindMenuButton_is_switch_on_hover :: MethodBind\nbindMenuButton_is_switch_on_hover\n  = unsafePerformIO $\n      withCString \"MenuButton\" $\n        \\ clsNamePtr ->\n          withCString \"is_switch_on_hover\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, when the cursor hovers above another @MenuButton@ within the same parent which also has @switch_on_hover@ enabled, it will close the current @MenuButton@ and open the other one.\nis_switch_on_hover ::\n                     (MenuButton :< cls, Object :< cls) => cls -> IO Bool\nis_switch_on_hover cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMenuButton_is_switch_on_hover\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MenuButton \"is_switch_on_hover\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.MenuButton.is_switch_on_hover\n\n{-# NOINLINE bindMenuButton_set_disable_shortcuts #-}\n\n-- | If @true@, shortcuts are disabled and cannot be used to trigger the button.\nbindMenuButton_set_disable_shortcuts :: MethodBind\nbindMenuButton_set_disable_shortcuts\n  = unsafePerformIO $\n      withCString \"MenuButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_disable_shortcuts\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, shortcuts are disabled and cannot be used to trigger the button.\nset_disable_shortcuts ::\n                        (MenuButton :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_disable_shortcuts cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMenuButton_set_disable_shortcuts\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MenuButton \"set_disable_shortcuts\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MenuButton.set_disable_shortcuts\n\n{-# NOINLINE bindMenuButton_set_switch_on_hover #-}\n\n-- | If @true@, when the cursor hovers above another @MenuButton@ within the same parent which also has @switch_on_hover@ enabled, it will close the current @MenuButton@ and open the other one.\nbindMenuButton_set_switch_on_hover :: MethodBind\nbindMenuButton_set_switch_on_hover\n  = unsafePerformIO $\n      withCString \"MenuButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_switch_on_hover\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, when the cursor hovers above another @MenuButton@ within the same parent which also has @switch_on_hover@ enabled, it will close the current @MenuButton@ and open the other one.\nset_switch_on_hover ::\n                      (MenuButton :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_switch_on_hover cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMenuButton_set_switch_on_hover\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MenuButton \"set_switch_on_hover\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MenuButton.set_switch_on_hover"
  },
  {
    "path": "src/Godot/Core/Mesh.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Mesh\n       (Godot.Core.Mesh._ARRAY_COMPRESS_WEIGHTS,\n        Godot.Core.Mesh._ARRAY_FLAG_USE_16_BIT_BONES,\n        Godot.Core.Mesh._ARRAY_FORMAT_INDEX,\n        Godot.Core.Mesh._ARRAY_COMPRESS_TANGENT,\n        Godot.Core.Mesh._ARRAY_COMPRESS_NORMAL,\n        Godot.Core.Mesh._ARRAY_FORMAT_COLOR,\n        Godot.Core.Mesh._ARRAY_FORMAT_TEX_UV,\n        Godot.Core.Mesh._ARRAY_COMPRESS_VERTEX,\n        Godot.Core.Mesh._ARRAY_FORMAT_VERTEX,\n        Godot.Core.Mesh._ARRAY_COMPRESS_TEX_UV,\n        Godot.Core.Mesh._ARRAY_COMPRESS_BASE,\n        Godot.Core.Mesh._ARRAY_COMPRESS_BONES, Godot.Core.Mesh._ARRAY_MAX,\n        Godot.Core.Mesh._ARRAY_NORMAL,\n        Godot.Core.Mesh._ARRAY_FORMAT_TEX_UV2,\n        Godot.Core.Mesh._ARRAY_INDEX, Godot.Core.Mesh._ARRAY_COLOR,\n        Godot.Core.Mesh._PRIMITIVE_TRIANGLE_STRIP,\n        Godot.Core.Mesh._PRIMITIVE_TRIANGLES,\n        Godot.Core.Mesh._ARRAY_TEX_UV,\n        Godot.Core.Mesh._BLEND_SHAPE_MODE_NORMALIZED,\n        Godot.Core.Mesh._PRIMITIVE_LINE_LOOP,\n        Godot.Core.Mesh._PRIMITIVE_TRIANGLE_FAN,\n        Godot.Core.Mesh._ARRAY_FORMAT_NORMAL,\n        Godot.Core.Mesh._ARRAY_TEX_UV2,\n        Godot.Core.Mesh._ARRAY_COMPRESS_DEFAULT,\n        Godot.Core.Mesh._ARRAY_FORMAT_BONES,\n        Godot.Core.Mesh._ARRAY_COMPRESS_COLOR,\n        Godot.Core.Mesh._ARRAY_WEIGHTS, Godot.Core.Mesh._ARRAY_TANGENT,\n        Godot.Core.Mesh._ARRAY_COMPRESS_TEX_UV2,\n        Godot.Core.Mesh._PRIMITIVE_LINE_STRIP,\n        Godot.Core.Mesh._PRIMITIVE_LINES, Godot.Core.Mesh._ARRAY_BONES,\n        Godot.Core.Mesh._BLEND_SHAPE_MODE_RELATIVE,\n        Godot.Core.Mesh._ARRAY_VERTEX,\n        Godot.Core.Mesh._ARRAY_FLAG_USE_2D_VERTICES,\n        Godot.Core.Mesh._ARRAY_COMPRESS_INDEX,\n        Godot.Core.Mesh._ARRAY_FORMAT_WEIGHTS,\n        Godot.Core.Mesh._ARRAY_FORMAT_TANGENT,\n        Godot.Core.Mesh._PRIMITIVE_POINTS,\n        Godot.Core.Mesh.create_convex_shape,\n        Godot.Core.Mesh.create_outline,\n        Godot.Core.Mesh.create_trimesh_shape,\n        Godot.Core.Mesh.generate_triangle_mesh, Godot.Core.Mesh.get_aabb,\n        Godot.Core.Mesh.get_faces, Godot.Core.Mesh.get_lightmap_size_hint,\n        Godot.Core.Mesh.get_surface_count,\n        Godot.Core.Mesh.set_lightmap_size_hint,\n        Godot.Core.Mesh.surface_get_arrays,\n        Godot.Core.Mesh.surface_get_blend_shape_arrays,\n        Godot.Core.Mesh.surface_get_material,\n        Godot.Core.Mesh.surface_set_material)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_ARRAY_COMPRESS_WEIGHTS :: Int\n_ARRAY_COMPRESS_WEIGHTS = 65536\n\n_ARRAY_FLAG_USE_16_BIT_BONES :: Int\n_ARRAY_FLAG_USE_16_BIT_BONES = 524288\n\n_ARRAY_FORMAT_INDEX :: Int\n_ARRAY_FORMAT_INDEX = 256\n\n_ARRAY_COMPRESS_TANGENT :: Int\n_ARRAY_COMPRESS_TANGENT = 2048\n\n_ARRAY_COMPRESS_NORMAL :: Int\n_ARRAY_COMPRESS_NORMAL = 1024\n\n_ARRAY_FORMAT_COLOR :: Int\n_ARRAY_FORMAT_COLOR = 8\n\n_ARRAY_FORMAT_TEX_UV :: Int\n_ARRAY_FORMAT_TEX_UV = 16\n\n_ARRAY_COMPRESS_VERTEX :: Int\n_ARRAY_COMPRESS_VERTEX = 512\n\n_ARRAY_FORMAT_VERTEX :: Int\n_ARRAY_FORMAT_VERTEX = 1\n\n_ARRAY_COMPRESS_TEX_UV :: Int\n_ARRAY_COMPRESS_TEX_UV = 8192\n\n_ARRAY_COMPRESS_BASE :: Int\n_ARRAY_COMPRESS_BASE = 9\n\n_ARRAY_COMPRESS_BONES :: Int\n_ARRAY_COMPRESS_BONES = 32768\n\n_ARRAY_MAX :: Int\n_ARRAY_MAX = 9\n\n_ARRAY_NORMAL :: Int\n_ARRAY_NORMAL = 1\n\n_ARRAY_FORMAT_TEX_UV2 :: Int\n_ARRAY_FORMAT_TEX_UV2 = 32\n\n_ARRAY_INDEX :: Int\n_ARRAY_INDEX = 8\n\n_ARRAY_COLOR :: Int\n_ARRAY_COLOR = 3\n\n_PRIMITIVE_TRIANGLE_STRIP :: Int\n_PRIMITIVE_TRIANGLE_STRIP = 5\n\n_PRIMITIVE_TRIANGLES :: Int\n_PRIMITIVE_TRIANGLES = 4\n\n_ARRAY_TEX_UV :: Int\n_ARRAY_TEX_UV = 4\n\n_BLEND_SHAPE_MODE_NORMALIZED :: Int\n_BLEND_SHAPE_MODE_NORMALIZED = 0\n\n_PRIMITIVE_LINE_LOOP :: Int\n_PRIMITIVE_LINE_LOOP = 3\n\n_PRIMITIVE_TRIANGLE_FAN :: Int\n_PRIMITIVE_TRIANGLE_FAN = 6\n\n_ARRAY_FORMAT_NORMAL :: Int\n_ARRAY_FORMAT_NORMAL = 2\n\n_ARRAY_TEX_UV2 :: Int\n_ARRAY_TEX_UV2 = 5\n\n_ARRAY_COMPRESS_DEFAULT :: Int\n_ARRAY_COMPRESS_DEFAULT = 97280\n\n_ARRAY_FORMAT_BONES :: Int\n_ARRAY_FORMAT_BONES = 64\n\n_ARRAY_COMPRESS_COLOR :: Int\n_ARRAY_COMPRESS_COLOR = 4096\n\n_ARRAY_WEIGHTS :: Int\n_ARRAY_WEIGHTS = 7\n\n_ARRAY_TANGENT :: Int\n_ARRAY_TANGENT = 2\n\n_ARRAY_COMPRESS_TEX_UV2 :: Int\n_ARRAY_COMPRESS_TEX_UV2 = 16384\n\n_PRIMITIVE_LINE_STRIP :: Int\n_PRIMITIVE_LINE_STRIP = 2\n\n_PRIMITIVE_LINES :: Int\n_PRIMITIVE_LINES = 1\n\n_ARRAY_BONES :: Int\n_ARRAY_BONES = 6\n\n_BLEND_SHAPE_MODE_RELATIVE :: Int\n_BLEND_SHAPE_MODE_RELATIVE = 1\n\n_ARRAY_VERTEX :: Int\n_ARRAY_VERTEX = 0\n\n_ARRAY_FLAG_USE_2D_VERTICES :: Int\n_ARRAY_FLAG_USE_2D_VERTICES = 262144\n\n_ARRAY_COMPRESS_INDEX :: Int\n_ARRAY_COMPRESS_INDEX = 131072\n\n_ARRAY_FORMAT_WEIGHTS :: Int\n_ARRAY_FORMAT_WEIGHTS = 128\n\n_ARRAY_FORMAT_TANGENT :: Int\n_ARRAY_FORMAT_TANGENT = 4\n\n_PRIMITIVE_POINTS :: Int\n_PRIMITIVE_POINTS = 0\n\ninstance NodeProperty Mesh \"lightmap_size_hint\" Vector2 'False\n         where\n        nodeProperty\n          = (get_lightmap_size_hint,\n             wrapDroppingSetter set_lightmap_size_hint, Nothing)\n\n{-# NOINLINE bindMesh_create_convex_shape #-}\n\n-- | Calculate a @ConvexPolygonShape@ from the mesh.\nbindMesh_create_convex_shape :: MethodBind\nbindMesh_create_convex_shape\n  = unsafePerformIO $\n      withCString \"Mesh\" $\n        \\ clsNamePtr ->\n          withCString \"create_convex_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calculate a @ConvexPolygonShape@ from the mesh.\ncreate_convex_shape ::\n                      (Mesh :< cls, Object :< cls) => cls -> IO Shape\ncreate_convex_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMesh_create_convex_shape (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Mesh \"create_convex_shape\" '[] (IO Shape) where\n        nodeMethod = Godot.Core.Mesh.create_convex_shape\n\n{-# NOINLINE bindMesh_create_outline #-}\n\n-- | Calculate an outline mesh at a defined offset (margin) from the original mesh.\n--   \t\t\t\t__Note:__ This method typically returns the vertices in reverse order (e.g. clockwise to counterclockwise).\nbindMesh_create_outline :: MethodBind\nbindMesh_create_outline\n  = unsafePerformIO $\n      withCString \"Mesh\" $\n        \\ clsNamePtr ->\n          withCString \"create_outline\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calculate an outline mesh at a defined offset (margin) from the original mesh.\n--   \t\t\t\t__Note:__ This method typically returns the vertices in reverse order (e.g. clockwise to counterclockwise).\ncreate_outline ::\n                 (Mesh :< cls, Object :< cls) => cls -> Float -> IO Mesh\ncreate_outline cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMesh_create_outline (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Mesh \"create_outline\" '[Float] (IO Mesh) where\n        nodeMethod = Godot.Core.Mesh.create_outline\n\n{-# NOINLINE bindMesh_create_trimesh_shape #-}\n\n-- | Calculate a @ConcavePolygonShape@ from the mesh.\nbindMesh_create_trimesh_shape :: MethodBind\nbindMesh_create_trimesh_shape\n  = unsafePerformIO $\n      withCString \"Mesh\" $\n        \\ clsNamePtr ->\n          withCString \"create_trimesh_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calculate a @ConcavePolygonShape@ from the mesh.\ncreate_trimesh_shape ::\n                       (Mesh :< cls, Object :< cls) => cls -> IO Shape\ncreate_trimesh_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMesh_create_trimesh_shape (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Mesh \"create_trimesh_shape\" '[] (IO Shape)\n         where\n        nodeMethod = Godot.Core.Mesh.create_trimesh_shape\n\n{-# NOINLINE bindMesh_generate_triangle_mesh #-}\n\n-- | Generate a @TriangleMesh@ from the mesh.\nbindMesh_generate_triangle_mesh :: MethodBind\nbindMesh_generate_triangle_mesh\n  = unsafePerformIO $\n      withCString \"Mesh\" $\n        \\ clsNamePtr ->\n          withCString \"generate_triangle_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Generate a @TriangleMesh@ from the mesh.\ngenerate_triangle_mesh ::\n                         (Mesh :< cls, Object :< cls) => cls -> IO TriangleMesh\ngenerate_triangle_mesh cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMesh_generate_triangle_mesh (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Mesh \"generate_triangle_mesh\" '[]\n           (IO TriangleMesh)\n         where\n        nodeMethod = Godot.Core.Mesh.generate_triangle_mesh\n\n{-# NOINLINE bindMesh_get_aabb #-}\n\n-- | Returns the smallest @AABB@ enclosing this mesh in local space. Not affected by @custom_aabb@. See also @method VisualInstance.get_transformed_aabb@.\n--   \t\t\t\t__Note:__ This is only implemented for @ArrayMesh@ and @PrimitiveMesh@.\nbindMesh_get_aabb :: MethodBind\nbindMesh_get_aabb\n  = unsafePerformIO $\n      withCString \"Mesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the smallest @AABB@ enclosing this mesh in local space. Not affected by @custom_aabb@. See also @method VisualInstance.get_transformed_aabb@.\n--   \t\t\t\t__Note:__ This is only implemented for @ArrayMesh@ and @PrimitiveMesh@.\nget_aabb :: (Mesh :< cls, Object :< cls) => cls -> IO Aabb\nget_aabb cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMesh_get_aabb (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Mesh \"get_aabb\" '[] (IO Aabb) where\n        nodeMethod = Godot.Core.Mesh.get_aabb\n\n{-# NOINLINE bindMesh_get_faces #-}\n\n-- | Returns all the vertices that make up the faces of the mesh. Each three vertices represent one triangle.\nbindMesh_get_faces :: MethodBind\nbindMesh_get_faces\n  = unsafePerformIO $\n      withCString \"Mesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_faces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns all the vertices that make up the faces of the mesh. Each three vertices represent one triangle.\nget_faces ::\n            (Mesh :< cls, Object :< cls) => cls -> IO PoolVector3Array\nget_faces cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMesh_get_faces (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Mesh \"get_faces\" '[] (IO PoolVector3Array)\n         where\n        nodeMethod = Godot.Core.Mesh.get_faces\n\n{-# NOINLINE bindMesh_get_lightmap_size_hint #-}\n\n-- | Sets a hint to be used for lightmap resolution in @BakedLightmap@. Overrides @BakedLightmap.bake_default_texels_per_unit@.\nbindMesh_get_lightmap_size_hint :: MethodBind\nbindMesh_get_lightmap_size_hint\n  = unsafePerformIO $\n      withCString \"Mesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_lightmap_size_hint\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a hint to be used for lightmap resolution in @BakedLightmap@. Overrides @BakedLightmap.bake_default_texels_per_unit@.\nget_lightmap_size_hint ::\n                         (Mesh :< cls, Object :< cls) => cls -> IO Vector2\nget_lightmap_size_hint cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMesh_get_lightmap_size_hint (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Mesh \"get_lightmap_size_hint\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Mesh.get_lightmap_size_hint\n\n{-# NOINLINE bindMesh_get_surface_count #-}\n\n-- | Returns the amount of surfaces that the @Mesh@ holds.\nbindMesh_get_surface_count :: MethodBind\nbindMesh_get_surface_count\n  = unsafePerformIO $\n      withCString \"Mesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_surface_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the amount of surfaces that the @Mesh@ holds.\nget_surface_count :: (Mesh :< cls, Object :< cls) => cls -> IO Int\nget_surface_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMesh_get_surface_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Mesh \"get_surface_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Mesh.get_surface_count\n\n{-# NOINLINE bindMesh_set_lightmap_size_hint #-}\n\n-- | Sets a hint to be used for lightmap resolution in @BakedLightmap@. Overrides @BakedLightmap.bake_default_texels_per_unit@.\nbindMesh_set_lightmap_size_hint :: MethodBind\nbindMesh_set_lightmap_size_hint\n  = unsafePerformIO $\n      withCString \"Mesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_lightmap_size_hint\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a hint to be used for lightmap resolution in @BakedLightmap@. Overrides @BakedLightmap.bake_default_texels_per_unit@.\nset_lightmap_size_hint ::\n                         (Mesh :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_lightmap_size_hint cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMesh_set_lightmap_size_hint (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Mesh \"set_lightmap_size_hint\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Mesh.set_lightmap_size_hint\n\n{-# NOINLINE bindMesh_surface_get_arrays #-}\n\n-- | Returns the arrays for the vertices, normals, uvs, etc. that make up the requested surface (see @method ArrayMesh.add_surface_from_arrays@).\nbindMesh_surface_get_arrays :: MethodBind\nbindMesh_surface_get_arrays\n  = unsafePerformIO $\n      withCString \"Mesh\" $\n        \\ clsNamePtr ->\n          withCString \"surface_get_arrays\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the arrays for the vertices, normals, uvs, etc. that make up the requested surface (see @method ArrayMesh.add_surface_from_arrays@).\nsurface_get_arrays ::\n                     (Mesh :< cls, Object :< cls) => cls -> Int -> IO Array\nsurface_get_arrays cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMesh_surface_get_arrays (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Mesh \"surface_get_arrays\" '[Int] (IO Array)\n         where\n        nodeMethod = Godot.Core.Mesh.surface_get_arrays\n\n{-# NOINLINE bindMesh_surface_get_blend_shape_arrays #-}\n\n-- | Returns the blend shape arrays for the requested surface.\nbindMesh_surface_get_blend_shape_arrays :: MethodBind\nbindMesh_surface_get_blend_shape_arrays\n  = unsafePerformIO $\n      withCString \"Mesh\" $\n        \\ clsNamePtr ->\n          withCString \"surface_get_blend_shape_arrays\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the blend shape arrays for the requested surface.\nsurface_get_blend_shape_arrays ::\n                                 (Mesh :< cls, Object :< cls) => cls -> Int -> IO Array\nsurface_get_blend_shape_arrays cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMesh_surface_get_blend_shape_arrays\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Mesh \"surface_get_blend_shape_arrays\" '[Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Mesh.surface_get_blend_shape_arrays\n\n{-# NOINLINE bindMesh_surface_get_material #-}\n\n-- | Returns a @Material@ in a given surface. Surface is rendered using this material.\nbindMesh_surface_get_material :: MethodBind\nbindMesh_surface_get_material\n  = unsafePerformIO $\n      withCString \"Mesh\" $\n        \\ clsNamePtr ->\n          withCString \"surface_get_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @Material@ in a given surface. Surface is rendered using this material.\nsurface_get_material ::\n                       (Mesh :< cls, Object :< cls) => cls -> Int -> IO Material\nsurface_get_material cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMesh_surface_get_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Mesh \"surface_get_material\" '[Int]\n           (IO Material)\n         where\n        nodeMethod = Godot.Core.Mesh.surface_get_material\n\n{-# NOINLINE bindMesh_surface_set_material #-}\n\n-- | Sets a @Material@ for a given surface. Surface will be rendered using this material.\nbindMesh_surface_set_material :: MethodBind\nbindMesh_surface_set_material\n  = unsafePerformIO $\n      withCString \"Mesh\" $\n        \\ clsNamePtr ->\n          withCString \"surface_set_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a @Material@ for a given surface. Surface will be rendered using this material.\nsurface_set_material ::\n                       (Mesh :< cls, Object :< cls) => cls -> Int -> Material -> IO ()\nsurface_set_material cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMesh_surface_set_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Mesh \"surface_set_material\" '[Int, Material]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Mesh.surface_set_material"
  },
  {
    "path": "src/Godot/Core/MeshDataTool.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.MeshDataTool\n       (Godot.Core.MeshDataTool.clear,\n        Godot.Core.MeshDataTool.commit_to_surface,\n        Godot.Core.MeshDataTool.create_from_surface,\n        Godot.Core.MeshDataTool.get_edge_count,\n        Godot.Core.MeshDataTool.get_edge_faces,\n        Godot.Core.MeshDataTool.get_edge_meta,\n        Godot.Core.MeshDataTool.get_edge_vertex,\n        Godot.Core.MeshDataTool.get_face_count,\n        Godot.Core.MeshDataTool.get_face_edge,\n        Godot.Core.MeshDataTool.get_face_meta,\n        Godot.Core.MeshDataTool.get_face_normal,\n        Godot.Core.MeshDataTool.get_face_vertex,\n        Godot.Core.MeshDataTool.get_format,\n        Godot.Core.MeshDataTool.get_material,\n        Godot.Core.MeshDataTool.get_vertex,\n        Godot.Core.MeshDataTool.get_vertex_bones,\n        Godot.Core.MeshDataTool.get_vertex_color,\n        Godot.Core.MeshDataTool.get_vertex_count,\n        Godot.Core.MeshDataTool.get_vertex_edges,\n        Godot.Core.MeshDataTool.get_vertex_faces,\n        Godot.Core.MeshDataTool.get_vertex_meta,\n        Godot.Core.MeshDataTool.get_vertex_normal,\n        Godot.Core.MeshDataTool.get_vertex_tangent,\n        Godot.Core.MeshDataTool.get_vertex_uv,\n        Godot.Core.MeshDataTool.get_vertex_uv2,\n        Godot.Core.MeshDataTool.get_vertex_weights,\n        Godot.Core.MeshDataTool.set_edge_meta,\n        Godot.Core.MeshDataTool.set_face_meta,\n        Godot.Core.MeshDataTool.set_material,\n        Godot.Core.MeshDataTool.set_vertex,\n        Godot.Core.MeshDataTool.set_vertex_bones,\n        Godot.Core.MeshDataTool.set_vertex_color,\n        Godot.Core.MeshDataTool.set_vertex_meta,\n        Godot.Core.MeshDataTool.set_vertex_normal,\n        Godot.Core.MeshDataTool.set_vertex_tangent,\n        Godot.Core.MeshDataTool.set_vertex_uv,\n        Godot.Core.MeshDataTool.set_vertex_uv2,\n        Godot.Core.MeshDataTool.set_vertex_weights)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindMeshDataTool_clear #-}\n\n-- | Clears all data currently in MeshDataTool.\nbindMeshDataTool_clear :: MethodBind\nbindMeshDataTool_clear\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears all data currently in MeshDataTool.\nclear :: (MeshDataTool :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_clear (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.MeshDataTool.clear\n\n{-# NOINLINE bindMeshDataTool_commit_to_surface #-}\n\n-- | Adds a new surface to specified @Mesh@ with edited data.\nbindMeshDataTool_commit_to_surface :: MethodBind\nbindMeshDataTool_commit_to_surface\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"commit_to_surface\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new surface to specified @Mesh@ with edited data.\ncommit_to_surface ::\n                    (MeshDataTool :< cls, Object :< cls) => cls -> ArrayMesh -> IO Int\ncommit_to_surface cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_commit_to_surface\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"commit_to_surface\" '[ArrayMesh]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.commit_to_surface\n\n{-# NOINLINE bindMeshDataTool_create_from_surface #-}\n\n-- | Uses specified surface of given @Mesh@ to populate data for MeshDataTool.\n--   \t\t\t\tRequires @Mesh@ with primitive type @Mesh.PRIMITIVE_TRIANGLES@.\nbindMeshDataTool_create_from_surface :: MethodBind\nbindMeshDataTool_create_from_surface\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"create_from_surface\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Uses specified surface of given @Mesh@ to populate data for MeshDataTool.\n--   \t\t\t\tRequires @Mesh@ with primitive type @Mesh.PRIMITIVE_TRIANGLES@.\ncreate_from_surface ::\n                      (MeshDataTool :< cls, Object :< cls) =>\n                      cls -> ArrayMesh -> Int -> IO Int\ncreate_from_surface cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_create_from_surface\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"create_from_surface\"\n           '[ArrayMesh, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.create_from_surface\n\n{-# NOINLINE bindMeshDataTool_get_edge_count #-}\n\n-- | Returns the number of edges in this @Mesh@.\nbindMeshDataTool_get_edge_count :: MethodBind\nbindMeshDataTool_get_edge_count\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_edge_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of edges in this @Mesh@.\nget_edge_count ::\n                 (MeshDataTool :< cls, Object :< cls) => cls -> IO Int\nget_edge_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_edge_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_edge_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_edge_count\n\n{-# NOINLINE bindMeshDataTool_get_edge_faces #-}\n\n-- | Returns array of faces that touch given edge.\nbindMeshDataTool_get_edge_faces :: MethodBind\nbindMeshDataTool_get_edge_faces\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_edge_faces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns array of faces that touch given edge.\nget_edge_faces ::\n                 (MeshDataTool :< cls, Object :< cls) =>\n                 cls -> Int -> IO PoolIntArray\nget_edge_faces cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_edge_faces (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_edge_faces\" '[Int]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_edge_faces\n\n{-# NOINLINE bindMeshDataTool_get_edge_meta #-}\n\n-- | Returns meta information assigned to given edge.\nbindMeshDataTool_get_edge_meta :: MethodBind\nbindMeshDataTool_get_edge_meta\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_edge_meta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns meta information assigned to given edge.\nget_edge_meta ::\n                (MeshDataTool :< cls, Object :< cls) =>\n                cls -> Int -> IO GodotVariant\nget_edge_meta cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_edge_meta (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_edge_meta\" '[Int]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_edge_meta\n\n{-# NOINLINE bindMeshDataTool_get_edge_vertex #-}\n\n-- | Returns index of specified vertex connected to given edge.\n--   \t\t\t\tVertex argument can only be 0 or 1 because edges are comprised of two vertices.\nbindMeshDataTool_get_edge_vertex :: MethodBind\nbindMeshDataTool_get_edge_vertex\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_edge_vertex\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns index of specified vertex connected to given edge.\n--   \t\t\t\tVertex argument can only be 0 or 1 because edges are comprised of two vertices.\nget_edge_vertex ::\n                  (MeshDataTool :< cls, Object :< cls) => cls -> Int -> Int -> IO Int\nget_edge_vertex cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_edge_vertex\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_edge_vertex\" '[Int, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_edge_vertex\n\n{-# NOINLINE bindMeshDataTool_get_face_count #-}\n\n-- | Returns the number of faces in this @Mesh@.\nbindMeshDataTool_get_face_count :: MethodBind\nbindMeshDataTool_get_face_count\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_face_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of faces in this @Mesh@.\nget_face_count ::\n                 (MeshDataTool :< cls, Object :< cls) => cls -> IO Int\nget_face_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_face_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_face_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_face_count\n\n{-# NOINLINE bindMeshDataTool_get_face_edge #-}\n\n-- | Returns specified edge associated with given face.\n--   \t\t\t\tEdge argument must 2 or less because a face only has three edges.\nbindMeshDataTool_get_face_edge :: MethodBind\nbindMeshDataTool_get_face_edge\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_face_edge\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns specified edge associated with given face.\n--   \t\t\t\tEdge argument must 2 or less because a face only has three edges.\nget_face_edge ::\n                (MeshDataTool :< cls, Object :< cls) => cls -> Int -> Int -> IO Int\nget_face_edge cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_face_edge (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_face_edge\" '[Int, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_face_edge\n\n{-# NOINLINE bindMeshDataTool_get_face_meta #-}\n\n-- | Returns the metadata associated with the given face.\nbindMeshDataTool_get_face_meta :: MethodBind\nbindMeshDataTool_get_face_meta\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_face_meta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the metadata associated with the given face.\nget_face_meta ::\n                (MeshDataTool :< cls, Object :< cls) =>\n                cls -> Int -> IO GodotVariant\nget_face_meta cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_face_meta (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_face_meta\" '[Int]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_face_meta\n\n{-# NOINLINE bindMeshDataTool_get_face_normal #-}\n\n-- | Calculates and returns the face normal of the given face.\nbindMeshDataTool_get_face_normal :: MethodBind\nbindMeshDataTool_get_face_normal\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_face_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calculates and returns the face normal of the given face.\nget_face_normal ::\n                  (MeshDataTool :< cls, Object :< cls) => cls -> Int -> IO Vector3\nget_face_normal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_face_normal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_face_normal\" '[Int]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_face_normal\n\n{-# NOINLINE bindMeshDataTool_get_face_vertex #-}\n\n-- | Returns the specified vertex of the given face.\n--   \t\t\t\tVertex argument must be 2 or less because faces contain three vertices.\nbindMeshDataTool_get_face_vertex :: MethodBind\nbindMeshDataTool_get_face_vertex\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_face_vertex\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the specified vertex of the given face.\n--   \t\t\t\tVertex argument must be 2 or less because faces contain three vertices.\nget_face_vertex ::\n                  (MeshDataTool :< cls, Object :< cls) => cls -> Int -> Int -> IO Int\nget_face_vertex cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_face_vertex\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_face_vertex\" '[Int, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_face_vertex\n\n{-# NOINLINE bindMeshDataTool_get_format #-}\n\n-- | Returns the @Mesh@'s format. Format is an integer made up of @Mesh@ format flags combined together. For example, a mesh containing both vertices and normals would return a format of @3@ because @ArrayMesh.ARRAY_FORMAT_VERTEX@ is @1@ and @ArrayMesh.ARRAY_FORMAT_NORMAL@ is @2@.\n--   \t\t\t\tSee @enum ArrayMesh.ArrayFormat@ for a list of format flags.\nbindMeshDataTool_get_format :: MethodBind\nbindMeshDataTool_get_format\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_format\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Mesh@'s format. Format is an integer made up of @Mesh@ format flags combined together. For example, a mesh containing both vertices and normals would return a format of @3@ because @ArrayMesh.ARRAY_FORMAT_VERTEX@ is @1@ and @ArrayMesh.ARRAY_FORMAT_NORMAL@ is @2@.\n--   \t\t\t\tSee @enum ArrayMesh.ArrayFormat@ for a list of format flags.\nget_format :: (MeshDataTool :< cls, Object :< cls) => cls -> IO Int\nget_format cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_format (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_format\" '[] (IO Int) where\n        nodeMethod = Godot.Core.MeshDataTool.get_format\n\n{-# NOINLINE bindMeshDataTool_get_material #-}\n\n-- | Returns the material assigned to the @Mesh@.\nbindMeshDataTool_get_material :: MethodBind\nbindMeshDataTool_get_material\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the material assigned to the @Mesh@.\nget_material ::\n               (MeshDataTool :< cls, Object :< cls) => cls -> IO Material\nget_material cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_material\" '[] (IO Material)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_material\n\n{-# NOINLINE bindMeshDataTool_get_vertex #-}\n\n-- | Returns the vertex at given index.\nbindMeshDataTool_get_vertex :: MethodBind\nbindMeshDataTool_get_vertex\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_vertex\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the vertex at given index.\nget_vertex ::\n             (MeshDataTool :< cls, Object :< cls) => cls -> Int -> IO Vector3\nget_vertex cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_vertex (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_vertex\" '[Int] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_vertex\n\n{-# NOINLINE bindMeshDataTool_get_vertex_bones #-}\n\n-- | Returns the bones of the given vertex.\nbindMeshDataTool_get_vertex_bones :: MethodBind\nbindMeshDataTool_get_vertex_bones\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_vertex_bones\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the bones of the given vertex.\nget_vertex_bones ::\n                   (MeshDataTool :< cls, Object :< cls) =>\n                   cls -> Int -> IO PoolIntArray\nget_vertex_bones cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_vertex_bones\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_vertex_bones\" '[Int]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_vertex_bones\n\n{-# NOINLINE bindMeshDataTool_get_vertex_color #-}\n\n-- | Returns the color of the given vertex.\nbindMeshDataTool_get_vertex_color :: MethodBind\nbindMeshDataTool_get_vertex_color\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_vertex_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the color of the given vertex.\nget_vertex_color ::\n                   (MeshDataTool :< cls, Object :< cls) => cls -> Int -> IO Color\nget_vertex_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_vertex_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_vertex_color\" '[Int]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_vertex_color\n\n{-# NOINLINE bindMeshDataTool_get_vertex_count #-}\n\n-- | Returns the total number of vertices in @Mesh@.\nbindMeshDataTool_get_vertex_count :: MethodBind\nbindMeshDataTool_get_vertex_count\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_vertex_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the total number of vertices in @Mesh@.\nget_vertex_count ::\n                   (MeshDataTool :< cls, Object :< cls) => cls -> IO Int\nget_vertex_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_vertex_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_vertex_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_vertex_count\n\n{-# NOINLINE bindMeshDataTool_get_vertex_edges #-}\n\n-- | Returns an array of edges that share the given vertex.\nbindMeshDataTool_get_vertex_edges :: MethodBind\nbindMeshDataTool_get_vertex_edges\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_vertex_edges\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of edges that share the given vertex.\nget_vertex_edges ::\n                   (MeshDataTool :< cls, Object :< cls) =>\n                   cls -> Int -> IO PoolIntArray\nget_vertex_edges cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_vertex_edges\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_vertex_edges\" '[Int]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_vertex_edges\n\n{-# NOINLINE bindMeshDataTool_get_vertex_faces #-}\n\n-- | Returns an array of faces that share the given vertex.\nbindMeshDataTool_get_vertex_faces :: MethodBind\nbindMeshDataTool_get_vertex_faces\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_vertex_faces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of faces that share the given vertex.\nget_vertex_faces ::\n                   (MeshDataTool :< cls, Object :< cls) =>\n                   cls -> Int -> IO PoolIntArray\nget_vertex_faces cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_vertex_faces\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_vertex_faces\" '[Int]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_vertex_faces\n\n{-# NOINLINE bindMeshDataTool_get_vertex_meta #-}\n\n-- | Returns the metadata associated with the given vertex.\nbindMeshDataTool_get_vertex_meta :: MethodBind\nbindMeshDataTool_get_vertex_meta\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_vertex_meta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the metadata associated with the given vertex.\nget_vertex_meta ::\n                  (MeshDataTool :< cls, Object :< cls) =>\n                  cls -> Int -> IO GodotVariant\nget_vertex_meta cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_vertex_meta\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_vertex_meta\" '[Int]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_vertex_meta\n\n{-# NOINLINE bindMeshDataTool_get_vertex_normal #-}\n\n-- | Returns the normal of the given vertex.\nbindMeshDataTool_get_vertex_normal :: MethodBind\nbindMeshDataTool_get_vertex_normal\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_vertex_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the normal of the given vertex.\nget_vertex_normal ::\n                    (MeshDataTool :< cls, Object :< cls) => cls -> Int -> IO Vector3\nget_vertex_normal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_vertex_normal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_vertex_normal\" '[Int]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_vertex_normal\n\n{-# NOINLINE bindMeshDataTool_get_vertex_tangent #-}\n\n-- | Returns the tangent of the given vertex.\nbindMeshDataTool_get_vertex_tangent :: MethodBind\nbindMeshDataTool_get_vertex_tangent\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_vertex_tangent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tangent of the given vertex.\nget_vertex_tangent ::\n                     (MeshDataTool :< cls, Object :< cls) => cls -> Int -> IO Plane\nget_vertex_tangent cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_vertex_tangent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_vertex_tangent\" '[Int]\n           (IO Plane)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_vertex_tangent\n\n{-# NOINLINE bindMeshDataTool_get_vertex_uv #-}\n\n-- | Returns the UV of the given vertex.\nbindMeshDataTool_get_vertex_uv :: MethodBind\nbindMeshDataTool_get_vertex_uv\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_vertex_uv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the UV of the given vertex.\nget_vertex_uv ::\n                (MeshDataTool :< cls, Object :< cls) => cls -> Int -> IO Vector2\nget_vertex_uv cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_vertex_uv (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_vertex_uv\" '[Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_vertex_uv\n\n{-# NOINLINE bindMeshDataTool_get_vertex_uv2 #-}\n\n-- | Returns the UV2 of the given vertex.\nbindMeshDataTool_get_vertex_uv2 :: MethodBind\nbindMeshDataTool_get_vertex_uv2\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_vertex_uv2\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the UV2 of the given vertex.\nget_vertex_uv2 ::\n                 (MeshDataTool :< cls, Object :< cls) => cls -> Int -> IO Vector2\nget_vertex_uv2 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_vertex_uv2 (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_vertex_uv2\" '[Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_vertex_uv2\n\n{-# NOINLINE bindMeshDataTool_get_vertex_weights #-}\n\n-- | Returns bone weights of the given vertex.\nbindMeshDataTool_get_vertex_weights :: MethodBind\nbindMeshDataTool_get_vertex_weights\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"get_vertex_weights\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns bone weights of the given vertex.\nget_vertex_weights ::\n                     (MeshDataTool :< cls, Object :< cls) =>\n                     cls -> Int -> IO PoolRealArray\nget_vertex_weights cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_get_vertex_weights\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"get_vertex_weights\" '[Int]\n           (IO PoolRealArray)\n         where\n        nodeMethod = Godot.Core.MeshDataTool.get_vertex_weights\n\n{-# NOINLINE bindMeshDataTool_set_edge_meta #-}\n\n-- | Sets the metadata of the given edge.\nbindMeshDataTool_set_edge_meta :: MethodBind\nbindMeshDataTool_set_edge_meta\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"set_edge_meta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the metadata of the given edge.\nset_edge_meta ::\n                (MeshDataTool :< cls, Object :< cls) =>\n                cls -> Int -> GodotVariant -> IO ()\nset_edge_meta cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_set_edge_meta (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"set_edge_meta\"\n           '[Int, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshDataTool.set_edge_meta\n\n{-# NOINLINE bindMeshDataTool_set_face_meta #-}\n\n-- | Sets the metadata of the given face.\nbindMeshDataTool_set_face_meta :: MethodBind\nbindMeshDataTool_set_face_meta\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"set_face_meta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the metadata of the given face.\nset_face_meta ::\n                (MeshDataTool :< cls, Object :< cls) =>\n                cls -> Int -> GodotVariant -> IO ()\nset_face_meta cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_set_face_meta (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"set_face_meta\"\n           '[Int, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshDataTool.set_face_meta\n\n{-# NOINLINE bindMeshDataTool_set_material #-}\n\n-- | Sets the material to be used by newly-constructed @Mesh@.\nbindMeshDataTool_set_material :: MethodBind\nbindMeshDataTool_set_material\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"set_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the material to be used by newly-constructed @Mesh@.\nset_material ::\n               (MeshDataTool :< cls, Object :< cls) => cls -> Material -> IO ()\nset_material cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_set_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"set_material\" '[Material] (IO ())\n         where\n        nodeMethod = Godot.Core.MeshDataTool.set_material\n\n{-# NOINLINE bindMeshDataTool_set_vertex #-}\n\n-- | Sets the position of the given vertex.\nbindMeshDataTool_set_vertex :: MethodBind\nbindMeshDataTool_set_vertex\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"set_vertex\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the position of the given vertex.\nset_vertex ::\n             (MeshDataTool :< cls, Object :< cls) =>\n             cls -> Int -> Vector3 -> IO ()\nset_vertex cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_set_vertex (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"set_vertex\" '[Int, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshDataTool.set_vertex\n\n{-# NOINLINE bindMeshDataTool_set_vertex_bones #-}\n\n-- | Sets the bones of the given vertex.\nbindMeshDataTool_set_vertex_bones :: MethodBind\nbindMeshDataTool_set_vertex_bones\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"set_vertex_bones\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the bones of the given vertex.\nset_vertex_bones ::\n                   (MeshDataTool :< cls, Object :< cls) =>\n                   cls -> Int -> PoolIntArray -> IO ()\nset_vertex_bones cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_set_vertex_bones\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"set_vertex_bones\"\n           '[Int, PoolIntArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshDataTool.set_vertex_bones\n\n{-# NOINLINE bindMeshDataTool_set_vertex_color #-}\n\n-- | Sets the color of the given vertex.\nbindMeshDataTool_set_vertex_color :: MethodBind\nbindMeshDataTool_set_vertex_color\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"set_vertex_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the color of the given vertex.\nset_vertex_color ::\n                   (MeshDataTool :< cls, Object :< cls) =>\n                   cls -> Int -> Color -> IO ()\nset_vertex_color cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_set_vertex_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"set_vertex_color\" '[Int, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshDataTool.set_vertex_color\n\n{-# NOINLINE bindMeshDataTool_set_vertex_meta #-}\n\n-- | Sets the metadata associated with the given vertex.\nbindMeshDataTool_set_vertex_meta :: MethodBind\nbindMeshDataTool_set_vertex_meta\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"set_vertex_meta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the metadata associated with the given vertex.\nset_vertex_meta ::\n                  (MeshDataTool :< cls, Object :< cls) =>\n                  cls -> Int -> GodotVariant -> IO ()\nset_vertex_meta cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_set_vertex_meta\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"set_vertex_meta\"\n           '[Int, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshDataTool.set_vertex_meta\n\n{-# NOINLINE bindMeshDataTool_set_vertex_normal #-}\n\n-- | Sets the normal of the given vertex.\nbindMeshDataTool_set_vertex_normal :: MethodBind\nbindMeshDataTool_set_vertex_normal\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"set_vertex_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the normal of the given vertex.\nset_vertex_normal ::\n                    (MeshDataTool :< cls, Object :< cls) =>\n                    cls -> Int -> Vector3 -> IO ()\nset_vertex_normal cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_set_vertex_normal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"set_vertex_normal\"\n           '[Int, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshDataTool.set_vertex_normal\n\n{-# NOINLINE bindMeshDataTool_set_vertex_tangent #-}\n\n-- | Sets the tangent of the given vertex.\nbindMeshDataTool_set_vertex_tangent :: MethodBind\nbindMeshDataTool_set_vertex_tangent\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"set_vertex_tangent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the tangent of the given vertex.\nset_vertex_tangent ::\n                     (MeshDataTool :< cls, Object :< cls) =>\n                     cls -> Int -> Plane -> IO ()\nset_vertex_tangent cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_set_vertex_tangent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"set_vertex_tangent\" '[Int, Plane]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshDataTool.set_vertex_tangent\n\n{-# NOINLINE bindMeshDataTool_set_vertex_uv #-}\n\n-- | Sets the UV of the given vertex.\nbindMeshDataTool_set_vertex_uv :: MethodBind\nbindMeshDataTool_set_vertex_uv\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"set_vertex_uv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the UV of the given vertex.\nset_vertex_uv ::\n                (MeshDataTool :< cls, Object :< cls) =>\n                cls -> Int -> Vector2 -> IO ()\nset_vertex_uv cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_set_vertex_uv (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"set_vertex_uv\" '[Int, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshDataTool.set_vertex_uv\n\n{-# NOINLINE bindMeshDataTool_set_vertex_uv2 #-}\n\n-- | Sets the UV2 of the given vertex.\nbindMeshDataTool_set_vertex_uv2 :: MethodBind\nbindMeshDataTool_set_vertex_uv2\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"set_vertex_uv2\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the UV2 of the given vertex.\nset_vertex_uv2 ::\n                 (MeshDataTool :< cls, Object :< cls) =>\n                 cls -> Int -> Vector2 -> IO ()\nset_vertex_uv2 cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_set_vertex_uv2 (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"set_vertex_uv2\" '[Int, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshDataTool.set_vertex_uv2\n\n{-# NOINLINE bindMeshDataTool_set_vertex_weights #-}\n\n-- | Sets the bone weights of the given vertex.\nbindMeshDataTool_set_vertex_weights :: MethodBind\nbindMeshDataTool_set_vertex_weights\n  = unsafePerformIO $\n      withCString \"MeshDataTool\" $\n        \\ clsNamePtr ->\n          withCString \"set_vertex_weights\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the bone weights of the given vertex.\nset_vertex_weights ::\n                     (MeshDataTool :< cls, Object :< cls) =>\n                     cls -> Int -> PoolRealArray -> IO ()\nset_vertex_weights cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshDataTool_set_vertex_weights\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshDataTool \"set_vertex_weights\"\n           '[Int, PoolRealArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshDataTool.set_vertex_weights"
  },
  {
    "path": "src/Godot/Core/MeshInstance.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.MeshInstance\n       (Godot.Core.MeshInstance._mesh_changed,\n        Godot.Core.MeshInstance.create_convex_collision,\n        Godot.Core.MeshInstance.create_debug_tangents,\n        Godot.Core.MeshInstance.create_trimesh_collision,\n        Godot.Core.MeshInstance.get_mesh,\n        Godot.Core.MeshInstance.get_skeleton_path,\n        Godot.Core.MeshInstance.get_skin,\n        Godot.Core.MeshInstance.get_surface_material,\n        Godot.Core.MeshInstance.get_surface_material_count,\n        Godot.Core.MeshInstance.set_mesh,\n        Godot.Core.MeshInstance.set_skeleton_path,\n        Godot.Core.MeshInstance.set_skin,\n        Godot.Core.MeshInstance.set_surface_material)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.GeometryInstance()\n\ninstance NodeProperty MeshInstance \"mesh\" Mesh 'False where\n        nodeProperty = (get_mesh, wrapDroppingSetter set_mesh, Nothing)\n\ninstance NodeProperty MeshInstance \"skeleton\" NodePath 'False where\n        nodeProperty\n          = (get_skeleton_path, wrapDroppingSetter set_skeleton_path,\n             Nothing)\n\ninstance NodeProperty MeshInstance \"skin\" Skin 'False where\n        nodeProperty = (get_skin, wrapDroppingSetter set_skin, Nothing)\n\n{-# NOINLINE bindMeshInstance__mesh_changed #-}\n\nbindMeshInstance__mesh_changed :: MethodBind\nbindMeshInstance__mesh_changed\n  = unsafePerformIO $\n      withCString \"MeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"_mesh_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_mesh_changed ::\n                (MeshInstance :< cls, Object :< cls) => cls -> IO ()\n_mesh_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance__mesh_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance \"_mesh_changed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.MeshInstance._mesh_changed\n\n{-# NOINLINE bindMeshInstance_create_convex_collision #-}\n\n-- | This helper creates a @StaticBody@ child node with a @ConvexPolygonShape@ collision shape calculated from the mesh geometry. It's mainly used for testing.\nbindMeshInstance_create_convex_collision :: MethodBind\nbindMeshInstance_create_convex_collision\n  = unsafePerformIO $\n      withCString \"MeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"create_convex_collision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This helper creates a @StaticBody@ child node with a @ConvexPolygonShape@ collision shape calculated from the mesh geometry. It's mainly used for testing.\ncreate_convex_collision ::\n                          (MeshInstance :< cls, Object :< cls) => cls -> IO ()\ncreate_convex_collision cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance_create_convex_collision\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance \"create_convex_collision\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshInstance.create_convex_collision\n\n{-# NOINLINE bindMeshInstance_create_debug_tangents #-}\n\n-- | This helper creates a @MeshInstance@ child node with gizmos at every vertex calculated from the mesh geometry. It's mainly used for testing.\nbindMeshInstance_create_debug_tangents :: MethodBind\nbindMeshInstance_create_debug_tangents\n  = unsafePerformIO $\n      withCString \"MeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"create_debug_tangents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This helper creates a @MeshInstance@ child node with gizmos at every vertex calculated from the mesh geometry. It's mainly used for testing.\ncreate_debug_tangents ::\n                        (MeshInstance :< cls, Object :< cls) => cls -> IO ()\ncreate_debug_tangents cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance_create_debug_tangents\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance \"create_debug_tangents\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshInstance.create_debug_tangents\n\n{-# NOINLINE bindMeshInstance_create_trimesh_collision #-}\n\n-- | This helper creates a @StaticBody@ child node with a @ConcavePolygonShape@ collision shape calculated from the mesh geometry. It's mainly used for testing.\nbindMeshInstance_create_trimesh_collision :: MethodBind\nbindMeshInstance_create_trimesh_collision\n  = unsafePerformIO $\n      withCString \"MeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"create_trimesh_collision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This helper creates a @StaticBody@ child node with a @ConcavePolygonShape@ collision shape calculated from the mesh geometry. It's mainly used for testing.\ncreate_trimesh_collision ::\n                           (MeshInstance :< cls, Object :< cls) => cls -> IO ()\ncreate_trimesh_collision cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance_create_trimesh_collision\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance \"create_trimesh_collision\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshInstance.create_trimesh_collision\n\n{-# NOINLINE bindMeshInstance_get_mesh #-}\n\n-- | The @Mesh@ resource for the instance.\nbindMeshInstance_get_mesh :: MethodBind\nbindMeshInstance_get_mesh\n  = unsafePerformIO $\n      withCString \"MeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Mesh@ resource for the instance.\nget_mesh :: (MeshInstance :< cls, Object :< cls) => cls -> IO Mesh\nget_mesh cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance_get_mesh (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance \"get_mesh\" '[] (IO Mesh) where\n        nodeMethod = Godot.Core.MeshInstance.get_mesh\n\n{-# NOINLINE bindMeshInstance_get_skeleton_path #-}\n\n-- | @NodePath@ to the @Skeleton@ associated with the instance.\nbindMeshInstance_get_skeleton_path :: MethodBind\nbindMeshInstance_get_skeleton_path\n  = unsafePerformIO $\n      withCString \"MeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_skeleton_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @NodePath@ to the @Skeleton@ associated with the instance.\nget_skeleton_path ::\n                    (MeshInstance :< cls, Object :< cls) => cls -> IO NodePath\nget_skeleton_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance_get_skeleton_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance \"get_skeleton_path\" '[]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.MeshInstance.get_skeleton_path\n\n{-# NOINLINE bindMeshInstance_get_skin #-}\n\n-- | Sets the skin to be used by this instance.\nbindMeshInstance_get_skin :: MethodBind\nbindMeshInstance_get_skin\n  = unsafePerformIO $\n      withCString \"MeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_skin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the skin to be used by this instance.\nget_skin :: (MeshInstance :< cls, Object :< cls) => cls -> IO Skin\nget_skin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance_get_skin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance \"get_skin\" '[] (IO Skin) where\n        nodeMethod = Godot.Core.MeshInstance.get_skin\n\n{-# NOINLINE bindMeshInstance_get_surface_material #-}\n\n-- | Returns the @Material@ for a surface of the @Mesh@ resource.\nbindMeshInstance_get_surface_material :: MethodBind\nbindMeshInstance_get_surface_material\n  = unsafePerformIO $\n      withCString \"MeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_surface_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Material@ for a surface of the @Mesh@ resource.\nget_surface_material ::\n                       (MeshInstance :< cls, Object :< cls) => cls -> Int -> IO Material\nget_surface_material cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance_get_surface_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance \"get_surface_material\" '[Int]\n           (IO Material)\n         where\n        nodeMethod = Godot.Core.MeshInstance.get_surface_material\n\n{-# NOINLINE bindMeshInstance_get_surface_material_count #-}\n\n-- | Returns the number of surface materials.\nbindMeshInstance_get_surface_material_count :: MethodBind\nbindMeshInstance_get_surface_material_count\n  = unsafePerformIO $\n      withCString \"MeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_surface_material_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of surface materials.\nget_surface_material_count ::\n                             (MeshInstance :< cls, Object :< cls) => cls -> IO Int\nget_surface_material_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance_get_surface_material_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance \"get_surface_material_count\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.MeshInstance.get_surface_material_count\n\n{-# NOINLINE bindMeshInstance_set_mesh #-}\n\n-- | The @Mesh@ resource for the instance.\nbindMeshInstance_set_mesh :: MethodBind\nbindMeshInstance_set_mesh\n  = unsafePerformIO $\n      withCString \"MeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Mesh@ resource for the instance.\nset_mesh ::\n           (MeshInstance :< cls, Object :< cls) => cls -> Mesh -> IO ()\nset_mesh cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance_set_mesh (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance \"set_mesh\" '[Mesh] (IO ()) where\n        nodeMethod = Godot.Core.MeshInstance.set_mesh\n\n{-# NOINLINE bindMeshInstance_set_skeleton_path #-}\n\n-- | @NodePath@ to the @Skeleton@ associated with the instance.\nbindMeshInstance_set_skeleton_path :: MethodBind\nbindMeshInstance_set_skeleton_path\n  = unsafePerformIO $\n      withCString \"MeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_skeleton_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @NodePath@ to the @Skeleton@ associated with the instance.\nset_skeleton_path ::\n                    (MeshInstance :< cls, Object :< cls) => cls -> NodePath -> IO ()\nset_skeleton_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance_set_skeleton_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance \"set_skeleton_path\" '[NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshInstance.set_skeleton_path\n\n{-# NOINLINE bindMeshInstance_set_skin #-}\n\n-- | Sets the skin to be used by this instance.\nbindMeshInstance_set_skin :: MethodBind\nbindMeshInstance_set_skin\n  = unsafePerformIO $\n      withCString \"MeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_skin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the skin to be used by this instance.\nset_skin ::\n           (MeshInstance :< cls, Object :< cls) => cls -> Skin -> IO ()\nset_skin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance_set_skin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance \"set_skin\" '[Skin] (IO ()) where\n        nodeMethod = Godot.Core.MeshInstance.set_skin\n\n{-# NOINLINE bindMeshInstance_set_surface_material #-}\n\n-- | Sets the @Material@ for a surface of the @Mesh@ resource.\nbindMeshInstance_set_surface_material :: MethodBind\nbindMeshInstance_set_surface_material\n  = unsafePerformIO $\n      withCString \"MeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_surface_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Material@ for a surface of the @Mesh@ resource.\nset_surface_material ::\n                       (MeshInstance :< cls, Object :< cls) =>\n                       cls -> Int -> Material -> IO ()\nset_surface_material cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance_set_surface_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance \"set_surface_material\"\n           '[Int, Material]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshInstance.set_surface_material"
  },
  {
    "path": "src/Godot/Core/MeshInstance2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.MeshInstance2D\n       (Godot.Core.MeshInstance2D.sig_texture_changed,\n        Godot.Core.MeshInstance2D.get_mesh,\n        Godot.Core.MeshInstance2D.get_normal_map,\n        Godot.Core.MeshInstance2D.get_texture,\n        Godot.Core.MeshInstance2D.set_mesh,\n        Godot.Core.MeshInstance2D.set_normal_map,\n        Godot.Core.MeshInstance2D.set_texture)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\n-- | Emitted when the @texture@ is changed.\nsig_texture_changed ::\n                    Godot.Internal.Dispatch.Signal MeshInstance2D\nsig_texture_changed\n  = Godot.Internal.Dispatch.Signal \"texture_changed\"\n\ninstance NodeSignal MeshInstance2D \"texture_changed\" '[]\n\ninstance NodeProperty MeshInstance2D \"mesh\" Mesh 'False where\n        nodeProperty = (get_mesh, wrapDroppingSetter set_mesh, Nothing)\n\ninstance NodeProperty MeshInstance2D \"normal_map\" Texture 'False\n         where\n        nodeProperty\n          = (get_normal_map, wrapDroppingSetter set_normal_map, Nothing)\n\ninstance NodeProperty MeshInstance2D \"texture\" Texture 'False where\n        nodeProperty\n          = (get_texture, wrapDroppingSetter set_texture, Nothing)\n\n{-# NOINLINE bindMeshInstance2D_get_mesh #-}\n\n-- | The @Mesh@ that will be drawn by the @MeshInstance2D@.\nbindMeshInstance2D_get_mesh :: MethodBind\nbindMeshInstance2D_get_mesh\n  = unsafePerformIO $\n      withCString \"MeshInstance2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Mesh@ that will be drawn by the @MeshInstance2D@.\nget_mesh ::\n           (MeshInstance2D :< cls, Object :< cls) => cls -> IO Mesh\nget_mesh cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance2D_get_mesh (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance2D \"get_mesh\" '[] (IO Mesh) where\n        nodeMethod = Godot.Core.MeshInstance2D.get_mesh\n\n{-# NOINLINE bindMeshInstance2D_get_normal_map #-}\n\n-- | The normal map that will be used if using the default @CanvasItemMaterial@.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nbindMeshInstance2D_get_normal_map :: MethodBind\nbindMeshInstance2D_get_normal_map\n  = unsafePerformIO $\n      withCString \"MeshInstance2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_normal_map\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The normal map that will be used if using the default @CanvasItemMaterial@.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nget_normal_map ::\n                 (MeshInstance2D :< cls, Object :< cls) => cls -> IO Texture\nget_normal_map cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance2D_get_normal_map\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance2D \"get_normal_map\" '[]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.MeshInstance2D.get_normal_map\n\n{-# NOINLINE bindMeshInstance2D_get_texture #-}\n\n-- | The @Texture@ that will be used if using the default @CanvasItemMaterial@. Can be accessed as @TEXTURE@ in CanvasItem shader.\nbindMeshInstance2D_get_texture :: MethodBind\nbindMeshInstance2D_get_texture\n  = unsafePerformIO $\n      withCString \"MeshInstance2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Texture@ that will be used if using the default @CanvasItemMaterial@. Can be accessed as @TEXTURE@ in CanvasItem shader.\nget_texture ::\n              (MeshInstance2D :< cls, Object :< cls) => cls -> IO Texture\nget_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance2D_get_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance2D \"get_texture\" '[] (IO Texture)\n         where\n        nodeMethod = Godot.Core.MeshInstance2D.get_texture\n\n{-# NOINLINE bindMeshInstance2D_set_mesh #-}\n\n-- | The @Mesh@ that will be drawn by the @MeshInstance2D@.\nbindMeshInstance2D_set_mesh :: MethodBind\nbindMeshInstance2D_set_mesh\n  = unsafePerformIO $\n      withCString \"MeshInstance2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Mesh@ that will be drawn by the @MeshInstance2D@.\nset_mesh ::\n           (MeshInstance2D :< cls, Object :< cls) => cls -> Mesh -> IO ()\nset_mesh cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance2D_set_mesh (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance2D \"set_mesh\" '[Mesh] (IO ()) where\n        nodeMethod = Godot.Core.MeshInstance2D.set_mesh\n\n{-# NOINLINE bindMeshInstance2D_set_normal_map #-}\n\n-- | The normal map that will be used if using the default @CanvasItemMaterial@.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nbindMeshInstance2D_set_normal_map :: MethodBind\nbindMeshInstance2D_set_normal_map\n  = unsafePerformIO $\n      withCString \"MeshInstance2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_normal_map\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The normal map that will be used if using the default @CanvasItemMaterial@.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nset_normal_map ::\n                 (MeshInstance2D :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_normal_map cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance2D_set_normal_map\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance2D \"set_normal_map\" '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshInstance2D.set_normal_map\n\n{-# NOINLINE bindMeshInstance2D_set_texture #-}\n\n-- | The @Texture@ that will be used if using the default @CanvasItemMaterial@. Can be accessed as @TEXTURE@ in CanvasItem shader.\nbindMeshInstance2D_set_texture :: MethodBind\nbindMeshInstance2D_set_texture\n  = unsafePerformIO $\n      withCString \"MeshInstance2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Texture@ that will be used if using the default @CanvasItemMaterial@. Can be accessed as @TEXTURE@ in CanvasItem shader.\nset_texture ::\n              (MeshInstance2D :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshInstance2D_set_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshInstance2D \"set_texture\" '[Texture] (IO ())\n         where\n        nodeMethod = Godot.Core.MeshInstance2D.set_texture"
  },
  {
    "path": "src/Godot/Core/MeshLibrary.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.MeshLibrary\n       (Godot.Core.MeshLibrary.clear, Godot.Core.MeshLibrary.create_item,\n        Godot.Core.MeshLibrary.find_item_by_name,\n        Godot.Core.MeshLibrary.get_item_list,\n        Godot.Core.MeshLibrary.get_item_mesh,\n        Godot.Core.MeshLibrary.get_item_name,\n        Godot.Core.MeshLibrary.get_item_navmesh,\n        Godot.Core.MeshLibrary.get_item_navmesh_transform,\n        Godot.Core.MeshLibrary.get_item_preview,\n        Godot.Core.MeshLibrary.get_item_shapes,\n        Godot.Core.MeshLibrary.get_last_unused_item_id,\n        Godot.Core.MeshLibrary.remove_item,\n        Godot.Core.MeshLibrary.set_item_mesh,\n        Godot.Core.MeshLibrary.set_item_name,\n        Godot.Core.MeshLibrary.set_item_navmesh,\n        Godot.Core.MeshLibrary.set_item_navmesh_transform,\n        Godot.Core.MeshLibrary.set_item_preview,\n        Godot.Core.MeshLibrary.set_item_shapes)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n{-# NOINLINE bindMeshLibrary_clear #-}\n\n-- | Clears the library.\nbindMeshLibrary_clear :: MethodBind\nbindMeshLibrary_clear\n  = unsafePerformIO $\n      withCString \"MeshLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears the library.\nclear :: (MeshLibrary :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshLibrary_clear (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshLibrary \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.MeshLibrary.clear\n\n{-# NOINLINE bindMeshLibrary_create_item #-}\n\n-- | Creates a new item in the library with the given ID.\n--   \t\t\t\tYou can get an unused ID from @method get_last_unused_item_id@.\nbindMeshLibrary_create_item :: MethodBind\nbindMeshLibrary_create_item\n  = unsafePerformIO $\n      withCString \"MeshLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"create_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a new item in the library with the given ID.\n--   \t\t\t\tYou can get an unused ID from @method get_last_unused_item_id@.\ncreate_item ::\n              (MeshLibrary :< cls, Object :< cls) => cls -> Int -> IO ()\ncreate_item cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshLibrary_create_item (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshLibrary \"create_item\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.MeshLibrary.create_item\n\n{-# NOINLINE bindMeshLibrary_find_item_by_name #-}\n\n-- | Returns the first item with the given name.\nbindMeshLibrary_find_item_by_name :: MethodBind\nbindMeshLibrary_find_item_by_name\n  = unsafePerformIO $\n      withCString \"MeshLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"find_item_by_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the first item with the given name.\nfind_item_by_name ::\n                    (MeshLibrary :< cls, Object :< cls) => cls -> GodotString -> IO Int\nfind_item_by_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshLibrary_find_item_by_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshLibrary \"find_item_by_name\" '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.MeshLibrary.find_item_by_name\n\n{-# NOINLINE bindMeshLibrary_get_item_list #-}\n\n-- | Returns the list of item IDs in use.\nbindMeshLibrary_get_item_list :: MethodBind\nbindMeshLibrary_get_item_list\n  = unsafePerformIO $\n      withCString \"MeshLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the list of item IDs in use.\nget_item_list ::\n                (MeshLibrary :< cls, Object :< cls) => cls -> IO PoolIntArray\nget_item_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshLibrary_get_item_list (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshLibrary \"get_item_list\" '[]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.MeshLibrary.get_item_list\n\n{-# NOINLINE bindMeshLibrary_get_item_mesh #-}\n\n-- | Returns the item's mesh.\nbindMeshLibrary_get_item_mesh :: MethodBind\nbindMeshLibrary_get_item_mesh\n  = unsafePerformIO $\n      withCString \"MeshLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the item's mesh.\nget_item_mesh ::\n                (MeshLibrary :< cls, Object :< cls) => cls -> Int -> IO Mesh\nget_item_mesh cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshLibrary_get_item_mesh (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshLibrary \"get_item_mesh\" '[Int] (IO Mesh)\n         where\n        nodeMethod = Godot.Core.MeshLibrary.get_item_mesh\n\n{-# NOINLINE bindMeshLibrary_get_item_name #-}\n\n-- | Returns the item's name.\nbindMeshLibrary_get_item_name :: MethodBind\nbindMeshLibrary_get_item_name\n  = unsafePerformIO $\n      withCString \"MeshLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the item's name.\nget_item_name ::\n                (MeshLibrary :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_item_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshLibrary_get_item_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshLibrary \"get_item_name\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.MeshLibrary.get_item_name\n\n{-# NOINLINE bindMeshLibrary_get_item_navmesh #-}\n\n-- | Returns the item's navigation mesh.\nbindMeshLibrary_get_item_navmesh :: MethodBind\nbindMeshLibrary_get_item_navmesh\n  = unsafePerformIO $\n      withCString \"MeshLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_navmesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the item's navigation mesh.\nget_item_navmesh ::\n                   (MeshLibrary :< cls, Object :< cls) =>\n                   cls -> Int -> IO NavigationMesh\nget_item_navmesh cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshLibrary_get_item_navmesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshLibrary \"get_item_navmesh\" '[Int]\n           (IO NavigationMesh)\n         where\n        nodeMethod = Godot.Core.MeshLibrary.get_item_navmesh\n\n{-# NOINLINE bindMeshLibrary_get_item_navmesh_transform #-}\n\n-- | Returns the transform applied to the item's navigation mesh.\nbindMeshLibrary_get_item_navmesh_transform :: MethodBind\nbindMeshLibrary_get_item_navmesh_transform\n  = unsafePerformIO $\n      withCString \"MeshLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_navmesh_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the transform applied to the item's navigation mesh.\nget_item_navmesh_transform ::\n                             (MeshLibrary :< cls, Object :< cls) => cls -> Int -> IO Transform\nget_item_navmesh_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshLibrary_get_item_navmesh_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshLibrary \"get_item_navmesh_transform\" '[Int]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.MeshLibrary.get_item_navmesh_transform\n\n{-# NOINLINE bindMeshLibrary_get_item_preview #-}\n\n-- | When running in the editor, returns a generated item preview (a 3D rendering in isometric perspective). When used in a running project, returns the manually-defined item preview which can be set using @method set_item_preview@. Returns an empty @Texture@ if no preview was manually set in a running project.\nbindMeshLibrary_get_item_preview :: MethodBind\nbindMeshLibrary_get_item_preview\n  = unsafePerformIO $\n      withCString \"MeshLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_preview\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | When running in the editor, returns a generated item preview (a 3D rendering in isometric perspective). When used in a running project, returns the manually-defined item preview which can be set using @method set_item_preview@. Returns an empty @Texture@ if no preview was manually set in a running project.\nget_item_preview ::\n                   (MeshLibrary :< cls, Object :< cls) => cls -> Int -> IO Texture\nget_item_preview cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshLibrary_get_item_preview\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshLibrary \"get_item_preview\" '[Int]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.MeshLibrary.get_item_preview\n\n{-# NOINLINE bindMeshLibrary_get_item_shapes #-}\n\n-- | Returns an item's collision shapes.\n--   \t\t\t\tThe array consists of each @Shape@ followed by its @Transform@.\nbindMeshLibrary_get_item_shapes :: MethodBind\nbindMeshLibrary_get_item_shapes\n  = unsafePerformIO $\n      withCString \"MeshLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_shapes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an item's collision shapes.\n--   \t\t\t\tThe array consists of each @Shape@ followed by its @Transform@.\nget_item_shapes ::\n                  (MeshLibrary :< cls, Object :< cls) => cls -> Int -> IO Array\nget_item_shapes cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshLibrary_get_item_shapes (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshLibrary \"get_item_shapes\" '[Int] (IO Array)\n         where\n        nodeMethod = Godot.Core.MeshLibrary.get_item_shapes\n\n{-# NOINLINE bindMeshLibrary_get_last_unused_item_id #-}\n\n-- | Gets an unused ID for a new item.\nbindMeshLibrary_get_last_unused_item_id :: MethodBind\nbindMeshLibrary_get_last_unused_item_id\n  = unsafePerformIO $\n      withCString \"MeshLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"get_last_unused_item_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets an unused ID for a new item.\nget_last_unused_item_id ::\n                          (MeshLibrary :< cls, Object :< cls) => cls -> IO Int\nget_last_unused_item_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshLibrary_get_last_unused_item_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshLibrary \"get_last_unused_item_id\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.MeshLibrary.get_last_unused_item_id\n\n{-# NOINLINE bindMeshLibrary_remove_item #-}\n\n-- | Removes the item.\nbindMeshLibrary_remove_item :: MethodBind\nbindMeshLibrary_remove_item\n  = unsafePerformIO $\n      withCString \"MeshLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"remove_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the item.\nremove_item ::\n              (MeshLibrary :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_item cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshLibrary_remove_item (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshLibrary \"remove_item\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.MeshLibrary.remove_item\n\n{-# NOINLINE bindMeshLibrary_set_item_mesh #-}\n\n-- | Sets the item's mesh.\nbindMeshLibrary_set_item_mesh :: MethodBind\nbindMeshLibrary_set_item_mesh\n  = unsafePerformIO $\n      withCString \"MeshLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the item's mesh.\nset_item_mesh ::\n                (MeshLibrary :< cls, Object :< cls) => cls -> Int -> Mesh -> IO ()\nset_item_mesh cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshLibrary_set_item_mesh (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshLibrary \"set_item_mesh\" '[Int, Mesh]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshLibrary.set_item_mesh\n\n{-# NOINLINE bindMeshLibrary_set_item_name #-}\n\n-- | Sets the item's name.\n--   \t\t\t\tThis name is shown in the editor. It can also be used to look up the item later using @method find_item_by_name@.\nbindMeshLibrary_set_item_name :: MethodBind\nbindMeshLibrary_set_item_name\n  = unsafePerformIO $\n      withCString \"MeshLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the item's name.\n--   \t\t\t\tThis name is shown in the editor. It can also be used to look up the item later using @method find_item_by_name@.\nset_item_name ::\n                (MeshLibrary :< cls, Object :< cls) =>\n                cls -> Int -> GodotString -> IO ()\nset_item_name cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshLibrary_set_item_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshLibrary \"set_item_name\" '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshLibrary.set_item_name\n\n{-# NOINLINE bindMeshLibrary_set_item_navmesh #-}\n\n-- | Sets the item's navigation mesh.\nbindMeshLibrary_set_item_navmesh :: MethodBind\nbindMeshLibrary_set_item_navmesh\n  = unsafePerformIO $\n      withCString \"MeshLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_navmesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the item's navigation mesh.\nset_item_navmesh ::\n                   (MeshLibrary :< cls, Object :< cls) =>\n                   cls -> Int -> NavigationMesh -> IO ()\nset_item_navmesh cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshLibrary_set_item_navmesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshLibrary \"set_item_navmesh\"\n           '[Int, NavigationMesh]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshLibrary.set_item_navmesh\n\n{-# NOINLINE bindMeshLibrary_set_item_navmesh_transform #-}\n\n-- | Sets the transform to apply to the item's navigation mesh.\nbindMeshLibrary_set_item_navmesh_transform :: MethodBind\nbindMeshLibrary_set_item_navmesh_transform\n  = unsafePerformIO $\n      withCString \"MeshLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_navmesh_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the transform to apply to the item's navigation mesh.\nset_item_navmesh_transform ::\n                             (MeshLibrary :< cls, Object :< cls) =>\n                             cls -> Int -> Transform -> IO ()\nset_item_navmesh_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshLibrary_set_item_navmesh_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshLibrary \"set_item_navmesh_transform\"\n           '[Int, Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshLibrary.set_item_navmesh_transform\n\n{-# NOINLINE bindMeshLibrary_set_item_preview #-}\n\n-- | Sets a texture to use as the item's preview icon in the editor.\nbindMeshLibrary_set_item_preview :: MethodBind\nbindMeshLibrary_set_item_preview\n  = unsafePerformIO $\n      withCString \"MeshLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_preview\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a texture to use as the item's preview icon in the editor.\nset_item_preview ::\n                   (MeshLibrary :< cls, Object :< cls) =>\n                   cls -> Int -> Texture -> IO ()\nset_item_preview cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshLibrary_set_item_preview\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshLibrary \"set_item_preview\" '[Int, Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshLibrary.set_item_preview\n\n{-# NOINLINE bindMeshLibrary_set_item_shapes #-}\n\n-- | Sets an item's collision shapes.\n--   \t\t\t\tThe array should consist of @Shape@ objects, each followed by a @Transform@ that will be applied to it. For shapes that should not have a transform, use @Transform.IDENTITY@.\nbindMeshLibrary_set_item_shapes :: MethodBind\nbindMeshLibrary_set_item_shapes\n  = unsafePerformIO $\n      withCString \"MeshLibrary\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_shapes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets an item's collision shapes.\n--   \t\t\t\tThe array should consist of @Shape@ objects, each followed by a @Transform@ that will be applied to it. For shapes that should not have a transform, use @Transform.IDENTITY@.\nset_item_shapes ::\n                  (MeshLibrary :< cls, Object :< cls) => cls -> Int -> Array -> IO ()\nset_item_shapes cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshLibrary_set_item_shapes (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshLibrary \"set_item_shapes\" '[Int, Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshLibrary.set_item_shapes"
  },
  {
    "path": "src/Godot/Core/MeshTexture.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.MeshTexture\n       (Godot.Core.MeshTexture.get_base_texture,\n        Godot.Core.MeshTexture.get_image_size,\n        Godot.Core.MeshTexture.get_mesh,\n        Godot.Core.MeshTexture.set_base_texture,\n        Godot.Core.MeshTexture.set_image_size,\n        Godot.Core.MeshTexture.set_mesh)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Texture()\n\ninstance NodeProperty MeshTexture \"base_texture\" Texture 'False\n         where\n        nodeProperty\n          = (get_base_texture, wrapDroppingSetter set_base_texture, Nothing)\n\ninstance NodeProperty MeshTexture \"image_size\" Vector2 'False where\n        nodeProperty\n          = (get_image_size, wrapDroppingSetter set_image_size, Nothing)\n\ninstance NodeProperty MeshTexture \"mesh\" Mesh 'False where\n        nodeProperty = (get_mesh, wrapDroppingSetter set_mesh, Nothing)\n\n{-# NOINLINE bindMeshTexture_get_base_texture #-}\n\n-- | Sets the base texture that the Mesh will use to draw.\nbindMeshTexture_get_base_texture :: MethodBind\nbindMeshTexture_get_base_texture\n  = unsafePerformIO $\n      withCString \"MeshTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_base_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the base texture that the Mesh will use to draw.\nget_base_texture ::\n                   (MeshTexture :< cls, Object :< cls) => cls -> IO Texture\nget_base_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshTexture_get_base_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshTexture \"get_base_texture\" '[] (IO Texture)\n         where\n        nodeMethod = Godot.Core.MeshTexture.get_base_texture\n\n{-# NOINLINE bindMeshTexture_get_image_size #-}\n\n-- | Sets the size of the image, needed for reference.\nbindMeshTexture_get_image_size :: MethodBind\nbindMeshTexture_get_image_size\n  = unsafePerformIO $\n      withCString \"MeshTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_image_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the size of the image, needed for reference.\nget_image_size ::\n                 (MeshTexture :< cls, Object :< cls) => cls -> IO Vector2\nget_image_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshTexture_get_image_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshTexture \"get_image_size\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.MeshTexture.get_image_size\n\n{-# NOINLINE bindMeshTexture_get_mesh #-}\n\n-- | Sets the mesh used to draw. It must be a mesh using 2D vertices.\nbindMeshTexture_get_mesh :: MethodBind\nbindMeshTexture_get_mesh\n  = unsafePerformIO $\n      withCString \"MeshTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the mesh used to draw. It must be a mesh using 2D vertices.\nget_mesh :: (MeshTexture :< cls, Object :< cls) => cls -> IO Mesh\nget_mesh cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshTexture_get_mesh (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshTexture \"get_mesh\" '[] (IO Mesh) where\n        nodeMethod = Godot.Core.MeshTexture.get_mesh\n\n{-# NOINLINE bindMeshTexture_set_base_texture #-}\n\n-- | Sets the base texture that the Mesh will use to draw.\nbindMeshTexture_set_base_texture :: MethodBind\nbindMeshTexture_set_base_texture\n  = unsafePerformIO $\n      withCString \"MeshTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_base_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the base texture that the Mesh will use to draw.\nset_base_texture ::\n                   (MeshTexture :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_base_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshTexture_set_base_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshTexture \"set_base_texture\" '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MeshTexture.set_base_texture\n\n{-# NOINLINE bindMeshTexture_set_image_size #-}\n\n-- | Sets the size of the image, needed for reference.\nbindMeshTexture_set_image_size :: MethodBind\nbindMeshTexture_set_image_size\n  = unsafePerformIO $\n      withCString \"MeshTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_image_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the size of the image, needed for reference.\nset_image_size ::\n                 (MeshTexture :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_image_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshTexture_set_image_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshTexture \"set_image_size\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.MeshTexture.set_image_size\n\n{-# NOINLINE bindMeshTexture_set_mesh #-}\n\n-- | Sets the mesh used to draw. It must be a mesh using 2D vertices.\nbindMeshTexture_set_mesh :: MethodBind\nbindMeshTexture_set_mesh\n  = unsafePerformIO $\n      withCString \"MeshTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the mesh used to draw. It must be a mesh using 2D vertices.\nset_mesh ::\n           (MeshTexture :< cls, Object :< cls) => cls -> Mesh -> IO ()\nset_mesh cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMeshTexture_set_mesh (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MeshTexture \"set_mesh\" '[Mesh] (IO ()) where\n        nodeMethod = Godot.Core.MeshTexture.set_mesh"
  },
  {
    "path": "src/Godot/Core/MobileVRInterface.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.MobileVRInterface\n       (Godot.Core.MobileVRInterface.get_display_to_lens,\n        Godot.Core.MobileVRInterface.get_display_width,\n        Godot.Core.MobileVRInterface.get_eye_height,\n        Godot.Core.MobileVRInterface.get_iod,\n        Godot.Core.MobileVRInterface.get_k1,\n        Godot.Core.MobileVRInterface.get_k2,\n        Godot.Core.MobileVRInterface.get_oversample,\n        Godot.Core.MobileVRInterface.set_display_to_lens,\n        Godot.Core.MobileVRInterface.set_display_width,\n        Godot.Core.MobileVRInterface.set_eye_height,\n        Godot.Core.MobileVRInterface.set_iod,\n        Godot.Core.MobileVRInterface.set_k1,\n        Godot.Core.MobileVRInterface.set_k2,\n        Godot.Core.MobileVRInterface.set_oversample)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.ARVRInterface()\n\ninstance NodeProperty MobileVRInterface \"display_to_lens\" Float\n           'False\n         where\n        nodeProperty\n          = (get_display_to_lens, wrapDroppingSetter set_display_to_lens,\n             Nothing)\n\ninstance NodeProperty MobileVRInterface \"display_width\" Float\n           'False\n         where\n        nodeProperty\n          = (get_display_width, wrapDroppingSetter set_display_width,\n             Nothing)\n\ninstance NodeProperty MobileVRInterface \"eye_height\" Float 'False\n         where\n        nodeProperty\n          = (get_eye_height, wrapDroppingSetter set_eye_height, Nothing)\n\ninstance NodeProperty MobileVRInterface \"iod\" Float 'False where\n        nodeProperty = (get_iod, wrapDroppingSetter set_iod, Nothing)\n\ninstance NodeProperty MobileVRInterface \"k1\" Float 'False where\n        nodeProperty = (get_k1, wrapDroppingSetter set_k1, Nothing)\n\ninstance NodeProperty MobileVRInterface \"k2\" Float 'False where\n        nodeProperty = (get_k2, wrapDroppingSetter set_k2, Nothing)\n\ninstance NodeProperty MobileVRInterface \"oversample\" Float 'False\n         where\n        nodeProperty\n          = (get_oversample, wrapDroppingSetter set_oversample, Nothing)\n\n{-# NOINLINE bindMobileVRInterface_get_display_to_lens #-}\n\nbindMobileVRInterface_get_display_to_lens :: MethodBind\nbindMobileVRInterface_get_display_to_lens\n  = unsafePerformIO $\n      withCString \"MobileVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_display_to_lens\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_display_to_lens ::\n                      (MobileVRInterface :< cls, Object :< cls) => cls -> IO Float\nget_display_to_lens cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMobileVRInterface_get_display_to_lens\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MobileVRInterface \"get_display_to_lens\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.MobileVRInterface.get_display_to_lens\n\n{-# NOINLINE bindMobileVRInterface_get_display_width #-}\n\nbindMobileVRInterface_get_display_width :: MethodBind\nbindMobileVRInterface_get_display_width\n  = unsafePerformIO $\n      withCString \"MobileVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_display_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_display_width ::\n                    (MobileVRInterface :< cls, Object :< cls) => cls -> IO Float\nget_display_width cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMobileVRInterface_get_display_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MobileVRInterface \"get_display_width\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.MobileVRInterface.get_display_width\n\n{-# NOINLINE bindMobileVRInterface_get_eye_height #-}\n\nbindMobileVRInterface_get_eye_height :: MethodBind\nbindMobileVRInterface_get_eye_height\n  = unsafePerformIO $\n      withCString \"MobileVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_eye_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_eye_height ::\n                 (MobileVRInterface :< cls, Object :< cls) => cls -> IO Float\nget_eye_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMobileVRInterface_get_eye_height\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MobileVRInterface \"get_eye_height\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.MobileVRInterface.get_eye_height\n\n{-# NOINLINE bindMobileVRInterface_get_iod #-}\n\nbindMobileVRInterface_get_iod :: MethodBind\nbindMobileVRInterface_get_iod\n  = unsafePerformIO $\n      withCString \"MobileVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_iod\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_iod ::\n          (MobileVRInterface :< cls, Object :< cls) => cls -> IO Float\nget_iod cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMobileVRInterface_get_iod (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MobileVRInterface \"get_iod\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.MobileVRInterface.get_iod\n\n{-# NOINLINE bindMobileVRInterface_get_k1 #-}\n\nbindMobileVRInterface_get_k1 :: MethodBind\nbindMobileVRInterface_get_k1\n  = unsafePerformIO $\n      withCString \"MobileVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_k1\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_k1 ::\n         (MobileVRInterface :< cls, Object :< cls) => cls -> IO Float\nget_k1 cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMobileVRInterface_get_k1 (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MobileVRInterface \"get_k1\" '[] (IO Float) where\n        nodeMethod = Godot.Core.MobileVRInterface.get_k1\n\n{-# NOINLINE bindMobileVRInterface_get_k2 #-}\n\nbindMobileVRInterface_get_k2 :: MethodBind\nbindMobileVRInterface_get_k2\n  = unsafePerformIO $\n      withCString \"MobileVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_k2\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_k2 ::\n         (MobileVRInterface :< cls, Object :< cls) => cls -> IO Float\nget_k2 cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMobileVRInterface_get_k2 (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MobileVRInterface \"get_k2\" '[] (IO Float) where\n        nodeMethod = Godot.Core.MobileVRInterface.get_k2\n\n{-# NOINLINE bindMobileVRInterface_get_oversample #-}\n\nbindMobileVRInterface_get_oversample :: MethodBind\nbindMobileVRInterface_get_oversample\n  = unsafePerformIO $\n      withCString \"MobileVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_oversample\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_oversample ::\n                 (MobileVRInterface :< cls, Object :< cls) => cls -> IO Float\nget_oversample cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMobileVRInterface_get_oversample\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MobileVRInterface \"get_oversample\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.MobileVRInterface.get_oversample\n\n{-# NOINLINE bindMobileVRInterface_set_display_to_lens #-}\n\nbindMobileVRInterface_set_display_to_lens :: MethodBind\nbindMobileVRInterface_set_display_to_lens\n  = unsafePerformIO $\n      withCString \"MobileVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"set_display_to_lens\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_display_to_lens ::\n                      (MobileVRInterface :< cls, Object :< cls) => cls -> Float -> IO ()\nset_display_to_lens cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMobileVRInterface_set_display_to_lens\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MobileVRInterface \"set_display_to_lens\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MobileVRInterface.set_display_to_lens\n\n{-# NOINLINE bindMobileVRInterface_set_display_width #-}\n\nbindMobileVRInterface_set_display_width :: MethodBind\nbindMobileVRInterface_set_display_width\n  = unsafePerformIO $\n      withCString \"MobileVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"set_display_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_display_width ::\n                    (MobileVRInterface :< cls, Object :< cls) => cls -> Float -> IO ()\nset_display_width cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMobileVRInterface_set_display_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MobileVRInterface \"set_display_width\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MobileVRInterface.set_display_width\n\n{-# NOINLINE bindMobileVRInterface_set_eye_height #-}\n\nbindMobileVRInterface_set_eye_height :: MethodBind\nbindMobileVRInterface_set_eye_height\n  = unsafePerformIO $\n      withCString \"MobileVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"set_eye_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_eye_height ::\n                 (MobileVRInterface :< cls, Object :< cls) => cls -> Float -> IO ()\nset_eye_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMobileVRInterface_set_eye_height\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MobileVRInterface \"set_eye_height\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MobileVRInterface.set_eye_height\n\n{-# NOINLINE bindMobileVRInterface_set_iod #-}\n\nbindMobileVRInterface_set_iod :: MethodBind\nbindMobileVRInterface_set_iod\n  = unsafePerformIO $\n      withCString \"MobileVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"set_iod\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_iod ::\n          (MobileVRInterface :< cls, Object :< cls) => cls -> Float -> IO ()\nset_iod cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMobileVRInterface_set_iod (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MobileVRInterface \"set_iod\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.MobileVRInterface.set_iod\n\n{-# NOINLINE bindMobileVRInterface_set_k1 #-}\n\nbindMobileVRInterface_set_k1 :: MethodBind\nbindMobileVRInterface_set_k1\n  = unsafePerformIO $\n      withCString \"MobileVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"set_k1\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_k1 ::\n         (MobileVRInterface :< cls, Object :< cls) => cls -> Float -> IO ()\nset_k1 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMobileVRInterface_set_k1 (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MobileVRInterface \"set_k1\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.MobileVRInterface.set_k1\n\n{-# NOINLINE bindMobileVRInterface_set_k2 #-}\n\nbindMobileVRInterface_set_k2 :: MethodBind\nbindMobileVRInterface_set_k2\n  = unsafePerformIO $\n      withCString \"MobileVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"set_k2\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_k2 ::\n         (MobileVRInterface :< cls, Object :< cls) => cls -> Float -> IO ()\nset_k2 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMobileVRInterface_set_k2 (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MobileVRInterface \"set_k2\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.MobileVRInterface.set_k2\n\n{-# NOINLINE bindMobileVRInterface_set_oversample #-}\n\nbindMobileVRInterface_set_oversample :: MethodBind\nbindMobileVRInterface_set_oversample\n  = unsafePerformIO $\n      withCString \"MobileVRInterface\" $\n        \\ clsNamePtr ->\n          withCString \"set_oversample\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_oversample ::\n                 (MobileVRInterface :< cls, Object :< cls) => cls -> Float -> IO ()\nset_oversample cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMobileVRInterface_set_oversample\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MobileVRInterface \"set_oversample\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MobileVRInterface.set_oversample"
  },
  {
    "path": "src/Godot/Core/MultiMesh.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.MultiMesh\n       (Godot.Core.MultiMesh._CUSTOM_DATA_8BIT,\n        Godot.Core.MultiMesh._TRANSFORM_3D,\n        Godot.Core.MultiMesh._COLOR_NONE,\n        Godot.Core.MultiMesh._COLOR_FLOAT,\n        Godot.Core.MultiMesh._TRANSFORM_2D,\n        Godot.Core.MultiMesh._COLOR_8BIT,\n        Godot.Core.MultiMesh._CUSTOM_DATA_FLOAT,\n        Godot.Core.MultiMesh._CUSTOM_DATA_NONE,\n        Godot.Core.MultiMesh._get_color_array,\n        Godot.Core.MultiMesh._get_custom_data_array,\n        Godot.Core.MultiMesh._get_transform_2d_array,\n        Godot.Core.MultiMesh._get_transform_array,\n        Godot.Core.MultiMesh._set_color_array,\n        Godot.Core.MultiMesh._set_custom_data_array,\n        Godot.Core.MultiMesh._set_transform_2d_array,\n        Godot.Core.MultiMesh._set_transform_array,\n        Godot.Core.MultiMesh.get_aabb,\n        Godot.Core.MultiMesh.get_color_format,\n        Godot.Core.MultiMesh.get_custom_data_format,\n        Godot.Core.MultiMesh.get_instance_color,\n        Godot.Core.MultiMesh.get_instance_count,\n        Godot.Core.MultiMesh.get_instance_custom_data,\n        Godot.Core.MultiMesh.get_instance_transform,\n        Godot.Core.MultiMesh.get_instance_transform_2d,\n        Godot.Core.MultiMesh.get_mesh,\n        Godot.Core.MultiMesh.get_transform_format,\n        Godot.Core.MultiMesh.get_visible_instance_count,\n        Godot.Core.MultiMesh.set_as_bulk_array,\n        Godot.Core.MultiMesh.set_color_format,\n        Godot.Core.MultiMesh.set_custom_data_format,\n        Godot.Core.MultiMesh.set_instance_color,\n        Godot.Core.MultiMesh.set_instance_count,\n        Godot.Core.MultiMesh.set_instance_custom_data,\n        Godot.Core.MultiMesh.set_instance_transform,\n        Godot.Core.MultiMesh.set_instance_transform_2d,\n        Godot.Core.MultiMesh.set_mesh,\n        Godot.Core.MultiMesh.set_transform_format,\n        Godot.Core.MultiMesh.set_visible_instance_count)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_CUSTOM_DATA_8BIT :: Int\n_CUSTOM_DATA_8BIT = 1\n\n_TRANSFORM_3D :: Int\n_TRANSFORM_3D = 1\n\n_COLOR_NONE :: Int\n_COLOR_NONE = 0\n\n_COLOR_FLOAT :: Int\n_COLOR_FLOAT = 2\n\n_TRANSFORM_2D :: Int\n_TRANSFORM_2D = 0\n\n_COLOR_8BIT :: Int\n_COLOR_8BIT = 1\n\n_CUSTOM_DATA_FLOAT :: Int\n_CUSTOM_DATA_FLOAT = 2\n\n_CUSTOM_DATA_NONE :: Int\n_CUSTOM_DATA_NONE = 0\n\ninstance NodeProperty MultiMesh \"color_array\" PoolColorArray 'False\n         where\n        nodeProperty\n          = (_get_color_array, wrapDroppingSetter _set_color_array, Nothing)\n\ninstance NodeProperty MultiMesh \"color_format\" Int 'False where\n        nodeProperty\n          = (get_color_format, wrapDroppingSetter set_color_format, Nothing)\n\ninstance NodeProperty MultiMesh \"custom_data_array\" PoolColorArray\n           'False\n         where\n        nodeProperty\n          = (_get_custom_data_array,\n             wrapDroppingSetter _set_custom_data_array, Nothing)\n\ninstance NodeProperty MultiMesh \"custom_data_format\" Int 'False\n         where\n        nodeProperty\n          = (get_custom_data_format,\n             wrapDroppingSetter set_custom_data_format, Nothing)\n\ninstance NodeProperty MultiMesh \"instance_count\" Int 'False where\n        nodeProperty\n          = (get_instance_count, wrapDroppingSetter set_instance_count,\n             Nothing)\n\ninstance NodeProperty MultiMesh \"mesh\" Mesh 'False where\n        nodeProperty = (get_mesh, wrapDroppingSetter set_mesh, Nothing)\n\ninstance NodeProperty MultiMesh \"transform_2d_array\"\n           PoolVector2Array\n           'False\n         where\n        nodeProperty\n          = (_get_transform_2d_array,\n             wrapDroppingSetter _set_transform_2d_array, Nothing)\n\ninstance NodeProperty MultiMesh \"transform_array\" PoolVector3Array\n           'False\n         where\n        nodeProperty\n          = (_get_transform_array, wrapDroppingSetter _set_transform_array,\n             Nothing)\n\ninstance NodeProperty MultiMesh \"transform_format\" Int 'False where\n        nodeProperty\n          = (get_transform_format, wrapDroppingSetter set_transform_format,\n             Nothing)\n\ninstance NodeProperty MultiMesh \"visible_instance_count\" Int 'False\n         where\n        nodeProperty\n          = (get_visible_instance_count,\n             wrapDroppingSetter set_visible_instance_count, Nothing)\n\n{-# NOINLINE bindMultiMesh__get_color_array #-}\n\nbindMultiMesh__get_color_array :: MethodBind\nbindMultiMesh__get_color_array\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"_get_color_array\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_color_array ::\n                   (MultiMesh :< cls, Object :< cls) => cls -> IO PoolColorArray\n_get_color_array cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh__get_color_array (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"_get_color_array\" '[]\n           (IO PoolColorArray)\n         where\n        nodeMethod = Godot.Core.MultiMesh._get_color_array\n\n{-# NOINLINE bindMultiMesh__get_custom_data_array #-}\n\nbindMultiMesh__get_custom_data_array :: MethodBind\nbindMultiMesh__get_custom_data_array\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"_get_custom_data_array\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_custom_data_array ::\n                         (MultiMesh :< cls, Object :< cls) => cls -> IO PoolColorArray\n_get_custom_data_array cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh__get_custom_data_array\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"_get_custom_data_array\" '[]\n           (IO PoolColorArray)\n         where\n        nodeMethod = Godot.Core.MultiMesh._get_custom_data_array\n\n{-# NOINLINE bindMultiMesh__get_transform_2d_array #-}\n\nbindMultiMesh__get_transform_2d_array :: MethodBind\nbindMultiMesh__get_transform_2d_array\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"_get_transform_2d_array\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_transform_2d_array ::\n                          (MultiMesh :< cls, Object :< cls) => cls -> IO PoolVector2Array\n_get_transform_2d_array cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh__get_transform_2d_array\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"_get_transform_2d_array\" '[]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.MultiMesh._get_transform_2d_array\n\n{-# NOINLINE bindMultiMesh__get_transform_array #-}\n\nbindMultiMesh__get_transform_array :: MethodBind\nbindMultiMesh__get_transform_array\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"_get_transform_array\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_transform_array ::\n                       (MultiMesh :< cls, Object :< cls) => cls -> IO PoolVector3Array\n_get_transform_array cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh__get_transform_array\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"_get_transform_array\" '[]\n           (IO PoolVector3Array)\n         where\n        nodeMethod = Godot.Core.MultiMesh._get_transform_array\n\n{-# NOINLINE bindMultiMesh__set_color_array #-}\n\nbindMultiMesh__set_color_array :: MethodBind\nbindMultiMesh__set_color_array\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"_set_color_array\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_color_array ::\n                   (MultiMesh :< cls, Object :< cls) => cls -> PoolColorArray -> IO ()\n_set_color_array cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh__set_color_array (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"_set_color_array\" '[PoolColorArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiMesh._set_color_array\n\n{-# NOINLINE bindMultiMesh__set_custom_data_array #-}\n\nbindMultiMesh__set_custom_data_array :: MethodBind\nbindMultiMesh__set_custom_data_array\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"_set_custom_data_array\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_custom_data_array ::\n                         (MultiMesh :< cls, Object :< cls) => cls -> PoolColorArray -> IO ()\n_set_custom_data_array cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh__set_custom_data_array\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"_set_custom_data_array\"\n           '[PoolColorArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiMesh._set_custom_data_array\n\n{-# NOINLINE bindMultiMesh__set_transform_2d_array #-}\n\nbindMultiMesh__set_transform_2d_array :: MethodBind\nbindMultiMesh__set_transform_2d_array\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"_set_transform_2d_array\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_transform_2d_array ::\n                          (MultiMesh :< cls, Object :< cls) =>\n                          cls -> PoolVector2Array -> IO ()\n_set_transform_2d_array cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh__set_transform_2d_array\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"_set_transform_2d_array\"\n           '[PoolVector2Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiMesh._set_transform_2d_array\n\n{-# NOINLINE bindMultiMesh__set_transform_array #-}\n\nbindMultiMesh__set_transform_array :: MethodBind\nbindMultiMesh__set_transform_array\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"_set_transform_array\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_transform_array ::\n                       (MultiMesh :< cls, Object :< cls) =>\n                       cls -> PoolVector3Array -> IO ()\n_set_transform_array cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh__set_transform_array\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"_set_transform_array\"\n           '[PoolVector3Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiMesh._set_transform_array\n\n{-# NOINLINE bindMultiMesh_get_aabb #-}\n\n-- | Returns the visibility axis-aligned bounding box in local space. See also @method VisualInstance.get_transformed_aabb@.\nbindMultiMesh_get_aabb :: MethodBind\nbindMultiMesh_get_aabb\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the visibility axis-aligned bounding box in local space. See also @method VisualInstance.get_transformed_aabb@.\nget_aabb :: (MultiMesh :< cls, Object :< cls) => cls -> IO Aabb\nget_aabb cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_get_aabb (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"get_aabb\" '[] (IO Aabb) where\n        nodeMethod = Godot.Core.MultiMesh.get_aabb\n\n{-# NOINLINE bindMultiMesh_get_color_format #-}\n\n-- | Format of colors in color array that gets passed to shader.\nbindMultiMesh_get_color_format :: MethodBind\nbindMultiMesh_get_color_format\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_color_format\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Format of colors in color array that gets passed to shader.\nget_color_format ::\n                   (MultiMesh :< cls, Object :< cls) => cls -> IO Int\nget_color_format cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_get_color_format (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"get_color_format\" '[] (IO Int) where\n        nodeMethod = Godot.Core.MultiMesh.get_color_format\n\n{-# NOINLINE bindMultiMesh_get_custom_data_format #-}\n\n-- | Format of custom data in custom data array that gets passed to shader.\nbindMultiMesh_get_custom_data_format :: MethodBind\nbindMultiMesh_get_custom_data_format\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_custom_data_format\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Format of custom data in custom data array that gets passed to shader.\nget_custom_data_format ::\n                         (MultiMesh :< cls, Object :< cls) => cls -> IO Int\nget_custom_data_format cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_get_custom_data_format\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"get_custom_data_format\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.MultiMesh.get_custom_data_format\n\n{-# NOINLINE bindMultiMesh_get_instance_color #-}\n\n-- | Gets a specific instance's color.\nbindMultiMesh_get_instance_color :: MethodBind\nbindMultiMesh_get_instance_color\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_instance_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a specific instance's color.\nget_instance_color ::\n                     (MultiMesh :< cls, Object :< cls) => cls -> Int -> IO Color\nget_instance_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_get_instance_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"get_instance_color\" '[Int]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.MultiMesh.get_instance_color\n\n{-# NOINLINE bindMultiMesh_get_instance_count #-}\n\n-- | Number of instances that will get drawn. This clears and (re)sizes the buffers. By default, all instances are drawn but you can limit this with @visible_instance_count@.\nbindMultiMesh_get_instance_count :: MethodBind\nbindMultiMesh_get_instance_count\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_instance_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of instances that will get drawn. This clears and (re)sizes the buffers. By default, all instances are drawn but you can limit this with @visible_instance_count@.\nget_instance_count ::\n                     (MultiMesh :< cls, Object :< cls) => cls -> IO Int\nget_instance_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_get_instance_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"get_instance_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.MultiMesh.get_instance_count\n\n{-# NOINLINE bindMultiMesh_get_instance_custom_data #-}\n\n-- | Returns the custom data that has been set for a specific instance.\nbindMultiMesh_get_instance_custom_data :: MethodBind\nbindMultiMesh_get_instance_custom_data\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_instance_custom_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the custom data that has been set for a specific instance.\nget_instance_custom_data ::\n                           (MultiMesh :< cls, Object :< cls) => cls -> Int -> IO Color\nget_instance_custom_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_get_instance_custom_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"get_instance_custom_data\" '[Int]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.MultiMesh.get_instance_custom_data\n\n{-# NOINLINE bindMultiMesh_get_instance_transform #-}\n\n-- | Returns the @Transform@ of a specific instance.\nbindMultiMesh_get_instance_transform :: MethodBind\nbindMultiMesh_get_instance_transform\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_instance_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Transform@ of a specific instance.\nget_instance_transform ::\n                         (MultiMesh :< cls, Object :< cls) => cls -> Int -> IO Transform\nget_instance_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_get_instance_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"get_instance_transform\" '[Int]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.MultiMesh.get_instance_transform\n\n{-# NOINLINE bindMultiMesh_get_instance_transform_2d #-}\n\n-- | Returns the @Transform2D@ of a specific instance.\nbindMultiMesh_get_instance_transform_2d :: MethodBind\nbindMultiMesh_get_instance_transform_2d\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_instance_transform_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Transform2D@ of a specific instance.\nget_instance_transform_2d ::\n                            (MultiMesh :< cls, Object :< cls) => cls -> Int -> IO Transform2d\nget_instance_transform_2d cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_get_instance_transform_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"get_instance_transform_2d\" '[Int]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.MultiMesh.get_instance_transform_2d\n\n{-# NOINLINE bindMultiMesh_get_mesh #-}\n\n-- | Mesh to be drawn.\nbindMultiMesh_get_mesh :: MethodBind\nbindMultiMesh_get_mesh\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Mesh to be drawn.\nget_mesh :: (MultiMesh :< cls, Object :< cls) => cls -> IO Mesh\nget_mesh cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_get_mesh (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"get_mesh\" '[] (IO Mesh) where\n        nodeMethod = Godot.Core.MultiMesh.get_mesh\n\n{-# NOINLINE bindMultiMesh_get_transform_format #-}\n\n-- | Format of transform used to transform mesh, either 2D or 3D.\nbindMultiMesh_get_transform_format :: MethodBind\nbindMultiMesh_get_transform_format\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_transform_format\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Format of transform used to transform mesh, either 2D or 3D.\nget_transform_format ::\n                       (MultiMesh :< cls, Object :< cls) => cls -> IO Int\nget_transform_format cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_get_transform_format\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"get_transform_format\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.MultiMesh.get_transform_format\n\n{-# NOINLINE bindMultiMesh_get_visible_instance_count #-}\n\n-- | Limits the number of instances drawn, -1 draws all instances. Changing this does not change the sizes of the buffers.\nbindMultiMesh_get_visible_instance_count :: MethodBind\nbindMultiMesh_get_visible_instance_count\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_visible_instance_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Limits the number of instances drawn, -1 draws all instances. Changing this does not change the sizes of the buffers.\nget_visible_instance_count ::\n                             (MultiMesh :< cls, Object :< cls) => cls -> IO Int\nget_visible_instance_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_get_visible_instance_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"get_visible_instance_count\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.MultiMesh.get_visible_instance_count\n\n{-# NOINLINE bindMultiMesh_set_as_bulk_array #-}\n\n-- | Sets all data related to the instances in one go. This is especially useful when loading the data from disk or preparing the data from GDNative.\n--   \t\t\t\tAll data is packed in one large float array. An array may look like this: Transform for instance 1, color data for instance 1, custom data for instance 1, transform for instance 2, color data for instance 2, etc...\n--   \t\t\t\t@Transform@ is stored as 12 floats, @Transform2D@ is stored as 8 floats, @COLOR_8BIT@ / @CUSTOM_DATA_8BIT@ is stored as 1 float (4 bytes as is) and @COLOR_FLOAT@ / @CUSTOM_DATA_FLOAT@ is stored as 4 floats.\nbindMultiMesh_set_as_bulk_array :: MethodBind\nbindMultiMesh_set_as_bulk_array\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_as_bulk_array\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets all data related to the instances in one go. This is especially useful when loading the data from disk or preparing the data from GDNative.\n--   \t\t\t\tAll data is packed in one large float array. An array may look like this: Transform for instance 1, color data for instance 1, custom data for instance 1, transform for instance 2, color data for instance 2, etc...\n--   \t\t\t\t@Transform@ is stored as 12 floats, @Transform2D@ is stored as 8 floats, @COLOR_8BIT@ / @CUSTOM_DATA_8BIT@ is stored as 1 float (4 bytes as is) and @COLOR_FLOAT@ / @CUSTOM_DATA_FLOAT@ is stored as 4 floats.\nset_as_bulk_array ::\n                    (MultiMesh :< cls, Object :< cls) => cls -> PoolRealArray -> IO ()\nset_as_bulk_array cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_set_as_bulk_array (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"set_as_bulk_array\" '[PoolRealArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiMesh.set_as_bulk_array\n\n{-# NOINLINE bindMultiMesh_set_color_format #-}\n\n-- | Format of colors in color array that gets passed to shader.\nbindMultiMesh_set_color_format :: MethodBind\nbindMultiMesh_set_color_format\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_color_format\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Format of colors in color array that gets passed to shader.\nset_color_format ::\n                   (MultiMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_color_format cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_set_color_format (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"set_color_format\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.MultiMesh.set_color_format\n\n{-# NOINLINE bindMultiMesh_set_custom_data_format #-}\n\n-- | Format of custom data in custom data array that gets passed to shader.\nbindMultiMesh_set_custom_data_format :: MethodBind\nbindMultiMesh_set_custom_data_format\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_custom_data_format\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Format of custom data in custom data array that gets passed to shader.\nset_custom_data_format ::\n                         (MultiMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_custom_data_format cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_set_custom_data_format\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"set_custom_data_format\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiMesh.set_custom_data_format\n\n{-# NOINLINE bindMultiMesh_set_instance_color #-}\n\n-- | Sets the color of a specific instance.\n--   \t\t\t\tFor the color to take effect, ensure that @color_format@ is non-@null@ on the @MultiMesh@ and @SpatialMaterial.vertex_color_use_as_albedo@ is @true@ on the material.\nbindMultiMesh_set_instance_color :: MethodBind\nbindMultiMesh_set_instance_color\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_instance_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the color of a specific instance.\n--   \t\t\t\tFor the color to take effect, ensure that @color_format@ is non-@null@ on the @MultiMesh@ and @SpatialMaterial.vertex_color_use_as_albedo@ is @true@ on the material.\nset_instance_color ::\n                     (MultiMesh :< cls, Object :< cls) => cls -> Int -> Color -> IO ()\nset_instance_color cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_set_instance_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"set_instance_color\" '[Int, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiMesh.set_instance_color\n\n{-# NOINLINE bindMultiMesh_set_instance_count #-}\n\n-- | Number of instances that will get drawn. This clears and (re)sizes the buffers. By default, all instances are drawn but you can limit this with @visible_instance_count@.\nbindMultiMesh_set_instance_count :: MethodBind\nbindMultiMesh_set_instance_count\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_instance_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of instances that will get drawn. This clears and (re)sizes the buffers. By default, all instances are drawn but you can limit this with @visible_instance_count@.\nset_instance_count ::\n                     (MultiMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_instance_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_set_instance_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"set_instance_count\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.MultiMesh.set_instance_count\n\n{-# NOINLINE bindMultiMesh_set_instance_custom_data #-}\n\n-- | Sets custom data for a specific instance. Although @Color@ is used, it is just a container for 4 floating point numbers. The format of the number can change depending on the @enum CustomDataFormat@ used.\nbindMultiMesh_set_instance_custom_data :: MethodBind\nbindMultiMesh_set_instance_custom_data\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_instance_custom_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets custom data for a specific instance. Although @Color@ is used, it is just a container for 4 floating point numbers. The format of the number can change depending on the @enum CustomDataFormat@ used.\nset_instance_custom_data ::\n                           (MultiMesh :< cls, Object :< cls) => cls -> Int -> Color -> IO ()\nset_instance_custom_data cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_set_instance_custom_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"set_instance_custom_data\"\n           '[Int, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiMesh.set_instance_custom_data\n\n{-# NOINLINE bindMultiMesh_set_instance_transform #-}\n\n-- | Sets the @Transform@ for a specific instance.\nbindMultiMesh_set_instance_transform :: MethodBind\nbindMultiMesh_set_instance_transform\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_instance_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Transform@ for a specific instance.\nset_instance_transform ::\n                         (MultiMesh :< cls, Object :< cls) =>\n                         cls -> Int -> Transform -> IO ()\nset_instance_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_set_instance_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"set_instance_transform\"\n           '[Int, Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiMesh.set_instance_transform\n\n{-# NOINLINE bindMultiMesh_set_instance_transform_2d #-}\n\n-- | Sets the @Transform2D@ for a specific instance.\nbindMultiMesh_set_instance_transform_2d :: MethodBind\nbindMultiMesh_set_instance_transform_2d\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_instance_transform_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Transform2D@ for a specific instance.\nset_instance_transform_2d ::\n                            (MultiMesh :< cls, Object :< cls) =>\n                            cls -> Int -> Transform2d -> IO ()\nset_instance_transform_2d cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_set_instance_transform_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"set_instance_transform_2d\"\n           '[Int, Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiMesh.set_instance_transform_2d\n\n{-# NOINLINE bindMultiMesh_set_mesh #-}\n\n-- | Mesh to be drawn.\nbindMultiMesh_set_mesh :: MethodBind\nbindMultiMesh_set_mesh\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Mesh to be drawn.\nset_mesh ::\n           (MultiMesh :< cls, Object :< cls) => cls -> Mesh -> IO ()\nset_mesh cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_set_mesh (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"set_mesh\" '[Mesh] (IO ()) where\n        nodeMethod = Godot.Core.MultiMesh.set_mesh\n\n{-# NOINLINE bindMultiMesh_set_transform_format #-}\n\n-- | Format of transform used to transform mesh, either 2D or 3D.\nbindMultiMesh_set_transform_format :: MethodBind\nbindMultiMesh_set_transform_format\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_transform_format\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Format of transform used to transform mesh, either 2D or 3D.\nset_transform_format ::\n                       (MultiMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_transform_format cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_set_transform_format\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"set_transform_format\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.MultiMesh.set_transform_format\n\n{-# NOINLINE bindMultiMesh_set_visible_instance_count #-}\n\n-- | Limits the number of instances drawn, -1 draws all instances. Changing this does not change the sizes of the buffers.\nbindMultiMesh_set_visible_instance_count :: MethodBind\nbindMultiMesh_set_visible_instance_count\n  = unsafePerformIO $\n      withCString \"MultiMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_visible_instance_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Limits the number of instances drawn, -1 draws all instances. Changing this does not change the sizes of the buffers.\nset_visible_instance_count ::\n                             (MultiMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_visible_instance_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMesh_set_visible_instance_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMesh \"set_visible_instance_count\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiMesh.set_visible_instance_count"
  },
  {
    "path": "src/Godot/Core/MultiMeshInstance.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.MultiMeshInstance\n       (Godot.Core.MultiMeshInstance.get_multimesh,\n        Godot.Core.MultiMeshInstance.set_multimesh)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.GeometryInstance()\n\ninstance NodeProperty MultiMeshInstance \"multimesh\" MultiMesh\n           'False\n         where\n        nodeProperty\n          = (get_multimesh, wrapDroppingSetter set_multimesh, Nothing)\n\n{-# NOINLINE bindMultiMeshInstance_get_multimesh #-}\n\n-- | The @MultiMesh@ resource that will be used and shared among all instances of the @MultiMeshInstance@.\nbindMultiMeshInstance_get_multimesh :: MethodBind\nbindMultiMeshInstance_get_multimesh\n  = unsafePerformIO $\n      withCString \"MultiMeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_multimesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @MultiMesh@ resource that will be used and shared among all instances of the @MultiMeshInstance@.\nget_multimesh ::\n                (MultiMeshInstance :< cls, Object :< cls) => cls -> IO MultiMesh\nget_multimesh cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMeshInstance_get_multimesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMeshInstance \"get_multimesh\" '[]\n           (IO MultiMesh)\n         where\n        nodeMethod = Godot.Core.MultiMeshInstance.get_multimesh\n\n{-# NOINLINE bindMultiMeshInstance_set_multimesh #-}\n\n-- | The @MultiMesh@ resource that will be used and shared among all instances of the @MultiMeshInstance@.\nbindMultiMeshInstance_set_multimesh :: MethodBind\nbindMultiMeshInstance_set_multimesh\n  = unsafePerformIO $\n      withCString \"MultiMeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_multimesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @MultiMesh@ resource that will be used and shared among all instances of the @MultiMeshInstance@.\nset_multimesh ::\n                (MultiMeshInstance :< cls, Object :< cls) =>\n                cls -> MultiMesh -> IO ()\nset_multimesh cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMeshInstance_set_multimesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMeshInstance \"set_multimesh\" '[MultiMesh]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiMeshInstance.set_multimesh"
  },
  {
    "path": "src/Godot/Core/MultiMeshInstance2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.MultiMeshInstance2D\n       (Godot.Core.MultiMeshInstance2D.sig_texture_changed,\n        Godot.Core.MultiMeshInstance2D.get_multimesh,\n        Godot.Core.MultiMeshInstance2D.get_normal_map,\n        Godot.Core.MultiMeshInstance2D.get_texture,\n        Godot.Core.MultiMeshInstance2D.set_multimesh,\n        Godot.Core.MultiMeshInstance2D.set_normal_map,\n        Godot.Core.MultiMeshInstance2D.set_texture)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\n-- | Emitted when the @texture@ is changed.\nsig_texture_changed ::\n                    Godot.Internal.Dispatch.Signal MultiMeshInstance2D\nsig_texture_changed\n  = Godot.Internal.Dispatch.Signal \"texture_changed\"\n\ninstance NodeSignal MultiMeshInstance2D \"texture_changed\" '[]\n\ninstance NodeProperty MultiMeshInstance2D \"multimesh\" MultiMesh\n           'False\n         where\n        nodeProperty\n          = (get_multimesh, wrapDroppingSetter set_multimesh, Nothing)\n\ninstance NodeProperty MultiMeshInstance2D \"normal_map\" Texture\n           'False\n         where\n        nodeProperty\n          = (get_normal_map, wrapDroppingSetter set_normal_map, Nothing)\n\ninstance NodeProperty MultiMeshInstance2D \"texture\" Texture 'False\n         where\n        nodeProperty\n          = (get_texture, wrapDroppingSetter set_texture, Nothing)\n\n{-# NOINLINE bindMultiMeshInstance2D_get_multimesh #-}\n\n-- | The @MultiMesh@ that will be drawn by the @MultiMeshInstance2D@.\nbindMultiMeshInstance2D_get_multimesh :: MethodBind\nbindMultiMeshInstance2D_get_multimesh\n  = unsafePerformIO $\n      withCString \"MultiMeshInstance2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_multimesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @MultiMesh@ that will be drawn by the @MultiMeshInstance2D@.\nget_multimesh ::\n                (MultiMeshInstance2D :< cls, Object :< cls) => cls -> IO MultiMesh\nget_multimesh cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMeshInstance2D_get_multimesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMeshInstance2D \"get_multimesh\" '[]\n           (IO MultiMesh)\n         where\n        nodeMethod = Godot.Core.MultiMeshInstance2D.get_multimesh\n\n{-# NOINLINE bindMultiMeshInstance2D_get_normal_map #-}\n\n-- | The normal map that will be used if using the default @CanvasItemMaterial@.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nbindMultiMeshInstance2D_get_normal_map :: MethodBind\nbindMultiMeshInstance2D_get_normal_map\n  = unsafePerformIO $\n      withCString \"MultiMeshInstance2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_normal_map\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The normal map that will be used if using the default @CanvasItemMaterial@.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nget_normal_map ::\n                 (MultiMeshInstance2D :< cls, Object :< cls) => cls -> IO Texture\nget_normal_map cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMeshInstance2D_get_normal_map\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMeshInstance2D \"get_normal_map\" '[]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.MultiMeshInstance2D.get_normal_map\n\n{-# NOINLINE bindMultiMeshInstance2D_get_texture #-}\n\n-- | The @Texture@ that will be used if using the default @CanvasItemMaterial@. Can be accessed as @TEXTURE@ in CanvasItem shader.\nbindMultiMeshInstance2D_get_texture :: MethodBind\nbindMultiMeshInstance2D_get_texture\n  = unsafePerformIO $\n      withCString \"MultiMeshInstance2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Texture@ that will be used if using the default @CanvasItemMaterial@. Can be accessed as @TEXTURE@ in CanvasItem shader.\nget_texture ::\n              (MultiMeshInstance2D :< cls, Object :< cls) => cls -> IO Texture\nget_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMeshInstance2D_get_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMeshInstance2D \"get_texture\" '[]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.MultiMeshInstance2D.get_texture\n\n{-# NOINLINE bindMultiMeshInstance2D_set_multimesh #-}\n\n-- | The @MultiMesh@ that will be drawn by the @MultiMeshInstance2D@.\nbindMultiMeshInstance2D_set_multimesh :: MethodBind\nbindMultiMeshInstance2D_set_multimesh\n  = unsafePerformIO $\n      withCString \"MultiMeshInstance2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_multimesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @MultiMesh@ that will be drawn by the @MultiMeshInstance2D@.\nset_multimesh ::\n                (MultiMeshInstance2D :< cls, Object :< cls) =>\n                cls -> MultiMesh -> IO ()\nset_multimesh cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMeshInstance2D_set_multimesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMeshInstance2D \"set_multimesh\"\n           '[MultiMesh]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiMeshInstance2D.set_multimesh\n\n{-# NOINLINE bindMultiMeshInstance2D_set_normal_map #-}\n\n-- | The normal map that will be used if using the default @CanvasItemMaterial@.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nbindMultiMeshInstance2D_set_normal_map :: MethodBind\nbindMultiMeshInstance2D_set_normal_map\n  = unsafePerformIO $\n      withCString \"MultiMeshInstance2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_normal_map\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The normal map that will be used if using the default @CanvasItemMaterial@.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nset_normal_map ::\n                 (MultiMeshInstance2D :< cls, Object :< cls) =>\n                 cls -> Texture -> IO ()\nset_normal_map cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMeshInstance2D_set_normal_map\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMeshInstance2D \"set_normal_map\" '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiMeshInstance2D.set_normal_map\n\n{-# NOINLINE bindMultiMeshInstance2D_set_texture #-}\n\n-- | The @Texture@ that will be used if using the default @CanvasItemMaterial@. Can be accessed as @TEXTURE@ in CanvasItem shader.\nbindMultiMeshInstance2D_set_texture :: MethodBind\nbindMultiMeshInstance2D_set_texture\n  = unsafePerformIO $\n      withCString \"MultiMeshInstance2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Texture@ that will be used if using the default @CanvasItemMaterial@. Can be accessed as @TEXTURE@ in CanvasItem shader.\nset_texture ::\n              (MultiMeshInstance2D :< cls, Object :< cls) =>\n              cls -> Texture -> IO ()\nset_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiMeshInstance2D_set_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiMeshInstance2D \"set_texture\" '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiMeshInstance2D.set_texture"
  },
  {
    "path": "src/Godot/Core/MultiplayerAPI.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.MultiplayerAPI\n       (Godot.Core.MultiplayerAPI._RPC_MODE_SLAVE,\n        Godot.Core.MultiplayerAPI._RPC_MODE_DISABLED,\n        Godot.Core.MultiplayerAPI._RPC_MODE_MASTER,\n        Godot.Core.MultiplayerAPI._RPC_MODE_MASTERSYNC,\n        Godot.Core.MultiplayerAPI._RPC_MODE_SYNC,\n        Godot.Core.MultiplayerAPI._RPC_MODE_REMOTE,\n        Godot.Core.MultiplayerAPI._RPC_MODE_PUPPET,\n        Godot.Core.MultiplayerAPI._RPC_MODE_PUPPETSYNC,\n        Godot.Core.MultiplayerAPI._RPC_MODE_REMOTESYNC,\n        Godot.Core.MultiplayerAPI.sig_connected_to_server,\n        Godot.Core.MultiplayerAPI.sig_connection_failed,\n        Godot.Core.MultiplayerAPI.sig_network_peer_connected,\n        Godot.Core.MultiplayerAPI.sig_network_peer_disconnected,\n        Godot.Core.MultiplayerAPI.sig_network_peer_packet,\n        Godot.Core.MultiplayerAPI.sig_server_disconnected,\n        Godot.Core.MultiplayerAPI._add_peer,\n        Godot.Core.MultiplayerAPI._connected_to_server,\n        Godot.Core.MultiplayerAPI._connection_failed,\n        Godot.Core.MultiplayerAPI._del_peer,\n        Godot.Core.MultiplayerAPI._server_disconnected,\n        Godot.Core.MultiplayerAPI.clear,\n        Godot.Core.MultiplayerAPI.get_network_connected_peers,\n        Godot.Core.MultiplayerAPI.get_network_peer,\n        Godot.Core.MultiplayerAPI.get_network_unique_id,\n        Godot.Core.MultiplayerAPI.get_rpc_sender_id,\n        Godot.Core.MultiplayerAPI.has_network_peer,\n        Godot.Core.MultiplayerAPI.is_network_server,\n        Godot.Core.MultiplayerAPI.is_object_decoding_allowed,\n        Godot.Core.MultiplayerAPI.is_refusing_new_network_connections,\n        Godot.Core.MultiplayerAPI.poll,\n        Godot.Core.MultiplayerAPI.send_bytes,\n        Godot.Core.MultiplayerAPI.set_allow_object_decoding,\n        Godot.Core.MultiplayerAPI.set_network_peer,\n        Godot.Core.MultiplayerAPI.set_refuse_new_network_connections,\n        Godot.Core.MultiplayerAPI.set_root_node)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n_RPC_MODE_SLAVE :: Int\n_RPC_MODE_SLAVE = 3\n\n_RPC_MODE_DISABLED :: Int\n_RPC_MODE_DISABLED = 0\n\n_RPC_MODE_MASTER :: Int\n_RPC_MODE_MASTER = 2\n\n_RPC_MODE_MASTERSYNC :: Int\n_RPC_MODE_MASTERSYNC = 5\n\n_RPC_MODE_SYNC :: Int\n_RPC_MODE_SYNC = 4\n\n_RPC_MODE_REMOTE :: Int\n_RPC_MODE_REMOTE = 1\n\n_RPC_MODE_PUPPET :: Int\n_RPC_MODE_PUPPET = 3\n\n_RPC_MODE_PUPPETSYNC :: Int\n_RPC_MODE_PUPPETSYNC = 6\n\n_RPC_MODE_REMOTESYNC :: Int\n_RPC_MODE_REMOTESYNC = 4\n\n-- | Emitted when this MultiplayerAPI's @network_peer@ successfully connected to a server. Only emitted on clients.\nsig_connected_to_server ::\n                        Godot.Internal.Dispatch.Signal MultiplayerAPI\nsig_connected_to_server\n  = Godot.Internal.Dispatch.Signal \"connected_to_server\"\n\ninstance NodeSignal MultiplayerAPI \"connected_to_server\" '[]\n\n-- | Emitted when this MultiplayerAPI's @network_peer@ fails to establish a connection to a server. Only emitted on clients.\nsig_connection_failed ::\n                      Godot.Internal.Dispatch.Signal MultiplayerAPI\nsig_connection_failed\n  = Godot.Internal.Dispatch.Signal \"connection_failed\"\n\ninstance NodeSignal MultiplayerAPI \"connection_failed\" '[]\n\n-- | Emitted when this MultiplayerAPI's @network_peer@ connects with a new peer. ID is the peer ID of the new peer. Clients get notified when other clients connect to the same server. Upon connecting to a server, a client also receives this signal for the server (with ID being 1).\nsig_network_peer_connected ::\n                           Godot.Internal.Dispatch.Signal MultiplayerAPI\nsig_network_peer_connected\n  = Godot.Internal.Dispatch.Signal \"network_peer_connected\"\n\ninstance NodeSignal MultiplayerAPI \"network_peer_connected\" '[Int]\n\n-- | Emitted when this MultiplayerAPI's @network_peer@ disconnects from a peer. Clients get notified when other clients disconnect from the same server.\nsig_network_peer_disconnected ::\n                              Godot.Internal.Dispatch.Signal MultiplayerAPI\nsig_network_peer_disconnected\n  = Godot.Internal.Dispatch.Signal \"network_peer_disconnected\"\n\ninstance NodeSignal MultiplayerAPI \"network_peer_disconnected\"\n           '[Int]\n\n-- | Emitted when this MultiplayerAPI's @network_peer@ receive a @packet@ with custom data (see @method send_bytes@). ID is the peer ID of the peer that sent the packet.\nsig_network_peer_packet ::\n                        Godot.Internal.Dispatch.Signal MultiplayerAPI\nsig_network_peer_packet\n  = Godot.Internal.Dispatch.Signal \"network_peer_packet\"\n\ninstance NodeSignal MultiplayerAPI \"network_peer_packet\"\n           '[Int, PoolByteArray]\n\n-- | Emitted when this MultiplayerAPI's @network_peer@ disconnects from server. Only emitted on clients.\nsig_server_disconnected ::\n                        Godot.Internal.Dispatch.Signal MultiplayerAPI\nsig_server_disconnected\n  = Godot.Internal.Dispatch.Signal \"server_disconnected\"\n\ninstance NodeSignal MultiplayerAPI \"server_disconnected\" '[]\n\ninstance NodeProperty MultiplayerAPI \"allow_object_decoding\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_object_decoding_allowed,\n             wrapDroppingSetter set_allow_object_decoding, Nothing)\n\ninstance NodeProperty MultiplayerAPI \"network_peer\"\n           NetworkedMultiplayerPeer\n           'False\n         where\n        nodeProperty\n          = (get_network_peer, wrapDroppingSetter set_network_peer, Nothing)\n\ninstance NodeProperty MultiplayerAPI\n           \"refuse_new_network_connections\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (is_refusing_new_network_connections,\n             wrapDroppingSetter set_refuse_new_network_connections, Nothing)\n\n{-# NOINLINE bindMultiplayerAPI__add_peer #-}\n\nbindMultiplayerAPI__add_peer :: MethodBind\nbindMultiplayerAPI__add_peer\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"_add_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_add_peer ::\n            (MultiplayerAPI :< cls, Object :< cls) => cls -> Int -> IO ()\n_add_peer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiplayerAPI__add_peer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI \"_add_peer\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.MultiplayerAPI._add_peer\n\n{-# NOINLINE bindMultiplayerAPI__connected_to_server #-}\n\nbindMultiplayerAPI__connected_to_server :: MethodBind\nbindMultiplayerAPI__connected_to_server\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"_connected_to_server\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_connected_to_server ::\n                       (MultiplayerAPI :< cls, Object :< cls) => cls -> IO ()\n_connected_to_server cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiplayerAPI__connected_to_server\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI \"_connected_to_server\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiplayerAPI._connected_to_server\n\n{-# NOINLINE bindMultiplayerAPI__connection_failed #-}\n\nbindMultiplayerAPI__connection_failed :: MethodBind\nbindMultiplayerAPI__connection_failed\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"_connection_failed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_connection_failed ::\n                     (MultiplayerAPI :< cls, Object :< cls) => cls -> IO ()\n_connection_failed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiplayerAPI__connection_failed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI \"_connection_failed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.MultiplayerAPI._connection_failed\n\n{-# NOINLINE bindMultiplayerAPI__del_peer #-}\n\nbindMultiplayerAPI__del_peer :: MethodBind\nbindMultiplayerAPI__del_peer\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"_del_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_del_peer ::\n            (MultiplayerAPI :< cls, Object :< cls) => cls -> Int -> IO ()\n_del_peer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiplayerAPI__del_peer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI \"_del_peer\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.MultiplayerAPI._del_peer\n\n{-# NOINLINE bindMultiplayerAPI__server_disconnected #-}\n\nbindMultiplayerAPI__server_disconnected :: MethodBind\nbindMultiplayerAPI__server_disconnected\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"_server_disconnected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_server_disconnected ::\n                       (MultiplayerAPI :< cls, Object :< cls) => cls -> IO ()\n_server_disconnected cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiplayerAPI__server_disconnected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI \"_server_disconnected\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiplayerAPI._server_disconnected\n\n{-# NOINLINE bindMultiplayerAPI_clear #-}\n\n-- | Clears the current MultiplayerAPI network state (you shouldn't call this unless you know what you are doing).\nbindMultiplayerAPI_clear :: MethodBind\nbindMultiplayerAPI_clear\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears the current MultiplayerAPI network state (you shouldn't call this unless you know what you are doing).\nclear :: (MultiplayerAPI :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiplayerAPI_clear (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.MultiplayerAPI.clear\n\n{-# NOINLINE bindMultiplayerAPI_get_network_connected_peers #-}\n\n-- | Returns the peer IDs of all connected peers of this MultiplayerAPI's @network_peer@.\nbindMultiplayerAPI_get_network_connected_peers :: MethodBind\nbindMultiplayerAPI_get_network_connected_peers\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"get_network_connected_peers\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the peer IDs of all connected peers of this MultiplayerAPI's @network_peer@.\nget_network_connected_peers ::\n                              (MultiplayerAPI :< cls, Object :< cls) => cls -> IO PoolIntArray\nget_network_connected_peers cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindMultiplayerAPI_get_network_connected_peers\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI \"get_network_connected_peers\"\n           '[]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.MultiplayerAPI.get_network_connected_peers\n\n{-# NOINLINE bindMultiplayerAPI_get_network_peer #-}\n\n-- | The peer object to handle the RPC system (effectively enabling networking when set). Depending on the peer itself, the MultiplayerAPI will become a network server (check with @method is_network_server@) and will set root node's network mode to master, or it will become a regular peer with root node set to puppet. All child nodes are set to inherit the network mode by default. Handling of networking-related events (connection, disconnection, new clients) is done by connecting to MultiplayerAPI's signals.\nbindMultiplayerAPI_get_network_peer :: MethodBind\nbindMultiplayerAPI_get_network_peer\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"get_network_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The peer object to handle the RPC system (effectively enabling networking when set). Depending on the peer itself, the MultiplayerAPI will become a network server (check with @method is_network_server@) and will set root node's network mode to master, or it will become a regular peer with root node set to puppet. All child nodes are set to inherit the network mode by default. Handling of networking-related events (connection, disconnection, new clients) is done by connecting to MultiplayerAPI's signals.\nget_network_peer ::\n                   (MultiplayerAPI :< cls, Object :< cls) =>\n                   cls -> IO NetworkedMultiplayerPeer\nget_network_peer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiplayerAPI_get_network_peer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI \"get_network_peer\" '[]\n           (IO NetworkedMultiplayerPeer)\n         where\n        nodeMethod = Godot.Core.MultiplayerAPI.get_network_peer\n\n{-# NOINLINE bindMultiplayerAPI_get_network_unique_id #-}\n\n-- | Returns the unique peer ID of this MultiplayerAPI's @network_peer@.\nbindMultiplayerAPI_get_network_unique_id :: MethodBind\nbindMultiplayerAPI_get_network_unique_id\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"get_network_unique_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the unique peer ID of this MultiplayerAPI's @network_peer@.\nget_network_unique_id ::\n                        (MultiplayerAPI :< cls, Object :< cls) => cls -> IO Int\nget_network_unique_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiplayerAPI_get_network_unique_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI \"get_network_unique_id\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.MultiplayerAPI.get_network_unique_id\n\n{-# NOINLINE bindMultiplayerAPI_get_rpc_sender_id #-}\n\n-- | Returns the sender's peer ID for the RPC currently being executed.\n--   \t\t\t\t__Note:__ If not inside an RPC this method will return 0.\nbindMultiplayerAPI_get_rpc_sender_id :: MethodBind\nbindMultiplayerAPI_get_rpc_sender_id\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"get_rpc_sender_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the sender's peer ID for the RPC currently being executed.\n--   \t\t\t\t__Note:__ If not inside an RPC this method will return 0.\nget_rpc_sender_id ::\n                    (MultiplayerAPI :< cls, Object :< cls) => cls -> IO Int\nget_rpc_sender_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiplayerAPI_get_rpc_sender_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI \"get_rpc_sender_id\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.MultiplayerAPI.get_rpc_sender_id\n\n{-# NOINLINE bindMultiplayerAPI_has_network_peer #-}\n\n-- | Returns @true@ if there is a @network_peer@ set.\nbindMultiplayerAPI_has_network_peer :: MethodBind\nbindMultiplayerAPI_has_network_peer\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"has_network_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if there is a @network_peer@ set.\nhas_network_peer ::\n                   (MultiplayerAPI :< cls, Object :< cls) => cls -> IO Bool\nhas_network_peer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiplayerAPI_has_network_peer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI \"has_network_peer\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.MultiplayerAPI.has_network_peer\n\n{-# NOINLINE bindMultiplayerAPI_is_network_server #-}\n\n-- | Returns @true@ if this MultiplayerAPI's @network_peer@ is in server mode (listening for connections).\nbindMultiplayerAPI_is_network_server :: MethodBind\nbindMultiplayerAPI_is_network_server\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"is_network_server\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this MultiplayerAPI's @network_peer@ is in server mode (listening for connections).\nis_network_server ::\n                    (MultiplayerAPI :< cls, Object :< cls) => cls -> IO Bool\nis_network_server cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiplayerAPI_is_network_server\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI \"is_network_server\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.MultiplayerAPI.is_network_server\n\n{-# NOINLINE bindMultiplayerAPI_is_object_decoding_allowed #-}\n\n-- | If @true@ (or if the @network_peer@ has @PacketPeer.allow_object_decoding@ set to @true@), the MultiplayerAPI will allow encoding and decoding of object during RPCs/RSETs.\n--   \t\t\t__Warning:__ Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.\nbindMultiplayerAPI_is_object_decoding_allowed :: MethodBind\nbindMultiplayerAPI_is_object_decoding_allowed\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"is_object_decoding_allowed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@ (or if the @network_peer@ has @PacketPeer.allow_object_decoding@ set to @true@), the MultiplayerAPI will allow encoding and decoding of object during RPCs/RSETs.\n--   \t\t\t__Warning:__ Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.\nis_object_decoding_allowed ::\n                             (MultiplayerAPI :< cls, Object :< cls) => cls -> IO Bool\nis_object_decoding_allowed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindMultiplayerAPI_is_object_decoding_allowed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI \"is_object_decoding_allowed\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.MultiplayerAPI.is_object_decoding_allowed\n\n{-# NOINLINE bindMultiplayerAPI_is_refusing_new_network_connections\n             #-}\n\n-- | If @true@, the MultiplayerAPI's @network_peer@ refuses new incoming connections.\nbindMultiplayerAPI_is_refusing_new_network_connections ::\n                                                       MethodBind\nbindMultiplayerAPI_is_refusing_new_network_connections\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"is_refusing_new_network_connections\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the MultiplayerAPI's @network_peer@ refuses new incoming connections.\nis_refusing_new_network_connections ::\n                                      (MultiplayerAPI :< cls, Object :< cls) => cls -> IO Bool\nis_refusing_new_network_connections cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindMultiplayerAPI_is_refusing_new_network_connections\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI\n           \"is_refusing_new_network_connections\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.MultiplayerAPI.is_refusing_new_network_connections\n\n{-# NOINLINE bindMultiplayerAPI_poll #-}\n\n-- | Method used for polling the MultiplayerAPI. You only need to worry about this if you are using @Node.custom_multiplayer@ override or you set @SceneTree.multiplayer_poll@ to @false@. By default, @SceneTree@ will poll its MultiplayerAPI for you.\n--   \t\t\t\t__Note:__ This method results in RPCs and RSETs being called, so they will be executed in the same context of this function (e.g. @_process@, @physics@, @Thread@).\nbindMultiplayerAPI_poll :: MethodBind\nbindMultiplayerAPI_poll\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"poll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Method used for polling the MultiplayerAPI. You only need to worry about this if you are using @Node.custom_multiplayer@ override or you set @SceneTree.multiplayer_poll@ to @false@. By default, @SceneTree@ will poll its MultiplayerAPI for you.\n--   \t\t\t\t__Note:__ This method results in RPCs and RSETs being called, so they will be executed in the same context of this function (e.g. @_process@, @physics@, @Thread@).\npoll :: (MultiplayerAPI :< cls, Object :< cls) => cls -> IO ()\npoll cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiplayerAPI_poll (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI \"poll\" '[] (IO ()) where\n        nodeMethod = Godot.Core.MultiplayerAPI.poll\n\n{-# NOINLINE bindMultiplayerAPI_send_bytes #-}\n\n-- | Sends the given raw @bytes@ to a specific peer identified by @id@ (see @method NetworkedMultiplayerPeer.set_target_peer@). Default ID is @0@, i.e. broadcast to all peers.\nbindMultiplayerAPI_send_bytes :: MethodBind\nbindMultiplayerAPI_send_bytes\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"send_bytes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sends the given raw @bytes@ to a specific peer identified by @id@ (see @method NetworkedMultiplayerPeer.set_target_peer@). Default ID is @0@, i.e. broadcast to all peers.\nsend_bytes ::\n             (MultiplayerAPI :< cls, Object :< cls) =>\n             cls -> PoolByteArray -> Maybe Int -> Maybe Int -> IO Int\nsend_bytes cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (0)) toVariant arg2,\n       maybe (VariantInt (2)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiplayerAPI_send_bytes (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI \"send_bytes\"\n           '[PoolByteArray, Maybe Int, Maybe Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.MultiplayerAPI.send_bytes\n\n{-# NOINLINE bindMultiplayerAPI_set_allow_object_decoding #-}\n\n-- | If @true@ (or if the @network_peer@ has @PacketPeer.allow_object_decoding@ set to @true@), the MultiplayerAPI will allow encoding and decoding of object during RPCs/RSETs.\n--   \t\t\t__Warning:__ Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.\nbindMultiplayerAPI_set_allow_object_decoding :: MethodBind\nbindMultiplayerAPI_set_allow_object_decoding\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"set_allow_object_decoding\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@ (or if the @network_peer@ has @PacketPeer.allow_object_decoding@ set to @true@), the MultiplayerAPI will allow encoding and decoding of object during RPCs/RSETs.\n--   \t\t\t__Warning:__ Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.\nset_allow_object_decoding ::\n                            (MultiplayerAPI :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_allow_object_decoding cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiplayerAPI_set_allow_object_decoding\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI \"set_allow_object_decoding\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiplayerAPI.set_allow_object_decoding\n\n{-# NOINLINE bindMultiplayerAPI_set_network_peer #-}\n\n-- | The peer object to handle the RPC system (effectively enabling networking when set). Depending on the peer itself, the MultiplayerAPI will become a network server (check with @method is_network_server@) and will set root node's network mode to master, or it will become a regular peer with root node set to puppet. All child nodes are set to inherit the network mode by default. Handling of networking-related events (connection, disconnection, new clients) is done by connecting to MultiplayerAPI's signals.\nbindMultiplayerAPI_set_network_peer :: MethodBind\nbindMultiplayerAPI_set_network_peer\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"set_network_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The peer object to handle the RPC system (effectively enabling networking when set). Depending on the peer itself, the MultiplayerAPI will become a network server (check with @method is_network_server@) and will set root node's network mode to master, or it will become a regular peer with root node set to puppet. All child nodes are set to inherit the network mode by default. Handling of networking-related events (connection, disconnection, new clients) is done by connecting to MultiplayerAPI's signals.\nset_network_peer ::\n                   (MultiplayerAPI :< cls, Object :< cls) =>\n                   cls -> NetworkedMultiplayerPeer -> IO ()\nset_network_peer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiplayerAPI_set_network_peer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI \"set_network_peer\"\n           '[NetworkedMultiplayerPeer]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.MultiplayerAPI.set_network_peer\n\n{-# NOINLINE bindMultiplayerAPI_set_refuse_new_network_connections\n             #-}\n\n-- | If @true@, the MultiplayerAPI's @network_peer@ refuses new incoming connections.\nbindMultiplayerAPI_set_refuse_new_network_connections :: MethodBind\nbindMultiplayerAPI_set_refuse_new_network_connections\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"set_refuse_new_network_connections\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the MultiplayerAPI's @network_peer@ refuses new incoming connections.\nset_refuse_new_network_connections ::\n                                     (MultiplayerAPI :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_refuse_new_network_connections cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindMultiplayerAPI_set_refuse_new_network_connections\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI\n           \"set_refuse_new_network_connections\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.MultiplayerAPI.set_refuse_new_network_connections\n\n{-# NOINLINE bindMultiplayerAPI_set_root_node #-}\n\n-- | Sets the base root node to use for RPCs. Instead of an absolute path, a relative path will be used to find the node upon which the RPC should be executed.\n--   \t\t\t\tThis effectively allows to have different branches of the scene tree to be managed by different MultiplayerAPI, allowing for example to run both client and server in the same scene.\nbindMultiplayerAPI_set_root_node :: MethodBind\nbindMultiplayerAPI_set_root_node\n  = unsafePerformIO $\n      withCString \"MultiplayerAPI\" $\n        \\ clsNamePtr ->\n          withCString \"set_root_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the base root node to use for RPCs. Instead of an absolute path, a relative path will be used to find the node upon which the RPC should be executed.\n--   \t\t\t\tThis effectively allows to have different branches of the scene tree to be managed by different MultiplayerAPI, allowing for example to run both client and server in the same scene.\nset_root_node ::\n                (MultiplayerAPI :< cls, Object :< cls) => cls -> Node -> IO ()\nset_root_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMultiplayerAPI_set_root_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod MultiplayerAPI \"set_root_node\" '[Node] (IO ())\n         where\n        nodeMethod = Godot.Core.MultiplayerAPI.set_root_node"
  },
  {
    "path": "src/Godot/Core/MultiplayerPeerGDNative.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.MultiplayerPeerGDNative () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.NetworkedMultiplayerPeer()"
  },
  {
    "path": "src/Godot/Core/Mutex.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Mutex\n       (Godot.Core.Mutex.lock, Godot.Core.Mutex.try_lock,\n        Godot.Core.Mutex.unlock)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindMutex_lock #-}\n\n-- | Locks this @Mutex@, blocks until it is unlocked by the current owner.\nbindMutex_lock :: MethodBind\nbindMutex_lock\n  = unsafePerformIO $\n      withCString \"_Mutex\" $\n        \\ clsNamePtr ->\n          withCString \"lock\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Locks this @Mutex@, blocks until it is unlocked by the current owner.\nlock :: (Mutex :< cls, Object :< cls) => cls -> IO ()\nlock cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMutex_lock (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Mutex \"lock\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Mutex.lock\n\n{-# NOINLINE bindMutex_try_lock #-}\n\n-- | Tries locking this @Mutex@, but does not block. Returns @OK@ on success, @ERR_BUSY@ otherwise.\nbindMutex_try_lock :: MethodBind\nbindMutex_try_lock\n  = unsafePerformIO $\n      withCString \"_Mutex\" $\n        \\ clsNamePtr ->\n          withCString \"try_lock\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Tries locking this @Mutex@, but does not block. Returns @OK@ on success, @ERR_BUSY@ otherwise.\ntry_lock :: (Mutex :< cls, Object :< cls) => cls -> IO Int\ntry_lock cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMutex_try_lock (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Mutex \"try_lock\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Mutex.try_lock\n\n{-# NOINLINE bindMutex_unlock #-}\n\n-- | Unlocks this @Mutex@, leaving it to other threads.\nbindMutex_unlock :: MethodBind\nbindMutex_unlock\n  = unsafePerformIO $\n      withCString \"_Mutex\" $\n        \\ clsNamePtr ->\n          withCString \"unlock\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Unlocks this @Mutex@, leaving it to other threads.\nunlock :: (Mutex :< cls, Object :< cls) => cls -> IO ()\nunlock cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindMutex_unlock (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Mutex \"unlock\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Mutex.unlock"
  },
  {
    "path": "src/Godot/Core/NativeScript.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.NativeScript\n       (Godot.Core.NativeScript.get_class_documentation,\n        Godot.Core.NativeScript.get_class_name,\n        Godot.Core.NativeScript.get_library,\n        Godot.Core.NativeScript.get_method_documentation,\n        Godot.Core.NativeScript.get_property_documentation,\n        Godot.Core.NativeScript.get_script_class_icon_path,\n        Godot.Core.NativeScript.get_script_class_name,\n        Godot.Core.NativeScript.get_signal_documentation,\n        Godot.Core.NativeScript.new,\n        Godot.Core.NativeScript.set_class_name,\n        Godot.Core.NativeScript.set_library,\n        Godot.Core.NativeScript.set_script_class_icon_path,\n        Godot.Core.NativeScript.set_script_class_name)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Script()\n\ninstance NodeProperty NativeScript \"class_name\" GodotString 'False\n         where\n        nodeProperty\n          = (get_class_name, wrapDroppingSetter set_class_name, Nothing)\n\ninstance NodeProperty NativeScript \"library\" GDNativeLibrary 'False\n         where\n        nodeProperty\n          = (get_library, wrapDroppingSetter set_library, Nothing)\n\ninstance NodeProperty NativeScript \"script_class_icon_path\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_script_class_icon_path,\n             wrapDroppingSetter set_script_class_icon_path, Nothing)\n\ninstance NodeProperty NativeScript \"script_class_name\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_script_class_name, wrapDroppingSetter set_script_class_name,\n             Nothing)\n\n{-# NOINLINE bindNativeScript_get_class_documentation #-}\n\nbindNativeScript_get_class_documentation :: MethodBind\nbindNativeScript_get_class_documentation\n  = unsafePerformIO $\n      withCString \"NativeScript\" $\n        \\ clsNamePtr ->\n          withCString \"get_class_documentation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_class_documentation ::\n                          (NativeScript :< cls, Object :< cls) => cls -> IO GodotString\nget_class_documentation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNativeScript_get_class_documentation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NativeScript \"get_class_documentation\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.NativeScript.get_class_documentation\n\n{-# NOINLINE bindNativeScript_get_class_name #-}\n\nbindNativeScript_get_class_name :: MethodBind\nbindNativeScript_get_class_name\n  = unsafePerformIO $\n      withCString \"NativeScript\" $\n        \\ clsNamePtr ->\n          withCString \"get_class_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_class_name ::\n                 (NativeScript :< cls, Object :< cls) => cls -> IO GodotString\nget_class_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNativeScript_get_class_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NativeScript \"get_class_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.NativeScript.get_class_name\n\n{-# NOINLINE bindNativeScript_get_library #-}\n\nbindNativeScript_get_library :: MethodBind\nbindNativeScript_get_library\n  = unsafePerformIO $\n      withCString \"NativeScript\" $\n        \\ clsNamePtr ->\n          withCString \"get_library\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_library ::\n              (NativeScript :< cls, Object :< cls) => cls -> IO GDNativeLibrary\nget_library cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNativeScript_get_library (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NativeScript \"get_library\" '[]\n           (IO GDNativeLibrary)\n         where\n        nodeMethod = Godot.Core.NativeScript.get_library\n\n{-# NOINLINE bindNativeScript_get_method_documentation #-}\n\nbindNativeScript_get_method_documentation :: MethodBind\nbindNativeScript_get_method_documentation\n  = unsafePerformIO $\n      withCString \"NativeScript\" $\n        \\ clsNamePtr ->\n          withCString \"get_method_documentation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_method_documentation ::\n                           (NativeScript :< cls, Object :< cls) =>\n                           cls -> GodotString -> IO GodotString\nget_method_documentation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNativeScript_get_method_documentation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NativeScript \"get_method_documentation\"\n           '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.NativeScript.get_method_documentation\n\n{-# NOINLINE bindNativeScript_get_property_documentation #-}\n\nbindNativeScript_get_property_documentation :: MethodBind\nbindNativeScript_get_property_documentation\n  = unsafePerformIO $\n      withCString \"NativeScript\" $\n        \\ clsNamePtr ->\n          withCString \"get_property_documentation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_property_documentation ::\n                             (NativeScript :< cls, Object :< cls) =>\n                             cls -> GodotString -> IO GodotString\nget_property_documentation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNativeScript_get_property_documentation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NativeScript \"get_property_documentation\"\n           '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.NativeScript.get_property_documentation\n\n{-# NOINLINE bindNativeScript_get_script_class_icon_path #-}\n\nbindNativeScript_get_script_class_icon_path :: MethodBind\nbindNativeScript_get_script_class_icon_path\n  = unsafePerformIO $\n      withCString \"NativeScript\" $\n        \\ clsNamePtr ->\n          withCString \"get_script_class_icon_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_script_class_icon_path ::\n                             (NativeScript :< cls, Object :< cls) => cls -> IO GodotString\nget_script_class_icon_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNativeScript_get_script_class_icon_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NativeScript \"get_script_class_icon_path\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.NativeScript.get_script_class_icon_path\n\n{-# NOINLINE bindNativeScript_get_script_class_name #-}\n\nbindNativeScript_get_script_class_name :: MethodBind\nbindNativeScript_get_script_class_name\n  = unsafePerformIO $\n      withCString \"NativeScript\" $\n        \\ clsNamePtr ->\n          withCString \"get_script_class_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_script_class_name ::\n                        (NativeScript :< cls, Object :< cls) => cls -> IO GodotString\nget_script_class_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNativeScript_get_script_class_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NativeScript \"get_script_class_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.NativeScript.get_script_class_name\n\n{-# NOINLINE bindNativeScript_get_signal_documentation #-}\n\nbindNativeScript_get_signal_documentation :: MethodBind\nbindNativeScript_get_signal_documentation\n  = unsafePerformIO $\n      withCString \"NativeScript\" $\n        \\ clsNamePtr ->\n          withCString \"get_signal_documentation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_signal_documentation ::\n                           (NativeScript :< cls, Object :< cls) =>\n                           cls -> GodotString -> IO GodotString\nget_signal_documentation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNativeScript_get_signal_documentation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NativeScript \"get_signal_documentation\"\n           '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.NativeScript.get_signal_documentation\n\n{-# NOINLINE bindNativeScript_new #-}\n\nbindNativeScript_new :: MethodBind\nbindNativeScript_new\n  = unsafePerformIO $\n      withCString \"NativeScript\" $\n        \\ clsNamePtr ->\n          withCString \"new\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nnew ::\n      (NativeScript :< cls, Object :< cls) =>\n      cls -> [Variant 'GodotTy] -> IO GodotVariant\nnew cls varargs\n  = withVariantArray ([] ++ varargs)\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNativeScript_new (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NativeScript \"new\" '[[Variant 'GodotTy]]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.NativeScript.new\n\n{-# NOINLINE bindNativeScript_set_class_name #-}\n\nbindNativeScript_set_class_name :: MethodBind\nbindNativeScript_set_class_name\n  = unsafePerformIO $\n      withCString \"NativeScript\" $\n        \\ clsNamePtr ->\n          withCString \"set_class_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_class_name ::\n                 (NativeScript :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_class_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNativeScript_set_class_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NativeScript \"set_class_name\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NativeScript.set_class_name\n\n{-# NOINLINE bindNativeScript_set_library #-}\n\nbindNativeScript_set_library :: MethodBind\nbindNativeScript_set_library\n  = unsafePerformIO $\n      withCString \"NativeScript\" $\n        \\ clsNamePtr ->\n          withCString \"set_library\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_library ::\n              (NativeScript :< cls, Object :< cls) =>\n              cls -> GDNativeLibrary -> IO ()\nset_library cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNativeScript_set_library (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NativeScript \"set_library\" '[GDNativeLibrary]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NativeScript.set_library\n\n{-# NOINLINE bindNativeScript_set_script_class_icon_path #-}\n\nbindNativeScript_set_script_class_icon_path :: MethodBind\nbindNativeScript_set_script_class_icon_path\n  = unsafePerformIO $\n      withCString \"NativeScript\" $\n        \\ clsNamePtr ->\n          withCString \"set_script_class_icon_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_script_class_icon_path ::\n                             (NativeScript :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_script_class_icon_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNativeScript_set_script_class_icon_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NativeScript \"set_script_class_icon_path\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NativeScript.set_script_class_icon_path\n\n{-# NOINLINE bindNativeScript_set_script_class_name #-}\n\nbindNativeScript_set_script_class_name :: MethodBind\nbindNativeScript_set_script_class_name\n  = unsafePerformIO $\n      withCString \"NativeScript\" $\n        \\ clsNamePtr ->\n          withCString \"set_script_class_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_script_class_name ::\n                        (NativeScript :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_script_class_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNativeScript_set_script_class_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NativeScript \"set_script_class_name\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NativeScript.set_script_class_name"
  },
  {
    "path": "src/Godot/Core/Navigation.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Navigation\n       (Godot.Core.Navigation.get_closest_point,\n        Godot.Core.Navigation.get_closest_point_normal,\n        Godot.Core.Navigation.get_closest_point_owner,\n        Godot.Core.Navigation.get_closest_point_to_segment,\n        Godot.Core.Navigation.get_simple_path,\n        Godot.Core.Navigation.get_up_vector,\n        Godot.Core.Navigation.navmesh_add,\n        Godot.Core.Navigation.navmesh_remove,\n        Godot.Core.Navigation.navmesh_set_transform,\n        Godot.Core.Navigation.set_up_vector)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\ninstance NodeProperty Navigation \"up_vector\" Vector3 'False where\n        nodeProperty\n          = (get_up_vector, wrapDroppingSetter set_up_vector, Nothing)\n\n{-# NOINLINE bindNavigation_get_closest_point #-}\n\n-- | Returns the navigation point closest to the point given. Points are in local coordinate space.\nbindNavigation_get_closest_point :: MethodBind\nbindNavigation_get_closest_point\n  = unsafePerformIO $\n      withCString \"Navigation\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the navigation point closest to the point given. Points are in local coordinate space.\nget_closest_point ::\n                    (Navigation :< cls, Object :< cls) => cls -> Vector3 -> IO Vector3\nget_closest_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigation_get_closest_point\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Navigation \"get_closest_point\" '[Vector3]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Navigation.get_closest_point\n\n{-# NOINLINE bindNavigation_get_closest_point_normal #-}\n\n-- | Returns the surface normal at the navigation point closest to the point given. Useful for rotating a navigation agent according to the navigation mesh it moves on.\nbindNavigation_get_closest_point_normal :: MethodBind\nbindNavigation_get_closest_point_normal\n  = unsafePerformIO $\n      withCString \"Navigation\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_point_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the surface normal at the navigation point closest to the point given. Useful for rotating a navigation agent according to the navigation mesh it moves on.\nget_closest_point_normal ::\n                           (Navigation :< cls, Object :< cls) => cls -> Vector3 -> IO Vector3\nget_closest_point_normal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigation_get_closest_point_normal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Navigation \"get_closest_point_normal\"\n           '[Vector3]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Navigation.get_closest_point_normal\n\n{-# NOINLINE bindNavigation_get_closest_point_owner #-}\n\n-- | Returns the owner of the @NavigationMesh@ which contains the navigation point closest to the point given. This is usually a @NavigationMeshInstance@. For meshes added via @method navmesh_add@, returns the owner that was given (or @null@ if the @owner@ parameter was omitted).\nbindNavigation_get_closest_point_owner :: MethodBind\nbindNavigation_get_closest_point_owner\n  = unsafePerformIO $\n      withCString \"Navigation\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_point_owner\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the owner of the @NavigationMesh@ which contains the navigation point closest to the point given. This is usually a @NavigationMeshInstance@. For meshes added via @method navmesh_add@, returns the owner that was given (or @null@ if the @owner@ parameter was omitted).\nget_closest_point_owner ::\n                          (Navigation :< cls, Object :< cls) => cls -> Vector3 -> IO Object\nget_closest_point_owner cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigation_get_closest_point_owner\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Navigation \"get_closest_point_owner\" '[Vector3]\n           (IO Object)\n         where\n        nodeMethod = Godot.Core.Navigation.get_closest_point_owner\n\n{-# NOINLINE bindNavigation_get_closest_point_to_segment #-}\n\n-- | Returns the navigation point closest to the given line segment. When enabling @use_collision@, only considers intersection points between segment and navigation meshes. If multiple intersection points are found, the one closest to the segment start point is returned.\nbindNavigation_get_closest_point_to_segment :: MethodBind\nbindNavigation_get_closest_point_to_segment\n  = unsafePerformIO $\n      withCString \"Navigation\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_point_to_segment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the navigation point closest to the given line segment. When enabling @use_collision@, only considers intersection points between segment and navigation meshes. If multiple intersection points are found, the one closest to the segment start point is returned.\nget_closest_point_to_segment ::\n                               (Navigation :< cls, Object :< cls) =>\n                               cls -> Vector3 -> Vector3 -> Maybe Bool -> IO Vector3\nget_closest_point_to_segment cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool False) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigation_get_closest_point_to_segment\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Navigation \"get_closest_point_to_segment\"\n           '[Vector3, Vector3, Maybe Bool]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Navigation.get_closest_point_to_segment\n\n{-# NOINLINE bindNavigation_get_simple_path #-}\n\n-- | Returns the path between two given points. Points are in local coordinate space. If @optimize@ is @true@ (the default), the agent properties associated with each @NavigationMesh@ (radius, height, etc.) are considered in the path calculation, otherwise they are ignored.\nbindNavigation_get_simple_path :: MethodBind\nbindNavigation_get_simple_path\n  = unsafePerformIO $\n      withCString \"Navigation\" $\n        \\ clsNamePtr ->\n          withCString \"get_simple_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the path between two given points. Points are in local coordinate space. If @optimize@ is @true@ (the default), the agent properties associated with each @NavigationMesh@ (radius, height, etc.) are considered in the path calculation, otherwise they are ignored.\nget_simple_path ::\n                  (Navigation :< cls, Object :< cls) =>\n                  cls -> Vector3 -> Vector3 -> Maybe Bool -> IO PoolVector3Array\nget_simple_path cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool True) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigation_get_simple_path (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Navigation \"get_simple_path\"\n           '[Vector3, Vector3, Maybe Bool]\n           (IO PoolVector3Array)\n         where\n        nodeMethod = Godot.Core.Navigation.get_simple_path\n\n{-# NOINLINE bindNavigation_get_up_vector #-}\n\n-- | Defines which direction is up. By default, this is @(0, 1, 0)@, which is the world's \"up\" direction.\nbindNavigation_get_up_vector :: MethodBind\nbindNavigation_get_up_vector\n  = unsafePerformIO $\n      withCString \"Navigation\" $\n        \\ clsNamePtr ->\n          withCString \"get_up_vector\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines which direction is up. By default, this is @(0, 1, 0)@, which is the world's \"up\" direction.\nget_up_vector ::\n                (Navigation :< cls, Object :< cls) => cls -> IO Vector3\nget_up_vector cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigation_get_up_vector (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Navigation \"get_up_vector\" '[] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Navigation.get_up_vector\n\n{-# NOINLINE bindNavigation_navmesh_add #-}\n\n-- | Adds a @NavigationMesh@. Returns an ID for use with @method navmesh_remove@ or @method navmesh_set_transform@. If given, a @Transform2D@ is applied to the polygon. The optional @owner@ is used as return value for @method get_closest_point_owner@.\nbindNavigation_navmesh_add :: MethodBind\nbindNavigation_navmesh_add\n  = unsafePerformIO $\n      withCString \"Navigation\" $\n        \\ clsNamePtr ->\n          withCString \"navmesh_add\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @NavigationMesh@. Returns an ID for use with @method navmesh_remove@ or @method navmesh_set_transform@. If given, a @Transform2D@ is applied to the polygon. The optional @owner@ is used as return value for @method get_closest_point_owner@.\nnavmesh_add ::\n              (Navigation :< cls, Object :< cls) =>\n              cls -> NavigationMesh -> Transform -> Maybe Object -> IO Int\nnavmesh_add cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, maybe VariantNil toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigation_navmesh_add (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Navigation \"navmesh_add\"\n           '[NavigationMesh, Transform, Maybe Object]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Navigation.navmesh_add\n\n{-# NOINLINE bindNavigation_navmesh_remove #-}\n\n-- | Removes the @NavigationMesh@ with the given ID.\nbindNavigation_navmesh_remove :: MethodBind\nbindNavigation_navmesh_remove\n  = unsafePerformIO $\n      withCString \"Navigation\" $\n        \\ clsNamePtr ->\n          withCString \"navmesh_remove\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the @NavigationMesh@ with the given ID.\nnavmesh_remove ::\n                 (Navigation :< cls, Object :< cls) => cls -> Int -> IO ()\nnavmesh_remove cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigation_navmesh_remove (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Navigation \"navmesh_remove\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Navigation.navmesh_remove\n\n{-# NOINLINE bindNavigation_navmesh_set_transform #-}\n\n-- | Sets the transform applied to the @NavigationMesh@ with the given ID.\nbindNavigation_navmesh_set_transform :: MethodBind\nbindNavigation_navmesh_set_transform\n  = unsafePerformIO $\n      withCString \"Navigation\" $\n        \\ clsNamePtr ->\n          withCString \"navmesh_set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the transform applied to the @NavigationMesh@ with the given ID.\nnavmesh_set_transform ::\n                        (Navigation :< cls, Object :< cls) =>\n                        cls -> Int -> Transform -> IO ()\nnavmesh_set_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigation_navmesh_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Navigation \"navmesh_set_transform\"\n           '[Int, Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Navigation.navmesh_set_transform\n\n{-# NOINLINE bindNavigation_set_up_vector #-}\n\n-- | Defines which direction is up. By default, this is @(0, 1, 0)@, which is the world's \"up\" direction.\nbindNavigation_set_up_vector :: MethodBind\nbindNavigation_set_up_vector\n  = unsafePerformIO $\n      withCString \"Navigation\" $\n        \\ clsNamePtr ->\n          withCString \"set_up_vector\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines which direction is up. By default, this is @(0, 1, 0)@, which is the world's \"up\" direction.\nset_up_vector ::\n                (Navigation :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_up_vector cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigation_set_up_vector (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Navigation \"set_up_vector\" '[Vector3] (IO ())\n         where\n        nodeMethod = Godot.Core.Navigation.set_up_vector"
  },
  {
    "path": "src/Godot/Core/Navigation2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Navigation2D\n       (Godot.Core.Navigation2D.get_closest_point,\n        Godot.Core.Navigation2D.get_closest_point_owner,\n        Godot.Core.Navigation2D.get_simple_path,\n        Godot.Core.Navigation2D.navpoly_add,\n        Godot.Core.Navigation2D.navpoly_remove,\n        Godot.Core.Navigation2D.navpoly_set_transform)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\n{-# NOINLINE bindNavigation2D_get_closest_point #-}\n\n-- | Returns the navigation point closest to the point given. Points are in local coordinate space.\nbindNavigation2D_get_closest_point :: MethodBind\nbindNavigation2D_get_closest_point\n  = unsafePerformIO $\n      withCString \"Navigation2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the navigation point closest to the point given. Points are in local coordinate space.\nget_closest_point ::\n                    (Navigation2D :< cls, Object :< cls) =>\n                    cls -> Vector2 -> IO Vector2\nget_closest_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigation2D_get_closest_point\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Navigation2D \"get_closest_point\" '[Vector2]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Navigation2D.get_closest_point\n\n{-# NOINLINE bindNavigation2D_get_closest_point_owner #-}\n\n-- | Returns the owner of the @NavigationPolygon@ which contains the navigation point closest to the point given. This is usually a @NavigationPolygonInstance@. For polygons added via @method navpoly_add@, returns the owner that was given (or @null@ if the @owner@ parameter was omitted).\nbindNavigation2D_get_closest_point_owner :: MethodBind\nbindNavigation2D_get_closest_point_owner\n  = unsafePerformIO $\n      withCString \"Navigation2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_point_owner\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the owner of the @NavigationPolygon@ which contains the navigation point closest to the point given. This is usually a @NavigationPolygonInstance@. For polygons added via @method navpoly_add@, returns the owner that was given (or @null@ if the @owner@ parameter was omitted).\nget_closest_point_owner ::\n                          (Navigation2D :< cls, Object :< cls) => cls -> Vector2 -> IO Object\nget_closest_point_owner cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigation2D_get_closest_point_owner\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Navigation2D \"get_closest_point_owner\"\n           '[Vector2]\n           (IO Object)\n         where\n        nodeMethod = Godot.Core.Navigation2D.get_closest_point_owner\n\n{-# NOINLINE bindNavigation2D_get_simple_path #-}\n\n-- | Returns the path between two given points. Points are in local coordinate space. If @optimize@ is @true@ (the default), the path is smoothed by merging path segments where possible.\nbindNavigation2D_get_simple_path :: MethodBind\nbindNavigation2D_get_simple_path\n  = unsafePerformIO $\n      withCString \"Navigation2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_simple_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the path between two given points. Points are in local coordinate space. If @optimize@ is @true@ (the default), the path is smoothed by merging path segments where possible.\nget_simple_path ::\n                  (Navigation2D :< cls, Object :< cls) =>\n                  cls -> Vector2 -> Vector2 -> Maybe Bool -> IO PoolVector2Array\nget_simple_path cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool True) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigation2D_get_simple_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Navigation2D \"get_simple_path\"\n           '[Vector2, Vector2, Maybe Bool]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.Navigation2D.get_simple_path\n\n{-# NOINLINE bindNavigation2D_navpoly_add #-}\n\n-- | Adds a @NavigationPolygon@. Returns an ID for use with @method navpoly_remove@ or @method navpoly_set_transform@. If given, a @Transform2D@ is applied to the polygon. The optional @owner@ is used as return value for @method get_closest_point_owner@.\nbindNavigation2D_navpoly_add :: MethodBind\nbindNavigation2D_navpoly_add\n  = unsafePerformIO $\n      withCString \"Navigation2D\" $\n        \\ clsNamePtr ->\n          withCString \"navpoly_add\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @NavigationPolygon@. Returns an ID for use with @method navpoly_remove@ or @method navpoly_set_transform@. If given, a @Transform2D@ is applied to the polygon. The optional @owner@ is used as return value for @method get_closest_point_owner@.\nnavpoly_add ::\n              (Navigation2D :< cls, Object :< cls) =>\n              cls -> NavigationPolygon -> Transform2d -> Maybe Object -> IO Int\nnavpoly_add cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, maybe VariantNil toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigation2D_navpoly_add (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Navigation2D \"navpoly_add\"\n           '[NavigationPolygon, Transform2d, Maybe Object]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Navigation2D.navpoly_add\n\n{-# NOINLINE bindNavigation2D_navpoly_remove #-}\n\n-- | Removes the @NavigationPolygon@ with the given ID.\nbindNavigation2D_navpoly_remove :: MethodBind\nbindNavigation2D_navpoly_remove\n  = unsafePerformIO $\n      withCString \"Navigation2D\" $\n        \\ clsNamePtr ->\n          withCString \"navpoly_remove\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the @NavigationPolygon@ with the given ID.\nnavpoly_remove ::\n                 (Navigation2D :< cls, Object :< cls) => cls -> Int -> IO ()\nnavpoly_remove cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigation2D_navpoly_remove (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Navigation2D \"navpoly_remove\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Navigation2D.navpoly_remove\n\n{-# NOINLINE bindNavigation2D_navpoly_set_transform #-}\n\n-- | Sets the transform applied to the @NavigationPolygon@ with the given ID.\nbindNavigation2D_navpoly_set_transform :: MethodBind\nbindNavigation2D_navpoly_set_transform\n  = unsafePerformIO $\n      withCString \"Navigation2D\" $\n        \\ clsNamePtr ->\n          withCString \"navpoly_set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the transform applied to the @NavigationPolygon@ with the given ID.\nnavpoly_set_transform ::\n                        (Navigation2D :< cls, Object :< cls) =>\n                        cls -> Int -> Transform2d -> IO ()\nnavpoly_set_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigation2D_navpoly_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Navigation2D \"navpoly_set_transform\"\n           '[Int, Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Navigation2D.navpoly_set_transform"
  },
  {
    "path": "src/Godot/Core/NavigationMesh.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.NavigationMesh\n       (Godot.Core.NavigationMesh._SAMPLE_PARTITION_LAYERS,\n        Godot.Core.NavigationMesh._SAMPLE_PARTITION_WATERSHED,\n        Godot.Core.NavigationMesh._SAMPLE_PARTITION_MONOTONE,\n        Godot.Core.NavigationMesh._PARSED_GEOMETRY_BOTH,\n        Godot.Core.NavigationMesh._PARSED_GEOMETRY_MESH_INSTANCES,\n        Godot.Core.NavigationMesh._PARSED_GEOMETRY_STATIC_COLLIDERS,\n        Godot.Core.NavigationMesh._get_polygons,\n        Godot.Core.NavigationMesh._set_polygons,\n        Godot.Core.NavigationMesh.add_polygon,\n        Godot.Core.NavigationMesh.clear_polygons,\n        Godot.Core.NavigationMesh.create_from_mesh,\n        Godot.Core.NavigationMesh.get_agent_height,\n        Godot.Core.NavigationMesh.get_agent_max_climb,\n        Godot.Core.NavigationMesh.get_agent_max_slope,\n        Godot.Core.NavigationMesh.get_agent_radius,\n        Godot.Core.NavigationMesh.get_cell_height,\n        Godot.Core.NavigationMesh.get_cell_size,\n        Godot.Core.NavigationMesh.get_collision_mask,\n        Godot.Core.NavigationMesh.get_collision_mask_bit,\n        Godot.Core.NavigationMesh.get_detail_sample_distance,\n        Godot.Core.NavigationMesh.get_detail_sample_max_error,\n        Godot.Core.NavigationMesh.get_edge_max_error,\n        Godot.Core.NavigationMesh.get_edge_max_length,\n        Godot.Core.NavigationMesh.get_filter_ledge_spans,\n        Godot.Core.NavigationMesh.get_filter_low_hanging_obstacles,\n        Godot.Core.NavigationMesh.get_filter_walkable_low_height_spans,\n        Godot.Core.NavigationMesh.get_parsed_geometry_type,\n        Godot.Core.NavigationMesh.get_polygon,\n        Godot.Core.NavigationMesh.get_polygon_count,\n        Godot.Core.NavigationMesh.get_region_merge_size,\n        Godot.Core.NavigationMesh.get_region_min_size,\n        Godot.Core.NavigationMesh.get_sample_partition_type,\n        Godot.Core.NavigationMesh.get_source_geometry_mode,\n        Godot.Core.NavigationMesh.get_source_group_name,\n        Godot.Core.NavigationMesh.get_vertices,\n        Godot.Core.NavigationMesh.get_verts_per_poly,\n        Godot.Core.NavigationMesh.set_agent_height,\n        Godot.Core.NavigationMesh.set_agent_max_climb,\n        Godot.Core.NavigationMesh.set_agent_max_slope,\n        Godot.Core.NavigationMesh.set_agent_radius,\n        Godot.Core.NavigationMesh.set_cell_height,\n        Godot.Core.NavigationMesh.set_cell_size,\n        Godot.Core.NavigationMesh.set_collision_mask,\n        Godot.Core.NavigationMesh.set_collision_mask_bit,\n        Godot.Core.NavigationMesh.set_detail_sample_distance,\n        Godot.Core.NavigationMesh.set_detail_sample_max_error,\n        Godot.Core.NavigationMesh.set_edge_max_error,\n        Godot.Core.NavigationMesh.set_edge_max_length,\n        Godot.Core.NavigationMesh.set_filter_ledge_spans,\n        Godot.Core.NavigationMesh.set_filter_low_hanging_obstacles,\n        Godot.Core.NavigationMesh.set_filter_walkable_low_height_spans,\n        Godot.Core.NavigationMesh.set_parsed_geometry_type,\n        Godot.Core.NavigationMesh.set_region_merge_size,\n        Godot.Core.NavigationMesh.set_region_min_size,\n        Godot.Core.NavigationMesh.set_sample_partition_type,\n        Godot.Core.NavigationMesh.set_source_geometry_mode,\n        Godot.Core.NavigationMesh.set_source_group_name,\n        Godot.Core.NavigationMesh.set_vertices,\n        Godot.Core.NavigationMesh.set_verts_per_poly)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_SAMPLE_PARTITION_LAYERS :: Int\n_SAMPLE_PARTITION_LAYERS = 2\n\n_SAMPLE_PARTITION_WATERSHED :: Int\n_SAMPLE_PARTITION_WATERSHED = 0\n\n_SAMPLE_PARTITION_MONOTONE :: Int\n_SAMPLE_PARTITION_MONOTONE = 1\n\n_PARSED_GEOMETRY_BOTH :: Int\n_PARSED_GEOMETRY_BOTH = 2\n\n_PARSED_GEOMETRY_MESH_INSTANCES :: Int\n_PARSED_GEOMETRY_MESH_INSTANCES = 0\n\n_PARSED_GEOMETRY_STATIC_COLLIDERS :: Int\n_PARSED_GEOMETRY_STATIC_COLLIDERS = 1\n\ninstance NodeProperty NavigationMesh \"agent/height\" Float 'False\n         where\n        nodeProperty\n          = (get_agent_height, wrapDroppingSetter set_agent_height, Nothing)\n\ninstance NodeProperty NavigationMesh \"agent/max_climb\" Float 'False\n         where\n        nodeProperty\n          = (get_agent_max_climb, wrapDroppingSetter set_agent_max_climb,\n             Nothing)\n\ninstance NodeProperty NavigationMesh \"agent/max_slope\" Float 'False\n         where\n        nodeProperty\n          = (get_agent_max_slope, wrapDroppingSetter set_agent_max_slope,\n             Nothing)\n\ninstance NodeProperty NavigationMesh \"agent/radius\" Float 'False\n         where\n        nodeProperty\n          = (get_agent_radius, wrapDroppingSetter set_agent_radius, Nothing)\n\ninstance NodeProperty NavigationMesh \"cell/height\" Float 'False\n         where\n        nodeProperty\n          = (get_cell_height, wrapDroppingSetter set_cell_height, Nothing)\n\ninstance NodeProperty NavigationMesh \"cell/size\" Float 'False where\n        nodeProperty\n          = (get_cell_size, wrapDroppingSetter set_cell_size, Nothing)\n\ninstance NodeProperty NavigationMesh \"detail/sample_distance\" Float\n           'False\n         where\n        nodeProperty\n          = (get_detail_sample_distance,\n             wrapDroppingSetter set_detail_sample_distance, Nothing)\n\ninstance NodeProperty NavigationMesh \"detail/sample_max_error\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_detail_sample_max_error,\n             wrapDroppingSetter set_detail_sample_max_error, Nothing)\n\ninstance NodeProperty NavigationMesh \"edge/max_error\" Float 'False\n         where\n        nodeProperty\n          = (get_edge_max_error, wrapDroppingSetter set_edge_max_error,\n             Nothing)\n\ninstance NodeProperty NavigationMesh \"edge/max_length\" Float 'False\n         where\n        nodeProperty\n          = (get_edge_max_length, wrapDroppingSetter set_edge_max_length,\n             Nothing)\n\ninstance NodeProperty NavigationMesh\n           \"filter/filter_walkable_low_height_spans\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (get_filter_walkable_low_height_spans,\n             wrapDroppingSetter set_filter_walkable_low_height_spans, Nothing)\n\ninstance NodeProperty NavigationMesh \"filter/ledge_spans\" Bool\n           'False\n         where\n        nodeProperty\n          = (get_filter_ledge_spans,\n             wrapDroppingSetter set_filter_ledge_spans, Nothing)\n\ninstance NodeProperty NavigationMesh \"filter/low_hanging_obstacles\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (get_filter_low_hanging_obstacles,\n             wrapDroppingSetter set_filter_low_hanging_obstacles, Nothing)\n\ninstance NodeProperty NavigationMesh \"geometry/collision_mask\" Int\n           'False\n         where\n        nodeProperty\n          = (get_collision_mask, wrapDroppingSetter set_collision_mask,\n             Nothing)\n\ninstance NodeProperty NavigationMesh\n           \"geometry/parsed_geometry_type\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_parsed_geometry_type,\n             wrapDroppingSetter set_parsed_geometry_type, Nothing)\n\ninstance NodeProperty NavigationMesh\n           \"geometry/source_geometry_mode\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_source_geometry_mode,\n             wrapDroppingSetter set_source_geometry_mode, Nothing)\n\ninstance NodeProperty NavigationMesh \"geometry/source_group_name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_source_group_name, wrapDroppingSetter set_source_group_name,\n             Nothing)\n\ninstance NodeProperty NavigationMesh \"polygon/verts_per_poly\" Float\n           'False\n         where\n        nodeProperty\n          = (get_verts_per_poly, wrapDroppingSetter set_verts_per_poly,\n             Nothing)\n\ninstance NodeProperty NavigationMesh \"polygons\" Array 'False where\n        nodeProperty\n          = (_get_polygons, wrapDroppingSetter _set_polygons, Nothing)\n\ninstance NodeProperty NavigationMesh \"region/merge_size\" Float\n           'False\n         where\n        nodeProperty\n          = (get_region_merge_size, wrapDroppingSetter set_region_merge_size,\n             Nothing)\n\ninstance NodeProperty NavigationMesh \"region/min_size\" Float 'False\n         where\n        nodeProperty\n          = (get_region_min_size, wrapDroppingSetter set_region_min_size,\n             Nothing)\n\ninstance NodeProperty NavigationMesh\n           \"sample_partition_type/sample_partition_type\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_sample_partition_type,\n             wrapDroppingSetter set_sample_partition_type, Nothing)\n\ninstance NodeProperty NavigationMesh \"vertices\" PoolVector3Array\n           'False\n         where\n        nodeProperty\n          = (get_vertices, wrapDroppingSetter set_vertices, Nothing)\n\n{-# NOINLINE bindNavigationMesh__get_polygons #-}\n\nbindNavigationMesh__get_polygons :: MethodBind\nbindNavigationMesh__get_polygons\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"_get_polygons\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_polygons ::\n                (NavigationMesh :< cls, Object :< cls) => cls -> IO Array\n_get_polygons cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh__get_polygons\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"_get_polygons\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.NavigationMesh._get_polygons\n\n{-# NOINLINE bindNavigationMesh__set_polygons #-}\n\nbindNavigationMesh__set_polygons :: MethodBind\nbindNavigationMesh__set_polygons\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"_set_polygons\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_polygons ::\n                (NavigationMesh :< cls, Object :< cls) => cls -> Array -> IO ()\n_set_polygons cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh__set_polygons\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"_set_polygons\" '[Array] (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh._set_polygons\n\n{-# NOINLINE bindNavigationMesh_add_polygon #-}\n\nbindNavigationMesh_add_polygon :: MethodBind\nbindNavigationMesh_add_polygon\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"add_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_polygon ::\n              (NavigationMesh :< cls, Object :< cls) =>\n              cls -> PoolIntArray -> IO ()\nadd_polygon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_add_polygon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"add_polygon\" '[PoolIntArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.add_polygon\n\n{-# NOINLINE bindNavigationMesh_clear_polygons #-}\n\nbindNavigationMesh_clear_polygons :: MethodBind\nbindNavigationMesh_clear_polygons\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"clear_polygons\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nclear_polygons ::\n                 (NavigationMesh :< cls, Object :< cls) => cls -> IO ()\nclear_polygons cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_clear_polygons\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"clear_polygons\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.clear_polygons\n\n{-# NOINLINE bindNavigationMesh_create_from_mesh #-}\n\nbindNavigationMesh_create_from_mesh :: MethodBind\nbindNavigationMesh_create_from_mesh\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"create_from_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncreate_from_mesh ::\n                   (NavigationMesh :< cls, Object :< cls) => cls -> Mesh -> IO ()\ncreate_from_mesh cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_create_from_mesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"create_from_mesh\" '[Mesh]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.create_from_mesh\n\n{-# NOINLINE bindNavigationMesh_get_agent_height #-}\n\nbindNavigationMesh_get_agent_height :: MethodBind\nbindNavigationMesh_get_agent_height\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_agent_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_agent_height ::\n                   (NavigationMesh :< cls, Object :< cls) => cls -> IO Float\nget_agent_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_agent_height\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_agent_height\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_agent_height\n\n{-# NOINLINE bindNavigationMesh_get_agent_max_climb #-}\n\nbindNavigationMesh_get_agent_max_climb :: MethodBind\nbindNavigationMesh_get_agent_max_climb\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_agent_max_climb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_agent_max_climb ::\n                      (NavigationMesh :< cls, Object :< cls) => cls -> IO Float\nget_agent_max_climb cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_agent_max_climb\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_agent_max_climb\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_agent_max_climb\n\n{-# NOINLINE bindNavigationMesh_get_agent_max_slope #-}\n\nbindNavigationMesh_get_agent_max_slope :: MethodBind\nbindNavigationMesh_get_agent_max_slope\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_agent_max_slope\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_agent_max_slope ::\n                      (NavigationMesh :< cls, Object :< cls) => cls -> IO Float\nget_agent_max_slope cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_agent_max_slope\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_agent_max_slope\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_agent_max_slope\n\n{-# NOINLINE bindNavigationMesh_get_agent_radius #-}\n\nbindNavigationMesh_get_agent_radius :: MethodBind\nbindNavigationMesh_get_agent_radius\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_agent_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_agent_radius ::\n                   (NavigationMesh :< cls, Object :< cls) => cls -> IO Float\nget_agent_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_agent_radius\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_agent_radius\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_agent_radius\n\n{-# NOINLINE bindNavigationMesh_get_cell_height #-}\n\nbindNavigationMesh_get_cell_height :: MethodBind\nbindNavigationMesh_get_cell_height\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_cell_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_cell_height ::\n                  (NavigationMesh :< cls, Object :< cls) => cls -> IO Float\nget_cell_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_cell_height\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_cell_height\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_cell_height\n\n{-# NOINLINE bindNavigationMesh_get_cell_size #-}\n\nbindNavigationMesh_get_cell_size :: MethodBind\nbindNavigationMesh_get_cell_size\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_cell_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_cell_size ::\n                (NavigationMesh :< cls, Object :< cls) => cls -> IO Float\nget_cell_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_cell_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_cell_size\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_cell_size\n\n{-# NOINLINE bindNavigationMesh_get_collision_mask #-}\n\nbindNavigationMesh_get_collision_mask :: MethodBind\nbindNavigationMesh_get_collision_mask\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_collision_mask ::\n                     (NavigationMesh :< cls, Object :< cls) => cls -> IO Int\nget_collision_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_collision_mask\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_collision_mask\n\n{-# NOINLINE bindNavigationMesh_get_collision_mask_bit #-}\n\nbindNavigationMesh_get_collision_mask_bit :: MethodBind\nbindNavigationMesh_get_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_collision_mask_bit ::\n                         (NavigationMesh :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_mask_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_collision_mask_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_collision_mask_bit\n\n{-# NOINLINE bindNavigationMesh_get_detail_sample_distance #-}\n\nbindNavigationMesh_get_detail_sample_distance :: MethodBind\nbindNavigationMesh_get_detail_sample_distance\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_detail_sample_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_detail_sample_distance ::\n                             (NavigationMesh :< cls, Object :< cls) => cls -> IO Float\nget_detail_sample_distance cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNavigationMesh_get_detail_sample_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_detail_sample_distance\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_detail_sample_distance\n\n{-# NOINLINE bindNavigationMesh_get_detail_sample_max_error #-}\n\nbindNavigationMesh_get_detail_sample_max_error :: MethodBind\nbindNavigationMesh_get_detail_sample_max_error\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_detail_sample_max_error\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_detail_sample_max_error ::\n                              (NavigationMesh :< cls, Object :< cls) => cls -> IO Float\nget_detail_sample_max_error cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNavigationMesh_get_detail_sample_max_error\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_detail_sample_max_error\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_detail_sample_max_error\n\n{-# NOINLINE bindNavigationMesh_get_edge_max_error #-}\n\nbindNavigationMesh_get_edge_max_error :: MethodBind\nbindNavigationMesh_get_edge_max_error\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_edge_max_error\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_edge_max_error ::\n                     (NavigationMesh :< cls, Object :< cls) => cls -> IO Float\nget_edge_max_error cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_edge_max_error\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_edge_max_error\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_edge_max_error\n\n{-# NOINLINE bindNavigationMesh_get_edge_max_length #-}\n\nbindNavigationMesh_get_edge_max_length :: MethodBind\nbindNavigationMesh_get_edge_max_length\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_edge_max_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_edge_max_length ::\n                      (NavigationMesh :< cls, Object :< cls) => cls -> IO Float\nget_edge_max_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_edge_max_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_edge_max_length\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_edge_max_length\n\n{-# NOINLINE bindNavigationMesh_get_filter_ledge_spans #-}\n\nbindNavigationMesh_get_filter_ledge_spans :: MethodBind\nbindNavigationMesh_get_filter_ledge_spans\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_filter_ledge_spans\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_filter_ledge_spans ::\n                         (NavigationMesh :< cls, Object :< cls) => cls -> IO Bool\nget_filter_ledge_spans cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_filter_ledge_spans\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_filter_ledge_spans\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_filter_ledge_spans\n\n{-# NOINLINE bindNavigationMesh_get_filter_low_hanging_obstacles\n             #-}\n\nbindNavigationMesh_get_filter_low_hanging_obstacles :: MethodBind\nbindNavigationMesh_get_filter_low_hanging_obstacles\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_filter_low_hanging_obstacles\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_filter_low_hanging_obstacles ::\n                                   (NavigationMesh :< cls, Object :< cls) => cls -> IO Bool\nget_filter_low_hanging_obstacles cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNavigationMesh_get_filter_low_hanging_obstacles\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh\n           \"get_filter_low_hanging_obstacles\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.NavigationMesh.get_filter_low_hanging_obstacles\n\n{-# NOINLINE bindNavigationMesh_get_filter_walkable_low_height_spans\n             #-}\n\nbindNavigationMesh_get_filter_walkable_low_height_spans ::\n                                                        MethodBind\nbindNavigationMesh_get_filter_walkable_low_height_spans\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_filter_walkable_low_height_spans\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_filter_walkable_low_height_spans ::\n                                       (NavigationMesh :< cls, Object :< cls) => cls -> IO Bool\nget_filter_walkable_low_height_spans cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNavigationMesh_get_filter_walkable_low_height_spans\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh\n           \"get_filter_walkable_low_height_spans\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.NavigationMesh.get_filter_walkable_low_height_spans\n\n{-# NOINLINE bindNavigationMesh_get_parsed_geometry_type #-}\n\nbindNavigationMesh_get_parsed_geometry_type :: MethodBind\nbindNavigationMesh_get_parsed_geometry_type\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_parsed_geometry_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_parsed_geometry_type ::\n                           (NavigationMesh :< cls, Object :< cls) => cls -> IO Int\nget_parsed_geometry_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_parsed_geometry_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_parsed_geometry_type\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_parsed_geometry_type\n\n{-# NOINLINE bindNavigationMesh_get_polygon #-}\n\nbindNavigationMesh_get_polygon :: MethodBind\nbindNavigationMesh_get_polygon\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_polygon ::\n              (NavigationMesh :< cls, Object :< cls) =>\n              cls -> Int -> IO PoolIntArray\nget_polygon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_polygon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_polygon\" '[Int]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_polygon\n\n{-# NOINLINE bindNavigationMesh_get_polygon_count #-}\n\nbindNavigationMesh_get_polygon_count :: MethodBind\nbindNavigationMesh_get_polygon_count\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_polygon_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_polygon_count ::\n                    (NavigationMesh :< cls, Object :< cls) => cls -> IO Int\nget_polygon_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_polygon_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_polygon_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_polygon_count\n\n{-# NOINLINE bindNavigationMesh_get_region_merge_size #-}\n\nbindNavigationMesh_get_region_merge_size :: MethodBind\nbindNavigationMesh_get_region_merge_size\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_region_merge_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_region_merge_size ::\n                        (NavigationMesh :< cls, Object :< cls) => cls -> IO Float\nget_region_merge_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_region_merge_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_region_merge_size\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_region_merge_size\n\n{-# NOINLINE bindNavigationMesh_get_region_min_size #-}\n\nbindNavigationMesh_get_region_min_size :: MethodBind\nbindNavigationMesh_get_region_min_size\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_region_min_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_region_min_size ::\n                      (NavigationMesh :< cls, Object :< cls) => cls -> IO Float\nget_region_min_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_region_min_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_region_min_size\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_region_min_size\n\n{-# NOINLINE bindNavigationMesh_get_sample_partition_type #-}\n\nbindNavigationMesh_get_sample_partition_type :: MethodBind\nbindNavigationMesh_get_sample_partition_type\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_sample_partition_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_sample_partition_type ::\n                            (NavigationMesh :< cls, Object :< cls) => cls -> IO Int\nget_sample_partition_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_sample_partition_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_sample_partition_type\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_sample_partition_type\n\n{-# NOINLINE bindNavigationMesh_get_source_geometry_mode #-}\n\nbindNavigationMesh_get_source_geometry_mode :: MethodBind\nbindNavigationMesh_get_source_geometry_mode\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_source_geometry_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_source_geometry_mode ::\n                           (NavigationMesh :< cls, Object :< cls) => cls -> IO Int\nget_source_geometry_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_source_geometry_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_source_geometry_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_source_geometry_mode\n\n{-# NOINLINE bindNavigationMesh_get_source_group_name #-}\n\nbindNavigationMesh_get_source_group_name :: MethodBind\nbindNavigationMesh_get_source_group_name\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_source_group_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_source_group_name ::\n                        (NavigationMesh :< cls, Object :< cls) => cls -> IO GodotString\nget_source_group_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_source_group_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_source_group_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_source_group_name\n\n{-# NOINLINE bindNavigationMesh_get_vertices #-}\n\nbindNavigationMesh_get_vertices :: MethodBind\nbindNavigationMesh_get_vertices\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_vertices\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_vertices ::\n               (NavigationMesh :< cls, Object :< cls) =>\n               cls -> IO PoolVector3Array\nget_vertices cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_vertices (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_vertices\" '[]\n           (IO PoolVector3Array)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_vertices\n\n{-# NOINLINE bindNavigationMesh_get_verts_per_poly #-}\n\nbindNavigationMesh_get_verts_per_poly :: MethodBind\nbindNavigationMesh_get_verts_per_poly\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_verts_per_poly\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_verts_per_poly ::\n                     (NavigationMesh :< cls, Object :< cls) => cls -> IO Float\nget_verts_per_poly cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_get_verts_per_poly\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"get_verts_per_poly\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.NavigationMesh.get_verts_per_poly\n\n{-# NOINLINE bindNavigationMesh_set_agent_height #-}\n\nbindNavigationMesh_set_agent_height :: MethodBind\nbindNavigationMesh_set_agent_height\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_agent_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_agent_height ::\n                   (NavigationMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_agent_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_agent_height\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_agent_height\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_agent_height\n\n{-# NOINLINE bindNavigationMesh_set_agent_max_climb #-}\n\nbindNavigationMesh_set_agent_max_climb :: MethodBind\nbindNavigationMesh_set_agent_max_climb\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_agent_max_climb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_agent_max_climb ::\n                      (NavigationMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_agent_max_climb cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_agent_max_climb\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_agent_max_climb\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_agent_max_climb\n\n{-# NOINLINE bindNavigationMesh_set_agent_max_slope #-}\n\nbindNavigationMesh_set_agent_max_slope :: MethodBind\nbindNavigationMesh_set_agent_max_slope\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_agent_max_slope\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_agent_max_slope ::\n                      (NavigationMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_agent_max_slope cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_agent_max_slope\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_agent_max_slope\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_agent_max_slope\n\n{-# NOINLINE bindNavigationMesh_set_agent_radius #-}\n\nbindNavigationMesh_set_agent_radius :: MethodBind\nbindNavigationMesh_set_agent_radius\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_agent_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_agent_radius ::\n                   (NavigationMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_agent_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_agent_radius\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_agent_radius\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_agent_radius\n\n{-# NOINLINE bindNavigationMesh_set_cell_height #-}\n\nbindNavigationMesh_set_cell_height :: MethodBind\nbindNavigationMesh_set_cell_height\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_cell_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_cell_height ::\n                  (NavigationMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_cell_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_cell_height\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_cell_height\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_cell_height\n\n{-# NOINLINE bindNavigationMesh_set_cell_size #-}\n\nbindNavigationMesh_set_cell_size :: MethodBind\nbindNavigationMesh_set_cell_size\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_cell_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_cell_size ::\n                (NavigationMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_cell_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_cell_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_cell_size\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_cell_size\n\n{-# NOINLINE bindNavigationMesh_set_collision_mask #-}\n\nbindNavigationMesh_set_collision_mask :: MethodBind\nbindNavigationMesh_set_collision_mask\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_collision_mask ::\n                     (NavigationMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_collision_mask\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_collision_mask\n\n{-# NOINLINE bindNavigationMesh_set_collision_mask_bit #-}\n\nbindNavigationMesh_set_collision_mask_bit :: MethodBind\nbindNavigationMesh_set_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_collision_mask_bit ::\n                         (NavigationMesh :< cls, Object :< cls) =>\n                         cls -> Int -> Bool -> IO ()\nset_collision_mask_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_collision_mask_bit\"\n           '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_collision_mask_bit\n\n{-# NOINLINE bindNavigationMesh_set_detail_sample_distance #-}\n\nbindNavigationMesh_set_detail_sample_distance :: MethodBind\nbindNavigationMesh_set_detail_sample_distance\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_detail_sample_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_detail_sample_distance ::\n                             (NavigationMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_detail_sample_distance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNavigationMesh_set_detail_sample_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_detail_sample_distance\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_detail_sample_distance\n\n{-# NOINLINE bindNavigationMesh_set_detail_sample_max_error #-}\n\nbindNavigationMesh_set_detail_sample_max_error :: MethodBind\nbindNavigationMesh_set_detail_sample_max_error\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_detail_sample_max_error\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_detail_sample_max_error ::\n                              (NavigationMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_detail_sample_max_error cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNavigationMesh_set_detail_sample_max_error\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_detail_sample_max_error\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_detail_sample_max_error\n\n{-# NOINLINE bindNavigationMesh_set_edge_max_error #-}\n\nbindNavigationMesh_set_edge_max_error :: MethodBind\nbindNavigationMesh_set_edge_max_error\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_edge_max_error\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_edge_max_error ::\n                     (NavigationMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_edge_max_error cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_edge_max_error\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_edge_max_error\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_edge_max_error\n\n{-# NOINLINE bindNavigationMesh_set_edge_max_length #-}\n\nbindNavigationMesh_set_edge_max_length :: MethodBind\nbindNavigationMesh_set_edge_max_length\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_edge_max_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_edge_max_length ::\n                      (NavigationMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_edge_max_length cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_edge_max_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_edge_max_length\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_edge_max_length\n\n{-# NOINLINE bindNavigationMesh_set_filter_ledge_spans #-}\n\nbindNavigationMesh_set_filter_ledge_spans :: MethodBind\nbindNavigationMesh_set_filter_ledge_spans\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_filter_ledge_spans\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_filter_ledge_spans ::\n                         (NavigationMesh :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_filter_ledge_spans cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_filter_ledge_spans\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_filter_ledge_spans\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_filter_ledge_spans\n\n{-# NOINLINE bindNavigationMesh_set_filter_low_hanging_obstacles\n             #-}\n\nbindNavigationMesh_set_filter_low_hanging_obstacles :: MethodBind\nbindNavigationMesh_set_filter_low_hanging_obstacles\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_filter_low_hanging_obstacles\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_filter_low_hanging_obstacles ::\n                                   (NavigationMesh :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_filter_low_hanging_obstacles cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNavigationMesh_set_filter_low_hanging_obstacles\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh\n           \"set_filter_low_hanging_obstacles\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.NavigationMesh.set_filter_low_hanging_obstacles\n\n{-# NOINLINE bindNavigationMesh_set_filter_walkable_low_height_spans\n             #-}\n\nbindNavigationMesh_set_filter_walkable_low_height_spans ::\n                                                        MethodBind\nbindNavigationMesh_set_filter_walkable_low_height_spans\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_filter_walkable_low_height_spans\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_filter_walkable_low_height_spans ::\n                                       (NavigationMesh :< cls, Object :< cls) =>\n                                       cls -> Bool -> IO ()\nset_filter_walkable_low_height_spans cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNavigationMesh_set_filter_walkable_low_height_spans\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh\n           \"set_filter_walkable_low_height_spans\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.NavigationMesh.set_filter_walkable_low_height_spans\n\n{-# NOINLINE bindNavigationMesh_set_parsed_geometry_type #-}\n\nbindNavigationMesh_set_parsed_geometry_type :: MethodBind\nbindNavigationMesh_set_parsed_geometry_type\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_parsed_geometry_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_parsed_geometry_type ::\n                           (NavigationMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_parsed_geometry_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_parsed_geometry_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_parsed_geometry_type\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_parsed_geometry_type\n\n{-# NOINLINE bindNavigationMesh_set_region_merge_size #-}\n\nbindNavigationMesh_set_region_merge_size :: MethodBind\nbindNavigationMesh_set_region_merge_size\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_region_merge_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_region_merge_size ::\n                        (NavigationMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_region_merge_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_region_merge_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_region_merge_size\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_region_merge_size\n\n{-# NOINLINE bindNavigationMesh_set_region_min_size #-}\n\nbindNavigationMesh_set_region_min_size :: MethodBind\nbindNavigationMesh_set_region_min_size\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_region_min_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_region_min_size ::\n                      (NavigationMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_region_min_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_region_min_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_region_min_size\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_region_min_size\n\n{-# NOINLINE bindNavigationMesh_set_sample_partition_type #-}\n\nbindNavigationMesh_set_sample_partition_type :: MethodBind\nbindNavigationMesh_set_sample_partition_type\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_sample_partition_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_sample_partition_type ::\n                            (NavigationMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_sample_partition_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_sample_partition_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_sample_partition_type\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_sample_partition_type\n\n{-# NOINLINE bindNavigationMesh_set_source_geometry_mode #-}\n\nbindNavigationMesh_set_source_geometry_mode :: MethodBind\nbindNavigationMesh_set_source_geometry_mode\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_source_geometry_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_source_geometry_mode ::\n                           (NavigationMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_source_geometry_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_source_geometry_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_source_geometry_mode\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_source_geometry_mode\n\n{-# NOINLINE bindNavigationMesh_set_source_group_name #-}\n\nbindNavigationMesh_set_source_group_name :: MethodBind\nbindNavigationMesh_set_source_group_name\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_source_group_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_source_group_name ::\n                        (NavigationMesh :< cls, Object :< cls) =>\n                        cls -> GodotString -> IO ()\nset_source_group_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_source_group_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_source_group_name\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_source_group_name\n\n{-# NOINLINE bindNavigationMesh_set_vertices #-}\n\nbindNavigationMesh_set_vertices :: MethodBind\nbindNavigationMesh_set_vertices\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_vertices\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_vertices ::\n               (NavigationMesh :< cls, Object :< cls) =>\n               cls -> PoolVector3Array -> IO ()\nset_vertices cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_vertices (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_vertices\"\n           '[PoolVector3Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_vertices\n\n{-# NOINLINE bindNavigationMesh_set_verts_per_poly #-}\n\nbindNavigationMesh_set_verts_per_poly :: MethodBind\nbindNavigationMesh_set_verts_per_poly\n  = unsafePerformIO $\n      withCString \"NavigationMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_verts_per_poly\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_verts_per_poly ::\n                     (NavigationMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_verts_per_poly cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMesh_set_verts_per_poly\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMesh \"set_verts_per_poly\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMesh.set_verts_per_poly"
  },
  {
    "path": "src/Godot/Core/NavigationMeshInstance.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.NavigationMeshInstance\n       (Godot.Core.NavigationMeshInstance.get_navigation_mesh,\n        Godot.Core.NavigationMeshInstance.is_enabled,\n        Godot.Core.NavigationMeshInstance.set_enabled,\n        Godot.Core.NavigationMeshInstance.set_navigation_mesh)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\ninstance NodeProperty NavigationMeshInstance \"enabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_enabled, wrapDroppingSetter set_enabled, Nothing)\n\ninstance NodeProperty NavigationMeshInstance \"navmesh\"\n           NavigationMesh\n           'False\n         where\n        nodeProperty\n          = (get_navigation_mesh, wrapDroppingSetter set_navigation_mesh,\n             Nothing)\n\n{-# NOINLINE bindNavigationMeshInstance_get_navigation_mesh #-}\n\nbindNavigationMeshInstance_get_navigation_mesh :: MethodBind\nbindNavigationMeshInstance_get_navigation_mesh\n  = unsafePerformIO $\n      withCString \"NavigationMeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_navigation_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_navigation_mesh ::\n                      (NavigationMeshInstance :< cls, Object :< cls) =>\n                      cls -> IO NavigationMesh\nget_navigation_mesh cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNavigationMeshInstance_get_navigation_mesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMeshInstance \"get_navigation_mesh\"\n           '[]\n           (IO NavigationMesh)\n         where\n        nodeMethod = Godot.Core.NavigationMeshInstance.get_navigation_mesh\n\n{-# NOINLINE bindNavigationMeshInstance_is_enabled #-}\n\nbindNavigationMeshInstance_is_enabled :: MethodBind\nbindNavigationMeshInstance_is_enabled\n  = unsafePerformIO $\n      withCString \"NavigationMeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"is_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_enabled ::\n             (NavigationMeshInstance :< cls, Object :< cls) => cls -> IO Bool\nis_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMeshInstance_is_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMeshInstance \"is_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.NavigationMeshInstance.is_enabled\n\n{-# NOINLINE bindNavigationMeshInstance_set_enabled #-}\n\nbindNavigationMeshInstance_set_enabled :: MethodBind\nbindNavigationMeshInstance_set_enabled\n  = unsafePerformIO $\n      withCString \"NavigationMeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_enabled ::\n              (NavigationMeshInstance :< cls, Object :< cls) =>\n              cls -> Bool -> IO ()\nset_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationMeshInstance_set_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMeshInstance \"set_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMeshInstance.set_enabled\n\n{-# NOINLINE bindNavigationMeshInstance_set_navigation_mesh #-}\n\nbindNavigationMeshInstance_set_navigation_mesh :: MethodBind\nbindNavigationMeshInstance_set_navigation_mesh\n  = unsafePerformIO $\n      withCString \"NavigationMeshInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_navigation_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_navigation_mesh ::\n                      (NavigationMeshInstance :< cls, Object :< cls) =>\n                      cls -> NavigationMesh -> IO ()\nset_navigation_mesh cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNavigationMeshInstance_set_navigation_mesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationMeshInstance \"set_navigation_mesh\"\n           '[NavigationMesh]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationMeshInstance.set_navigation_mesh"
  },
  {
    "path": "src/Godot/Core/NavigationPolygon.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.NavigationPolygon\n       (Godot.Core.NavigationPolygon._get_outlines,\n        Godot.Core.NavigationPolygon._get_polygons,\n        Godot.Core.NavigationPolygon._set_outlines,\n        Godot.Core.NavigationPolygon._set_polygons,\n        Godot.Core.NavigationPolygon.add_outline,\n        Godot.Core.NavigationPolygon.add_outline_at_index,\n        Godot.Core.NavigationPolygon.add_polygon,\n        Godot.Core.NavigationPolygon.clear_outlines,\n        Godot.Core.NavigationPolygon.clear_polygons,\n        Godot.Core.NavigationPolygon.get_outline,\n        Godot.Core.NavigationPolygon.get_outline_count,\n        Godot.Core.NavigationPolygon.get_polygon,\n        Godot.Core.NavigationPolygon.get_polygon_count,\n        Godot.Core.NavigationPolygon.get_vertices,\n        Godot.Core.NavigationPolygon.make_polygons_from_outlines,\n        Godot.Core.NavigationPolygon.remove_outline,\n        Godot.Core.NavigationPolygon.set_outline,\n        Godot.Core.NavigationPolygon.set_vertices)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty NavigationPolygon \"outlines\" Array 'False\n         where\n        nodeProperty\n          = (_get_outlines, wrapDroppingSetter _set_outlines, Nothing)\n\ninstance NodeProperty NavigationPolygon \"polygons\" Array 'False\n         where\n        nodeProperty\n          = (_get_polygons, wrapDroppingSetter _set_polygons, Nothing)\n\ninstance NodeProperty NavigationPolygon \"vertices\" PoolVector2Array\n           'False\n         where\n        nodeProperty\n          = (get_vertices, wrapDroppingSetter set_vertices, Nothing)\n\n{-# NOINLINE bindNavigationPolygon__get_outlines #-}\n\nbindNavigationPolygon__get_outlines :: MethodBind\nbindNavigationPolygon__get_outlines\n  = unsafePerformIO $\n      withCString \"NavigationPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"_get_outlines\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_outlines ::\n                (NavigationPolygon :< cls, Object :< cls) => cls -> IO Array\n_get_outlines cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygon__get_outlines\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygon \"_get_outlines\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.NavigationPolygon._get_outlines\n\n{-# NOINLINE bindNavigationPolygon__get_polygons #-}\n\nbindNavigationPolygon__get_polygons :: MethodBind\nbindNavigationPolygon__get_polygons\n  = unsafePerformIO $\n      withCString \"NavigationPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"_get_polygons\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_polygons ::\n                (NavigationPolygon :< cls, Object :< cls) => cls -> IO Array\n_get_polygons cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygon__get_polygons\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygon \"_get_polygons\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.NavigationPolygon._get_polygons\n\n{-# NOINLINE bindNavigationPolygon__set_outlines #-}\n\nbindNavigationPolygon__set_outlines :: MethodBind\nbindNavigationPolygon__set_outlines\n  = unsafePerformIO $\n      withCString \"NavigationPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"_set_outlines\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_outlines ::\n                (NavigationPolygon :< cls, Object :< cls) => cls -> Array -> IO ()\n_set_outlines cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygon__set_outlines\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygon \"_set_outlines\" '[Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationPolygon._set_outlines\n\n{-# NOINLINE bindNavigationPolygon__set_polygons #-}\n\nbindNavigationPolygon__set_polygons :: MethodBind\nbindNavigationPolygon__set_polygons\n  = unsafePerformIO $\n      withCString \"NavigationPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"_set_polygons\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_polygons ::\n                (NavigationPolygon :< cls, Object :< cls) => cls -> Array -> IO ()\n_set_polygons cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygon__set_polygons\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygon \"_set_polygons\" '[Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationPolygon._set_polygons\n\n{-# NOINLINE bindNavigationPolygon_add_outline #-}\n\n-- | Appends a @PoolVector2Array@ that contains the vertices of an outline to the internal array that contains all the outlines. You have to call @method make_polygons_from_outlines@ in order for this array to be converted to polygons that the engine will use.\nbindNavigationPolygon_add_outline :: MethodBind\nbindNavigationPolygon_add_outline\n  = unsafePerformIO $\n      withCString \"NavigationPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"add_outline\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Appends a @PoolVector2Array@ that contains the vertices of an outline to the internal array that contains all the outlines. You have to call @method make_polygons_from_outlines@ in order for this array to be converted to polygons that the engine will use.\nadd_outline ::\n              (NavigationPolygon :< cls, Object :< cls) =>\n              cls -> PoolVector2Array -> IO ()\nadd_outline cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygon_add_outline\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygon \"add_outline\"\n           '[PoolVector2Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationPolygon.add_outline\n\n{-# NOINLINE bindNavigationPolygon_add_outline_at_index #-}\n\n-- | Adds a @PoolVector2Array@ that contains the vertices of an outline to the internal array that contains all the outlines at a fixed position. You have to call @method make_polygons_from_outlines@ in order for this array to be converted to polygons that the engine will use.\nbindNavigationPolygon_add_outline_at_index :: MethodBind\nbindNavigationPolygon_add_outline_at_index\n  = unsafePerformIO $\n      withCString \"NavigationPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"add_outline_at_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @PoolVector2Array@ that contains the vertices of an outline to the internal array that contains all the outlines at a fixed position. You have to call @method make_polygons_from_outlines@ in order for this array to be converted to polygons that the engine will use.\nadd_outline_at_index ::\n                       (NavigationPolygon :< cls, Object :< cls) =>\n                       cls -> PoolVector2Array -> Int -> IO ()\nadd_outline_at_index cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygon_add_outline_at_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygon \"add_outline_at_index\"\n           '[PoolVector2Array, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationPolygon.add_outline_at_index\n\n{-# NOINLINE bindNavigationPolygon_add_polygon #-}\n\n-- | Adds a polygon using the indices of the vertices you get when calling @method get_vertices@.\nbindNavigationPolygon_add_polygon :: MethodBind\nbindNavigationPolygon_add_polygon\n  = unsafePerformIO $\n      withCString \"NavigationPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"add_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a polygon using the indices of the vertices you get when calling @method get_vertices@.\nadd_polygon ::\n              (NavigationPolygon :< cls, Object :< cls) =>\n              cls -> PoolIntArray -> IO ()\nadd_polygon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygon_add_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygon \"add_polygon\" '[PoolIntArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationPolygon.add_polygon\n\n{-# NOINLINE bindNavigationPolygon_clear_outlines #-}\n\n-- | Clears the array of the outlines, but it doesn't clear the vertices and the polygons that were created by them.\nbindNavigationPolygon_clear_outlines :: MethodBind\nbindNavigationPolygon_clear_outlines\n  = unsafePerformIO $\n      withCString \"NavigationPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"clear_outlines\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears the array of the outlines, but it doesn't clear the vertices and the polygons that were created by them.\nclear_outlines ::\n                 (NavigationPolygon :< cls, Object :< cls) => cls -> IO ()\nclear_outlines cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygon_clear_outlines\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygon \"clear_outlines\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationPolygon.clear_outlines\n\n{-# NOINLINE bindNavigationPolygon_clear_polygons #-}\n\n-- | Clears the array of polygons, but it doesn't clear the array of outlines and vertices.\nbindNavigationPolygon_clear_polygons :: MethodBind\nbindNavigationPolygon_clear_polygons\n  = unsafePerformIO $\n      withCString \"NavigationPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"clear_polygons\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears the array of polygons, but it doesn't clear the array of outlines and vertices.\nclear_polygons ::\n                 (NavigationPolygon :< cls, Object :< cls) => cls -> IO ()\nclear_polygons cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygon_clear_polygons\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygon \"clear_polygons\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationPolygon.clear_polygons\n\n{-# NOINLINE bindNavigationPolygon_get_outline #-}\n\n-- | Returns a @PoolVector2Array@ containing the vertices of an outline that was created in the editor or by script.\nbindNavigationPolygon_get_outline :: MethodBind\nbindNavigationPolygon_get_outline\n  = unsafePerformIO $\n      withCString \"NavigationPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"get_outline\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @PoolVector2Array@ containing the vertices of an outline that was created in the editor or by script.\nget_outline ::\n              (NavigationPolygon :< cls, Object :< cls) =>\n              cls -> Int -> IO PoolVector2Array\nget_outline cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygon_get_outline\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygon \"get_outline\" '[Int]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.NavigationPolygon.get_outline\n\n{-# NOINLINE bindNavigationPolygon_get_outline_count #-}\n\n-- | Returns the number of outlines that were created in the editor or by script.\nbindNavigationPolygon_get_outline_count :: MethodBind\nbindNavigationPolygon_get_outline_count\n  = unsafePerformIO $\n      withCString \"NavigationPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"get_outline_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of outlines that were created in the editor or by script.\nget_outline_count ::\n                    (NavigationPolygon :< cls, Object :< cls) => cls -> IO Int\nget_outline_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygon_get_outline_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygon \"get_outline_count\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.NavigationPolygon.get_outline_count\n\n{-# NOINLINE bindNavigationPolygon_get_polygon #-}\n\n-- | Returns a @PoolIntArray@ containing the indices of the vertices of a created polygon.\nbindNavigationPolygon_get_polygon :: MethodBind\nbindNavigationPolygon_get_polygon\n  = unsafePerformIO $\n      withCString \"NavigationPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"get_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @PoolIntArray@ containing the indices of the vertices of a created polygon.\nget_polygon ::\n              (NavigationPolygon :< cls, Object :< cls) =>\n              cls -> Int -> IO PoolIntArray\nget_polygon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygon_get_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygon \"get_polygon\" '[Int]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.NavigationPolygon.get_polygon\n\n{-# NOINLINE bindNavigationPolygon_get_polygon_count #-}\n\n-- | Returns the count of all polygons.\nbindNavigationPolygon_get_polygon_count :: MethodBind\nbindNavigationPolygon_get_polygon_count\n  = unsafePerformIO $\n      withCString \"NavigationPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"get_polygon_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the count of all polygons.\nget_polygon_count ::\n                    (NavigationPolygon :< cls, Object :< cls) => cls -> IO Int\nget_polygon_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygon_get_polygon_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygon \"get_polygon_count\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.NavigationPolygon.get_polygon_count\n\n{-# NOINLINE bindNavigationPolygon_get_vertices #-}\n\n-- | Returns a @PoolVector2Array@ containing all the vertices being used to create the polygons.\nbindNavigationPolygon_get_vertices :: MethodBind\nbindNavigationPolygon_get_vertices\n  = unsafePerformIO $\n      withCString \"NavigationPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"get_vertices\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @PoolVector2Array@ containing all the vertices being used to create the polygons.\nget_vertices ::\n               (NavigationPolygon :< cls, Object :< cls) =>\n               cls -> IO PoolVector2Array\nget_vertices cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygon_get_vertices\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygon \"get_vertices\" '[]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.NavigationPolygon.get_vertices\n\n{-# NOINLINE bindNavigationPolygon_make_polygons_from_outlines #-}\n\n-- | Creates polygons from the outlines added in the editor or by script.\nbindNavigationPolygon_make_polygons_from_outlines :: MethodBind\nbindNavigationPolygon_make_polygons_from_outlines\n  = unsafePerformIO $\n      withCString \"NavigationPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"make_polygons_from_outlines\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates polygons from the outlines added in the editor or by script.\nmake_polygons_from_outlines ::\n                              (NavigationPolygon :< cls, Object :< cls) => cls -> IO ()\nmake_polygons_from_outlines cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNavigationPolygon_make_polygons_from_outlines\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygon \"make_polygons_from_outlines\"\n           '[]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.NavigationPolygon.make_polygons_from_outlines\n\n{-# NOINLINE bindNavigationPolygon_remove_outline #-}\n\n-- | Removes an outline created in the editor or by script. You have to call @method make_polygons_from_outlines@ for the polygons to update.\nbindNavigationPolygon_remove_outline :: MethodBind\nbindNavigationPolygon_remove_outline\n  = unsafePerformIO $\n      withCString \"NavigationPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"remove_outline\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes an outline created in the editor or by script. You have to call @method make_polygons_from_outlines@ for the polygons to update.\nremove_outline ::\n                 (NavigationPolygon :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_outline cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygon_remove_outline\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygon \"remove_outline\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationPolygon.remove_outline\n\n{-# NOINLINE bindNavigationPolygon_set_outline #-}\n\n-- | Changes an outline created in the editor or by script. You have to call @method make_polygons_from_outlines@ for the polygons to update.\nbindNavigationPolygon_set_outline :: MethodBind\nbindNavigationPolygon_set_outline\n  = unsafePerformIO $\n      withCString \"NavigationPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"set_outline\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes an outline created in the editor or by script. You have to call @method make_polygons_from_outlines@ for the polygons to update.\nset_outline ::\n              (NavigationPolygon :< cls, Object :< cls) =>\n              cls -> Int -> PoolVector2Array -> IO ()\nset_outline cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygon_set_outline\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygon \"set_outline\"\n           '[Int, PoolVector2Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationPolygon.set_outline\n\n{-# NOINLINE bindNavigationPolygon_set_vertices #-}\n\n-- | Sets the vertices that can be then indexed to create polygons with the @method add_polygon@ method.\nbindNavigationPolygon_set_vertices :: MethodBind\nbindNavigationPolygon_set_vertices\n  = unsafePerformIO $\n      withCString \"NavigationPolygon\" $\n        \\ clsNamePtr ->\n          withCString \"set_vertices\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the vertices that can be then indexed to create polygons with the @method add_polygon@ method.\nset_vertices ::\n               (NavigationPolygon :< cls, Object :< cls) =>\n               cls -> PoolVector2Array -> IO ()\nset_vertices cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygon_set_vertices\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygon \"set_vertices\"\n           '[PoolVector2Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationPolygon.set_vertices"
  },
  {
    "path": "src/Godot/Core/NavigationPolygonInstance.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.NavigationPolygonInstance\n       (Godot.Core.NavigationPolygonInstance._navpoly_changed,\n        Godot.Core.NavigationPolygonInstance.get_navigation_polygon,\n        Godot.Core.NavigationPolygonInstance.is_enabled,\n        Godot.Core.NavigationPolygonInstance.set_enabled,\n        Godot.Core.NavigationPolygonInstance.set_navigation_polygon)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\ninstance NodeProperty NavigationPolygonInstance \"enabled\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_enabled, wrapDroppingSetter set_enabled, Nothing)\n\ninstance NodeProperty NavigationPolygonInstance \"navpoly\"\n           NavigationPolygon\n           'False\n         where\n        nodeProperty\n          = (get_navigation_polygon,\n             wrapDroppingSetter set_navigation_polygon, Nothing)\n\n{-# NOINLINE bindNavigationPolygonInstance__navpoly_changed #-}\n\nbindNavigationPolygonInstance__navpoly_changed :: MethodBind\nbindNavigationPolygonInstance__navpoly_changed\n  = unsafePerformIO $\n      withCString \"NavigationPolygonInstance\" $\n        \\ clsNamePtr ->\n          withCString \"_navpoly_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_navpoly_changed ::\n                   (NavigationPolygonInstance :< cls, Object :< cls) => cls -> IO ()\n_navpoly_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNavigationPolygonInstance__navpoly_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygonInstance \"_navpoly_changed\"\n           '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationPolygonInstance._navpoly_changed\n\n{-# NOINLINE bindNavigationPolygonInstance_get_navigation_polygon\n             #-}\n\nbindNavigationPolygonInstance_get_navigation_polygon :: MethodBind\nbindNavigationPolygonInstance_get_navigation_polygon\n  = unsafePerformIO $\n      withCString \"NavigationPolygonInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_navigation_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_navigation_polygon ::\n                         (NavigationPolygonInstance :< cls, Object :< cls) =>\n                         cls -> IO NavigationPolygon\nget_navigation_polygon cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNavigationPolygonInstance_get_navigation_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygonInstance\n           \"get_navigation_polygon\"\n           '[]\n           (IO NavigationPolygon)\n         where\n        nodeMethod\n          = Godot.Core.NavigationPolygonInstance.get_navigation_polygon\n\n{-# NOINLINE bindNavigationPolygonInstance_is_enabled #-}\n\nbindNavigationPolygonInstance_is_enabled :: MethodBind\nbindNavigationPolygonInstance_is_enabled\n  = unsafePerformIO $\n      withCString \"NavigationPolygonInstance\" $\n        \\ clsNamePtr ->\n          withCString \"is_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_enabled ::\n             (NavigationPolygonInstance :< cls, Object :< cls) => cls -> IO Bool\nis_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygonInstance_is_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygonInstance \"is_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.NavigationPolygonInstance.is_enabled\n\n{-# NOINLINE bindNavigationPolygonInstance_set_enabled #-}\n\nbindNavigationPolygonInstance_set_enabled :: MethodBind\nbindNavigationPolygonInstance_set_enabled\n  = unsafePerformIO $\n      withCString \"NavigationPolygonInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_enabled ::\n              (NavigationPolygonInstance :< cls, Object :< cls) =>\n              cls -> Bool -> IO ()\nset_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNavigationPolygonInstance_set_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygonInstance \"set_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NavigationPolygonInstance.set_enabled\n\n{-# NOINLINE bindNavigationPolygonInstance_set_navigation_polygon\n             #-}\n\nbindNavigationPolygonInstance_set_navigation_polygon :: MethodBind\nbindNavigationPolygonInstance_set_navigation_polygon\n  = unsafePerformIO $\n      withCString \"NavigationPolygonInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_navigation_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_navigation_polygon ::\n                         (NavigationPolygonInstance :< cls, Object :< cls) =>\n                         cls -> NavigationPolygon -> IO ()\nset_navigation_polygon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNavigationPolygonInstance_set_navigation_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NavigationPolygonInstance\n           \"set_navigation_polygon\"\n           '[NavigationPolygon]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.NavigationPolygonInstance.set_navigation_polygon"
  },
  {
    "path": "src/Godot/Core/NetworkedMultiplayerENet.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.NetworkedMultiplayerENet\n       (Godot.Core.NetworkedMultiplayerENet._COMPRESS_NONE,\n        Godot.Core.NetworkedMultiplayerENet._COMPRESS_RANGE_CODER,\n        Godot.Core.NetworkedMultiplayerENet._COMPRESS_ZLIB,\n        Godot.Core.NetworkedMultiplayerENet._COMPRESS_FASTLZ,\n        Godot.Core.NetworkedMultiplayerENet._COMPRESS_ZSTD,\n        Godot.Core.NetworkedMultiplayerENet.close_connection,\n        Godot.Core.NetworkedMultiplayerENet.create_client,\n        Godot.Core.NetworkedMultiplayerENet.create_server,\n        Godot.Core.NetworkedMultiplayerENet.disconnect_peer,\n        Godot.Core.NetworkedMultiplayerENet.get_channel_count,\n        Godot.Core.NetworkedMultiplayerENet.get_compression_mode,\n        Godot.Core.NetworkedMultiplayerENet.get_last_packet_channel,\n        Godot.Core.NetworkedMultiplayerENet.get_packet_channel,\n        Godot.Core.NetworkedMultiplayerENet.get_peer_address,\n        Godot.Core.NetworkedMultiplayerENet.get_peer_port,\n        Godot.Core.NetworkedMultiplayerENet.get_transfer_channel,\n        Godot.Core.NetworkedMultiplayerENet.is_always_ordered,\n        Godot.Core.NetworkedMultiplayerENet.is_server_relay_enabled,\n        Godot.Core.NetworkedMultiplayerENet.set_always_ordered,\n        Godot.Core.NetworkedMultiplayerENet.set_bind_ip,\n        Godot.Core.NetworkedMultiplayerENet.set_channel_count,\n        Godot.Core.NetworkedMultiplayerENet.set_compression_mode,\n        Godot.Core.NetworkedMultiplayerENet.set_server_relay_enabled,\n        Godot.Core.NetworkedMultiplayerENet.set_transfer_channel)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.NetworkedMultiplayerPeer()\n\n_COMPRESS_NONE :: Int\n_COMPRESS_NONE = 0\n\n_COMPRESS_RANGE_CODER :: Int\n_COMPRESS_RANGE_CODER = 1\n\n_COMPRESS_ZLIB :: Int\n_COMPRESS_ZLIB = 3\n\n_COMPRESS_FASTLZ :: Int\n_COMPRESS_FASTLZ = 2\n\n_COMPRESS_ZSTD :: Int\n_COMPRESS_ZSTD = 4\n\ninstance NodeProperty NetworkedMultiplayerENet \"always_ordered\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (is_always_ordered, wrapDroppingSetter set_always_ordered,\n             Nothing)\n\ninstance NodeProperty NetworkedMultiplayerENet \"channel_count\" Int\n           'False\n         where\n        nodeProperty\n          = (get_channel_count, wrapDroppingSetter set_channel_count,\n             Nothing)\n\ninstance NodeProperty NetworkedMultiplayerENet \"compression_mode\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_compression_mode, wrapDroppingSetter set_compression_mode,\n             Nothing)\n\ninstance NodeProperty NetworkedMultiplayerENet \"server_relay\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_server_relay_enabled,\n             wrapDroppingSetter set_server_relay_enabled, Nothing)\n\ninstance NodeProperty NetworkedMultiplayerENet \"transfer_channel\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_transfer_channel, wrapDroppingSetter set_transfer_channel,\n             Nothing)\n\n{-# NOINLINE bindNetworkedMultiplayerENet_close_connection #-}\n\nbindNetworkedMultiplayerENet_close_connection :: MethodBind\nbindNetworkedMultiplayerENet_close_connection\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"close_connection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nclose_connection ::\n                   (NetworkedMultiplayerENet :< cls, Object :< cls) =>\n                   cls -> Maybe Int -> IO ()\nclose_connection cls arg1\n  = withVariantArray [maybe (VariantInt (100)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerENet_close_connection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet \"close_connection\"\n           '[Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NetworkedMultiplayerENet.close_connection\n\n{-# NOINLINE bindNetworkedMultiplayerENet_create_client #-}\n\nbindNetworkedMultiplayerENet_create_client :: MethodBind\nbindNetworkedMultiplayerENet_create_client\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"create_client\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncreate_client ::\n                (NetworkedMultiplayerENet :< cls, Object :< cls) =>\n                cls ->\n                  GodotString -> Int -> Maybe Int -> Maybe Int -> Maybe Int -> IO Int\ncreate_client cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (0)) toVariant arg3,\n       maybe (VariantInt (0)) toVariant arg4,\n       maybe (VariantInt (0)) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNetworkedMultiplayerENet_create_client\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet \"create_client\"\n           '[GodotString, Int, Maybe Int, Maybe Int, Maybe Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.NetworkedMultiplayerENet.create_client\n\n{-# NOINLINE bindNetworkedMultiplayerENet_create_server #-}\n\nbindNetworkedMultiplayerENet_create_server :: MethodBind\nbindNetworkedMultiplayerENet_create_server\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"create_server\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncreate_server ::\n                (NetworkedMultiplayerENet :< cls, Object :< cls) =>\n                cls -> Int -> Maybe Int -> Maybe Int -> Maybe Int -> IO Int\ncreate_server cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (32)) toVariant arg2,\n       maybe (VariantInt (0)) toVariant arg3,\n       maybe (VariantInt (0)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNetworkedMultiplayerENet_create_server\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet \"create_server\"\n           '[Int, Maybe Int, Maybe Int, Maybe Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.NetworkedMultiplayerENet.create_server\n\n{-# NOINLINE bindNetworkedMultiplayerENet_disconnect_peer #-}\n\nbindNetworkedMultiplayerENet_disconnect_peer :: MethodBind\nbindNetworkedMultiplayerENet_disconnect_peer\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"disconnect_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ndisconnect_peer ::\n                  (NetworkedMultiplayerENet :< cls, Object :< cls) =>\n                  cls -> Int -> Maybe Bool -> IO ()\ndisconnect_peer cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNetworkedMultiplayerENet_disconnect_peer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet \"disconnect_peer\"\n           '[Int, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NetworkedMultiplayerENet.disconnect_peer\n\n{-# NOINLINE bindNetworkedMultiplayerENet_get_channel_count #-}\n\nbindNetworkedMultiplayerENet_get_channel_count :: MethodBind\nbindNetworkedMultiplayerENet_get_channel_count\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"get_channel_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_channel_count ::\n                    (NetworkedMultiplayerENet :< cls, Object :< cls) => cls -> IO Int\nget_channel_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerENet_get_channel_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet \"get_channel_count\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.NetworkedMultiplayerENet.get_channel_count\n\n{-# NOINLINE bindNetworkedMultiplayerENet_get_compression_mode #-}\n\nbindNetworkedMultiplayerENet_get_compression_mode :: MethodBind\nbindNetworkedMultiplayerENet_get_compression_mode\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"get_compression_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_compression_mode ::\n                       (NetworkedMultiplayerENet :< cls, Object :< cls) => cls -> IO Int\nget_compression_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerENet_get_compression_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet \"get_compression_mode\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.NetworkedMultiplayerENet.get_compression_mode\n\n{-# NOINLINE bindNetworkedMultiplayerENet_get_last_packet_channel\n             #-}\n\nbindNetworkedMultiplayerENet_get_last_packet_channel :: MethodBind\nbindNetworkedMultiplayerENet_get_last_packet_channel\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"get_last_packet_channel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_last_packet_channel ::\n                          (NetworkedMultiplayerENet :< cls, Object :< cls) => cls -> IO Int\nget_last_packet_channel cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerENet_get_last_packet_channel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet\n           \"get_last_packet_channel\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.NetworkedMultiplayerENet.get_last_packet_channel\n\n{-# NOINLINE bindNetworkedMultiplayerENet_get_packet_channel #-}\n\nbindNetworkedMultiplayerENet_get_packet_channel :: MethodBind\nbindNetworkedMultiplayerENet_get_packet_channel\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"get_packet_channel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_packet_channel ::\n                     (NetworkedMultiplayerENet :< cls, Object :< cls) => cls -> IO Int\nget_packet_channel cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerENet_get_packet_channel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet \"get_packet_channel\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.NetworkedMultiplayerENet.get_packet_channel\n\n{-# NOINLINE bindNetworkedMultiplayerENet_get_peer_address #-}\n\nbindNetworkedMultiplayerENet_get_peer_address :: MethodBind\nbindNetworkedMultiplayerENet_get_peer_address\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"get_peer_address\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_peer_address ::\n                   (NetworkedMultiplayerENet :< cls, Object :< cls) =>\n                   cls -> Int -> IO GodotString\nget_peer_address cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerENet_get_peer_address\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet \"get_peer_address\"\n           '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.NetworkedMultiplayerENet.get_peer_address\n\n{-# NOINLINE bindNetworkedMultiplayerENet_get_peer_port #-}\n\nbindNetworkedMultiplayerENet_get_peer_port :: MethodBind\nbindNetworkedMultiplayerENet_get_peer_port\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"get_peer_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_peer_port ::\n                (NetworkedMultiplayerENet :< cls, Object :< cls) =>\n                cls -> Int -> IO Int\nget_peer_port cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNetworkedMultiplayerENet_get_peer_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet \"get_peer_port\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.NetworkedMultiplayerENet.get_peer_port\n\n{-# NOINLINE bindNetworkedMultiplayerENet_get_transfer_channel #-}\n\nbindNetworkedMultiplayerENet_get_transfer_channel :: MethodBind\nbindNetworkedMultiplayerENet_get_transfer_channel\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"get_transfer_channel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_transfer_channel ::\n                       (NetworkedMultiplayerENet :< cls, Object :< cls) => cls -> IO Int\nget_transfer_channel cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerENet_get_transfer_channel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet \"get_transfer_channel\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.NetworkedMultiplayerENet.get_transfer_channel\n\n{-# NOINLINE bindNetworkedMultiplayerENet_is_always_ordered #-}\n\nbindNetworkedMultiplayerENet_is_always_ordered :: MethodBind\nbindNetworkedMultiplayerENet_is_always_ordered\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"is_always_ordered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_always_ordered ::\n                    (NetworkedMultiplayerENet :< cls, Object :< cls) => cls -> IO Bool\nis_always_ordered cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerENet_is_always_ordered\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet \"is_always_ordered\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.NetworkedMultiplayerENet.is_always_ordered\n\n{-# NOINLINE bindNetworkedMultiplayerENet_is_server_relay_enabled\n             #-}\n\nbindNetworkedMultiplayerENet_is_server_relay_enabled :: MethodBind\nbindNetworkedMultiplayerENet_is_server_relay_enabled\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"is_server_relay_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_server_relay_enabled ::\n                          (NetworkedMultiplayerENet :< cls, Object :< cls) => cls -> IO Bool\nis_server_relay_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerENet_is_server_relay_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet\n           \"is_server_relay_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.NetworkedMultiplayerENet.is_server_relay_enabled\n\n{-# NOINLINE bindNetworkedMultiplayerENet_set_always_ordered #-}\n\nbindNetworkedMultiplayerENet_set_always_ordered :: MethodBind\nbindNetworkedMultiplayerENet_set_always_ordered\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"set_always_ordered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_always_ordered ::\n                     (NetworkedMultiplayerENet :< cls, Object :< cls) =>\n                     cls -> Bool -> IO ()\nset_always_ordered cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerENet_set_always_ordered\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet \"set_always_ordered\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NetworkedMultiplayerENet.set_always_ordered\n\n{-# NOINLINE bindNetworkedMultiplayerENet_set_bind_ip #-}\n\nbindNetworkedMultiplayerENet_set_bind_ip :: MethodBind\nbindNetworkedMultiplayerENet_set_bind_ip\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"set_bind_ip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_bind_ip ::\n              (NetworkedMultiplayerENet :< cls, Object :< cls) =>\n              cls -> GodotString -> IO ()\nset_bind_ip cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNetworkedMultiplayerENet_set_bind_ip\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet \"set_bind_ip\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NetworkedMultiplayerENet.set_bind_ip\n\n{-# NOINLINE bindNetworkedMultiplayerENet_set_channel_count #-}\n\nbindNetworkedMultiplayerENet_set_channel_count :: MethodBind\nbindNetworkedMultiplayerENet_set_channel_count\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"set_channel_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_channel_count ::\n                    (NetworkedMultiplayerENet :< cls, Object :< cls) =>\n                    cls -> Int -> IO ()\nset_channel_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerENet_set_channel_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet \"set_channel_count\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NetworkedMultiplayerENet.set_channel_count\n\n{-# NOINLINE bindNetworkedMultiplayerENet_set_compression_mode #-}\n\nbindNetworkedMultiplayerENet_set_compression_mode :: MethodBind\nbindNetworkedMultiplayerENet_set_compression_mode\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"set_compression_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_compression_mode ::\n                       (NetworkedMultiplayerENet :< cls, Object :< cls) =>\n                       cls -> Int -> IO ()\nset_compression_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerENet_set_compression_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet \"set_compression_mode\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.NetworkedMultiplayerENet.set_compression_mode\n\n{-# NOINLINE bindNetworkedMultiplayerENet_set_server_relay_enabled\n             #-}\n\nbindNetworkedMultiplayerENet_set_server_relay_enabled :: MethodBind\nbindNetworkedMultiplayerENet_set_server_relay_enabled\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"set_server_relay_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_server_relay_enabled ::\n                           (NetworkedMultiplayerENet :< cls, Object :< cls) =>\n                           cls -> Bool -> IO ()\nset_server_relay_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerENet_set_server_relay_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet\n           \"set_server_relay_enabled\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.NetworkedMultiplayerENet.set_server_relay_enabled\n\n{-# NOINLINE bindNetworkedMultiplayerENet_set_transfer_channel #-}\n\nbindNetworkedMultiplayerENet_set_transfer_channel :: MethodBind\nbindNetworkedMultiplayerENet_set_transfer_channel\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerENet\" $\n        \\ clsNamePtr ->\n          withCString \"set_transfer_channel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_transfer_channel ::\n                       (NetworkedMultiplayerENet :< cls, Object :< cls) =>\n                       cls -> Int -> IO ()\nset_transfer_channel cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerENet_set_transfer_channel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerENet \"set_transfer_channel\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.NetworkedMultiplayerENet.set_transfer_channel"
  },
  {
    "path": "src/Godot/Core/NetworkedMultiplayerPeer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.NetworkedMultiplayerPeer\n       (Godot.Core.NetworkedMultiplayerPeer._CONNECTION_DISCONNECTED,\n        Godot.Core.NetworkedMultiplayerPeer._TRANSFER_MODE_UNRELIABLE,\n        Godot.Core.NetworkedMultiplayerPeer._CONNECTION_CONNECTED,\n        Godot.Core.NetworkedMultiplayerPeer._TARGET_PEER_SERVER,\n        Godot.Core.NetworkedMultiplayerPeer._TARGET_PEER_BROADCAST,\n        Godot.Core.NetworkedMultiplayerPeer._CONNECTION_CONNECTING,\n        Godot.Core.NetworkedMultiplayerPeer._TRANSFER_MODE_RELIABLE,\n        Godot.Core.NetworkedMultiplayerPeer._TRANSFER_MODE_UNRELIABLE_ORDERED,\n        Godot.Core.NetworkedMultiplayerPeer.sig_connection_failed,\n        Godot.Core.NetworkedMultiplayerPeer.sig_connection_succeeded,\n        Godot.Core.NetworkedMultiplayerPeer.sig_peer_connected,\n        Godot.Core.NetworkedMultiplayerPeer.sig_peer_disconnected,\n        Godot.Core.NetworkedMultiplayerPeer.sig_server_disconnected,\n        Godot.Core.NetworkedMultiplayerPeer.get_connection_status,\n        Godot.Core.NetworkedMultiplayerPeer.get_packet_peer,\n        Godot.Core.NetworkedMultiplayerPeer.get_transfer_mode,\n        Godot.Core.NetworkedMultiplayerPeer.get_unique_id,\n        Godot.Core.NetworkedMultiplayerPeer.is_refusing_new_connections,\n        Godot.Core.NetworkedMultiplayerPeer.poll,\n        Godot.Core.NetworkedMultiplayerPeer.set_refuse_new_connections,\n        Godot.Core.NetworkedMultiplayerPeer.set_target_peer,\n        Godot.Core.NetworkedMultiplayerPeer.set_transfer_mode)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PacketPeer()\n\n_CONNECTION_DISCONNECTED :: Int\n_CONNECTION_DISCONNECTED = 0\n\n_TRANSFER_MODE_UNRELIABLE :: Int\n_TRANSFER_MODE_UNRELIABLE = 0\n\n_CONNECTION_CONNECTED :: Int\n_CONNECTION_CONNECTED = 2\n\n_TARGET_PEER_SERVER :: Int\n_TARGET_PEER_SERVER = 1\n\n_TARGET_PEER_BROADCAST :: Int\n_TARGET_PEER_BROADCAST = 0\n\n_CONNECTION_CONNECTING :: Int\n_CONNECTION_CONNECTING = 1\n\n_TRANSFER_MODE_RELIABLE :: Int\n_TRANSFER_MODE_RELIABLE = 2\n\n_TRANSFER_MODE_UNRELIABLE_ORDERED :: Int\n_TRANSFER_MODE_UNRELIABLE_ORDERED = 1\n\n-- | Emitted when a connection attempt fails.\nsig_connection_failed ::\n                      Godot.Internal.Dispatch.Signal NetworkedMultiplayerPeer\nsig_connection_failed\n  = Godot.Internal.Dispatch.Signal \"connection_failed\"\n\ninstance NodeSignal NetworkedMultiplayerPeer \"connection_failed\"\n           '[]\n\n-- | Emitted when a connection attempt succeeds.\nsig_connection_succeeded ::\n                         Godot.Internal.Dispatch.Signal NetworkedMultiplayerPeer\nsig_connection_succeeded\n  = Godot.Internal.Dispatch.Signal \"connection_succeeded\"\n\ninstance NodeSignal NetworkedMultiplayerPeer \"connection_succeeded\"\n           '[]\n\n-- | Emitted by the server when a client connects.\nsig_peer_connected ::\n                   Godot.Internal.Dispatch.Signal NetworkedMultiplayerPeer\nsig_peer_connected\n  = Godot.Internal.Dispatch.Signal \"peer_connected\"\n\ninstance NodeSignal NetworkedMultiplayerPeer \"peer_connected\"\n           '[Int]\n\n-- | Emitted by the server when a client disconnects.\nsig_peer_disconnected ::\n                      Godot.Internal.Dispatch.Signal NetworkedMultiplayerPeer\nsig_peer_disconnected\n  = Godot.Internal.Dispatch.Signal \"peer_disconnected\"\n\ninstance NodeSignal NetworkedMultiplayerPeer \"peer_disconnected\"\n           '[Int]\n\n-- | Emitted by clients when the server disconnects.\nsig_server_disconnected ::\n                        Godot.Internal.Dispatch.Signal NetworkedMultiplayerPeer\nsig_server_disconnected\n  = Godot.Internal.Dispatch.Signal \"server_disconnected\"\n\ninstance NodeSignal NetworkedMultiplayerPeer \"server_disconnected\"\n           '[]\n\ninstance NodeProperty NetworkedMultiplayerPeer\n           \"refuse_new_connections\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (is_refusing_new_connections,\n             wrapDroppingSetter set_refuse_new_connections, Nothing)\n\ninstance NodeProperty NetworkedMultiplayerPeer \"transfer_mode\" Int\n           'False\n         where\n        nodeProperty\n          = (get_transfer_mode, wrapDroppingSetter set_transfer_mode,\n             Nothing)\n\n{-# NOINLINE bindNetworkedMultiplayerPeer_get_connection_status #-}\n\n-- | Returns the current state of the connection. See @enum ConnectionStatus@.\nbindNetworkedMultiplayerPeer_get_connection_status :: MethodBind\nbindNetworkedMultiplayerPeer_get_connection_status\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection_status\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current state of the connection. See @enum ConnectionStatus@.\nget_connection_status ::\n                        (NetworkedMultiplayerPeer :< cls, Object :< cls) => cls -> IO Int\nget_connection_status cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerPeer_get_connection_status\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerPeer\n           \"get_connection_status\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.NetworkedMultiplayerPeer.get_connection_status\n\n{-# NOINLINE bindNetworkedMultiplayerPeer_get_packet_peer #-}\n\n-- | Returns the ID of the @NetworkedMultiplayerPeer@ who sent the most recent packet.\nbindNetworkedMultiplayerPeer_get_packet_peer :: MethodBind\nbindNetworkedMultiplayerPeer_get_packet_peer\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_packet_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the ID of the @NetworkedMultiplayerPeer@ who sent the most recent packet.\nget_packet_peer ::\n                  (NetworkedMultiplayerPeer :< cls, Object :< cls) => cls -> IO Int\nget_packet_peer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNetworkedMultiplayerPeer_get_packet_peer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerPeer \"get_packet_peer\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.NetworkedMultiplayerPeer.get_packet_peer\n\n{-# NOINLINE bindNetworkedMultiplayerPeer_get_transfer_mode #-}\n\n-- | The manner in which to send packets to the @target_peer@. See @enum TransferMode@.\nbindNetworkedMultiplayerPeer_get_transfer_mode :: MethodBind\nbindNetworkedMultiplayerPeer_get_transfer_mode\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_transfer_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The manner in which to send packets to the @target_peer@. See @enum TransferMode@.\nget_transfer_mode ::\n                    (NetworkedMultiplayerPeer :< cls, Object :< cls) => cls -> IO Int\nget_transfer_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerPeer_get_transfer_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerPeer \"get_transfer_mode\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.NetworkedMultiplayerPeer.get_transfer_mode\n\n{-# NOINLINE bindNetworkedMultiplayerPeer_get_unique_id #-}\n\n-- | Returns the ID of this @NetworkedMultiplayerPeer@.\nbindNetworkedMultiplayerPeer_get_unique_id :: MethodBind\nbindNetworkedMultiplayerPeer_get_unique_id\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_unique_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the ID of this @NetworkedMultiplayerPeer@.\nget_unique_id ::\n                (NetworkedMultiplayerPeer :< cls, Object :< cls) => cls -> IO Int\nget_unique_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNetworkedMultiplayerPeer_get_unique_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerPeer \"get_unique_id\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.NetworkedMultiplayerPeer.get_unique_id\n\n{-# NOINLINE bindNetworkedMultiplayerPeer_is_refusing_new_connections\n             #-}\n\n-- | If @true@, this @NetworkedMultiplayerPeer@ refuses new connections.\nbindNetworkedMultiplayerPeer_is_refusing_new_connections ::\n                                                         MethodBind\nbindNetworkedMultiplayerPeer_is_refusing_new_connections\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerPeer\" $\n        \\ clsNamePtr ->\n          withCString \"is_refusing_new_connections\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this @NetworkedMultiplayerPeer@ refuses new connections.\nis_refusing_new_connections ::\n                              (NetworkedMultiplayerPeer :< cls, Object :< cls) => cls -> IO Bool\nis_refusing_new_connections cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerPeer_is_refusing_new_connections\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerPeer\n           \"is_refusing_new_connections\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.NetworkedMultiplayerPeer.is_refusing_new_connections\n\n{-# NOINLINE bindNetworkedMultiplayerPeer_poll #-}\n\n-- | Waits up to 1 second to receive a new network event.\nbindNetworkedMultiplayerPeer_poll :: MethodBind\nbindNetworkedMultiplayerPeer_poll\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerPeer\" $\n        \\ clsNamePtr ->\n          withCString \"poll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Waits up to 1 second to receive a new network event.\npoll ::\n       (NetworkedMultiplayerPeer :< cls, Object :< cls) => cls -> IO ()\npoll cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNetworkedMultiplayerPeer_poll\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerPeer \"poll\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.NetworkedMultiplayerPeer.poll\n\n{-# NOINLINE bindNetworkedMultiplayerPeer_set_refuse_new_connections\n             #-}\n\n-- | If @true@, this @NetworkedMultiplayerPeer@ refuses new connections.\nbindNetworkedMultiplayerPeer_set_refuse_new_connections ::\n                                                        MethodBind\nbindNetworkedMultiplayerPeer_set_refuse_new_connections\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerPeer\" $\n        \\ clsNamePtr ->\n          withCString \"set_refuse_new_connections\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this @NetworkedMultiplayerPeer@ refuses new connections.\nset_refuse_new_connections ::\n                             (NetworkedMultiplayerPeer :< cls, Object :< cls) =>\n                             cls -> Bool -> IO ()\nset_refuse_new_connections cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerPeer_set_refuse_new_connections\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerPeer\n           \"set_refuse_new_connections\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.NetworkedMultiplayerPeer.set_refuse_new_connections\n\n{-# NOINLINE bindNetworkedMultiplayerPeer_set_target_peer #-}\n\n-- | Sets the peer to which packets will be sent.\n--   \t\t\t\tThe @id@ can be one of: @TARGET_PEER_BROADCAST@ to send to all connected peers, @TARGET_PEER_SERVER@ to send to the peer acting as server, a valid peer ID to send to that specific peer, a negative peer ID to send to all peers except that one. By default, the target peer is @TARGET_PEER_BROADCAST@.\nbindNetworkedMultiplayerPeer_set_target_peer :: MethodBind\nbindNetworkedMultiplayerPeer_set_target_peer\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerPeer\" $\n        \\ clsNamePtr ->\n          withCString \"set_target_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the peer to which packets will be sent.\n--   \t\t\t\tThe @id@ can be one of: @TARGET_PEER_BROADCAST@ to send to all connected peers, @TARGET_PEER_SERVER@ to send to the peer acting as server, a valid peer ID to send to that specific peer, a negative peer ID to send to all peers except that one. By default, the target peer is @TARGET_PEER_BROADCAST@.\nset_target_peer ::\n                  (NetworkedMultiplayerPeer :< cls, Object :< cls) =>\n                  cls -> Int -> IO ()\nset_target_peer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNetworkedMultiplayerPeer_set_target_peer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerPeer \"set_target_peer\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NetworkedMultiplayerPeer.set_target_peer\n\n{-# NOINLINE bindNetworkedMultiplayerPeer_set_transfer_mode #-}\n\n-- | The manner in which to send packets to the @target_peer@. See @enum TransferMode@.\nbindNetworkedMultiplayerPeer_set_transfer_mode :: MethodBind\nbindNetworkedMultiplayerPeer_set_transfer_mode\n  = unsafePerformIO $\n      withCString \"NetworkedMultiplayerPeer\" $\n        \\ clsNamePtr ->\n          withCString \"set_transfer_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The manner in which to send packets to the @target_peer@. See @enum TransferMode@.\nset_transfer_mode ::\n                    (NetworkedMultiplayerPeer :< cls, Object :< cls) =>\n                    cls -> Int -> IO ()\nset_transfer_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindNetworkedMultiplayerPeer_set_transfer_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NetworkedMultiplayerPeer \"set_transfer_mode\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NetworkedMultiplayerPeer.set_transfer_mode"
  },
  {
    "path": "src/Godot/Core/NinePatchRect.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.NinePatchRect\n       (Godot.Core.NinePatchRect._AXIS_STRETCH_MODE_TILE_FIT,\n        Godot.Core.NinePatchRect._AXIS_STRETCH_MODE_TILE,\n        Godot.Core.NinePatchRect._AXIS_STRETCH_MODE_STRETCH,\n        Godot.Core.NinePatchRect.sig_texture_changed,\n        Godot.Core.NinePatchRect.get_h_axis_stretch_mode,\n        Godot.Core.NinePatchRect.get_patch_margin,\n        Godot.Core.NinePatchRect.get_region_rect,\n        Godot.Core.NinePatchRect.get_texture,\n        Godot.Core.NinePatchRect.get_v_axis_stretch_mode,\n        Godot.Core.NinePatchRect.is_draw_center_enabled,\n        Godot.Core.NinePatchRect.set_draw_center,\n        Godot.Core.NinePatchRect.set_h_axis_stretch_mode,\n        Godot.Core.NinePatchRect.set_patch_margin,\n        Godot.Core.NinePatchRect.set_region_rect,\n        Godot.Core.NinePatchRect.set_texture,\n        Godot.Core.NinePatchRect.set_v_axis_stretch_mode)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()\n\n_AXIS_STRETCH_MODE_TILE_FIT :: Int\n_AXIS_STRETCH_MODE_TILE_FIT = 2\n\n_AXIS_STRETCH_MODE_TILE :: Int\n_AXIS_STRETCH_MODE_TILE = 1\n\n_AXIS_STRETCH_MODE_STRETCH :: Int\n_AXIS_STRETCH_MODE_STRETCH = 0\n\n-- | Emitted when the node's texture changes.\nsig_texture_changed :: Godot.Internal.Dispatch.Signal NinePatchRect\nsig_texture_changed\n  = Godot.Internal.Dispatch.Signal \"texture_changed\"\n\ninstance NodeSignal NinePatchRect \"texture_changed\" '[]\n\ninstance NodeProperty NinePatchRect \"axis_stretch_horizontal\" Int\n           'False\n         where\n        nodeProperty\n          = (get_h_axis_stretch_mode,\n             wrapDroppingSetter set_h_axis_stretch_mode, Nothing)\n\ninstance NodeProperty NinePatchRect \"axis_stretch_vertical\" Int\n           'False\n         where\n        nodeProperty\n          = (get_v_axis_stretch_mode,\n             wrapDroppingSetter set_v_axis_stretch_mode, Nothing)\n\ninstance NodeProperty NinePatchRect \"draw_center\" Bool 'False where\n        nodeProperty\n          = (is_draw_center_enabled, wrapDroppingSetter set_draw_center,\n             Nothing)\n\ninstance NodeProperty NinePatchRect \"patch_margin_bottom\" Int\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_patch_margin,\n             wrapIndexedSetter 3 set_patch_margin, Nothing)\n\ninstance NodeProperty NinePatchRect \"patch_margin_left\" Int 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_patch_margin,\n             wrapIndexedSetter 0 set_patch_margin, Nothing)\n\ninstance NodeProperty NinePatchRect \"patch_margin_right\" Int 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_patch_margin,\n             wrapIndexedSetter 2 set_patch_margin, Nothing)\n\ninstance NodeProperty NinePatchRect \"patch_margin_top\" Int 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_patch_margin,\n             wrapIndexedSetter 1 set_patch_margin, Nothing)\n\ninstance NodeProperty NinePatchRect \"region_rect\" Rect2 'False\n         where\n        nodeProperty\n          = (get_region_rect, wrapDroppingSetter set_region_rect, Nothing)\n\ninstance NodeProperty NinePatchRect \"texture\" Texture 'False where\n        nodeProperty\n          = (get_texture, wrapDroppingSetter set_texture, Nothing)\n\n{-# NOINLINE bindNinePatchRect_get_h_axis_stretch_mode #-}\n\n-- | Doesn't do anything at the time of writing.\nbindNinePatchRect_get_h_axis_stretch_mode :: MethodBind\nbindNinePatchRect_get_h_axis_stretch_mode\n  = unsafePerformIO $\n      withCString \"NinePatchRect\" $\n        \\ clsNamePtr ->\n          withCString \"get_h_axis_stretch_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Doesn't do anything at the time of writing.\nget_h_axis_stretch_mode ::\n                          (NinePatchRect :< cls, Object :< cls) => cls -> IO Int\nget_h_axis_stretch_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNinePatchRect_get_h_axis_stretch_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NinePatchRect \"get_h_axis_stretch_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.NinePatchRect.get_h_axis_stretch_mode\n\n{-# NOINLINE bindNinePatchRect_get_patch_margin #-}\n\n-- | Returns the size of the margin identified by the given @enum Margin@ constant.\nbindNinePatchRect_get_patch_margin :: MethodBind\nbindNinePatchRect_get_patch_margin\n  = unsafePerformIO $\n      withCString \"NinePatchRect\" $\n        \\ clsNamePtr ->\n          withCString \"get_patch_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the size of the margin identified by the given @enum Margin@ constant.\nget_patch_margin ::\n                   (NinePatchRect :< cls, Object :< cls) => cls -> Int -> IO Int\nget_patch_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNinePatchRect_get_patch_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NinePatchRect \"get_patch_margin\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.NinePatchRect.get_patch_margin\n\n{-# NOINLINE bindNinePatchRect_get_region_rect #-}\n\n-- | Rectangular region of the texture to sample from. If you're working with an atlas, use this property to define the area the 9-slice should use. All other properties are relative to this one. If the rect is empty, NinePatchRect will use the whole texture.\nbindNinePatchRect_get_region_rect :: MethodBind\nbindNinePatchRect_get_region_rect\n  = unsafePerformIO $\n      withCString \"NinePatchRect\" $\n        \\ clsNamePtr ->\n          withCString \"get_region_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rectangular region of the texture to sample from. If you're working with an atlas, use this property to define the area the 9-slice should use. All other properties are relative to this one. If the rect is empty, NinePatchRect will use the whole texture.\nget_region_rect ::\n                  (NinePatchRect :< cls, Object :< cls) => cls -> IO Rect2\nget_region_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNinePatchRect_get_region_rect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NinePatchRect \"get_region_rect\" '[] (IO Rect2)\n         where\n        nodeMethod = Godot.Core.NinePatchRect.get_region_rect\n\n{-# NOINLINE bindNinePatchRect_get_texture #-}\n\n-- | The node's texture resource.\nbindNinePatchRect_get_texture :: MethodBind\nbindNinePatchRect_get_texture\n  = unsafePerformIO $\n      withCString \"NinePatchRect\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's texture resource.\nget_texture ::\n              (NinePatchRect :< cls, Object :< cls) => cls -> IO Texture\nget_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNinePatchRect_get_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NinePatchRect \"get_texture\" '[] (IO Texture)\n         where\n        nodeMethod = Godot.Core.NinePatchRect.get_texture\n\n{-# NOINLINE bindNinePatchRect_get_v_axis_stretch_mode #-}\n\n-- | Doesn't do anything at the time of writing.\nbindNinePatchRect_get_v_axis_stretch_mode :: MethodBind\nbindNinePatchRect_get_v_axis_stretch_mode\n  = unsafePerformIO $\n      withCString \"NinePatchRect\" $\n        \\ clsNamePtr ->\n          withCString \"get_v_axis_stretch_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Doesn't do anything at the time of writing.\nget_v_axis_stretch_mode ::\n                          (NinePatchRect :< cls, Object :< cls) => cls -> IO Int\nget_v_axis_stretch_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNinePatchRect_get_v_axis_stretch_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NinePatchRect \"get_v_axis_stretch_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.NinePatchRect.get_v_axis_stretch_mode\n\n{-# NOINLINE bindNinePatchRect_is_draw_center_enabled #-}\n\n-- | If @true@, draw the panel's center. Else, only draw the 9-slice's borders.\nbindNinePatchRect_is_draw_center_enabled :: MethodBind\nbindNinePatchRect_is_draw_center_enabled\n  = unsafePerformIO $\n      withCString \"NinePatchRect\" $\n        \\ clsNamePtr ->\n          withCString \"is_draw_center_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, draw the panel's center. Else, only draw the 9-slice's borders.\nis_draw_center_enabled ::\n                         (NinePatchRect :< cls, Object :< cls) => cls -> IO Bool\nis_draw_center_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNinePatchRect_is_draw_center_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NinePatchRect \"is_draw_center_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.NinePatchRect.is_draw_center_enabled\n\n{-# NOINLINE bindNinePatchRect_set_draw_center #-}\n\n-- | If @true@, draw the panel's center. Else, only draw the 9-slice's borders.\nbindNinePatchRect_set_draw_center :: MethodBind\nbindNinePatchRect_set_draw_center\n  = unsafePerformIO $\n      withCString \"NinePatchRect\" $\n        \\ clsNamePtr ->\n          withCString \"set_draw_center\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, draw the panel's center. Else, only draw the 9-slice's borders.\nset_draw_center ::\n                  (NinePatchRect :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_draw_center cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNinePatchRect_set_draw_center\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NinePatchRect \"set_draw_center\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.NinePatchRect.set_draw_center\n\n{-# NOINLINE bindNinePatchRect_set_h_axis_stretch_mode #-}\n\n-- | Doesn't do anything at the time of writing.\nbindNinePatchRect_set_h_axis_stretch_mode :: MethodBind\nbindNinePatchRect_set_h_axis_stretch_mode\n  = unsafePerformIO $\n      withCString \"NinePatchRect\" $\n        \\ clsNamePtr ->\n          withCString \"set_h_axis_stretch_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Doesn't do anything at the time of writing.\nset_h_axis_stretch_mode ::\n                          (NinePatchRect :< cls, Object :< cls) => cls -> Int -> IO ()\nset_h_axis_stretch_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNinePatchRect_set_h_axis_stretch_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NinePatchRect \"set_h_axis_stretch_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NinePatchRect.set_h_axis_stretch_mode\n\n{-# NOINLINE bindNinePatchRect_set_patch_margin #-}\n\n-- | Sets the size of the margin identified by the given @enum Margin@ constant to @value@ in pixels.\nbindNinePatchRect_set_patch_margin :: MethodBind\nbindNinePatchRect_set_patch_margin\n  = unsafePerformIO $\n      withCString \"NinePatchRect\" $\n        \\ clsNamePtr ->\n          withCString \"set_patch_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the size of the margin identified by the given @enum Margin@ constant to @value@ in pixels.\nset_patch_margin ::\n                   (NinePatchRect :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nset_patch_margin cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNinePatchRect_set_patch_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NinePatchRect \"set_patch_margin\" '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NinePatchRect.set_patch_margin\n\n{-# NOINLINE bindNinePatchRect_set_region_rect #-}\n\n-- | Rectangular region of the texture to sample from. If you're working with an atlas, use this property to define the area the 9-slice should use. All other properties are relative to this one. If the rect is empty, NinePatchRect will use the whole texture.\nbindNinePatchRect_set_region_rect :: MethodBind\nbindNinePatchRect_set_region_rect\n  = unsafePerformIO $\n      withCString \"NinePatchRect\" $\n        \\ clsNamePtr ->\n          withCString \"set_region_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rectangular region of the texture to sample from. If you're working with an atlas, use this property to define the area the 9-slice should use. All other properties are relative to this one. If the rect is empty, NinePatchRect will use the whole texture.\nset_region_rect ::\n                  (NinePatchRect :< cls, Object :< cls) => cls -> Rect2 -> IO ()\nset_region_rect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNinePatchRect_set_region_rect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NinePatchRect \"set_region_rect\" '[Rect2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NinePatchRect.set_region_rect\n\n{-# NOINLINE bindNinePatchRect_set_texture #-}\n\n-- | The node's texture resource.\nbindNinePatchRect_set_texture :: MethodBind\nbindNinePatchRect_set_texture\n  = unsafePerformIO $\n      withCString \"NinePatchRect\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's texture resource.\nset_texture ::\n              (NinePatchRect :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNinePatchRect_set_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NinePatchRect \"set_texture\" '[Texture] (IO ())\n         where\n        nodeMethod = Godot.Core.NinePatchRect.set_texture\n\n{-# NOINLINE bindNinePatchRect_set_v_axis_stretch_mode #-}\n\n-- | Doesn't do anything at the time of writing.\nbindNinePatchRect_set_v_axis_stretch_mode :: MethodBind\nbindNinePatchRect_set_v_axis_stretch_mode\n  = unsafePerformIO $\n      withCString \"NinePatchRect\" $\n        \\ clsNamePtr ->\n          withCString \"set_v_axis_stretch_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Doesn't do anything at the time of writing.\nset_v_axis_stretch_mode ::\n                          (NinePatchRect :< cls, Object :< cls) => cls -> Int -> IO ()\nset_v_axis_stretch_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNinePatchRect_set_v_axis_stretch_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NinePatchRect \"set_v_axis_stretch_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NinePatchRect.set_v_axis_stretch_mode"
  },
  {
    "path": "src/Godot/Core/Node.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Node\n       (Godot.Core.Node._DUPLICATE_GROUPS,\n        Godot.Core.Node._DUPLICATE_SCRIPTS,\n        Godot.Core.Node._NOTIFICATION_PAUSED,\n        Godot.Core.Node._NOTIFICATION_MOVED_IN_PARENT,\n        Godot.Core.Node._NOTIFICATION_UNPARENTED,\n        Godot.Core.Node._PAUSE_MODE_PROCESS,\n        Godot.Core.Node._NOTIFICATION_WM_ABOUT,\n        Godot.Core.Node._NOTIFICATION_DRAG_END,\n        Godot.Core.Node._NOTIFICATION_PATH_CHANGED,\n        Godot.Core.Node._NOTIFICATION_APP_PAUSED,\n        Godot.Core.Node._NOTIFICATION_PHYSICS_PROCESS,\n        Godot.Core.Node._NOTIFICATION_INTERNAL_PHYSICS_PROCESS,\n        Godot.Core.Node._NOTIFICATION_WM_GO_BACK_REQUEST,\n        Godot.Core.Node._NOTIFICATION_WM_QUIT_REQUEST,\n        Godot.Core.Node._DUPLICATE_USE_INSTANCING,\n        Godot.Core.Node._NOTIFICATION_ENTER_TREE,\n        Godot.Core.Node._NOTIFICATION_EXIT_TREE,\n        Godot.Core.Node._NOTIFICATION_WM_FOCUS_IN,\n        Godot.Core.Node._NOTIFICATION_WM_MOUSE_EXIT,\n        Godot.Core.Node._NOTIFICATION_PROCESS,\n        Godot.Core.Node._NOTIFICATION_INTERNAL_PROCESS,\n        Godot.Core.Node._PAUSE_MODE_STOP,\n        Godot.Core.Node._PAUSE_MODE_INHERIT,\n        Godot.Core.Node._NOTIFICATION_TRANSLATION_CHANGED,\n        Godot.Core.Node._NOTIFICATION_INSTANCED,\n        Godot.Core.Node._NOTIFICATION_UNPAUSED,\n        Godot.Core.Node._NOTIFICATION_PARENTED,\n        Godot.Core.Node._NOTIFICATION_WM_FOCUS_OUT,\n        Godot.Core.Node._NOTIFICATION_DRAG_BEGIN,\n        Godot.Core.Node._DUPLICATE_SIGNALS,\n        Godot.Core.Node._NOTIFICATION_OS_MEMORY_WARNING,\n        Godot.Core.Node._NOTIFICATION_WM_UNFOCUS_REQUEST,\n        Godot.Core.Node._NOTIFICATION_OS_IME_UPDATE,\n        Godot.Core.Node._NOTIFICATION_APP_RESUMED,\n        Godot.Core.Node._NOTIFICATION_READY,\n        Godot.Core.Node._NOTIFICATION_WM_MOUSE_ENTER,\n        Godot.Core.Node._NOTIFICATION_CRASH, Godot.Core.Node.sig_ready,\n        Godot.Core.Node.sig_renamed, Godot.Core.Node.sig_tree_entered,\n        Godot.Core.Node.sig_tree_exited, Godot.Core.Node.sig_tree_exiting,\n        Godot.Core.Node._enter_tree, Godot.Core.Node._exit_tree,\n        Godot.Core.Node._get_configuration_warning,\n        Godot.Core.Node._get_editor_description,\n        Godot.Core.Node._get_import_path, Godot.Core.Node._input,\n        Godot.Core.Node._physics_process, Godot.Core.Node._process,\n        Godot.Core.Node._ready, Godot.Core.Node._set_editor_description,\n        Godot.Core.Node._set_import_path, Godot.Core.Node._unhandled_input,\n        Godot.Core.Node._unhandled_key_input, Godot.Core.Node.add_child,\n        Godot.Core.Node.add_child_below_node, Godot.Core.Node.add_to_group,\n        Godot.Core.Node.can_process, Godot.Core.Node.duplicate,\n        Godot.Core.Node.find_node, Godot.Core.Node.find_parent,\n        Godot.Core.Node.get_child, Godot.Core.Node.get_child_count,\n        Godot.Core.Node.get_children,\n        Godot.Core.Node.get_custom_multiplayer,\n        Godot.Core.Node.get_filename, Godot.Core.Node.get_groups,\n        Godot.Core.Node.get_index, Godot.Core.Node.get_multiplayer,\n        Godot.Core.Node.get_name, Godot.Core.Node.get_network_master,\n        Godot.Core.Node.get_node, Godot.Core.Node.get_node_and_resource,\n        Godot.Core.Node.get_node_or_null, Godot.Core.Node.get_owner,\n        Godot.Core.Node.get_parent, Godot.Core.Node.get_path,\n        Godot.Core.Node.get_path_to, Godot.Core.Node.get_pause_mode,\n        Godot.Core.Node.get_physics_process_delta_time,\n        Godot.Core.Node.get_position_in_parent,\n        Godot.Core.Node.get_process_delta_time,\n        Godot.Core.Node.get_process_priority,\n        Godot.Core.Node.get_scene_instance_load_placeholder,\n        Godot.Core.Node.get_tree, Godot.Core.Node.get_viewport,\n        Godot.Core.Node.has_node, Godot.Core.Node.has_node_and_resource,\n        Godot.Core.Node.is_a_parent_of,\n        Godot.Core.Node.is_displayed_folded,\n        Godot.Core.Node.is_greater_than, Godot.Core.Node.is_in_group,\n        Godot.Core.Node.is_inside_tree, Godot.Core.Node.is_network_master,\n        Godot.Core.Node.is_physics_processing,\n        Godot.Core.Node.is_physics_processing_internal,\n        Godot.Core.Node.is_processing, Godot.Core.Node.is_processing_input,\n        Godot.Core.Node.is_processing_internal,\n        Godot.Core.Node.is_processing_unhandled_input,\n        Godot.Core.Node.is_processing_unhandled_key_input,\n        Godot.Core.Node.move_child, Godot.Core.Node.print_stray_nodes,\n        Godot.Core.Node.print_tree, Godot.Core.Node.print_tree_pretty,\n        Godot.Core.Node.propagate_call,\n        Godot.Core.Node.propagate_notification, Godot.Core.Node.queue_free,\n        Godot.Core.Node.raise, Godot.Core.Node.remove_and_skip,\n        Godot.Core.Node.remove_child, Godot.Core.Node.remove_from_group,\n        Godot.Core.Node.replace_by, Godot.Core.Node.request_ready,\n        Godot.Core.Node.rpc, Godot.Core.Node.rpc_config,\n        Godot.Core.Node.rpc_id, Godot.Core.Node.rpc_unreliable,\n        Godot.Core.Node.rpc_unreliable_id, Godot.Core.Node.rset,\n        Godot.Core.Node.rset_config, Godot.Core.Node.rset_id,\n        Godot.Core.Node.rset_unreliable,\n        Godot.Core.Node.rset_unreliable_id,\n        Godot.Core.Node.set_custom_multiplayer,\n        Godot.Core.Node.set_display_folded, Godot.Core.Node.set_filename,\n        Godot.Core.Node.set_name, Godot.Core.Node.set_network_master,\n        Godot.Core.Node.set_owner, Godot.Core.Node.set_pause_mode,\n        Godot.Core.Node.set_physics_process,\n        Godot.Core.Node.set_physics_process_internal,\n        Godot.Core.Node.set_process, Godot.Core.Node.set_process_input,\n        Godot.Core.Node.set_process_internal,\n        Godot.Core.Node.set_process_priority,\n        Godot.Core.Node.set_process_unhandled_input,\n        Godot.Core.Node.set_process_unhandled_key_input,\n        Godot.Core.Node.set_scene_instance_load_placeholder,\n        Godot.Core.Node.update_configuration_warning)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n_DUPLICATE_GROUPS :: Int\n_DUPLICATE_GROUPS = 2\n\n_DUPLICATE_SCRIPTS :: Int\n_DUPLICATE_SCRIPTS = 4\n\n_NOTIFICATION_PAUSED :: Int\n_NOTIFICATION_PAUSED = 14\n\n_NOTIFICATION_MOVED_IN_PARENT :: Int\n_NOTIFICATION_MOVED_IN_PARENT = 12\n\n_NOTIFICATION_UNPARENTED :: Int\n_NOTIFICATION_UNPARENTED = 19\n\n_PAUSE_MODE_PROCESS :: Int\n_PAUSE_MODE_PROCESS = 2\n\n_NOTIFICATION_WM_ABOUT :: Int\n_NOTIFICATION_WM_ABOUT = 1011\n\n_NOTIFICATION_DRAG_END :: Int\n_NOTIFICATION_DRAG_END = 22\n\n_NOTIFICATION_PATH_CHANGED :: Int\n_NOTIFICATION_PATH_CHANGED = 23\n\n_NOTIFICATION_APP_PAUSED :: Int\n_NOTIFICATION_APP_PAUSED = 1015\n\n_NOTIFICATION_PHYSICS_PROCESS :: Int\n_NOTIFICATION_PHYSICS_PROCESS = 16\n\n_NOTIFICATION_INTERNAL_PHYSICS_PROCESS :: Int\n_NOTIFICATION_INTERNAL_PHYSICS_PROCESS = 26\n\n_NOTIFICATION_WM_GO_BACK_REQUEST :: Int\n_NOTIFICATION_WM_GO_BACK_REQUEST = 1007\n\n_NOTIFICATION_WM_QUIT_REQUEST :: Int\n_NOTIFICATION_WM_QUIT_REQUEST = 1006\n\n_DUPLICATE_USE_INSTANCING :: Int\n_DUPLICATE_USE_INSTANCING = 8\n\n_NOTIFICATION_ENTER_TREE :: Int\n_NOTIFICATION_ENTER_TREE = 10\n\n_NOTIFICATION_EXIT_TREE :: Int\n_NOTIFICATION_EXIT_TREE = 11\n\n_NOTIFICATION_WM_FOCUS_IN :: Int\n_NOTIFICATION_WM_FOCUS_IN = 1004\n\n_NOTIFICATION_WM_MOUSE_EXIT :: Int\n_NOTIFICATION_WM_MOUSE_EXIT = 1003\n\n_NOTIFICATION_PROCESS :: Int\n_NOTIFICATION_PROCESS = 17\n\n_NOTIFICATION_INTERNAL_PROCESS :: Int\n_NOTIFICATION_INTERNAL_PROCESS = 25\n\n_PAUSE_MODE_STOP :: Int\n_PAUSE_MODE_STOP = 1\n\n_PAUSE_MODE_INHERIT :: Int\n_PAUSE_MODE_INHERIT = 0\n\n_NOTIFICATION_TRANSLATION_CHANGED :: Int\n_NOTIFICATION_TRANSLATION_CHANGED = 1010\n\n_NOTIFICATION_INSTANCED :: Int\n_NOTIFICATION_INSTANCED = 20\n\n_NOTIFICATION_UNPAUSED :: Int\n_NOTIFICATION_UNPAUSED = 15\n\n_NOTIFICATION_PARENTED :: Int\n_NOTIFICATION_PARENTED = 18\n\n_NOTIFICATION_WM_FOCUS_OUT :: Int\n_NOTIFICATION_WM_FOCUS_OUT = 1005\n\n_NOTIFICATION_DRAG_BEGIN :: Int\n_NOTIFICATION_DRAG_BEGIN = 21\n\n_DUPLICATE_SIGNALS :: Int\n_DUPLICATE_SIGNALS = 1\n\n_NOTIFICATION_OS_MEMORY_WARNING :: Int\n_NOTIFICATION_OS_MEMORY_WARNING = 1009\n\n_NOTIFICATION_WM_UNFOCUS_REQUEST :: Int\n_NOTIFICATION_WM_UNFOCUS_REQUEST = 1008\n\n_NOTIFICATION_OS_IME_UPDATE :: Int\n_NOTIFICATION_OS_IME_UPDATE = 1013\n\n_NOTIFICATION_APP_RESUMED :: Int\n_NOTIFICATION_APP_RESUMED = 1014\n\n_NOTIFICATION_READY :: Int\n_NOTIFICATION_READY = 13\n\n_NOTIFICATION_WM_MOUSE_ENTER :: Int\n_NOTIFICATION_WM_MOUSE_ENTER = 1002\n\n_NOTIFICATION_CRASH :: Int\n_NOTIFICATION_CRASH = 1012\n\n-- | Emitted when the node is ready.\nsig_ready :: Godot.Internal.Dispatch.Signal Node\nsig_ready = Godot.Internal.Dispatch.Signal \"ready\"\n\ninstance NodeSignal Node \"ready\" '[]\n\n-- | Emitted when the node is renamed.\nsig_renamed :: Godot.Internal.Dispatch.Signal Node\nsig_renamed = Godot.Internal.Dispatch.Signal \"renamed\"\n\ninstance NodeSignal Node \"renamed\" '[]\n\n-- | Emitted when the node enters the tree.\nsig_tree_entered :: Godot.Internal.Dispatch.Signal Node\nsig_tree_entered = Godot.Internal.Dispatch.Signal \"tree_entered\"\n\ninstance NodeSignal Node \"tree_entered\" '[]\n\n-- | Emitted after the node exits the tree and is no longer active.\nsig_tree_exited :: Godot.Internal.Dispatch.Signal Node\nsig_tree_exited = Godot.Internal.Dispatch.Signal \"tree_exited\"\n\ninstance NodeSignal Node \"tree_exited\" '[]\n\n-- | Emitted when the node is still active but about to exit the tree. This is the right place for de-initialization (or a \"destructor\", if you will).\nsig_tree_exiting :: Godot.Internal.Dispatch.Signal Node\nsig_tree_exiting = Godot.Internal.Dispatch.Signal \"tree_exiting\"\n\ninstance NodeSignal Node \"tree_exiting\" '[]\n\ninstance NodeProperty Node \"_import_path\" NodePath 'False where\n        nodeProperty\n          = (_get_import_path, wrapDroppingSetter _set_import_path, Nothing)\n\ninstance NodeProperty Node \"custom_multiplayer\" MultiplayerAPI\n           'False\n         where\n        nodeProperty\n          = (get_custom_multiplayer,\n             wrapDroppingSetter set_custom_multiplayer, Nothing)\n\ninstance NodeProperty Node \"editor_description\" GodotString 'False\n         where\n        nodeProperty\n          = (_get_editor_description,\n             wrapDroppingSetter _set_editor_description, Nothing)\n\ninstance NodeProperty Node \"filename\" GodotString 'False where\n        nodeProperty\n          = (get_filename, wrapDroppingSetter set_filename, Nothing)\n\ninstance NodeProperty Node \"multiplayer\" MultiplayerAPI 'True where\n        nodeProperty = (get_multiplayer, (), Nothing)\n\ninstance NodeProperty Node \"name\" GodotString 'False where\n        nodeProperty = (get_name, wrapDroppingSetter set_name, Nothing)\n\ninstance NodeProperty Node \"owner\" Node 'False where\n        nodeProperty = (get_owner, wrapDroppingSetter set_owner, Nothing)\n\ninstance NodeProperty Node \"pause_mode\" Int 'False where\n        nodeProperty\n          = (get_pause_mode, wrapDroppingSetter set_pause_mode, Nothing)\n\ninstance NodeProperty Node \"process_priority\" Int 'False where\n        nodeProperty\n          = (get_process_priority, wrapDroppingSetter set_process_priority,\n             Nothing)\n\n{-# NOINLINE bindNode__enter_tree #-}\n\n-- | Called when the node enters the @SceneTree@ (e.g. upon instancing, scene changing, or after calling @method add_child@ in a script). If the node has children, its @method _enter_tree@ callback will be called first, and then that of the children.\n--   \t\t\t\tCorresponds to the @NOTIFICATION_ENTER_TREE@ notification in @method Object._notification@.\nbindNode__enter_tree :: MethodBind\nbindNode__enter_tree\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"_enter_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called when the node enters the @SceneTree@ (e.g. upon instancing, scene changing, or after calling @method add_child@ in a script). If the node has children, its @method _enter_tree@ callback will be called first, and then that of the children.\n--   \t\t\t\tCorresponds to the @NOTIFICATION_ENTER_TREE@ notification in @method Object._notification@.\n_enter_tree :: (Node :< cls, Object :< cls) => cls -> IO ()\n_enter_tree cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode__enter_tree (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"_enter_tree\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Node._enter_tree\n\n{-# NOINLINE bindNode__exit_tree #-}\n\n-- | Called when the node is about to leave the @SceneTree@ (e.g. upon freeing, scene changing, or after calling @method remove_child@ in a script). If the node has children, its @method _exit_tree@ callback will be called last, after all its children have left the tree.\n--   \t\t\t\tCorresponds to the @NOTIFICATION_EXIT_TREE@ notification in @method Object._notification@ and signal @signal tree_exiting@. To get notified when the node has already left the active tree, connect to the @signal tree_exited@.\nbindNode__exit_tree :: MethodBind\nbindNode__exit_tree\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"_exit_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called when the node is about to leave the @SceneTree@ (e.g. upon freeing, scene changing, or after calling @method remove_child@ in a script). If the node has children, its @method _exit_tree@ callback will be called last, after all its children have left the tree.\n--   \t\t\t\tCorresponds to the @NOTIFICATION_EXIT_TREE@ notification in @method Object._notification@ and signal @signal tree_exiting@. To get notified when the node has already left the active tree, connect to the @signal tree_exited@.\n_exit_tree :: (Node :< cls, Object :< cls) => cls -> IO ()\n_exit_tree cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode__exit_tree (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"_exit_tree\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Node._exit_tree\n\n{-# NOINLINE bindNode__get_configuration_warning #-}\n\n-- | The string returned from this method is displayed as a warning in the Scene Dock if the script that overrides it is a @tool@ script.\n--   \t\t\t\tReturning an empty string produces no warning.\n--   \t\t\t\tCall @method update_configuration_warning@ when the warning needs to be updated for this node.\nbindNode__get_configuration_warning :: MethodBind\nbindNode__get_configuration_warning\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"_get_configuration_warning\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The string returned from this method is displayed as a warning in the Scene Dock if the script that overrides it is a @tool@ script.\n--   \t\t\t\tReturning an empty string produces no warning.\n--   \t\t\t\tCall @method update_configuration_warning@ when the warning needs to be updated for this node.\n_get_configuration_warning ::\n                             (Node :< cls, Object :< cls) => cls -> IO GodotString\n_get_configuration_warning cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode__get_configuration_warning\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"_get_configuration_warning\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Node._get_configuration_warning\n\n{-# NOINLINE bindNode__get_editor_description #-}\n\nbindNode__get_editor_description :: MethodBind\nbindNode__get_editor_description\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"_get_editor_description\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_editor_description ::\n                          (Node :< cls, Object :< cls) => cls -> IO GodotString\n_get_editor_description cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode__get_editor_description\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"_get_editor_description\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Node._get_editor_description\n\n{-# NOINLINE bindNode__get_import_path #-}\n\nbindNode__get_import_path :: MethodBind\nbindNode__get_import_path\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"_get_import_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_import_path ::\n                   (Node :< cls, Object :< cls) => cls -> IO NodePath\n_get_import_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode__get_import_path (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"_get_import_path\" '[] (IO NodePath) where\n        nodeMethod = Godot.Core.Node._get_import_path\n\n{-# NOINLINE bindNode__input #-}\n\n-- | Called when there is an input event. The input event propagates up through the node tree until a node consumes it.\n--   \t\t\t\tIt is only called if input processing is enabled, which is done automatically if this method is overridden, and can be toggled with @method set_process_input@.\n--   \t\t\t\tTo consume the input event and stop it propagating further to other nodes, @method SceneTree.set_input_as_handled@ can be called.\n--   \t\t\t\tFor gameplay input, @method _unhandled_input@ and @method _unhandled_key_input@ are usually a better fit as they allow the GUI to intercept the events first.\n--   \t\t\t\t__Note:__ This method is only called if the node is present in the scene tree (i.e. if it's not orphan).\nbindNode__input :: MethodBind\nbindNode__input\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called when there is an input event. The input event propagates up through the node tree until a node consumes it.\n--   \t\t\t\tIt is only called if input processing is enabled, which is done automatically if this method is overridden, and can be toggled with @method set_process_input@.\n--   \t\t\t\tTo consume the input event and stop it propagating further to other nodes, @method SceneTree.set_input_as_handled@ can be called.\n--   \t\t\t\tFor gameplay input, @method _unhandled_input@ and @method _unhandled_key_input@ are usually a better fit as they allow the GUI to intercept the events first.\n--   \t\t\t\t__Note:__ This method is only called if the node is present in the scene tree (i.e. if it's not orphan).\n_input ::\n         (Node :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode__input (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"_input\" '[InputEvent] (IO ()) where\n        nodeMethod = Godot.Core.Node._input\n\n{-# NOINLINE bindNode__physics_process #-}\n\n-- | Called during the physics processing step of the main loop. Physics processing means that the frame rate is synced to the physics, i.e. the @delta@ variable should be constant.\n--   \t\t\t\tIt is only called if physics processing is enabled, which is done automatically if this method is overridden, and can be toggled with @method set_physics_process@.\n--   \t\t\t\tCorresponds to the @NOTIFICATION_PHYSICS_PROCESS@ notification in @method Object._notification@.\n--   \t\t\t\t__Note:__ This method is only called if the node is present in the scene tree (i.e. if it's not orphan).\nbindNode__physics_process :: MethodBind\nbindNode__physics_process\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"_physics_process\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called during the physics processing step of the main loop. Physics processing means that the frame rate is synced to the physics, i.e. the @delta@ variable should be constant.\n--   \t\t\t\tIt is only called if physics processing is enabled, which is done automatically if this method is overridden, and can be toggled with @method set_physics_process@.\n--   \t\t\t\tCorresponds to the @NOTIFICATION_PHYSICS_PROCESS@ notification in @method Object._notification@.\n--   \t\t\t\t__Note:__ This method is only called if the node is present in the scene tree (i.e. if it's not orphan).\n_physics_process ::\n                   (Node :< cls, Object :< cls) => cls -> Float -> IO ()\n_physics_process cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode__physics_process (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"_physics_process\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Node._physics_process\n\n{-# NOINLINE bindNode__process #-}\n\n-- | Called during the processing step of the main loop. Processing happens at every frame and as fast as possible, so the @delta@ time since the previous frame is not constant.\n--   \t\t\t\tIt is only called if processing is enabled, which is done automatically if this method is overridden, and can be toggled with @method set_process@.\n--   \t\t\t\tCorresponds to the @NOTIFICATION_PROCESS@ notification in @method Object._notification@.\n--   \t\t\t\t__Note:__ This method is only called if the node is present in the scene tree (i.e. if it's not orphan).\nbindNode__process :: MethodBind\nbindNode__process\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"_process\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called during the processing step of the main loop. Processing happens at every frame and as fast as possible, so the @delta@ time since the previous frame is not constant.\n--   \t\t\t\tIt is only called if processing is enabled, which is done automatically if this method is overridden, and can be toggled with @method set_process@.\n--   \t\t\t\tCorresponds to the @NOTIFICATION_PROCESS@ notification in @method Object._notification@.\n--   \t\t\t\t__Note:__ This method is only called if the node is present in the scene tree (i.e. if it's not orphan).\n_process :: (Node :< cls, Object :< cls) => cls -> Float -> IO ()\n_process cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode__process (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"_process\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Node._process\n\n{-# NOINLINE bindNode__ready #-}\n\n-- | Called when the node is \"ready\", i.e. when both the node and its children have entered the scene tree. If the node has children, their @method _ready@ callbacks get triggered first, and the parent node will receive the ready notification afterwards.\n--   \t\t\t\tCorresponds to the @NOTIFICATION_READY@ notification in @method Object._notification@. See also the @onready@ keyword for variables.\n--   \t\t\t\tUsually used for initialization. For even earlier initialization, @method Object._init@ may be used. See also @method _enter_tree@.\n--   \t\t\t\t__Note:__ @method _ready@ may be called only once for each node. After removing a node from the scene tree and adding again, @_ready@ will not be called for the second time. This can be bypassed with requesting another call with @method request_ready@, which may be called anywhere before adding the node again.\nbindNode__ready :: MethodBind\nbindNode__ready\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"_ready\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called when the node is \"ready\", i.e. when both the node and its children have entered the scene tree. If the node has children, their @method _ready@ callbacks get triggered first, and the parent node will receive the ready notification afterwards.\n--   \t\t\t\tCorresponds to the @NOTIFICATION_READY@ notification in @method Object._notification@. See also the @onready@ keyword for variables.\n--   \t\t\t\tUsually used for initialization. For even earlier initialization, @method Object._init@ may be used. See also @method _enter_tree@.\n--   \t\t\t\t__Note:__ @method _ready@ may be called only once for each node. After removing a node from the scene tree and adding again, @_ready@ will not be called for the second time. This can be bypassed with requesting another call with @method request_ready@, which may be called anywhere before adding the node again.\n_ready :: (Node :< cls, Object :< cls) => cls -> IO ()\n_ready cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode__ready (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"_ready\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Node._ready\n\n{-# NOINLINE bindNode__set_editor_description #-}\n\nbindNode__set_editor_description :: MethodBind\nbindNode__set_editor_description\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"_set_editor_description\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_editor_description ::\n                          (Node :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_set_editor_description cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode__set_editor_description\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"_set_editor_description\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node._set_editor_description\n\n{-# NOINLINE bindNode__set_import_path #-}\n\nbindNode__set_import_path :: MethodBind\nbindNode__set_import_path\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"_set_import_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_import_path ::\n                   (Node :< cls, Object :< cls) => cls -> NodePath -> IO ()\n_set_import_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode__set_import_path (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"_set_import_path\" '[NodePath] (IO ())\n         where\n        nodeMethod = Godot.Core.Node._set_import_path\n\n{-# NOINLINE bindNode__unhandled_input #-}\n\n-- | Called when an @InputEvent@ hasn't been consumed by @method _input@ or any GUI. The input event propagates up through the node tree until a node consumes it.\n--   \t\t\t\tIt is only called if unhandled input processing is enabled, which is done automatically if this method is overridden, and can be toggled with @method set_process_unhandled_input@.\n--   \t\t\t\tTo consume the input event and stop it propagating further to other nodes, @method SceneTree.set_input_as_handled@ can be called.\n--   \t\t\t\tFor gameplay input, this and @method _unhandled_key_input@ are usually a better fit than @method _input@ as they allow the GUI to intercept the events first.\n--   \t\t\t\t__Note:__ This method is only called if the node is present in the scene tree (i.e. if it's not orphan).\nbindNode__unhandled_input :: MethodBind\nbindNode__unhandled_input\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"_unhandled_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called when an @InputEvent@ hasn't been consumed by @method _input@ or any GUI. The input event propagates up through the node tree until a node consumes it.\n--   \t\t\t\tIt is only called if unhandled input processing is enabled, which is done automatically if this method is overridden, and can be toggled with @method set_process_unhandled_input@.\n--   \t\t\t\tTo consume the input event and stop it propagating further to other nodes, @method SceneTree.set_input_as_handled@ can be called.\n--   \t\t\t\tFor gameplay input, this and @method _unhandled_key_input@ are usually a better fit than @method _input@ as they allow the GUI to intercept the events first.\n--   \t\t\t\t__Note:__ This method is only called if the node is present in the scene tree (i.e. if it's not orphan).\n_unhandled_input ::\n                   (Node :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_unhandled_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode__unhandled_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"_unhandled_input\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.Node._unhandled_input\n\n{-# NOINLINE bindNode__unhandled_key_input #-}\n\n-- | Called when an @InputEventKey@ hasn't been consumed by @method _input@ or any GUI. The input event propagates up through the node tree until a node consumes it.\n--   \t\t\t\tIt is only called if unhandled key input processing is enabled, which is done automatically if this method is overridden, and can be toggled with @method set_process_unhandled_key_input@.\n--   \t\t\t\tTo consume the input event and stop it propagating further to other nodes, @method SceneTree.set_input_as_handled@ can be called.\n--   \t\t\t\tFor gameplay input, this and @method _unhandled_input@ are usually a better fit than @method _input@ as they allow the GUI to intercept the events first.\n--   \t\t\t\t__Note:__ This method is only called if the node is present in the scene tree (i.e. if it's not orphan).\nbindNode__unhandled_key_input :: MethodBind\nbindNode__unhandled_key_input\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"_unhandled_key_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called when an @InputEventKey@ hasn't been consumed by @method _input@ or any GUI. The input event propagates up through the node tree until a node consumes it.\n--   \t\t\t\tIt is only called if unhandled key input processing is enabled, which is done automatically if this method is overridden, and can be toggled with @method set_process_unhandled_key_input@.\n--   \t\t\t\tTo consume the input event and stop it propagating further to other nodes, @method SceneTree.set_input_as_handled@ can be called.\n--   \t\t\t\tFor gameplay input, this and @method _unhandled_input@ are usually a better fit than @method _input@ as they allow the GUI to intercept the events first.\n--   \t\t\t\t__Note:__ This method is only called if the node is present in the scene tree (i.e. if it's not orphan).\n_unhandled_key_input ::\n                       (Node :< cls, Object :< cls) => cls -> InputEventKey -> IO ()\n_unhandled_key_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode__unhandled_key_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"_unhandled_key_input\" '[InputEventKey]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node._unhandled_key_input\n\n{-# NOINLINE bindNode_add_child #-}\n\n-- | Adds a child node. Nodes can have any number of children, but every child must have a unique name. Child nodes are automatically deleted when the parent node is deleted, so an entire scene can be removed by deleting its topmost node.\n--   \t\t\t\tIf @legible_unique_name@ is @true@, the child node will have an human-readable name based on the name of the node being instanced instead of its type.\n--   \t\t\t\t__Note:__ If the child node already has a parent, the function will fail. Use @method remove_child@ first to remove the node from its current parent. For example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tif child_node.get_parent():\n--   \t\t\t\t    child_node.get_parent().remove_child(child_node)\n--   \t\t\t\tadd_child(child_node)\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t__Note:__ If you want a child to be persisted to a @PackedScene@, you must set @owner@ in addition to calling @method add_child@. This is typically relevant for @url=https://godot.readthedocs.io/en/latest/tutorials/misc/running_code_in_the_editor.html@tool scripts@/url@ and @url=https://godot.readthedocs.io/en/latest/tutorials/plugins/editor/index.html@editor plugins@/url@. If @method add_child@ is called without setting @owner@, the newly added @Node@ will not be visible in the scene tree, though it will be visible in the 2D/3D view.\nbindNode_add_child :: MethodBind\nbindNode_add_child\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"add_child\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a child node. Nodes can have any number of children, but every child must have a unique name. Child nodes are automatically deleted when the parent node is deleted, so an entire scene can be removed by deleting its topmost node.\n--   \t\t\t\tIf @legible_unique_name@ is @true@, the child node will have an human-readable name based on the name of the node being instanced instead of its type.\n--   \t\t\t\t__Note:__ If the child node already has a parent, the function will fail. Use @method remove_child@ first to remove the node from its current parent. For example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tif child_node.get_parent():\n--   \t\t\t\t    child_node.get_parent().remove_child(child_node)\n--   \t\t\t\tadd_child(child_node)\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t__Note:__ If you want a child to be persisted to a @PackedScene@, you must set @owner@ in addition to calling @method add_child@. This is typically relevant for @url=https://godot.readthedocs.io/en/latest/tutorials/misc/running_code_in_the_editor.html@tool scripts@/url@ and @url=https://godot.readthedocs.io/en/latest/tutorials/plugins/editor/index.html@editor plugins@/url@. If @method add_child@ is called without setting @owner@, the newly added @Node@ will not be visible in the scene tree, though it will be visible in the 2D/3D view.\nadd_child ::\n            (Node :< cls, Object :< cls) => cls -> Node -> Maybe Bool -> IO ()\nadd_child cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_add_child (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"add_child\" '[Node, Maybe Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Node.add_child\n\n{-# NOINLINE bindNode_add_child_below_node #-}\n\n-- | Adds @child_node@ as a child. The child is placed below the given @node@ in the list of children.\n--   \t\t\t\tIf @legible_unique_name@ is @true@, the child node will have an human-readable name based on the name of the node being instanced instead of its type.\nbindNode_add_child_below_node :: MethodBind\nbindNode_add_child_below_node\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"add_child_below_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds @child_node@ as a child. The child is placed below the given @node@ in the list of children.\n--   \t\t\t\tIf @legible_unique_name@ is @true@, the child node will have an human-readable name based on the name of the node being instanced instead of its type.\nadd_child_below_node ::\n                       (Node :< cls, Object :< cls) =>\n                       cls -> Node -> Node -> Maybe Bool -> IO ()\nadd_child_below_node cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool False) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_add_child_below_node (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"add_child_below_node\"\n           '[Node, Node, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node.add_child_below_node\n\n{-# NOINLINE bindNode_add_to_group #-}\n\n-- | Adds the node to a group. Groups are helpers to name and organize a subset of nodes, for example \"enemies\" or \"collectables\". A node can be in any number of groups. Nodes can be assigned a group at any time, but will not be added until they are inside the scene tree (see @method is_inside_tree@). See notes in the description, and the group methods in @SceneTree@.\n--   \t\t\t\tThe @persistent@ option is used when packing node to @PackedScene@ and saving to file. Non-persistent groups aren't stored.\nbindNode_add_to_group :: MethodBind\nbindNode_add_to_group\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"add_to_group\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds the node to a group. Groups are helpers to name and organize a subset of nodes, for example \"enemies\" or \"collectables\". A node can be in any number of groups. Nodes can be assigned a group at any time, but will not be added until they are inside the scene tree (see @method is_inside_tree@). See notes in the description, and the group methods in @SceneTree@.\n--   \t\t\t\tThe @persistent@ option is used when packing node to @PackedScene@ and saving to file. Non-persistent groups aren't stored.\nadd_to_group ::\n               (Node :< cls, Object :< cls) =>\n               cls -> GodotString -> Maybe Bool -> IO ()\nadd_to_group cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_add_to_group (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"add_to_group\" '[GodotString, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node.add_to_group\n\n{-# NOINLINE bindNode_can_process #-}\n\n-- | Returns @true@ if the node can process while the scene tree is paused (see @pause_mode@). Always returns @true@ if the scene tree is not paused, and @false@ if the node is not in the tree.\nbindNode_can_process :: MethodBind\nbindNode_can_process\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"can_process\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the node can process while the scene tree is paused (see @pause_mode@). Always returns @true@ if the scene tree is not paused, and @false@ if the node is not in the tree.\ncan_process :: (Node :< cls, Object :< cls) => cls -> IO Bool\ncan_process cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_can_process (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"can_process\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Node.can_process\n\n{-# NOINLINE bindNode_duplicate #-}\n\n-- | Duplicates the node, returning a new node.\n--   \t\t\t\tYou can fine-tune the behavior using the @flags@ (see @enum DuplicateFlags@).\n--   \t\t\t\t__Note:__ It will not work properly if the node contains a script with constructor arguments (i.e. needs to supply arguments to @method Object._init@ method). In that case, the node will be duplicated without a script.\nbindNode_duplicate :: MethodBind\nbindNode_duplicate\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"duplicate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Duplicates the node, returning a new node.\n--   \t\t\t\tYou can fine-tune the behavior using the @flags@ (see @enum DuplicateFlags@).\n--   \t\t\t\t__Note:__ It will not work properly if the node contains a script with constructor arguments (i.e. needs to supply arguments to @method Object._init@ method). In that case, the node will be duplicated without a script.\nduplicate ::\n            (Node :< cls, Object :< cls) => cls -> Maybe Int -> IO Node\nduplicate cls arg1\n  = withVariantArray [maybe (VariantInt (15)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_duplicate (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"duplicate\" '[Maybe Int] (IO Node) where\n        nodeMethod = Godot.Core.Node.duplicate\n\n{-# NOINLINE bindNode_find_node #-}\n\n-- | Finds a descendant of this node whose name matches @mask@ as in @method String.match@ (i.e. case-sensitive, but @\"*\"@ matches zero or more characters and @\"?\"@ matches any single character except @\".\"@).\n--   \t\t\t\t__Note:__ It does not match against the full path, just against individual node names.\n--   \t\t\t\tIf @owned@ is @true@, this method only finds nodes whose owner is this node. This is especially important for scenes instantiated through a script, because those scenes don't have an owner.\n--   \t\t\t\t__Note:__ As this method walks through all the descendants of the node, it is the slowest way to get a reference to another node. Whenever possible, consider using @method get_node@ instead. To avoid using @method find_node@ too often, consider caching the node reference into a variable.\nbindNode_find_node :: MethodBind\nbindNode_find_node\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"find_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Finds a descendant of this node whose name matches @mask@ as in @method String.match@ (i.e. case-sensitive, but @\"*\"@ matches zero or more characters and @\"?\"@ matches any single character except @\".\"@).\n--   \t\t\t\t__Note:__ It does not match against the full path, just against individual node names.\n--   \t\t\t\tIf @owned@ is @true@, this method only finds nodes whose owner is this node. This is especially important for scenes instantiated through a script, because those scenes don't have an owner.\n--   \t\t\t\t__Note:__ As this method walks through all the descendants of the node, it is the slowest way to get a reference to another node. Whenever possible, consider using @method get_node@ instead. To avoid using @method find_node@ too often, consider caching the node reference into a variable.\nfind_node ::\n            (Node :< cls, Object :< cls) =>\n            cls -> GodotString -> Maybe Bool -> Maybe Bool -> IO Node\nfind_node cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool True) toVariant arg2,\n       maybe (VariantBool True) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_find_node (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"find_node\"\n           '[GodotString, Maybe Bool, Maybe Bool]\n           (IO Node)\n         where\n        nodeMethod = Godot.Core.Node.find_node\n\n{-# NOINLINE bindNode_find_parent #-}\n\n-- | Finds the first parent of the current node whose name matches @mask@ as in @method String.match@ (i.e. case-sensitive, but @\"*\"@ matches zero or more characters and @\"?\"@ matches any single character except @\".\"@).\n--   \t\t\t\t__Note:__ It does not match against the full path, just against individual node names.\n--   \t\t\t\t__Note:__ As this method walks upwards in the scene tree, it can be slow in large, deeply nested scene trees. Whenever possible, consider using @method get_node@ instead. To avoid using @method find_parent@ too often, consider caching the node reference into a variable.\nbindNode_find_parent :: MethodBind\nbindNode_find_parent\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"find_parent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Finds the first parent of the current node whose name matches @mask@ as in @method String.match@ (i.e. case-sensitive, but @\"*\"@ matches zero or more characters and @\"?\"@ matches any single character except @\".\"@).\n--   \t\t\t\t__Note:__ It does not match against the full path, just against individual node names.\n--   \t\t\t\t__Note:__ As this method walks upwards in the scene tree, it can be slow in large, deeply nested scene trees. Whenever possible, consider using @method get_node@ instead. To avoid using @method find_parent@ too often, consider caching the node reference into a variable.\nfind_parent ::\n              (Node :< cls, Object :< cls) => cls -> GodotString -> IO Node\nfind_parent cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_find_parent (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"find_parent\" '[GodotString] (IO Node)\n         where\n        nodeMethod = Godot.Core.Node.find_parent\n\n{-# NOINLINE bindNode_get_child #-}\n\n-- | Returns a child node by its index (see @method get_child_count@). This method is often used for iterating all children of a node.\n--   \t\t\t\tTo access a child node via its name, use @method get_node@.\nbindNode_get_child :: MethodBind\nbindNode_get_child\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_child\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a child node by its index (see @method get_child_count@). This method is often used for iterating all children of a node.\n--   \t\t\t\tTo access a child node via its name, use @method get_node@.\nget_child :: (Node :< cls, Object :< cls) => cls -> Int -> IO Node\nget_child cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_child (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_child\" '[Int] (IO Node) where\n        nodeMethod = Godot.Core.Node.get_child\n\n{-# NOINLINE bindNode_get_child_count #-}\n\n-- | Returns the number of child nodes.\nbindNode_get_child_count :: MethodBind\nbindNode_get_child_count\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_child_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of child nodes.\nget_child_count :: (Node :< cls, Object :< cls) => cls -> IO Int\nget_child_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_child_count (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_child_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Node.get_child_count\n\n{-# NOINLINE bindNode_get_children #-}\n\n-- | Returns an array of references to node's children.\nbindNode_get_children :: MethodBind\nbindNode_get_children\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_children\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of references to node's children.\nget_children :: (Node :< cls, Object :< cls) => cls -> IO Array\nget_children cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_children (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_children\" '[] (IO Array) where\n        nodeMethod = Godot.Core.Node.get_children\n\n{-# NOINLINE bindNode_get_custom_multiplayer #-}\n\n-- | The override to the default @MultiplayerAPI@. Set to @null@ to use the default @SceneTree@ one.\nbindNode_get_custom_multiplayer :: MethodBind\nbindNode_get_custom_multiplayer\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_custom_multiplayer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The override to the default @MultiplayerAPI@. Set to @null@ to use the default @SceneTree@ one.\nget_custom_multiplayer ::\n                         (Node :< cls, Object :< cls) => cls -> IO MultiplayerAPI\nget_custom_multiplayer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_custom_multiplayer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_custom_multiplayer\" '[]\n           (IO MultiplayerAPI)\n         where\n        nodeMethod = Godot.Core.Node.get_custom_multiplayer\n\n{-# NOINLINE bindNode_get_filename #-}\n\n-- | When a scene is instanced from a file, its topmost node contains the filename from which it was loaded.\nbindNode_get_filename :: MethodBind\nbindNode_get_filename\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_filename\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | When a scene is instanced from a file, its topmost node contains the filename from which it was loaded.\nget_filename ::\n               (Node :< cls, Object :< cls) => cls -> IO GodotString\nget_filename cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_filename (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_filename\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.Node.get_filename\n\n{-# NOINLINE bindNode_get_groups #-}\n\n-- | Returns an array listing the groups that the node is a member of.\nbindNode_get_groups :: MethodBind\nbindNode_get_groups\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_groups\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array listing the groups that the node is a member of.\nget_groups :: (Node :< cls, Object :< cls) => cls -> IO Array\nget_groups cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_groups (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_groups\" '[] (IO Array) where\n        nodeMethod = Godot.Core.Node.get_groups\n\n{-# NOINLINE bindNode_get_index #-}\n\n-- | Returns the node's index, i.e. its position among the siblings of its parent.\nbindNode_get_index :: MethodBind\nbindNode_get_index\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the node's index, i.e. its position among the siblings of its parent.\nget_index :: (Node :< cls, Object :< cls) => cls -> IO Int\nget_index cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_index (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_index\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Node.get_index\n\n{-# NOINLINE bindNode_get_multiplayer #-}\n\n-- | The @MultiplayerAPI@ instance associated with this node. Either the @custom_multiplayer@, or the default SceneTree one (if inside tree).\nbindNode_get_multiplayer :: MethodBind\nbindNode_get_multiplayer\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_multiplayer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @MultiplayerAPI@ instance associated with this node. Either the @custom_multiplayer@, or the default SceneTree one (if inside tree).\nget_multiplayer ::\n                  (Node :< cls, Object :< cls) => cls -> IO MultiplayerAPI\nget_multiplayer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_multiplayer (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_multiplayer\" '[] (IO MultiplayerAPI)\n         where\n        nodeMethod = Godot.Core.Node.get_multiplayer\n\n{-# NOINLINE bindNode_get_name #-}\n\n-- | The name of the node. This name is unique among the siblings (other child nodes from the same parent). When set to an existing name, the node will be automatically renamed.\nbindNode_get_name :: MethodBind\nbindNode_get_name\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The name of the node. This name is unique among the siblings (other child nodes from the same parent). When set to an existing name, the node will be automatically renamed.\nget_name :: (Node :< cls, Object :< cls) => cls -> IO GodotString\nget_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_name (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_name\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.Node.get_name\n\n{-# NOINLINE bindNode_get_network_master #-}\n\n-- | Returns the peer ID of the network master for this node. See @method set_network_master@.\nbindNode_get_network_master :: MethodBind\nbindNode_get_network_master\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_network_master\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the peer ID of the network master for this node. See @method set_network_master@.\nget_network_master :: (Node :< cls, Object :< cls) => cls -> IO Int\nget_network_master cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_network_master (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_network_master\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Node.get_network_master\n\n{-# NOINLINE bindNode_get_node #-}\n\n-- | Fetches a node. The @NodePath@ can be either a relative path (from the current node) or an absolute path (in the scene tree) to a node. If the path does not exist, a @null instance@ is returned and an error is logged. Attempts to access methods on the return value will result in an \"Attempt to call <method> on a null instance.\" error.\n--   \t\t\t\t__Note:__ Fetching absolute paths only works when the node is inside the scene tree (see @method is_inside_tree@).\n--   \t\t\t\t__Example:__ Assume your current node is Character and the following tree:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t/root\n--   \t\t\t\t/root/Character\n--   \t\t\t\t/root/Character/Sword\n--   \t\t\t\t/root/Character/Backpack/Dagger\n--   \t\t\t\t/root/MyGame\n--   \t\t\t\t/root/Swamp/Alligator\n--   \t\t\t\t/root/Swamp/Mosquito\n--   \t\t\t\t/root/Swamp/Goblin\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tPossible paths are:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tget_node(\"Sword\")\n--   \t\t\t\tget_node(\"Backpack/Dagger\")\n--   \t\t\t\tget_node(\"../Swamp/Alligator\")\n--   \t\t\t\tget_node(\"/root/MyGame\")\n--   \t\t\t\t\n--   @\nbindNode_get_node :: MethodBind\nbindNode_get_node\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Fetches a node. The @NodePath@ can be either a relative path (from the current node) or an absolute path (in the scene tree) to a node. If the path does not exist, a @null instance@ is returned and an error is logged. Attempts to access methods on the return value will result in an \"Attempt to call <method> on a null instance.\" error.\n--   \t\t\t\t__Note:__ Fetching absolute paths only works when the node is inside the scene tree (see @method is_inside_tree@).\n--   \t\t\t\t__Example:__ Assume your current node is Character and the following tree:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t/root\n--   \t\t\t\t/root/Character\n--   \t\t\t\t/root/Character/Sword\n--   \t\t\t\t/root/Character/Backpack/Dagger\n--   \t\t\t\t/root/MyGame\n--   \t\t\t\t/root/Swamp/Alligator\n--   \t\t\t\t/root/Swamp/Mosquito\n--   \t\t\t\t/root/Swamp/Goblin\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tPossible paths are:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tget_node(\"Sword\")\n--   \t\t\t\tget_node(\"Backpack/Dagger\")\n--   \t\t\t\tget_node(\"../Swamp/Alligator\")\n--   \t\t\t\tget_node(\"/root/MyGame\")\n--   \t\t\t\t\n--   @\nget_node ::\n           (Node :< cls, Object :< cls) => cls -> NodePath -> IO Node\nget_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_node (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_node\" '[NodePath] (IO Node) where\n        nodeMethod = Godot.Core.Node.get_node\n\n{-# NOINLINE bindNode_get_node_and_resource #-}\n\n-- | Fetches a node and one of its resources as specified by the @NodePath@'s subname (e.g. @Area2D/CollisionShape2D:shape@). If several nested resources are specified in the @NodePath@, the last one will be fetched.\n--   \t\t\t\tThe return value is an array of size 3: the first index points to the @Node@ (or @null@ if not found), the second index points to the @Resource@ (or @null@ if not found), and the third index is the remaining @NodePath@, if any.\n--   \t\t\t\tFor example, assuming that @Area2D/CollisionShape2D@ is a valid node and that its @shape@ property has been assigned a @RectangleShape2D@ resource, one could have this kind of output:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tprint(get_node_and_resource(\"Area2D/CollisionShape2D\")) # @@CollisionShape2D:1161@, Null, @\n--   \t\t\t\tprint(get_node_and_resource(\"Area2D/CollisionShape2D:shape\")) # @@CollisionShape2D:1161@, @RectangleShape2D:1156@, @\n--   \t\t\t\tprint(get_node_and_resource(\"Area2D/CollisionShape2D:shape:extents\")) # @@CollisionShape2D:1161@, @RectangleShape2D:1156@, :extents@\n--   \t\t\t\t\n--   @\nbindNode_get_node_and_resource :: MethodBind\nbindNode_get_node_and_resource\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_and_resource\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Fetches a node and one of its resources as specified by the @NodePath@'s subname (e.g. @Area2D/CollisionShape2D:shape@). If several nested resources are specified in the @NodePath@, the last one will be fetched.\n--   \t\t\t\tThe return value is an array of size 3: the first index points to the @Node@ (or @null@ if not found), the second index points to the @Resource@ (or @null@ if not found), and the third index is the remaining @NodePath@, if any.\n--   \t\t\t\tFor example, assuming that @Area2D/CollisionShape2D@ is a valid node and that its @shape@ property has been assigned a @RectangleShape2D@ resource, one could have this kind of output:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tprint(get_node_and_resource(\"Area2D/CollisionShape2D\")) # @@CollisionShape2D:1161@, Null, @\n--   \t\t\t\tprint(get_node_and_resource(\"Area2D/CollisionShape2D:shape\")) # @@CollisionShape2D:1161@, @RectangleShape2D:1156@, @\n--   \t\t\t\tprint(get_node_and_resource(\"Area2D/CollisionShape2D:shape:extents\")) # @@CollisionShape2D:1161@, @RectangleShape2D:1156@, :extents@\n--   \t\t\t\t\n--   @\nget_node_and_resource ::\n                        (Node :< cls, Object :< cls) => cls -> NodePath -> IO Array\nget_node_and_resource cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_node_and_resource (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_node_and_resource\" '[NodePath]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Node.get_node_and_resource\n\n{-# NOINLINE bindNode_get_node_or_null #-}\n\n-- | Similar to @method get_node@, but does not log an error if @path@ does not point to a valid @Node@.\nbindNode_get_node_or_null :: MethodBind\nbindNode_get_node_or_null\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_or_null\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Similar to @method get_node@, but does not log an error if @path@ does not point to a valid @Node@.\nget_node_or_null ::\n                   (Node :< cls, Object :< cls) => cls -> NodePath -> IO Node\nget_node_or_null cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_node_or_null (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_node_or_null\" '[NodePath] (IO Node)\n         where\n        nodeMethod = Godot.Core.Node.get_node_or_null\n\n{-# NOINLINE bindNode_get_owner #-}\n\n-- | The node owner. A node can have any other node as owner (as long as it is a valid parent, grandparent, etc. ascending in the tree). When saving a node (using @PackedScene@), all the nodes it owns will be saved with it. This allows for the creation of complex @SceneTree@s, with instancing and subinstancing.\nbindNode_get_owner :: MethodBind\nbindNode_get_owner\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_owner\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node owner. A node can have any other node as owner (as long as it is a valid parent, grandparent, etc. ascending in the tree). When saving a node (using @PackedScene@), all the nodes it owns will be saved with it. This allows for the creation of complex @SceneTree@s, with instancing and subinstancing.\nget_owner :: (Node :< cls, Object :< cls) => cls -> IO Node\nget_owner cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_owner (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_owner\" '[] (IO Node) where\n        nodeMethod = Godot.Core.Node.get_owner\n\n{-# NOINLINE bindNode_get_parent #-}\n\n-- | Returns the parent node of the current node, or a @null instance@ if the node lacks a parent.\nbindNode_get_parent :: MethodBind\nbindNode_get_parent\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_parent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the parent node of the current node, or a @null instance@ if the node lacks a parent.\nget_parent :: (Node :< cls, Object :< cls) => cls -> IO Node\nget_parent cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_parent (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_parent\" '[] (IO Node) where\n        nodeMethod = Godot.Core.Node.get_parent\n\n{-# NOINLINE bindNode_get_path #-}\n\n-- | Returns the absolute path of the current node. This only works if the current node is inside the scene tree (see @method is_inside_tree@).\nbindNode_get_path :: MethodBind\nbindNode_get_path\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the absolute path of the current node. This only works if the current node is inside the scene tree (see @method is_inside_tree@).\nget_path :: (Node :< cls, Object :< cls) => cls -> IO NodePath\nget_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_path (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_path\" '[] (IO NodePath) where\n        nodeMethod = Godot.Core.Node.get_path\n\n{-# NOINLINE bindNode_get_path_to #-}\n\n-- | Returns the relative @NodePath@ from this node to the specified @node@. Both nodes must be in the same scene or the function will fail.\nbindNode_get_path_to :: MethodBind\nbindNode_get_path_to\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_path_to\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the relative @NodePath@ from this node to the specified @node@. Both nodes must be in the same scene or the function will fail.\nget_path_to ::\n              (Node :< cls, Object :< cls) => cls -> Node -> IO NodePath\nget_path_to cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_path_to (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_path_to\" '[Node] (IO NodePath) where\n        nodeMethod = Godot.Core.Node.get_path_to\n\n{-# NOINLINE bindNode_get_pause_mode #-}\n\n-- | Pause mode. How the node will behave if the @SceneTree@ is paused.\nbindNode_get_pause_mode :: MethodBind\nbindNode_get_pause_mode\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_pause_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Pause mode. How the node will behave if the @SceneTree@ is paused.\nget_pause_mode :: (Node :< cls, Object :< cls) => cls -> IO Int\nget_pause_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_pause_mode (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_pause_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Node.get_pause_mode\n\n{-# NOINLINE bindNode_get_physics_process_delta_time #-}\n\n-- | Returns the time elapsed since the last physics-bound frame (see @method _physics_process@). This is always a constant value in physics processing unless the frames per second is changed via @Engine.iterations_per_second@.\nbindNode_get_physics_process_delta_time :: MethodBind\nbindNode_get_physics_process_delta_time\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_physics_process_delta_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the time elapsed since the last physics-bound frame (see @method _physics_process@). This is always a constant value in physics processing unless the frames per second is changed via @Engine.iterations_per_second@.\nget_physics_process_delta_time ::\n                                 (Node :< cls, Object :< cls) => cls -> IO Float\nget_physics_process_delta_time cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_physics_process_delta_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_physics_process_delta_time\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Node.get_physics_process_delta_time\n\n{-# NOINLINE bindNode_get_position_in_parent #-}\n\n-- | Returns the node's order in the scene tree branch. For example, if called on the first child node the position is @0@.\nbindNode_get_position_in_parent :: MethodBind\nbindNode_get_position_in_parent\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_position_in_parent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the node's order in the scene tree branch. For example, if called on the first child node the position is @0@.\nget_position_in_parent ::\n                         (Node :< cls, Object :< cls) => cls -> IO Int\nget_position_in_parent cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_position_in_parent (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_position_in_parent\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Node.get_position_in_parent\n\n{-# NOINLINE bindNode_get_process_delta_time #-}\n\n-- | Returns the time elapsed (in seconds) since the last process callback. This value may vary from frame to frame.\nbindNode_get_process_delta_time :: MethodBind\nbindNode_get_process_delta_time\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_process_delta_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the time elapsed (in seconds) since the last process callback. This value may vary from frame to frame.\nget_process_delta_time ::\n                         (Node :< cls, Object :< cls) => cls -> IO Float\nget_process_delta_time cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_process_delta_time (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_process_delta_time\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Node.get_process_delta_time\n\n{-# NOINLINE bindNode_get_process_priority #-}\n\n-- | The node's priority in the execution order of the enabled processing callbacks (i.e. @NOTIFICATION_PROCESS@, @NOTIFICATION_PHYSICS_PROCESS@ and their internal counterparts). Nodes whose process priority value is @i@lower@/i@ will have their processing callbacks executed first.\nbindNode_get_process_priority :: MethodBind\nbindNode_get_process_priority\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_process_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's priority in the execution order of the enabled processing callbacks (i.e. @NOTIFICATION_PROCESS@, @NOTIFICATION_PHYSICS_PROCESS@ and their internal counterparts). Nodes whose process priority value is @i@lower@/i@ will have their processing callbacks executed first.\nget_process_priority ::\n                       (Node :< cls, Object :< cls) => cls -> IO Int\nget_process_priority cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_process_priority (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_process_priority\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Node.get_process_priority\n\n{-# NOINLINE bindNode_get_scene_instance_load_placeholder #-}\n\n-- | Returns @true@ if this is an instance load placeholder. See @InstancePlaceholder@.\nbindNode_get_scene_instance_load_placeholder :: MethodBind\nbindNode_get_scene_instance_load_placeholder\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_scene_instance_load_placeholder\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this is an instance load placeholder. See @InstancePlaceholder@.\nget_scene_instance_load_placeholder ::\n                                      (Node :< cls, Object :< cls) => cls -> IO Bool\nget_scene_instance_load_placeholder cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_scene_instance_load_placeholder\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_scene_instance_load_placeholder\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Node.get_scene_instance_load_placeholder\n\n{-# NOINLINE bindNode_get_tree #-}\n\n-- | Returns the @SceneTree@ that contains this node.\nbindNode_get_tree :: MethodBind\nbindNode_get_tree\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @SceneTree@ that contains this node.\nget_tree :: (Node :< cls, Object :< cls) => cls -> IO SceneTree\nget_tree cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_tree (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_tree\" '[] (IO SceneTree) where\n        nodeMethod = Godot.Core.Node.get_tree\n\n{-# NOINLINE bindNode_get_viewport #-}\n\n-- | Returns the node's @Viewport@.\nbindNode_get_viewport :: MethodBind\nbindNode_get_viewport\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"get_viewport\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the node's @Viewport@.\nget_viewport :: (Node :< cls, Object :< cls) => cls -> IO Viewport\nget_viewport cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_get_viewport (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"get_viewport\" '[] (IO Viewport) where\n        nodeMethod = Godot.Core.Node.get_viewport\n\n{-# NOINLINE bindNode_has_node #-}\n\n-- | Returns @true@ if the node that the @NodePath@ points to exists.\nbindNode_has_node :: MethodBind\nbindNode_has_node\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"has_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the node that the @NodePath@ points to exists.\nhas_node ::\n           (Node :< cls, Object :< cls) => cls -> NodePath -> IO Bool\nhas_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_has_node (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"has_node\" '[NodePath] (IO Bool) where\n        nodeMethod = Godot.Core.Node.has_node\n\n{-# NOINLINE bindNode_has_node_and_resource #-}\n\n-- | Returns @true@ if the @NodePath@ points to a valid node and its subname points to a valid resource, e.g. @Area2D/CollisionShape2D:shape@. Properties with a non-@Resource@ type (e.g. nodes or primitive math types) are not considered resources.\nbindNode_has_node_and_resource :: MethodBind\nbindNode_has_node_and_resource\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"has_node_and_resource\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the @NodePath@ points to a valid node and its subname points to a valid resource, e.g. @Area2D/CollisionShape2D:shape@. Properties with a non-@Resource@ type (e.g. nodes or primitive math types) are not considered resources.\nhas_node_and_resource ::\n                        (Node :< cls, Object :< cls) => cls -> NodePath -> IO Bool\nhas_node_and_resource cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_has_node_and_resource (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"has_node_and_resource\" '[NodePath]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Node.has_node_and_resource\n\n{-# NOINLINE bindNode_is_a_parent_of #-}\n\n-- | Returns @true@ if the given node is a direct or indirect child of the current node.\nbindNode_is_a_parent_of :: MethodBind\nbindNode_is_a_parent_of\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"is_a_parent_of\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the given node is a direct or indirect child of the current node.\nis_a_parent_of ::\n                 (Node :< cls, Object :< cls) => cls -> Node -> IO Bool\nis_a_parent_of cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_is_a_parent_of (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"is_a_parent_of\" '[Node] (IO Bool) where\n        nodeMethod = Godot.Core.Node.is_a_parent_of\n\n{-# NOINLINE bindNode_is_displayed_folded #-}\n\n-- | Returns @true@ if the node is folded (collapsed) in the Scene dock.\nbindNode_is_displayed_folded :: MethodBind\nbindNode_is_displayed_folded\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"is_displayed_folded\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the node is folded (collapsed) in the Scene dock.\nis_displayed_folded ::\n                      (Node :< cls, Object :< cls) => cls -> IO Bool\nis_displayed_folded cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_is_displayed_folded (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"is_displayed_folded\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Node.is_displayed_folded\n\n{-# NOINLINE bindNode_is_greater_than #-}\n\n-- | Returns @true@ if the given node occurs later in the scene hierarchy than the current node.\nbindNode_is_greater_than :: MethodBind\nbindNode_is_greater_than\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"is_greater_than\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the given node occurs later in the scene hierarchy than the current node.\nis_greater_than ::\n                  (Node :< cls, Object :< cls) => cls -> Node -> IO Bool\nis_greater_than cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_is_greater_than (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"is_greater_than\" '[Node] (IO Bool) where\n        nodeMethod = Godot.Core.Node.is_greater_than\n\n{-# NOINLINE bindNode_is_in_group #-}\n\n-- | Returns @true@ if this node is in the specified group. See notes in the description, and the group methods in @SceneTree@.\nbindNode_is_in_group :: MethodBind\nbindNode_is_in_group\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"is_in_group\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this node is in the specified group. See notes in the description, and the group methods in @SceneTree@.\nis_in_group ::\n              (Node :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nis_in_group cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_is_in_group (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"is_in_group\" '[GodotString] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Node.is_in_group\n\n{-# NOINLINE bindNode_is_inside_tree #-}\n\n-- | Returns @true@ if this node is currently inside a @SceneTree@.\nbindNode_is_inside_tree :: MethodBind\nbindNode_is_inside_tree\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"is_inside_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this node is currently inside a @SceneTree@.\nis_inside_tree :: (Node :< cls, Object :< cls) => cls -> IO Bool\nis_inside_tree cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_is_inside_tree (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"is_inside_tree\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Node.is_inside_tree\n\n{-# NOINLINE bindNode_is_network_master #-}\n\n-- | Returns @true@ if the local system is the master of this node.\nbindNode_is_network_master :: MethodBind\nbindNode_is_network_master\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"is_network_master\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the local system is the master of this node.\nis_network_master :: (Node :< cls, Object :< cls) => cls -> IO Bool\nis_network_master cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_is_network_master (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"is_network_master\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Node.is_network_master\n\n{-# NOINLINE bindNode_is_physics_processing #-}\n\n-- | Returns @true@ if physics processing is enabled (see @method set_physics_process@).\nbindNode_is_physics_processing :: MethodBind\nbindNode_is_physics_processing\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"is_physics_processing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if physics processing is enabled (see @method set_physics_process@).\nis_physics_processing ::\n                        (Node :< cls, Object :< cls) => cls -> IO Bool\nis_physics_processing cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_is_physics_processing (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"is_physics_processing\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Node.is_physics_processing\n\n{-# NOINLINE bindNode_is_physics_processing_internal #-}\n\n-- | Returns @true@ if internal physics processing is enabled (see @method set_physics_process_internal@).\nbindNode_is_physics_processing_internal :: MethodBind\nbindNode_is_physics_processing_internal\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"is_physics_processing_internal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if internal physics processing is enabled (see @method set_physics_process_internal@).\nis_physics_processing_internal ::\n                                 (Node :< cls, Object :< cls) => cls -> IO Bool\nis_physics_processing_internal cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_is_physics_processing_internal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"is_physics_processing_internal\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Node.is_physics_processing_internal\n\n{-# NOINLINE bindNode_is_processing #-}\n\n-- | Returns @true@ if processing is enabled (see @method set_process@).\nbindNode_is_processing :: MethodBind\nbindNode_is_processing\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"is_processing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if processing is enabled (see @method set_process@).\nis_processing :: (Node :< cls, Object :< cls) => cls -> IO Bool\nis_processing cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_is_processing (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"is_processing\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Node.is_processing\n\n{-# NOINLINE bindNode_is_processing_input #-}\n\n-- | Returns @true@ if the node is processing input (see @method set_process_input@).\nbindNode_is_processing_input :: MethodBind\nbindNode_is_processing_input\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"is_processing_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the node is processing input (see @method set_process_input@).\nis_processing_input ::\n                      (Node :< cls, Object :< cls) => cls -> IO Bool\nis_processing_input cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_is_processing_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"is_processing_input\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Node.is_processing_input\n\n{-# NOINLINE bindNode_is_processing_internal #-}\n\n-- | Returns @true@ if internal processing is enabled (see @method set_process_internal@).\nbindNode_is_processing_internal :: MethodBind\nbindNode_is_processing_internal\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"is_processing_internal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if internal processing is enabled (see @method set_process_internal@).\nis_processing_internal ::\n                         (Node :< cls, Object :< cls) => cls -> IO Bool\nis_processing_internal cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_is_processing_internal (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"is_processing_internal\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Node.is_processing_internal\n\n{-# NOINLINE bindNode_is_processing_unhandled_input #-}\n\n-- | Returns @true@ if the node is processing unhandled input (see @method set_process_unhandled_input@).\nbindNode_is_processing_unhandled_input :: MethodBind\nbindNode_is_processing_unhandled_input\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"is_processing_unhandled_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the node is processing unhandled input (see @method set_process_unhandled_input@).\nis_processing_unhandled_input ::\n                                (Node :< cls, Object :< cls) => cls -> IO Bool\nis_processing_unhandled_input cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_is_processing_unhandled_input\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"is_processing_unhandled_input\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Node.is_processing_unhandled_input\n\n{-# NOINLINE bindNode_is_processing_unhandled_key_input #-}\n\n-- | Returns @true@ if the node is processing unhandled key input (see @method set_process_unhandled_key_input@).\nbindNode_is_processing_unhandled_key_input :: MethodBind\nbindNode_is_processing_unhandled_key_input\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"is_processing_unhandled_key_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the node is processing unhandled key input (see @method set_process_unhandled_key_input@).\nis_processing_unhandled_key_input ::\n                                    (Node :< cls, Object :< cls) => cls -> IO Bool\nis_processing_unhandled_key_input cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_is_processing_unhandled_key_input\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"is_processing_unhandled_key_input\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Node.is_processing_unhandled_key_input\n\n{-# NOINLINE bindNode_move_child #-}\n\n-- | Moves a child node to a different position (order) among the other children. Since calls, signals, etc are performed by tree order, changing the order of children nodes may be useful.\nbindNode_move_child :: MethodBind\nbindNode_move_child\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"move_child\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves a child node to a different position (order) among the other children. Since calls, signals, etc are performed by tree order, changing the order of children nodes may be useful.\nmove_child ::\n             (Node :< cls, Object :< cls) => cls -> Node -> Int -> IO ()\nmove_child cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_move_child (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"move_child\" '[Node, Int] (IO ()) where\n        nodeMethod = Godot.Core.Node.move_child\n\n{-# NOINLINE bindNode_print_stray_nodes #-}\n\n-- | Prints all stray nodes (nodes outside the @SceneTree@). Used for debugging. Works only in debug builds.\nbindNode_print_stray_nodes :: MethodBind\nbindNode_print_stray_nodes\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"print_stray_nodes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Prints all stray nodes (nodes outside the @SceneTree@). Used for debugging. Works only in debug builds.\nprint_stray_nodes :: (Node :< cls, Object :< cls) => cls -> IO ()\nprint_stray_nodes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_print_stray_nodes (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"print_stray_nodes\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Node.print_stray_nodes\n\n{-# NOINLINE bindNode_print_tree #-}\n\n-- | Prints the tree to stdout. Used mainly for debugging purposes. This version displays the path relative to the current node, and is good for copy/pasting into the @method get_node@ function.\n--   \t\t\t\t__Example output:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tTheGame\n--   \t\t\t\tTheGame/Menu\n--   \t\t\t\tTheGame/Menu/Label\n--   \t\t\t\tTheGame/Menu/Camera2D\n--   \t\t\t\tTheGame/SplashScreen\n--   \t\t\t\tTheGame/SplashScreen/Camera2D\n--   \t\t\t\t\n--   @\nbindNode_print_tree :: MethodBind\nbindNode_print_tree\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"print_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Prints the tree to stdout. Used mainly for debugging purposes. This version displays the path relative to the current node, and is good for copy/pasting into the @method get_node@ function.\n--   \t\t\t\t__Example output:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tTheGame\n--   \t\t\t\tTheGame/Menu\n--   \t\t\t\tTheGame/Menu/Label\n--   \t\t\t\tTheGame/Menu/Camera2D\n--   \t\t\t\tTheGame/SplashScreen\n--   \t\t\t\tTheGame/SplashScreen/Camera2D\n--   \t\t\t\t\n--   @\nprint_tree :: (Node :< cls, Object :< cls) => cls -> IO ()\nprint_tree cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_print_tree (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"print_tree\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Node.print_tree\n\n{-# NOINLINE bindNode_print_tree_pretty #-}\n\n-- | Similar to @method print_tree@, this prints the tree to stdout. This version displays a more graphical representation similar to what is displayed in the scene inspector. It is useful for inspecting larger trees.\n--   \t\t\t\t__Example output:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t ┖╴TheGame\n--   \t\t\t\t    ┠╴Menu\n--   \t\t\t\t    ┃  ┠╴Label\n--   \t\t\t\t    ┃  ┖╴Camera2D\n--   \t\t\t\t    ┖╴SplashScreen\n--   \t\t\t\t       ┖╴Camera2D\n--   \t\t\t\t\n--   @\nbindNode_print_tree_pretty :: MethodBind\nbindNode_print_tree_pretty\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"print_tree_pretty\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Similar to @method print_tree@, this prints the tree to stdout. This version displays a more graphical representation similar to what is displayed in the scene inspector. It is useful for inspecting larger trees.\n--   \t\t\t\t__Example output:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t ┖╴TheGame\n--   \t\t\t\t    ┠╴Menu\n--   \t\t\t\t    ┃  ┠╴Label\n--   \t\t\t\t    ┃  ┖╴Camera2D\n--   \t\t\t\t    ┖╴SplashScreen\n--   \t\t\t\t       ┖╴Camera2D\n--   \t\t\t\t\n--   @\nprint_tree_pretty :: (Node :< cls, Object :< cls) => cls -> IO ()\nprint_tree_pretty cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_print_tree_pretty (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"print_tree_pretty\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Node.print_tree_pretty\n\n{-# NOINLINE bindNode_propagate_call #-}\n\n-- | Calls the given method (if present) with the arguments given in @args@ on this node and recursively on all its children. If the @parent_first@ argument is @true@, the method will be called on the current node first, then on all its children. If @parent_first@ is @false@, the children will be called first.\nbindNode_propagate_call :: MethodBind\nbindNode_propagate_call\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"propagate_call\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calls the given method (if present) with the arguments given in @args@ on this node and recursively on all its children. If the @parent_first@ argument is @true@, the method will be called on the current node first, then on all its children. If @parent_first@ is @false@, the children will be called first.\npropagate_call ::\n                 (Node :< cls, Object :< cls) =>\n                 cls -> GodotString -> Maybe Array -> Maybe Bool -> IO ()\npropagate_call cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantArray V.empty arg2,\n       maybe (VariantBool False) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_propagate_call (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"propagate_call\"\n           '[GodotString, Maybe Array, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node.propagate_call\n\n{-# NOINLINE bindNode_propagate_notification #-}\n\n-- | Notifies the current node and all its children recursively by calling @method Object.notification@ on all of them.\nbindNode_propagate_notification :: MethodBind\nbindNode_propagate_notification\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"propagate_notification\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Notifies the current node and all its children recursively by calling @method Object.notification@ on all of them.\npropagate_notification ::\n                         (Node :< cls, Object :< cls) => cls -> Int -> IO ()\npropagate_notification cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_propagate_notification (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"propagate_notification\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Node.propagate_notification\n\n{-# NOINLINE bindNode_queue_free #-}\n\n-- | Queues a node for deletion at the end of the current frame. When deleted, all of its child nodes will be deleted as well. This method ensures it's safe to delete the node, contrary to @method Object.free@. Use @method Object.is_queued_for_deletion@ to check whether a node will be deleted at the end of the frame.\nbindNode_queue_free :: MethodBind\nbindNode_queue_free\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"queue_free\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Queues a node for deletion at the end of the current frame. When deleted, all of its child nodes will be deleted as well. This method ensures it's safe to delete the node, contrary to @method Object.free@. Use @method Object.is_queued_for_deletion@ to check whether a node will be deleted at the end of the frame.\nqueue_free :: (Node :< cls, Object :< cls) => cls -> IO ()\nqueue_free cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_queue_free (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"queue_free\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Node.queue_free\n\n{-# NOINLINE bindNode_raise #-}\n\n-- | Moves this node to the bottom of parent node's children hierarchy. This is often useful in GUIs (@Control@ nodes), because their order of drawing depends on their order in the tree, i.e. the further they are on the node list, the higher they are drawn. After using @raise@, a Control will be drawn on top of their siblings.\nbindNode_raise :: MethodBind\nbindNode_raise\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"raise\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves this node to the bottom of parent node's children hierarchy. This is often useful in GUIs (@Control@ nodes), because their order of drawing depends on their order in the tree, i.e. the further they are on the node list, the higher they are drawn. After using @raise@, a Control will be drawn on top of their siblings.\nraise :: (Node :< cls, Object :< cls) => cls -> IO ()\nraise cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_raise (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"raise\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Node.raise\n\n{-# NOINLINE bindNode_remove_and_skip #-}\n\n-- | Removes a node and sets all its children as children of the parent node (if it exists). All event subscriptions that pass by the removed node will be unsubscribed.\nbindNode_remove_and_skip :: MethodBind\nbindNode_remove_and_skip\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"remove_and_skip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a node and sets all its children as children of the parent node (if it exists). All event subscriptions that pass by the removed node will be unsubscribed.\nremove_and_skip :: (Node :< cls, Object :< cls) => cls -> IO ()\nremove_and_skip cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_remove_and_skip (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"remove_and_skip\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Node.remove_and_skip\n\n{-# NOINLINE bindNode_remove_child #-}\n\n-- | Removes a child node. The node is NOT deleted and must be deleted manually.\nbindNode_remove_child :: MethodBind\nbindNode_remove_child\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"remove_child\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a child node. The node is NOT deleted and must be deleted manually.\nremove_child ::\n               (Node :< cls, Object :< cls) => cls -> Node -> IO ()\nremove_child cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_remove_child (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"remove_child\" '[Node] (IO ()) where\n        nodeMethod = Godot.Core.Node.remove_child\n\n{-# NOINLINE bindNode_remove_from_group #-}\n\n-- | Removes a node from a group. See notes in the description, and the group methods in @SceneTree@.\nbindNode_remove_from_group :: MethodBind\nbindNode_remove_from_group\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"remove_from_group\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a node from a group. See notes in the description, and the group methods in @SceneTree@.\nremove_from_group ::\n                    (Node :< cls, Object :< cls) => cls -> GodotString -> IO ()\nremove_from_group cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_remove_from_group (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"remove_from_group\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.Node.remove_from_group\n\n{-# NOINLINE bindNode_replace_by #-}\n\n-- | Replaces a node in a scene by the given one. Subscriptions that pass through this node will be lost.\nbindNode_replace_by :: MethodBind\nbindNode_replace_by\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"replace_by\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Replaces a node in a scene by the given one. Subscriptions that pass through this node will be lost.\nreplace_by ::\n             (Node :< cls, Object :< cls) => cls -> Node -> Maybe Bool -> IO ()\nreplace_by cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_replace_by (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"replace_by\" '[Node, Maybe Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Node.replace_by\n\n{-# NOINLINE bindNode_request_ready #-}\n\n-- | Requests that @_ready@ be called again. Note that the method won't be called immediately, but is scheduled for when the node is added to the scene tree again (see @method _ready@). @_ready@ is called only for the node which requested it, which means that you need to request ready for each child if you want them to call @_ready@ too (in which case, @_ready@ will be called in the same order as it would normally).\nbindNode_request_ready :: MethodBind\nbindNode_request_ready\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"request_ready\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Requests that @_ready@ be called again. Note that the method won't be called immediately, but is scheduled for when the node is added to the scene tree again (see @method _ready@). @_ready@ is called only for the node which requested it, which means that you need to request ready for each child if you want them to call @_ready@ too (in which case, @_ready@ will be called in the same order as it would normally).\nrequest_ready :: (Node :< cls, Object :< cls) => cls -> IO ()\nrequest_ready cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_request_ready (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"request_ready\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Node.request_ready\n\n{-# NOINLINE bindNode_rpc #-}\n\n-- | Sends a remote procedure call request for the given @method@ to peers on the network (and locally), optionally sending all additional arguments as arguments to the method called by the RPC. The call request will only be received by nodes with the same @NodePath@, including the exact same node name. Behaviour depends on the RPC configuration for the given method, see @method rpc_config@. Methods are not exposed to RPCs by default. See also @method rset@ and @method rset_config@ for properties. Returns an empty @Variant@.\n--   \t\t\t\t__Note:__ You can only safely use RPCs on clients after you received the @connected_to_server@ signal from the @SceneTree@. You also need to keep track of the connection state, either by the @SceneTree@ signals like @server_disconnected@ or by checking @SceneTree.network_peer.get_connection_status() == CONNECTION_CONNECTED@.\nbindNode_rpc :: MethodBind\nbindNode_rpc\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"rpc\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sends a remote procedure call request for the given @method@ to peers on the network (and locally), optionally sending all additional arguments as arguments to the method called by the RPC. The call request will only be received by nodes with the same @NodePath@, including the exact same node name. Behaviour depends on the RPC configuration for the given method, see @method rpc_config@. Methods are not exposed to RPCs by default. See also @method rset@ and @method rset_config@ for properties. Returns an empty @Variant@.\n--   \t\t\t\t__Note:__ You can only safely use RPCs on clients after you received the @connected_to_server@ signal from the @SceneTree@. You also need to keep track of the connection state, either by the @SceneTree@ signals like @server_disconnected@ or by checking @SceneTree.network_peer.get_connection_status() == CONNECTION_CONNECTED@.\nrpc ::\n      (Node :< cls, Object :< cls) =>\n      cls -> GodotString -> [Variant 'GodotTy] -> IO GodotVariant\nrpc cls arg1 varargs\n  = withVariantArray ([toVariant arg1] ++ varargs)\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_rpc (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"rpc\" '[GodotString, [Variant 'GodotTy]]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Node.rpc\n\n{-# NOINLINE bindNode_rpc_config #-}\n\n-- | Changes the RPC mode for the given @method@ to the given @mode@. See @enum MultiplayerAPI.RPCMode@. An alternative is annotating methods and properties with the corresponding keywords (@remote@, @master@, @puppet@, @remotesync@, @mastersync@, @puppetsync@). By default, methods are not exposed to networking (and RPCs). See also @method rset@ and @method rset_config@ for properties.\nbindNode_rpc_config :: MethodBind\nbindNode_rpc_config\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"rpc_config\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes the RPC mode for the given @method@ to the given @mode@. See @enum MultiplayerAPI.RPCMode@. An alternative is annotating methods and properties with the corresponding keywords (@remote@, @master@, @puppet@, @remotesync@, @mastersync@, @puppetsync@). By default, methods are not exposed to networking (and RPCs). See also @method rset@ and @method rset_config@ for properties.\nrpc_config ::\n             (Node :< cls, Object :< cls) => cls -> GodotString -> Int -> IO ()\nrpc_config cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_rpc_config (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"rpc_config\" '[GodotString, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Node.rpc_config\n\n{-# NOINLINE bindNode_rpc_id #-}\n\n-- | Sends a @method rpc@ to a specific peer identified by @peer_id@ (see @method NetworkedMultiplayerPeer.set_target_peer@). Returns an empty @Variant@.\nbindNode_rpc_id :: MethodBind\nbindNode_rpc_id\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"rpc_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sends a @method rpc@ to a specific peer identified by @peer_id@ (see @method NetworkedMultiplayerPeer.set_target_peer@). Returns an empty @Variant@.\nrpc_id ::\n         (Node :< cls, Object :< cls) =>\n         cls -> Int -> GodotString -> [Variant 'GodotTy] -> IO GodotVariant\nrpc_id cls arg1 arg2 varargs\n  = withVariantArray ([toVariant arg1, toVariant arg2] ++ varargs)\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_rpc_id (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"rpc_id\"\n           '[Int, GodotString, [Variant 'GodotTy]]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Node.rpc_id\n\n{-# NOINLINE bindNode_rpc_unreliable #-}\n\n-- | Sends a @method rpc@ using an unreliable protocol. Returns an empty @Variant@.\nbindNode_rpc_unreliable :: MethodBind\nbindNode_rpc_unreliable\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"rpc_unreliable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sends a @method rpc@ using an unreliable protocol. Returns an empty @Variant@.\nrpc_unreliable ::\n                 (Node :< cls, Object :< cls) =>\n                 cls -> GodotString -> [Variant 'GodotTy] -> IO GodotVariant\nrpc_unreliable cls arg1 varargs\n  = withVariantArray ([toVariant arg1] ++ varargs)\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_rpc_unreliable (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"rpc_unreliable\"\n           '[GodotString, [Variant 'GodotTy]]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Node.rpc_unreliable\n\n{-# NOINLINE bindNode_rpc_unreliable_id #-}\n\n-- | Sends a @method rpc@ to a specific peer identified by @peer_id@ using an unreliable protocol (see @method NetworkedMultiplayerPeer.set_target_peer@). Returns an empty @Variant@.\nbindNode_rpc_unreliable_id :: MethodBind\nbindNode_rpc_unreliable_id\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"rpc_unreliable_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sends a @method rpc@ to a specific peer identified by @peer_id@ using an unreliable protocol (see @method NetworkedMultiplayerPeer.set_target_peer@). Returns an empty @Variant@.\nrpc_unreliable_id ::\n                    (Node :< cls, Object :< cls) =>\n                    cls -> Int -> GodotString -> [Variant 'GodotTy] -> IO GodotVariant\nrpc_unreliable_id cls arg1 arg2 varargs\n  = withVariantArray ([toVariant arg1, toVariant arg2] ++ varargs)\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_rpc_unreliable_id (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"rpc_unreliable_id\"\n           '[Int, GodotString, [Variant 'GodotTy]]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Node.rpc_unreliable_id\n\n{-# NOINLINE bindNode_rset #-}\n\n-- | Remotely changes a property's value on other peers (and locally). Behaviour depends on the RPC configuration for the given property, see @method rset_config@. See also @method rpc@ for RPCs for methods, most information applies to this method as well.\nbindNode_rset :: MethodBind\nbindNode_rset\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"rset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Remotely changes a property's value on other peers (and locally). Behaviour depends on the RPC configuration for the given property, see @method rset_config@. See also @method rpc@ for RPCs for methods, most information applies to this method as well.\nrset ::\n       (Node :< cls, Object :< cls) =>\n       cls -> GodotString -> GodotVariant -> IO ()\nrset cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_rset (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"rset\" '[GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node.rset\n\n{-# NOINLINE bindNode_rset_config #-}\n\n-- | Changes the RPC mode for the given @property@ to the given @mode@. See @enum MultiplayerAPI.RPCMode@. An alternative is annotating methods and properties with the corresponding keywords (@remote@, @master@, @puppet@, @remotesync@, @mastersync@, @puppetsync@). By default, properties are not exposed to networking (and RPCs). See also @method rpc@ and @method rpc_config@ for methods.\nbindNode_rset_config :: MethodBind\nbindNode_rset_config\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"rset_config\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes the RPC mode for the given @property@ to the given @mode@. See @enum MultiplayerAPI.RPCMode@. An alternative is annotating methods and properties with the corresponding keywords (@remote@, @master@, @puppet@, @remotesync@, @mastersync@, @puppetsync@). By default, properties are not exposed to networking (and RPCs). See also @method rpc@ and @method rpc_config@ for methods.\nrset_config ::\n              (Node :< cls, Object :< cls) => cls -> GodotString -> Int -> IO ()\nrset_config cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_rset_config (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"rset_config\" '[GodotString, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Node.rset_config\n\n{-# NOINLINE bindNode_rset_id #-}\n\n-- | Remotely changes the property's value on a specific peer identified by @peer_id@ (see @method NetworkedMultiplayerPeer.set_target_peer@).\nbindNode_rset_id :: MethodBind\nbindNode_rset_id\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"rset_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Remotely changes the property's value on a specific peer identified by @peer_id@ (see @method NetworkedMultiplayerPeer.set_target_peer@).\nrset_id ::\n          (Node :< cls, Object :< cls) =>\n          cls -> Int -> GodotString -> GodotVariant -> IO ()\nrset_id cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_rset_id (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"rset_id\"\n           '[Int, GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node.rset_id\n\n{-# NOINLINE bindNode_rset_unreliable #-}\n\n-- | Remotely changes the property's value on other peers (and locally) using an unreliable protocol.\nbindNode_rset_unreliable :: MethodBind\nbindNode_rset_unreliable\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"rset_unreliable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Remotely changes the property's value on other peers (and locally) using an unreliable protocol.\nrset_unreliable ::\n                  (Node :< cls, Object :< cls) =>\n                  cls -> GodotString -> GodotVariant -> IO ()\nrset_unreliable cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_rset_unreliable (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"rset_unreliable\"\n           '[GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node.rset_unreliable\n\n{-# NOINLINE bindNode_rset_unreliable_id #-}\n\n-- | Remotely changes property's value on a specific peer identified by @peer_id@ using an unreliable protocol (see @method NetworkedMultiplayerPeer.set_target_peer@).\nbindNode_rset_unreliable_id :: MethodBind\nbindNode_rset_unreliable_id\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"rset_unreliable_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Remotely changes property's value on a specific peer identified by @peer_id@ using an unreliable protocol (see @method NetworkedMultiplayerPeer.set_target_peer@).\nrset_unreliable_id ::\n                     (Node :< cls, Object :< cls) =>\n                     cls -> Int -> GodotString -> GodotVariant -> IO ()\nrset_unreliable_id cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_rset_unreliable_id (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"rset_unreliable_id\"\n           '[Int, GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node.rset_unreliable_id\n\n{-# NOINLINE bindNode_set_custom_multiplayer #-}\n\n-- | The override to the default @MultiplayerAPI@. Set to @null@ to use the default @SceneTree@ one.\nbindNode_set_custom_multiplayer :: MethodBind\nbindNode_set_custom_multiplayer\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"set_custom_multiplayer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The override to the default @MultiplayerAPI@. Set to @null@ to use the default @SceneTree@ one.\nset_custom_multiplayer ::\n                         (Node :< cls, Object :< cls) => cls -> MultiplayerAPI -> IO ()\nset_custom_multiplayer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_set_custom_multiplayer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"set_custom_multiplayer\" '[MultiplayerAPI]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node.set_custom_multiplayer\n\n{-# NOINLINE bindNode_set_display_folded #-}\n\n-- | Sets the folded state of the node in the Scene dock.\nbindNode_set_display_folded :: MethodBind\nbindNode_set_display_folded\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"set_display_folded\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the folded state of the node in the Scene dock.\nset_display_folded ::\n                     (Node :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_display_folded cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_set_display_folded (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"set_display_folded\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Node.set_display_folded\n\n{-# NOINLINE bindNode_set_filename #-}\n\n-- | When a scene is instanced from a file, its topmost node contains the filename from which it was loaded.\nbindNode_set_filename :: MethodBind\nbindNode_set_filename\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"set_filename\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | When a scene is instanced from a file, its topmost node contains the filename from which it was loaded.\nset_filename ::\n               (Node :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_filename cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_set_filename (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"set_filename\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.Node.set_filename\n\n{-# NOINLINE bindNode_set_name #-}\n\n-- | The name of the node. This name is unique among the siblings (other child nodes from the same parent). When set to an existing name, the node will be automatically renamed.\nbindNode_set_name :: MethodBind\nbindNode_set_name\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"set_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The name of the node. This name is unique among the siblings (other child nodes from the same parent). When set to an existing name, the node will be automatically renamed.\nset_name ::\n           (Node :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_set_name (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"set_name\" '[GodotString] (IO ()) where\n        nodeMethod = Godot.Core.Node.set_name\n\n{-# NOINLINE bindNode_set_network_master #-}\n\n-- | Sets the node's network master to the peer with the given peer ID. The network master is the peer that has authority over the node on the network. Useful in conjunction with the @master@ and @puppet@ keywords. Inherited from the parent node by default, which ultimately defaults to peer ID 1 (the server). If @recursive@, the given peer is recursively set as the master for all children of this node.\nbindNode_set_network_master :: MethodBind\nbindNode_set_network_master\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"set_network_master\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the node's network master to the peer with the given peer ID. The network master is the peer that has authority over the node on the network. Useful in conjunction with the @master@ and @puppet@ keywords. Inherited from the parent node by default, which ultimately defaults to peer ID 1 (the server). If @recursive@, the given peer is recursively set as the master for all children of this node.\nset_network_master ::\n                     (Node :< cls, Object :< cls) => cls -> Int -> Maybe Bool -> IO ()\nset_network_master cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool True) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_set_network_master (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"set_network_master\" '[Int, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node.set_network_master\n\n{-# NOINLINE bindNode_set_owner #-}\n\n-- | The node owner. A node can have any other node as owner (as long as it is a valid parent, grandparent, etc. ascending in the tree). When saving a node (using @PackedScene@), all the nodes it owns will be saved with it. This allows for the creation of complex @SceneTree@s, with instancing and subinstancing.\nbindNode_set_owner :: MethodBind\nbindNode_set_owner\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"set_owner\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node owner. A node can have any other node as owner (as long as it is a valid parent, grandparent, etc. ascending in the tree). When saving a node (using @PackedScene@), all the nodes it owns will be saved with it. This allows for the creation of complex @SceneTree@s, with instancing and subinstancing.\nset_owner :: (Node :< cls, Object :< cls) => cls -> Node -> IO ()\nset_owner cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_set_owner (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"set_owner\" '[Node] (IO ()) where\n        nodeMethod = Godot.Core.Node.set_owner\n\n{-# NOINLINE bindNode_set_pause_mode #-}\n\n-- | Pause mode. How the node will behave if the @SceneTree@ is paused.\nbindNode_set_pause_mode :: MethodBind\nbindNode_set_pause_mode\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"set_pause_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Pause mode. How the node will behave if the @SceneTree@ is paused.\nset_pause_mode ::\n                 (Node :< cls, Object :< cls) => cls -> Int -> IO ()\nset_pause_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_set_pause_mode (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"set_pause_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Node.set_pause_mode\n\n{-# NOINLINE bindNode_set_physics_process #-}\n\n-- | Enables or disables physics (i.e. fixed framerate) processing. When a node is being processed, it will receive a @NOTIFICATION_PHYSICS_PROCESS@ at a fixed (usually 60 FPS, see @Engine.iterations_per_second@ to change) interval (and the @method _physics_process@ callback will be called if exists). Enabled automatically if @method _physics_process@ is overridden. Any calls to this before @method _ready@ will be ignored.\nbindNode_set_physics_process :: MethodBind\nbindNode_set_physics_process\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"set_physics_process\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables or disables physics (i.e. fixed framerate) processing. When a node is being processed, it will receive a @NOTIFICATION_PHYSICS_PROCESS@ at a fixed (usually 60 FPS, see @Engine.iterations_per_second@ to change) interval (and the @method _physics_process@ callback will be called if exists). Enabled automatically if @method _physics_process@ is overridden. Any calls to this before @method _ready@ will be ignored.\nset_physics_process ::\n                      (Node :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_physics_process cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_set_physics_process (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"set_physics_process\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Node.set_physics_process\n\n{-# NOINLINE bindNode_set_physics_process_internal #-}\n\n-- | Enables or disables internal physics for this node. Internal physics processing happens in isolation from the normal @method _physics_process@ calls and is used by some nodes internally to guarantee proper functioning even if the node is paused or physics processing is disabled for scripting (@method set_physics_process@). Only useful for advanced uses to manipulate built-in nodes' behaviour.\nbindNode_set_physics_process_internal :: MethodBind\nbindNode_set_physics_process_internal\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"set_physics_process_internal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables or disables internal physics for this node. Internal physics processing happens in isolation from the normal @method _physics_process@ calls and is used by some nodes internally to guarantee proper functioning even if the node is paused or physics processing is disabled for scripting (@method set_physics_process@). Only useful for advanced uses to manipulate built-in nodes' behaviour.\nset_physics_process_internal ::\n                               (Node :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_physics_process_internal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_set_physics_process_internal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"set_physics_process_internal\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node.set_physics_process_internal\n\n{-# NOINLINE bindNode_set_process #-}\n\n-- | Enables or disables processing. When a node is being processed, it will receive a @NOTIFICATION_PROCESS@ on every drawn frame (and the @method _process@ callback will be called if exists). Enabled automatically if @method _process@ is overridden. Any calls to this before @method _ready@ will be ignored.\nbindNode_set_process :: MethodBind\nbindNode_set_process\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"set_process\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables or disables processing. When a node is being processed, it will receive a @NOTIFICATION_PROCESS@ on every drawn frame (and the @method _process@ callback will be called if exists). Enabled automatically if @method _process@ is overridden. Any calls to this before @method _ready@ will be ignored.\nset_process :: (Node :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_process cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_set_process (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"set_process\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Node.set_process\n\n{-# NOINLINE bindNode_set_process_input #-}\n\n-- | Enables or disables input processing. This is not required for GUI controls! Enabled automatically if @method _input@ is overridden. Any calls to this before @method _ready@ will be ignored.\nbindNode_set_process_input :: MethodBind\nbindNode_set_process_input\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"set_process_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables or disables input processing. This is not required for GUI controls! Enabled automatically if @method _input@ is overridden. Any calls to this before @method _ready@ will be ignored.\nset_process_input ::\n                    (Node :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_process_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_set_process_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"set_process_input\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Node.set_process_input\n\n{-# NOINLINE bindNode_set_process_internal #-}\n\n-- | Enables or disabled internal processing for this node. Internal processing happens in isolation from the normal @method _process@ calls and is used by some nodes internally to guarantee proper functioning even if the node is paused or processing is disabled for scripting (@method set_process@). Only useful for advanced uses to manipulate built-in nodes' behaviour.\nbindNode_set_process_internal :: MethodBind\nbindNode_set_process_internal\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"set_process_internal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables or disabled internal processing for this node. Internal processing happens in isolation from the normal @method _process@ calls and is used by some nodes internally to guarantee proper functioning even if the node is paused or processing is disabled for scripting (@method set_process@). Only useful for advanced uses to manipulate built-in nodes' behaviour.\nset_process_internal ::\n                       (Node :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_process_internal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_set_process_internal (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"set_process_internal\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Node.set_process_internal\n\n{-# NOINLINE bindNode_set_process_priority #-}\n\n-- | The node's priority in the execution order of the enabled processing callbacks (i.e. @NOTIFICATION_PROCESS@, @NOTIFICATION_PHYSICS_PROCESS@ and their internal counterparts). Nodes whose process priority value is @i@lower@/i@ will have their processing callbacks executed first.\nbindNode_set_process_priority :: MethodBind\nbindNode_set_process_priority\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"set_process_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's priority in the execution order of the enabled processing callbacks (i.e. @NOTIFICATION_PROCESS@, @NOTIFICATION_PHYSICS_PROCESS@ and their internal counterparts). Nodes whose process priority value is @i@lower@/i@ will have their processing callbacks executed first.\nset_process_priority ::\n                       (Node :< cls, Object :< cls) => cls -> Int -> IO ()\nset_process_priority cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_set_process_priority (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"set_process_priority\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Node.set_process_priority\n\n{-# NOINLINE bindNode_set_process_unhandled_input #-}\n\n-- | Enables unhandled input processing. This is not required for GUI controls! It enables the node to receive all input that was not previously handled (usually by a @Control@). Enabled automatically if @method _unhandled_input@ is overridden. Any calls to this before @method _ready@ will be ignored.\nbindNode_set_process_unhandled_input :: MethodBind\nbindNode_set_process_unhandled_input\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"set_process_unhandled_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables unhandled input processing. This is not required for GUI controls! It enables the node to receive all input that was not previously handled (usually by a @Control@). Enabled automatically if @method _unhandled_input@ is overridden. Any calls to this before @method _ready@ will be ignored.\nset_process_unhandled_input ::\n                              (Node :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_process_unhandled_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_set_process_unhandled_input\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"set_process_unhandled_input\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node.set_process_unhandled_input\n\n{-# NOINLINE bindNode_set_process_unhandled_key_input #-}\n\n-- | Enables unhandled key input processing. Enabled automatically if @method _unhandled_key_input@ is overridden. Any calls to this before @method _ready@ will be ignored.\nbindNode_set_process_unhandled_key_input :: MethodBind\nbindNode_set_process_unhandled_key_input\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"set_process_unhandled_key_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables unhandled key input processing. Enabled automatically if @method _unhandled_key_input@ is overridden. Any calls to this before @method _ready@ will be ignored.\nset_process_unhandled_key_input ::\n                                  (Node :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_process_unhandled_key_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_set_process_unhandled_key_input\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"set_process_unhandled_key_input\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node.set_process_unhandled_key_input\n\n{-# NOINLINE bindNode_set_scene_instance_load_placeholder #-}\n\n-- | Sets whether this is an instance load placeholder. See @InstancePlaceholder@.\nbindNode_set_scene_instance_load_placeholder :: MethodBind\nbindNode_set_scene_instance_load_placeholder\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"set_scene_instance_load_placeholder\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether this is an instance load placeholder. See @InstancePlaceholder@.\nset_scene_instance_load_placeholder ::\n                                      (Node :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_scene_instance_load_placeholder cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_set_scene_instance_load_placeholder\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"set_scene_instance_load_placeholder\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node.set_scene_instance_load_placeholder\n\n{-# NOINLINE bindNode_update_configuration_warning #-}\n\n-- | Updates the warning displayed for this node in the Scene Dock.\n--   \t\t\t\tUse @method _get_configuration_warning@ to setup the warning message to display.\nbindNode_update_configuration_warning :: MethodBind\nbindNode_update_configuration_warning\n  = unsafePerformIO $\n      withCString \"Node\" $\n        \\ clsNamePtr ->\n          withCString \"update_configuration_warning\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Updates the warning displayed for this node in the Scene Dock.\n--   \t\t\t\tUse @method _get_configuration_warning@ to setup the warning message to display.\nupdate_configuration_warning ::\n                               (Node :< cls, Object :< cls) => cls -> IO ()\nupdate_configuration_warning cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode_update_configuration_warning\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node \"update_configuration_warning\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.Node.update_configuration_warning"
  },
  {
    "path": "src/Godot/Core/Node2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Node2D\n       (Godot.Core.Node2D.get_global_transform,\n        Godot.Core.Node2D.get_transform, Godot.Core.Node2D.apply_scale,\n        Godot.Core.Node2D.get_angle_to,\n        Godot.Core.Node2D.get_global_position,\n        Godot.Core.Node2D.get_global_rotation,\n        Godot.Core.Node2D.get_global_rotation_degrees,\n        Godot.Core.Node2D.get_global_scale, Godot.Core.Node2D.get_position,\n        Godot.Core.Node2D.get_relative_transform_to_parent,\n        Godot.Core.Node2D.get_rotation,\n        Godot.Core.Node2D.get_rotation_degrees,\n        Godot.Core.Node2D.get_scale, Godot.Core.Node2D.get_z_index,\n        Godot.Core.Node2D.global_translate,\n        Godot.Core.Node2D.is_z_relative, Godot.Core.Node2D.look_at,\n        Godot.Core.Node2D.move_local_x, Godot.Core.Node2D.move_local_y,\n        Godot.Core.Node2D.rotate, Godot.Core.Node2D.set_global_position,\n        Godot.Core.Node2D.set_global_rotation,\n        Godot.Core.Node2D.set_global_rotation_degrees,\n        Godot.Core.Node2D.set_global_scale,\n        Godot.Core.Node2D.set_global_transform,\n        Godot.Core.Node2D.set_position, Godot.Core.Node2D.set_rotation,\n        Godot.Core.Node2D.set_rotation_degrees,\n        Godot.Core.Node2D.set_scale, Godot.Core.Node2D.set_transform,\n        Godot.Core.Node2D.set_z_as_relative, Godot.Core.Node2D.set_z_index,\n        Godot.Core.Node2D.to_global, Godot.Core.Node2D.to_local,\n        Godot.Core.Node2D.translate)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.CanvasItem()\n\ninstance NodeProperty Node2D \"global_position\" Vector2 'False where\n        nodeProperty\n          = (get_global_position, wrapDroppingSetter set_global_position,\n             Nothing)\n\ninstance NodeProperty Node2D \"global_rotation\" Float 'False where\n        nodeProperty\n          = (get_global_rotation, wrapDroppingSetter set_global_rotation,\n             Nothing)\n\ninstance NodeProperty Node2D \"global_rotation_degrees\" Float 'False\n         where\n        nodeProperty\n          = (get_global_rotation_degrees,\n             wrapDroppingSetter set_global_rotation_degrees, Nothing)\n\ninstance NodeProperty Node2D \"global_scale\" Vector2 'False where\n        nodeProperty\n          = (get_global_scale, wrapDroppingSetter set_global_scale, Nothing)\n\n{-# NOINLINE bindNode2D_get_global_transform #-}\n\n-- | Global @Transform2D@.\nbindNode2D_get_global_transform :: MethodBind\nbindNode2D_get_global_transform\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_global_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Global @Transform2D@.\nget_global_transform ::\n                       (Node2D :< cls, Object :< cls) => cls -> IO Transform2d\nget_global_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_get_global_transform (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"get_global_transform\" '[]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.Node2D.get_global_transform\n\ninstance NodeProperty Node2D \"global_transform\" Transform2d 'False\n         where\n        nodeProperty\n          = (get_global_transform, wrapDroppingSetter set_global_transform,\n             Nothing)\n\ninstance NodeProperty Node2D \"position\" Vector2 'False where\n        nodeProperty\n          = (get_position, wrapDroppingSetter set_position, Nothing)\n\ninstance NodeProperty Node2D \"rotation\" Float 'False where\n        nodeProperty\n          = (get_rotation, wrapDroppingSetter set_rotation, Nothing)\n\ninstance NodeProperty Node2D \"rotation_degrees\" Float 'False where\n        nodeProperty\n          = (get_rotation_degrees, wrapDroppingSetter set_rotation_degrees,\n             Nothing)\n\ninstance NodeProperty Node2D \"scale\" Vector2 'False where\n        nodeProperty = (get_scale, wrapDroppingSetter set_scale, Nothing)\n\n{-# NOINLINE bindNode2D_get_transform #-}\n\n-- | Local @Transform2D@.\nbindNode2D_get_transform :: MethodBind\nbindNode2D_get_transform\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Local @Transform2D@.\nget_transform ::\n                (Node2D :< cls, Object :< cls) => cls -> IO Transform2d\nget_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_get_transform (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"get_transform\" '[] (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.Node2D.get_transform\n\ninstance NodeProperty Node2D \"transform\" Transform2d 'False where\n        nodeProperty\n          = (get_transform, wrapDroppingSetter set_transform, Nothing)\n\ninstance NodeProperty Node2D \"z_as_relative\" Bool 'False where\n        nodeProperty\n          = (is_z_relative, wrapDroppingSetter set_z_as_relative, Nothing)\n\ninstance NodeProperty Node2D \"z_index\" Int 'False where\n        nodeProperty\n          = (get_z_index, wrapDroppingSetter set_z_index, Nothing)\n\n{-# NOINLINE bindNode2D_apply_scale #-}\n\n-- | Multiplies the current scale by the @ratio@ vector.\nbindNode2D_apply_scale :: MethodBind\nbindNode2D_apply_scale\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"apply_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Multiplies the current scale by the @ratio@ vector.\napply_scale ::\n              (Node2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\napply_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_apply_scale (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"apply_scale\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.Node2D.apply_scale\n\n{-# NOINLINE bindNode2D_get_angle_to #-}\n\n-- | Returns the angle between the node and the @point@ in radians.\nbindNode2D_get_angle_to :: MethodBind\nbindNode2D_get_angle_to\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_angle_to\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the angle between the node and the @point@ in radians.\nget_angle_to ::\n               (Node2D :< cls, Object :< cls) => cls -> Vector2 -> IO Float\nget_angle_to cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_get_angle_to (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"get_angle_to\" '[Vector2] (IO Float)\n         where\n        nodeMethod = Godot.Core.Node2D.get_angle_to\n\n{-# NOINLINE bindNode2D_get_global_position #-}\n\n-- | Global position.\nbindNode2D_get_global_position :: MethodBind\nbindNode2D_get_global_position\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_global_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Global position.\nget_global_position ::\n                      (Node2D :< cls, Object :< cls) => cls -> IO Vector2\nget_global_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_get_global_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"get_global_position\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Node2D.get_global_position\n\n{-# NOINLINE bindNode2D_get_global_rotation #-}\n\n-- | Global rotation in radians.\nbindNode2D_get_global_rotation :: MethodBind\nbindNode2D_get_global_rotation\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_global_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Global rotation in radians.\nget_global_rotation ::\n                      (Node2D :< cls, Object :< cls) => cls -> IO Float\nget_global_rotation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_get_global_rotation (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"get_global_rotation\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Node2D.get_global_rotation\n\n{-# NOINLINE bindNode2D_get_global_rotation_degrees #-}\n\n-- | Global rotation in degrees.\nbindNode2D_get_global_rotation_degrees :: MethodBind\nbindNode2D_get_global_rotation_degrees\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_global_rotation_degrees\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Global rotation in degrees.\nget_global_rotation_degrees ::\n                              (Node2D :< cls, Object :< cls) => cls -> IO Float\nget_global_rotation_degrees cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_get_global_rotation_degrees\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"get_global_rotation_degrees\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Node2D.get_global_rotation_degrees\n\n{-# NOINLINE bindNode2D_get_global_scale #-}\n\n-- | Global scale.\nbindNode2D_get_global_scale :: MethodBind\nbindNode2D_get_global_scale\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_global_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Global scale.\nget_global_scale ::\n                   (Node2D :< cls, Object :< cls) => cls -> IO Vector2\nget_global_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_get_global_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"get_global_scale\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Node2D.get_global_scale\n\n{-# NOINLINE bindNode2D_get_position #-}\n\n-- | Position, relative to the node's parent.\nbindNode2D_get_position :: MethodBind\nbindNode2D_get_position\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Position, relative to the node's parent.\nget_position :: (Node2D :< cls, Object :< cls) => cls -> IO Vector2\nget_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_get_position (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"get_position\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.Node2D.get_position\n\n{-# NOINLINE bindNode2D_get_relative_transform_to_parent #-}\n\n-- | Returns the @Transform2D@ relative to this node's parent.\nbindNode2D_get_relative_transform_to_parent :: MethodBind\nbindNode2D_get_relative_transform_to_parent\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_relative_transform_to_parent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Transform2D@ relative to this node's parent.\nget_relative_transform_to_parent ::\n                                   (Node2D :< cls, Object :< cls) => cls -> Node -> IO Transform2d\nget_relative_transform_to_parent cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_get_relative_transform_to_parent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"get_relative_transform_to_parent\"\n           '[Node]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.Node2D.get_relative_transform_to_parent\n\n{-# NOINLINE bindNode2D_get_rotation #-}\n\n-- | Rotation in radians, relative to the node's parent.\nbindNode2D_get_rotation :: MethodBind\nbindNode2D_get_rotation\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rotation in radians, relative to the node's parent.\nget_rotation :: (Node2D :< cls, Object :< cls) => cls -> IO Float\nget_rotation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_get_rotation (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"get_rotation\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Node2D.get_rotation\n\n{-# NOINLINE bindNode2D_get_rotation_degrees #-}\n\n-- | Rotation in degrees, relative to the node's parent.\nbindNode2D_get_rotation_degrees :: MethodBind\nbindNode2D_get_rotation_degrees\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_rotation_degrees\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rotation in degrees, relative to the node's parent.\nget_rotation_degrees ::\n                       (Node2D :< cls, Object :< cls) => cls -> IO Float\nget_rotation_degrees cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_get_rotation_degrees (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"get_rotation_degrees\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Node2D.get_rotation_degrees\n\n{-# NOINLINE bindNode2D_get_scale #-}\n\n-- | The node's scale. Unscaled value: @(1, 1)@.\nbindNode2D_get_scale :: MethodBind\nbindNode2D_get_scale\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's scale. Unscaled value: @(1, 1)@.\nget_scale :: (Node2D :< cls, Object :< cls) => cls -> IO Vector2\nget_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_get_scale (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"get_scale\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.Node2D.get_scale\n\n{-# NOINLINE bindNode2D_get_z_index #-}\n\n-- | Z index. Controls the order in which the nodes render. A node with a higher Z index will display in front of others.\nbindNode2D_get_z_index :: MethodBind\nbindNode2D_get_z_index\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_z_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Z index. Controls the order in which the nodes render. A node with a higher Z index will display in front of others.\nget_z_index :: (Node2D :< cls, Object :< cls) => cls -> IO Int\nget_z_index cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_get_z_index (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"get_z_index\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Node2D.get_z_index\n\n{-# NOINLINE bindNode2D_global_translate #-}\n\n-- | Adds the @offset@ vector to the node's global position.\nbindNode2D_global_translate :: MethodBind\nbindNode2D_global_translate\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"global_translate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds the @offset@ vector to the node's global position.\nglobal_translate ::\n                   (Node2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nglobal_translate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_global_translate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"global_translate\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.Node2D.global_translate\n\n{-# NOINLINE bindNode2D_is_z_relative #-}\n\n-- | If @true@, the node's Z index is relative to its parent's Z index. If this node's Z index is 2 and its parent's effective Z index is 3, then this node's effective Z index will be 2 + 3 = 5.\nbindNode2D_is_z_relative :: MethodBind\nbindNode2D_is_z_relative\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_z_relative\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the node's Z index is relative to its parent's Z index. If this node's Z index is 2 and its parent's effective Z index is 3, then this node's effective Z index will be 2 + 3 = 5.\nis_z_relative :: (Node2D :< cls, Object :< cls) => cls -> IO Bool\nis_z_relative cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_is_z_relative (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"is_z_relative\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Node2D.is_z_relative\n\n{-# NOINLINE bindNode2D_look_at #-}\n\n-- | Rotates the node so it points towards the @point@, which is expected to use global coordinates.\nbindNode2D_look_at :: MethodBind\nbindNode2D_look_at\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"look_at\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rotates the node so it points towards the @point@, which is expected to use global coordinates.\nlook_at ::\n          (Node2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nlook_at cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_look_at (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"look_at\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.Node2D.look_at\n\n{-# NOINLINE bindNode2D_move_local_x #-}\n\n-- | Applies a local translation on the node's X axis based on the @method Node._process@'s @delta@. If @scaled@ is @false@, normalizes the movement.\nbindNode2D_move_local_x :: MethodBind\nbindNode2D_move_local_x\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"move_local_x\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies a local translation on the node's X axis based on the @method Node._process@'s @delta@. If @scaled@ is @false@, normalizes the movement.\nmove_local_x ::\n               (Node2D :< cls, Object :< cls) =>\n               cls -> Float -> Maybe Bool -> IO ()\nmove_local_x cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_move_local_x (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"move_local_x\" '[Float, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node2D.move_local_x\n\n{-# NOINLINE bindNode2D_move_local_y #-}\n\n-- | Applies a local translation on the node's Y axis based on the @method Node._process@'s @delta@. If @scaled@ is @false@, normalizes the movement.\nbindNode2D_move_local_y :: MethodBind\nbindNode2D_move_local_y\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"move_local_y\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies a local translation on the node's Y axis based on the @method Node._process@'s @delta@. If @scaled@ is @false@, normalizes the movement.\nmove_local_y ::\n               (Node2D :< cls, Object :< cls) =>\n               cls -> Float -> Maybe Bool -> IO ()\nmove_local_y cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_move_local_y (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"move_local_y\" '[Float, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node2D.move_local_y\n\n{-# NOINLINE bindNode2D_rotate #-}\n\n-- | Applies a rotation to the node, in radians, starting from its current rotation.\nbindNode2D_rotate :: MethodBind\nbindNode2D_rotate\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"rotate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies a rotation to the node, in radians, starting from its current rotation.\nrotate :: (Node2D :< cls, Object :< cls) => cls -> Float -> IO ()\nrotate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_rotate (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"rotate\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Node2D.rotate\n\n{-# NOINLINE bindNode2D_set_global_position #-}\n\n-- | Global position.\nbindNode2D_set_global_position :: MethodBind\nbindNode2D_set_global_position\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_global_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Global position.\nset_global_position ::\n                      (Node2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_global_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_set_global_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"set_global_position\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.Node2D.set_global_position\n\n{-# NOINLINE bindNode2D_set_global_rotation #-}\n\n-- | Global rotation in radians.\nbindNode2D_set_global_rotation :: MethodBind\nbindNode2D_set_global_rotation\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_global_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Global rotation in radians.\nset_global_rotation ::\n                      (Node2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_global_rotation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_set_global_rotation (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"set_global_rotation\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Node2D.set_global_rotation\n\n{-# NOINLINE bindNode2D_set_global_rotation_degrees #-}\n\n-- | Global rotation in degrees.\nbindNode2D_set_global_rotation_degrees :: MethodBind\nbindNode2D_set_global_rotation_degrees\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_global_rotation_degrees\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Global rotation in degrees.\nset_global_rotation_degrees ::\n                              (Node2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_global_rotation_degrees cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_set_global_rotation_degrees\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"set_global_rotation_degrees\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node2D.set_global_rotation_degrees\n\n{-# NOINLINE bindNode2D_set_global_scale #-}\n\n-- | Global scale.\nbindNode2D_set_global_scale :: MethodBind\nbindNode2D_set_global_scale\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_global_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Global scale.\nset_global_scale ::\n                   (Node2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_global_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_set_global_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"set_global_scale\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.Node2D.set_global_scale\n\n{-# NOINLINE bindNode2D_set_global_transform #-}\n\n-- | Global @Transform2D@.\nbindNode2D_set_global_transform :: MethodBind\nbindNode2D_set_global_transform\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_global_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Global @Transform2D@.\nset_global_transform ::\n                       (Node2D :< cls, Object :< cls) => cls -> Transform2d -> IO ()\nset_global_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_set_global_transform (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"set_global_transform\" '[Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Node2D.set_global_transform\n\n{-# NOINLINE bindNode2D_set_position #-}\n\n-- | Position, relative to the node's parent.\nbindNode2D_set_position :: MethodBind\nbindNode2D_set_position\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Position, relative to the node's parent.\nset_position ::\n               (Node2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_set_position (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"set_position\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.Node2D.set_position\n\n{-# NOINLINE bindNode2D_set_rotation #-}\n\n-- | Rotation in radians, relative to the node's parent.\nbindNode2D_set_rotation :: MethodBind\nbindNode2D_set_rotation\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rotation in radians, relative to the node's parent.\nset_rotation ::\n               (Node2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_rotation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_set_rotation (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"set_rotation\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Node2D.set_rotation\n\n{-# NOINLINE bindNode2D_set_rotation_degrees #-}\n\n-- | Rotation in degrees, relative to the node's parent.\nbindNode2D_set_rotation_degrees :: MethodBind\nbindNode2D_set_rotation_degrees\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_rotation_degrees\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rotation in degrees, relative to the node's parent.\nset_rotation_degrees ::\n                       (Node2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_rotation_degrees cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_set_rotation_degrees (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"set_rotation_degrees\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Node2D.set_rotation_degrees\n\n{-# NOINLINE bindNode2D_set_scale #-}\n\n-- | The node's scale. Unscaled value: @(1, 1)@.\nbindNode2D_set_scale :: MethodBind\nbindNode2D_set_scale\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's scale. Unscaled value: @(1, 1)@.\nset_scale ::\n            (Node2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_set_scale (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"set_scale\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.Node2D.set_scale\n\n{-# NOINLINE bindNode2D_set_transform #-}\n\n-- | Local @Transform2D@.\nbindNode2D_set_transform :: MethodBind\nbindNode2D_set_transform\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Local @Transform2D@.\nset_transform ::\n                (Node2D :< cls, Object :< cls) => cls -> Transform2d -> IO ()\nset_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_set_transform (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"set_transform\" '[Transform2d] (IO ())\n         where\n        nodeMethod = Godot.Core.Node2D.set_transform\n\n{-# NOINLINE bindNode2D_set_z_as_relative #-}\n\n-- | If @true@, the node's Z index is relative to its parent's Z index. If this node's Z index is 2 and its parent's effective Z index is 3, then this node's effective Z index will be 2 + 3 = 5.\nbindNode2D_set_z_as_relative :: MethodBind\nbindNode2D_set_z_as_relative\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_z_as_relative\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the node's Z index is relative to its parent's Z index. If this node's Z index is 2 and its parent's effective Z index is 3, then this node's effective Z index will be 2 + 3 = 5.\nset_z_as_relative ::\n                    (Node2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_z_as_relative cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_set_z_as_relative (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"set_z_as_relative\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Node2D.set_z_as_relative\n\n{-# NOINLINE bindNode2D_set_z_index #-}\n\n-- | Z index. Controls the order in which the nodes render. A node with a higher Z index will display in front of others.\nbindNode2D_set_z_index :: MethodBind\nbindNode2D_set_z_index\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_z_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Z index. Controls the order in which the nodes render. A node with a higher Z index will display in front of others.\nset_z_index ::\n              (Node2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_z_index cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_set_z_index (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"set_z_index\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Node2D.set_z_index\n\n{-# NOINLINE bindNode2D_to_global #-}\n\n-- | Transforms the provided local position into a position in global coordinate space. The input is expected to be local relative to the @Node2D@ it is called on. e.g. Applying this method to the positions of child nodes will correctly transform their positions into the global coordinate space, but applying it to a node's own position will give an incorrect result, as it will incorporate the node's own transformation into its global position.\nbindNode2D_to_global :: MethodBind\nbindNode2D_to_global\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"to_global\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Transforms the provided local position into a position in global coordinate space. The input is expected to be local relative to the @Node2D@ it is called on. e.g. Applying this method to the positions of child nodes will correctly transform their positions into the global coordinate space, but applying it to a node's own position will give an incorrect result, as it will incorporate the node's own transformation into its global position.\nto_global ::\n            (Node2D :< cls, Object :< cls) => cls -> Vector2 -> IO Vector2\nto_global cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_to_global (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"to_global\" '[Vector2] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Node2D.to_global\n\n{-# NOINLINE bindNode2D_to_local #-}\n\n-- | Transforms the provided global position into a position in local coordinate space. The output will be local relative to the @Node2D@ it is called on. e.g. It is appropriate for determining the positions of child nodes, but it is not appropriate for determining its own position relative to its parent.\nbindNode2D_to_local :: MethodBind\nbindNode2D_to_local\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"to_local\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Transforms the provided global position into a position in local coordinate space. The output will be local relative to the @Node2D@ it is called on. e.g. It is appropriate for determining the positions of child nodes, but it is not appropriate for determining its own position relative to its parent.\nto_local ::\n           (Node2D :< cls, Object :< cls) => cls -> Vector2 -> IO Vector2\nto_local cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_to_local (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"to_local\" '[Vector2] (IO Vector2) where\n        nodeMethod = Godot.Core.Node2D.to_local\n\n{-# NOINLINE bindNode2D_translate #-}\n\n-- | Translates the node by the given @offset@ in local coordinates.\nbindNode2D_translate :: MethodBind\nbindNode2D_translate\n  = unsafePerformIO $\n      withCString \"Node2D\" $\n        \\ clsNamePtr ->\n          withCString \"translate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Translates the node by the given @offset@ in local coordinates.\ntranslate ::\n            (Node2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\ntranslate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNode2D_translate (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Node2D \"translate\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.Node2D.translate"
  },
  {
    "path": "src/Godot/Core/NoiseTexture.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.NoiseTexture\n       (Godot.Core.NoiseTexture.get_height,\n        Godot.Core.NoiseTexture.get_width,\n        Godot.Core.NoiseTexture._generate_texture,\n        Godot.Core.NoiseTexture._queue_update,\n        Godot.Core.NoiseTexture._thread_done,\n        Godot.Core.NoiseTexture._update_texture,\n        Godot.Core.NoiseTexture.get_bump_strength,\n        Godot.Core.NoiseTexture.get_noise,\n        Godot.Core.NoiseTexture.get_seamless,\n        Godot.Core.NoiseTexture.is_normalmap,\n        Godot.Core.NoiseTexture.set_as_normalmap,\n        Godot.Core.NoiseTexture.set_bump_strength,\n        Godot.Core.NoiseTexture.set_height,\n        Godot.Core.NoiseTexture.set_noise,\n        Godot.Core.NoiseTexture.set_seamless,\n        Godot.Core.NoiseTexture.set_width)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Texture()\n\ninstance NodeProperty NoiseTexture \"as_normalmap\" Bool 'False where\n        nodeProperty\n          = (is_normalmap, wrapDroppingSetter set_as_normalmap, Nothing)\n\ninstance NodeProperty NoiseTexture \"bump_strength\" Float 'False\n         where\n        nodeProperty\n          = (get_bump_strength, wrapDroppingSetter set_bump_strength,\n             Nothing)\n\n{-# NOINLINE bindNoiseTexture_get_height #-}\n\nbindNoiseTexture_get_height :: MethodBind\nbindNoiseTexture_get_height\n  = unsafePerformIO $\n      withCString \"NoiseTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_height :: (NoiseTexture :< cls, Object :< cls) => cls -> IO Int\nget_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNoiseTexture_get_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NoiseTexture \"get_height\" '[] (IO Int) where\n        nodeMethod = Godot.Core.NoiseTexture.get_height\n\ninstance NodeProperty NoiseTexture \"height\" Int 'False where\n        nodeProperty = (get_height, wrapDroppingSetter set_height, Nothing)\n\ninstance NodeProperty NoiseTexture \"noise\" OpenSimplexNoise 'False\n         where\n        nodeProperty = (get_noise, wrapDroppingSetter set_noise, Nothing)\n\ninstance NodeProperty NoiseTexture \"seamless\" Bool 'False where\n        nodeProperty\n          = (get_seamless, wrapDroppingSetter set_seamless, Nothing)\n\n{-# NOINLINE bindNoiseTexture_get_width #-}\n\nbindNoiseTexture_get_width :: MethodBind\nbindNoiseTexture_get_width\n  = unsafePerformIO $\n      withCString \"NoiseTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_width :: (NoiseTexture :< cls, Object :< cls) => cls -> IO Int\nget_width cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNoiseTexture_get_width (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NoiseTexture \"get_width\" '[] (IO Int) where\n        nodeMethod = Godot.Core.NoiseTexture.get_width\n\ninstance NodeProperty NoiseTexture \"width\" Int 'False where\n        nodeProperty = (get_width, wrapDroppingSetter set_width, Nothing)\n\n{-# NOINLINE bindNoiseTexture__generate_texture #-}\n\nbindNoiseTexture__generate_texture :: MethodBind\nbindNoiseTexture__generate_texture\n  = unsafePerformIO $\n      withCString \"NoiseTexture\" $\n        \\ clsNamePtr ->\n          withCString \"_generate_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_generate_texture ::\n                    (NoiseTexture :< cls, Object :< cls) => cls -> IO Image\n_generate_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNoiseTexture__generate_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NoiseTexture \"_generate_texture\" '[] (IO Image)\n         where\n        nodeMethod = Godot.Core.NoiseTexture._generate_texture\n\n{-# NOINLINE bindNoiseTexture__queue_update #-}\n\nbindNoiseTexture__queue_update :: MethodBind\nbindNoiseTexture__queue_update\n  = unsafePerformIO $\n      withCString \"NoiseTexture\" $\n        \\ clsNamePtr ->\n          withCString \"_queue_update\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_queue_update ::\n                (NoiseTexture :< cls, Object :< cls) => cls -> IO ()\n_queue_update cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNoiseTexture__queue_update (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NoiseTexture \"_queue_update\" '[] (IO ()) where\n        nodeMethod = Godot.Core.NoiseTexture._queue_update\n\n{-# NOINLINE bindNoiseTexture__thread_done #-}\n\nbindNoiseTexture__thread_done :: MethodBind\nbindNoiseTexture__thread_done\n  = unsafePerformIO $\n      withCString \"NoiseTexture\" $\n        \\ clsNamePtr ->\n          withCString \"_thread_done\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_thread_done ::\n               (NoiseTexture :< cls, Object :< cls) => cls -> Image -> IO ()\n_thread_done cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNoiseTexture__thread_done (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NoiseTexture \"_thread_done\" '[Image] (IO ())\n         where\n        nodeMethod = Godot.Core.NoiseTexture._thread_done\n\n{-# NOINLINE bindNoiseTexture__update_texture #-}\n\nbindNoiseTexture__update_texture :: MethodBind\nbindNoiseTexture__update_texture\n  = unsafePerformIO $\n      withCString \"NoiseTexture\" $\n        \\ clsNamePtr ->\n          withCString \"_update_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_texture ::\n                  (NoiseTexture :< cls, Object :< cls) => cls -> IO ()\n_update_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNoiseTexture__update_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NoiseTexture \"_update_texture\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.NoiseTexture._update_texture\n\n{-# NOINLINE bindNoiseTexture_get_bump_strength #-}\n\nbindNoiseTexture_get_bump_strength :: MethodBind\nbindNoiseTexture_get_bump_strength\n  = unsafePerformIO $\n      withCString \"NoiseTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_bump_strength\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_bump_strength ::\n                    (NoiseTexture :< cls, Object :< cls) => cls -> IO Float\nget_bump_strength cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNoiseTexture_get_bump_strength\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NoiseTexture \"get_bump_strength\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.NoiseTexture.get_bump_strength\n\n{-# NOINLINE bindNoiseTexture_get_noise #-}\n\nbindNoiseTexture_get_noise :: MethodBind\nbindNoiseTexture_get_noise\n  = unsafePerformIO $\n      withCString \"NoiseTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_noise\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_noise ::\n            (NoiseTexture :< cls, Object :< cls) => cls -> IO OpenSimplexNoise\nget_noise cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNoiseTexture_get_noise (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NoiseTexture \"get_noise\" '[]\n           (IO OpenSimplexNoise)\n         where\n        nodeMethod = Godot.Core.NoiseTexture.get_noise\n\n{-# NOINLINE bindNoiseTexture_get_seamless #-}\n\nbindNoiseTexture_get_seamless :: MethodBind\nbindNoiseTexture_get_seamless\n  = unsafePerformIO $\n      withCString \"NoiseTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_seamless\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_seamless ::\n               (NoiseTexture :< cls, Object :< cls) => cls -> IO Bool\nget_seamless cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNoiseTexture_get_seamless (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NoiseTexture \"get_seamless\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.NoiseTexture.get_seamless\n\n{-# NOINLINE bindNoiseTexture_is_normalmap #-}\n\nbindNoiseTexture_is_normalmap :: MethodBind\nbindNoiseTexture_is_normalmap\n  = unsafePerformIO $\n      withCString \"NoiseTexture\" $\n        \\ clsNamePtr ->\n          withCString \"is_normalmap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_normalmap ::\n               (NoiseTexture :< cls, Object :< cls) => cls -> IO Bool\nis_normalmap cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNoiseTexture_is_normalmap (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NoiseTexture \"is_normalmap\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.NoiseTexture.is_normalmap\n\n{-# NOINLINE bindNoiseTexture_set_as_normalmap #-}\n\nbindNoiseTexture_set_as_normalmap :: MethodBind\nbindNoiseTexture_set_as_normalmap\n  = unsafePerformIO $\n      withCString \"NoiseTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_as_normalmap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_as_normalmap ::\n                   (NoiseTexture :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_as_normalmap cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNoiseTexture_set_as_normalmap\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NoiseTexture \"set_as_normalmap\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.NoiseTexture.set_as_normalmap\n\n{-# NOINLINE bindNoiseTexture_set_bump_strength #-}\n\nbindNoiseTexture_set_bump_strength :: MethodBind\nbindNoiseTexture_set_bump_strength\n  = unsafePerformIO $\n      withCString \"NoiseTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_bump_strength\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_bump_strength ::\n                    (NoiseTexture :< cls, Object :< cls) => cls -> Float -> IO ()\nset_bump_strength cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNoiseTexture_set_bump_strength\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NoiseTexture \"set_bump_strength\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NoiseTexture.set_bump_strength\n\n{-# NOINLINE bindNoiseTexture_set_height #-}\n\nbindNoiseTexture_set_height :: MethodBind\nbindNoiseTexture_set_height\n  = unsafePerformIO $\n      withCString \"NoiseTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_height ::\n             (NoiseTexture :< cls, Object :< cls) => cls -> Int -> IO ()\nset_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNoiseTexture_set_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NoiseTexture \"set_height\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.NoiseTexture.set_height\n\n{-# NOINLINE bindNoiseTexture_set_noise #-}\n\nbindNoiseTexture_set_noise :: MethodBind\nbindNoiseTexture_set_noise\n  = unsafePerformIO $\n      withCString \"NoiseTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_noise\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_noise ::\n            (NoiseTexture :< cls, Object :< cls) =>\n            cls -> OpenSimplexNoise -> IO ()\nset_noise cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNoiseTexture_set_noise (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NoiseTexture \"set_noise\" '[OpenSimplexNoise]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.NoiseTexture.set_noise\n\n{-# NOINLINE bindNoiseTexture_set_seamless #-}\n\nbindNoiseTexture_set_seamless :: MethodBind\nbindNoiseTexture_set_seamless\n  = unsafePerformIO $\n      withCString \"NoiseTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_seamless\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_seamless ::\n               (NoiseTexture :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_seamless cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNoiseTexture_set_seamless (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NoiseTexture \"set_seamless\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.NoiseTexture.set_seamless\n\n{-# NOINLINE bindNoiseTexture_set_width #-}\n\nbindNoiseTexture_set_width :: MethodBind\nbindNoiseTexture_set_width\n  = unsafePerformIO $\n      withCString \"NoiseTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_width ::\n            (NoiseTexture :< cls, Object :< cls) => cls -> Int -> IO ()\nset_width cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindNoiseTexture_set_width (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod NoiseTexture \"set_width\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.NoiseTexture.set_width"
  },
  {
    "path": "src/Godot/Core/OS.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.OS\n       (Godot.Core.OS._POWERSTATE_NO_BATTERY,\n        Godot.Core.OS._SCREEN_ORIENTATION_SENSOR_PORTRAIT,\n        Godot.Core.OS._SCREEN_ORIENTATION_SENSOR,\n        Godot.Core.OS._DAY_THURSDAY, Godot.Core.OS._POWERSTATE_UNKNOWN,\n        Godot.Core.OS._MONTH_MARCH, Godot.Core.OS._DAY_FRIDAY,\n        Godot.Core.OS._SYSTEM_DIR_DOWNLOADS, Godot.Core.OS._MONTH_NOVEMBER,\n        Godot.Core.OS._MONTH_JULY, Godot.Core.OS._SYSTEM_DIR_PICTURES,\n        Godot.Core.OS._MONTH_DECEMBER, Godot.Core.OS._DAY_TUESDAY,\n        Godot.Core.OS._SYSTEM_DIR_DESKTOP, Godot.Core.OS._DAY_MONDAY,\n        Godot.Core.OS._SYSTEM_DIR_MUSIC,\n        Godot.Core.OS._SYSTEM_DIR_RINGTONES, Godot.Core.OS._MONTH_AUGUST,\n        Godot.Core.OS._SYSTEM_DIR_DOCUMENTS,\n        Godot.Core.OS._SYSTEM_DIR_MOVIES, Godot.Core.OS._SYSTEM_DIR_DCIM,\n        Godot.Core.OS._POWERSTATE_CHARGED, Godot.Core.OS._MONTH_APRIL,\n        Godot.Core.OS._POWERSTATE_ON_BATTERY, Godot.Core.OS._DAY_SUNDAY,\n        Godot.Core.OS._MONTH_MAY,\n        Godot.Core.OS._SCREEN_ORIENTATION_REVERSE_PORTRAIT,\n        Godot.Core.OS._MONTH_JANUARY, Godot.Core.OS._MONTH_OCTOBER,\n        Godot.Core.OS._SCREEN_ORIENTATION_PORTRAIT,\n        Godot.Core.OS._SCREEN_ORIENTATION_SENSOR_LANDSCAPE,\n        Godot.Core.OS._MONTH_SEPTEMBER, Godot.Core.OS._VIDEO_DRIVER_GLES2,\n        Godot.Core.OS._POWERSTATE_CHARGING, Godot.Core.OS._MONTH_FEBRUARY,\n        Godot.Core.OS._MONTH_JUNE,\n        Godot.Core.OS._SCREEN_ORIENTATION_REVERSE_LANDSCAPE,\n        Godot.Core.OS._DAY_SATURDAY,\n        Godot.Core.OS._SCREEN_ORIENTATION_LANDSCAPE,\n        Godot.Core.OS._DAY_WEDNESDAY, Godot.Core.OS._VIDEO_DRIVER_GLES3,\n        Godot.Core.OS.get_clipboard, Godot.Core.OS.set_clipboard,\n        Godot.Core.OS.get_current_screen, Godot.Core.OS.set_current_screen,\n        Godot.Core.OS.get_exit_code, Godot.Core.OS.set_exit_code,\n        Godot.Core.OS.is_keep_screen_on, Godot.Core.OS.set_keep_screen_on,\n        Godot.Core.OS.is_in_low_processor_usage_mode,\n        Godot.Core.OS.set_low_processor_usage_mode,\n        Godot.Core.OS.get_low_processor_usage_mode_sleep_usec,\n        Godot.Core.OS.set_low_processor_usage_mode_sleep_usec,\n        Godot.Core.OS.get_max_window_size,\n        Godot.Core.OS.set_max_window_size,\n        Godot.Core.OS.get_min_window_size,\n        Godot.Core.OS.set_min_window_size,\n        Godot.Core.OS.get_screen_orientation,\n        Godot.Core.OS.set_screen_orientation,\n        Godot.Core.OS.is_vsync_enabled, Godot.Core.OS.set_use_vsync,\n        Godot.Core.OS.is_vsync_via_compositor_enabled,\n        Godot.Core.OS.set_vsync_via_compositor,\n        Godot.Core.OS.get_borderless_window,\n        Godot.Core.OS.set_borderless_window,\n        Godot.Core.OS.is_window_fullscreen,\n        Godot.Core.OS.set_window_fullscreen,\n        Godot.Core.OS.is_window_maximized,\n        Godot.Core.OS.set_window_maximized,\n        Godot.Core.OS.is_window_minimized,\n        Godot.Core.OS.set_window_minimized,\n        Godot.Core.OS.get_window_per_pixel_transparency_enabled,\n        Godot.Core.OS.set_window_per_pixel_transparency_enabled,\n        Godot.Core.OS.get_window_position,\n        Godot.Core.OS.set_window_position,\n        Godot.Core.OS.is_window_resizable,\n        Godot.Core.OS.set_window_resizable, Godot.Core.OS.get_window_size,\n        Godot.Core.OS.set_window_size, Godot.Core.OS.alert,\n        Godot.Core.OS.can_draw, Godot.Core.OS.can_use_threads,\n        Godot.Core.OS.center_window, Godot.Core.OS.close_midi_inputs,\n        Godot.Core.OS.delay_msec, Godot.Core.OS.delay_usec,\n        Godot.Core.OS.dump_memory_to_file,\n        Godot.Core.OS.dump_resources_to_file, Godot.Core.OS.execute,\n        Godot.Core.OS.find_scancode_from_string,\n        Godot.Core.OS.get_audio_driver_count,\n        Godot.Core.OS.get_audio_driver_name,\n        Godot.Core.OS.get_cmdline_args,\n        Godot.Core.OS.get_connected_midi_inputs,\n        Godot.Core.OS.get_current_video_driver, Godot.Core.OS.get_date,\n        Godot.Core.OS.get_datetime,\n        Godot.Core.OS.get_datetime_from_unix_time,\n        Godot.Core.OS.get_dynamic_memory_usage,\n        Godot.Core.OS.get_environment, Godot.Core.OS.get_executable_path,\n        Godot.Core.OS.get_granted_permissions,\n        Godot.Core.OS.get_ime_selection, Godot.Core.OS.get_ime_text,\n        Godot.Core.OS.get_latin_keyboard_variant, Godot.Core.OS.get_locale,\n        Godot.Core.OS.get_model_name, Godot.Core.OS.get_name,\n        Godot.Core.OS.get_power_percent_left,\n        Godot.Core.OS.get_power_seconds_left,\n        Godot.Core.OS.get_power_state, Godot.Core.OS.get_process_id,\n        Godot.Core.OS.get_processor_count,\n        Godot.Core.OS.get_real_window_size,\n        Godot.Core.OS.get_scancode_string, Godot.Core.OS.get_screen_count,\n        Godot.Core.OS.get_screen_dpi, Godot.Core.OS.get_screen_position,\n        Godot.Core.OS.get_screen_size, Godot.Core.OS.get_splash_tick_msec,\n        Godot.Core.OS.get_static_memory_peak_usage,\n        Godot.Core.OS.get_static_memory_usage,\n        Godot.Core.OS.get_system_dir, Godot.Core.OS.get_system_time_msecs,\n        Godot.Core.OS.get_system_time_secs, Godot.Core.OS.get_ticks_msec,\n        Godot.Core.OS.get_ticks_usec, Godot.Core.OS.get_time,\n        Godot.Core.OS.get_time_zone_info, Godot.Core.OS.get_unique_id,\n        Godot.Core.OS.get_unix_time,\n        Godot.Core.OS.get_unix_time_from_datetime,\n        Godot.Core.OS.get_user_data_dir,\n        Godot.Core.OS.get_video_driver_count,\n        Godot.Core.OS.get_video_driver_name,\n        Godot.Core.OS.get_virtual_keyboard_height,\n        Godot.Core.OS.get_window_safe_area,\n        Godot.Core.OS.global_menu_add_item,\n        Godot.Core.OS.global_menu_add_separator,\n        Godot.Core.OS.global_menu_clear,\n        Godot.Core.OS.global_menu_remove_item,\n        Godot.Core.OS.has_environment, Godot.Core.OS.has_feature,\n        Godot.Core.OS.has_touchscreen_ui_hint,\n        Godot.Core.OS.has_virtual_keyboard,\n        Godot.Core.OS.hide_virtual_keyboard, Godot.Core.OS.is_debug_build,\n        Godot.Core.OS.is_ok_left_and_cancel_right,\n        Godot.Core.OS.is_scancode_unicode, Godot.Core.OS.is_stdout_verbose,\n        Godot.Core.OS.is_userfs_persistent,\n        Godot.Core.OS.is_window_always_on_top,\n        Godot.Core.OS.is_window_focused, Godot.Core.OS.kill,\n        Godot.Core.OS.move_window_to_foreground,\n        Godot.Core.OS.native_video_is_playing,\n        Godot.Core.OS.native_video_pause, Godot.Core.OS.native_video_play,\n        Godot.Core.OS.native_video_stop,\n        Godot.Core.OS.native_video_unpause, Godot.Core.OS.open_midi_inputs,\n        Godot.Core.OS.print_all_resources,\n        Godot.Core.OS.print_all_textures_by_size,\n        Godot.Core.OS.print_resources_by_type,\n        Godot.Core.OS.print_resources_in_use,\n        Godot.Core.OS.request_attention, Godot.Core.OS.request_permission,\n        Godot.Core.OS.request_permissions, Godot.Core.OS.set_icon,\n        Godot.Core.OS.set_ime_active, Godot.Core.OS.set_ime_position,\n        Godot.Core.OS.set_native_icon, Godot.Core.OS.set_thread_name,\n        Godot.Core.OS.set_use_file_access_save_and_swap,\n        Godot.Core.OS.set_window_always_on_top,\n        Godot.Core.OS.set_window_title, Godot.Core.OS.shell_open,\n        Godot.Core.OS.show_virtual_keyboard)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n_POWERSTATE_NO_BATTERY :: Int\n_POWERSTATE_NO_BATTERY = 2\n\n_SCREEN_ORIENTATION_SENSOR_PORTRAIT :: Int\n_SCREEN_ORIENTATION_SENSOR_PORTRAIT = 5\n\n_SCREEN_ORIENTATION_SENSOR :: Int\n_SCREEN_ORIENTATION_SENSOR = 6\n\n_DAY_THURSDAY :: Int\n_DAY_THURSDAY = 4\n\n_POWERSTATE_UNKNOWN :: Int\n_POWERSTATE_UNKNOWN = 0\n\n_MONTH_MARCH :: Int\n_MONTH_MARCH = 3\n\n_DAY_FRIDAY :: Int\n_DAY_FRIDAY = 5\n\n_SYSTEM_DIR_DOWNLOADS :: Int\n_SYSTEM_DIR_DOWNLOADS = 3\n\n_MONTH_NOVEMBER :: Int\n_MONTH_NOVEMBER = 11\n\n_MONTH_JULY :: Int\n_MONTH_JULY = 7\n\n_SYSTEM_DIR_PICTURES :: Int\n_SYSTEM_DIR_PICTURES = 6\n\n_MONTH_DECEMBER :: Int\n_MONTH_DECEMBER = 12\n\n_DAY_TUESDAY :: Int\n_DAY_TUESDAY = 2\n\n_SYSTEM_DIR_DESKTOP :: Int\n_SYSTEM_DIR_DESKTOP = 0\n\n_DAY_MONDAY :: Int\n_DAY_MONDAY = 1\n\n_SYSTEM_DIR_MUSIC :: Int\n_SYSTEM_DIR_MUSIC = 5\n\n_SYSTEM_DIR_RINGTONES :: Int\n_SYSTEM_DIR_RINGTONES = 7\n\n_MONTH_AUGUST :: Int\n_MONTH_AUGUST = 8\n\n_SYSTEM_DIR_DOCUMENTS :: Int\n_SYSTEM_DIR_DOCUMENTS = 2\n\n_SYSTEM_DIR_MOVIES :: Int\n_SYSTEM_DIR_MOVIES = 4\n\n_SYSTEM_DIR_DCIM :: Int\n_SYSTEM_DIR_DCIM = 1\n\n_POWERSTATE_CHARGED :: Int\n_POWERSTATE_CHARGED = 4\n\n_MONTH_APRIL :: Int\n_MONTH_APRIL = 4\n\n_POWERSTATE_ON_BATTERY :: Int\n_POWERSTATE_ON_BATTERY = 1\n\n_DAY_SUNDAY :: Int\n_DAY_SUNDAY = 0\n\n_MONTH_MAY :: Int\n_MONTH_MAY = 5\n\n_SCREEN_ORIENTATION_REVERSE_PORTRAIT :: Int\n_SCREEN_ORIENTATION_REVERSE_PORTRAIT = 3\n\n_MONTH_JANUARY :: Int\n_MONTH_JANUARY = 1\n\n_MONTH_OCTOBER :: Int\n_MONTH_OCTOBER = 10\n\n_SCREEN_ORIENTATION_PORTRAIT :: Int\n_SCREEN_ORIENTATION_PORTRAIT = 1\n\n_SCREEN_ORIENTATION_SENSOR_LANDSCAPE :: Int\n_SCREEN_ORIENTATION_SENSOR_LANDSCAPE = 4\n\n_MONTH_SEPTEMBER :: Int\n_MONTH_SEPTEMBER = 9\n\n_VIDEO_DRIVER_GLES2 :: Int\n_VIDEO_DRIVER_GLES2 = 1\n\n_POWERSTATE_CHARGING :: Int\n_POWERSTATE_CHARGING = 3\n\n_MONTH_FEBRUARY :: Int\n_MONTH_FEBRUARY = 2\n\n_MONTH_JUNE :: Int\n_MONTH_JUNE = 6\n\n_SCREEN_ORIENTATION_REVERSE_LANDSCAPE :: Int\n_SCREEN_ORIENTATION_REVERSE_LANDSCAPE = 2\n\n_DAY_SATURDAY :: Int\n_DAY_SATURDAY = 6\n\n_SCREEN_ORIENTATION_LANDSCAPE :: Int\n_SCREEN_ORIENTATION_LANDSCAPE = 0\n\n_DAY_WEDNESDAY :: Int\n_DAY_WEDNESDAY = 3\n\n_VIDEO_DRIVER_GLES3 :: Int\n_VIDEO_DRIVER_GLES3 = 0\n\n{-# NOINLINE bindOS_get_clipboard #-}\n\n-- | The clipboard from the host OS. Might be unavailable on some platforms.\nbindOS_get_clipboard :: MethodBind\nbindOS_get_clipboard\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_clipboard\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The clipboard from the host OS. Might be unavailable on some platforms.\nget_clipboard ::\n                (OS :< cls, Object :< cls) => cls -> IO GodotString\nget_clipboard cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_clipboard (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_clipboard\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.OS.get_clipboard\n\n{-# NOINLINE bindOS_set_clipboard #-}\n\n-- | The clipboard from the host OS. Might be unavailable on some platforms.\nbindOS_set_clipboard :: MethodBind\nbindOS_set_clipboard\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_clipboard\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The clipboard from the host OS. Might be unavailable on some platforms.\nset_clipboard ::\n                (OS :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_clipboard cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_clipboard (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_clipboard\" '[GodotString] (IO ()) where\n        nodeMethod = Godot.Core.OS.set_clipboard\n\ninstance NodeProperty OS \"clipboard\" GodotString 'False where\n        nodeProperty\n          = (get_clipboard, wrapDroppingSetter set_clipboard, Nothing)\n\n{-# NOINLINE bindOS_get_current_screen #-}\n\n-- | The current screen index (starting from 0).\nbindOS_get_current_screen :: MethodBind\nbindOS_get_current_screen\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_screen\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current screen index (starting from 0).\nget_current_screen :: (OS :< cls, Object :< cls) => cls -> IO Int\nget_current_screen cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_current_screen (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_current_screen\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_current_screen\n\n{-# NOINLINE bindOS_set_current_screen #-}\n\n-- | The current screen index (starting from 0).\nbindOS_set_current_screen :: MethodBind\nbindOS_set_current_screen\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_current_screen\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current screen index (starting from 0).\nset_current_screen ::\n                     (OS :< cls, Object :< cls) => cls -> Int -> IO ()\nset_current_screen cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_current_screen (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_current_screen\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.OS.set_current_screen\n\ninstance NodeProperty OS \"current_screen\" Int 'False where\n        nodeProperty\n          = (get_current_screen, wrapDroppingSetter set_current_screen,\n             Nothing)\n\n{-# NOINLINE bindOS_get_exit_code #-}\n\n-- | The exit code passed to the OS when the main loop exits. By convention, an exit code of @0@ indicates success whereas a non-zero exit code indicates an error. For portability reasons, the exit code should be set between 0 and 125 (inclusive).\n--   \t\t\t__Note:__ This value will be ignored if using @method SceneTree.quit@ with an @exit_code@ argument passed.\nbindOS_get_exit_code :: MethodBind\nbindOS_get_exit_code\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_exit_code\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The exit code passed to the OS when the main loop exits. By convention, an exit code of @0@ indicates success whereas a non-zero exit code indicates an error. For portability reasons, the exit code should be set between 0 and 125 (inclusive).\n--   \t\t\t__Note:__ This value will be ignored if using @method SceneTree.quit@ with an @exit_code@ argument passed.\nget_exit_code :: (OS :< cls, Object :< cls) => cls -> IO Int\nget_exit_code cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_exit_code (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_exit_code\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_exit_code\n\n{-# NOINLINE bindOS_set_exit_code #-}\n\n-- | The exit code passed to the OS when the main loop exits. By convention, an exit code of @0@ indicates success whereas a non-zero exit code indicates an error. For portability reasons, the exit code should be set between 0 and 125 (inclusive).\n--   \t\t\t__Note:__ This value will be ignored if using @method SceneTree.quit@ with an @exit_code@ argument passed.\nbindOS_set_exit_code :: MethodBind\nbindOS_set_exit_code\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_exit_code\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The exit code passed to the OS when the main loop exits. By convention, an exit code of @0@ indicates success whereas a non-zero exit code indicates an error. For portability reasons, the exit code should be set between 0 and 125 (inclusive).\n--   \t\t\t__Note:__ This value will be ignored if using @method SceneTree.quit@ with an @exit_code@ argument passed.\nset_exit_code :: (OS :< cls, Object :< cls) => cls -> Int -> IO ()\nset_exit_code cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_exit_code (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_exit_code\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.OS.set_exit_code\n\ninstance NodeProperty OS \"exit_code\" Int 'False where\n        nodeProperty\n          = (get_exit_code, wrapDroppingSetter set_exit_code, Nothing)\n\n{-# NOINLINE bindOS_is_keep_screen_on #-}\n\n-- | If @true@, the engine tries to keep the screen on while the game is running. Useful on mobile.\nbindOS_is_keep_screen_on :: MethodBind\nbindOS_is_keep_screen_on\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"is_keep_screen_on\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the engine tries to keep the screen on while the game is running. Useful on mobile.\nis_keep_screen_on :: (OS :< cls, Object :< cls) => cls -> IO Bool\nis_keep_screen_on cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_is_keep_screen_on (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"is_keep_screen_on\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.OS.is_keep_screen_on\n\n{-# NOINLINE bindOS_set_keep_screen_on #-}\n\n-- | If @true@, the engine tries to keep the screen on while the game is running. Useful on mobile.\nbindOS_set_keep_screen_on :: MethodBind\nbindOS_set_keep_screen_on\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_keep_screen_on\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the engine tries to keep the screen on while the game is running. Useful on mobile.\nset_keep_screen_on ::\n                     (OS :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_keep_screen_on cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_keep_screen_on (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_keep_screen_on\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.OS.set_keep_screen_on\n\ninstance NodeProperty OS \"keep_screen_on\" Bool 'False where\n        nodeProperty\n          = (is_keep_screen_on, wrapDroppingSetter set_keep_screen_on,\n             Nothing)\n\n{-# NOINLINE bindOS_is_in_low_processor_usage_mode #-}\n\n-- | If @true@, the engine optimizes for low processor usage by only refreshing the screen if needed. Can improve battery consumption on mobile.\nbindOS_is_in_low_processor_usage_mode :: MethodBind\nbindOS_is_in_low_processor_usage_mode\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"is_in_low_processor_usage_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the engine optimizes for low processor usage by only refreshing the screen if needed. Can improve battery consumption on mobile.\nis_in_low_processor_usage_mode ::\n                                 (OS :< cls, Object :< cls) => cls -> IO Bool\nis_in_low_processor_usage_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_is_in_low_processor_usage_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"is_in_low_processor_usage_mode\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.OS.is_in_low_processor_usage_mode\n\n{-# NOINLINE bindOS_set_low_processor_usage_mode #-}\n\n-- | If @true@, the engine optimizes for low processor usage by only refreshing the screen if needed. Can improve battery consumption on mobile.\nbindOS_set_low_processor_usage_mode :: MethodBind\nbindOS_set_low_processor_usage_mode\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_low_processor_usage_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the engine optimizes for low processor usage by only refreshing the screen if needed. Can improve battery consumption on mobile.\nset_low_processor_usage_mode ::\n                               (OS :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_low_processor_usage_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_low_processor_usage_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_low_processor_usage_mode\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OS.set_low_processor_usage_mode\n\ninstance NodeProperty OS \"low_processor_usage_mode\" Bool 'False\n         where\n        nodeProperty\n          = (is_in_low_processor_usage_mode,\n             wrapDroppingSetter set_low_processor_usage_mode, Nothing)\n\n{-# NOINLINE bindOS_get_low_processor_usage_mode_sleep_usec #-}\n\n-- | The amount of sleeping between frames when the low-processor usage mode is enabled (in microseconds). Higher values will result in lower CPU usage.\nbindOS_get_low_processor_usage_mode_sleep_usec :: MethodBind\nbindOS_get_low_processor_usage_mode_sleep_usec\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_low_processor_usage_mode_sleep_usec\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount of sleeping between frames when the low-processor usage mode is enabled (in microseconds). Higher values will result in lower CPU usage.\nget_low_processor_usage_mode_sleep_usec ::\n                                          (OS :< cls, Object :< cls) => cls -> IO Int\nget_low_processor_usage_mode_sleep_usec cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindOS_get_low_processor_usage_mode_sleep_usec\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_low_processor_usage_mode_sleep_usec\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.OS.get_low_processor_usage_mode_sleep_usec\n\n{-# NOINLINE bindOS_set_low_processor_usage_mode_sleep_usec #-}\n\n-- | The amount of sleeping between frames when the low-processor usage mode is enabled (in microseconds). Higher values will result in lower CPU usage.\nbindOS_set_low_processor_usage_mode_sleep_usec :: MethodBind\nbindOS_set_low_processor_usage_mode_sleep_usec\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_low_processor_usage_mode_sleep_usec\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount of sleeping between frames when the low-processor usage mode is enabled (in microseconds). Higher values will result in lower CPU usage.\nset_low_processor_usage_mode_sleep_usec ::\n                                          (OS :< cls, Object :< cls) => cls -> Int -> IO ()\nset_low_processor_usage_mode_sleep_usec cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindOS_set_low_processor_usage_mode_sleep_usec\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_low_processor_usage_mode_sleep_usec\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OS.set_low_processor_usage_mode_sleep_usec\n\ninstance NodeProperty OS \"low_processor_usage_mode_sleep_usec\" Int\n           'False\n         where\n        nodeProperty\n          = (get_low_processor_usage_mode_sleep_usec,\n             wrapDroppingSetter set_low_processor_usage_mode_sleep_usec,\n             Nothing)\n\n{-# NOINLINE bindOS_get_max_window_size #-}\n\n-- | The maximum size of the window (without counting window manager decorations). Does not affect fullscreen mode. Set to @(0, 0)@ to reset to the system default value.\nbindOS_get_max_window_size :: MethodBind\nbindOS_get_max_window_size\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_max_window_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum size of the window (without counting window manager decorations). Does not affect fullscreen mode. Set to @(0, 0)@ to reset to the system default value.\nget_max_window_size ::\n                      (OS :< cls, Object :< cls) => cls -> IO Vector2\nget_max_window_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_max_window_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_max_window_size\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.OS.get_max_window_size\n\n{-# NOINLINE bindOS_set_max_window_size #-}\n\n-- | The maximum size of the window (without counting window manager decorations). Does not affect fullscreen mode. Set to @(0, 0)@ to reset to the system default value.\nbindOS_set_max_window_size :: MethodBind\nbindOS_set_max_window_size\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_max_window_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum size of the window (without counting window manager decorations). Does not affect fullscreen mode. Set to @(0, 0)@ to reset to the system default value.\nset_max_window_size ::\n                      (OS :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_max_window_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_max_window_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_max_window_size\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.OS.set_max_window_size\n\ninstance NodeProperty OS \"max_window_size\" Vector2 'False where\n        nodeProperty\n          = (get_max_window_size, wrapDroppingSetter set_max_window_size,\n             Nothing)\n\n{-# NOINLINE bindOS_get_min_window_size #-}\n\n-- | The minimum size of the window (without counting window manager decorations). Does not affect fullscreen mode. Set to @(0, 0)@ to reset to the system default value.\nbindOS_get_min_window_size :: MethodBind\nbindOS_get_min_window_size\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_min_window_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum size of the window (without counting window manager decorations). Does not affect fullscreen mode. Set to @(0, 0)@ to reset to the system default value.\nget_min_window_size ::\n                      (OS :< cls, Object :< cls) => cls -> IO Vector2\nget_min_window_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_min_window_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_min_window_size\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.OS.get_min_window_size\n\n{-# NOINLINE bindOS_set_min_window_size #-}\n\n-- | The minimum size of the window (without counting window manager decorations). Does not affect fullscreen mode. Set to @(0, 0)@ to reset to the system default value.\nbindOS_set_min_window_size :: MethodBind\nbindOS_set_min_window_size\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_min_window_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The minimum size of the window (without counting window manager decorations). Does not affect fullscreen mode. Set to @(0, 0)@ to reset to the system default value.\nset_min_window_size ::\n                      (OS :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_min_window_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_min_window_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_min_window_size\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.OS.set_min_window_size\n\ninstance NodeProperty OS \"min_window_size\" Vector2 'False where\n        nodeProperty\n          = (get_min_window_size, wrapDroppingSetter set_min_window_size,\n             Nothing)\n\n{-# NOINLINE bindOS_get_screen_orientation #-}\n\n-- | The current screen orientation.\nbindOS_get_screen_orientation :: MethodBind\nbindOS_get_screen_orientation\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_screen_orientation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current screen orientation.\nget_screen_orientation ::\n                         (OS :< cls, Object :< cls) => cls -> IO Int\nget_screen_orientation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_screen_orientation (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_screen_orientation\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_screen_orientation\n\n{-# NOINLINE bindOS_set_screen_orientation #-}\n\n-- | The current screen orientation.\nbindOS_set_screen_orientation :: MethodBind\nbindOS_set_screen_orientation\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_screen_orientation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current screen orientation.\nset_screen_orientation ::\n                         (OS :< cls, Object :< cls) => cls -> Int -> IO ()\nset_screen_orientation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_screen_orientation (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_screen_orientation\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.OS.set_screen_orientation\n\ninstance NodeProperty OS \"screen_orientation\" Int 'False where\n        nodeProperty\n          = (get_screen_orientation,\n             wrapDroppingSetter set_screen_orientation, Nothing)\n\n{-# NOINLINE bindOS_is_vsync_enabled #-}\n\n-- | If @true@, vertical synchronization (Vsync) is enabled.\nbindOS_is_vsync_enabled :: MethodBind\nbindOS_is_vsync_enabled\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"is_vsync_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, vertical synchronization (Vsync) is enabled.\nis_vsync_enabled :: (OS :< cls, Object :< cls) => cls -> IO Bool\nis_vsync_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_is_vsync_enabled (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"is_vsync_enabled\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.OS.is_vsync_enabled\n\n{-# NOINLINE bindOS_set_use_vsync #-}\n\n-- | If @true@, vertical synchronization (Vsync) is enabled.\nbindOS_set_use_vsync :: MethodBind\nbindOS_set_use_vsync\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_vsync\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, vertical synchronization (Vsync) is enabled.\nset_use_vsync :: (OS :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_vsync cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_use_vsync (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_use_vsync\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.OS.set_use_vsync\n\ninstance NodeProperty OS \"vsync_enabled\" Bool 'False where\n        nodeProperty\n          = (is_vsync_enabled, wrapDroppingSetter set_use_vsync, Nothing)\n\n{-# NOINLINE bindOS_is_vsync_via_compositor_enabled #-}\n\n-- | If @true@ and @vsync_enabled@ is true, the operating system's window compositor will be used for vsync when the compositor is enabled and the game is in windowed mode.\n--   \t\t\t__Note:__ This option is experimental and meant to alleviate stutter experienced by some users. However, some users have experienced a Vsync framerate halving (e.g. from 60 FPS to 30 FPS) when using it.\n--   \t\t\t__Note:__ This property is only implemented on Windows.\nbindOS_is_vsync_via_compositor_enabled :: MethodBind\nbindOS_is_vsync_via_compositor_enabled\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"is_vsync_via_compositor_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@ and @vsync_enabled@ is true, the operating system's window compositor will be used for vsync when the compositor is enabled and the game is in windowed mode.\n--   \t\t\t__Note:__ This option is experimental and meant to alleviate stutter experienced by some users. However, some users have experienced a Vsync framerate halving (e.g. from 60 FPS to 30 FPS) when using it.\n--   \t\t\t__Note:__ This property is only implemented on Windows.\nis_vsync_via_compositor_enabled ::\n                                  (OS :< cls, Object :< cls) => cls -> IO Bool\nis_vsync_via_compositor_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_is_vsync_via_compositor_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"is_vsync_via_compositor_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.OS.is_vsync_via_compositor_enabled\n\n{-# NOINLINE bindOS_set_vsync_via_compositor #-}\n\n-- | If @true@ and @vsync_enabled@ is true, the operating system's window compositor will be used for vsync when the compositor is enabled and the game is in windowed mode.\n--   \t\t\t__Note:__ This option is experimental and meant to alleviate stutter experienced by some users. However, some users have experienced a Vsync framerate halving (e.g. from 60 FPS to 30 FPS) when using it.\n--   \t\t\t__Note:__ This property is only implemented on Windows.\nbindOS_set_vsync_via_compositor :: MethodBind\nbindOS_set_vsync_via_compositor\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_vsync_via_compositor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@ and @vsync_enabled@ is true, the operating system's window compositor will be used for vsync when the compositor is enabled and the game is in windowed mode.\n--   \t\t\t__Note:__ This option is experimental and meant to alleviate stutter experienced by some users. However, some users have experienced a Vsync framerate halving (e.g. from 60 FPS to 30 FPS) when using it.\n--   \t\t\t__Note:__ This property is only implemented on Windows.\nset_vsync_via_compositor ::\n                           (OS :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_vsync_via_compositor cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_vsync_via_compositor (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_vsync_via_compositor\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.OS.set_vsync_via_compositor\n\ninstance NodeProperty OS \"vsync_via_compositor\" Bool 'False where\n        nodeProperty\n          = (is_vsync_via_compositor_enabled,\n             wrapDroppingSetter set_vsync_via_compositor, Nothing)\n\n{-# NOINLINE bindOS_get_borderless_window #-}\n\n-- | If @true@, removes the window frame.\n--   \t\t\t__Note:__ Setting @window_borderless@ to @false@ disables per-pixel transparency.\nbindOS_get_borderless_window :: MethodBind\nbindOS_get_borderless_window\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_borderless_window\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, removes the window frame.\n--   \t\t\t__Note:__ Setting @window_borderless@ to @false@ disables per-pixel transparency.\nget_borderless_window ::\n                        (OS :< cls, Object :< cls) => cls -> IO Bool\nget_borderless_window cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_borderless_window (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_borderless_window\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.OS.get_borderless_window\n\n{-# NOINLINE bindOS_set_borderless_window #-}\n\n-- | If @true@, removes the window frame.\n--   \t\t\t__Note:__ Setting @window_borderless@ to @false@ disables per-pixel transparency.\nbindOS_set_borderless_window :: MethodBind\nbindOS_set_borderless_window\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_borderless_window\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, removes the window frame.\n--   \t\t\t__Note:__ Setting @window_borderless@ to @false@ disables per-pixel transparency.\nset_borderless_window ::\n                        (OS :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_borderless_window cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_borderless_window (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_borderless_window\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.OS.set_borderless_window\n\ninstance NodeProperty OS \"window_borderless\" Bool 'False where\n        nodeProperty\n          = (get_borderless_window, wrapDroppingSetter set_borderless_window,\n             Nothing)\n\n{-# NOINLINE bindOS_is_window_fullscreen #-}\n\n-- | If @true@, the window is fullscreen.\nbindOS_is_window_fullscreen :: MethodBind\nbindOS_is_window_fullscreen\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"is_window_fullscreen\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the window is fullscreen.\nis_window_fullscreen ::\n                       (OS :< cls, Object :< cls) => cls -> IO Bool\nis_window_fullscreen cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_is_window_fullscreen (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"is_window_fullscreen\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.OS.is_window_fullscreen\n\n{-# NOINLINE bindOS_set_window_fullscreen #-}\n\n-- | If @true@, the window is fullscreen.\nbindOS_set_window_fullscreen :: MethodBind\nbindOS_set_window_fullscreen\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_window_fullscreen\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the window is fullscreen.\nset_window_fullscreen ::\n                        (OS :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_window_fullscreen cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_window_fullscreen (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_window_fullscreen\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.OS.set_window_fullscreen\n\ninstance NodeProperty OS \"window_fullscreen\" Bool 'False where\n        nodeProperty\n          = (is_window_fullscreen, wrapDroppingSetter set_window_fullscreen,\n             Nothing)\n\n{-# NOINLINE bindOS_is_window_maximized #-}\n\n-- | If @true@, the window is maximized.\nbindOS_is_window_maximized :: MethodBind\nbindOS_is_window_maximized\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"is_window_maximized\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the window is maximized.\nis_window_maximized :: (OS :< cls, Object :< cls) => cls -> IO Bool\nis_window_maximized cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_is_window_maximized (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"is_window_maximized\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.OS.is_window_maximized\n\n{-# NOINLINE bindOS_set_window_maximized #-}\n\n-- | If @true@, the window is maximized.\nbindOS_set_window_maximized :: MethodBind\nbindOS_set_window_maximized\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_window_maximized\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the window is maximized.\nset_window_maximized ::\n                       (OS :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_window_maximized cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_window_maximized (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_window_maximized\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.OS.set_window_maximized\n\ninstance NodeProperty OS \"window_maximized\" Bool 'False where\n        nodeProperty\n          = (is_window_maximized, wrapDroppingSetter set_window_maximized,\n             Nothing)\n\n{-# NOINLINE bindOS_is_window_minimized #-}\n\n-- | If @true@, the window is minimized.\nbindOS_is_window_minimized :: MethodBind\nbindOS_is_window_minimized\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"is_window_minimized\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the window is minimized.\nis_window_minimized :: (OS :< cls, Object :< cls) => cls -> IO Bool\nis_window_minimized cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_is_window_minimized (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"is_window_minimized\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.OS.is_window_minimized\n\n{-# NOINLINE bindOS_set_window_minimized #-}\n\n-- | If @true@, the window is minimized.\nbindOS_set_window_minimized :: MethodBind\nbindOS_set_window_minimized\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_window_minimized\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the window is minimized.\nset_window_minimized ::\n                       (OS :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_window_minimized cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_window_minimized (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_window_minimized\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.OS.set_window_minimized\n\ninstance NodeProperty OS \"window_minimized\" Bool 'False where\n        nodeProperty\n          = (is_window_minimized, wrapDroppingSetter set_window_minimized,\n             Nothing)\n\n{-# NOINLINE bindOS_get_window_per_pixel_transparency_enabled #-}\n\n-- | If @true@, the window background is transparent and window frame is removed.\n--   \t\t\tUse @get_tree().get_root().set_transparent_background(true)@ to disable main viewport background rendering.\n--   \t\t\t__Note:__ This property has no effect if __Project > Project Settings > Display > Window > Per-pixel transparency > Allowed__ setting is disabled.\n--   \t\t\t__Note:__ This property is implemented on HTML5, Linux, macOS and Windows.\nbindOS_get_window_per_pixel_transparency_enabled :: MethodBind\nbindOS_get_window_per_pixel_transparency_enabled\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_window_per_pixel_transparency_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the window background is transparent and window frame is removed.\n--   \t\t\tUse @get_tree().get_root().set_transparent_background(true)@ to disable main viewport background rendering.\n--   \t\t\t__Note:__ This property has no effect if __Project > Project Settings > Display > Window > Per-pixel transparency > Allowed__ setting is disabled.\n--   \t\t\t__Note:__ This property is implemented on HTML5, Linux, macOS and Windows.\nget_window_per_pixel_transparency_enabled ::\n                                            (OS :< cls, Object :< cls) => cls -> IO Bool\nget_window_per_pixel_transparency_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindOS_get_window_per_pixel_transparency_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_window_per_pixel_transparency_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.OS.get_window_per_pixel_transparency_enabled\n\n{-# NOINLINE bindOS_set_window_per_pixel_transparency_enabled #-}\n\n-- | If @true@, the window background is transparent and window frame is removed.\n--   \t\t\tUse @get_tree().get_root().set_transparent_background(true)@ to disable main viewport background rendering.\n--   \t\t\t__Note:__ This property has no effect if __Project > Project Settings > Display > Window > Per-pixel transparency > Allowed__ setting is disabled.\n--   \t\t\t__Note:__ This property is implemented on HTML5, Linux, macOS and Windows.\nbindOS_set_window_per_pixel_transparency_enabled :: MethodBind\nbindOS_set_window_per_pixel_transparency_enabled\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_window_per_pixel_transparency_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the window background is transparent and window frame is removed.\n--   \t\t\tUse @get_tree().get_root().set_transparent_background(true)@ to disable main viewport background rendering.\n--   \t\t\t__Note:__ This property has no effect if __Project > Project Settings > Display > Window > Per-pixel transparency > Allowed__ setting is disabled.\n--   \t\t\t__Note:__ This property is implemented on HTML5, Linux, macOS and Windows.\nset_window_per_pixel_transparency_enabled ::\n                                            (OS :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_window_per_pixel_transparency_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindOS_set_window_per_pixel_transparency_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_window_per_pixel_transparency_enabled\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.OS.set_window_per_pixel_transparency_enabled\n\ninstance NodeProperty OS \"window_per_pixel_transparency_enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (get_window_per_pixel_transparency_enabled,\n             wrapDroppingSetter set_window_per_pixel_transparency_enabled,\n             Nothing)\n\n{-# NOINLINE bindOS_get_window_position #-}\n\n-- | The window position relative to the screen, the origin is the top left corner, +Y axis goes to the bottom and +X axis goes to the right.\nbindOS_get_window_position :: MethodBind\nbindOS_get_window_position\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_window_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The window position relative to the screen, the origin is the top left corner, +Y axis goes to the bottom and +X axis goes to the right.\nget_window_position ::\n                      (OS :< cls, Object :< cls) => cls -> IO Vector2\nget_window_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_window_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_window_position\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.OS.get_window_position\n\n{-# NOINLINE bindOS_set_window_position #-}\n\n-- | The window position relative to the screen, the origin is the top left corner, +Y axis goes to the bottom and +X axis goes to the right.\nbindOS_set_window_position :: MethodBind\nbindOS_set_window_position\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_window_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The window position relative to the screen, the origin is the top left corner, +Y axis goes to the bottom and +X axis goes to the right.\nset_window_position ::\n                      (OS :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_window_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_window_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_window_position\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.OS.set_window_position\n\ninstance NodeProperty OS \"window_position\" Vector2 'False where\n        nodeProperty\n          = (get_window_position, wrapDroppingSetter set_window_position,\n             Nothing)\n\n{-# NOINLINE bindOS_is_window_resizable #-}\n\n-- | If @true@, the window is resizable by the user.\nbindOS_is_window_resizable :: MethodBind\nbindOS_is_window_resizable\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"is_window_resizable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the window is resizable by the user.\nis_window_resizable :: (OS :< cls, Object :< cls) => cls -> IO Bool\nis_window_resizable cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_is_window_resizable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"is_window_resizable\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.OS.is_window_resizable\n\n{-# NOINLINE bindOS_set_window_resizable #-}\n\n-- | If @true@, the window is resizable by the user.\nbindOS_set_window_resizable :: MethodBind\nbindOS_set_window_resizable\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_window_resizable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the window is resizable by the user.\nset_window_resizable ::\n                       (OS :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_window_resizable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_window_resizable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_window_resizable\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.OS.set_window_resizable\n\ninstance NodeProperty OS \"window_resizable\" Bool 'False where\n        nodeProperty\n          = (is_window_resizable, wrapDroppingSetter set_window_resizable,\n             Nothing)\n\n{-# NOINLINE bindOS_get_window_size #-}\n\n-- | The size of the window (without counting window manager decorations).\nbindOS_get_window_size :: MethodBind\nbindOS_get_window_size\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_window_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size of the window (without counting window manager decorations).\nget_window_size :: (OS :< cls, Object :< cls) => cls -> IO Vector2\nget_window_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_window_size (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_window_size\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.OS.get_window_size\n\n{-# NOINLINE bindOS_set_window_size #-}\n\n-- | The size of the window (without counting window manager decorations).\nbindOS_set_window_size :: MethodBind\nbindOS_set_window_size\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_window_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size of the window (without counting window manager decorations).\nset_window_size ::\n                  (OS :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_window_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_window_size (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_window_size\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.OS.set_window_size\n\ninstance NodeProperty OS \"window_size\" Vector2 'False where\n        nodeProperty\n          = (get_window_size, wrapDroppingSetter set_window_size, Nothing)\n\n{-# NOINLINE bindOS_alert #-}\n\n-- | Displays a modal dialog box using the host OS' facilities. Execution is blocked until the dialog is closed.\nbindOS_alert :: MethodBind\nbindOS_alert\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"alert\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Displays a modal dialog box using the host OS' facilities. Execution is blocked until the dialog is closed.\nalert ::\n        (OS :< cls, Object :< cls) =>\n        cls -> GodotString -> Maybe GodotString -> IO ()\nalert cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"Alert!\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_alert (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"alert\" '[GodotString, Maybe GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OS.alert\n\n{-# NOINLINE bindOS_can_draw #-}\n\n-- | Returns @true@ if the host OS allows drawing.\nbindOS_can_draw :: MethodBind\nbindOS_can_draw\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"can_draw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the host OS allows drawing.\ncan_draw :: (OS :< cls, Object :< cls) => cls -> IO Bool\ncan_draw cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_can_draw (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"can_draw\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.OS.can_draw\n\n{-# NOINLINE bindOS_can_use_threads #-}\n\n-- | Returns @true@ if the current host platform is using multiple threads.\nbindOS_can_use_threads :: MethodBind\nbindOS_can_use_threads\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"can_use_threads\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the current host platform is using multiple threads.\ncan_use_threads :: (OS :< cls, Object :< cls) => cls -> IO Bool\ncan_use_threads cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_can_use_threads (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"can_use_threads\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.OS.can_use_threads\n\n{-# NOINLINE bindOS_center_window #-}\n\n-- | Centers the window on the screen if in windowed mode.\nbindOS_center_window :: MethodBind\nbindOS_center_window\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"center_window\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Centers the window on the screen if in windowed mode.\ncenter_window :: (OS :< cls, Object :< cls) => cls -> IO ()\ncenter_window cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_center_window (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"center_window\" '[] (IO ()) where\n        nodeMethod = Godot.Core.OS.center_window\n\n{-# NOINLINE bindOS_close_midi_inputs #-}\n\n-- | Shuts down system MIDI driver.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nbindOS_close_midi_inputs :: MethodBind\nbindOS_close_midi_inputs\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"close_midi_inputs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Shuts down system MIDI driver.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nclose_midi_inputs :: (OS :< cls, Object :< cls) => cls -> IO ()\nclose_midi_inputs cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_close_midi_inputs (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"close_midi_inputs\" '[] (IO ()) where\n        nodeMethod = Godot.Core.OS.close_midi_inputs\n\n{-# NOINLINE bindOS_delay_msec #-}\n\n-- | Delay execution of the current thread by @msec@ milliseconds.\nbindOS_delay_msec :: MethodBind\nbindOS_delay_msec\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"delay_msec\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Delay execution of the current thread by @msec@ milliseconds.\ndelay_msec :: (OS :< cls, Object :< cls) => cls -> Int -> IO ()\ndelay_msec cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_delay_msec (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"delay_msec\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.OS.delay_msec\n\n{-# NOINLINE bindOS_delay_usec #-}\n\n-- | Delay execution of the current thread by @usec@ microseconds.\nbindOS_delay_usec :: MethodBind\nbindOS_delay_usec\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"delay_usec\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Delay execution of the current thread by @usec@ microseconds.\ndelay_usec :: (OS :< cls, Object :< cls) => cls -> Int -> IO ()\ndelay_usec cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_delay_usec (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"delay_usec\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.OS.delay_usec\n\n{-# NOINLINE bindOS_dump_memory_to_file #-}\n\n-- | Dumps the memory allocation ringlist to a file (only works in debug).\n--   \t\t\t\tEntry format per line: \"Address - Size - Description\".\nbindOS_dump_memory_to_file :: MethodBind\nbindOS_dump_memory_to_file\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"dump_memory_to_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Dumps the memory allocation ringlist to a file (only works in debug).\n--   \t\t\t\tEntry format per line: \"Address - Size - Description\".\ndump_memory_to_file ::\n                      (OS :< cls, Object :< cls) => cls -> GodotString -> IO ()\ndump_memory_to_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_dump_memory_to_file (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"dump_memory_to_file\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.OS.dump_memory_to_file\n\n{-# NOINLINE bindOS_dump_resources_to_file #-}\n\n-- | Dumps all used resources to file (only works in debug).\n--   \t\t\t\tEntry format per line: \"Resource Type : Resource Location\".\n--   \t\t\t\tAt the end of the file is a statistic of all used Resource Types.\nbindOS_dump_resources_to_file :: MethodBind\nbindOS_dump_resources_to_file\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"dump_resources_to_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Dumps all used resources to file (only works in debug).\n--   \t\t\t\tEntry format per line: \"Resource Type : Resource Location\".\n--   \t\t\t\tAt the end of the file is a statistic of all used Resource Types.\ndump_resources_to_file ::\n                         (OS :< cls, Object :< cls) => cls -> GodotString -> IO ()\ndump_resources_to_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_dump_resources_to_file (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"dump_resources_to_file\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OS.dump_resources_to_file\n\n{-# NOINLINE bindOS_execute #-}\n\n-- | Execute the file at the given path with the arguments passed as an array of strings. Platform path resolution will take place. The resolved file must exist and be executable.\n--   \t\t\t\tThe arguments are used in the given order and separated by a space, so @OS.execute(\"ping\", @\"-w\", \"3\", \"godotengine.org\"@, false)@ will resolve to @ping -w 3 godotengine.org@ in the system's shell.\n--   \t\t\t\tThis method has slightly different behavior based on whether the @blocking@ mode is enabled.\n--   \t\t\t\tIf @blocking@ is @true@, the Godot thread will pause its execution while waiting for the process to terminate. The shell output of the process will be written to the @output@ array as a single string. When the process terminates, the Godot thread will resume execution.\n--   \t\t\t\tIf @blocking@ is @false@, the Godot thread will continue while the new process runs. It is not possible to retrieve the shell output in non-blocking mode, so @output@ will be empty.\n--   \t\t\t\tThe return value also depends on the blocking mode. When blocking, the method will return an exit code of the process. When non-blocking, the method returns a process ID, which you can use to monitor the process (and potentially terminate it with @method kill@). If the process forking (non-blocking) or opening (blocking) fails, the method will return @-1@ or another exit code.\n--   \t\t\t\tExample of blocking mode and retrieving the shell output:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar output = @@\n--   \t\t\t\tvar exit_code = OS.execute(\"ls\", @\"-l\", \"/tmp\"@, true, output)\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tExample of non-blocking mode, running another instance of the project and storing its process ID:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar pid = OS.execute(OS.get_executable_path(), @@, false)\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tIf you wish to access a shell built-in or perform a composite command, a platform-specific shell can be invoked. For example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tOS.execute(\"CMD.exe\", @\"/C\", \"cd %TEMP% && dir\"@, true, output)\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t__Note:__ This method is implemented on Android, iOS, Linux, macOS and Windows.\nbindOS_execute :: MethodBind\nbindOS_execute\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"execute\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Execute the file at the given path with the arguments passed as an array of strings. Platform path resolution will take place. The resolved file must exist and be executable.\n--   \t\t\t\tThe arguments are used in the given order and separated by a space, so @OS.execute(\"ping\", @\"-w\", \"3\", \"godotengine.org\"@, false)@ will resolve to @ping -w 3 godotengine.org@ in the system's shell.\n--   \t\t\t\tThis method has slightly different behavior based on whether the @blocking@ mode is enabled.\n--   \t\t\t\tIf @blocking@ is @true@, the Godot thread will pause its execution while waiting for the process to terminate. The shell output of the process will be written to the @output@ array as a single string. When the process terminates, the Godot thread will resume execution.\n--   \t\t\t\tIf @blocking@ is @false@, the Godot thread will continue while the new process runs. It is not possible to retrieve the shell output in non-blocking mode, so @output@ will be empty.\n--   \t\t\t\tThe return value also depends on the blocking mode. When blocking, the method will return an exit code of the process. When non-blocking, the method returns a process ID, which you can use to monitor the process (and potentially terminate it with @method kill@). If the process forking (non-blocking) or opening (blocking) fails, the method will return @-1@ or another exit code.\n--   \t\t\t\tExample of blocking mode and retrieving the shell output:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar output = @@\n--   \t\t\t\tvar exit_code = OS.execute(\"ls\", @\"-l\", \"/tmp\"@, true, output)\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tExample of non-blocking mode, running another instance of the project and storing its process ID:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar pid = OS.execute(OS.get_executable_path(), @@, false)\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tIf you wish to access a shell built-in or perform a composite command, a platform-specific shell can be invoked. For example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tOS.execute(\"CMD.exe\", @\"/C\", \"cd %TEMP% && dir\"@, true, output)\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t__Note:__ This method is implemented on Android, iOS, Linux, macOS and Windows.\nexecute ::\n          (OS :< cls, Object :< cls) =>\n          cls ->\n            GodotString ->\n              PoolStringArray ->\n                Maybe Bool -> Maybe Array -> Maybe Bool -> IO Int\nexecute cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool True) toVariant arg3,\n       defaultedVariant VariantArray V.empty arg4,\n       maybe (VariantBool False) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_execute (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"execute\"\n           '[GodotString, PoolStringArray, Maybe Bool, Maybe Array,\n             Maybe Bool]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.OS.execute\n\n{-# NOINLINE bindOS_find_scancode_from_string #-}\n\n-- | Returns the scancode of the given string (e.g. \"Escape\").\nbindOS_find_scancode_from_string :: MethodBind\nbindOS_find_scancode_from_string\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"find_scancode_from_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the scancode of the given string (e.g. \"Escape\").\nfind_scancode_from_string ::\n                            (OS :< cls, Object :< cls) => cls -> GodotString -> IO Int\nfind_scancode_from_string cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_find_scancode_from_string\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"find_scancode_from_string\" '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.OS.find_scancode_from_string\n\n{-# NOINLINE bindOS_get_audio_driver_count #-}\n\n-- | Returns the total number of available audio drivers.\nbindOS_get_audio_driver_count :: MethodBind\nbindOS_get_audio_driver_count\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_audio_driver_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the total number of available audio drivers.\nget_audio_driver_count ::\n                         (OS :< cls, Object :< cls) => cls -> IO Int\nget_audio_driver_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_audio_driver_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_audio_driver_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_audio_driver_count\n\n{-# NOINLINE bindOS_get_audio_driver_name #-}\n\n-- | Returns the audio driver name for the given index.\nbindOS_get_audio_driver_name :: MethodBind\nbindOS_get_audio_driver_name\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_audio_driver_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the audio driver name for the given index.\nget_audio_driver_name ::\n                        (OS :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_audio_driver_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_audio_driver_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_audio_driver_name\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.OS.get_audio_driver_name\n\n{-# NOINLINE bindOS_get_cmdline_args #-}\n\n-- | Returns the command-line arguments passed to the engine.\n--   \t\t\t\tCommand-line arguments can be written in any form, including both @--key value@ and @--key=value@ forms so they can be properly parsed, as long as custom command-line arguments do not conflict with engine arguments.\n--   \t\t\t\tYou can also incorporate environment variables using the @method get_environment@ method.\n--   \t\t\t\tYou can set @editor/main_run_args@ in the Project Settings to define command-line arguments to be passed by the editor when running the project.\n--   \t\t\t\tHere's a minimal example on how to parse command-line arguments into a dictionary using the @--key=value@ form for arguments:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar arguments = {}\n--   \t\t\t\tfor argument in OS.get_cmdline_args():\n--   \t\t\t\t    if argument.find(\"=\") > -1:\n--   \t\t\t\t        var key_value = argument.split(\"=\")\n--   \t\t\t\t        arguments@key_value@0@.lstrip(\"--\")@ = key_value@1@\n--   \t\t\t\t\n--   @\nbindOS_get_cmdline_args :: MethodBind\nbindOS_get_cmdline_args\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_cmdline_args\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the command-line arguments passed to the engine.\n--   \t\t\t\tCommand-line arguments can be written in any form, including both @--key value@ and @--key=value@ forms so they can be properly parsed, as long as custom command-line arguments do not conflict with engine arguments.\n--   \t\t\t\tYou can also incorporate environment variables using the @method get_environment@ method.\n--   \t\t\t\tYou can set @editor/main_run_args@ in the Project Settings to define command-line arguments to be passed by the editor when running the project.\n--   \t\t\t\tHere's a minimal example on how to parse command-line arguments into a dictionary using the @--key=value@ form for arguments:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar arguments = {}\n--   \t\t\t\tfor argument in OS.get_cmdline_args():\n--   \t\t\t\t    if argument.find(\"=\") > -1:\n--   \t\t\t\t        var key_value = argument.split(\"=\")\n--   \t\t\t\t        arguments@key_value@0@.lstrip(\"--\")@ = key_value@1@\n--   \t\t\t\t\n--   @\nget_cmdline_args ::\n                   (OS :< cls, Object :< cls) => cls -> IO PoolStringArray\nget_cmdline_args cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_cmdline_args (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_cmdline_args\" '[] (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.OS.get_cmdline_args\n\n{-# NOINLINE bindOS_get_connected_midi_inputs #-}\n\n-- | Returns an array of MIDI device names.\n--   \t\t\t\tThe returned array will be empty if the system MIDI driver has not previously been initialised with @method open_midi_inputs@.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nbindOS_get_connected_midi_inputs :: MethodBind\nbindOS_get_connected_midi_inputs\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_connected_midi_inputs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of MIDI device names.\n--   \t\t\t\tThe returned array will be empty if the system MIDI driver has not previously been initialised with @method open_midi_inputs@.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nget_connected_midi_inputs ::\n                            (OS :< cls, Object :< cls) => cls -> IO PoolStringArray\nget_connected_midi_inputs cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_connected_midi_inputs\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_connected_midi_inputs\" '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.OS.get_connected_midi_inputs\n\n{-# NOINLINE bindOS_get_current_video_driver #-}\n\n-- | Returns the currently used video driver, using one of the values from @enum VideoDriver@.\nbindOS_get_current_video_driver :: MethodBind\nbindOS_get_current_video_driver\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_video_driver\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the currently used video driver, using one of the values from @enum VideoDriver@.\nget_current_video_driver ::\n                           (OS :< cls, Object :< cls) => cls -> IO Int\nget_current_video_driver cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_current_video_driver (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_current_video_driver\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.OS.get_current_video_driver\n\n{-# NOINLINE bindOS_get_date #-}\n\n-- | Returns current date as a dictionary of keys: @year@, @month@, @day@, @weekday@, @dst@ (Daylight Savings Time).\nbindOS_get_date :: MethodBind\nbindOS_get_date\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_date\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns current date as a dictionary of keys: @year@, @month@, @day@, @weekday@, @dst@ (Daylight Savings Time).\nget_date ::\n           (OS :< cls, Object :< cls) => cls -> Maybe Bool -> IO Dictionary\nget_date cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_date (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_date\" '[Maybe Bool] (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.OS.get_date\n\n{-# NOINLINE bindOS_get_datetime #-}\n\n-- | Returns current datetime as a dictionary of keys: @year@, @month@, @day@, @weekday@, @dst@ (Daylight Savings Time), @hour@, @minute@, @second@.\nbindOS_get_datetime :: MethodBind\nbindOS_get_datetime\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_datetime\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns current datetime as a dictionary of keys: @year@, @month@, @day@, @weekday@, @dst@ (Daylight Savings Time), @hour@, @minute@, @second@.\nget_datetime ::\n               (OS :< cls, Object :< cls) => cls -> Maybe Bool -> IO Dictionary\nget_datetime cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_datetime (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_datetime\" '[Maybe Bool] (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.OS.get_datetime\n\n{-# NOINLINE bindOS_get_datetime_from_unix_time #-}\n\n-- | Gets a dictionary of time values corresponding to the given UNIX epoch time (in seconds).\n--   \t\t\t\tThe returned Dictionary's values will be the same as @method get_datetime@, with the exception of Daylight Savings Time as it cannot be determined from the epoch.\nbindOS_get_datetime_from_unix_time :: MethodBind\nbindOS_get_datetime_from_unix_time\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_datetime_from_unix_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a dictionary of time values corresponding to the given UNIX epoch time (in seconds).\n--   \t\t\t\tThe returned Dictionary's values will be the same as @method get_datetime@, with the exception of Daylight Savings Time as it cannot be determined from the epoch.\nget_datetime_from_unix_time ::\n                              (OS :< cls, Object :< cls) => cls -> Int -> IO Dictionary\nget_datetime_from_unix_time cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_datetime_from_unix_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_datetime_from_unix_time\" '[Int]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.OS.get_datetime_from_unix_time\n\n{-# NOINLINE bindOS_get_dynamic_memory_usage #-}\n\n-- | Returns the total amount of dynamic memory used (only works in debug).\nbindOS_get_dynamic_memory_usage :: MethodBind\nbindOS_get_dynamic_memory_usage\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_dynamic_memory_usage\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the total amount of dynamic memory used (only works in debug).\nget_dynamic_memory_usage ::\n                           (OS :< cls, Object :< cls) => cls -> IO Int\nget_dynamic_memory_usage cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_dynamic_memory_usage (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_dynamic_memory_usage\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.OS.get_dynamic_memory_usage\n\n{-# NOINLINE bindOS_get_environment #-}\n\n-- | Returns an environment variable.\nbindOS_get_environment :: MethodBind\nbindOS_get_environment\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_environment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an environment variable.\nget_environment ::\n                  (OS :< cls, Object :< cls) => cls -> GodotString -> IO GodotString\nget_environment cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_environment (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_environment\" '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.OS.get_environment\n\n{-# NOINLINE bindOS_get_executable_path #-}\n\n-- | Returns the path to the current engine executable.\nbindOS_get_executable_path :: MethodBind\nbindOS_get_executable_path\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_executable_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the path to the current engine executable.\nget_executable_path ::\n                      (OS :< cls, Object :< cls) => cls -> IO GodotString\nget_executable_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_executable_path (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_executable_path\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.OS.get_executable_path\n\n{-# NOINLINE bindOS_get_granted_permissions #-}\n\n-- | With this function you can get the list of dangerous permissions that have been granted to the Android application.\n--   \t\t\t\t__Note:__ This method is implemented on Android.\nbindOS_get_granted_permissions :: MethodBind\nbindOS_get_granted_permissions\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_granted_permissions\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | With this function you can get the list of dangerous permissions that have been granted to the Android application.\n--   \t\t\t\t__Note:__ This method is implemented on Android.\nget_granted_permissions ::\n                          (OS :< cls, Object :< cls) => cls -> IO PoolStringArray\nget_granted_permissions cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_granted_permissions (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_granted_permissions\" '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.OS.get_granted_permissions\n\n{-# NOINLINE bindOS_get_ime_selection #-}\n\n-- | Returns the IME cursor position (the currently-edited portion of the string) relative to the characters in the composition string.\n--   \t\t\t\t@MainLoop.NOTIFICATION_OS_IME_UPDATE@ is sent to the application to notify it of changes to the IME cursor position.\n--   \t\t\t\t__Note:__ This method is implemented on macOS.\nbindOS_get_ime_selection :: MethodBind\nbindOS_get_ime_selection\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_ime_selection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the IME cursor position (the currently-edited portion of the string) relative to the characters in the composition string.\n--   \t\t\t\t@MainLoop.NOTIFICATION_OS_IME_UPDATE@ is sent to the application to notify it of changes to the IME cursor position.\n--   \t\t\t\t__Note:__ This method is implemented on macOS.\nget_ime_selection ::\n                    (OS :< cls, Object :< cls) => cls -> IO Vector2\nget_ime_selection cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_ime_selection (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_ime_selection\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.OS.get_ime_selection\n\n{-# NOINLINE bindOS_get_ime_text #-}\n\n-- | Returns the IME intermediate composition string.\n--   \t\t\t\t@MainLoop.NOTIFICATION_OS_IME_UPDATE@ is sent to the application to notify it of changes to the IME composition string.\n--   \t\t\t\t__Note:__ This method is implemented on macOS.\nbindOS_get_ime_text :: MethodBind\nbindOS_get_ime_text\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_ime_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the IME intermediate composition string.\n--   \t\t\t\t@MainLoop.NOTIFICATION_OS_IME_UPDATE@ is sent to the application to notify it of changes to the IME composition string.\n--   \t\t\t\t__Note:__ This method is implemented on macOS.\nget_ime_text :: (OS :< cls, Object :< cls) => cls -> IO GodotString\nget_ime_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_ime_text (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_ime_text\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.OS.get_ime_text\n\n{-# NOINLINE bindOS_get_latin_keyboard_variant #-}\n\n-- | Returns the current latin keyboard variant as a String.\n--   \t\t\t\tPossible return values are: @\"QWERTY\"@, @\"AZERTY\"@, @\"QZERTY\"@, @\"DVORAK\"@, @\"NEO\"@, @\"COLEMAK\"@ or @\"ERROR\"@.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows. Returns @\"QWERTY\"@ on unsupported platforms.\nbindOS_get_latin_keyboard_variant :: MethodBind\nbindOS_get_latin_keyboard_variant\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_latin_keyboard_variant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current latin keyboard variant as a String.\n--   \t\t\t\tPossible return values are: @\"QWERTY\"@, @\"AZERTY\"@, @\"QZERTY\"@, @\"DVORAK\"@, @\"NEO\"@, @\"COLEMAK\"@ or @\"ERROR\"@.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows. Returns @\"QWERTY\"@ on unsupported platforms.\nget_latin_keyboard_variant ::\n                             (OS :< cls, Object :< cls) => cls -> IO GodotString\nget_latin_keyboard_variant cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_latin_keyboard_variant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_latin_keyboard_variant\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.OS.get_latin_keyboard_variant\n\n{-# NOINLINE bindOS_get_locale #-}\n\n-- | Returns the host OS locale.\nbindOS_get_locale :: MethodBind\nbindOS_get_locale\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_locale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the host OS locale.\nget_locale :: (OS :< cls, Object :< cls) => cls -> IO GodotString\nget_locale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_locale (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_locale\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.OS.get_locale\n\n{-# NOINLINE bindOS_get_model_name #-}\n\n-- | Returns the model name of the current device.\n--   \t\t\t\t__Note:__ This method is implemented on Android and iOS. Returns @\"GenericDevice\"@ on unsupported platforms.\nbindOS_get_model_name :: MethodBind\nbindOS_get_model_name\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_model_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the model name of the current device.\n--   \t\t\t\t__Note:__ This method is implemented on Android and iOS. Returns @\"GenericDevice\"@ on unsupported platforms.\nget_model_name ::\n                 (OS :< cls, Object :< cls) => cls -> IO GodotString\nget_model_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_model_name (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_model_name\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.OS.get_model_name\n\n{-# NOINLINE bindOS_get_name #-}\n\n-- | Returns the name of the host OS. Possible values are: @\"Android\"@, @\"iOS\"@, @\"HTML5\"@, @\"OSX\"@, @\"Server\"@, @\"Windows\"@, @\"UWP\"@, @\"X11\"@.\nbindOS_get_name :: MethodBind\nbindOS_get_name\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of the host OS. Possible values are: @\"Android\"@, @\"iOS\"@, @\"HTML5\"@, @\"OSX\"@, @\"Server\"@, @\"Windows\"@, @\"UWP\"@, @\"X11\"@.\nget_name :: (OS :< cls, Object :< cls) => cls -> IO GodotString\nget_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_name (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_name\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.OS.get_name\n\n{-# NOINLINE bindOS_get_power_percent_left #-}\n\n-- | Returns the amount of battery left in the device as a percentage. Returns @-1@ if power state is unknown.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nbindOS_get_power_percent_left :: MethodBind\nbindOS_get_power_percent_left\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_power_percent_left\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the amount of battery left in the device as a percentage. Returns @-1@ if power state is unknown.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nget_power_percent_left ::\n                         (OS :< cls, Object :< cls) => cls -> IO Int\nget_power_percent_left cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_power_percent_left (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_power_percent_left\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_power_percent_left\n\n{-# NOINLINE bindOS_get_power_seconds_left #-}\n\n-- | Returns an estimate of the time left in seconds before the device runs out of battery. Returns @-1@ if power state is unknown.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nbindOS_get_power_seconds_left :: MethodBind\nbindOS_get_power_seconds_left\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_power_seconds_left\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an estimate of the time left in seconds before the device runs out of battery. Returns @-1@ if power state is unknown.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nget_power_seconds_left ::\n                         (OS :< cls, Object :< cls) => cls -> IO Int\nget_power_seconds_left cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_power_seconds_left (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_power_seconds_left\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_power_seconds_left\n\n{-# NOINLINE bindOS_get_power_state #-}\n\n-- | Returns the current state of the device regarding battery and power. See @enum PowerState@ constants.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nbindOS_get_power_state :: MethodBind\nbindOS_get_power_state\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_power_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current state of the device regarding battery and power. See @enum PowerState@ constants.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nget_power_state :: (OS :< cls, Object :< cls) => cls -> IO Int\nget_power_state cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_power_state (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_power_state\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_power_state\n\n{-# NOINLINE bindOS_get_process_id #-}\n\n-- | Returns the project's process ID.\n--   \t\t\t\t__Note:__ This method is implemented on Android, iOS, Linux, macOS and Windows.\nbindOS_get_process_id :: MethodBind\nbindOS_get_process_id\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_process_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the project's process ID.\n--   \t\t\t\t__Note:__ This method is implemented on Android, iOS, Linux, macOS and Windows.\nget_process_id :: (OS :< cls, Object :< cls) => cls -> IO Int\nget_process_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_process_id (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_process_id\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_process_id\n\n{-# NOINLINE bindOS_get_processor_count #-}\n\n-- | Returns the number of threads available on the host machine.\nbindOS_get_processor_count :: MethodBind\nbindOS_get_processor_count\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_processor_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of threads available on the host machine.\nget_processor_count :: (OS :< cls, Object :< cls) => cls -> IO Int\nget_processor_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_processor_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_processor_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_processor_count\n\n{-# NOINLINE bindOS_get_real_window_size #-}\n\n-- | Returns the window size including decorations like window borders.\nbindOS_get_real_window_size :: MethodBind\nbindOS_get_real_window_size\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_real_window_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the window size including decorations like window borders.\nget_real_window_size ::\n                       (OS :< cls, Object :< cls) => cls -> IO Vector2\nget_real_window_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_real_window_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_real_window_size\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.OS.get_real_window_size\n\n{-# NOINLINE bindOS_get_scancode_string #-}\n\n-- | Returns the given scancode as a string (e.g. Return values: @\"Escape\"@, @\"Shift+Escape\"@).\n--   \t\t\t\tSee also @InputEventKey.scancode@ and @method InputEventKey.get_scancode_with_modifiers@.\nbindOS_get_scancode_string :: MethodBind\nbindOS_get_scancode_string\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_scancode_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the given scancode as a string (e.g. Return values: @\"Escape\"@, @\"Shift+Escape\"@).\n--   \t\t\t\tSee also @InputEventKey.scancode@ and @method InputEventKey.get_scancode_with_modifiers@.\nget_scancode_string ::\n                      (OS :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_scancode_string cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_scancode_string (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_scancode_string\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.OS.get_scancode_string\n\n{-# NOINLINE bindOS_get_screen_count #-}\n\n-- | Returns the number of displays attached to the host machine.\nbindOS_get_screen_count :: MethodBind\nbindOS_get_screen_count\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_screen_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of displays attached to the host machine.\nget_screen_count :: (OS :< cls, Object :< cls) => cls -> IO Int\nget_screen_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_screen_count (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_screen_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_screen_count\n\n{-# NOINLINE bindOS_get_screen_dpi #-}\n\n-- | Returns the dots per inch density of the specified screen. If @screen@ is @-1@ (the default value), the current screen will be used.\n--   \t\t\t\tOn Android devices, the actual screen densities are grouped into six generalized densities:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t   ldpi - 120 dpi\n--   \t\t\t\t   mdpi - 160 dpi\n--   \t\t\t\t   hdpi - 240 dpi\n--   \t\t\t\t  xhdpi - 320 dpi\n--   \t\t\t\t xxhdpi - 480 dpi\n--   \t\t\t\txxxhdpi - 640 dpi\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t__Note:__ This method is implemented on Android, Linux, macOS and Windows. Returns @72@ on unsupported platforms.\nbindOS_get_screen_dpi :: MethodBind\nbindOS_get_screen_dpi\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_screen_dpi\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the dots per inch density of the specified screen. If @screen@ is @-1@ (the default value), the current screen will be used.\n--   \t\t\t\tOn Android devices, the actual screen densities are grouped into six generalized densities:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t   ldpi - 120 dpi\n--   \t\t\t\t   mdpi - 160 dpi\n--   \t\t\t\t   hdpi - 240 dpi\n--   \t\t\t\t  xhdpi - 320 dpi\n--   \t\t\t\t xxhdpi - 480 dpi\n--   \t\t\t\txxxhdpi - 640 dpi\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t__Note:__ This method is implemented on Android, Linux, macOS and Windows. Returns @72@ on unsupported platforms.\nget_screen_dpi ::\n                 (OS :< cls, Object :< cls) => cls -> Maybe Int -> IO Int\nget_screen_dpi cls arg1\n  = withVariantArray [maybe (VariantInt (-1)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_screen_dpi (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_screen_dpi\" '[Maybe Int] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_screen_dpi\n\n{-# NOINLINE bindOS_get_screen_position #-}\n\n-- | Returns the position of the specified screen by index. If @screen@ is @-1@ (the default value), the current screen will be used.\nbindOS_get_screen_position :: MethodBind\nbindOS_get_screen_position\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_screen_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position of the specified screen by index. If @screen@ is @-1@ (the default value), the current screen will be used.\nget_screen_position ::\n                      (OS :< cls, Object :< cls) => cls -> Maybe Int -> IO Vector2\nget_screen_position cls arg1\n  = withVariantArray [maybe (VariantInt (-1)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_screen_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_screen_position\" '[Maybe Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.OS.get_screen_position\n\n{-# NOINLINE bindOS_get_screen_size #-}\n\n-- | Returns the dimensions in pixels of the specified screen. If @screen@ is @-1@ (the default value), the current screen will be used.\nbindOS_get_screen_size :: MethodBind\nbindOS_get_screen_size\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_screen_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the dimensions in pixels of the specified screen. If @screen@ is @-1@ (the default value), the current screen will be used.\nget_screen_size ::\n                  (OS :< cls, Object :< cls) => cls -> Maybe Int -> IO Vector2\nget_screen_size cls arg1\n  = withVariantArray [maybe (VariantInt (-1)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_screen_size (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_screen_size\" '[Maybe Int] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.OS.get_screen_size\n\n{-# NOINLINE bindOS_get_splash_tick_msec #-}\n\n-- | Returns the amount of time in milliseconds it took for the boot logo to appear.\nbindOS_get_splash_tick_msec :: MethodBind\nbindOS_get_splash_tick_msec\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_splash_tick_msec\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the amount of time in milliseconds it took for the boot logo to appear.\nget_splash_tick_msec :: (OS :< cls, Object :< cls) => cls -> IO Int\nget_splash_tick_msec cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_splash_tick_msec (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_splash_tick_msec\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_splash_tick_msec\n\n{-# NOINLINE bindOS_get_static_memory_peak_usage #-}\n\n-- | Returns the maximum amount of static memory used (only works in debug).\nbindOS_get_static_memory_peak_usage :: MethodBind\nbindOS_get_static_memory_peak_usage\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_static_memory_peak_usage\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the maximum amount of static memory used (only works in debug).\nget_static_memory_peak_usage ::\n                               (OS :< cls, Object :< cls) => cls -> IO Int\nget_static_memory_peak_usage cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_static_memory_peak_usage\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_static_memory_peak_usage\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.OS.get_static_memory_peak_usage\n\n{-# NOINLINE bindOS_get_static_memory_usage #-}\n\n-- | Returns the amount of static memory being used by the program in bytes.\nbindOS_get_static_memory_usage :: MethodBind\nbindOS_get_static_memory_usage\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_static_memory_usage\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the amount of static memory being used by the program in bytes.\nget_static_memory_usage ::\n                          (OS :< cls, Object :< cls) => cls -> IO Int\nget_static_memory_usage cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_static_memory_usage (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_static_memory_usage\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_static_memory_usage\n\n{-# NOINLINE bindOS_get_system_dir #-}\n\n-- | Returns the actual path to commonly used folders across different platforms. Available locations are specified in @enum SystemDir@.\n--   \t\t\t\t__Note:__ This method is implemented on Android, Linux, macOS and Windows.\nbindOS_get_system_dir :: MethodBind\nbindOS_get_system_dir\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_system_dir\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the actual path to commonly used folders across different platforms. Available locations are specified in @enum SystemDir@.\n--   \t\t\t\t__Note:__ This method is implemented on Android, Linux, macOS and Windows.\nget_system_dir ::\n                 (OS :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_system_dir cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_system_dir (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_system_dir\" '[Int] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.OS.get_system_dir\n\n{-# NOINLINE bindOS_get_system_time_msecs #-}\n\n-- | Returns the epoch time of the operating system in milliseconds.\nbindOS_get_system_time_msecs :: MethodBind\nbindOS_get_system_time_msecs\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_system_time_msecs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the epoch time of the operating system in milliseconds.\nget_system_time_msecs ::\n                        (OS :< cls, Object :< cls) => cls -> IO Int\nget_system_time_msecs cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_system_time_msecs (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_system_time_msecs\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_system_time_msecs\n\n{-# NOINLINE bindOS_get_system_time_secs #-}\n\n-- | Returns the epoch time of the operating system in seconds.\nbindOS_get_system_time_secs :: MethodBind\nbindOS_get_system_time_secs\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_system_time_secs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the epoch time of the operating system in seconds.\nget_system_time_secs :: (OS :< cls, Object :< cls) => cls -> IO Int\nget_system_time_secs cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_system_time_secs (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_system_time_secs\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_system_time_secs\n\n{-# NOINLINE bindOS_get_ticks_msec #-}\n\n-- | Returns the amount of time passed in milliseconds since the engine started.\nbindOS_get_ticks_msec :: MethodBind\nbindOS_get_ticks_msec\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_ticks_msec\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the amount of time passed in milliseconds since the engine started.\nget_ticks_msec :: (OS :< cls, Object :< cls) => cls -> IO Int\nget_ticks_msec cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_ticks_msec (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_ticks_msec\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_ticks_msec\n\n{-# NOINLINE bindOS_get_ticks_usec #-}\n\n-- | Returns the amount of time passed in microseconds since the engine started.\nbindOS_get_ticks_usec :: MethodBind\nbindOS_get_ticks_usec\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_ticks_usec\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the amount of time passed in microseconds since the engine started.\nget_ticks_usec :: (OS :< cls, Object :< cls) => cls -> IO Int\nget_ticks_usec cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_ticks_usec (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_ticks_usec\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_ticks_usec\n\n{-# NOINLINE bindOS_get_time #-}\n\n-- | Returns current time as a dictionary of keys: hour, minute, second.\nbindOS_get_time :: MethodBind\nbindOS_get_time\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns current time as a dictionary of keys: hour, minute, second.\nget_time ::\n           (OS :< cls, Object :< cls) => cls -> Maybe Bool -> IO Dictionary\nget_time cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_time (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_time\" '[Maybe Bool] (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.OS.get_time\n\n{-# NOINLINE bindOS_get_time_zone_info #-}\n\n-- | Returns the current time zone as a dictionary with the keys: bias and name.\nbindOS_get_time_zone_info :: MethodBind\nbindOS_get_time_zone_info\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_time_zone_info\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current time zone as a dictionary with the keys: bias and name.\nget_time_zone_info ::\n                     (OS :< cls, Object :< cls) => cls -> IO Dictionary\nget_time_zone_info cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_time_zone_info (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_time_zone_info\" '[] (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.OS.get_time_zone_info\n\n{-# NOINLINE bindOS_get_unique_id #-}\n\n-- | Returns a string that is unique to the device.\n--   \t\t\t\t__Note:__ Returns an empty string on HTML5 and UWP, as this method isn't implemented on those platforms yet.\nbindOS_get_unique_id :: MethodBind\nbindOS_get_unique_id\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_unique_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a string that is unique to the device.\n--   \t\t\t\t__Note:__ Returns an empty string on HTML5 and UWP, as this method isn't implemented on those platforms yet.\nget_unique_id ::\n                (OS :< cls, Object :< cls) => cls -> IO GodotString\nget_unique_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_unique_id (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_unique_id\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.OS.get_unique_id\n\n{-# NOINLINE bindOS_get_unix_time #-}\n\n-- | Returns the current UNIX epoch timestamp.\nbindOS_get_unix_time :: MethodBind\nbindOS_get_unix_time\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_unix_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current UNIX epoch timestamp.\nget_unix_time :: (OS :< cls, Object :< cls) => cls -> IO Int\nget_unix_time cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_unix_time (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_unix_time\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_unix_time\n\n{-# NOINLINE bindOS_get_unix_time_from_datetime #-}\n\n-- | Gets an epoch time value from a dictionary of time values.\n--   \t\t\t\t@datetime@ must be populated with the following keys: @year@, @month@, @day@, @hour@, @minute@, @second@.\n--   \t\t\t\tYou can pass the output from @method get_datetime_from_unix_time@ directly into this function. Daylight Savings Time (@dst@), if present, is ignored.\nbindOS_get_unix_time_from_datetime :: MethodBind\nbindOS_get_unix_time_from_datetime\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_unix_time_from_datetime\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets an epoch time value from a dictionary of time values.\n--   \t\t\t\t@datetime@ must be populated with the following keys: @year@, @month@, @day@, @hour@, @minute@, @second@.\n--   \t\t\t\tYou can pass the output from @method get_datetime_from_unix_time@ directly into this function. Daylight Savings Time (@dst@), if present, is ignored.\nget_unix_time_from_datetime ::\n                              (OS :< cls, Object :< cls) => cls -> Dictionary -> IO Int\nget_unix_time_from_datetime cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_unix_time_from_datetime\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_unix_time_from_datetime\" '[Dictionary]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.OS.get_unix_time_from_datetime\n\n{-# NOINLINE bindOS_get_user_data_dir #-}\n\n-- | Returns the absolute directory path where user data is written (@user://@).\n--   \t\t\t\tOn Linux, this is @~/.local/share/godot/app_userdata/@project_name@@, or @~/.local/share/@custom_name@@ if @use_custom_user_dir@ is set.\n--   \t\t\t\tOn macOS, this is @~/Library/Application Support/Godot/app_userdata/@project_name@@, or @~/Library/Application Support/@custom_name@@ if @use_custom_user_dir@ is set.\n--   \t\t\t\tOn Windows, this is @%APPDATA%\\Godot\\app_userdata\\@project_name@@, or @%APPDATA%\\@custom_name@@ if @use_custom_user_dir@ is set. @%APPDATA%@ expands to @%USERPROFILE%\\AppData\\Roaming@.\n--   \t\t\t\tIf the project name is empty, @user://@ falls back to @res://@.\nbindOS_get_user_data_dir :: MethodBind\nbindOS_get_user_data_dir\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_user_data_dir\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the absolute directory path where user data is written (@user://@).\n--   \t\t\t\tOn Linux, this is @~/.local/share/godot/app_userdata/@project_name@@, or @~/.local/share/@custom_name@@ if @use_custom_user_dir@ is set.\n--   \t\t\t\tOn macOS, this is @~/Library/Application Support/Godot/app_userdata/@project_name@@, or @~/Library/Application Support/@custom_name@@ if @use_custom_user_dir@ is set.\n--   \t\t\t\tOn Windows, this is @%APPDATA%\\Godot\\app_userdata\\@project_name@@, or @%APPDATA%\\@custom_name@@ if @use_custom_user_dir@ is set. @%APPDATA%@ expands to @%USERPROFILE%\\AppData\\Roaming@.\n--   \t\t\t\tIf the project name is empty, @user://@ falls back to @res://@.\nget_user_data_dir ::\n                    (OS :< cls, Object :< cls) => cls -> IO GodotString\nget_user_data_dir cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_user_data_dir (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_user_data_dir\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.OS.get_user_data_dir\n\n{-# NOINLINE bindOS_get_video_driver_count #-}\n\n-- | Returns the number of video drivers supported on the current platform.\nbindOS_get_video_driver_count :: MethodBind\nbindOS_get_video_driver_count\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_video_driver_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of video drivers supported on the current platform.\nget_video_driver_count ::\n                         (OS :< cls, Object :< cls) => cls -> IO Int\nget_video_driver_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_video_driver_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_video_driver_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OS.get_video_driver_count\n\n{-# NOINLINE bindOS_get_video_driver_name #-}\n\n-- | Returns the name of the video driver matching the given @driver@ index. This index is a value from @enum VideoDriver@, and you can use @method get_current_video_driver@ to get the current backend's index.\nbindOS_get_video_driver_name :: MethodBind\nbindOS_get_video_driver_name\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_video_driver_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of the video driver matching the given @driver@ index. This index is a value from @enum VideoDriver@, and you can use @method get_current_video_driver@ to get the current backend's index.\nget_video_driver_name ::\n                        (OS :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_video_driver_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_video_driver_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_video_driver_name\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.OS.get_video_driver_name\n\n{-# NOINLINE bindOS_get_virtual_keyboard_height #-}\n\n-- | Returns the on-screen keyboard's height in pixels. Returns 0 if there is no keyboard or if it is currently hidden.\nbindOS_get_virtual_keyboard_height :: MethodBind\nbindOS_get_virtual_keyboard_height\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_virtual_keyboard_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the on-screen keyboard's height in pixels. Returns 0 if there is no keyboard or if it is currently hidden.\nget_virtual_keyboard_height ::\n                              (OS :< cls, Object :< cls) => cls -> IO Int\nget_virtual_keyboard_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_virtual_keyboard_height\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_virtual_keyboard_height\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.OS.get_virtual_keyboard_height\n\n{-# NOINLINE bindOS_get_window_safe_area #-}\n\n-- | Returns unobscured area of the window where interactive controls should be rendered.\nbindOS_get_window_safe_area :: MethodBind\nbindOS_get_window_safe_area\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"get_window_safe_area\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns unobscured area of the window where interactive controls should be rendered.\nget_window_safe_area ::\n                       (OS :< cls, Object :< cls) => cls -> IO Rect2\nget_window_safe_area cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_get_window_safe_area (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"get_window_safe_area\" '[] (IO Rect2) where\n        nodeMethod = Godot.Core.OS.get_window_safe_area\n\n{-# NOINLINE bindOS_global_menu_add_item #-}\n\n-- | Add a new item with text \"label\" to global menu. Use \"_dock\" menu to add item to the macOS dock icon menu.\n--   \t\t\t\t__Note:__ This method is implemented on macOS.\nbindOS_global_menu_add_item :: MethodBind\nbindOS_global_menu_add_item\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"global_menu_add_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Add a new item with text \"label\" to global menu. Use \"_dock\" menu to add item to the macOS dock icon menu.\n--   \t\t\t\t__Note:__ This method is implemented on macOS.\nglobal_menu_add_item ::\n                       (OS :< cls, Object :< cls) =>\n                       cls ->\n                         GodotString -> GodotString -> GodotVariant -> GodotVariant -> IO ()\nglobal_menu_add_item cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_global_menu_add_item (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"global_menu_add_item\"\n           '[GodotString, GodotString, GodotVariant, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OS.global_menu_add_item\n\n{-# NOINLINE bindOS_global_menu_add_separator #-}\n\n-- | Add a separator between items. Separators also occupy an index.\n--   \t\t\t\t__Note:__ This method is implemented on macOS.\nbindOS_global_menu_add_separator :: MethodBind\nbindOS_global_menu_add_separator\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"global_menu_add_separator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Add a separator between items. Separators also occupy an index.\n--   \t\t\t\t__Note:__ This method is implemented on macOS.\nglobal_menu_add_separator ::\n                            (OS :< cls, Object :< cls) => cls -> GodotString -> IO ()\nglobal_menu_add_separator cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_global_menu_add_separator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"global_menu_add_separator\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OS.global_menu_add_separator\n\n{-# NOINLINE bindOS_global_menu_clear #-}\n\n-- | Clear the global menu, in effect removing all items.\n--   \t\t\t\t__Note:__ This method is implemented on macOS.\nbindOS_global_menu_clear :: MethodBind\nbindOS_global_menu_clear\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"global_menu_clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clear the global menu, in effect removing all items.\n--   \t\t\t\t__Note:__ This method is implemented on macOS.\nglobal_menu_clear ::\n                    (OS :< cls, Object :< cls) => cls -> GodotString -> IO ()\nglobal_menu_clear cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_global_menu_clear (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"global_menu_clear\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.OS.global_menu_clear\n\n{-# NOINLINE bindOS_global_menu_remove_item #-}\n\n-- | Removes the item at index \"idx\" from the global menu. Note that the indexes of items after the removed item are going to be shifted by one.\n--   \t\t\t\t__Note:__ This method is implemented on macOS.\nbindOS_global_menu_remove_item :: MethodBind\nbindOS_global_menu_remove_item\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"global_menu_remove_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the item at index \"idx\" from the global menu. Note that the indexes of items after the removed item are going to be shifted by one.\n--   \t\t\t\t__Note:__ This method is implemented on macOS.\nglobal_menu_remove_item ::\n                          (OS :< cls, Object :< cls) => cls -> GodotString -> Int -> IO ()\nglobal_menu_remove_item cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_global_menu_remove_item (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"global_menu_remove_item\"\n           '[GodotString, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OS.global_menu_remove_item\n\n{-# NOINLINE bindOS_has_environment #-}\n\n-- | Returns @true@ if an environment variable exists.\nbindOS_has_environment :: MethodBind\nbindOS_has_environment\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"has_environment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if an environment variable exists.\nhas_environment ::\n                  (OS :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_environment cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_has_environment (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"has_environment\" '[GodotString] (IO Bool)\n         where\n        nodeMethod = Godot.Core.OS.has_environment\n\n{-# NOINLINE bindOS_has_feature #-}\n\n-- | Returns @true@ if the feature for the given feature tag is supported in the currently running instance, depending on platform, build etc. Can be used to check whether you're currently running a debug build, on a certain platform or arch, etc. Refer to the @url=https://docs.godotengine.org/en/latest/getting_started/workflow/export/feature_tags.html@Feature Tags@/url@ documentation for more details.\n--   \t\t\t\t__Note:__ Tag names are case-sensitive.\nbindOS_has_feature :: MethodBind\nbindOS_has_feature\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"has_feature\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the feature for the given feature tag is supported in the currently running instance, depending on platform, build etc. Can be used to check whether you're currently running a debug build, on a certain platform or arch, etc. Refer to the @url=https://docs.godotengine.org/en/latest/getting_started/workflow/export/feature_tags.html@Feature Tags@/url@ documentation for more details.\n--   \t\t\t\t__Note:__ Tag names are case-sensitive.\nhas_feature ::\n              (OS :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_feature cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_has_feature (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"has_feature\" '[GodotString] (IO Bool) where\n        nodeMethod = Godot.Core.OS.has_feature\n\n{-# NOINLINE bindOS_has_touchscreen_ui_hint #-}\n\n-- | Returns @true@ if the device has a touchscreen or emulates one.\nbindOS_has_touchscreen_ui_hint :: MethodBind\nbindOS_has_touchscreen_ui_hint\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"has_touchscreen_ui_hint\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the device has a touchscreen or emulates one.\nhas_touchscreen_ui_hint ::\n                          (OS :< cls, Object :< cls) => cls -> IO Bool\nhas_touchscreen_ui_hint cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_has_touchscreen_ui_hint (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"has_touchscreen_ui_hint\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.OS.has_touchscreen_ui_hint\n\n{-# NOINLINE bindOS_has_virtual_keyboard #-}\n\n-- | Returns @true@ if the platform has a virtual keyboard, @false@ otherwise.\nbindOS_has_virtual_keyboard :: MethodBind\nbindOS_has_virtual_keyboard\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"has_virtual_keyboard\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the platform has a virtual keyboard, @false@ otherwise.\nhas_virtual_keyboard ::\n                       (OS :< cls, Object :< cls) => cls -> IO Bool\nhas_virtual_keyboard cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_has_virtual_keyboard (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"has_virtual_keyboard\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.OS.has_virtual_keyboard\n\n{-# NOINLINE bindOS_hide_virtual_keyboard #-}\n\n-- | Hides the virtual keyboard if it is shown, does nothing otherwise.\nbindOS_hide_virtual_keyboard :: MethodBind\nbindOS_hide_virtual_keyboard\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"hide_virtual_keyboard\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Hides the virtual keyboard if it is shown, does nothing otherwise.\nhide_virtual_keyboard :: (OS :< cls, Object :< cls) => cls -> IO ()\nhide_virtual_keyboard cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_hide_virtual_keyboard (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"hide_virtual_keyboard\" '[] (IO ()) where\n        nodeMethod = Godot.Core.OS.hide_virtual_keyboard\n\n{-# NOINLINE bindOS_is_debug_build #-}\n\n-- | Returns @true@ if the Godot binary used to run the project is a @i@debug@/i@ export template, or when running in the editor.\n--   \t\t\t\tReturns @false@ if the Godot binary used to run the project is a @i@release@/i@ export template.\n--   \t\t\t\tTo check whether the Godot binary used to run the project is an export template (debug or release), use @OS.has_feature(\"standalone\")@ instead.\nbindOS_is_debug_build :: MethodBind\nbindOS_is_debug_build\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"is_debug_build\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the Godot binary used to run the project is a @i@debug@/i@ export template, or when running in the editor.\n--   \t\t\t\tReturns @false@ if the Godot binary used to run the project is a @i@release@/i@ export template.\n--   \t\t\t\tTo check whether the Godot binary used to run the project is an export template (debug or release), use @OS.has_feature(\"standalone\")@ instead.\nis_debug_build :: (OS :< cls, Object :< cls) => cls -> IO Bool\nis_debug_build cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_is_debug_build (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"is_debug_build\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.OS.is_debug_build\n\n{-# NOINLINE bindOS_is_ok_left_and_cancel_right #-}\n\n-- | Returns @true@ if the __OK__ button should appear on the left and __Cancel__ on the right.\nbindOS_is_ok_left_and_cancel_right :: MethodBind\nbindOS_is_ok_left_and_cancel_right\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"is_ok_left_and_cancel_right\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the __OK__ button should appear on the left and __Cancel__ on the right.\nis_ok_left_and_cancel_right ::\n                              (OS :< cls, Object :< cls) => cls -> IO Bool\nis_ok_left_and_cancel_right cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_is_ok_left_and_cancel_right\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"is_ok_left_and_cancel_right\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.OS.is_ok_left_and_cancel_right\n\n{-# NOINLINE bindOS_is_scancode_unicode #-}\n\n-- | Returns @true@ if the input scancode corresponds to a Unicode character.\nbindOS_is_scancode_unicode :: MethodBind\nbindOS_is_scancode_unicode\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"is_scancode_unicode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the input scancode corresponds to a Unicode character.\nis_scancode_unicode ::\n                      (OS :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_scancode_unicode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_is_scancode_unicode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"is_scancode_unicode\" '[Int] (IO Bool) where\n        nodeMethod = Godot.Core.OS.is_scancode_unicode\n\n{-# NOINLINE bindOS_is_stdout_verbose #-}\n\n-- | Returns @true@ if the engine was executed with @-v@ (verbose stdout).\nbindOS_is_stdout_verbose :: MethodBind\nbindOS_is_stdout_verbose\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"is_stdout_verbose\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the engine was executed with @-v@ (verbose stdout).\nis_stdout_verbose :: (OS :< cls, Object :< cls) => cls -> IO Bool\nis_stdout_verbose cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_is_stdout_verbose (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"is_stdout_verbose\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.OS.is_stdout_verbose\n\n{-# NOINLINE bindOS_is_userfs_persistent #-}\n\n-- | If @true@, the @user://@ file system is persistent, so that its state is the same after a player quits and starts the game again. Relevant to the HTML5 platform, where this persistence may be unavailable.\nbindOS_is_userfs_persistent :: MethodBind\nbindOS_is_userfs_persistent\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"is_userfs_persistent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @user://@ file system is persistent, so that its state is the same after a player quits and starts the game again. Relevant to the HTML5 platform, where this persistence may be unavailable.\nis_userfs_persistent ::\n                       (OS :< cls, Object :< cls) => cls -> IO Bool\nis_userfs_persistent cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_is_userfs_persistent (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"is_userfs_persistent\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.OS.is_userfs_persistent\n\n{-# NOINLINE bindOS_is_window_always_on_top #-}\n\n-- | Returns @true@ if the window should always be on top of other windows.\nbindOS_is_window_always_on_top :: MethodBind\nbindOS_is_window_always_on_top\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"is_window_always_on_top\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the window should always be on top of other windows.\nis_window_always_on_top ::\n                          (OS :< cls, Object :< cls) => cls -> IO Bool\nis_window_always_on_top cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_is_window_always_on_top (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"is_window_always_on_top\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.OS.is_window_always_on_top\n\n{-# NOINLINE bindOS_is_window_focused #-}\n\n-- | Returns @true@ if the window is currently focused.\n--   \t\t\t\t__Note:__ Only implemented on desktop platforms. On other platforms, it will always return @true@.\nbindOS_is_window_focused :: MethodBind\nbindOS_is_window_focused\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"is_window_focused\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the window is currently focused.\n--   \t\t\t\t__Note:__ Only implemented on desktop platforms. On other platforms, it will always return @true@.\nis_window_focused :: (OS :< cls, Object :< cls) => cls -> IO Bool\nis_window_focused cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_is_window_focused (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"is_window_focused\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.OS.is_window_focused\n\n{-# NOINLINE bindOS_kill #-}\n\n-- | Kill (terminate) the process identified by the given process ID (@pid@), e.g. the one returned by @method execute@ in non-blocking mode.\n--   \t\t\t\t__Note:__ This method can also be used to kill processes that were not spawned by the game.\n--   \t\t\t\t__Note:__ This method is implemented on Android, iOS, Linux, macOS and Windows.\nbindOS_kill :: MethodBind\nbindOS_kill\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"kill\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Kill (terminate) the process identified by the given process ID (@pid@), e.g. the one returned by @method execute@ in non-blocking mode.\n--   \t\t\t\t__Note:__ This method can also be used to kill processes that were not spawned by the game.\n--   \t\t\t\t__Note:__ This method is implemented on Android, iOS, Linux, macOS and Windows.\nkill :: (OS :< cls, Object :< cls) => cls -> Int -> IO Int\nkill cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_kill (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"kill\" '[Int] (IO Int) where\n        nodeMethod = Godot.Core.OS.kill\n\n{-# NOINLINE bindOS_move_window_to_foreground #-}\n\n-- | Moves the window to the front.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nbindOS_move_window_to_foreground :: MethodBind\nbindOS_move_window_to_foreground\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"move_window_to_foreground\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves the window to the front.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nmove_window_to_foreground ::\n                            (OS :< cls, Object :< cls) => cls -> IO ()\nmove_window_to_foreground cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_move_window_to_foreground\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"move_window_to_foreground\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.OS.move_window_to_foreground\n\n{-# NOINLINE bindOS_native_video_is_playing #-}\n\n-- | Returns @true@ if native video is playing.\n--   \t\t\t\t__Note:__ This method is implemented on Android and iOS.\nbindOS_native_video_is_playing :: MethodBind\nbindOS_native_video_is_playing\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"native_video_is_playing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if native video is playing.\n--   \t\t\t\t__Note:__ This method is implemented on Android and iOS.\nnative_video_is_playing ::\n                          (OS :< cls, Object :< cls) => cls -> IO Bool\nnative_video_is_playing cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_native_video_is_playing (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"native_video_is_playing\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.OS.native_video_is_playing\n\n{-# NOINLINE bindOS_native_video_pause #-}\n\n-- | Pauses native video playback.\n--   \t\t\t\t__Note:__ This method is implemented on Android and iOS.\nbindOS_native_video_pause :: MethodBind\nbindOS_native_video_pause\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"native_video_pause\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Pauses native video playback.\n--   \t\t\t\t__Note:__ This method is implemented on Android and iOS.\nnative_video_pause :: (OS :< cls, Object :< cls) => cls -> IO ()\nnative_video_pause cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_native_video_pause (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"native_video_pause\" '[] (IO ()) where\n        nodeMethod = Godot.Core.OS.native_video_pause\n\n{-# NOINLINE bindOS_native_video_play #-}\n\n-- | Plays native video from the specified path, at the given volume and with audio and subtitle tracks.\n--   \t\t\t\t__Note:__ This method is implemented on Android and iOS, and the current Android implementation does not support the @volume@, @audio_track@ and @subtitle_track@ options.\nbindOS_native_video_play :: MethodBind\nbindOS_native_video_play\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"native_video_play\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Plays native video from the specified path, at the given volume and with audio and subtitle tracks.\n--   \t\t\t\t__Note:__ This method is implemented on Android and iOS, and the current Android implementation does not support the @volume@, @audio_track@ and @subtitle_track@ options.\nnative_video_play ::\n                    (OS :< cls, Object :< cls) =>\n                    cls -> GodotString -> Float -> GodotString -> GodotString -> IO Int\nnative_video_play cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_native_video_play (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"native_video_play\"\n           '[GodotString, Float, GodotString, GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.OS.native_video_play\n\n{-# NOINLINE bindOS_native_video_stop #-}\n\n-- | Stops native video playback.\n--   \t\t\t\t__Note:__ This method is implemented on Android and iOS.\nbindOS_native_video_stop :: MethodBind\nbindOS_native_video_stop\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"native_video_stop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops native video playback.\n--   \t\t\t\t__Note:__ This method is implemented on Android and iOS.\nnative_video_stop :: (OS :< cls, Object :< cls) => cls -> IO ()\nnative_video_stop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_native_video_stop (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"native_video_stop\" '[] (IO ()) where\n        nodeMethod = Godot.Core.OS.native_video_stop\n\n{-# NOINLINE bindOS_native_video_unpause #-}\n\n-- | Resumes native video playback.\n--   \t\t\t\t__Note:__ This method is implemented on Android and iOS.\nbindOS_native_video_unpause :: MethodBind\nbindOS_native_video_unpause\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"native_video_unpause\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Resumes native video playback.\n--   \t\t\t\t__Note:__ This method is implemented on Android and iOS.\nnative_video_unpause :: (OS :< cls, Object :< cls) => cls -> IO ()\nnative_video_unpause cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_native_video_unpause (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"native_video_unpause\" '[] (IO ()) where\n        nodeMethod = Godot.Core.OS.native_video_unpause\n\n{-# NOINLINE bindOS_open_midi_inputs #-}\n\n-- | Initialises the singleton for the system MIDI driver.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nbindOS_open_midi_inputs :: MethodBind\nbindOS_open_midi_inputs\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"open_midi_inputs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Initialises the singleton for the system MIDI driver.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nopen_midi_inputs :: (OS :< cls, Object :< cls) => cls -> IO ()\nopen_midi_inputs cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_open_midi_inputs (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"open_midi_inputs\" '[] (IO ()) where\n        nodeMethod = Godot.Core.OS.open_midi_inputs\n\n{-# NOINLINE bindOS_print_all_resources #-}\n\n-- | Shows all resources in the game. Optionally, the list can be written to a file by specifying a file path in @tofile@.\nbindOS_print_all_resources :: MethodBind\nbindOS_print_all_resources\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"print_all_resources\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Shows all resources in the game. Optionally, the list can be written to a file by specifying a file path in @tofile@.\nprint_all_resources ::\n                      (OS :< cls, Object :< cls) => cls -> Maybe GodotString -> IO ()\nprint_all_resources cls arg1\n  = withVariantArray [defaultedVariant VariantString \"\" arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_print_all_resources (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"print_all_resources\" '[Maybe GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OS.print_all_resources\n\n{-# NOINLINE bindOS_print_all_textures_by_size #-}\n\n-- | Shows the list of loaded textures sorted by size in memory.\nbindOS_print_all_textures_by_size :: MethodBind\nbindOS_print_all_textures_by_size\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"print_all_textures_by_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Shows the list of loaded textures sorted by size in memory.\nprint_all_textures_by_size ::\n                             (OS :< cls, Object :< cls) => cls -> IO ()\nprint_all_textures_by_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_print_all_textures_by_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"print_all_textures_by_size\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.OS.print_all_textures_by_size\n\n{-# NOINLINE bindOS_print_resources_by_type #-}\n\n-- | Shows the number of resources loaded by the game of the given types.\nbindOS_print_resources_by_type :: MethodBind\nbindOS_print_resources_by_type\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"print_resources_by_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Shows the number of resources loaded by the game of the given types.\nprint_resources_by_type ::\n                          (OS :< cls, Object :< cls) => cls -> PoolStringArray -> IO ()\nprint_resources_by_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_print_resources_by_type (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"print_resources_by_type\" '[PoolStringArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OS.print_resources_by_type\n\n{-# NOINLINE bindOS_print_resources_in_use #-}\n\n-- | Shows all resources currently used by the game.\nbindOS_print_resources_in_use :: MethodBind\nbindOS_print_resources_in_use\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"print_resources_in_use\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Shows all resources currently used by the game.\nprint_resources_in_use ::\n                         (OS :< cls, Object :< cls) => cls -> Maybe Bool -> IO ()\nprint_resources_in_use cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_print_resources_in_use (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"print_resources_in_use\" '[Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OS.print_resources_in_use\n\n{-# NOINLINE bindOS_request_attention #-}\n\n-- | Request the user attention to the window. It'll flash the taskbar button on Windows or bounce the dock icon on OSX.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nbindOS_request_attention :: MethodBind\nbindOS_request_attention\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"request_attention\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Request the user attention to the window. It'll flash the taskbar button on Windows or bounce the dock icon on OSX.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nrequest_attention :: (OS :< cls, Object :< cls) => cls -> IO ()\nrequest_attention cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_request_attention (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"request_attention\" '[] (IO ()) where\n        nodeMethod = Godot.Core.OS.request_attention\n\n{-# NOINLINE bindOS_request_permission #-}\n\n-- | At the moment this function is only used by @AudioDriverOpenSL@ to request permission for @RECORD_AUDIO@ on Android.\nbindOS_request_permission :: MethodBind\nbindOS_request_permission\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"request_permission\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | At the moment this function is only used by @AudioDriverOpenSL@ to request permission for @RECORD_AUDIO@ on Android.\nrequest_permission ::\n                     (OS :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nrequest_permission cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_request_permission (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"request_permission\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.OS.request_permission\n\n{-# NOINLINE bindOS_request_permissions #-}\n\n-- | With this function you can request dangerous permissions since normal permissions are automatically granted at install time in Android application.\n--   \t\t\t\t__Note:__ This method is implemented on Android.\nbindOS_request_permissions :: MethodBind\nbindOS_request_permissions\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"request_permissions\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | With this function you can request dangerous permissions since normal permissions are automatically granted at install time in Android application.\n--   \t\t\t\t__Note:__ This method is implemented on Android.\nrequest_permissions :: (OS :< cls, Object :< cls) => cls -> IO Bool\nrequest_permissions cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_request_permissions (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"request_permissions\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.OS.request_permissions\n\n{-# NOINLINE bindOS_set_icon #-}\n\n-- | Sets the game's icon using an @Image@ resource.\n--   \t\t\t\tThe same image is used for window caption, taskbar/dock and window selection dialog. Image is scaled as needed.\n--   \t\t\t\t__Note:__ This method is implemented on HTML5, Linux, macOS and Windows.\nbindOS_set_icon :: MethodBind\nbindOS_set_icon\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the game's icon using an @Image@ resource.\n--   \t\t\t\tThe same image is used for window caption, taskbar/dock and window selection dialog. Image is scaled as needed.\n--   \t\t\t\t__Note:__ This method is implemented on HTML5, Linux, macOS and Windows.\nset_icon :: (OS :< cls, Object :< cls) => cls -> Image -> IO ()\nset_icon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_icon (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_icon\" '[Image] (IO ()) where\n        nodeMethod = Godot.Core.OS.set_icon\n\n{-# NOINLINE bindOS_set_ime_active #-}\n\n-- | Sets whether IME input mode should be enabled.\n--   \t\t\t\tIf active IME handles key events before the application and creates an composition string and suggestion list.\n--   \t\t\t\tApplication can retrieve the composition status by using @method get_ime_selection@ and @method get_ime_text@ functions.\n--   \t\t\t\tCompleted composition string is committed when input is finished.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nbindOS_set_ime_active :: MethodBind\nbindOS_set_ime_active\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_ime_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether IME input mode should be enabled.\n--   \t\t\t\tIf active IME handles key events before the application and creates an composition string and suggestion list.\n--   \t\t\t\tApplication can retrieve the composition status by using @method get_ime_selection@ and @method get_ime_text@ functions.\n--   \t\t\t\tCompleted composition string is committed when input is finished.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nset_ime_active ::\n                 (OS :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_ime_active cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_ime_active (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_ime_active\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.OS.set_ime_active\n\n{-# NOINLINE bindOS_set_ime_position #-}\n\n-- | Sets position of IME suggestion list popup (in window coordinates).\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nbindOS_set_ime_position :: MethodBind\nbindOS_set_ime_position\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_ime_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets position of IME suggestion list popup (in window coordinates).\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nset_ime_position ::\n                   (OS :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_ime_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_ime_position (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_ime_position\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.OS.set_ime_position\n\n{-# NOINLINE bindOS_set_native_icon #-}\n\n-- | Sets the game's icon using a multi-size platform-specific icon file (@*.ico@ on Windows and @*.icns@ on macOS).\n--   \t\t\t\tAppropriate size sub-icons are used for window caption, taskbar/dock and window selection dialog.\n--   \t\t\t\t__Note:__ This method is implemented on macOS and Windows.\nbindOS_set_native_icon :: MethodBind\nbindOS_set_native_icon\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_native_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the game's icon using a multi-size platform-specific icon file (@*.ico@ on Windows and @*.icns@ on macOS).\n--   \t\t\t\tAppropriate size sub-icons are used for window caption, taskbar/dock and window selection dialog.\n--   \t\t\t\t__Note:__ This method is implemented on macOS and Windows.\nset_native_icon ::\n                  (OS :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_native_icon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_native_icon (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_native_icon\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.OS.set_native_icon\n\n{-# NOINLINE bindOS_set_thread_name #-}\n\n-- | Sets the name of the current thread.\nbindOS_set_thread_name :: MethodBind\nbindOS_set_thread_name\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_thread_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the name of the current thread.\nset_thread_name ::\n                  (OS :< cls, Object :< cls) => cls -> GodotString -> IO Int\nset_thread_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_thread_name (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_thread_name\" '[GodotString] (IO Int)\n         where\n        nodeMethod = Godot.Core.OS.set_thread_name\n\n{-# NOINLINE bindOS_set_use_file_access_save_and_swap #-}\n\n-- | Enables backup saves if @enabled@ is @true@.\nbindOS_set_use_file_access_save_and_swap :: MethodBind\nbindOS_set_use_file_access_save_and_swap\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_file_access_save_and_swap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables backup saves if @enabled@ is @true@.\nset_use_file_access_save_and_swap ::\n                                    (OS :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_file_access_save_and_swap cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_use_file_access_save_and_swap\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_use_file_access_save_and_swap\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OS.set_use_file_access_save_and_swap\n\n{-# NOINLINE bindOS_set_window_always_on_top #-}\n\n-- | Sets whether the window should always be on top.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nbindOS_set_window_always_on_top :: MethodBind\nbindOS_set_window_always_on_top\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_window_always_on_top\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether the window should always be on top.\n--   \t\t\t\t__Note:__ This method is implemented on Linux, macOS and Windows.\nset_window_always_on_top ::\n                           (OS :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_window_always_on_top cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_window_always_on_top (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_window_always_on_top\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.OS.set_window_always_on_top\n\n{-# NOINLINE bindOS_set_window_title #-}\n\n-- | Sets the window title to the specified string.\n--   \t\t\t\t__Note:__ This should be used sporadically. Don't set this every frame, as that will negatively affect performance on some window managers.\n--   \t\t\t\t__Note:__ This method is implemented on HTML5, Linux, macOS and Windows.\nbindOS_set_window_title :: MethodBind\nbindOS_set_window_title\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"set_window_title\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the window title to the specified string.\n--   \t\t\t\t__Note:__ This should be used sporadically. Don't set this every frame, as that will negatively affect performance on some window managers.\n--   \t\t\t\t__Note:__ This method is implemented on HTML5, Linux, macOS and Windows.\nset_window_title ::\n                   (OS :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_window_title cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_set_window_title (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"set_window_title\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.OS.set_window_title\n\n{-# NOINLINE bindOS_shell_open #-}\n\n-- | Requests the OS to open a resource with the most appropriate program. For example:\n--   \t\t\t\t- @OS.shell_open(\"C:\\\\Users\\name\\Downloads\")@ on Windows opens the file explorer at the user's Downloads folder.\n--   \t\t\t\t- @OS.shell_open(\"https://godotengine.org\")@ opens the default web browser on the official Godot website.\n--   \t\t\t\t- @OS.shell_open(\"mailto:example@example.com\")@ opens the default email client with the \"To\" field set to @example@example.com@. See @url=https://blog.escapecreative.com/customizing-mailto-links/@Customizing @mailto:@ Links@/url@ for a list of fields that can be added.\n--   \t\t\t\tUse @method ProjectSettings.globalize_path@ to convert a @res://@ or @user://@ path into a system path for use with this method.\n--   \t\t\t\t__Note:__ This method is implemented on Android, iOS, HTML5, Linux, macOS and Windows.\nbindOS_shell_open :: MethodBind\nbindOS_shell_open\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"shell_open\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Requests the OS to open a resource with the most appropriate program. For example:\n--   \t\t\t\t- @OS.shell_open(\"C:\\\\Users\\name\\Downloads\")@ on Windows opens the file explorer at the user's Downloads folder.\n--   \t\t\t\t- @OS.shell_open(\"https://godotengine.org\")@ opens the default web browser on the official Godot website.\n--   \t\t\t\t- @OS.shell_open(\"mailto:example@example.com\")@ opens the default email client with the \"To\" field set to @example@example.com@. See @url=https://blog.escapecreative.com/customizing-mailto-links/@Customizing @mailto:@ Links@/url@ for a list of fields that can be added.\n--   \t\t\t\tUse @method ProjectSettings.globalize_path@ to convert a @res://@ or @user://@ path into a system path for use with this method.\n--   \t\t\t\t__Note:__ This method is implemented on Android, iOS, HTML5, Linux, macOS and Windows.\nshell_open ::\n             (OS :< cls, Object :< cls) => cls -> GodotString -> IO Int\nshell_open cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_shell_open (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"shell_open\" '[GodotString] (IO Int) where\n        nodeMethod = Godot.Core.OS.shell_open\n\n{-# NOINLINE bindOS_show_virtual_keyboard #-}\n\n-- | Shows the virtual keyboard if the platform has one.\n--   \t\t\t\tThe @existing_text@ parameter is useful for implementing your own @LineEdit@ or @TextEdit@, as it tells the virtual keyboard what text has already been typed (the virtual keyboard uses it for auto-correct and predictions).\n--   \t\t\t\tThe @multiline@ parameter needs to be set to @true@ to be able to enter multiple lines of text, as in @TextEdit@.\n--   \t\t\t\t__Note:__ This method is implemented on Android, iOS and UWP.\nbindOS_show_virtual_keyboard :: MethodBind\nbindOS_show_virtual_keyboard\n  = unsafePerformIO $\n      withCString \"_OS\" $\n        \\ clsNamePtr ->\n          withCString \"show_virtual_keyboard\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Shows the virtual keyboard if the platform has one.\n--   \t\t\t\tThe @existing_text@ parameter is useful for implementing your own @LineEdit@ or @TextEdit@, as it tells the virtual keyboard what text has already been typed (the virtual keyboard uses it for auto-correct and predictions).\n--   \t\t\t\tThe @multiline@ parameter needs to be set to @true@ to be able to enter multiple lines of text, as in @TextEdit@.\n--   \t\t\t\t__Note:__ This method is implemented on Android, iOS and UWP.\nshow_virtual_keyboard ::\n                        (OS :< cls, Object :< cls) => cls -> Maybe GodotString -> IO ()\nshow_virtual_keyboard cls arg1\n  = withVariantArray [defaultedVariant VariantString \"\" arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOS_show_virtual_keyboard (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OS \"show_virtual_keyboard\" '[Maybe GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OS.show_virtual_keyboard"
  },
  {
    "path": "src/Godot/Core/Object.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Object\n       (Godot.Core.Object._CONNECT_REFERENCE_COUNTED,\n        Godot.Core.Object._CONNECT_DEFERRED,\n        Godot.Core.Object._NOTIFICATION_POSTINITIALIZE,\n        Godot.Core.Object._CONNECT_ONESHOT,\n        Godot.Core.Object._CONNECT_PERSIST,\n        Godot.Core.Object._NOTIFICATION_PREDELETE,\n        Godot.Core.Object.sig_script_changed, Godot.Core.Object._get,\n        Godot.Core.Object._get_property_list, Godot.Core.Object._init,\n        Godot.Core.Object._notification, Godot.Core.Object._set,\n        Godot.Core.Object._to_string, Godot.Core.Object.add_user_signal,\n        Godot.Core.Object.call, Godot.Core.Object.call_deferred,\n        Godot.Core.Object.callv, Godot.Core.Object.can_translate_messages,\n        Godot.Core.Object.connect, Godot.Core.Object.disconnect,\n        Godot.Core.Object.emit_signal, Godot.Core.Object.free,\n        Godot.Core.Object.get, Godot.Core.Object.get_class,\n        Godot.Core.Object.get_incoming_connections,\n        Godot.Core.Object.get_indexed, Godot.Core.Object.get_instance_id,\n        Godot.Core.Object.get_meta, Godot.Core.Object.get_meta_list,\n        Godot.Core.Object.get_method_list,\n        Godot.Core.Object.get_property_list, Godot.Core.Object.get_script,\n        Godot.Core.Object.get_signal_connection_list,\n        Godot.Core.Object.get_signal_list, Godot.Core.Object.has_meta,\n        Godot.Core.Object.has_method, Godot.Core.Object.has_user_signal,\n        Godot.Core.Object.is_blocking_signals, Godot.Core.Object.is_class,\n        Godot.Core.Object.is_connected,\n        Godot.Core.Object.is_queued_for_deletion,\n        Godot.Core.Object.notification,\n        Godot.Core.Object.property_list_changed_notify,\n        Godot.Core.Object.remove_meta, Godot.Core.Object.set,\n        Godot.Core.Object.set_block_signals,\n        Godot.Core.Object.set_deferred, Godot.Core.Object.set_indexed,\n        Godot.Core.Object.set_message_translation,\n        Godot.Core.Object.set_meta, Godot.Core.Object.set_script,\n        Godot.Core.Object.to_string, Godot.Core.Object.tr)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\n\n_CONNECT_REFERENCE_COUNTED :: Int\n_CONNECT_REFERENCE_COUNTED = 8\n\n_CONNECT_DEFERRED :: Int\n_CONNECT_DEFERRED = 1\n\n_NOTIFICATION_POSTINITIALIZE :: Int\n_NOTIFICATION_POSTINITIALIZE = 0\n\n_CONNECT_ONESHOT :: Int\n_CONNECT_ONESHOT = 4\n\n_CONNECT_PERSIST :: Int\n_CONNECT_PERSIST = 2\n\n_NOTIFICATION_PREDELETE :: Int\n_NOTIFICATION_PREDELETE = 1\n\n-- | Emitted whenever the object's script is changed.\nsig_script_changed :: Godot.Internal.Dispatch.Signal Object\nsig_script_changed\n  = Godot.Internal.Dispatch.Signal \"script_changed\"\n\ninstance NodeSignal Object \"script_changed\" '[]\n\n{-# NOINLINE bindObject__get #-}\n\n-- | Virtual method which can be overridden to customize the return value of @method get@.\n--   \t\t\t\tReturns the given property. Returns @null@ if the @property@ does not exist.\nbindObject__get :: MethodBind\nbindObject__get\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"_get\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Virtual method which can be overridden to customize the return value of @method get@.\n--   \t\t\t\tReturns the given property. Returns @null@ if the @property@ does not exist.\n_get ::\n       (Object :< cls, Object :< cls) =>\n       cls -> GodotString -> IO GodotVariant\n_get cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject__get (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"_get\" '[GodotString] (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Object._get\n\n{-# NOINLINE bindObject__get_property_list #-}\n\n-- | Virtual method which can be overridden to customize the return value of @method get_property_list@.\n--   \t\t\t\tReturns the object's property list as an @Array@ of dictionaries.\n--   \t\t\t\tEach property's @Dictionary@ must contain at least @name: String@ and @type: int@ (see @enum Variant.Type@) entries. Optionally, it can also include @hint: int@ (see @enum PropertyHint@), @hint_string: String@, and @usage: int@ (see @enum PropertyUsageFlags@).\nbindObject__get_property_list :: MethodBind\nbindObject__get_property_list\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"_get_property_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Virtual method which can be overridden to customize the return value of @method get_property_list@.\n--   \t\t\t\tReturns the object's property list as an @Array@ of dictionaries.\n--   \t\t\t\tEach property's @Dictionary@ must contain at least @name: String@ and @type: int@ (see @enum Variant.Type@) entries. Optionally, it can also include @hint: int@ (see @enum PropertyHint@), @hint_string: String@, and @usage: int@ (see @enum PropertyUsageFlags@).\n_get_property_list ::\n                     (Object :< cls, Object :< cls) => cls -> IO Array\n_get_property_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject__get_property_list (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"_get_property_list\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.Object._get_property_list\n\n{-# NOINLINE bindObject__init #-}\n\n-- | Called when the object is initialized.\nbindObject__init :: MethodBind\nbindObject__init\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"_init\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called when the object is initialized.\n_init :: (Object :< cls, Object :< cls) => cls -> IO ()\n_init cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject__init (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"_init\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Object._init\n\n{-# NOINLINE bindObject__notification #-}\n\n-- | Called whenever the object receives a notification, which is identified in @what@ by a constant. The base @Object@ has two constants @NOTIFICATION_POSTINITIALIZE@ and @NOTIFICATION_PREDELETE@, but subclasses such as @Node@ define a lot more notifications which are also received by this method.\nbindObject__notification :: MethodBind\nbindObject__notification\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"_notification\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called whenever the object receives a notification, which is identified in @what@ by a constant. The base @Object@ has two constants @NOTIFICATION_POSTINITIALIZE@ and @NOTIFICATION_PREDELETE@, but subclasses such as @Node@ define a lot more notifications which are also received by this method.\n_notification ::\n                (Object :< cls, Object :< cls) => cls -> Int -> IO ()\n_notification cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject__notification (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"_notification\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Object._notification\n\n{-# NOINLINE bindObject__set #-}\n\n-- | Virtual method which can be overridden to customize the return value of @method set@.\n--   \t\t\t\tSets a property. Returns @true@ if the @property@ exists.\nbindObject__set :: MethodBind\nbindObject__set\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"_set\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Virtual method which can be overridden to customize the return value of @method set@.\n--   \t\t\t\tSets a property. Returns @true@ if the @property@ exists.\n_set ::\n       (Object :< cls, Object :< cls) =>\n       cls -> GodotString -> GodotVariant -> IO Bool\n_set cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject__set (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"_set\" '[GodotString, GodotVariant]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Object._set\n\n{-# NOINLINE bindObject__to_string #-}\n\n-- | Virtual method which can be overridden to customize the return value of @method to_string@, and thus the object's representation where it is converted to a string, e.g. with @print(obj)@.\n--   \t\t\t\tReturns a @String@ representing the object. If not overridden, defaults to @\"@ClassName:RID@\"@.\nbindObject__to_string :: MethodBind\nbindObject__to_string\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"_to_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Virtual method which can be overridden to customize the return value of @method to_string@, and thus the object's representation where it is converted to a string, e.g. with @print(obj)@.\n--   \t\t\t\tReturns a @String@ representing the object. If not overridden, defaults to @\"@ClassName:RID@\"@.\n_to_string ::\n             (Object :< cls, Object :< cls) => cls -> IO GodotString\n_to_string cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject__to_string (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"_to_string\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.Object._to_string\n\n{-# NOINLINE bindObject_add_user_signal #-}\n\n-- | Adds a user-defined @signal@. Arguments are optional, but can be added as an @Array@ of dictionaries, each containing @name: String@ and @type: int@ (see @enum Variant.Type@) entries.\nbindObject_add_user_signal :: MethodBind\nbindObject_add_user_signal\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"add_user_signal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a user-defined @signal@. Arguments are optional, but can be added as an @Array@ of dictionaries, each containing @name: String@ and @type: int@ (see @enum Variant.Type@) entries.\nadd_user_signal ::\n                  (Object :< cls, Object :< cls) =>\n                  cls -> GodotString -> Maybe Array -> IO ()\nadd_user_signal cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantArray V.empty arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_add_user_signal (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"add_user_signal\"\n           '[GodotString, Maybe Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Object.add_user_signal\n\n{-# NOINLINE bindObject_call #-}\n\n-- | Calls the @method@ on the object and returns the result. This method supports a variable number of arguments, so parameters are passed as a comma separated list. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tcall(\"set\", \"position\", Vector2(42.0, 0.0))\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t__Note:__ In C#, the method name must be specified as snake_case if it is defined by a built-in Godot node. This doesn't apply to user-defined methods where you should use the same convention as in the C# source (typically PascalCase).\nbindObject_call :: MethodBind\nbindObject_call\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"call\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calls the @method@ on the object and returns the result. This method supports a variable number of arguments, so parameters are passed as a comma separated list. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tcall(\"set\", \"position\", Vector2(42.0, 0.0))\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t__Note:__ In C#, the method name must be specified as snake_case if it is defined by a built-in Godot node. This doesn't apply to user-defined methods where you should use the same convention as in the C# source (typically PascalCase).\ncall ::\n       (Object :< cls, Object :< cls) =>\n       cls -> GodotString -> [Variant 'GodotTy] -> IO GodotVariant\ncall cls arg1 varargs\n  = withVariantArray ([toVariant arg1] ++ varargs)\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_call (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"call\"\n           '[GodotString, [Variant 'GodotTy]]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Object.call\n\n{-# NOINLINE bindObject_call_deferred #-}\n\n-- | Calls the @method@ on the object during idle time. This method supports a variable number of arguments, so parameters are passed as a comma separated list. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tcall_deferred(\"set\", \"position\", Vector2(42.0, 0.0))\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t__Note:__ In C#, the method name must be specified as snake_case if it is defined by a built-in Godot node. This doesn't apply to user-defined methods where you should use the same convention as in the C# source (typically PascalCase).\nbindObject_call_deferred :: MethodBind\nbindObject_call_deferred\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"call_deferred\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calls the @method@ on the object during idle time. This method supports a variable number of arguments, so parameters are passed as a comma separated list. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tcall_deferred(\"set\", \"position\", Vector2(42.0, 0.0))\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t__Note:__ In C#, the method name must be specified as snake_case if it is defined by a built-in Godot node. This doesn't apply to user-defined methods where you should use the same convention as in the C# source (typically PascalCase).\ncall_deferred ::\n                (Object :< cls, Object :< cls) =>\n                cls -> GodotString -> [Variant 'GodotTy] -> IO ()\ncall_deferred cls arg1 varargs\n  = withVariantArray ([toVariant arg1] ++ varargs)\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_call_deferred (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"call_deferred\"\n           '[GodotString, [Variant 'GodotTy]]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Object.call_deferred\n\n{-# NOINLINE bindObject_callv #-}\n\n-- | Calls the @method@ on the object and returns the result. Contrarily to @method call@, this method does not support a variable number of arguments but expects all parameters to be via a single @Array@.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tcallv(\"set\", @ \"position\", Vector2(42.0, 0.0) @)\n--   \t\t\t\t\n--   @\nbindObject_callv :: MethodBind\nbindObject_callv\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"callv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calls the @method@ on the object and returns the result. Contrarily to @method call@, this method does not support a variable number of arguments but expects all parameters to be via a single @Array@.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tcallv(\"set\", @ \"position\", Vector2(42.0, 0.0) @)\n--   \t\t\t\t\n--   @\ncallv ::\n        (Object :< cls, Object :< cls) =>\n        cls -> GodotString -> Array -> IO GodotVariant\ncallv cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_callv (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"callv\" '[GodotString, Array]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Object.callv\n\n{-# NOINLINE bindObject_can_translate_messages #-}\n\n-- | Returns @true@ if the object can translate strings. See @method set_message_translation@ and @method tr@.\nbindObject_can_translate_messages :: MethodBind\nbindObject_can_translate_messages\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"can_translate_messages\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the object can translate strings. See @method set_message_translation@ and @method tr@.\ncan_translate_messages ::\n                         (Object :< cls, Object :< cls) => cls -> IO Bool\ncan_translate_messages cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_can_translate_messages\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"can_translate_messages\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Object.can_translate_messages\n\n{-# NOINLINE bindObject_connect #-}\n\n-- | Connects a @signal@ to a @method@ on a @target@ object. Pass optional @binds@ to the call as an @Array@ of parameters. These parameters will be passed to the method after any parameter used in the call to @method emit_signal@. Use @flags@ to set deferred or one-shot connections. See @enum ConnectFlags@ constants.\n--   \t\t\t\tA @signal@ can only be connected once to a @method@. It will throw an error if already connected, unless the signal was connected with @CONNECT_REFERENCE_COUNTED@. To avoid this, first, use @method is_connected@ to check for existing connections.\n--   \t\t\t\tIf the @target@ is destroyed in the game's lifecycle, the connection will be lost.\n--   \t\t\t\tExamples:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tconnect(\"pressed\", self, \"_on_Button_pressed\") # BaseButton signal\n--   \t\t\t\tconnect(\"text_entered\", self, \"_on_LineEdit_text_entered\") # LineEdit signal\n--   \t\t\t\tconnect(\"hit\", self, \"_on_Player_hit\", @ weapon_type, damage @) # User-defined signal\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tAn example of the relationship between @binds@ passed to @method connect@ and parameters used when calling @method emit_signal@:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tconnect(\"hit\", self, \"_on_Player_hit\", @ weapon_type, damage @) # weapon_type and damage are passed last\n--   \t\t\t\temit_signal(\"hit\", \"Dark lord\", 5) # \"Dark lord\" and 5 are passed first\n--   \t\t\t\tfunc _on_Player_hit(hit_by, level, weapon_type, damage):\n--   \t\t\t\t    print(\"Hit by %s (lvl %d) with weapon %s for %d damage\" % @hit_by, level, weapon_type, damage@)\n--   \t\t\t\t\n--   @\nbindObject_connect :: MethodBind\nbindObject_connect\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"connect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Connects a @signal@ to a @method@ on a @target@ object. Pass optional @binds@ to the call as an @Array@ of parameters. These parameters will be passed to the method after any parameter used in the call to @method emit_signal@. Use @flags@ to set deferred or one-shot connections. See @enum ConnectFlags@ constants.\n--   \t\t\t\tA @signal@ can only be connected once to a @method@. It will throw an error if already connected, unless the signal was connected with @CONNECT_REFERENCE_COUNTED@. To avoid this, first, use @method is_connected@ to check for existing connections.\n--   \t\t\t\tIf the @target@ is destroyed in the game's lifecycle, the connection will be lost.\n--   \t\t\t\tExamples:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tconnect(\"pressed\", self, \"_on_Button_pressed\") # BaseButton signal\n--   \t\t\t\tconnect(\"text_entered\", self, \"_on_LineEdit_text_entered\") # LineEdit signal\n--   \t\t\t\tconnect(\"hit\", self, \"_on_Player_hit\", @ weapon_type, damage @) # User-defined signal\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tAn example of the relationship between @binds@ passed to @method connect@ and parameters used when calling @method emit_signal@:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tconnect(\"hit\", self, \"_on_Player_hit\", @ weapon_type, damage @) # weapon_type and damage are passed last\n--   \t\t\t\temit_signal(\"hit\", \"Dark lord\", 5) # \"Dark lord\" and 5 are passed first\n--   \t\t\t\tfunc _on_Player_hit(hit_by, level, weapon_type, damage):\n--   \t\t\t\t    print(\"Hit by %s (lvl %d) with weapon %s for %d damage\" % @hit_by, level, weapon_type, damage@)\n--   \t\t\t\t\n--   @\nconnect ::\n          (Object :< cls, Object :< cls) =>\n          cls ->\n            GodotString ->\n              Object -> GodotString -> Maybe Array -> Maybe Int -> IO Int\nconnect cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       defaultedVariant VariantArray V.empty arg4,\n       maybe (VariantInt (0)) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_connect (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"connect\"\n           '[GodotString, Object, GodotString, Maybe Array, Maybe Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Object.connect\n\n{-# NOINLINE bindObject_disconnect #-}\n\n-- | Disconnects a @signal@ from a @method@ on the given @target@.\n--   \t\t\t\tIf you try to disconnect a connection that does not exist, the method will throw an error. Use @method is_connected@ to ensure that the connection exists.\nbindObject_disconnect :: MethodBind\nbindObject_disconnect\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"disconnect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Disconnects a @signal@ from a @method@ on the given @target@.\n--   \t\t\t\tIf you try to disconnect a connection that does not exist, the method will throw an error. Use @method is_connected@ to ensure that the connection exists.\ndisconnect ::\n             (Object :< cls, Object :< cls) =>\n             cls -> GodotString -> Object -> GodotString -> IO ()\ndisconnect cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_disconnect (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"disconnect\"\n           '[GodotString, Object, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Object.disconnect\n\n{-# NOINLINE bindObject_emit_signal #-}\n\n-- | Emits the given @signal@. The signal must exist, so it should be a built-in signal of this class or one of its parent classes, or a user-defined signal. This method supports a variable number of arguments, so parameters are passed as a comma separated list. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\temit_signal(\"hit\", weapon_type, damage)\n--   \t\t\t\temit_signal(\"game_over\")\n--   \t\t\t\t\n--   @\nbindObject_emit_signal :: MethodBind\nbindObject_emit_signal\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"emit_signal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Emits the given @signal@. The signal must exist, so it should be a built-in signal of this class or one of its parent classes, or a user-defined signal. This method supports a variable number of arguments, so parameters are passed as a comma separated list. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\temit_signal(\"hit\", weapon_type, damage)\n--   \t\t\t\temit_signal(\"game_over\")\n--   \t\t\t\t\n--   @\nemit_signal ::\n              (Object :< cls, Object :< cls) =>\n              cls -> GodotString -> [Variant 'GodotTy] -> IO ()\nemit_signal cls arg1 varargs\n  = withVariantArray ([toVariant arg1] ++ varargs)\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_emit_signal (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"emit_signal\"\n           '[GodotString, [Variant 'GodotTy]]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Object.emit_signal\n\n{-# NOINLINE bindObject_free #-}\n\n-- | Deletes the object from memory. Any pre-existing reference to the freed object will become invalid, e.g. @is_instance_valid(object)@ will return @false@.\nbindObject_free :: MethodBind\nbindObject_free\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"free\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Deletes the object from memory. Any pre-existing reference to the freed object will become invalid, e.g. @is_instance_valid(object)@ will return @false@.\nfree :: (Object :< cls, Object :< cls) => cls -> IO ()\nfree cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_free (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"free\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Object.free\n\n{-# NOINLINE bindObject_get #-}\n\n-- | Returns the @Variant@ value of the given @property@. If the @property@ doesn't exist, this will return @null@.\n--   \t\t\t\t__Note:__ In C#, the property name must be specified as snake_case if it is defined by a built-in Godot node. This doesn't apply to user-defined properties where you should use the same convention as in the C# source (typically PascalCase).\nbindObject_get :: MethodBind\nbindObject_get\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"get\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Variant@ value of the given @property@. If the @property@ doesn't exist, this will return @null@.\n--   \t\t\t\t__Note:__ In C#, the property name must be specified as snake_case if it is defined by a built-in Godot node. This doesn't apply to user-defined properties where you should use the same convention as in the C# source (typically PascalCase).\nget ::\n      (Object :< cls, Object :< cls) =>\n      cls -> GodotString -> IO GodotVariant\nget cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_get (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"get\" '[GodotString] (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Object.get\n\n{-# NOINLINE bindObject_get_class #-}\n\n-- | Returns the object's class as a @String@.\nbindObject_get_class :: MethodBind\nbindObject_get_class\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"get_class\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the object's class as a @String@.\nget_class ::\n            (Object :< cls, Object :< cls) => cls -> IO GodotString\nget_class cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_get_class (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"get_class\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.Object.get_class\n\n{-# NOINLINE bindObject_get_incoming_connections #-}\n\n-- | Returns an @Array@ of dictionaries with information about signals that are connected to the object.\n--   \t\t\t\tEach @Dictionary@ contains three String entries:\n--   \t\t\t\t- @source@ is a reference to the signal emitter.\n--   \t\t\t\t- @signal_name@ is the name of the connected signal.\n--   \t\t\t\t- @method_name@ is the name of the method to which the signal is connected.\nbindObject_get_incoming_connections :: MethodBind\nbindObject_get_incoming_connections\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"get_incoming_connections\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an @Array@ of dictionaries with information about signals that are connected to the object.\n--   \t\t\t\tEach @Dictionary@ contains three String entries:\n--   \t\t\t\t- @source@ is a reference to the signal emitter.\n--   \t\t\t\t- @signal_name@ is the name of the connected signal.\n--   \t\t\t\t- @method_name@ is the name of the method to which the signal is connected.\nget_incoming_connections ::\n                           (Object :< cls, Object :< cls) => cls -> IO Array\nget_incoming_connections cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_get_incoming_connections\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"get_incoming_connections\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Object.get_incoming_connections\n\n{-# NOINLINE bindObject_get_indexed #-}\n\n-- | Gets the object's property indexed by the given @NodePath@. The node path should be relative to the current object and can use the colon character (@:@) to access nested properties. Examples: @\"position:x\"@ or @\"material:next_pass:blend_mode\"@.\nbindObject_get_indexed :: MethodBind\nbindObject_get_indexed\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"get_indexed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the object's property indexed by the given @NodePath@. The node path should be relative to the current object and can use the colon character (@:@) to access nested properties. Examples: @\"position:x\"@ or @\"material:next_pass:blend_mode\"@.\nget_indexed ::\n              (Object :< cls, Object :< cls) =>\n              cls -> NodePath -> IO GodotVariant\nget_indexed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_get_indexed (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"get_indexed\" '[NodePath]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Object.get_indexed\n\n{-# NOINLINE bindObject_get_instance_id #-}\n\n-- | Returns the object's unique instance ID.\n--   \t\t\t\tThis ID can be saved in @EncodedObjectAsID@, and can be used to retrieve the object instance with @method @GDScript.instance_from_id@.\nbindObject_get_instance_id :: MethodBind\nbindObject_get_instance_id\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"get_instance_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the object's unique instance ID.\n--   \t\t\t\tThis ID can be saved in @EncodedObjectAsID@, and can be used to retrieve the object instance with @method @GDScript.instance_from_id@.\nget_instance_id :: (Object :< cls, Object :< cls) => cls -> IO Int\nget_instance_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_get_instance_id (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"get_instance_id\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Object.get_instance_id\n\n{-# NOINLINE bindObject_get_meta #-}\n\n-- | Returns the object's metadata entry for the given @name@.\nbindObject_get_meta :: MethodBind\nbindObject_get_meta\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"get_meta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the object's metadata entry for the given @name@.\nget_meta ::\n           (Object :< cls, Object :< cls) =>\n           cls -> GodotString -> IO GodotVariant\nget_meta cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_get_meta (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"get_meta\" '[GodotString]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Object.get_meta\n\n{-# NOINLINE bindObject_get_meta_list #-}\n\n-- | Returns the object's metadata as a @PoolStringArray@.\nbindObject_get_meta_list :: MethodBind\nbindObject_get_meta_list\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"get_meta_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the object's metadata as a @PoolStringArray@.\nget_meta_list ::\n                (Object :< cls, Object :< cls) => cls -> IO PoolStringArray\nget_meta_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_get_meta_list (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"get_meta_list\" '[] (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.Object.get_meta_list\n\n{-# NOINLINE bindObject_get_method_list #-}\n\n-- | Returns the object's methods and their signatures as an @Array@.\nbindObject_get_method_list :: MethodBind\nbindObject_get_method_list\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"get_method_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the object's methods and their signatures as an @Array@.\nget_method_list ::\n                  (Object :< cls, Object :< cls) => cls -> IO Array\nget_method_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_get_method_list (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"get_method_list\" '[] (IO Array) where\n        nodeMethod = Godot.Core.Object.get_method_list\n\n{-# NOINLINE bindObject_get_property_list #-}\n\n-- | Returns the object's property list as an @Array@ of dictionaries.\n--   \t\t\t\tEach property's @Dictionary@ contain at least @name: String@ and @type: int@ (see @enum Variant.Type@) entries. Optionally, it can also include @hint: int@ (see @enum PropertyHint@), @hint_string: String@, and @usage: int@ (see @enum PropertyUsageFlags@).\nbindObject_get_property_list :: MethodBind\nbindObject_get_property_list\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"get_property_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the object's property list as an @Array@ of dictionaries.\n--   \t\t\t\tEach property's @Dictionary@ contain at least @name: String@ and @type: int@ (see @enum Variant.Type@) entries. Optionally, it can also include @hint: int@ (see @enum PropertyHint@), @hint_string: String@, and @usage: int@ (see @enum PropertyUsageFlags@).\nget_property_list ::\n                    (Object :< cls, Object :< cls) => cls -> IO Array\nget_property_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_get_property_list (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"get_property_list\" '[] (IO Array) where\n        nodeMethod = Godot.Core.Object.get_property_list\n\n{-# NOINLINE bindObject_get_script #-}\n\n-- | Returns the object's @Script@ instance, or @null@ if none is assigned.\nbindObject_get_script :: MethodBind\nbindObject_get_script\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"get_script\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the object's @Script@ instance, or @null@ if none is assigned.\nget_script :: (Object :< cls, Object :< cls) => cls -> IO Reference\nget_script cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_get_script (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"get_script\" '[] (IO Reference) where\n        nodeMethod = Godot.Core.Object.get_script\n\n{-# NOINLINE bindObject_get_signal_connection_list #-}\n\n-- | Returns an @Array@ of connections for the given @signal@.\nbindObject_get_signal_connection_list :: MethodBind\nbindObject_get_signal_connection_list\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"get_signal_connection_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an @Array@ of connections for the given @signal@.\nget_signal_connection_list ::\n                             (Object :< cls, Object :< cls) => cls -> GodotString -> IO Array\nget_signal_connection_list cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_get_signal_connection_list\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"get_signal_connection_list\"\n           '[GodotString]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Object.get_signal_connection_list\n\n{-# NOINLINE bindObject_get_signal_list #-}\n\n-- | Returns the list of signals as an @Array@ of dictionaries.\nbindObject_get_signal_list :: MethodBind\nbindObject_get_signal_list\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"get_signal_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the list of signals as an @Array@ of dictionaries.\nget_signal_list ::\n                  (Object :< cls, Object :< cls) => cls -> IO Array\nget_signal_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_get_signal_list (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"get_signal_list\" '[] (IO Array) where\n        nodeMethod = Godot.Core.Object.get_signal_list\n\n{-# NOINLINE bindObject_has_meta #-}\n\n-- | Returns @true@ if a metadata entry is found with the given @name@.\nbindObject_has_meta :: MethodBind\nbindObject_has_meta\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"has_meta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if a metadata entry is found with the given @name@.\nhas_meta ::\n           (Object :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_meta cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_has_meta (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"has_meta\" '[GodotString] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Object.has_meta\n\n{-# NOINLINE bindObject_has_method #-}\n\n-- | Returns @true@ if the object contains the given @method@.\nbindObject_has_method :: MethodBind\nbindObject_has_method\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"has_method\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the object contains the given @method@.\nhas_method ::\n             (Object :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_method cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_has_method (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"has_method\" '[GodotString] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Object.has_method\n\n{-# NOINLINE bindObject_has_user_signal #-}\n\n-- | Returns @true@ if the given user-defined @signal@ exists. Only signals added using @method add_user_signal@ are taken into account.\nbindObject_has_user_signal :: MethodBind\nbindObject_has_user_signal\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"has_user_signal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the given user-defined @signal@ exists. Only signals added using @method add_user_signal@ are taken into account.\nhas_user_signal ::\n                  (Object :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_user_signal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_has_user_signal (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"has_user_signal\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Object.has_user_signal\n\n{-# NOINLINE bindObject_is_blocking_signals #-}\n\n-- | Returns @true@ if signal emission blocking is enabled.\nbindObject_is_blocking_signals :: MethodBind\nbindObject_is_blocking_signals\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"is_blocking_signals\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if signal emission blocking is enabled.\nis_blocking_signals ::\n                      (Object :< cls, Object :< cls) => cls -> IO Bool\nis_blocking_signals cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_is_blocking_signals (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"is_blocking_signals\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Object.is_blocking_signals\n\n{-# NOINLINE bindObject_is_class #-}\n\n-- | Returns @true@ if the object inherits from the given @class@.\nbindObject_is_class :: MethodBind\nbindObject_is_class\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"is_class\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the object inherits from the given @class@.\nis_class ::\n           (Object :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nis_class cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_is_class (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"is_class\" '[GodotString] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Object.is_class\n\n{-# NOINLINE bindObject_is_connected #-}\n\n-- | Returns @true@ if a connection exists for a given @signal@, @target@, and @method@.\nbindObject_is_connected :: MethodBind\nbindObject_is_connected\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"is_connected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if a connection exists for a given @signal@, @target@, and @method@.\nis_connected ::\n               (Object :< cls, Object :< cls) =>\n               cls -> GodotString -> Object -> GodotString -> IO Bool\nis_connected cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_is_connected (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"is_connected\"\n           '[GodotString, Object, GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Object.is_connected\n\n{-# NOINLINE bindObject_is_queued_for_deletion #-}\n\n-- | Returns @true@ if the @method Node.queue_free@ method was called for the object.\nbindObject_is_queued_for_deletion :: MethodBind\nbindObject_is_queued_for_deletion\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"is_queued_for_deletion\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the @method Node.queue_free@ method was called for the object.\nis_queued_for_deletion ::\n                         (Object :< cls, Object :< cls) => cls -> IO Bool\nis_queued_for_deletion cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_is_queued_for_deletion\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"is_queued_for_deletion\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Object.is_queued_for_deletion\n\n{-# NOINLINE bindObject_notification #-}\n\n-- | Send a given notification to the object, which will also trigger a call to the @method _notification@ method of all classes that the object inherits from.\n--   \t\t\t\tIf @reversed@ is @true@, @method _notification@ is called first on the object's own class, and then up to its successive parent classes. If @reversed@ is @false@, @method _notification@ is called first on the highest ancestor (@Object@ itself), and then down to its successive inheriting classes.\nbindObject_notification :: MethodBind\nbindObject_notification\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"notification\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Send a given notification to the object, which will also trigger a call to the @method _notification@ method of all classes that the object inherits from.\n--   \t\t\t\tIf @reversed@ is @true@, @method _notification@ is called first on the object's own class, and then up to its successive parent classes. If @reversed@ is @false@, @method _notification@ is called first on the highest ancestor (@Object@ itself), and then down to its successive inheriting classes.\nnotification ::\n               (Object :< cls, Object :< cls) => cls -> Int -> Maybe Bool -> IO ()\nnotification cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_notification (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"notification\" '[Int, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Object.notification\n\n{-# NOINLINE bindObject_property_list_changed_notify #-}\n\n-- | Notify the editor that the property list has changed, so that editor plugins can take the new values into account. Does nothing on export builds.\nbindObject_property_list_changed_notify :: MethodBind\nbindObject_property_list_changed_notify\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"property_list_changed_notify\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Notify the editor that the property list has changed, so that editor plugins can take the new values into account. Does nothing on export builds.\nproperty_list_changed_notify ::\n                               (Object :< cls, Object :< cls) => cls -> IO ()\nproperty_list_changed_notify cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_property_list_changed_notify\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"property_list_changed_notify\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Object.property_list_changed_notify\n\n{-# NOINLINE bindObject_remove_meta #-}\n\n-- | Removes a given entry from the object's metadata. See also @method set_meta@.\nbindObject_remove_meta :: MethodBind\nbindObject_remove_meta\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"remove_meta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a given entry from the object's metadata. See also @method set_meta@.\nremove_meta ::\n              (Object :< cls, Object :< cls) => cls -> GodotString -> IO ()\nremove_meta cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_remove_meta (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"remove_meta\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.Object.remove_meta\n\n{-# NOINLINE bindObject_set #-}\n\n-- | Assigns a new value to the given property. If the @property@ does not exist, nothing will happen.\n--   \t\t\t\t__Note:__ In C#, the property name must be specified as snake_case if it is defined by a built-in Godot node. This doesn't apply to user-defined properties where you should use the same convention as in the C# source (typically PascalCase).\nbindObject_set :: MethodBind\nbindObject_set\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"set\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Assigns a new value to the given property. If the @property@ does not exist, nothing will happen.\n--   \t\t\t\t__Note:__ In C#, the property name must be specified as snake_case if it is defined by a built-in Godot node. This doesn't apply to user-defined properties where you should use the same convention as in the C# source (typically PascalCase).\nset ::\n      (Object :< cls, Object :< cls) =>\n      cls -> GodotString -> GodotVariant -> IO ()\nset cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_set (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"set\" '[GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Object.set\n\n{-# NOINLINE bindObject_set_block_signals #-}\n\n-- | If set to @true@, signal emission is blocked.\nbindObject_set_block_signals :: MethodBind\nbindObject_set_block_signals\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"set_block_signals\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If set to @true@, signal emission is blocked.\nset_block_signals ::\n                    (Object :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_block_signals cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_set_block_signals (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"set_block_signals\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Object.set_block_signals\n\n{-# NOINLINE bindObject_set_deferred #-}\n\n-- | Assigns a new value to the given property, after the current frame's physics step. This is equivalent to calling @method set@ via @method call_deferred@, i.e. @call_deferred(\"set\", property, value)@.\n--   \t\t\t\t__Note:__ In C#, the property name must be specified as snake_case if it is defined by a built-in Godot node. This doesn't apply to user-defined properties where you should use the same convention as in the C# source (typically PascalCase).\nbindObject_set_deferred :: MethodBind\nbindObject_set_deferred\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"set_deferred\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Assigns a new value to the given property, after the current frame's physics step. This is equivalent to calling @method set@ via @method call_deferred@, i.e. @call_deferred(\"set\", property, value)@.\n--   \t\t\t\t__Note:__ In C#, the property name must be specified as snake_case if it is defined by a built-in Godot node. This doesn't apply to user-defined properties where you should use the same convention as in the C# source (typically PascalCase).\nset_deferred ::\n               (Object :< cls, Object :< cls) =>\n               cls -> GodotString -> GodotVariant -> IO ()\nset_deferred cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_set_deferred (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"set_deferred\"\n           '[GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Object.set_deferred\n\n{-# NOINLINE bindObject_set_indexed #-}\n\n-- | Assigns a new value to the property identified by the @NodePath@. The node path should be relative to the current object and can use the colon character (@:@) to access nested properties. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tset_indexed(\"position\", Vector2(42, 0))\n--   \t\t\t\tset_indexed(\"position:y\", -10)\n--   \t\t\t\tprint(position) # (42, -10)\n--   \t\t\t\t\n--   @\nbindObject_set_indexed :: MethodBind\nbindObject_set_indexed\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"set_indexed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Assigns a new value to the property identified by the @NodePath@. The node path should be relative to the current object and can use the colon character (@:@) to access nested properties. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tset_indexed(\"position\", Vector2(42, 0))\n--   \t\t\t\tset_indexed(\"position:y\", -10)\n--   \t\t\t\tprint(position) # (42, -10)\n--   \t\t\t\t\n--   @\nset_indexed ::\n              (Object :< cls, Object :< cls) =>\n              cls -> NodePath -> GodotVariant -> IO ()\nset_indexed cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_set_indexed (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"set_indexed\" '[NodePath, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Object.set_indexed\n\n{-# NOINLINE bindObject_set_message_translation #-}\n\n-- | Defines whether the object can translate strings (with calls to @method tr@). Enabled by default.\nbindObject_set_message_translation :: MethodBind\nbindObject_set_message_translation\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"set_message_translation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines whether the object can translate strings (with calls to @method tr@). Enabled by default.\nset_message_translation ::\n                          (Object :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_message_translation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_set_message_translation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"set_message_translation\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Object.set_message_translation\n\n{-# NOINLINE bindObject_set_meta #-}\n\n-- | Adds, changes or removes a given entry in the object's metadata. Metadata are serialized and can take any @Variant@ value.\n--   \t\t\t\tTo remove a given entry from the object's metadata, use @method remove_meta@. Metadata is also removed if its value is set to @null@. This means you can also use @set_meta(\"name\", null)@ to remove metadata for @\"name\"@.\nbindObject_set_meta :: MethodBind\nbindObject_set_meta\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"set_meta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds, changes or removes a given entry in the object's metadata. Metadata are serialized and can take any @Variant@ value.\n--   \t\t\t\tTo remove a given entry from the object's metadata, use @method remove_meta@. Metadata is also removed if its value is set to @null@. This means you can also use @set_meta(\"name\", null)@ to remove metadata for @\"name\"@.\nset_meta ::\n           (Object :< cls, Object :< cls) =>\n           cls -> GodotString -> GodotVariant -> IO ()\nset_meta cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_set_meta (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"set_meta\" '[GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Object.set_meta\n\n{-# NOINLINE bindObject_set_script #-}\n\n-- | Assigns a script to the object. Each object can have a single script assigned to it, which are used to extend its functionality.\n--   \t\t\t\tIf the object already had a script, the previous script instance will be freed and its variables and state will be lost. The new script's @method _init@ method will be called.\nbindObject_set_script :: MethodBind\nbindObject_set_script\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"set_script\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Assigns a script to the object. Each object can have a single script assigned to it, which are used to extend its functionality.\n--   \t\t\t\tIf the object already had a script, the previous script instance will be freed and its variables and state will be lost. The new script's @method _init@ method will be called.\nset_script ::\n             (Object :< cls, Object :< cls) => cls -> Reference -> IO ()\nset_script cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_set_script (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"set_script\" '[Reference] (IO ()) where\n        nodeMethod = Godot.Core.Object.set_script\n\n{-# NOINLINE bindObject_to_string #-}\n\n-- | Returns a @String@ representing the object. If not overridden, defaults to @\"@ClassName:RID@\"@.\n--   \t\t\t\tOverride the method @method _to_string@ to customize the @String@ representation.\nbindObject_to_string :: MethodBind\nbindObject_to_string\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"to_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @String@ representing the object. If not overridden, defaults to @\"@ClassName:RID@\"@.\n--   \t\t\t\tOverride the method @method _to_string@ to customize the @String@ representation.\nto_string ::\n            (Object :< cls, Object :< cls) => cls -> IO GodotString\nto_string cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_to_string (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"to_string\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.Object.to_string\n\n{-# NOINLINE bindObject_tr #-}\n\n-- | Translates a message using translation catalogs configured in the Project Settings.\n--   \t\t\t\tOnly works if message translation is enabled (which it is by default), otherwise it returns the @message@ unchanged. See @method set_message_translation@.\nbindObject_tr :: MethodBind\nbindObject_tr\n  = unsafePerformIO $\n      withCString \"Object\" $\n        \\ clsNamePtr ->\n          withCString \"tr\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Translates a message using translation catalogs configured in the Project Settings.\n--   \t\t\t\tOnly works if message translation is enabled (which it is by default), otherwise it returns the @message@ unchanged. See @method set_message_translation@.\ntr ::\n     (Object :< cls, Object :< cls) =>\n     cls -> GodotString -> IO GodotString\ntr cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindObject_tr (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Object \"tr\" '[GodotString] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Object.tr"
  },
  {
    "path": "src/Godot/Core/OccluderPolygon2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.OccluderPolygon2D\n       (Godot.Core.OccluderPolygon2D._CULL_CLOCKWISE,\n        Godot.Core.OccluderPolygon2D._CULL_DISABLED,\n        Godot.Core.OccluderPolygon2D._CULL_COUNTER_CLOCKWISE,\n        Godot.Core.OccluderPolygon2D.get_cull_mode,\n        Godot.Core.OccluderPolygon2D.get_polygon,\n        Godot.Core.OccluderPolygon2D.is_closed,\n        Godot.Core.OccluderPolygon2D.set_closed,\n        Godot.Core.OccluderPolygon2D.set_cull_mode,\n        Godot.Core.OccluderPolygon2D.set_polygon)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_CULL_CLOCKWISE :: Int\n_CULL_CLOCKWISE = 1\n\n_CULL_DISABLED :: Int\n_CULL_DISABLED = 0\n\n_CULL_COUNTER_CLOCKWISE :: Int\n_CULL_COUNTER_CLOCKWISE = 2\n\ninstance NodeProperty OccluderPolygon2D \"closed\" Bool 'False where\n        nodeProperty = (is_closed, wrapDroppingSetter set_closed, Nothing)\n\ninstance NodeProperty OccluderPolygon2D \"cull_mode\" Int 'False\n         where\n        nodeProperty\n          = (get_cull_mode, wrapDroppingSetter set_cull_mode, Nothing)\n\ninstance NodeProperty OccluderPolygon2D \"polygon\" PoolVector2Array\n           'False\n         where\n        nodeProperty\n          = (get_polygon, wrapDroppingSetter set_polygon, Nothing)\n\n{-# NOINLINE bindOccluderPolygon2D_get_cull_mode #-}\n\n-- | The culling mode to use.\nbindOccluderPolygon2D_get_cull_mode :: MethodBind\nbindOccluderPolygon2D_get_cull_mode\n  = unsafePerformIO $\n      withCString \"OccluderPolygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_cull_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The culling mode to use.\nget_cull_mode ::\n                (OccluderPolygon2D :< cls, Object :< cls) => cls -> IO Int\nget_cull_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOccluderPolygon2D_get_cull_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OccluderPolygon2D \"get_cull_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.OccluderPolygon2D.get_cull_mode\n\n{-# NOINLINE bindOccluderPolygon2D_get_polygon #-}\n\n-- | A @Vector2@ array with the index for polygon's vertices positions.\n--   \t\t\t__Note:__ The returned value is a copy of the underlying array, rather than a reference.\nbindOccluderPolygon2D_get_polygon :: MethodBind\nbindOccluderPolygon2D_get_polygon\n  = unsafePerformIO $\n      withCString \"OccluderPolygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A @Vector2@ array with the index for polygon's vertices positions.\n--   \t\t\t__Note:__ The returned value is a copy of the underlying array, rather than a reference.\nget_polygon ::\n              (OccluderPolygon2D :< cls, Object :< cls) =>\n              cls -> IO PoolVector2Array\nget_polygon cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOccluderPolygon2D_get_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OccluderPolygon2D \"get_polygon\" '[]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.OccluderPolygon2D.get_polygon\n\n{-# NOINLINE bindOccluderPolygon2D_is_closed #-}\n\n-- | If @true@, closes the polygon. A closed OccluderPolygon2D occludes the light coming from any direction. An opened OccluderPolygon2D occludes the light only at its outline's direction.\nbindOccluderPolygon2D_is_closed :: MethodBind\nbindOccluderPolygon2D_is_closed\n  = unsafePerformIO $\n      withCString \"OccluderPolygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_closed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, closes the polygon. A closed OccluderPolygon2D occludes the light coming from any direction. An opened OccluderPolygon2D occludes the light only at its outline's direction.\nis_closed ::\n            (OccluderPolygon2D :< cls, Object :< cls) => cls -> IO Bool\nis_closed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOccluderPolygon2D_is_closed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OccluderPolygon2D \"is_closed\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.OccluderPolygon2D.is_closed\n\n{-# NOINLINE bindOccluderPolygon2D_set_closed #-}\n\n-- | If @true@, closes the polygon. A closed OccluderPolygon2D occludes the light coming from any direction. An opened OccluderPolygon2D occludes the light only at its outline's direction.\nbindOccluderPolygon2D_set_closed :: MethodBind\nbindOccluderPolygon2D_set_closed\n  = unsafePerformIO $\n      withCString \"OccluderPolygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_closed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, closes the polygon. A closed OccluderPolygon2D occludes the light coming from any direction. An opened OccluderPolygon2D occludes the light only at its outline's direction.\nset_closed ::\n             (OccluderPolygon2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_closed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOccluderPolygon2D_set_closed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OccluderPolygon2D \"set_closed\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.OccluderPolygon2D.set_closed\n\n{-# NOINLINE bindOccluderPolygon2D_set_cull_mode #-}\n\n-- | The culling mode to use.\nbindOccluderPolygon2D_set_cull_mode :: MethodBind\nbindOccluderPolygon2D_set_cull_mode\n  = unsafePerformIO $\n      withCString \"OccluderPolygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_cull_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The culling mode to use.\nset_cull_mode ::\n                (OccluderPolygon2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_cull_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOccluderPolygon2D_set_cull_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OccluderPolygon2D \"set_cull_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OccluderPolygon2D.set_cull_mode\n\n{-# NOINLINE bindOccluderPolygon2D_set_polygon #-}\n\n-- | A @Vector2@ array with the index for polygon's vertices positions.\n--   \t\t\t__Note:__ The returned value is a copy of the underlying array, rather than a reference.\nbindOccluderPolygon2D_set_polygon :: MethodBind\nbindOccluderPolygon2D_set_polygon\n  = unsafePerformIO $\n      withCString \"OccluderPolygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A @Vector2@ array with the index for polygon's vertices positions.\n--   \t\t\t__Note:__ The returned value is a copy of the underlying array, rather than a reference.\nset_polygon ::\n              (OccluderPolygon2D :< cls, Object :< cls) =>\n              cls -> PoolVector2Array -> IO ()\nset_polygon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOccluderPolygon2D_set_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OccluderPolygon2D \"set_polygon\"\n           '[PoolVector2Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OccluderPolygon2D.set_polygon"
  },
  {
    "path": "src/Godot/Core/OmniLight.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.OmniLight\n       (Godot.Core.OmniLight._SHADOW_DUAL_PARABOLOID,\n        Godot.Core.OmniLight._SHADOW_DETAIL_HORIZONTAL,\n        Godot.Core.OmniLight._SHADOW_DETAIL_VERTICAL,\n        Godot.Core.OmniLight._SHADOW_CUBE, Godot.Core.OmniLight.get_param,\n        Godot.Core.OmniLight.set_param,\n        Godot.Core.OmniLight.get_shadow_detail,\n        Godot.Core.OmniLight.get_shadow_mode,\n        Godot.Core.OmniLight.set_shadow_detail,\n        Godot.Core.OmniLight.set_shadow_mode)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Light()\n\n_SHADOW_DUAL_PARABOLOID :: Int\n_SHADOW_DUAL_PARABOLOID = 0\n\n_SHADOW_DETAIL_HORIZONTAL :: Int\n_SHADOW_DETAIL_HORIZONTAL = 1\n\n_SHADOW_DETAIL_VERTICAL :: Int\n_SHADOW_DETAIL_VERTICAL = 0\n\n_SHADOW_CUBE :: Int\n_SHADOW_CUBE = 1\n\n{-# NOINLINE bindOmniLight_get_param #-}\n\n-- | The light's attenuation (drop-off) curve. A number of presets are available in the __Inspector__ by right-clicking the curve.\nbindOmniLight_get_param :: MethodBind\nbindOmniLight_get_param\n  = unsafePerformIO $\n      withCString \"OmniLight\" $\n        \\ clsNamePtr ->\n          withCString \"get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The light's attenuation (drop-off) curve. A number of presets are available in the __Inspector__ by right-clicking the curve.\nget_param ::\n            (OmniLight :< cls, Object :< cls) => cls -> Int -> IO Float\nget_param cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOmniLight_get_param (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OmniLight \"get_param\" '[Int] (IO Float) where\n        nodeMethod = Godot.Core.OmniLight.get_param\n\n{-# NOINLINE bindOmniLight_set_param #-}\n\n-- | The light's attenuation (drop-off) curve. A number of presets are available in the __Inspector__ by right-clicking the curve.\nbindOmniLight_set_param :: MethodBind\nbindOmniLight_set_param\n  = unsafePerformIO $\n      withCString \"OmniLight\" $\n        \\ clsNamePtr ->\n          withCString \"set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The light's attenuation (drop-off) curve. A number of presets are available in the __Inspector__ by right-clicking the curve.\nset_param ::\n            (OmniLight :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\nset_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOmniLight_set_param (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OmniLight \"set_param\" '[Int, Float] (IO ())\n         where\n        nodeMethod = Godot.Core.OmniLight.set_param\n\ninstance NodeProperty OmniLight \"omni_attenuation\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_param, wrapIndexedSetter 4 set_param,\n             Nothing)\n\ninstance NodeProperty OmniLight \"omni_range\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_param, wrapIndexedSetter 3 set_param,\n             Nothing)\n\ninstance NodeProperty OmniLight \"omni_shadow_detail\" Int 'False\n         where\n        nodeProperty\n          = (get_shadow_detail, wrapDroppingSetter set_shadow_detail,\n             Nothing)\n\ninstance NodeProperty OmniLight \"omni_shadow_mode\" Int 'False where\n        nodeProperty\n          = (get_shadow_mode, wrapDroppingSetter set_shadow_mode, Nothing)\n\n{-# NOINLINE bindOmniLight_get_shadow_detail #-}\n\n-- | See @enum ShadowDetail@.\nbindOmniLight_get_shadow_detail :: MethodBind\nbindOmniLight_get_shadow_detail\n  = unsafePerformIO $\n      withCString \"OmniLight\" $\n        \\ clsNamePtr ->\n          withCString \"get_shadow_detail\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | See @enum ShadowDetail@.\nget_shadow_detail ::\n                    (OmniLight :< cls, Object :< cls) => cls -> IO Int\nget_shadow_detail cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOmniLight_get_shadow_detail (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OmniLight \"get_shadow_detail\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.OmniLight.get_shadow_detail\n\n{-# NOINLINE bindOmniLight_get_shadow_mode #-}\n\n-- | See @enum ShadowMode@.\nbindOmniLight_get_shadow_mode :: MethodBind\nbindOmniLight_get_shadow_mode\n  = unsafePerformIO $\n      withCString \"OmniLight\" $\n        \\ clsNamePtr ->\n          withCString \"get_shadow_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | See @enum ShadowMode@.\nget_shadow_mode ::\n                  (OmniLight :< cls, Object :< cls) => cls -> IO Int\nget_shadow_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOmniLight_get_shadow_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OmniLight \"get_shadow_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OmniLight.get_shadow_mode\n\n{-# NOINLINE bindOmniLight_set_shadow_detail #-}\n\n-- | See @enum ShadowDetail@.\nbindOmniLight_set_shadow_detail :: MethodBind\nbindOmniLight_set_shadow_detail\n  = unsafePerformIO $\n      withCString \"OmniLight\" $\n        \\ clsNamePtr ->\n          withCString \"set_shadow_detail\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | See @enum ShadowDetail@.\nset_shadow_detail ::\n                    (OmniLight :< cls, Object :< cls) => cls -> Int -> IO ()\nset_shadow_detail cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOmniLight_set_shadow_detail (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OmniLight \"set_shadow_detail\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.OmniLight.set_shadow_detail\n\n{-# NOINLINE bindOmniLight_set_shadow_mode #-}\n\n-- | See @enum ShadowMode@.\nbindOmniLight_set_shadow_mode :: MethodBind\nbindOmniLight_set_shadow_mode\n  = unsafePerformIO $\n      withCString \"OmniLight\" $\n        \\ clsNamePtr ->\n          withCString \"set_shadow_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | See @enum ShadowMode@.\nset_shadow_mode ::\n                  (OmniLight :< cls, Object :< cls) => cls -> Int -> IO ()\nset_shadow_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOmniLight_set_shadow_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OmniLight \"set_shadow_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.OmniLight.set_shadow_mode"
  },
  {
    "path": "src/Godot/Core/OpenSimplexNoise.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.OpenSimplexNoise\n       (Godot.Core.OpenSimplexNoise.get_image,\n        Godot.Core.OpenSimplexNoise.get_lacunarity,\n        Godot.Core.OpenSimplexNoise.get_noise_1d,\n        Godot.Core.OpenSimplexNoise.get_noise_2d,\n        Godot.Core.OpenSimplexNoise.get_noise_2dv,\n        Godot.Core.OpenSimplexNoise.get_noise_3d,\n        Godot.Core.OpenSimplexNoise.get_noise_3dv,\n        Godot.Core.OpenSimplexNoise.get_noise_4d,\n        Godot.Core.OpenSimplexNoise.get_octaves,\n        Godot.Core.OpenSimplexNoise.get_period,\n        Godot.Core.OpenSimplexNoise.get_persistence,\n        Godot.Core.OpenSimplexNoise.get_seamless_image,\n        Godot.Core.OpenSimplexNoise.get_seed,\n        Godot.Core.OpenSimplexNoise.set_lacunarity,\n        Godot.Core.OpenSimplexNoise.set_octaves,\n        Godot.Core.OpenSimplexNoise.set_period,\n        Godot.Core.OpenSimplexNoise.set_persistence,\n        Godot.Core.OpenSimplexNoise.set_seed)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty OpenSimplexNoise \"lacunarity\" Float 'False\n         where\n        nodeProperty\n          = (get_lacunarity, wrapDroppingSetter set_lacunarity, Nothing)\n\ninstance NodeProperty OpenSimplexNoise \"octaves\" Int 'False where\n        nodeProperty\n          = (get_octaves, wrapDroppingSetter set_octaves, Nothing)\n\ninstance NodeProperty OpenSimplexNoise \"period\" Float 'False where\n        nodeProperty = (get_period, wrapDroppingSetter set_period, Nothing)\n\ninstance NodeProperty OpenSimplexNoise \"persistence\" Float 'False\n         where\n        nodeProperty\n          = (get_persistence, wrapDroppingSetter set_persistence, Nothing)\n\ninstance NodeProperty OpenSimplexNoise \"seed\" Int 'False where\n        nodeProperty = (get_seed, wrapDroppingSetter set_seed, Nothing)\n\n{-# NOINLINE bindOpenSimplexNoise_get_image #-}\n\nbindOpenSimplexNoise_get_image :: MethodBind\nbindOpenSimplexNoise_get_image\n  = unsafePerformIO $\n      withCString \"OpenSimplexNoise\" $\n        \\ clsNamePtr ->\n          withCString \"get_image\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_image ::\n            (OpenSimplexNoise :< cls, Object :< cls) =>\n            cls -> Int -> Int -> IO Image\nget_image cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOpenSimplexNoise_get_image (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OpenSimplexNoise \"get_image\" '[Int, Int]\n           (IO Image)\n         where\n        nodeMethod = Godot.Core.OpenSimplexNoise.get_image\n\n{-# NOINLINE bindOpenSimplexNoise_get_lacunarity #-}\n\nbindOpenSimplexNoise_get_lacunarity :: MethodBind\nbindOpenSimplexNoise_get_lacunarity\n  = unsafePerformIO $\n      withCString \"OpenSimplexNoise\" $\n        \\ clsNamePtr ->\n          withCString \"get_lacunarity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_lacunarity ::\n                 (OpenSimplexNoise :< cls, Object :< cls) => cls -> IO Float\nget_lacunarity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOpenSimplexNoise_get_lacunarity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OpenSimplexNoise \"get_lacunarity\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.OpenSimplexNoise.get_lacunarity\n\n{-# NOINLINE bindOpenSimplexNoise_get_noise_1d #-}\n\nbindOpenSimplexNoise_get_noise_1d :: MethodBind\nbindOpenSimplexNoise_get_noise_1d\n  = unsafePerformIO $\n      withCString \"OpenSimplexNoise\" $\n        \\ clsNamePtr ->\n          withCString \"get_noise_1d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_noise_1d ::\n               (OpenSimplexNoise :< cls, Object :< cls) =>\n               cls -> Float -> IO Float\nget_noise_1d cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOpenSimplexNoise_get_noise_1d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OpenSimplexNoise \"get_noise_1d\" '[Float]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.OpenSimplexNoise.get_noise_1d\n\n{-# NOINLINE bindOpenSimplexNoise_get_noise_2d #-}\n\nbindOpenSimplexNoise_get_noise_2d :: MethodBind\nbindOpenSimplexNoise_get_noise_2d\n  = unsafePerformIO $\n      withCString \"OpenSimplexNoise\" $\n        \\ clsNamePtr ->\n          withCString \"get_noise_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_noise_2d ::\n               (OpenSimplexNoise :< cls, Object :< cls) =>\n               cls -> Float -> Float -> IO Float\nget_noise_2d cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOpenSimplexNoise_get_noise_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OpenSimplexNoise \"get_noise_2d\" '[Float, Float]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.OpenSimplexNoise.get_noise_2d\n\n{-# NOINLINE bindOpenSimplexNoise_get_noise_2dv #-}\n\nbindOpenSimplexNoise_get_noise_2dv :: MethodBind\nbindOpenSimplexNoise_get_noise_2dv\n  = unsafePerformIO $\n      withCString \"OpenSimplexNoise\" $\n        \\ clsNamePtr ->\n          withCString \"get_noise_2dv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_noise_2dv ::\n                (OpenSimplexNoise :< cls, Object :< cls) =>\n                cls -> Vector2 -> IO Float\nget_noise_2dv cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOpenSimplexNoise_get_noise_2dv\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OpenSimplexNoise \"get_noise_2dv\" '[Vector2]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.OpenSimplexNoise.get_noise_2dv\n\n{-# NOINLINE bindOpenSimplexNoise_get_noise_3d #-}\n\nbindOpenSimplexNoise_get_noise_3d :: MethodBind\nbindOpenSimplexNoise_get_noise_3d\n  = unsafePerformIO $\n      withCString \"OpenSimplexNoise\" $\n        \\ clsNamePtr ->\n          withCString \"get_noise_3d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_noise_3d ::\n               (OpenSimplexNoise :< cls, Object :< cls) =>\n               cls -> Float -> Float -> Float -> IO Float\nget_noise_3d cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOpenSimplexNoise_get_noise_3d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OpenSimplexNoise \"get_noise_3d\"\n           '[Float, Float, Float]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.OpenSimplexNoise.get_noise_3d\n\n{-# NOINLINE bindOpenSimplexNoise_get_noise_3dv #-}\n\nbindOpenSimplexNoise_get_noise_3dv :: MethodBind\nbindOpenSimplexNoise_get_noise_3dv\n  = unsafePerformIO $\n      withCString \"OpenSimplexNoise\" $\n        \\ clsNamePtr ->\n          withCString \"get_noise_3dv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_noise_3dv ::\n                (OpenSimplexNoise :< cls, Object :< cls) =>\n                cls -> Vector3 -> IO Float\nget_noise_3dv cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOpenSimplexNoise_get_noise_3dv\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OpenSimplexNoise \"get_noise_3dv\" '[Vector3]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.OpenSimplexNoise.get_noise_3dv\n\n{-# NOINLINE bindOpenSimplexNoise_get_noise_4d #-}\n\nbindOpenSimplexNoise_get_noise_4d :: MethodBind\nbindOpenSimplexNoise_get_noise_4d\n  = unsafePerformIO $\n      withCString \"OpenSimplexNoise\" $\n        \\ clsNamePtr ->\n          withCString \"get_noise_4d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_noise_4d ::\n               (OpenSimplexNoise :< cls, Object :< cls) =>\n               cls -> Float -> Float -> Float -> Float -> IO Float\nget_noise_4d cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOpenSimplexNoise_get_noise_4d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OpenSimplexNoise \"get_noise_4d\"\n           '[Float, Float, Float, Float]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.OpenSimplexNoise.get_noise_4d\n\n{-# NOINLINE bindOpenSimplexNoise_get_octaves #-}\n\nbindOpenSimplexNoise_get_octaves :: MethodBind\nbindOpenSimplexNoise_get_octaves\n  = unsafePerformIO $\n      withCString \"OpenSimplexNoise\" $\n        \\ clsNamePtr ->\n          withCString \"get_octaves\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_octaves ::\n              (OpenSimplexNoise :< cls, Object :< cls) => cls -> IO Int\nget_octaves cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOpenSimplexNoise_get_octaves\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OpenSimplexNoise \"get_octaves\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.OpenSimplexNoise.get_octaves\n\n{-# NOINLINE bindOpenSimplexNoise_get_period #-}\n\nbindOpenSimplexNoise_get_period :: MethodBind\nbindOpenSimplexNoise_get_period\n  = unsafePerformIO $\n      withCString \"OpenSimplexNoise\" $\n        \\ clsNamePtr ->\n          withCString \"get_period\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_period ::\n             (OpenSimplexNoise :< cls, Object :< cls) => cls -> IO Float\nget_period cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOpenSimplexNoise_get_period (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OpenSimplexNoise \"get_period\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.OpenSimplexNoise.get_period\n\n{-# NOINLINE bindOpenSimplexNoise_get_persistence #-}\n\nbindOpenSimplexNoise_get_persistence :: MethodBind\nbindOpenSimplexNoise_get_persistence\n  = unsafePerformIO $\n      withCString \"OpenSimplexNoise\" $\n        \\ clsNamePtr ->\n          withCString \"get_persistence\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_persistence ::\n                  (OpenSimplexNoise :< cls, Object :< cls) => cls -> IO Float\nget_persistence cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOpenSimplexNoise_get_persistence\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OpenSimplexNoise \"get_persistence\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.OpenSimplexNoise.get_persistence\n\n{-# NOINLINE bindOpenSimplexNoise_get_seamless_image #-}\n\nbindOpenSimplexNoise_get_seamless_image :: MethodBind\nbindOpenSimplexNoise_get_seamless_image\n  = unsafePerformIO $\n      withCString \"OpenSimplexNoise\" $\n        \\ clsNamePtr ->\n          withCString \"get_seamless_image\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_seamless_image ::\n                     (OpenSimplexNoise :< cls, Object :< cls) => cls -> Int -> IO Image\nget_seamless_image cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOpenSimplexNoise_get_seamless_image\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OpenSimplexNoise \"get_seamless_image\" '[Int]\n           (IO Image)\n         where\n        nodeMethod = Godot.Core.OpenSimplexNoise.get_seamless_image\n\n{-# NOINLINE bindOpenSimplexNoise_get_seed #-}\n\nbindOpenSimplexNoise_get_seed :: MethodBind\nbindOpenSimplexNoise_get_seed\n  = unsafePerformIO $\n      withCString \"OpenSimplexNoise\" $\n        \\ clsNamePtr ->\n          withCString \"get_seed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_seed ::\n           (OpenSimplexNoise :< cls, Object :< cls) => cls -> IO Int\nget_seed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOpenSimplexNoise_get_seed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OpenSimplexNoise \"get_seed\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OpenSimplexNoise.get_seed\n\n{-# NOINLINE bindOpenSimplexNoise_set_lacunarity #-}\n\nbindOpenSimplexNoise_set_lacunarity :: MethodBind\nbindOpenSimplexNoise_set_lacunarity\n  = unsafePerformIO $\n      withCString \"OpenSimplexNoise\" $\n        \\ clsNamePtr ->\n          withCString \"set_lacunarity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_lacunarity ::\n                 (OpenSimplexNoise :< cls, Object :< cls) => cls -> Float -> IO ()\nset_lacunarity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOpenSimplexNoise_set_lacunarity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OpenSimplexNoise \"set_lacunarity\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OpenSimplexNoise.set_lacunarity\n\n{-# NOINLINE bindOpenSimplexNoise_set_octaves #-}\n\nbindOpenSimplexNoise_set_octaves :: MethodBind\nbindOpenSimplexNoise_set_octaves\n  = unsafePerformIO $\n      withCString \"OpenSimplexNoise\" $\n        \\ clsNamePtr ->\n          withCString \"set_octaves\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_octaves ::\n              (OpenSimplexNoise :< cls, Object :< cls) => cls -> Int -> IO ()\nset_octaves cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOpenSimplexNoise_set_octaves\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OpenSimplexNoise \"set_octaves\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.OpenSimplexNoise.set_octaves\n\n{-# NOINLINE bindOpenSimplexNoise_set_period #-}\n\nbindOpenSimplexNoise_set_period :: MethodBind\nbindOpenSimplexNoise_set_period\n  = unsafePerformIO $\n      withCString \"OpenSimplexNoise\" $\n        \\ clsNamePtr ->\n          withCString \"set_period\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_period ::\n             (OpenSimplexNoise :< cls, Object :< cls) => cls -> Float -> IO ()\nset_period cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOpenSimplexNoise_set_period (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OpenSimplexNoise \"set_period\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.OpenSimplexNoise.set_period\n\n{-# NOINLINE bindOpenSimplexNoise_set_persistence #-}\n\nbindOpenSimplexNoise_set_persistence :: MethodBind\nbindOpenSimplexNoise_set_persistence\n  = unsafePerformIO $\n      withCString \"OpenSimplexNoise\" $\n        \\ clsNamePtr ->\n          withCString \"set_persistence\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_persistence ::\n                  (OpenSimplexNoise :< cls, Object :< cls) => cls -> Float -> IO ()\nset_persistence cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOpenSimplexNoise_set_persistence\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OpenSimplexNoise \"set_persistence\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OpenSimplexNoise.set_persistence\n\n{-# NOINLINE bindOpenSimplexNoise_set_seed #-}\n\nbindOpenSimplexNoise_set_seed :: MethodBind\nbindOpenSimplexNoise_set_seed\n  = unsafePerformIO $\n      withCString \"OpenSimplexNoise\" $\n        \\ clsNamePtr ->\n          withCString \"set_seed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_seed ::\n           (OpenSimplexNoise :< cls, Object :< cls) => cls -> Int -> IO ()\nset_seed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOpenSimplexNoise_set_seed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OpenSimplexNoise \"set_seed\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.OpenSimplexNoise.set_seed"
  },
  {
    "path": "src/Godot/Core/OptionButton.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.OptionButton\n       (Godot.Core.OptionButton.sig_item_focused,\n        Godot.Core.OptionButton.sig_item_selected,\n        Godot.Core.OptionButton._focused,\n        Godot.Core.OptionButton._get_items,\n        Godot.Core.OptionButton._select_int,\n        Godot.Core.OptionButton._selected,\n        Godot.Core.OptionButton._set_items,\n        Godot.Core.OptionButton.add_icon_item,\n        Godot.Core.OptionButton.add_item,\n        Godot.Core.OptionButton.add_separator,\n        Godot.Core.OptionButton.clear,\n        Godot.Core.OptionButton.get_item_count,\n        Godot.Core.OptionButton.get_item_icon,\n        Godot.Core.OptionButton.get_item_id,\n        Godot.Core.OptionButton.get_item_index,\n        Godot.Core.OptionButton.get_item_metadata,\n        Godot.Core.OptionButton.get_item_text,\n        Godot.Core.OptionButton.get_popup,\n        Godot.Core.OptionButton.get_selected,\n        Godot.Core.OptionButton.get_selected_id,\n        Godot.Core.OptionButton.get_selected_metadata,\n        Godot.Core.OptionButton.is_item_disabled,\n        Godot.Core.OptionButton.remove_item,\n        Godot.Core.OptionButton.select,\n        Godot.Core.OptionButton.set_item_disabled,\n        Godot.Core.OptionButton.set_item_icon,\n        Godot.Core.OptionButton.set_item_id,\n        Godot.Core.OptionButton.set_item_metadata,\n        Godot.Core.OptionButton.set_item_text)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Button()\n\n-- | Emitted when the user navigates to an item using the @ui_up@ or @ui_down@ actions. The index of the item selected is passed as argument.\nsig_item_focused :: Godot.Internal.Dispatch.Signal OptionButton\nsig_item_focused = Godot.Internal.Dispatch.Signal \"item_focused\"\n\ninstance NodeSignal OptionButton \"item_focused\" '[Int]\n\n-- | Emitted when the current item has been changed by the user. The index of the item selected is passed as argument.\nsig_item_selected :: Godot.Internal.Dispatch.Signal OptionButton\nsig_item_selected = Godot.Internal.Dispatch.Signal \"item_selected\"\n\ninstance NodeSignal OptionButton \"item_selected\" '[Int]\n\ninstance NodeProperty OptionButton \"items\" Array 'False where\n        nodeProperty = (_get_items, wrapDroppingSetter _set_items, Nothing)\n\ninstance NodeProperty OptionButton \"selected\" Int 'False where\n        nodeProperty\n          = (get_selected, wrapDroppingSetter _select_int, Nothing)\n\n{-# NOINLINE bindOptionButton__focused #-}\n\nbindOptionButton__focused :: MethodBind\nbindOptionButton__focused\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"_focused\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_focused ::\n           (OptionButton :< cls, Object :< cls) => cls -> Int -> IO ()\n_focused cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton__focused (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"_focused\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.OptionButton._focused\n\n{-# NOINLINE bindOptionButton__get_items #-}\n\nbindOptionButton__get_items :: MethodBind\nbindOptionButton__get_items\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"_get_items\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_items ::\n             (OptionButton :< cls, Object :< cls) => cls -> IO Array\n_get_items cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton__get_items (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"_get_items\" '[] (IO Array) where\n        nodeMethod = Godot.Core.OptionButton._get_items\n\n{-# NOINLINE bindOptionButton__select_int #-}\n\n-- | The index of the currently selected item, or @-1@ if no item is selected.\nbindOptionButton__select_int :: MethodBind\nbindOptionButton__select_int\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"_select_int\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The index of the currently selected item, or @-1@ if no item is selected.\n_select_int ::\n              (OptionButton :< cls, Object :< cls) => cls -> Int -> IO ()\n_select_int cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton__select_int (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"_select_int\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.OptionButton._select_int\n\n{-# NOINLINE bindOptionButton__selected #-}\n\nbindOptionButton__selected :: MethodBind\nbindOptionButton__selected\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_selected ::\n            (OptionButton :< cls, Object :< cls) => cls -> Int -> IO ()\n_selected cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton__selected (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"_selected\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.OptionButton._selected\n\n{-# NOINLINE bindOptionButton__set_items #-}\n\nbindOptionButton__set_items :: MethodBind\nbindOptionButton__set_items\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"_set_items\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_items ::\n             (OptionButton :< cls, Object :< cls) => cls -> Array -> IO ()\n_set_items cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton__set_items (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"_set_items\" '[Array] (IO ())\n         where\n        nodeMethod = Godot.Core.OptionButton._set_items\n\n{-# NOINLINE bindOptionButton_add_icon_item #-}\n\n-- | Adds an item, with a @texture@ icon, text @label@ and (optionally) @id@. If no @id@ is passed, the item index will be used as the item's ID. New items are appended at the end.\nbindOptionButton_add_icon_item :: MethodBind\nbindOptionButton_add_icon_item\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"add_icon_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an item, with a @texture@ icon, text @label@ and (optionally) @id@. If no @id@ is passed, the item index will be used as the item's ID. New items are appended at the end.\nadd_icon_item ::\n                (OptionButton :< cls, Object :< cls) =>\n                cls -> Texture -> GodotString -> Maybe Int -> IO ()\nadd_icon_item cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (-1)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_add_icon_item (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"add_icon_item\"\n           '[Texture, GodotString, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OptionButton.add_icon_item\n\n{-# NOINLINE bindOptionButton_add_item #-}\n\n-- | Adds an item, with text @label@ and (optionally) @id@. If no @id@ is passed, the item index will be used as the item's ID. New items are appended at the end.\nbindOptionButton_add_item :: MethodBind\nbindOptionButton_add_item\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"add_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an item, with text @label@ and (optionally) @id@. If no @id@ is passed, the item index will be used as the item's ID. New items are appended at the end.\nadd_item ::\n           (OptionButton :< cls, Object :< cls) =>\n           cls -> GodotString -> Maybe Int -> IO ()\nadd_item cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (-1)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_add_item (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"add_item\"\n           '[GodotString, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OptionButton.add_item\n\n{-# NOINLINE bindOptionButton_add_separator #-}\n\n-- | Adds a separator to the list of items. Separators help to group items. Separator also takes up an index and is appended at the end.\nbindOptionButton_add_separator :: MethodBind\nbindOptionButton_add_separator\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"add_separator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a separator to the list of items. Separators help to group items. Separator also takes up an index and is appended at the end.\nadd_separator ::\n                (OptionButton :< cls, Object :< cls) => cls -> IO ()\nadd_separator cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_add_separator (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"add_separator\" '[] (IO ()) where\n        nodeMethod = Godot.Core.OptionButton.add_separator\n\n{-# NOINLINE bindOptionButton_clear #-}\n\n-- | Clears all the items in the @OptionButton@.\nbindOptionButton_clear :: MethodBind\nbindOptionButton_clear\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears all the items in the @OptionButton@.\nclear :: (OptionButton :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_clear (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.OptionButton.clear\n\n{-# NOINLINE bindOptionButton_get_item_count #-}\n\n-- | Returns the amount of items in the OptionButton, including separators.\nbindOptionButton_get_item_count :: MethodBind\nbindOptionButton_get_item_count\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the amount of items in the OptionButton, including separators.\nget_item_count ::\n                 (OptionButton :< cls, Object :< cls) => cls -> IO Int\nget_item_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_get_item_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"get_item_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.OptionButton.get_item_count\n\n{-# NOINLINE bindOptionButton_get_item_icon #-}\n\n-- | Returns the icon of the item at index @idx@.\nbindOptionButton_get_item_icon :: MethodBind\nbindOptionButton_get_item_icon\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the icon of the item at index @idx@.\nget_item_icon ::\n                (OptionButton :< cls, Object :< cls) => cls -> Int -> IO Texture\nget_item_icon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_get_item_icon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"get_item_icon\" '[Int]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.OptionButton.get_item_icon\n\n{-# NOINLINE bindOptionButton_get_item_id #-}\n\n-- | Returns the ID of the item at index @idx@.\nbindOptionButton_get_item_id :: MethodBind\nbindOptionButton_get_item_id\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the ID of the item at index @idx@.\nget_item_id ::\n              (OptionButton :< cls, Object :< cls) => cls -> Int -> IO Int\nget_item_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_get_item_id (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"get_item_id\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.OptionButton.get_item_id\n\n{-# NOINLINE bindOptionButton_get_item_index #-}\n\n-- | Returns the index of the item with the given @id@.\nbindOptionButton_get_item_index :: MethodBind\nbindOptionButton_get_item_index\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the index of the item with the given @id@.\nget_item_index ::\n                 (OptionButton :< cls, Object :< cls) => cls -> Int -> IO Int\nget_item_index cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_get_item_index (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"get_item_index\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.OptionButton.get_item_index\n\n{-# NOINLINE bindOptionButton_get_item_metadata #-}\n\n-- | Retrieves the metadata of an item. Metadata may be any type and can be used to store extra information about an item, such as an external string ID.\nbindOptionButton_get_item_metadata :: MethodBind\nbindOptionButton_get_item_metadata\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_metadata\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Retrieves the metadata of an item. Metadata may be any type and can be used to store extra information about an item, such as an external string ID.\nget_item_metadata ::\n                    (OptionButton :< cls, Object :< cls) =>\n                    cls -> Int -> IO GodotVariant\nget_item_metadata cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_get_item_metadata\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"get_item_metadata\" '[Int]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.OptionButton.get_item_metadata\n\n{-# NOINLINE bindOptionButton_get_item_text #-}\n\n-- | Returns the text of the item at index @idx@.\nbindOptionButton_get_item_text :: MethodBind\nbindOptionButton_get_item_text\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the text of the item at index @idx@.\nget_item_text ::\n                (OptionButton :< cls, Object :< cls) =>\n                cls -> Int -> IO GodotString\nget_item_text cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_get_item_text (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"get_item_text\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.OptionButton.get_item_text\n\n{-# NOINLINE bindOptionButton_get_popup #-}\n\n-- | Returns the @PopupMenu@ contained in this button.\nbindOptionButton_get_popup :: MethodBind\nbindOptionButton_get_popup\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_popup\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @PopupMenu@ contained in this button.\nget_popup ::\n            (OptionButton :< cls, Object :< cls) => cls -> IO PopupMenu\nget_popup cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_get_popup (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"get_popup\" '[] (IO PopupMenu)\n         where\n        nodeMethod = Godot.Core.OptionButton.get_popup\n\n{-# NOINLINE bindOptionButton_get_selected #-}\n\n-- | The index of the currently selected item, or @-1@ if no item is selected.\nbindOptionButton_get_selected :: MethodBind\nbindOptionButton_get_selected\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The index of the currently selected item, or @-1@ if no item is selected.\nget_selected ::\n               (OptionButton :< cls, Object :< cls) => cls -> IO Int\nget_selected cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_get_selected (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"get_selected\" '[] (IO Int) where\n        nodeMethod = Godot.Core.OptionButton.get_selected\n\n{-# NOINLINE bindOptionButton_get_selected_id #-}\n\n-- | Returns the ID of the selected item, or @0@ if no item is selected.\nbindOptionButton_get_selected_id :: MethodBind\nbindOptionButton_get_selected_id\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_selected_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the ID of the selected item, or @0@ if no item is selected.\nget_selected_id ::\n                  (OptionButton :< cls, Object :< cls) => cls -> IO Int\nget_selected_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_get_selected_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"get_selected_id\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.OptionButton.get_selected_id\n\n{-# NOINLINE bindOptionButton_get_selected_metadata #-}\n\n-- | Gets the metadata of the selected item. Metadata for items can be set using @method set_item_metadata@.\nbindOptionButton_get_selected_metadata :: MethodBind\nbindOptionButton_get_selected_metadata\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_selected_metadata\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the metadata of the selected item. Metadata for items can be set using @method set_item_metadata@.\nget_selected_metadata ::\n                        (OptionButton :< cls, Object :< cls) => cls -> IO GodotVariant\nget_selected_metadata cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_get_selected_metadata\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"get_selected_metadata\" '[]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.OptionButton.get_selected_metadata\n\n{-# NOINLINE bindOptionButton_is_item_disabled #-}\n\n-- | Returns @true@ if the item at index @idx@ is disabled.\nbindOptionButton_is_item_disabled :: MethodBind\nbindOptionButton_is_item_disabled\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"is_item_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the item at index @idx@ is disabled.\nis_item_disabled ::\n                   (OptionButton :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_item_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_is_item_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"is_item_disabled\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.OptionButton.is_item_disabled\n\n{-# NOINLINE bindOptionButton_remove_item #-}\n\n-- | Removes the item at index @idx@.\nbindOptionButton_remove_item :: MethodBind\nbindOptionButton_remove_item\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"remove_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the item at index @idx@.\nremove_item ::\n              (OptionButton :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_item cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_remove_item (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"remove_item\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.OptionButton.remove_item\n\n{-# NOINLINE bindOptionButton_select #-}\n\n-- | Selects an item by index and makes it the current item. This will work even if the item is disabled.\nbindOptionButton_select :: MethodBind\nbindOptionButton_select\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"select\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Selects an item by index and makes it the current item. This will work even if the item is disabled.\nselect ::\n         (OptionButton :< cls, Object :< cls) => cls -> Int -> IO ()\nselect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_select (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"select\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.OptionButton.select\n\n{-# NOINLINE bindOptionButton_set_item_disabled #-}\n\n-- | Sets whether the item at index @idx@ is disabled.\n--   \t\t\t\tDisabled items are drawn differently in the dropdown and are not selectable by the user. If the current selected item is set as disabled, it will remain selected.\nbindOptionButton_set_item_disabled :: MethodBind\nbindOptionButton_set_item_disabled\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether the item at index @idx@ is disabled.\n--   \t\t\t\tDisabled items are drawn differently in the dropdown and are not selectable by the user. If the current selected item is set as disabled, it will remain selected.\nset_item_disabled ::\n                    (OptionButton :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_item_disabled cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_set_item_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"set_item_disabled\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OptionButton.set_item_disabled\n\n{-# NOINLINE bindOptionButton_set_item_icon #-}\n\n-- | Sets the icon of the item at index @idx@.\nbindOptionButton_set_item_icon :: MethodBind\nbindOptionButton_set_item_icon\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the icon of the item at index @idx@.\nset_item_icon ::\n                (OptionButton :< cls, Object :< cls) =>\n                cls -> Int -> Texture -> IO ()\nset_item_icon cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_set_item_icon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"set_item_icon\" '[Int, Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OptionButton.set_item_icon\n\n{-# NOINLINE bindOptionButton_set_item_id #-}\n\n-- | Sets the ID of the item at index @idx@.\nbindOptionButton_set_item_id :: MethodBind\nbindOptionButton_set_item_id\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the ID of the item at index @idx@.\nset_item_id ::\n              (OptionButton :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nset_item_id cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_set_item_id (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"set_item_id\" '[Int, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.OptionButton.set_item_id\n\n{-# NOINLINE bindOptionButton_set_item_metadata #-}\n\n-- | Sets the metadata of an item. Metadata may be of any type and can be used to store extra information about an item, such as an external string ID.\nbindOptionButton_set_item_metadata :: MethodBind\nbindOptionButton_set_item_metadata\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_metadata\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the metadata of an item. Metadata may be of any type and can be used to store extra information about an item, such as an external string ID.\nset_item_metadata ::\n                    (OptionButton :< cls, Object :< cls) =>\n                    cls -> Int -> GodotVariant -> IO ()\nset_item_metadata cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_set_item_metadata\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"set_item_metadata\"\n           '[Int, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OptionButton.set_item_metadata\n\n{-# NOINLINE bindOptionButton_set_item_text #-}\n\n-- | Sets the text of the item at index @idx@.\nbindOptionButton_set_item_text :: MethodBind\nbindOptionButton_set_item_text\n  = unsafePerformIO $\n      withCString \"OptionButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the text of the item at index @idx@.\nset_item_text ::\n                (OptionButton :< cls, Object :< cls) =>\n                cls -> Int -> GodotString -> IO ()\nset_item_text cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindOptionButton_set_item_text (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod OptionButton \"set_item_text\"\n           '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.OptionButton.set_item_text"
  },
  {
    "path": "src/Godot/Core/PCKPacker.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PCKPacker\n       (Godot.Core.PCKPacker.add_file, Godot.Core.PCKPacker.flush,\n        Godot.Core.PCKPacker.pck_start)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindPCKPacker_add_file #-}\n\n-- | Adds the @source_path@ file to the current PCK package at the @pck_path@ internal path (should start with @res://@).\nbindPCKPacker_add_file :: MethodBind\nbindPCKPacker_add_file\n  = unsafePerformIO $\n      withCString \"PCKPacker\" $\n        \\ clsNamePtr ->\n          withCString \"add_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds the @source_path@ file to the current PCK package at the @pck_path@ internal path (should start with @res://@).\nadd_file ::\n           (PCKPacker :< cls, Object :< cls) =>\n           cls -> GodotString -> GodotString -> IO Int\nadd_file cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPCKPacker_add_file (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PCKPacker \"add_file\"\n           '[GodotString, GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PCKPacker.add_file\n\n{-# NOINLINE bindPCKPacker_flush #-}\n\n-- | Writes the files specified using all @method add_file@ calls since the last flush. If @verbose@ is @true@, a list of files added will be printed to the console for easier debugging.\nbindPCKPacker_flush :: MethodBind\nbindPCKPacker_flush\n  = unsafePerformIO $\n      withCString \"PCKPacker\" $\n        \\ clsNamePtr ->\n          withCString \"flush\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Writes the files specified using all @method add_file@ calls since the last flush. If @verbose@ is @true@, a list of files added will be printed to the console for easier debugging.\nflush ::\n        (PCKPacker :< cls, Object :< cls) => cls -> Maybe Bool -> IO Int\nflush cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPCKPacker_flush (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PCKPacker \"flush\" '[Maybe Bool] (IO Int) where\n        nodeMethod = Godot.Core.PCKPacker.flush\n\n{-# NOINLINE bindPCKPacker_pck_start #-}\n\n-- | Creates a new PCK file with the name @pck_name@. The @.pck@ file extension isn't added automatically, so it should be part of @pck_name@ (even though it's not required).\nbindPCKPacker_pck_start :: MethodBind\nbindPCKPacker_pck_start\n  = unsafePerformIO $\n      withCString \"PCKPacker\" $\n        \\ clsNamePtr ->\n          withCString \"pck_start\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a new PCK file with the name @pck_name@. The @.pck@ file extension isn't added automatically, so it should be part of @pck_name@ (even though it's not required).\npck_start ::\n            (PCKPacker :< cls, Object :< cls) =>\n            cls -> GodotString -> Maybe Int -> IO Int\npck_start cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (0)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPCKPacker_pck_start (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PCKPacker \"pck_start\" '[GodotString, Maybe Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PCKPacker.pck_start"
  },
  {
    "path": "src/Godot/Core/PHashTranslation.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PHashTranslation\n       (Godot.Core.PHashTranslation.generate) where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Translation()\n\n{-# NOINLINE bindPHashTranslation_generate #-}\n\n-- | Generates and sets an optimized translation from the given @Translation@ resource.\nbindPHashTranslation_generate :: MethodBind\nbindPHashTranslation_generate\n  = unsafePerformIO $\n      withCString \"PHashTranslation\" $\n        \\ clsNamePtr ->\n          withCString \"generate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Generates and sets an optimized translation from the given @Translation@ resource.\ngenerate ::\n           (PHashTranslation :< cls, Object :< cls) =>\n           cls -> Translation -> IO ()\ngenerate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPHashTranslation_generate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PHashTranslation \"generate\" '[Translation]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PHashTranslation.generate"
  },
  {
    "path": "src/Godot/Core/PackedDataContainer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PackedDataContainer\n       (Godot.Core.PackedDataContainer._get_data,\n        Godot.Core.PackedDataContainer._iter_get,\n        Godot.Core.PackedDataContainer._iter_init,\n        Godot.Core.PackedDataContainer._iter_next,\n        Godot.Core.PackedDataContainer._set_data,\n        Godot.Core.PackedDataContainer.pack,\n        Godot.Core.PackedDataContainer.size)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty PackedDataContainer \"__data__\" PoolByteArray\n           'False\n         where\n        nodeProperty = (_get_data, wrapDroppingSetter _set_data, Nothing)\n\n{-# NOINLINE bindPackedDataContainer__get_data #-}\n\nbindPackedDataContainer__get_data :: MethodBind\nbindPackedDataContainer__get_data\n  = unsafePerformIO $\n      withCString \"PackedDataContainer\" $\n        \\ clsNamePtr ->\n          withCString \"_get_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_data ::\n            (PackedDataContainer :< cls, Object :< cls) =>\n            cls -> IO PoolByteArray\n_get_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPackedDataContainer__get_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PackedDataContainer \"_get_data\" '[]\n           (IO PoolByteArray)\n         where\n        nodeMethod = Godot.Core.PackedDataContainer._get_data\n\n{-# NOINLINE bindPackedDataContainer__iter_get #-}\n\nbindPackedDataContainer__iter_get :: MethodBind\nbindPackedDataContainer__iter_get\n  = unsafePerformIO $\n      withCString \"PackedDataContainer\" $\n        \\ clsNamePtr ->\n          withCString \"_iter_get\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_iter_get ::\n            (PackedDataContainer :< cls, Object :< cls) =>\n            cls -> GodotVariant -> IO GodotVariant\n_iter_get cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPackedDataContainer__iter_get\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PackedDataContainer \"_iter_get\" '[GodotVariant]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.PackedDataContainer._iter_get\n\n{-# NOINLINE bindPackedDataContainer__iter_init #-}\n\nbindPackedDataContainer__iter_init :: MethodBind\nbindPackedDataContainer__iter_init\n  = unsafePerformIO $\n      withCString \"PackedDataContainer\" $\n        \\ clsNamePtr ->\n          withCString \"_iter_init\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_iter_init ::\n             (PackedDataContainer :< cls, Object :< cls) =>\n             cls -> Array -> IO GodotVariant\n_iter_init cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPackedDataContainer__iter_init\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PackedDataContainer \"_iter_init\" '[Array]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.PackedDataContainer._iter_init\n\n{-# NOINLINE bindPackedDataContainer__iter_next #-}\n\nbindPackedDataContainer__iter_next :: MethodBind\nbindPackedDataContainer__iter_next\n  = unsafePerformIO $\n      withCString \"PackedDataContainer\" $\n        \\ clsNamePtr ->\n          withCString \"_iter_next\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_iter_next ::\n             (PackedDataContainer :< cls, Object :< cls) =>\n             cls -> Array -> IO GodotVariant\n_iter_next cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPackedDataContainer__iter_next\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PackedDataContainer \"_iter_next\" '[Array]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.PackedDataContainer._iter_next\n\n{-# NOINLINE bindPackedDataContainer__set_data #-}\n\nbindPackedDataContainer__set_data :: MethodBind\nbindPackedDataContainer__set_data\n  = unsafePerformIO $\n      withCString \"PackedDataContainer\" $\n        \\ clsNamePtr ->\n          withCString \"_set_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_data ::\n            (PackedDataContainer :< cls, Object :< cls) =>\n            cls -> PoolByteArray -> IO ()\n_set_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPackedDataContainer__set_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PackedDataContainer \"_set_data\"\n           '[PoolByteArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PackedDataContainer._set_data\n\n{-# NOINLINE bindPackedDataContainer_pack #-}\n\nbindPackedDataContainer_pack :: MethodBind\nbindPackedDataContainer_pack\n  = unsafePerformIO $\n      withCString \"PackedDataContainer\" $\n        \\ clsNamePtr ->\n          withCString \"pack\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\npack ::\n       (PackedDataContainer :< cls, Object :< cls) =>\n       cls -> GodotVariant -> IO Int\npack cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPackedDataContainer_pack (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PackedDataContainer \"pack\" '[GodotVariant]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PackedDataContainer.pack\n\n{-# NOINLINE bindPackedDataContainer_size #-}\n\nbindPackedDataContainer_size :: MethodBind\nbindPackedDataContainer_size\n  = unsafePerformIO $\n      withCString \"PackedDataContainer\" $\n        \\ clsNamePtr ->\n          withCString \"size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nsize ::\n       (PackedDataContainer :< cls, Object :< cls) => cls -> IO Int\nsize cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPackedDataContainer_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PackedDataContainer \"size\" '[] (IO Int) where\n        nodeMethod = Godot.Core.PackedDataContainer.size"
  },
  {
    "path": "src/Godot/Core/PackedDataContainerRef.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PackedDataContainerRef\n       (Godot.Core.PackedDataContainerRef._is_dictionary,\n        Godot.Core.PackedDataContainerRef._iter_get,\n        Godot.Core.PackedDataContainerRef._iter_init,\n        Godot.Core.PackedDataContainerRef._iter_next,\n        Godot.Core.PackedDataContainerRef.size)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindPackedDataContainerRef__is_dictionary #-}\n\nbindPackedDataContainerRef__is_dictionary :: MethodBind\nbindPackedDataContainerRef__is_dictionary\n  = unsafePerformIO $\n      withCString \"PackedDataContainerRef\" $\n        \\ clsNamePtr ->\n          withCString \"_is_dictionary\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_is_dictionary ::\n                 (PackedDataContainerRef :< cls, Object :< cls) => cls -> IO Bool\n_is_dictionary cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPackedDataContainerRef__is_dictionary\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PackedDataContainerRef \"_is_dictionary\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PackedDataContainerRef._is_dictionary\n\n{-# NOINLINE bindPackedDataContainerRef__iter_get #-}\n\nbindPackedDataContainerRef__iter_get :: MethodBind\nbindPackedDataContainerRef__iter_get\n  = unsafePerformIO $\n      withCString \"PackedDataContainerRef\" $\n        \\ clsNamePtr ->\n          withCString \"_iter_get\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_iter_get ::\n            (PackedDataContainerRef :< cls, Object :< cls) =>\n            cls -> GodotVariant -> IO GodotVariant\n_iter_get cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPackedDataContainerRef__iter_get\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PackedDataContainerRef \"_iter_get\"\n           '[GodotVariant]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.PackedDataContainerRef._iter_get\n\n{-# NOINLINE bindPackedDataContainerRef__iter_init #-}\n\nbindPackedDataContainerRef__iter_init :: MethodBind\nbindPackedDataContainerRef__iter_init\n  = unsafePerformIO $\n      withCString \"PackedDataContainerRef\" $\n        \\ clsNamePtr ->\n          withCString \"_iter_init\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_iter_init ::\n             (PackedDataContainerRef :< cls, Object :< cls) =>\n             cls -> Array -> IO GodotVariant\n_iter_init cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPackedDataContainerRef__iter_init\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PackedDataContainerRef \"_iter_init\" '[Array]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.PackedDataContainerRef._iter_init\n\n{-# NOINLINE bindPackedDataContainerRef__iter_next #-}\n\nbindPackedDataContainerRef__iter_next :: MethodBind\nbindPackedDataContainerRef__iter_next\n  = unsafePerformIO $\n      withCString \"PackedDataContainerRef\" $\n        \\ clsNamePtr ->\n          withCString \"_iter_next\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_iter_next ::\n             (PackedDataContainerRef :< cls, Object :< cls) =>\n             cls -> Array -> IO GodotVariant\n_iter_next cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPackedDataContainerRef__iter_next\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PackedDataContainerRef \"_iter_next\" '[Array]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.PackedDataContainerRef._iter_next\n\n{-# NOINLINE bindPackedDataContainerRef_size #-}\n\nbindPackedDataContainerRef_size :: MethodBind\nbindPackedDataContainerRef_size\n  = unsafePerformIO $\n      withCString \"PackedDataContainerRef\" $\n        \\ clsNamePtr ->\n          withCString \"size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nsize ::\n       (PackedDataContainerRef :< cls, Object :< cls) => cls -> IO Int\nsize cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPackedDataContainerRef_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PackedDataContainerRef \"size\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.PackedDataContainerRef.size"
  },
  {
    "path": "src/Godot/Core/PackedScene.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PackedScene\n       (Godot.Core.PackedScene._GEN_EDIT_STATE_DISABLED,\n        Godot.Core.PackedScene._GEN_EDIT_STATE_MAIN,\n        Godot.Core.PackedScene._GEN_EDIT_STATE_INSTANCE,\n        Godot.Core.PackedScene._get_bundled_scene,\n        Godot.Core.PackedScene._set_bundled_scene,\n        Godot.Core.PackedScene.can_instance,\n        Godot.Core.PackedScene.get_state, Godot.Core.PackedScene.instance',\n        Godot.Core.PackedScene.pack)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_GEN_EDIT_STATE_DISABLED :: Int\n_GEN_EDIT_STATE_DISABLED = 0\n\n_GEN_EDIT_STATE_MAIN :: Int\n_GEN_EDIT_STATE_MAIN = 2\n\n_GEN_EDIT_STATE_INSTANCE :: Int\n_GEN_EDIT_STATE_INSTANCE = 1\n\ninstance NodeProperty PackedScene \"_bundled\" Dictionary 'False\n         where\n        nodeProperty\n          = (_get_bundled_scene, wrapDroppingSetter _set_bundled_scene,\n             Nothing)\n\n{-# NOINLINE bindPackedScene__get_bundled_scene #-}\n\n-- | A dictionary representation of the scene contents.\n--   \t\t\tAvailable keys include \"rnames\" and \"variants\" for resources, \"node_count\", \"nodes\", \"node_paths\" for nodes, \"editable_instances\" for base scene children overrides, \"conn_count\" and \"conns\" for signal connections, and \"version\" for the format style of the PackedScene.\nbindPackedScene__get_bundled_scene :: MethodBind\nbindPackedScene__get_bundled_scene\n  = unsafePerformIO $\n      withCString \"PackedScene\" $\n        \\ clsNamePtr ->\n          withCString \"_get_bundled_scene\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A dictionary representation of the scene contents.\n--   \t\t\tAvailable keys include \"rnames\" and \"variants\" for resources, \"node_count\", \"nodes\", \"node_paths\" for nodes, \"editable_instances\" for base scene children overrides, \"conn_count\" and \"conns\" for signal connections, and \"version\" for the format style of the PackedScene.\n_get_bundled_scene ::\n                     (PackedScene :< cls, Object :< cls) => cls -> IO Dictionary\n_get_bundled_scene cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPackedScene__get_bundled_scene\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PackedScene \"_get_bundled_scene\" '[]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.PackedScene._get_bundled_scene\n\n{-# NOINLINE bindPackedScene__set_bundled_scene #-}\n\n-- | A dictionary representation of the scene contents.\n--   \t\t\tAvailable keys include \"rnames\" and \"variants\" for resources, \"node_count\", \"nodes\", \"node_paths\" for nodes, \"editable_instances\" for base scene children overrides, \"conn_count\" and \"conns\" for signal connections, and \"version\" for the format style of the PackedScene.\nbindPackedScene__set_bundled_scene :: MethodBind\nbindPackedScene__set_bundled_scene\n  = unsafePerformIO $\n      withCString \"PackedScene\" $\n        \\ clsNamePtr ->\n          withCString \"_set_bundled_scene\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A dictionary representation of the scene contents.\n--   \t\t\tAvailable keys include \"rnames\" and \"variants\" for resources, \"node_count\", \"nodes\", \"node_paths\" for nodes, \"editable_instances\" for base scene children overrides, \"conn_count\" and \"conns\" for signal connections, and \"version\" for the format style of the PackedScene.\n_set_bundled_scene ::\n                     (PackedScene :< cls, Object :< cls) => cls -> Dictionary -> IO ()\n_set_bundled_scene cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPackedScene__set_bundled_scene\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PackedScene \"_set_bundled_scene\" '[Dictionary]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PackedScene._set_bundled_scene\n\n{-# NOINLINE bindPackedScene_can_instance #-}\n\n-- | Returns @true@ if the scene file has nodes.\nbindPackedScene_can_instance :: MethodBind\nbindPackedScene_can_instance\n  = unsafePerformIO $\n      withCString \"PackedScene\" $\n        \\ clsNamePtr ->\n          withCString \"can_instance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the scene file has nodes.\ncan_instance ::\n               (PackedScene :< cls, Object :< cls) => cls -> IO Bool\ncan_instance cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPackedScene_can_instance (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PackedScene \"can_instance\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.PackedScene.can_instance\n\n{-# NOINLINE bindPackedScene_get_state #-}\n\n-- | Returns the @SceneState@ representing the scene file contents.\nbindPackedScene_get_state :: MethodBind\nbindPackedScene_get_state\n  = unsafePerformIO $\n      withCString \"PackedScene\" $\n        \\ clsNamePtr ->\n          withCString \"get_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @SceneState@ representing the scene file contents.\nget_state ::\n            (PackedScene :< cls, Object :< cls) => cls -> IO SceneState\nget_state cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPackedScene_get_state (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PackedScene \"get_state\" '[] (IO SceneState)\n         where\n        nodeMethod = Godot.Core.PackedScene.get_state\n\n{-# NOINLINE bindPackedScene_instance' #-}\n\n-- | Instantiates the scene's node hierarchy. Triggers child scene instantiation(s). Triggers a @Node.NOTIFICATION_INSTANCED@ notification on the root node.\nbindPackedScene_instance' :: MethodBind\nbindPackedScene_instance'\n  = unsafePerformIO $\n      withCString \"PackedScene\" $\n        \\ clsNamePtr ->\n          withCString \"instance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Instantiates the scene's node hierarchy. Triggers child scene instantiation(s). Triggers a @Node.NOTIFICATION_INSTANCED@ notification on the root node.\ninstance' ::\n            (PackedScene :< cls, Object :< cls) => cls -> Maybe Int -> IO Node\ninstance' cls arg1\n  = withVariantArray [maybe (VariantInt (0)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPackedScene_instance' (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PackedScene \"instance\" '[Maybe Int] (IO Node)\n         where\n        nodeMethod = Godot.Core.PackedScene.instance'\n\n{-# NOINLINE bindPackedScene_pack #-}\n\n-- | Pack will ignore any sub-nodes not owned by given node. See @Node.owner@.\nbindPackedScene_pack :: MethodBind\nbindPackedScene_pack\n  = unsafePerformIO $\n      withCString \"PackedScene\" $\n        \\ clsNamePtr ->\n          withCString \"pack\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Pack will ignore any sub-nodes not owned by given node. See @Node.owner@.\npack ::\n       (PackedScene :< cls, Object :< cls) => cls -> Node -> IO Int\npack cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPackedScene_pack (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PackedScene \"pack\" '[Node] (IO Int) where\n        nodeMethod = Godot.Core.PackedScene.pack"
  },
  {
    "path": "src/Godot/Core/PacketPeer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PacketPeer\n       (Godot.Core.PacketPeer.get_available_packet_count,\n        Godot.Core.PacketPeer.get_encode_buffer_max_size,\n        Godot.Core.PacketPeer.get_packet,\n        Godot.Core.PacketPeer.get_packet_error,\n        Godot.Core.PacketPeer.get_var,\n        Godot.Core.PacketPeer.is_object_decoding_allowed,\n        Godot.Core.PacketPeer.put_packet, Godot.Core.PacketPeer.put_var,\n        Godot.Core.PacketPeer.set_allow_object_decoding,\n        Godot.Core.PacketPeer.set_encode_buffer_max_size)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\ninstance NodeProperty PacketPeer \"allow_object_decoding\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_object_decoding_allowed,\n             wrapDroppingSetter set_allow_object_decoding, Nothing)\n\ninstance NodeProperty PacketPeer \"encode_buffer_max_size\" Int\n           'False\n         where\n        nodeProperty\n          = (get_encode_buffer_max_size,\n             wrapDroppingSetter set_encode_buffer_max_size, Nothing)\n\n{-# NOINLINE bindPacketPeer_get_available_packet_count #-}\n\n-- | Returns the number of packets currently available in the ring-buffer.\nbindPacketPeer_get_available_packet_count :: MethodBind\nbindPacketPeer_get_available_packet_count\n  = unsafePerformIO $\n      withCString \"PacketPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_available_packet_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of packets currently available in the ring-buffer.\nget_available_packet_count ::\n                             (PacketPeer :< cls, Object :< cls) => cls -> IO Int\nget_available_packet_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeer_get_available_packet_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeer \"get_available_packet_count\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PacketPeer.get_available_packet_count\n\n{-# NOINLINE bindPacketPeer_get_encode_buffer_max_size #-}\n\n-- | Maximum buffer size allowed when encoding @Variant@s. Raise this value to support heavier memory allocations.\n--   \t\t\tThe @method put_var@ method allocates memory on the stack, and the buffer used will grow automatically to the closest power of two to match the size of the @Variant@. If the @Variant@ is bigger than @encode_buffer_max_size@, the method will error out with @ERR_OUT_OF_MEMORY@.\nbindPacketPeer_get_encode_buffer_max_size :: MethodBind\nbindPacketPeer_get_encode_buffer_max_size\n  = unsafePerformIO $\n      withCString \"PacketPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_encode_buffer_max_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum buffer size allowed when encoding @Variant@s. Raise this value to support heavier memory allocations.\n--   \t\t\tThe @method put_var@ method allocates memory on the stack, and the buffer used will grow automatically to the closest power of two to match the size of the @Variant@. If the @Variant@ is bigger than @encode_buffer_max_size@, the method will error out with @ERR_OUT_OF_MEMORY@.\nget_encode_buffer_max_size ::\n                             (PacketPeer :< cls, Object :< cls) => cls -> IO Int\nget_encode_buffer_max_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeer_get_encode_buffer_max_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeer \"get_encode_buffer_max_size\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PacketPeer.get_encode_buffer_max_size\n\n{-# NOINLINE bindPacketPeer_get_packet #-}\n\n-- | Gets a raw packet.\nbindPacketPeer_get_packet :: MethodBind\nbindPacketPeer_get_packet\n  = unsafePerformIO $\n      withCString \"PacketPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_packet\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a raw packet.\nget_packet ::\n             (PacketPeer :< cls, Object :< cls) => cls -> IO PoolByteArray\nget_packet cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeer_get_packet (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeer \"get_packet\" '[] (IO PoolByteArray)\n         where\n        nodeMethod = Godot.Core.PacketPeer.get_packet\n\n{-# NOINLINE bindPacketPeer_get_packet_error #-}\n\n-- | Returns the error state of the last packet received (via @method get_packet@ and @method get_var@).\nbindPacketPeer_get_packet_error :: MethodBind\nbindPacketPeer_get_packet_error\n  = unsafePerformIO $\n      withCString \"PacketPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_packet_error\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the error state of the last packet received (via @method get_packet@ and @method get_var@).\nget_packet_error ::\n                   (PacketPeer :< cls, Object :< cls) => cls -> IO Int\nget_packet_error cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeer_get_packet_error (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeer \"get_packet_error\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.PacketPeer.get_packet_error\n\n{-# NOINLINE bindPacketPeer_get_var #-}\n\n-- | Gets a Variant. If @allow_objects@ (or @allow_object_decoding@) is @true@, decoding objects is allowed.\n--   \t\t\t\t__Warning:__ Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.\nbindPacketPeer_get_var :: MethodBind\nbindPacketPeer_get_var\n  = unsafePerformIO $\n      withCString \"PacketPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_var\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a Variant. If @allow_objects@ (or @allow_object_decoding@) is @true@, decoding objects is allowed.\n--   \t\t\t\t__Warning:__ Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.\nget_var ::\n          (PacketPeer :< cls, Object :< cls) =>\n          cls -> Maybe Bool -> IO GodotVariant\nget_var cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeer_get_var (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeer \"get_var\" '[Maybe Bool]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.PacketPeer.get_var\n\n{-# NOINLINE bindPacketPeer_is_object_decoding_allowed #-}\n\n-- | @i@Deprecated.@/i@ Use @get_var@ and @put_var@ parameters instead.\n--   \t\t\tIf @true@, the PacketPeer will allow encoding and decoding of object via @method get_var@ and @method put_var@.\n--   \t\t\t__Warning:__ Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.\nbindPacketPeer_is_object_decoding_allowed :: MethodBind\nbindPacketPeer_is_object_decoding_allowed\n  = unsafePerformIO $\n      withCString \"PacketPeer\" $\n        \\ clsNamePtr ->\n          withCString \"is_object_decoding_allowed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @i@Deprecated.@/i@ Use @get_var@ and @put_var@ parameters instead.\n--   \t\t\tIf @true@, the PacketPeer will allow encoding and decoding of object via @method get_var@ and @method put_var@.\n--   \t\t\t__Warning:__ Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.\nis_object_decoding_allowed ::\n                             (PacketPeer :< cls, Object :< cls) => cls -> IO Bool\nis_object_decoding_allowed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeer_is_object_decoding_allowed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeer \"is_object_decoding_allowed\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PacketPeer.is_object_decoding_allowed\n\n{-# NOINLINE bindPacketPeer_put_packet #-}\n\n-- | Sends a raw packet.\nbindPacketPeer_put_packet :: MethodBind\nbindPacketPeer_put_packet\n  = unsafePerformIO $\n      withCString \"PacketPeer\" $\n        \\ clsNamePtr ->\n          withCString \"put_packet\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sends a raw packet.\nput_packet ::\n             (PacketPeer :< cls, Object :< cls) =>\n             cls -> PoolByteArray -> IO Int\nput_packet cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeer_put_packet (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeer \"put_packet\" '[PoolByteArray]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PacketPeer.put_packet\n\n{-# NOINLINE bindPacketPeer_put_var #-}\n\n-- | Sends a @Variant@ as a packet. If @full_objects@ (or @allow_object_decoding@) is @true@, encoding objects is allowed (and can potentially include code).\nbindPacketPeer_put_var :: MethodBind\nbindPacketPeer_put_var\n  = unsafePerformIO $\n      withCString \"PacketPeer\" $\n        \\ clsNamePtr ->\n          withCString \"put_var\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sends a @Variant@ as a packet. If @full_objects@ (or @allow_object_decoding@) is @true@, encoding objects is allowed (and can potentially include code).\nput_var ::\n          (PacketPeer :< cls, Object :< cls) =>\n          cls -> GodotVariant -> Maybe Bool -> IO Int\nput_var cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeer_put_var (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeer \"put_var\"\n           '[GodotVariant, Maybe Bool]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PacketPeer.put_var\n\n{-# NOINLINE bindPacketPeer_set_allow_object_decoding #-}\n\n-- | @i@Deprecated.@/i@ Use @get_var@ and @put_var@ parameters instead.\n--   \t\t\tIf @true@, the PacketPeer will allow encoding and decoding of object via @method get_var@ and @method put_var@.\n--   \t\t\t__Warning:__ Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.\nbindPacketPeer_set_allow_object_decoding :: MethodBind\nbindPacketPeer_set_allow_object_decoding\n  = unsafePerformIO $\n      withCString \"PacketPeer\" $\n        \\ clsNamePtr ->\n          withCString \"set_allow_object_decoding\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @i@Deprecated.@/i@ Use @get_var@ and @put_var@ parameters instead.\n--   \t\t\tIf @true@, the PacketPeer will allow encoding and decoding of object via @method get_var@ and @method put_var@.\n--   \t\t\t__Warning:__ Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.\nset_allow_object_decoding ::\n                            (PacketPeer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_allow_object_decoding cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeer_set_allow_object_decoding\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeer \"set_allow_object_decoding\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PacketPeer.set_allow_object_decoding\n\n{-# NOINLINE bindPacketPeer_set_encode_buffer_max_size #-}\n\n-- | Maximum buffer size allowed when encoding @Variant@s. Raise this value to support heavier memory allocations.\n--   \t\t\tThe @method put_var@ method allocates memory on the stack, and the buffer used will grow automatically to the closest power of two to match the size of the @Variant@. If the @Variant@ is bigger than @encode_buffer_max_size@, the method will error out with @ERR_OUT_OF_MEMORY@.\nbindPacketPeer_set_encode_buffer_max_size :: MethodBind\nbindPacketPeer_set_encode_buffer_max_size\n  = unsafePerformIO $\n      withCString \"PacketPeer\" $\n        \\ clsNamePtr ->\n          withCString \"set_encode_buffer_max_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum buffer size allowed when encoding @Variant@s. Raise this value to support heavier memory allocations.\n--   \t\t\tThe @method put_var@ method allocates memory on the stack, and the buffer used will grow automatically to the closest power of two to match the size of the @Variant@. If the @Variant@ is bigger than @encode_buffer_max_size@, the method will error out with @ERR_OUT_OF_MEMORY@.\nset_encode_buffer_max_size ::\n                             (PacketPeer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_encode_buffer_max_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeer_set_encode_buffer_max_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeer \"set_encode_buffer_max_size\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PacketPeer.set_encode_buffer_max_size"
  },
  {
    "path": "src/Godot/Core/PacketPeerGDNative.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PacketPeerGDNative () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PacketPeer()"
  },
  {
    "path": "src/Godot/Core/PacketPeerStream.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PacketPeerStream\n       (Godot.Core.PacketPeerStream.get_input_buffer_max_size,\n        Godot.Core.PacketPeerStream.get_output_buffer_max_size,\n        Godot.Core.PacketPeerStream.get_stream_peer,\n        Godot.Core.PacketPeerStream.set_input_buffer_max_size,\n        Godot.Core.PacketPeerStream.set_output_buffer_max_size,\n        Godot.Core.PacketPeerStream.set_stream_peer)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PacketPeer()\n\ninstance NodeProperty PacketPeerStream \"input_buffer_max_size\" Int\n           'False\n         where\n        nodeProperty\n          = (get_input_buffer_max_size,\n             wrapDroppingSetter set_input_buffer_max_size, Nothing)\n\ninstance NodeProperty PacketPeerStream \"output_buffer_max_size\" Int\n           'False\n         where\n        nodeProperty\n          = (get_output_buffer_max_size,\n             wrapDroppingSetter set_output_buffer_max_size, Nothing)\n\ninstance NodeProperty PacketPeerStream \"stream_peer\" StreamPeer\n           'False\n         where\n        nodeProperty\n          = (get_stream_peer, wrapDroppingSetter set_stream_peer, Nothing)\n\n{-# NOINLINE bindPacketPeerStream_get_input_buffer_max_size #-}\n\nbindPacketPeerStream_get_input_buffer_max_size :: MethodBind\nbindPacketPeerStream_get_input_buffer_max_size\n  = unsafePerformIO $\n      withCString \"PacketPeerStream\" $\n        \\ clsNamePtr ->\n          withCString \"get_input_buffer_max_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_input_buffer_max_size ::\n                            (PacketPeerStream :< cls, Object :< cls) => cls -> IO Int\nget_input_buffer_max_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPacketPeerStream_get_input_buffer_max_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeerStream \"get_input_buffer_max_size\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PacketPeerStream.get_input_buffer_max_size\n\n{-# NOINLINE bindPacketPeerStream_get_output_buffer_max_size #-}\n\nbindPacketPeerStream_get_output_buffer_max_size :: MethodBind\nbindPacketPeerStream_get_output_buffer_max_size\n  = unsafePerformIO $\n      withCString \"PacketPeerStream\" $\n        \\ clsNamePtr ->\n          withCString \"get_output_buffer_max_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_output_buffer_max_size ::\n                             (PacketPeerStream :< cls, Object :< cls) => cls -> IO Int\nget_output_buffer_max_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPacketPeerStream_get_output_buffer_max_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeerStream \"get_output_buffer_max_size\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PacketPeerStream.get_output_buffer_max_size\n\n{-# NOINLINE bindPacketPeerStream_get_stream_peer #-}\n\n-- | The wrapped @StreamPeer@ object.\nbindPacketPeerStream_get_stream_peer :: MethodBind\nbindPacketPeerStream_get_stream_peer\n  = unsafePerformIO $\n      withCString \"PacketPeerStream\" $\n        \\ clsNamePtr ->\n          withCString \"get_stream_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The wrapped @StreamPeer@ object.\nget_stream_peer ::\n                  (PacketPeerStream :< cls, Object :< cls) => cls -> IO StreamPeer\nget_stream_peer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeerStream_get_stream_peer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeerStream \"get_stream_peer\" '[]\n           (IO StreamPeer)\n         where\n        nodeMethod = Godot.Core.PacketPeerStream.get_stream_peer\n\n{-# NOINLINE bindPacketPeerStream_set_input_buffer_max_size #-}\n\nbindPacketPeerStream_set_input_buffer_max_size :: MethodBind\nbindPacketPeerStream_set_input_buffer_max_size\n  = unsafePerformIO $\n      withCString \"PacketPeerStream\" $\n        \\ clsNamePtr ->\n          withCString \"set_input_buffer_max_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_input_buffer_max_size ::\n                            (PacketPeerStream :< cls, Object :< cls) => cls -> Int -> IO ()\nset_input_buffer_max_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPacketPeerStream_set_input_buffer_max_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeerStream \"set_input_buffer_max_size\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PacketPeerStream.set_input_buffer_max_size\n\n{-# NOINLINE bindPacketPeerStream_set_output_buffer_max_size #-}\n\nbindPacketPeerStream_set_output_buffer_max_size :: MethodBind\nbindPacketPeerStream_set_output_buffer_max_size\n  = unsafePerformIO $\n      withCString \"PacketPeerStream\" $\n        \\ clsNamePtr ->\n          withCString \"set_output_buffer_max_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_output_buffer_max_size ::\n                             (PacketPeerStream :< cls, Object :< cls) => cls -> Int -> IO ()\nset_output_buffer_max_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPacketPeerStream_set_output_buffer_max_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeerStream \"set_output_buffer_max_size\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PacketPeerStream.set_output_buffer_max_size\n\n{-# NOINLINE bindPacketPeerStream_set_stream_peer #-}\n\n-- | The wrapped @StreamPeer@ object.\nbindPacketPeerStream_set_stream_peer :: MethodBind\nbindPacketPeerStream_set_stream_peer\n  = unsafePerformIO $\n      withCString \"PacketPeerStream\" $\n        \\ clsNamePtr ->\n          withCString \"set_stream_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The wrapped @StreamPeer@ object.\nset_stream_peer ::\n                  (PacketPeerStream :< cls, Object :< cls) =>\n                  cls -> StreamPeer -> IO ()\nset_stream_peer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeerStream_set_stream_peer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeerStream \"set_stream_peer\"\n           '[StreamPeer]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PacketPeerStream.set_stream_peer"
  },
  {
    "path": "src/Godot/Core/PacketPeerUDP.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PacketPeerUDP\n       (Godot.Core.PacketPeerUDP.close,\n        Godot.Core.PacketPeerUDP.get_packet_ip,\n        Godot.Core.PacketPeerUDP.get_packet_port,\n        Godot.Core.PacketPeerUDP.is_listening,\n        Godot.Core.PacketPeerUDP.join_multicast_group,\n        Godot.Core.PacketPeerUDP.leave_multicast_group,\n        Godot.Core.PacketPeerUDP.listen,\n        Godot.Core.PacketPeerUDP.set_broadcast_enabled,\n        Godot.Core.PacketPeerUDP.set_dest_address,\n        Godot.Core.PacketPeerUDP.wait)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PacketPeer()\n\n{-# NOINLINE bindPacketPeerUDP_close #-}\n\n-- | Closes the UDP socket the @PacketPeerUDP@ is currently listening on.\nbindPacketPeerUDP_close :: MethodBind\nbindPacketPeerUDP_close\n  = unsafePerformIO $\n      withCString \"PacketPeerUDP\" $\n        \\ clsNamePtr ->\n          withCString \"close\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Closes the UDP socket the @PacketPeerUDP@ is currently listening on.\nclose :: (PacketPeerUDP :< cls, Object :< cls) => cls -> IO ()\nclose cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeerUDP_close (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeerUDP \"close\" '[] (IO ()) where\n        nodeMethod = Godot.Core.PacketPeerUDP.close\n\n{-# NOINLINE bindPacketPeerUDP_get_packet_ip #-}\n\n-- | Returns the IP of the remote peer that sent the last packet(that was received with @method PacketPeer.get_packet@ or @method PacketPeer.get_var@).\nbindPacketPeerUDP_get_packet_ip :: MethodBind\nbindPacketPeerUDP_get_packet_ip\n  = unsafePerformIO $\n      withCString \"PacketPeerUDP\" $\n        \\ clsNamePtr ->\n          withCString \"get_packet_ip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the IP of the remote peer that sent the last packet(that was received with @method PacketPeer.get_packet@ or @method PacketPeer.get_var@).\nget_packet_ip ::\n                (PacketPeerUDP :< cls, Object :< cls) => cls -> IO GodotString\nget_packet_ip cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeerUDP_get_packet_ip (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeerUDP \"get_packet_ip\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.PacketPeerUDP.get_packet_ip\n\n{-# NOINLINE bindPacketPeerUDP_get_packet_port #-}\n\n-- | Returns the port of the remote peer that sent the last packet(that was received with @method PacketPeer.get_packet@ or @method PacketPeer.get_var@).\nbindPacketPeerUDP_get_packet_port :: MethodBind\nbindPacketPeerUDP_get_packet_port\n  = unsafePerformIO $\n      withCString \"PacketPeerUDP\" $\n        \\ clsNamePtr ->\n          withCString \"get_packet_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the port of the remote peer that sent the last packet(that was received with @method PacketPeer.get_packet@ or @method PacketPeer.get_var@).\nget_packet_port ::\n                  (PacketPeerUDP :< cls, Object :< cls) => cls -> IO Int\nget_packet_port cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeerUDP_get_packet_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeerUDP \"get_packet_port\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.PacketPeerUDP.get_packet_port\n\n{-# NOINLINE bindPacketPeerUDP_is_listening #-}\n\n-- | Returns whether this @PacketPeerUDP@ is listening.\nbindPacketPeerUDP_is_listening :: MethodBind\nbindPacketPeerUDP_is_listening\n  = unsafePerformIO $\n      withCString \"PacketPeerUDP\" $\n        \\ clsNamePtr ->\n          withCString \"is_listening\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether this @PacketPeerUDP@ is listening.\nis_listening ::\n               (PacketPeerUDP :< cls, Object :< cls) => cls -> IO Bool\nis_listening cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeerUDP_is_listening (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeerUDP \"is_listening\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.PacketPeerUDP.is_listening\n\n{-# NOINLINE bindPacketPeerUDP_join_multicast_group #-}\n\n-- | Joins the multicast group specified by @multicast_address@ using the interface identified by @interface_name@.\n--   \t\t\t\tYou can join the same multicast group with multiple interfaces. Use @method IP.get_local_interfaces@ to know which are available.\n--   \t\t\t\tNote: Some Android devices might require the @CHANGE_WIFI_MULTICAST_STATE@ permission for multicast to work.\nbindPacketPeerUDP_join_multicast_group :: MethodBind\nbindPacketPeerUDP_join_multicast_group\n  = unsafePerformIO $\n      withCString \"PacketPeerUDP\" $\n        \\ clsNamePtr ->\n          withCString \"join_multicast_group\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Joins the multicast group specified by @multicast_address@ using the interface identified by @interface_name@.\n--   \t\t\t\tYou can join the same multicast group with multiple interfaces. Use @method IP.get_local_interfaces@ to know which are available.\n--   \t\t\t\tNote: Some Android devices might require the @CHANGE_WIFI_MULTICAST_STATE@ permission for multicast to work.\njoin_multicast_group ::\n                       (PacketPeerUDP :< cls, Object :< cls) =>\n                       cls -> GodotString -> GodotString -> IO Int\njoin_multicast_group cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeerUDP_join_multicast_group\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeerUDP \"join_multicast_group\"\n           '[GodotString, GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PacketPeerUDP.join_multicast_group\n\n{-# NOINLINE bindPacketPeerUDP_leave_multicast_group #-}\n\n-- | Removes the interface identified by @interface_name@ from the multicast group specified by @multicast_address@.\nbindPacketPeerUDP_leave_multicast_group :: MethodBind\nbindPacketPeerUDP_leave_multicast_group\n  = unsafePerformIO $\n      withCString \"PacketPeerUDP\" $\n        \\ clsNamePtr ->\n          withCString \"leave_multicast_group\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the interface identified by @interface_name@ from the multicast group specified by @multicast_address@.\nleave_multicast_group ::\n                        (PacketPeerUDP :< cls, Object :< cls) =>\n                        cls -> GodotString -> GodotString -> IO Int\nleave_multicast_group cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeerUDP_leave_multicast_group\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeerUDP \"leave_multicast_group\"\n           '[GodotString, GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PacketPeerUDP.leave_multicast_group\n\n{-# NOINLINE bindPacketPeerUDP_listen #-}\n\n-- | Makes this @PacketPeerUDP@ listen on the @port@ binding to @bind_address@ with a buffer size @recv_buf_size@.\n--   \t\t\t\tIf @bind_address@ is set to @\"*\"@ (default), the peer will listen on all available addresses (both IPv4 and IPv6).\n--   \t\t\t\tIf @bind_address@ is set to @\"0.0.0.0\"@ (for IPv4) or @\"::\"@ (for IPv6), the peer will listen on all available addresses matching that IP type.\n--   \t\t\t\tIf @bind_address@ is set to any valid address (e.g. @\"192.168.1.101\"@, @\"::1\"@, etc), the peer will only listen on the interface with that addresses (or fail if no interface with the given address exists).\nbindPacketPeerUDP_listen :: MethodBind\nbindPacketPeerUDP_listen\n  = unsafePerformIO $\n      withCString \"PacketPeerUDP\" $\n        \\ clsNamePtr ->\n          withCString \"listen\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Makes this @PacketPeerUDP@ listen on the @port@ binding to @bind_address@ with a buffer size @recv_buf_size@.\n--   \t\t\t\tIf @bind_address@ is set to @\"*\"@ (default), the peer will listen on all available addresses (both IPv4 and IPv6).\n--   \t\t\t\tIf @bind_address@ is set to @\"0.0.0.0\"@ (for IPv4) or @\"::\"@ (for IPv6), the peer will listen on all available addresses matching that IP type.\n--   \t\t\t\tIf @bind_address@ is set to any valid address (e.g. @\"192.168.1.101\"@, @\"::1\"@, etc), the peer will only listen on the interface with that addresses (or fail if no interface with the given address exists).\nlisten ::\n         (PacketPeerUDP :< cls, Object :< cls) =>\n         cls -> Int -> Maybe GodotString -> Maybe Int -> IO Int\nlisten cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"*\" arg2,\n       maybe (VariantInt (65536)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeerUDP_listen (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeerUDP \"listen\"\n           '[Int, Maybe GodotString, Maybe Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PacketPeerUDP.listen\n\n{-# NOINLINE bindPacketPeerUDP_set_broadcast_enabled #-}\n\n-- | Enable or disable sending of broadcast packets (e.g. @set_dest_address(\"255.255.255.255\", 4343)@. This option is disabled by default.\n--   \t\t\t\tNote: Some Android devices might require the @CHANGE_WIFI_MULTICAST_STATE@ permission and this option to be enabled to receive broadcast packets too.\nbindPacketPeerUDP_set_broadcast_enabled :: MethodBind\nbindPacketPeerUDP_set_broadcast_enabled\n  = unsafePerformIO $\n      withCString \"PacketPeerUDP\" $\n        \\ clsNamePtr ->\n          withCString \"set_broadcast_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enable or disable sending of broadcast packets (e.g. @set_dest_address(\"255.255.255.255\", 4343)@. This option is disabled by default.\n--   \t\t\t\tNote: Some Android devices might require the @CHANGE_WIFI_MULTICAST_STATE@ permission and this option to be enabled to receive broadcast packets too.\nset_broadcast_enabled ::\n                        (PacketPeerUDP :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_broadcast_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeerUDP_set_broadcast_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeerUDP \"set_broadcast_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PacketPeerUDP.set_broadcast_enabled\n\n{-# NOINLINE bindPacketPeerUDP_set_dest_address #-}\n\n-- | Sets the destination address and port for sending packets and variables. A hostname will be resolved using DNS if needed.\n--   \t\t\t\tNote: @method set_broadcast_enabled@ must be enabled before sending packets to a broadcast address (e.g. @255.255.255.255@).\nbindPacketPeerUDP_set_dest_address :: MethodBind\nbindPacketPeerUDP_set_dest_address\n  = unsafePerformIO $\n      withCString \"PacketPeerUDP\" $\n        \\ clsNamePtr ->\n          withCString \"set_dest_address\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the destination address and port for sending packets and variables. A hostname will be resolved using DNS if needed.\n--   \t\t\t\tNote: @method set_broadcast_enabled@ must be enabled before sending packets to a broadcast address (e.g. @255.255.255.255@).\nset_dest_address ::\n                   (PacketPeerUDP :< cls, Object :< cls) =>\n                   cls -> GodotString -> Int -> IO Int\nset_dest_address cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeerUDP_set_dest_address\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeerUDP \"set_dest_address\"\n           '[GodotString, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PacketPeerUDP.set_dest_address\n\n{-# NOINLINE bindPacketPeerUDP_wait #-}\n\n-- | Waits for a packet to arrive on the listening port. See @method listen@.\nbindPacketPeerUDP_wait :: MethodBind\nbindPacketPeerUDP_wait\n  = unsafePerformIO $\n      withCString \"PacketPeerUDP\" $\n        \\ clsNamePtr ->\n          withCString \"wait\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Waits for a packet to arrive on the listening port. See @method listen@.\nwait :: (PacketPeerUDP :< cls, Object :< cls) => cls -> IO Int\nwait cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPacketPeerUDP_wait (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PacketPeerUDP \"wait\" '[] (IO Int) where\n        nodeMethod = Godot.Core.PacketPeerUDP.wait"
  },
  {
    "path": "src/Godot/Core/Panel.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Panel () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()"
  },
  {
    "path": "src/Godot/Core/PanelContainer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PanelContainer () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Container()"
  },
  {
    "path": "src/Godot/Core/PanoramaSky.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PanoramaSky\n       (Godot.Core.PanoramaSky.get_panorama,\n        Godot.Core.PanoramaSky.set_panorama)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Sky()\n\ninstance NodeProperty PanoramaSky \"panorama\" Texture 'False where\n        nodeProperty\n          = (get_panorama, wrapDroppingSetter set_panorama, Nothing)\n\n{-# NOINLINE bindPanoramaSky_get_panorama #-}\n\n-- | @Texture@ to be applied to the PanoramaSky.\nbindPanoramaSky_get_panorama :: MethodBind\nbindPanoramaSky_get_panorama\n  = unsafePerformIO $\n      withCString \"PanoramaSky\" $\n        \\ clsNamePtr ->\n          withCString \"get_panorama\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Texture@ to be applied to the PanoramaSky.\nget_panorama ::\n               (PanoramaSky :< cls, Object :< cls) => cls -> IO Texture\nget_panorama cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPanoramaSky_get_panorama (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PanoramaSky \"get_panorama\" '[] (IO Texture)\n         where\n        nodeMethod = Godot.Core.PanoramaSky.get_panorama\n\n{-# NOINLINE bindPanoramaSky_set_panorama #-}\n\n-- | @Texture@ to be applied to the PanoramaSky.\nbindPanoramaSky_set_panorama :: MethodBind\nbindPanoramaSky_set_panorama\n  = unsafePerformIO $\n      withCString \"PanoramaSky\" $\n        \\ clsNamePtr ->\n          withCString \"set_panorama\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Texture@ to be applied to the PanoramaSky.\nset_panorama ::\n               (PanoramaSky :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_panorama cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPanoramaSky_set_panorama (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PanoramaSky \"set_panorama\" '[Texture] (IO ())\n         where\n        nodeMethod = Godot.Core.PanoramaSky.set_panorama"
  },
  {
    "path": "src/Godot/Core/ParallaxBackground.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ParallaxBackground\n       (Godot.Core.ParallaxBackground._camera_moved,\n        Godot.Core.ParallaxBackground.get_limit_begin,\n        Godot.Core.ParallaxBackground.get_limit_end,\n        Godot.Core.ParallaxBackground.get_scroll_base_offset,\n        Godot.Core.ParallaxBackground.get_scroll_base_scale,\n        Godot.Core.ParallaxBackground.get_scroll_offset,\n        Godot.Core.ParallaxBackground.is_ignore_camera_zoom,\n        Godot.Core.ParallaxBackground.set_ignore_camera_zoom,\n        Godot.Core.ParallaxBackground.set_limit_begin,\n        Godot.Core.ParallaxBackground.set_limit_end,\n        Godot.Core.ParallaxBackground.set_scroll_base_offset,\n        Godot.Core.ParallaxBackground.set_scroll_base_scale,\n        Godot.Core.ParallaxBackground.set_scroll_offset)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.CanvasLayer()\n\ninstance NodeProperty ParallaxBackground \"scroll_base_offset\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (get_scroll_base_offset,\n             wrapDroppingSetter set_scroll_base_offset, Nothing)\n\ninstance NodeProperty ParallaxBackground \"scroll_base_scale\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (get_scroll_base_scale, wrapDroppingSetter set_scroll_base_scale,\n             Nothing)\n\ninstance NodeProperty ParallaxBackground\n           \"scroll_ignore_camera_zoom\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (is_ignore_camera_zoom,\n             wrapDroppingSetter set_ignore_camera_zoom, Nothing)\n\ninstance NodeProperty ParallaxBackground \"scroll_limit_begin\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (get_limit_begin, wrapDroppingSetter set_limit_begin, Nothing)\n\ninstance NodeProperty ParallaxBackground \"scroll_limit_end\" Vector2\n           'False\n         where\n        nodeProperty\n          = (get_limit_end, wrapDroppingSetter set_limit_end, Nothing)\n\ninstance NodeProperty ParallaxBackground \"scroll_offset\" Vector2\n           'False\n         where\n        nodeProperty\n          = (get_scroll_offset, wrapDroppingSetter set_scroll_offset,\n             Nothing)\n\n{-# NOINLINE bindParallaxBackground__camera_moved #-}\n\nbindParallaxBackground__camera_moved :: MethodBind\nbindParallaxBackground__camera_moved\n  = unsafePerformIO $\n      withCString \"ParallaxBackground\" $\n        \\ clsNamePtr ->\n          withCString \"_camera_moved\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_camera_moved ::\n                (ParallaxBackground :< cls, Object :< cls) =>\n                cls -> Transform2d -> Vector2 -> IO ()\n_camera_moved cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParallaxBackground__camera_moved\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxBackground \"_camera_moved\"\n           '[Transform2d, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParallaxBackground._camera_moved\n\n{-# NOINLINE bindParallaxBackground_get_limit_begin #-}\n\n-- | Top-left limits for scrolling to begin. If the camera is outside of this limit, the background will stop scrolling. Must be lower than @scroll_limit_end@ to work.\nbindParallaxBackground_get_limit_begin :: MethodBind\nbindParallaxBackground_get_limit_begin\n  = unsafePerformIO $\n      withCString \"ParallaxBackground\" $\n        \\ clsNamePtr ->\n          withCString \"get_limit_begin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Top-left limits for scrolling to begin. If the camera is outside of this limit, the background will stop scrolling. Must be lower than @scroll_limit_end@ to work.\nget_limit_begin ::\n                  (ParallaxBackground :< cls, Object :< cls) => cls -> IO Vector2\nget_limit_begin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParallaxBackground_get_limit_begin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxBackground \"get_limit_begin\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.ParallaxBackground.get_limit_begin\n\n{-# NOINLINE bindParallaxBackground_get_limit_end #-}\n\n-- | Bottom-right limits for scrolling to end. If the camera is outside of this limit, the background will stop scrolling. Must be higher than @scroll_limit_begin@ to work.\nbindParallaxBackground_get_limit_end :: MethodBind\nbindParallaxBackground_get_limit_end\n  = unsafePerformIO $\n      withCString \"ParallaxBackground\" $\n        \\ clsNamePtr ->\n          withCString \"get_limit_end\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Bottom-right limits for scrolling to end. If the camera is outside of this limit, the background will stop scrolling. Must be higher than @scroll_limit_begin@ to work.\nget_limit_end ::\n                (ParallaxBackground :< cls, Object :< cls) => cls -> IO Vector2\nget_limit_end cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParallaxBackground_get_limit_end\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxBackground \"get_limit_end\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.ParallaxBackground.get_limit_end\n\n{-# NOINLINE bindParallaxBackground_get_scroll_base_offset #-}\n\n-- | The base position offset for all @ParallaxLayer@ children.\nbindParallaxBackground_get_scroll_base_offset :: MethodBind\nbindParallaxBackground_get_scroll_base_offset\n  = unsafePerformIO $\n      withCString \"ParallaxBackground\" $\n        \\ clsNamePtr ->\n          withCString \"get_scroll_base_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The base position offset for all @ParallaxLayer@ children.\nget_scroll_base_offset ::\n                         (ParallaxBackground :< cls, Object :< cls) => cls -> IO Vector2\nget_scroll_base_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParallaxBackground_get_scroll_base_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxBackground \"get_scroll_base_offset\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.ParallaxBackground.get_scroll_base_offset\n\n{-# NOINLINE bindParallaxBackground_get_scroll_base_scale #-}\n\n-- | The base motion scale for all @ParallaxLayer@ children.\nbindParallaxBackground_get_scroll_base_scale :: MethodBind\nbindParallaxBackground_get_scroll_base_scale\n  = unsafePerformIO $\n      withCString \"ParallaxBackground\" $\n        \\ clsNamePtr ->\n          withCString \"get_scroll_base_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The base motion scale for all @ParallaxLayer@ children.\nget_scroll_base_scale ::\n                        (ParallaxBackground :< cls, Object :< cls) => cls -> IO Vector2\nget_scroll_base_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParallaxBackground_get_scroll_base_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxBackground \"get_scroll_base_scale\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.ParallaxBackground.get_scroll_base_scale\n\n{-# NOINLINE bindParallaxBackground_get_scroll_offset #-}\n\n-- | The ParallaxBackground's scroll value. Calculated automatically when using a @Camera2D@, but can be used to manually manage scrolling when no camera is present.\nbindParallaxBackground_get_scroll_offset :: MethodBind\nbindParallaxBackground_get_scroll_offset\n  = unsafePerformIO $\n      withCString \"ParallaxBackground\" $\n        \\ clsNamePtr ->\n          withCString \"get_scroll_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ParallaxBackground's scroll value. Calculated automatically when using a @Camera2D@, but can be used to manually manage scrolling when no camera is present.\nget_scroll_offset ::\n                    (ParallaxBackground :< cls, Object :< cls) => cls -> IO Vector2\nget_scroll_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParallaxBackground_get_scroll_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxBackground \"get_scroll_offset\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.ParallaxBackground.get_scroll_offset\n\n{-# NOINLINE bindParallaxBackground_is_ignore_camera_zoom #-}\n\n-- | If @true@, elements in @ParallaxLayer@ child aren't affected by the zoom level of the camera.\nbindParallaxBackground_is_ignore_camera_zoom :: MethodBind\nbindParallaxBackground_is_ignore_camera_zoom\n  = unsafePerformIO $\n      withCString \"ParallaxBackground\" $\n        \\ clsNamePtr ->\n          withCString \"is_ignore_camera_zoom\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, elements in @ParallaxLayer@ child aren't affected by the zoom level of the camera.\nis_ignore_camera_zoom ::\n                        (ParallaxBackground :< cls, Object :< cls) => cls -> IO Bool\nis_ignore_camera_zoom cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParallaxBackground_is_ignore_camera_zoom\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxBackground \"is_ignore_camera_zoom\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ParallaxBackground.is_ignore_camera_zoom\n\n{-# NOINLINE bindParallaxBackground_set_ignore_camera_zoom #-}\n\n-- | If @true@, elements in @ParallaxLayer@ child aren't affected by the zoom level of the camera.\nbindParallaxBackground_set_ignore_camera_zoom :: MethodBind\nbindParallaxBackground_set_ignore_camera_zoom\n  = unsafePerformIO $\n      withCString \"ParallaxBackground\" $\n        \\ clsNamePtr ->\n          withCString \"set_ignore_camera_zoom\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, elements in @ParallaxLayer@ child aren't affected by the zoom level of the camera.\nset_ignore_camera_zoom ::\n                         (ParallaxBackground :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_ignore_camera_zoom cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParallaxBackground_set_ignore_camera_zoom\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxBackground \"set_ignore_camera_zoom\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParallaxBackground.set_ignore_camera_zoom\n\n{-# NOINLINE bindParallaxBackground_set_limit_begin #-}\n\n-- | Top-left limits for scrolling to begin. If the camera is outside of this limit, the background will stop scrolling. Must be lower than @scroll_limit_end@ to work.\nbindParallaxBackground_set_limit_begin :: MethodBind\nbindParallaxBackground_set_limit_begin\n  = unsafePerformIO $\n      withCString \"ParallaxBackground\" $\n        \\ clsNamePtr ->\n          withCString \"set_limit_begin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Top-left limits for scrolling to begin. If the camera is outside of this limit, the background will stop scrolling. Must be lower than @scroll_limit_end@ to work.\nset_limit_begin ::\n                  (ParallaxBackground :< cls, Object :< cls) =>\n                  cls -> Vector2 -> IO ()\nset_limit_begin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParallaxBackground_set_limit_begin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxBackground \"set_limit_begin\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParallaxBackground.set_limit_begin\n\n{-# NOINLINE bindParallaxBackground_set_limit_end #-}\n\n-- | Bottom-right limits for scrolling to end. If the camera is outside of this limit, the background will stop scrolling. Must be higher than @scroll_limit_begin@ to work.\nbindParallaxBackground_set_limit_end :: MethodBind\nbindParallaxBackground_set_limit_end\n  = unsafePerformIO $\n      withCString \"ParallaxBackground\" $\n        \\ clsNamePtr ->\n          withCString \"set_limit_end\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Bottom-right limits for scrolling to end. If the camera is outside of this limit, the background will stop scrolling. Must be higher than @scroll_limit_begin@ to work.\nset_limit_end ::\n                (ParallaxBackground :< cls, Object :< cls) =>\n                cls -> Vector2 -> IO ()\nset_limit_end cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParallaxBackground_set_limit_end\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxBackground \"set_limit_end\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParallaxBackground.set_limit_end\n\n{-# NOINLINE bindParallaxBackground_set_scroll_base_offset #-}\n\n-- | The base position offset for all @ParallaxLayer@ children.\nbindParallaxBackground_set_scroll_base_offset :: MethodBind\nbindParallaxBackground_set_scroll_base_offset\n  = unsafePerformIO $\n      withCString \"ParallaxBackground\" $\n        \\ clsNamePtr ->\n          withCString \"set_scroll_base_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The base position offset for all @ParallaxLayer@ children.\nset_scroll_base_offset ::\n                         (ParallaxBackground :< cls, Object :< cls) =>\n                         cls -> Vector2 -> IO ()\nset_scroll_base_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParallaxBackground_set_scroll_base_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxBackground \"set_scroll_base_offset\"\n           '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParallaxBackground.set_scroll_base_offset\n\n{-# NOINLINE bindParallaxBackground_set_scroll_base_scale #-}\n\n-- | The base motion scale for all @ParallaxLayer@ children.\nbindParallaxBackground_set_scroll_base_scale :: MethodBind\nbindParallaxBackground_set_scroll_base_scale\n  = unsafePerformIO $\n      withCString \"ParallaxBackground\" $\n        \\ clsNamePtr ->\n          withCString \"set_scroll_base_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The base motion scale for all @ParallaxLayer@ children.\nset_scroll_base_scale ::\n                        (ParallaxBackground :< cls, Object :< cls) =>\n                        cls -> Vector2 -> IO ()\nset_scroll_base_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParallaxBackground_set_scroll_base_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxBackground \"set_scroll_base_scale\"\n           '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParallaxBackground.set_scroll_base_scale\n\n{-# NOINLINE bindParallaxBackground_set_scroll_offset #-}\n\n-- | The ParallaxBackground's scroll value. Calculated automatically when using a @Camera2D@, but can be used to manually manage scrolling when no camera is present.\nbindParallaxBackground_set_scroll_offset :: MethodBind\nbindParallaxBackground_set_scroll_offset\n  = unsafePerformIO $\n      withCString \"ParallaxBackground\" $\n        \\ clsNamePtr ->\n          withCString \"set_scroll_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ParallaxBackground's scroll value. Calculated automatically when using a @Camera2D@, but can be used to manually manage scrolling when no camera is present.\nset_scroll_offset ::\n                    (ParallaxBackground :< cls, Object :< cls) =>\n                    cls -> Vector2 -> IO ()\nset_scroll_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParallaxBackground_set_scroll_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxBackground \"set_scroll_offset\"\n           '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParallaxBackground.set_scroll_offset"
  },
  {
    "path": "src/Godot/Core/ParallaxLayer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ParallaxLayer\n       (Godot.Core.ParallaxLayer.get_mirroring,\n        Godot.Core.ParallaxLayer.get_motion_offset,\n        Godot.Core.ParallaxLayer.get_motion_scale,\n        Godot.Core.ParallaxLayer.set_mirroring,\n        Godot.Core.ParallaxLayer.set_motion_offset,\n        Godot.Core.ParallaxLayer.set_motion_scale)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\ninstance NodeProperty ParallaxLayer \"motion_mirroring\" Vector2\n           'False\n         where\n        nodeProperty\n          = (get_mirroring, wrapDroppingSetter set_mirroring, Nothing)\n\ninstance NodeProperty ParallaxLayer \"motion_offset\" Vector2 'False\n         where\n        nodeProperty\n          = (get_motion_offset, wrapDroppingSetter set_motion_offset,\n             Nothing)\n\ninstance NodeProperty ParallaxLayer \"motion_scale\" Vector2 'False\n         where\n        nodeProperty\n          = (get_motion_scale, wrapDroppingSetter set_motion_scale, Nothing)\n\n{-# NOINLINE bindParallaxLayer_get_mirroring #-}\n\n-- | The ParallaxLayer's @Texture@ mirroring. Useful for creating an infinite scrolling background. If an axis is set to @0@, the @Texture@ will not be mirrored.\nbindParallaxLayer_get_mirroring :: MethodBind\nbindParallaxLayer_get_mirroring\n  = unsafePerformIO $\n      withCString \"ParallaxLayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_mirroring\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ParallaxLayer's @Texture@ mirroring. Useful for creating an infinite scrolling background. If an axis is set to @0@, the @Texture@ will not be mirrored.\nget_mirroring ::\n                (ParallaxLayer :< cls, Object :< cls) => cls -> IO Vector2\nget_mirroring cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParallaxLayer_get_mirroring (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxLayer \"get_mirroring\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.ParallaxLayer.get_mirroring\n\n{-# NOINLINE bindParallaxLayer_get_motion_offset #-}\n\n-- | The ParallaxLayer's offset relative to the parent ParallaxBackground's @ParallaxBackground.scroll_offset@.\nbindParallaxLayer_get_motion_offset :: MethodBind\nbindParallaxLayer_get_motion_offset\n  = unsafePerformIO $\n      withCString \"ParallaxLayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_motion_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ParallaxLayer's offset relative to the parent ParallaxBackground's @ParallaxBackground.scroll_offset@.\nget_motion_offset ::\n                    (ParallaxLayer :< cls, Object :< cls) => cls -> IO Vector2\nget_motion_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParallaxLayer_get_motion_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxLayer \"get_motion_offset\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.ParallaxLayer.get_motion_offset\n\n{-# NOINLINE bindParallaxLayer_get_motion_scale #-}\n\n-- | Multiplies the ParallaxLayer's motion. If an axis is set to @0@, it will not scroll.\nbindParallaxLayer_get_motion_scale :: MethodBind\nbindParallaxLayer_get_motion_scale\n  = unsafePerformIO $\n      withCString \"ParallaxLayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_motion_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Multiplies the ParallaxLayer's motion. If an axis is set to @0@, it will not scroll.\nget_motion_scale ::\n                   (ParallaxLayer :< cls, Object :< cls) => cls -> IO Vector2\nget_motion_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParallaxLayer_get_motion_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxLayer \"get_motion_scale\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.ParallaxLayer.get_motion_scale\n\n{-# NOINLINE bindParallaxLayer_set_mirroring #-}\n\n-- | The ParallaxLayer's @Texture@ mirroring. Useful for creating an infinite scrolling background. If an axis is set to @0@, the @Texture@ will not be mirrored.\nbindParallaxLayer_set_mirroring :: MethodBind\nbindParallaxLayer_set_mirroring\n  = unsafePerformIO $\n      withCString \"ParallaxLayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_mirroring\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ParallaxLayer's @Texture@ mirroring. Useful for creating an infinite scrolling background. If an axis is set to @0@, the @Texture@ will not be mirrored.\nset_mirroring ::\n                (ParallaxLayer :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_mirroring cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParallaxLayer_set_mirroring (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxLayer \"set_mirroring\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParallaxLayer.set_mirroring\n\n{-# NOINLINE bindParallaxLayer_set_motion_offset #-}\n\n-- | The ParallaxLayer's offset relative to the parent ParallaxBackground's @ParallaxBackground.scroll_offset@.\nbindParallaxLayer_set_motion_offset :: MethodBind\nbindParallaxLayer_set_motion_offset\n  = unsafePerformIO $\n      withCString \"ParallaxLayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_motion_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ParallaxLayer's offset relative to the parent ParallaxBackground's @ParallaxBackground.scroll_offset@.\nset_motion_offset ::\n                    (ParallaxLayer :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_motion_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParallaxLayer_set_motion_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxLayer \"set_motion_offset\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParallaxLayer.set_motion_offset\n\n{-# NOINLINE bindParallaxLayer_set_motion_scale #-}\n\n-- | Multiplies the ParallaxLayer's motion. If an axis is set to @0@, it will not scroll.\nbindParallaxLayer_set_motion_scale :: MethodBind\nbindParallaxLayer_set_motion_scale\n  = unsafePerformIO $\n      withCString \"ParallaxLayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_motion_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Multiplies the ParallaxLayer's motion. If an axis is set to @0@, it will not scroll.\nset_motion_scale ::\n                   (ParallaxLayer :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_motion_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParallaxLayer_set_motion_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParallaxLayer \"set_motion_scale\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParallaxLayer.set_motion_scale"
  },
  {
    "path": "src/Godot/Core/Particles.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Particles\n       (Godot.Core.Particles._MAX_DRAW_PASSES,\n        Godot.Core.Particles._DRAW_ORDER_LIFETIME,\n        Godot.Core.Particles._DRAW_ORDER_INDEX,\n        Godot.Core.Particles._DRAW_ORDER_VIEW_DEPTH,\n        Godot.Core.Particles.capture_aabb, Godot.Core.Particles.get_amount,\n        Godot.Core.Particles.get_draw_order,\n        Godot.Core.Particles.get_draw_pass_mesh,\n        Godot.Core.Particles.get_draw_passes,\n        Godot.Core.Particles.get_explosiveness_ratio,\n        Godot.Core.Particles.get_fixed_fps,\n        Godot.Core.Particles.get_fractional_delta,\n        Godot.Core.Particles.get_lifetime,\n        Godot.Core.Particles.get_one_shot,\n        Godot.Core.Particles.get_pre_process_time,\n        Godot.Core.Particles.get_process_material,\n        Godot.Core.Particles.get_randomness_ratio,\n        Godot.Core.Particles.get_speed_scale,\n        Godot.Core.Particles.get_use_local_coordinates,\n        Godot.Core.Particles.get_visibility_aabb,\n        Godot.Core.Particles.is_emitting, Godot.Core.Particles.restart,\n        Godot.Core.Particles.set_amount,\n        Godot.Core.Particles.set_draw_order,\n        Godot.Core.Particles.set_draw_pass_mesh,\n        Godot.Core.Particles.set_draw_passes,\n        Godot.Core.Particles.set_emitting,\n        Godot.Core.Particles.set_explosiveness_ratio,\n        Godot.Core.Particles.set_fixed_fps,\n        Godot.Core.Particles.set_fractional_delta,\n        Godot.Core.Particles.set_lifetime,\n        Godot.Core.Particles.set_one_shot,\n        Godot.Core.Particles.set_pre_process_time,\n        Godot.Core.Particles.set_process_material,\n        Godot.Core.Particles.set_randomness_ratio,\n        Godot.Core.Particles.set_speed_scale,\n        Godot.Core.Particles.set_use_local_coordinates,\n        Godot.Core.Particles.set_visibility_aabb)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.GeometryInstance()\n\n_MAX_DRAW_PASSES :: Int\n_MAX_DRAW_PASSES = 4\n\n_DRAW_ORDER_LIFETIME :: Int\n_DRAW_ORDER_LIFETIME = 1\n\n_DRAW_ORDER_INDEX :: Int\n_DRAW_ORDER_INDEX = 0\n\n_DRAW_ORDER_VIEW_DEPTH :: Int\n_DRAW_ORDER_VIEW_DEPTH = 2\n\ninstance NodeProperty Particles \"amount\" Int 'False where\n        nodeProperty = (get_amount, wrapDroppingSetter set_amount, Nothing)\n\ninstance NodeProperty Particles \"draw_order\" Int 'False where\n        nodeProperty\n          = (get_draw_order, wrapDroppingSetter set_draw_order, Nothing)\n\ninstance NodeProperty Particles \"draw_pass_1\" Mesh 'False where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_draw_pass_mesh,\n             wrapIndexedSetter 0 set_draw_pass_mesh, Nothing)\n\ninstance NodeProperty Particles \"draw_pass_2\" Mesh 'False where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_draw_pass_mesh,\n             wrapIndexedSetter 1 set_draw_pass_mesh, Nothing)\n\ninstance NodeProperty Particles \"draw_pass_3\" Mesh 'False where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_draw_pass_mesh,\n             wrapIndexedSetter 2 set_draw_pass_mesh, Nothing)\n\ninstance NodeProperty Particles \"draw_pass_4\" Mesh 'False where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_draw_pass_mesh,\n             wrapIndexedSetter 3 set_draw_pass_mesh, Nothing)\n\ninstance NodeProperty Particles \"draw_passes\" Int 'False where\n        nodeProperty\n          = (get_draw_passes, wrapDroppingSetter set_draw_passes, Nothing)\n\ninstance NodeProperty Particles \"emitting\" Bool 'False where\n        nodeProperty\n          = (is_emitting, wrapDroppingSetter set_emitting, Nothing)\n\ninstance NodeProperty Particles \"explosiveness\" Float 'False where\n        nodeProperty\n          = (get_explosiveness_ratio,\n             wrapDroppingSetter set_explosiveness_ratio, Nothing)\n\ninstance NodeProperty Particles \"fixed_fps\" Int 'False where\n        nodeProperty\n          = (get_fixed_fps, wrapDroppingSetter set_fixed_fps, Nothing)\n\ninstance NodeProperty Particles \"fract_delta\" Bool 'False where\n        nodeProperty\n          = (get_fractional_delta, wrapDroppingSetter set_fractional_delta,\n             Nothing)\n\ninstance NodeProperty Particles \"lifetime\" Float 'False where\n        nodeProperty\n          = (get_lifetime, wrapDroppingSetter set_lifetime, Nothing)\n\ninstance NodeProperty Particles \"local_coords\" Bool 'False where\n        nodeProperty\n          = (get_use_local_coordinates,\n             wrapDroppingSetter set_use_local_coordinates, Nothing)\n\ninstance NodeProperty Particles \"one_shot\" Bool 'False where\n        nodeProperty\n          = (get_one_shot, wrapDroppingSetter set_one_shot, Nothing)\n\ninstance NodeProperty Particles \"preprocess\" Float 'False where\n        nodeProperty\n          = (get_pre_process_time, wrapDroppingSetter set_pre_process_time,\n             Nothing)\n\ninstance NodeProperty Particles \"process_material\" Material 'False\n         where\n        nodeProperty\n          = (get_process_material, wrapDroppingSetter set_process_material,\n             Nothing)\n\ninstance NodeProperty Particles \"randomness\" Float 'False where\n        nodeProperty\n          = (get_randomness_ratio, wrapDroppingSetter set_randomness_ratio,\n             Nothing)\n\ninstance NodeProperty Particles \"speed_scale\" Float 'False where\n        nodeProperty\n          = (get_speed_scale, wrapDroppingSetter set_speed_scale, Nothing)\n\ninstance NodeProperty Particles \"visibility_aabb\" Aabb 'False where\n        nodeProperty\n          = (get_visibility_aabb, wrapDroppingSetter set_visibility_aabb,\n             Nothing)\n\n{-# NOINLINE bindParticles_capture_aabb #-}\n\n-- | Returns the axis-aligned bounding box that contains all the particles that are active in the current frame.\nbindParticles_capture_aabb :: MethodBind\nbindParticles_capture_aabb\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"capture_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the axis-aligned bounding box that contains all the particles that are active in the current frame.\ncapture_aabb :: (Particles :< cls, Object :< cls) => cls -> IO Aabb\ncapture_aabb cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_capture_aabb (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"capture_aabb\" '[] (IO Aabb) where\n        nodeMethod = Godot.Core.Particles.capture_aabb\n\n{-# NOINLINE bindParticles_get_amount #-}\n\n-- | Number of particles to emit.\nbindParticles_get_amount :: MethodBind\nbindParticles_get_amount\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"get_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of particles to emit.\nget_amount :: (Particles :< cls, Object :< cls) => cls -> IO Int\nget_amount cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_get_amount (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"get_amount\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Particles.get_amount\n\n{-# NOINLINE bindParticles_get_draw_order #-}\n\n-- | Particle draw order. Uses @enum DrawOrder@ values.\nbindParticles_get_draw_order :: MethodBind\nbindParticles_get_draw_order\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"get_draw_order\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle draw order. Uses @enum DrawOrder@ values.\nget_draw_order ::\n                 (Particles :< cls, Object :< cls) => cls -> IO Int\nget_draw_order cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_get_draw_order (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"get_draw_order\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Particles.get_draw_order\n\n{-# NOINLINE bindParticles_get_draw_pass_mesh #-}\n\n-- | Returns the @Mesh@ that is drawn at index @pass@.\nbindParticles_get_draw_pass_mesh :: MethodBind\nbindParticles_get_draw_pass_mesh\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"get_draw_pass_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Mesh@ that is drawn at index @pass@.\nget_draw_pass_mesh ::\n                     (Particles :< cls, Object :< cls) => cls -> Int -> IO Mesh\nget_draw_pass_mesh cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_get_draw_pass_mesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"get_draw_pass_mesh\" '[Int] (IO Mesh)\n         where\n        nodeMethod = Godot.Core.Particles.get_draw_pass_mesh\n\n{-# NOINLINE bindParticles_get_draw_passes #-}\n\n-- | The number of draw passes when rendering particles.\nbindParticles_get_draw_passes :: MethodBind\nbindParticles_get_draw_passes\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"get_draw_passes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of draw passes when rendering particles.\nget_draw_passes ::\n                  (Particles :< cls, Object :< cls) => cls -> IO Int\nget_draw_passes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_get_draw_passes (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"get_draw_passes\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Particles.get_draw_passes\n\n{-# NOINLINE bindParticles_get_explosiveness_ratio #-}\n\n-- | Time ratio between each emission. If @0@, particles are emitted continuously. If @1@, all particles are emitted simultaneously.\nbindParticles_get_explosiveness_ratio :: MethodBind\nbindParticles_get_explosiveness_ratio\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"get_explosiveness_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Time ratio between each emission. If @0@, particles are emitted continuously. If @1@, all particles are emitted simultaneously.\nget_explosiveness_ratio ::\n                          (Particles :< cls, Object :< cls) => cls -> IO Float\nget_explosiveness_ratio cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_get_explosiveness_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"get_explosiveness_ratio\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Particles.get_explosiveness_ratio\n\n{-# NOINLINE bindParticles_get_fixed_fps #-}\n\n-- | The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.\nbindParticles_get_fixed_fps :: MethodBind\nbindParticles_get_fixed_fps\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"get_fixed_fps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.\nget_fixed_fps :: (Particles :< cls, Object :< cls) => cls -> IO Int\nget_fixed_fps cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_get_fixed_fps (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"get_fixed_fps\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Particles.get_fixed_fps\n\n{-# NOINLINE bindParticles_get_fractional_delta #-}\n\n-- | If @true@, results in fractional delta calculation which has a smoother particles display effect.\nbindParticles_get_fractional_delta :: MethodBind\nbindParticles_get_fractional_delta\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"get_fractional_delta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, results in fractional delta calculation which has a smoother particles display effect.\nget_fractional_delta ::\n                       (Particles :< cls, Object :< cls) => cls -> IO Bool\nget_fractional_delta cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_get_fractional_delta\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"get_fractional_delta\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Particles.get_fractional_delta\n\n{-# NOINLINE bindParticles_get_lifetime #-}\n\n-- | Amount of time each particle will exist.\nbindParticles_get_lifetime :: MethodBind\nbindParticles_get_lifetime\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"get_lifetime\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of time each particle will exist.\nget_lifetime ::\n               (Particles :< cls, Object :< cls) => cls -> IO Float\nget_lifetime cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_get_lifetime (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"get_lifetime\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Particles.get_lifetime\n\n{-# NOINLINE bindParticles_get_one_shot #-}\n\n-- | If @true@, only @amount@ particles will be emitted.\nbindParticles_get_one_shot :: MethodBind\nbindParticles_get_one_shot\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"get_one_shot\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, only @amount@ particles will be emitted.\nget_one_shot :: (Particles :< cls, Object :< cls) => cls -> IO Bool\nget_one_shot cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_get_one_shot (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"get_one_shot\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Particles.get_one_shot\n\n{-# NOINLINE bindParticles_get_pre_process_time #-}\n\n-- | Amount of time to preprocess the particles before animation starts. Lets you start the animation some time after particles have started emitting.\nbindParticles_get_pre_process_time :: MethodBind\nbindParticles_get_pre_process_time\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"get_pre_process_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of time to preprocess the particles before animation starts. Lets you start the animation some time after particles have started emitting.\nget_pre_process_time ::\n                       (Particles :< cls, Object :< cls) => cls -> IO Float\nget_pre_process_time cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_get_pre_process_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"get_pre_process_time\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Particles.get_pre_process_time\n\n{-# NOINLINE bindParticles_get_process_material #-}\n\n-- | @Material@ for processing particles. Can be a @ParticlesMaterial@ or a @ShaderMaterial@.\nbindParticles_get_process_material :: MethodBind\nbindParticles_get_process_material\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"get_process_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Material@ for processing particles. Can be a @ParticlesMaterial@ or a @ShaderMaterial@.\nget_process_material ::\n                       (Particles :< cls, Object :< cls) => cls -> IO Material\nget_process_material cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_get_process_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"get_process_material\" '[]\n           (IO Material)\n         where\n        nodeMethod = Godot.Core.Particles.get_process_material\n\n{-# NOINLINE bindParticles_get_randomness_ratio #-}\n\n-- | Emission randomness ratio.\nbindParticles_get_randomness_ratio :: MethodBind\nbindParticles_get_randomness_ratio\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"get_randomness_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Emission randomness ratio.\nget_randomness_ratio ::\n                       (Particles :< cls, Object :< cls) => cls -> IO Float\nget_randomness_ratio cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_get_randomness_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"get_randomness_ratio\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Particles.get_randomness_ratio\n\n{-# NOINLINE bindParticles_get_speed_scale #-}\n\n-- | Speed scaling ratio. A value of @0@ can be used to pause the particles.\nbindParticles_get_speed_scale :: MethodBind\nbindParticles_get_speed_scale\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"get_speed_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Speed scaling ratio. A value of @0@ can be used to pause the particles.\nget_speed_scale ::\n                  (Particles :< cls, Object :< cls) => cls -> IO Float\nget_speed_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_get_speed_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"get_speed_scale\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Particles.get_speed_scale\n\n{-# NOINLINE bindParticles_get_use_local_coordinates #-}\n\n-- | If @true@, particles use the parent node's coordinate space. If @false@, they use global coordinates.\nbindParticles_get_use_local_coordinates :: MethodBind\nbindParticles_get_use_local_coordinates\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"get_use_local_coordinates\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles use the parent node's coordinate space. If @false@, they use global coordinates.\nget_use_local_coordinates ::\n                            (Particles :< cls, Object :< cls) => cls -> IO Bool\nget_use_local_coordinates cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_get_use_local_coordinates\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"get_use_local_coordinates\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Particles.get_use_local_coordinates\n\n{-# NOINLINE bindParticles_get_visibility_aabb #-}\n\n-- | The @AABB@ that determines the area of the world part of which needs to be visible on screen for the particle system to be active.\n--   \t\t\t__Note:__ If the @ParticlesMaterial@ in use is configured to cast shadows, you may want to enlarge this AABB to ensure the shadow is updated when particles are off-screen.\nbindParticles_get_visibility_aabb :: MethodBind\nbindParticles_get_visibility_aabb\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"get_visibility_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @AABB@ that determines the area of the world part of which needs to be visible on screen for the particle system to be active.\n--   \t\t\t__Note:__ If the @ParticlesMaterial@ in use is configured to cast shadows, you may want to enlarge this AABB to ensure the shadow is updated when particles are off-screen.\nget_visibility_aabb ::\n                      (Particles :< cls, Object :< cls) => cls -> IO Aabb\nget_visibility_aabb cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_get_visibility_aabb\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"get_visibility_aabb\" '[] (IO Aabb)\n         where\n        nodeMethod = Godot.Core.Particles.get_visibility_aabb\n\n{-# NOINLINE bindParticles_is_emitting #-}\n\n-- | If @true@, particles are being emitted.\nbindParticles_is_emitting :: MethodBind\nbindParticles_is_emitting\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"is_emitting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles are being emitted.\nis_emitting :: (Particles :< cls, Object :< cls) => cls -> IO Bool\nis_emitting cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_is_emitting (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"is_emitting\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Particles.is_emitting\n\n{-# NOINLINE bindParticles_restart #-}\n\n-- | Restarts the particle emission, clearing existing particles.\nbindParticles_restart :: MethodBind\nbindParticles_restart\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"restart\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Restarts the particle emission, clearing existing particles.\nrestart :: (Particles :< cls, Object :< cls) => cls -> IO ()\nrestart cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_restart (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"restart\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Particles.restart\n\n{-# NOINLINE bindParticles_set_amount #-}\n\n-- | Number of particles to emit.\nbindParticles_set_amount :: MethodBind\nbindParticles_set_amount\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"set_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of particles to emit.\nset_amount ::\n             (Particles :< cls, Object :< cls) => cls -> Int -> IO ()\nset_amount cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_set_amount (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"set_amount\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Particles.set_amount\n\n{-# NOINLINE bindParticles_set_draw_order #-}\n\n-- | Particle draw order. Uses @enum DrawOrder@ values.\nbindParticles_set_draw_order :: MethodBind\nbindParticles_set_draw_order\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"set_draw_order\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle draw order. Uses @enum DrawOrder@ values.\nset_draw_order ::\n                 (Particles :< cls, Object :< cls) => cls -> Int -> IO ()\nset_draw_order cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_set_draw_order (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"set_draw_order\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Particles.set_draw_order\n\n{-# NOINLINE bindParticles_set_draw_pass_mesh #-}\n\n-- | Sets the @Mesh@ that is drawn at index @pass@.\nbindParticles_set_draw_pass_mesh :: MethodBind\nbindParticles_set_draw_pass_mesh\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"set_draw_pass_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Mesh@ that is drawn at index @pass@.\nset_draw_pass_mesh ::\n                     (Particles :< cls, Object :< cls) => cls -> Int -> Mesh -> IO ()\nset_draw_pass_mesh cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_set_draw_pass_mesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"set_draw_pass_mesh\" '[Int, Mesh]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Particles.set_draw_pass_mesh\n\n{-# NOINLINE bindParticles_set_draw_passes #-}\n\n-- | The number of draw passes when rendering particles.\nbindParticles_set_draw_passes :: MethodBind\nbindParticles_set_draw_passes\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"set_draw_passes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of draw passes when rendering particles.\nset_draw_passes ::\n                  (Particles :< cls, Object :< cls) => cls -> Int -> IO ()\nset_draw_passes cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_set_draw_passes (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"set_draw_passes\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Particles.set_draw_passes\n\n{-# NOINLINE bindParticles_set_emitting #-}\n\n-- | If @true@, particles are being emitted.\nbindParticles_set_emitting :: MethodBind\nbindParticles_set_emitting\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"set_emitting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles are being emitted.\nset_emitting ::\n               (Particles :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_emitting cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_set_emitting (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"set_emitting\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Particles.set_emitting\n\n{-# NOINLINE bindParticles_set_explosiveness_ratio #-}\n\n-- | Time ratio between each emission. If @0@, particles are emitted continuously. If @1@, all particles are emitted simultaneously.\nbindParticles_set_explosiveness_ratio :: MethodBind\nbindParticles_set_explosiveness_ratio\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"set_explosiveness_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Time ratio between each emission. If @0@, particles are emitted continuously. If @1@, all particles are emitted simultaneously.\nset_explosiveness_ratio ::\n                          (Particles :< cls, Object :< cls) => cls -> Float -> IO ()\nset_explosiveness_ratio cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_set_explosiveness_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"set_explosiveness_ratio\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Particles.set_explosiveness_ratio\n\n{-# NOINLINE bindParticles_set_fixed_fps #-}\n\n-- | The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.\nbindParticles_set_fixed_fps :: MethodBind\nbindParticles_set_fixed_fps\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"set_fixed_fps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.\nset_fixed_fps ::\n                (Particles :< cls, Object :< cls) => cls -> Int -> IO ()\nset_fixed_fps cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_set_fixed_fps (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"set_fixed_fps\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Particles.set_fixed_fps\n\n{-# NOINLINE bindParticles_set_fractional_delta #-}\n\n-- | If @true@, results in fractional delta calculation which has a smoother particles display effect.\nbindParticles_set_fractional_delta :: MethodBind\nbindParticles_set_fractional_delta\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"set_fractional_delta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, results in fractional delta calculation which has a smoother particles display effect.\nset_fractional_delta ::\n                       (Particles :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_fractional_delta cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_set_fractional_delta\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"set_fractional_delta\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Particles.set_fractional_delta\n\n{-# NOINLINE bindParticles_set_lifetime #-}\n\n-- | Amount of time each particle will exist.\nbindParticles_set_lifetime :: MethodBind\nbindParticles_set_lifetime\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"set_lifetime\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of time each particle will exist.\nset_lifetime ::\n               (Particles :< cls, Object :< cls) => cls -> Float -> IO ()\nset_lifetime cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_set_lifetime (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"set_lifetime\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Particles.set_lifetime\n\n{-# NOINLINE bindParticles_set_one_shot #-}\n\n-- | If @true@, only @amount@ particles will be emitted.\nbindParticles_set_one_shot :: MethodBind\nbindParticles_set_one_shot\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"set_one_shot\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, only @amount@ particles will be emitted.\nset_one_shot ::\n               (Particles :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_one_shot cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_set_one_shot (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"set_one_shot\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Particles.set_one_shot\n\n{-# NOINLINE bindParticles_set_pre_process_time #-}\n\n-- | Amount of time to preprocess the particles before animation starts. Lets you start the animation some time after particles have started emitting.\nbindParticles_set_pre_process_time :: MethodBind\nbindParticles_set_pre_process_time\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"set_pre_process_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of time to preprocess the particles before animation starts. Lets you start the animation some time after particles have started emitting.\nset_pre_process_time ::\n                       (Particles :< cls, Object :< cls) => cls -> Float -> IO ()\nset_pre_process_time cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_set_pre_process_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"set_pre_process_time\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Particles.set_pre_process_time\n\n{-# NOINLINE bindParticles_set_process_material #-}\n\n-- | @Material@ for processing particles. Can be a @ParticlesMaterial@ or a @ShaderMaterial@.\nbindParticles_set_process_material :: MethodBind\nbindParticles_set_process_material\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"set_process_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Material@ for processing particles. Can be a @ParticlesMaterial@ or a @ShaderMaterial@.\nset_process_material ::\n                       (Particles :< cls, Object :< cls) => cls -> Material -> IO ()\nset_process_material cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_set_process_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"set_process_material\" '[Material]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Particles.set_process_material\n\n{-# NOINLINE bindParticles_set_randomness_ratio #-}\n\n-- | Emission randomness ratio.\nbindParticles_set_randomness_ratio :: MethodBind\nbindParticles_set_randomness_ratio\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"set_randomness_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Emission randomness ratio.\nset_randomness_ratio ::\n                       (Particles :< cls, Object :< cls) => cls -> Float -> IO ()\nset_randomness_ratio cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_set_randomness_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"set_randomness_ratio\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Particles.set_randomness_ratio\n\n{-# NOINLINE bindParticles_set_speed_scale #-}\n\n-- | Speed scaling ratio. A value of @0@ can be used to pause the particles.\nbindParticles_set_speed_scale :: MethodBind\nbindParticles_set_speed_scale\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"set_speed_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Speed scaling ratio. A value of @0@ can be used to pause the particles.\nset_speed_scale ::\n                  (Particles :< cls, Object :< cls) => cls -> Float -> IO ()\nset_speed_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_set_speed_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"set_speed_scale\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Particles.set_speed_scale\n\n{-# NOINLINE bindParticles_set_use_local_coordinates #-}\n\n-- | If @true@, particles use the parent node's coordinate space. If @false@, they use global coordinates.\nbindParticles_set_use_local_coordinates :: MethodBind\nbindParticles_set_use_local_coordinates\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_local_coordinates\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles use the parent node's coordinate space. If @false@, they use global coordinates.\nset_use_local_coordinates ::\n                            (Particles :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_local_coordinates cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_set_use_local_coordinates\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"set_use_local_coordinates\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Particles.set_use_local_coordinates\n\n{-# NOINLINE bindParticles_set_visibility_aabb #-}\n\n-- | The @AABB@ that determines the area of the world part of which needs to be visible on screen for the particle system to be active.\n--   \t\t\t__Note:__ If the @ParticlesMaterial@ in use is configured to cast shadows, you may want to enlarge this AABB to ensure the shadow is updated when particles are off-screen.\nbindParticles_set_visibility_aabb :: MethodBind\nbindParticles_set_visibility_aabb\n  = unsafePerformIO $\n      withCString \"Particles\" $\n        \\ clsNamePtr ->\n          withCString \"set_visibility_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @AABB@ that determines the area of the world part of which needs to be visible on screen for the particle system to be active.\n--   \t\t\t__Note:__ If the @ParticlesMaterial@ in use is configured to cast shadows, you may want to enlarge this AABB to ensure the shadow is updated when particles are off-screen.\nset_visibility_aabb ::\n                      (Particles :< cls, Object :< cls) => cls -> Aabb -> IO ()\nset_visibility_aabb cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles_set_visibility_aabb\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles \"set_visibility_aabb\" '[Aabb] (IO ())\n         where\n        nodeMethod = Godot.Core.Particles.set_visibility_aabb"
  },
  {
    "path": "src/Godot/Core/Particles2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Particles2D\n       (Godot.Core.Particles2D._DRAW_ORDER_LIFETIME,\n        Godot.Core.Particles2D._DRAW_ORDER_INDEX,\n        Godot.Core.Particles2D.capture_rect,\n        Godot.Core.Particles2D.get_amount,\n        Godot.Core.Particles2D.get_draw_order,\n        Godot.Core.Particles2D.get_explosiveness_ratio,\n        Godot.Core.Particles2D.get_fixed_fps,\n        Godot.Core.Particles2D.get_fractional_delta,\n        Godot.Core.Particles2D.get_lifetime,\n        Godot.Core.Particles2D.get_normal_map,\n        Godot.Core.Particles2D.get_one_shot,\n        Godot.Core.Particles2D.get_pre_process_time,\n        Godot.Core.Particles2D.get_process_material,\n        Godot.Core.Particles2D.get_randomness_ratio,\n        Godot.Core.Particles2D.get_speed_scale,\n        Godot.Core.Particles2D.get_texture,\n        Godot.Core.Particles2D.get_use_local_coordinates,\n        Godot.Core.Particles2D.get_visibility_rect,\n        Godot.Core.Particles2D.is_emitting, Godot.Core.Particles2D.restart,\n        Godot.Core.Particles2D.set_amount,\n        Godot.Core.Particles2D.set_draw_order,\n        Godot.Core.Particles2D.set_emitting,\n        Godot.Core.Particles2D.set_explosiveness_ratio,\n        Godot.Core.Particles2D.set_fixed_fps,\n        Godot.Core.Particles2D.set_fractional_delta,\n        Godot.Core.Particles2D.set_lifetime,\n        Godot.Core.Particles2D.set_normal_map,\n        Godot.Core.Particles2D.set_one_shot,\n        Godot.Core.Particles2D.set_pre_process_time,\n        Godot.Core.Particles2D.set_process_material,\n        Godot.Core.Particles2D.set_randomness_ratio,\n        Godot.Core.Particles2D.set_speed_scale,\n        Godot.Core.Particles2D.set_texture,\n        Godot.Core.Particles2D.set_use_local_coordinates,\n        Godot.Core.Particles2D.set_visibility_rect)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\n_DRAW_ORDER_LIFETIME :: Int\n_DRAW_ORDER_LIFETIME = 1\n\n_DRAW_ORDER_INDEX :: Int\n_DRAW_ORDER_INDEX = 0\n\ninstance NodeProperty Particles2D \"amount\" Int 'False where\n        nodeProperty = (get_amount, wrapDroppingSetter set_amount, Nothing)\n\ninstance NodeProperty Particles2D \"draw_order\" Int 'False where\n        nodeProperty\n          = (get_draw_order, wrapDroppingSetter set_draw_order, Nothing)\n\ninstance NodeProperty Particles2D \"emitting\" Bool 'False where\n        nodeProperty\n          = (is_emitting, wrapDroppingSetter set_emitting, Nothing)\n\ninstance NodeProperty Particles2D \"explosiveness\" Float 'False\n         where\n        nodeProperty\n          = (get_explosiveness_ratio,\n             wrapDroppingSetter set_explosiveness_ratio, Nothing)\n\ninstance NodeProperty Particles2D \"fixed_fps\" Int 'False where\n        nodeProperty\n          = (get_fixed_fps, wrapDroppingSetter set_fixed_fps, Nothing)\n\ninstance NodeProperty Particles2D \"fract_delta\" Bool 'False where\n        nodeProperty\n          = (get_fractional_delta, wrapDroppingSetter set_fractional_delta,\n             Nothing)\n\ninstance NodeProperty Particles2D \"lifetime\" Float 'False where\n        nodeProperty\n          = (get_lifetime, wrapDroppingSetter set_lifetime, Nothing)\n\ninstance NodeProperty Particles2D \"local_coords\" Bool 'False where\n        nodeProperty\n          = (get_use_local_coordinates,\n             wrapDroppingSetter set_use_local_coordinates, Nothing)\n\ninstance NodeProperty Particles2D \"normal_map\" Texture 'False where\n        nodeProperty\n          = (get_normal_map, wrapDroppingSetter set_normal_map, Nothing)\n\ninstance NodeProperty Particles2D \"one_shot\" Bool 'False where\n        nodeProperty\n          = (get_one_shot, wrapDroppingSetter set_one_shot, Nothing)\n\ninstance NodeProperty Particles2D \"preprocess\" Float 'False where\n        nodeProperty\n          = (get_pre_process_time, wrapDroppingSetter set_pre_process_time,\n             Nothing)\n\ninstance NodeProperty Particles2D \"process_material\" Material\n           'False\n         where\n        nodeProperty\n          = (get_process_material, wrapDroppingSetter set_process_material,\n             Nothing)\n\ninstance NodeProperty Particles2D \"randomness\" Float 'False where\n        nodeProperty\n          = (get_randomness_ratio, wrapDroppingSetter set_randomness_ratio,\n             Nothing)\n\ninstance NodeProperty Particles2D \"speed_scale\" Float 'False where\n        nodeProperty\n          = (get_speed_scale, wrapDroppingSetter set_speed_scale, Nothing)\n\ninstance NodeProperty Particles2D \"texture\" Texture 'False where\n        nodeProperty\n          = (get_texture, wrapDroppingSetter set_texture, Nothing)\n\ninstance NodeProperty Particles2D \"visibility_rect\" Rect2 'False\n         where\n        nodeProperty\n          = (get_visibility_rect, wrapDroppingSetter set_visibility_rect,\n             Nothing)\n\n{-# NOINLINE bindParticles2D_capture_rect #-}\n\n-- | Returns a rectangle containing the positions of all existing particles.\nbindParticles2D_capture_rect :: MethodBind\nbindParticles2D_capture_rect\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"capture_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a rectangle containing the positions of all existing particles.\ncapture_rect ::\n               (Particles2D :< cls, Object :< cls) => cls -> IO Rect2\ncapture_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_capture_rect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"capture_rect\" '[] (IO Rect2) where\n        nodeMethod = Godot.Core.Particles2D.capture_rect\n\n{-# NOINLINE bindParticles2D_get_amount #-}\n\n-- | Number of particles emitted in one emission cycle.\nbindParticles2D_get_amount :: MethodBind\nbindParticles2D_get_amount\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of particles emitted in one emission cycle.\nget_amount :: (Particles2D :< cls, Object :< cls) => cls -> IO Int\nget_amount cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_get_amount (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"get_amount\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Particles2D.get_amount\n\n{-# NOINLINE bindParticles2D_get_draw_order #-}\n\n-- | Particle draw order. Uses @enum DrawOrder@ values.\nbindParticles2D_get_draw_order :: MethodBind\nbindParticles2D_get_draw_order\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_draw_order\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle draw order. Uses @enum DrawOrder@ values.\nget_draw_order ::\n                 (Particles2D :< cls, Object :< cls) => cls -> IO Int\nget_draw_order cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_get_draw_order (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"get_draw_order\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Particles2D.get_draw_order\n\n{-# NOINLINE bindParticles2D_get_explosiveness_ratio #-}\n\n-- | How rapidly particles in an emission cycle are emitted. If greater than @0@, there will be a gap in emissions before the next cycle begins.\nbindParticles2D_get_explosiveness_ratio :: MethodBind\nbindParticles2D_get_explosiveness_ratio\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_explosiveness_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How rapidly particles in an emission cycle are emitted. If greater than @0@, there will be a gap in emissions before the next cycle begins.\nget_explosiveness_ratio ::\n                          (Particles2D :< cls, Object :< cls) => cls -> IO Float\nget_explosiveness_ratio cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_get_explosiveness_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"get_explosiveness_ratio\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Particles2D.get_explosiveness_ratio\n\n{-# NOINLINE bindParticles2D_get_fixed_fps #-}\n\n-- | The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.\nbindParticles2D_get_fixed_fps :: MethodBind\nbindParticles2D_get_fixed_fps\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_fixed_fps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.\nget_fixed_fps ::\n                (Particles2D :< cls, Object :< cls) => cls -> IO Int\nget_fixed_fps cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_get_fixed_fps (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"get_fixed_fps\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Particles2D.get_fixed_fps\n\n{-# NOINLINE bindParticles2D_get_fractional_delta #-}\n\n-- | If @true@, results in fractional delta calculation which has a smoother particles display effect.\nbindParticles2D_get_fractional_delta :: MethodBind\nbindParticles2D_get_fractional_delta\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_fractional_delta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, results in fractional delta calculation which has a smoother particles display effect.\nget_fractional_delta ::\n                       (Particles2D :< cls, Object :< cls) => cls -> IO Bool\nget_fractional_delta cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_get_fractional_delta\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"get_fractional_delta\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Particles2D.get_fractional_delta\n\n{-# NOINLINE bindParticles2D_get_lifetime #-}\n\n-- | Amount of time each particle will exist.\nbindParticles2D_get_lifetime :: MethodBind\nbindParticles2D_get_lifetime\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_lifetime\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of time each particle will exist.\nget_lifetime ::\n               (Particles2D :< cls, Object :< cls) => cls -> IO Float\nget_lifetime cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_get_lifetime (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"get_lifetime\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Particles2D.get_lifetime\n\n{-# NOINLINE bindParticles2D_get_normal_map #-}\n\n-- | Normal map to be used for the @texture@ property.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nbindParticles2D_get_normal_map :: MethodBind\nbindParticles2D_get_normal_map\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_normal_map\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Normal map to be used for the @texture@ property.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nget_normal_map ::\n                 (Particles2D :< cls, Object :< cls) => cls -> IO Texture\nget_normal_map cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_get_normal_map (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"get_normal_map\" '[] (IO Texture)\n         where\n        nodeMethod = Godot.Core.Particles2D.get_normal_map\n\n{-# NOINLINE bindParticles2D_get_one_shot #-}\n\n-- | If @true@, only one emission cycle occurs. If set @true@ during a cycle, emission will stop at the cycle's end.\nbindParticles2D_get_one_shot :: MethodBind\nbindParticles2D_get_one_shot\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_one_shot\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, only one emission cycle occurs. If set @true@ during a cycle, emission will stop at the cycle's end.\nget_one_shot ::\n               (Particles2D :< cls, Object :< cls) => cls -> IO Bool\nget_one_shot cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_get_one_shot (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"get_one_shot\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Particles2D.get_one_shot\n\n{-# NOINLINE bindParticles2D_get_pre_process_time #-}\n\n-- | Particle system starts as if it had already run for this many seconds.\nbindParticles2D_get_pre_process_time :: MethodBind\nbindParticles2D_get_pre_process_time\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_pre_process_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle system starts as if it had already run for this many seconds.\nget_pre_process_time ::\n                       (Particles2D :< cls, Object :< cls) => cls -> IO Float\nget_pre_process_time cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_get_pre_process_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"get_pre_process_time\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Particles2D.get_pre_process_time\n\n{-# NOINLINE bindParticles2D_get_process_material #-}\n\n-- | @Material@ for processing particles. Can be a @ParticlesMaterial@ or a @ShaderMaterial@.\nbindParticles2D_get_process_material :: MethodBind\nbindParticles2D_get_process_material\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_process_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Material@ for processing particles. Can be a @ParticlesMaterial@ or a @ShaderMaterial@.\nget_process_material ::\n                       (Particles2D :< cls, Object :< cls) => cls -> IO Material\nget_process_material cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_get_process_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"get_process_material\" '[]\n           (IO Material)\n         where\n        nodeMethod = Godot.Core.Particles2D.get_process_material\n\n{-# NOINLINE bindParticles2D_get_randomness_ratio #-}\n\n-- | Emission lifetime randomness ratio.\nbindParticles2D_get_randomness_ratio :: MethodBind\nbindParticles2D_get_randomness_ratio\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_randomness_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Emission lifetime randomness ratio.\nget_randomness_ratio ::\n                       (Particles2D :< cls, Object :< cls) => cls -> IO Float\nget_randomness_ratio cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_get_randomness_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"get_randomness_ratio\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Particles2D.get_randomness_ratio\n\n{-# NOINLINE bindParticles2D_get_speed_scale #-}\n\n-- | Particle system's running speed scaling ratio. A value of @0@ can be used to pause the particles.\nbindParticles2D_get_speed_scale :: MethodBind\nbindParticles2D_get_speed_scale\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_speed_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle system's running speed scaling ratio. A value of @0@ can be used to pause the particles.\nget_speed_scale ::\n                  (Particles2D :< cls, Object :< cls) => cls -> IO Float\nget_speed_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_get_speed_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"get_speed_scale\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Particles2D.get_speed_scale\n\n{-# NOINLINE bindParticles2D_get_texture #-}\n\n-- | Particle texture. If @null@, particles will be squares.\nbindParticles2D_get_texture :: MethodBind\nbindParticles2D_get_texture\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle texture. If @null@, particles will be squares.\nget_texture ::\n              (Particles2D :< cls, Object :< cls) => cls -> IO Texture\nget_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_get_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"get_texture\" '[] (IO Texture)\n         where\n        nodeMethod = Godot.Core.Particles2D.get_texture\n\n{-# NOINLINE bindParticles2D_get_use_local_coordinates #-}\n\n-- | If @true@, particles use the parent node's coordinate space. If @false@, they use global coordinates.\nbindParticles2D_get_use_local_coordinates :: MethodBind\nbindParticles2D_get_use_local_coordinates\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_use_local_coordinates\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles use the parent node's coordinate space. If @false@, they use global coordinates.\nget_use_local_coordinates ::\n                            (Particles2D :< cls, Object :< cls) => cls -> IO Bool\nget_use_local_coordinates cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_get_use_local_coordinates\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"get_use_local_coordinates\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Particles2D.get_use_local_coordinates\n\n{-# NOINLINE bindParticles2D_get_visibility_rect #-}\n\n-- | Editor visibility helper.\nbindParticles2D_get_visibility_rect :: MethodBind\nbindParticles2D_get_visibility_rect\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_visibility_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Editor visibility helper.\nget_visibility_rect ::\n                      (Particles2D :< cls, Object :< cls) => cls -> IO Rect2\nget_visibility_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_get_visibility_rect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"get_visibility_rect\" '[]\n           (IO Rect2)\n         where\n        nodeMethod = Godot.Core.Particles2D.get_visibility_rect\n\n{-# NOINLINE bindParticles2D_is_emitting #-}\n\n-- | If @true@, particles are being emitted.\nbindParticles2D_is_emitting :: MethodBind\nbindParticles2D_is_emitting\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_emitting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles are being emitted.\nis_emitting ::\n              (Particles2D :< cls, Object :< cls) => cls -> IO Bool\nis_emitting cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_is_emitting (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"is_emitting\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Particles2D.is_emitting\n\n{-# NOINLINE bindParticles2D_restart #-}\n\n-- | Restarts all the existing particles.\nbindParticles2D_restart :: MethodBind\nbindParticles2D_restart\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"restart\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Restarts all the existing particles.\nrestart :: (Particles2D :< cls, Object :< cls) => cls -> IO ()\nrestart cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_restart (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"restart\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Particles2D.restart\n\n{-# NOINLINE bindParticles2D_set_amount #-}\n\n-- | Number of particles emitted in one emission cycle.\nbindParticles2D_set_amount :: MethodBind\nbindParticles2D_set_amount\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of particles emitted in one emission cycle.\nset_amount ::\n             (Particles2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_amount cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_set_amount (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"set_amount\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Particles2D.set_amount\n\n{-# NOINLINE bindParticles2D_set_draw_order #-}\n\n-- | Particle draw order. Uses @enum DrawOrder@ values.\nbindParticles2D_set_draw_order :: MethodBind\nbindParticles2D_set_draw_order\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_draw_order\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle draw order. Uses @enum DrawOrder@ values.\nset_draw_order ::\n                 (Particles2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_draw_order cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_set_draw_order (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"set_draw_order\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Particles2D.set_draw_order\n\n{-# NOINLINE bindParticles2D_set_emitting #-}\n\n-- | If @true@, particles are being emitted.\nbindParticles2D_set_emitting :: MethodBind\nbindParticles2D_set_emitting\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_emitting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles are being emitted.\nset_emitting ::\n               (Particles2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_emitting cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_set_emitting (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"set_emitting\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Particles2D.set_emitting\n\n{-# NOINLINE bindParticles2D_set_explosiveness_ratio #-}\n\n-- | How rapidly particles in an emission cycle are emitted. If greater than @0@, there will be a gap in emissions before the next cycle begins.\nbindParticles2D_set_explosiveness_ratio :: MethodBind\nbindParticles2D_set_explosiveness_ratio\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_explosiveness_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How rapidly particles in an emission cycle are emitted. If greater than @0@, there will be a gap in emissions before the next cycle begins.\nset_explosiveness_ratio ::\n                          (Particles2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_explosiveness_ratio cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_set_explosiveness_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"set_explosiveness_ratio\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Particles2D.set_explosiveness_ratio\n\n{-# NOINLINE bindParticles2D_set_fixed_fps #-}\n\n-- | The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.\nbindParticles2D_set_fixed_fps :: MethodBind\nbindParticles2D_set_fixed_fps\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_fixed_fps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.\nset_fixed_fps ::\n                (Particles2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_fixed_fps cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_set_fixed_fps (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"set_fixed_fps\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Particles2D.set_fixed_fps\n\n{-# NOINLINE bindParticles2D_set_fractional_delta #-}\n\n-- | If @true@, results in fractional delta calculation which has a smoother particles display effect.\nbindParticles2D_set_fractional_delta :: MethodBind\nbindParticles2D_set_fractional_delta\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_fractional_delta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, results in fractional delta calculation which has a smoother particles display effect.\nset_fractional_delta ::\n                       (Particles2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_fractional_delta cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_set_fractional_delta\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"set_fractional_delta\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Particles2D.set_fractional_delta\n\n{-# NOINLINE bindParticles2D_set_lifetime #-}\n\n-- | Amount of time each particle will exist.\nbindParticles2D_set_lifetime :: MethodBind\nbindParticles2D_set_lifetime\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_lifetime\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of time each particle will exist.\nset_lifetime ::\n               (Particles2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_lifetime cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_set_lifetime (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"set_lifetime\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Particles2D.set_lifetime\n\n{-# NOINLINE bindParticles2D_set_normal_map #-}\n\n-- | Normal map to be used for the @texture@ property.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nbindParticles2D_set_normal_map :: MethodBind\nbindParticles2D_set_normal_map\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_normal_map\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Normal map to be used for the @texture@ property.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nset_normal_map ::\n                 (Particles2D :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_normal_map cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_set_normal_map (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"set_normal_map\" '[Texture] (IO ())\n         where\n        nodeMethod = Godot.Core.Particles2D.set_normal_map\n\n{-# NOINLINE bindParticles2D_set_one_shot #-}\n\n-- | If @true@, only one emission cycle occurs. If set @true@ during a cycle, emission will stop at the cycle's end.\nbindParticles2D_set_one_shot :: MethodBind\nbindParticles2D_set_one_shot\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_one_shot\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, only one emission cycle occurs. If set @true@ during a cycle, emission will stop at the cycle's end.\nset_one_shot ::\n               (Particles2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_one_shot cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_set_one_shot (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"set_one_shot\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Particles2D.set_one_shot\n\n{-# NOINLINE bindParticles2D_set_pre_process_time #-}\n\n-- | Particle system starts as if it had already run for this many seconds.\nbindParticles2D_set_pre_process_time :: MethodBind\nbindParticles2D_set_pre_process_time\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_pre_process_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle system starts as if it had already run for this many seconds.\nset_pre_process_time ::\n                       (Particles2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_pre_process_time cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_set_pre_process_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"set_pre_process_time\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Particles2D.set_pre_process_time\n\n{-# NOINLINE bindParticles2D_set_process_material #-}\n\n-- | @Material@ for processing particles. Can be a @ParticlesMaterial@ or a @ShaderMaterial@.\nbindParticles2D_set_process_material :: MethodBind\nbindParticles2D_set_process_material\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_process_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Material@ for processing particles. Can be a @ParticlesMaterial@ or a @ShaderMaterial@.\nset_process_material ::\n                       (Particles2D :< cls, Object :< cls) => cls -> Material -> IO ()\nset_process_material cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_set_process_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"set_process_material\" '[Material]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Particles2D.set_process_material\n\n{-# NOINLINE bindParticles2D_set_randomness_ratio #-}\n\n-- | Emission lifetime randomness ratio.\nbindParticles2D_set_randomness_ratio :: MethodBind\nbindParticles2D_set_randomness_ratio\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_randomness_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Emission lifetime randomness ratio.\nset_randomness_ratio ::\n                       (Particles2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_randomness_ratio cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_set_randomness_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"set_randomness_ratio\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Particles2D.set_randomness_ratio\n\n{-# NOINLINE bindParticles2D_set_speed_scale #-}\n\n-- | Particle system's running speed scaling ratio. A value of @0@ can be used to pause the particles.\nbindParticles2D_set_speed_scale :: MethodBind\nbindParticles2D_set_speed_scale\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_speed_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle system's running speed scaling ratio. A value of @0@ can be used to pause the particles.\nset_speed_scale ::\n                  (Particles2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_speed_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_set_speed_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"set_speed_scale\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Particles2D.set_speed_scale\n\n{-# NOINLINE bindParticles2D_set_texture #-}\n\n-- | Particle texture. If @null@, particles will be squares.\nbindParticles2D_set_texture :: MethodBind\nbindParticles2D_set_texture\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle texture. If @null@, particles will be squares.\nset_texture ::\n              (Particles2D :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_set_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"set_texture\" '[Texture] (IO ())\n         where\n        nodeMethod = Godot.Core.Particles2D.set_texture\n\n{-# NOINLINE bindParticles2D_set_use_local_coordinates #-}\n\n-- | If @true@, particles use the parent node's coordinate space. If @false@, they use global coordinates.\nbindParticles2D_set_use_local_coordinates :: MethodBind\nbindParticles2D_set_use_local_coordinates\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_local_coordinates\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles use the parent node's coordinate space. If @false@, they use global coordinates.\nset_use_local_coordinates ::\n                            (Particles2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_local_coordinates cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_set_use_local_coordinates\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"set_use_local_coordinates\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Particles2D.set_use_local_coordinates\n\n{-# NOINLINE bindParticles2D_set_visibility_rect #-}\n\n-- | Editor visibility helper.\nbindParticles2D_set_visibility_rect :: MethodBind\nbindParticles2D_set_visibility_rect\n  = unsafePerformIO $\n      withCString \"Particles2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_visibility_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Editor visibility helper.\nset_visibility_rect ::\n                      (Particles2D :< cls, Object :< cls) => cls -> Rect2 -> IO ()\nset_visibility_rect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticles2D_set_visibility_rect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Particles2D \"set_visibility_rect\" '[Rect2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Particles2D.set_visibility_rect"
  },
  {
    "path": "src/Godot/Core/ParticlesMaterial.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ParticlesMaterial\n       (Godot.Core.ParticlesMaterial._FLAG_ALIGN_Y_TO_VELOCITY,\n        Godot.Core.ParticlesMaterial._PARAM_RADIAL_ACCEL,\n        Godot.Core.ParticlesMaterial._FLAG_ROTATE_Y,\n        Godot.Core.ParticlesMaterial._EMISSION_SHAPE_SPHERE,\n        Godot.Core.ParticlesMaterial._FLAG_DISABLE_Z,\n        Godot.Core.ParticlesMaterial._PARAM_ANGULAR_VELOCITY,\n        Godot.Core.ParticlesMaterial._EMISSION_SHAPE_MAX,\n        Godot.Core.ParticlesMaterial._PARAM_TANGENTIAL_ACCEL,\n        Godot.Core.ParticlesMaterial._PARAM_ANIM_SPEED,\n        Godot.Core.ParticlesMaterial._EMISSION_SHAPE_BOX,\n        Godot.Core.ParticlesMaterial._EMISSION_SHAPE_POINTS,\n        Godot.Core.ParticlesMaterial._PARAM_MAX,\n        Godot.Core.ParticlesMaterial._PARAM_INITIAL_LINEAR_VELOCITY,\n        Godot.Core.ParticlesMaterial._FLAG_MAX,\n        Godot.Core.ParticlesMaterial._PARAM_LINEAR_ACCEL,\n        Godot.Core.ParticlesMaterial._EMISSION_SHAPE_DIRECTED_POINTS,\n        Godot.Core.ParticlesMaterial._EMISSION_SHAPE_POINT,\n        Godot.Core.ParticlesMaterial._PARAM_ORBIT_VELOCITY,\n        Godot.Core.ParticlesMaterial._PARAM_SCALE,\n        Godot.Core.ParticlesMaterial._PARAM_DAMPING,\n        Godot.Core.ParticlesMaterial._PARAM_HUE_VARIATION,\n        Godot.Core.ParticlesMaterial._PARAM_ANIM_OFFSET,\n        Godot.Core.ParticlesMaterial._PARAM_ANGLE,\n        Godot.Core.ParticlesMaterial.get_color,\n        Godot.Core.ParticlesMaterial.get_color_ramp,\n        Godot.Core.ParticlesMaterial.get_direction,\n        Godot.Core.ParticlesMaterial.get_emission_box_extents,\n        Godot.Core.ParticlesMaterial.get_emission_color_texture,\n        Godot.Core.ParticlesMaterial.get_emission_normal_texture,\n        Godot.Core.ParticlesMaterial.get_emission_point_count,\n        Godot.Core.ParticlesMaterial.get_emission_point_texture,\n        Godot.Core.ParticlesMaterial.get_emission_shape,\n        Godot.Core.ParticlesMaterial.get_emission_sphere_radius,\n        Godot.Core.ParticlesMaterial.get_flag,\n        Godot.Core.ParticlesMaterial.get_flatness,\n        Godot.Core.ParticlesMaterial.get_gravity,\n        Godot.Core.ParticlesMaterial.get_lifetime_randomness,\n        Godot.Core.ParticlesMaterial.get_param,\n        Godot.Core.ParticlesMaterial.get_param_randomness,\n        Godot.Core.ParticlesMaterial.get_param_texture,\n        Godot.Core.ParticlesMaterial.get_spread,\n        Godot.Core.ParticlesMaterial.get_trail_color_modifier,\n        Godot.Core.ParticlesMaterial.get_trail_divisor,\n        Godot.Core.ParticlesMaterial.get_trail_size_modifier,\n        Godot.Core.ParticlesMaterial.set_color,\n        Godot.Core.ParticlesMaterial.set_color_ramp,\n        Godot.Core.ParticlesMaterial.set_direction,\n        Godot.Core.ParticlesMaterial.set_emission_box_extents,\n        Godot.Core.ParticlesMaterial.set_emission_color_texture,\n        Godot.Core.ParticlesMaterial.set_emission_normal_texture,\n        Godot.Core.ParticlesMaterial.set_emission_point_count,\n        Godot.Core.ParticlesMaterial.set_emission_point_texture,\n        Godot.Core.ParticlesMaterial.set_emission_shape,\n        Godot.Core.ParticlesMaterial.set_emission_sphere_radius,\n        Godot.Core.ParticlesMaterial.set_flag,\n        Godot.Core.ParticlesMaterial.set_flatness,\n        Godot.Core.ParticlesMaterial.set_gravity,\n        Godot.Core.ParticlesMaterial.set_lifetime_randomness,\n        Godot.Core.ParticlesMaterial.set_param,\n        Godot.Core.ParticlesMaterial.set_param_randomness,\n        Godot.Core.ParticlesMaterial.set_param_texture,\n        Godot.Core.ParticlesMaterial.set_spread,\n        Godot.Core.ParticlesMaterial.set_trail_color_modifier,\n        Godot.Core.ParticlesMaterial.set_trail_divisor,\n        Godot.Core.ParticlesMaterial.set_trail_size_modifier)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Material()\n\n_FLAG_ALIGN_Y_TO_VELOCITY :: Int\n_FLAG_ALIGN_Y_TO_VELOCITY = 0\n\n_PARAM_RADIAL_ACCEL :: Int\n_PARAM_RADIAL_ACCEL = 4\n\n_FLAG_ROTATE_Y :: Int\n_FLAG_ROTATE_Y = 1\n\n_EMISSION_SHAPE_SPHERE :: Int\n_EMISSION_SHAPE_SPHERE = 1\n\n_FLAG_DISABLE_Z :: Int\n_FLAG_DISABLE_Z = 2\n\n_PARAM_ANGULAR_VELOCITY :: Int\n_PARAM_ANGULAR_VELOCITY = 1\n\n_EMISSION_SHAPE_MAX :: Int\n_EMISSION_SHAPE_MAX = 5\n\n_PARAM_TANGENTIAL_ACCEL :: Int\n_PARAM_TANGENTIAL_ACCEL = 5\n\n_PARAM_ANIM_SPEED :: Int\n_PARAM_ANIM_SPEED = 10\n\n_EMISSION_SHAPE_BOX :: Int\n_EMISSION_SHAPE_BOX = 2\n\n_EMISSION_SHAPE_POINTS :: Int\n_EMISSION_SHAPE_POINTS = 3\n\n_PARAM_MAX :: Int\n_PARAM_MAX = 12\n\n_PARAM_INITIAL_LINEAR_VELOCITY :: Int\n_PARAM_INITIAL_LINEAR_VELOCITY = 0\n\n_FLAG_MAX :: Int\n_FLAG_MAX = 3\n\n_PARAM_LINEAR_ACCEL :: Int\n_PARAM_LINEAR_ACCEL = 3\n\n_EMISSION_SHAPE_DIRECTED_POINTS :: Int\n_EMISSION_SHAPE_DIRECTED_POINTS = 4\n\n_EMISSION_SHAPE_POINT :: Int\n_EMISSION_SHAPE_POINT = 0\n\n_PARAM_ORBIT_VELOCITY :: Int\n_PARAM_ORBIT_VELOCITY = 2\n\n_PARAM_SCALE :: Int\n_PARAM_SCALE = 8\n\n_PARAM_DAMPING :: Int\n_PARAM_DAMPING = 6\n\n_PARAM_HUE_VARIATION :: Int\n_PARAM_HUE_VARIATION = 9\n\n_PARAM_ANIM_OFFSET :: Int\n_PARAM_ANIM_OFFSET = 11\n\n_PARAM_ANGLE :: Int\n_PARAM_ANGLE = 7\n\ninstance NodeProperty ParticlesMaterial \"angle\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_param, wrapIndexedSetter 7 set_param,\n             Nothing)\n\ninstance NodeProperty ParticlesMaterial \"angle_curve\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_param_texture,\n             wrapIndexedSetter 7 set_param_texture, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"angle_random\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_param_randomness,\n             wrapIndexedSetter 7 set_param_randomness, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"angular_velocity\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_param, wrapIndexedSetter 1 set_param,\n             Nothing)\n\ninstance NodeProperty ParticlesMaterial \"angular_velocity_curve\"\n           Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_param_texture,\n             wrapIndexedSetter 1 set_param_texture, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"angular_velocity_random\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_param_randomness,\n             wrapIndexedSetter 1 set_param_randomness, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"anim_offset\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_param, wrapIndexedSetter 11 set_param,\n             Nothing)\n\ninstance NodeProperty ParticlesMaterial \"anim_offset_curve\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_param_texture,\n             wrapIndexedSetter 11 set_param_texture, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"anim_offset_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_param_randomness,\n             wrapIndexedSetter 11 set_param_randomness, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"anim_speed\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_param, wrapIndexedSetter 10 set_param,\n             Nothing)\n\ninstance NodeProperty ParticlesMaterial \"anim_speed_curve\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_param_texture,\n             wrapIndexedSetter 10 set_param_texture, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"anim_speed_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_param_randomness,\n             wrapIndexedSetter 10 set_param_randomness, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"color\" Color 'False where\n        nodeProperty = (get_color, wrapDroppingSetter set_color, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"color_ramp\" Texture 'False\n         where\n        nodeProperty\n          = (get_color_ramp, wrapDroppingSetter set_color_ramp, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"damping\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_param, wrapIndexedSetter 6 set_param,\n             Nothing)\n\ninstance NodeProperty ParticlesMaterial \"damping_curve\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_param_texture,\n             wrapIndexedSetter 6 set_param_texture, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"damping_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_param_randomness,\n             wrapIndexedSetter 6 set_param_randomness, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"direction\" Vector3 'False\n         where\n        nodeProperty\n          = (get_direction, wrapDroppingSetter set_direction, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"emission_box_extents\"\n           Vector3\n           'False\n         where\n        nodeProperty\n          = (get_emission_box_extents,\n             wrapDroppingSetter set_emission_box_extents, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"emission_color_texture\"\n           Texture\n           'False\n         where\n        nodeProperty\n          = (get_emission_color_texture,\n             wrapDroppingSetter set_emission_color_texture, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"emission_normal_texture\"\n           Texture\n           'False\n         where\n        nodeProperty\n          = (get_emission_normal_texture,\n             wrapDroppingSetter set_emission_normal_texture, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"emission_point_count\" Int\n           'False\n         where\n        nodeProperty\n          = (get_emission_point_count,\n             wrapDroppingSetter set_emission_point_count, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"emission_point_texture\"\n           Texture\n           'False\n         where\n        nodeProperty\n          = (get_emission_point_texture,\n             wrapDroppingSetter set_emission_point_texture, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"emission_shape\" Int 'False\n         where\n        nodeProperty\n          = (get_emission_shape, wrapDroppingSetter set_emission_shape,\n             Nothing)\n\ninstance NodeProperty ParticlesMaterial \"emission_sphere_radius\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_emission_sphere_radius,\n             wrapDroppingSetter set_emission_sphere_radius, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"flag_align_y\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_flag, wrapIndexedSetter 0 set_flag,\n             Nothing)\n\ninstance NodeProperty ParticlesMaterial \"flag_disable_z\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_flag, wrapIndexedSetter 2 set_flag,\n             Nothing)\n\ninstance NodeProperty ParticlesMaterial \"flag_rotate_y\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_flag, wrapIndexedSetter 1 set_flag,\n             Nothing)\n\ninstance NodeProperty ParticlesMaterial \"flatness\" Float 'False\n         where\n        nodeProperty\n          = (get_flatness, wrapDroppingSetter set_flatness, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"gravity\" Vector3 'False\n         where\n        nodeProperty\n          = (get_gravity, wrapDroppingSetter set_gravity, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"hue_variation\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_param, wrapIndexedSetter 9 set_param,\n             Nothing)\n\ninstance NodeProperty ParticlesMaterial \"hue_variation_curve\"\n           Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_param_texture,\n             wrapIndexedSetter 9 set_param_texture, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"hue_variation_random\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_param_randomness,\n             wrapIndexedSetter 9 set_param_randomness, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"initial_velocity\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_param, wrapIndexedSetter 0 set_param,\n             Nothing)\n\ninstance NodeProperty ParticlesMaterial \"initial_velocity_random\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_param_randomness,\n             wrapIndexedSetter 0 set_param_randomness, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"lifetime_randomness\" Float\n           'False\n         where\n        nodeProperty\n          = (get_lifetime_randomness,\n             wrapDroppingSetter set_lifetime_randomness, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"linear_accel\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_param, wrapIndexedSetter 3 set_param,\n             Nothing)\n\ninstance NodeProperty ParticlesMaterial \"linear_accel_curve\"\n           Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_param_texture,\n             wrapIndexedSetter 3 set_param_texture, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"linear_accel_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_param_randomness,\n             wrapIndexedSetter 3 set_param_randomness, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"orbit_velocity\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_param, wrapIndexedSetter 2 set_param,\n             Nothing)\n\ninstance NodeProperty ParticlesMaterial \"orbit_velocity_curve\"\n           Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_param_texture,\n             wrapIndexedSetter 2 set_param_texture, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"orbit_velocity_random\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_param_randomness,\n             wrapIndexedSetter 2 set_param_randomness, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"radial_accel\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_param, wrapIndexedSetter 4 set_param,\n             Nothing)\n\ninstance NodeProperty ParticlesMaterial \"radial_accel_curve\"\n           Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_param_texture,\n             wrapIndexedSetter 4 set_param_texture, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"radial_accel_random\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_param_randomness,\n             wrapIndexedSetter 4 set_param_randomness, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"scale\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_param, wrapIndexedSetter 8 set_param,\n             Nothing)\n\ninstance NodeProperty ParticlesMaterial \"scale_curve\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_param_texture,\n             wrapIndexedSetter 8 set_param_texture, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"scale_random\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_param_randomness,\n             wrapIndexedSetter 8 set_param_randomness, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"spread\" Float 'False where\n        nodeProperty = (get_spread, wrapDroppingSetter set_spread, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"tangential_accel\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_param, wrapIndexedSetter 5 set_param,\n             Nothing)\n\ninstance NodeProperty ParticlesMaterial \"tangential_accel_curve\"\n           Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_param_texture,\n             wrapIndexedSetter 5 set_param_texture, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"tangential_accel_random\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_param_randomness,\n             wrapIndexedSetter 5 set_param_randomness, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"trail_color_modifier\"\n           GradientTexture\n           'False\n         where\n        nodeProperty\n          = (get_trail_color_modifier,\n             wrapDroppingSetter set_trail_color_modifier, Nothing)\n\ninstance NodeProperty ParticlesMaterial \"trail_divisor\" Int 'False\n         where\n        nodeProperty\n          = (get_trail_divisor, wrapDroppingSetter set_trail_divisor,\n             Nothing)\n\ninstance NodeProperty ParticlesMaterial \"trail_size_modifier\"\n           CurveTexture\n           'False\n         where\n        nodeProperty\n          = (get_trail_size_modifier,\n             wrapDroppingSetter set_trail_size_modifier, Nothing)\n\n{-# NOINLINE bindParticlesMaterial_get_color #-}\n\n-- | Each particle's initial color. If the @Particles2D@'s @texture@ is defined, it will be multiplied by this color. To have particle display color in a @SpatialMaterial@ make sure to set @SpatialMaterial.vertex_color_use_as_albedo@ to @true@.\nbindParticlesMaterial_get_color :: MethodBind\nbindParticlesMaterial_get_color\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Each particle's initial color. If the @Particles2D@'s @texture@ is defined, it will be multiplied by this color. To have particle display color in a @SpatialMaterial@ make sure to set @SpatialMaterial.vertex_color_use_as_albedo@ to @true@.\nget_color ::\n            (ParticlesMaterial :< cls, Object :< cls) => cls -> IO Color\nget_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_get_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_color\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.get_color\n\n{-# NOINLINE bindParticlesMaterial_get_color_ramp #-}\n\n-- | Each particle's color will vary along this @GradientTexture@.\nbindParticlesMaterial_get_color_ramp :: MethodBind\nbindParticlesMaterial_get_color_ramp\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_color_ramp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Each particle's color will vary along this @GradientTexture@.\nget_color_ramp ::\n                 (ParticlesMaterial :< cls, Object :< cls) => cls -> IO Texture\nget_color_ramp cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_get_color_ramp\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_color_ramp\" '[]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.get_color_ramp\n\n{-# NOINLINE bindParticlesMaterial_get_direction #-}\n\n-- | Unit vector specifying the particles' emission direction.\nbindParticlesMaterial_get_direction :: MethodBind\nbindParticlesMaterial_get_direction\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_direction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Unit vector specifying the particles' emission direction.\nget_direction ::\n                (ParticlesMaterial :< cls, Object :< cls) => cls -> IO Vector3\nget_direction cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_get_direction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_direction\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.get_direction\n\n{-# NOINLINE bindParticlesMaterial_get_emission_box_extents #-}\n\n-- | The box's extents if @emission_shape@ is set to @EMISSION_SHAPE_BOX@.\nbindParticlesMaterial_get_emission_box_extents :: MethodBind\nbindParticlesMaterial_get_emission_box_extents\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_box_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The box's extents if @emission_shape@ is set to @EMISSION_SHAPE_BOX@.\nget_emission_box_extents ::\n                           (ParticlesMaterial :< cls, Object :< cls) => cls -> IO Vector3\nget_emission_box_extents cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParticlesMaterial_get_emission_box_extents\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_emission_box_extents\"\n           '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.get_emission_box_extents\n\n{-# NOINLINE bindParticlesMaterial_get_emission_color_texture #-}\n\n-- | Particle color will be modulated by color determined by sampling this texture at the same point as the @emission_point_texture@.\nbindParticlesMaterial_get_emission_color_texture :: MethodBind\nbindParticlesMaterial_get_emission_color_texture\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_color_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle color will be modulated by color determined by sampling this texture at the same point as the @emission_point_texture@.\nget_emission_color_texture ::\n                             (ParticlesMaterial :< cls, Object :< cls) => cls -> IO Texture\nget_emission_color_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParticlesMaterial_get_emission_color_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_emission_color_texture\"\n           '[]\n           (IO Texture)\n         where\n        nodeMethod\n          = Godot.Core.ParticlesMaterial.get_emission_color_texture\n\n{-# NOINLINE bindParticlesMaterial_get_emission_normal_texture #-}\n\n-- | Particle velocity and rotation will be set by sampling this texture at the same point as the @emission_point_texture@. Used only in @EMISSION_SHAPE_DIRECTED_POINTS@. Can be created automatically from mesh or node by selecting \"Create Emission Points from Mesh/Node\" under the \"Particles\" tool in the toolbar.\nbindParticlesMaterial_get_emission_normal_texture :: MethodBind\nbindParticlesMaterial_get_emission_normal_texture\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_normal_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle velocity and rotation will be set by sampling this texture at the same point as the @emission_point_texture@. Used only in @EMISSION_SHAPE_DIRECTED_POINTS@. Can be created automatically from mesh or node by selecting \"Create Emission Points from Mesh/Node\" under the \"Particles\" tool in the toolbar.\nget_emission_normal_texture ::\n                              (ParticlesMaterial :< cls, Object :< cls) => cls -> IO Texture\nget_emission_normal_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParticlesMaterial_get_emission_normal_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_emission_normal_texture\"\n           '[]\n           (IO Texture)\n         where\n        nodeMethod\n          = Godot.Core.ParticlesMaterial.get_emission_normal_texture\n\n{-# NOINLINE bindParticlesMaterial_get_emission_point_count #-}\n\n-- | The number of emission points if @emission_shape@ is set to @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nbindParticlesMaterial_get_emission_point_count :: MethodBind\nbindParticlesMaterial_get_emission_point_count\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_point_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of emission points if @emission_shape@ is set to @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nget_emission_point_count ::\n                           (ParticlesMaterial :< cls, Object :< cls) => cls -> IO Int\nget_emission_point_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParticlesMaterial_get_emission_point_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_emission_point_count\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.get_emission_point_count\n\n{-# NOINLINE bindParticlesMaterial_get_emission_point_texture #-}\n\n-- | Particles will be emitted at positions determined by sampling this texture at a random position. Used with @EMISSION_SHAPE_POINTS@ and @EMISSION_SHAPE_DIRECTED_POINTS@. Can be created automatically from mesh or node by selecting \"Create Emission Points from Mesh/Node\" under the \"Particles\" tool in the toolbar.\nbindParticlesMaterial_get_emission_point_texture :: MethodBind\nbindParticlesMaterial_get_emission_point_texture\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_point_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particles will be emitted at positions determined by sampling this texture at a random position. Used with @EMISSION_SHAPE_POINTS@ and @EMISSION_SHAPE_DIRECTED_POINTS@. Can be created automatically from mesh or node by selecting \"Create Emission Points from Mesh/Node\" under the \"Particles\" tool in the toolbar.\nget_emission_point_texture ::\n                             (ParticlesMaterial :< cls, Object :< cls) => cls -> IO Texture\nget_emission_point_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParticlesMaterial_get_emission_point_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_emission_point_texture\"\n           '[]\n           (IO Texture)\n         where\n        nodeMethod\n          = Godot.Core.ParticlesMaterial.get_emission_point_texture\n\n{-# NOINLINE bindParticlesMaterial_get_emission_shape #-}\n\n-- | Particles will be emitted inside this region. Use @enum EmissionShape@ constants for values.\nbindParticlesMaterial_get_emission_shape :: MethodBind\nbindParticlesMaterial_get_emission_shape\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particles will be emitted inside this region. Use @enum EmissionShape@ constants for values.\nget_emission_shape ::\n                     (ParticlesMaterial :< cls, Object :< cls) => cls -> IO Int\nget_emission_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_get_emission_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_emission_shape\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.get_emission_shape\n\n{-# NOINLINE bindParticlesMaterial_get_emission_sphere_radius #-}\n\n-- | The sphere's radius if @emission_shape@ is set to @EMISSION_SHAPE_SPHERE@.\nbindParticlesMaterial_get_emission_sphere_radius :: MethodBind\nbindParticlesMaterial_get_emission_sphere_radius\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_sphere_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The sphere's radius if @emission_shape@ is set to @EMISSION_SHAPE_SPHERE@.\nget_emission_sphere_radius ::\n                             (ParticlesMaterial :< cls, Object :< cls) => cls -> IO Float\nget_emission_sphere_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParticlesMaterial_get_emission_sphere_radius\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_emission_sphere_radius\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.ParticlesMaterial.get_emission_sphere_radius\n\n{-# NOINLINE bindParticlesMaterial_get_flag #-}\n\n-- | Returns @true@ if the specified flag is enabled.\nbindParticlesMaterial_get_flag :: MethodBind\nbindParticlesMaterial_get_flag\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the specified flag is enabled.\nget_flag ::\n           (ParticlesMaterial :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_flag cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_get_flag (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_flag\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.get_flag\n\n{-# NOINLINE bindParticlesMaterial_get_flatness #-}\n\n-- | Amount of @spread@ in Y/Z plane. A value of @1@ restricts particles to X/Z plane.\nbindParticlesMaterial_get_flatness :: MethodBind\nbindParticlesMaterial_get_flatness\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_flatness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of @spread@ in Y/Z plane. A value of @1@ restricts particles to X/Z plane.\nget_flatness ::\n               (ParticlesMaterial :< cls, Object :< cls) => cls -> IO Float\nget_flatness cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_get_flatness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_flatness\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.get_flatness\n\n{-# NOINLINE bindParticlesMaterial_get_gravity #-}\n\n-- | Gravity applied to every particle.\nbindParticlesMaterial_get_gravity :: MethodBind\nbindParticlesMaterial_get_gravity\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_gravity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gravity applied to every particle.\nget_gravity ::\n              (ParticlesMaterial :< cls, Object :< cls) => cls -> IO Vector3\nget_gravity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_get_gravity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_gravity\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.get_gravity\n\n{-# NOINLINE bindParticlesMaterial_get_lifetime_randomness #-}\n\n-- | Particle lifetime randomness ratio.\nbindParticlesMaterial_get_lifetime_randomness :: MethodBind\nbindParticlesMaterial_get_lifetime_randomness\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_lifetime_randomness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle lifetime randomness ratio.\nget_lifetime_randomness ::\n                          (ParticlesMaterial :< cls, Object :< cls) => cls -> IO Float\nget_lifetime_randomness cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParticlesMaterial_get_lifetime_randomness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_lifetime_randomness\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.get_lifetime_randomness\n\n{-# NOINLINE bindParticlesMaterial_get_param #-}\n\n-- | Returns the value of the specified parameter.\nbindParticlesMaterial_get_param :: MethodBind\nbindParticlesMaterial_get_param\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of the specified parameter.\nget_param ::\n            (ParticlesMaterial :< cls, Object :< cls) => cls -> Int -> IO Float\nget_param cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_get_param (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_param\" '[Int] (IO Float)\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.get_param\n\n{-# NOINLINE bindParticlesMaterial_get_param_randomness #-}\n\n-- | Returns the randomness ratio associated with the specified parameter.\nbindParticlesMaterial_get_param_randomness :: MethodBind\nbindParticlesMaterial_get_param_randomness\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_param_randomness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the randomness ratio associated with the specified parameter.\nget_param_randomness ::\n                       (ParticlesMaterial :< cls, Object :< cls) => cls -> Int -> IO Float\nget_param_randomness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_get_param_randomness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_param_randomness\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.get_param_randomness\n\n{-# NOINLINE bindParticlesMaterial_get_param_texture #-}\n\n-- | Returns the @Texture@ used by the specified parameter.\nbindParticlesMaterial_get_param_texture :: MethodBind\nbindParticlesMaterial_get_param_texture\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_param_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Texture@ used by the specified parameter.\nget_param_texture ::\n                    (ParticlesMaterial :< cls, Object :< cls) =>\n                    cls -> Int -> IO Texture\nget_param_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_get_param_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_param_texture\" '[Int]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.get_param_texture\n\n{-# NOINLINE bindParticlesMaterial_get_spread #-}\n\n-- | Each particle's initial direction range from @+spread@ to @-spread@ degrees. Applied to X/Z plane and Y/Z planes.\nbindParticlesMaterial_get_spread :: MethodBind\nbindParticlesMaterial_get_spread\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_spread\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Each particle's initial direction range from @+spread@ to @-spread@ degrees. Applied to X/Z plane and Y/Z planes.\nget_spread ::\n             (ParticlesMaterial :< cls, Object :< cls) => cls -> IO Float\nget_spread cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_get_spread\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_spread\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.get_spread\n\n{-# NOINLINE bindParticlesMaterial_get_trail_color_modifier #-}\n\n-- | Trail particles' color will vary along this @GradientTexture@.\nbindParticlesMaterial_get_trail_color_modifier :: MethodBind\nbindParticlesMaterial_get_trail_color_modifier\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_trail_color_modifier\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Trail particles' color will vary along this @GradientTexture@.\nget_trail_color_modifier ::\n                           (ParticlesMaterial :< cls, Object :< cls) =>\n                           cls -> IO GradientTexture\nget_trail_color_modifier cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParticlesMaterial_get_trail_color_modifier\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_trail_color_modifier\"\n           '[]\n           (IO GradientTexture)\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.get_trail_color_modifier\n\n{-# NOINLINE bindParticlesMaterial_get_trail_divisor #-}\n\n-- | Emitter will emit @amount@ divided by @trail_divisor@ particles. The remaining particles will be used as trail(s).\nbindParticlesMaterial_get_trail_divisor :: MethodBind\nbindParticlesMaterial_get_trail_divisor\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_trail_divisor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Emitter will emit @amount@ divided by @trail_divisor@ particles. The remaining particles will be used as trail(s).\nget_trail_divisor ::\n                    (ParticlesMaterial :< cls, Object :< cls) => cls -> IO Int\nget_trail_divisor cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_get_trail_divisor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_trail_divisor\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.get_trail_divisor\n\n{-# NOINLINE bindParticlesMaterial_get_trail_size_modifier #-}\n\n-- | Trail particles' size will vary along this @CurveTexture@.\nbindParticlesMaterial_get_trail_size_modifier :: MethodBind\nbindParticlesMaterial_get_trail_size_modifier\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_trail_size_modifier\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Trail particles' size will vary along this @CurveTexture@.\nget_trail_size_modifier ::\n                          (ParticlesMaterial :< cls, Object :< cls) => cls -> IO CurveTexture\nget_trail_size_modifier cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParticlesMaterial_get_trail_size_modifier\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"get_trail_size_modifier\" '[]\n           (IO CurveTexture)\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.get_trail_size_modifier\n\n{-# NOINLINE bindParticlesMaterial_set_color #-}\n\n-- | Each particle's initial color. If the @Particles2D@'s @texture@ is defined, it will be multiplied by this color. To have particle display color in a @SpatialMaterial@ make sure to set @SpatialMaterial.vertex_color_use_as_albedo@ to @true@.\nbindParticlesMaterial_set_color :: MethodBind\nbindParticlesMaterial_set_color\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Each particle's initial color. If the @Particles2D@'s @texture@ is defined, it will be multiplied by this color. To have particle display color in a @SpatialMaterial@ make sure to set @SpatialMaterial.vertex_color_use_as_albedo@ to @true@.\nset_color ::\n            (ParticlesMaterial :< cls, Object :< cls) => cls -> Color -> IO ()\nset_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_set_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_color\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.set_color\n\n{-# NOINLINE bindParticlesMaterial_set_color_ramp #-}\n\n-- | Each particle's color will vary along this @GradientTexture@.\nbindParticlesMaterial_set_color_ramp :: MethodBind\nbindParticlesMaterial_set_color_ramp\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_color_ramp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Each particle's color will vary along this @GradientTexture@.\nset_color_ramp ::\n                 (ParticlesMaterial :< cls, Object :< cls) =>\n                 cls -> Texture -> IO ()\nset_color_ramp cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_set_color_ramp\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_color_ramp\" '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.set_color_ramp\n\n{-# NOINLINE bindParticlesMaterial_set_direction #-}\n\n-- | Unit vector specifying the particles' emission direction.\nbindParticlesMaterial_set_direction :: MethodBind\nbindParticlesMaterial_set_direction\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_direction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Unit vector specifying the particles' emission direction.\nset_direction ::\n                (ParticlesMaterial :< cls, Object :< cls) =>\n                cls -> Vector3 -> IO ()\nset_direction cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_set_direction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_direction\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.set_direction\n\n{-# NOINLINE bindParticlesMaterial_set_emission_box_extents #-}\n\n-- | The box's extents if @emission_shape@ is set to @EMISSION_SHAPE_BOX@.\nbindParticlesMaterial_set_emission_box_extents :: MethodBind\nbindParticlesMaterial_set_emission_box_extents\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_box_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The box's extents if @emission_shape@ is set to @EMISSION_SHAPE_BOX@.\nset_emission_box_extents ::\n                           (ParticlesMaterial :< cls, Object :< cls) =>\n                           cls -> Vector3 -> IO ()\nset_emission_box_extents cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParticlesMaterial_set_emission_box_extents\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_emission_box_extents\"\n           '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.set_emission_box_extents\n\n{-# NOINLINE bindParticlesMaterial_set_emission_color_texture #-}\n\n-- | Particle color will be modulated by color determined by sampling this texture at the same point as the @emission_point_texture@.\nbindParticlesMaterial_set_emission_color_texture :: MethodBind\nbindParticlesMaterial_set_emission_color_texture\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_color_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle color will be modulated by color determined by sampling this texture at the same point as the @emission_point_texture@.\nset_emission_color_texture ::\n                             (ParticlesMaterial :< cls, Object :< cls) =>\n                             cls -> Texture -> IO ()\nset_emission_color_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParticlesMaterial_set_emission_color_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_emission_color_texture\"\n           '[Texture]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.ParticlesMaterial.set_emission_color_texture\n\n{-# NOINLINE bindParticlesMaterial_set_emission_normal_texture #-}\n\n-- | Particle velocity and rotation will be set by sampling this texture at the same point as the @emission_point_texture@. Used only in @EMISSION_SHAPE_DIRECTED_POINTS@. Can be created automatically from mesh or node by selecting \"Create Emission Points from Mesh/Node\" under the \"Particles\" tool in the toolbar.\nbindParticlesMaterial_set_emission_normal_texture :: MethodBind\nbindParticlesMaterial_set_emission_normal_texture\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_normal_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle velocity and rotation will be set by sampling this texture at the same point as the @emission_point_texture@. Used only in @EMISSION_SHAPE_DIRECTED_POINTS@. Can be created automatically from mesh or node by selecting \"Create Emission Points from Mesh/Node\" under the \"Particles\" tool in the toolbar.\nset_emission_normal_texture ::\n                              (ParticlesMaterial :< cls, Object :< cls) =>\n                              cls -> Texture -> IO ()\nset_emission_normal_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParticlesMaterial_set_emission_normal_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_emission_normal_texture\"\n           '[Texture]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.ParticlesMaterial.set_emission_normal_texture\n\n{-# NOINLINE bindParticlesMaterial_set_emission_point_count #-}\n\n-- | The number of emission points if @emission_shape@ is set to @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nbindParticlesMaterial_set_emission_point_count :: MethodBind\nbindParticlesMaterial_set_emission_point_count\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_point_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of emission points if @emission_shape@ is set to @EMISSION_SHAPE_POINTS@ or @EMISSION_SHAPE_DIRECTED_POINTS@.\nset_emission_point_count ::\n                           (ParticlesMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_emission_point_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParticlesMaterial_set_emission_point_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_emission_point_count\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.set_emission_point_count\n\n{-# NOINLINE bindParticlesMaterial_set_emission_point_texture #-}\n\n-- | Particles will be emitted at positions determined by sampling this texture at a random position. Used with @EMISSION_SHAPE_POINTS@ and @EMISSION_SHAPE_DIRECTED_POINTS@. Can be created automatically from mesh or node by selecting \"Create Emission Points from Mesh/Node\" under the \"Particles\" tool in the toolbar.\nbindParticlesMaterial_set_emission_point_texture :: MethodBind\nbindParticlesMaterial_set_emission_point_texture\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_point_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particles will be emitted at positions determined by sampling this texture at a random position. Used with @EMISSION_SHAPE_POINTS@ and @EMISSION_SHAPE_DIRECTED_POINTS@. Can be created automatically from mesh or node by selecting \"Create Emission Points from Mesh/Node\" under the \"Particles\" tool in the toolbar.\nset_emission_point_texture ::\n                             (ParticlesMaterial :< cls, Object :< cls) =>\n                             cls -> Texture -> IO ()\nset_emission_point_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParticlesMaterial_set_emission_point_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_emission_point_texture\"\n           '[Texture]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.ParticlesMaterial.set_emission_point_texture\n\n{-# NOINLINE bindParticlesMaterial_set_emission_shape #-}\n\n-- | Particles will be emitted inside this region. Use @enum EmissionShape@ constants for values.\nbindParticlesMaterial_set_emission_shape :: MethodBind\nbindParticlesMaterial_set_emission_shape\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particles will be emitted inside this region. Use @enum EmissionShape@ constants for values.\nset_emission_shape ::\n                     (ParticlesMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_emission_shape cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_set_emission_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_emission_shape\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.set_emission_shape\n\n{-# NOINLINE bindParticlesMaterial_set_emission_sphere_radius #-}\n\n-- | The sphere's radius if @emission_shape@ is set to @EMISSION_SHAPE_SPHERE@.\nbindParticlesMaterial_set_emission_sphere_radius :: MethodBind\nbindParticlesMaterial_set_emission_sphere_radius\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_sphere_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The sphere's radius if @emission_shape@ is set to @EMISSION_SHAPE_SPHERE@.\nset_emission_sphere_radius ::\n                             (ParticlesMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_emission_sphere_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParticlesMaterial_set_emission_sphere_radius\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_emission_sphere_radius\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.ParticlesMaterial.set_emission_sphere_radius\n\n{-# NOINLINE bindParticlesMaterial_set_flag #-}\n\n-- | If @true@, enables the specified flag. See @enum Flags@ for options.\nbindParticlesMaterial_set_flag :: MethodBind\nbindParticlesMaterial_set_flag\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables the specified flag. See @enum Flags@ for options.\nset_flag ::\n           (ParticlesMaterial :< cls, Object :< cls) =>\n           cls -> Int -> Bool -> IO ()\nset_flag cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_set_flag (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_flag\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.set_flag\n\n{-# NOINLINE bindParticlesMaterial_set_flatness #-}\n\n-- | Amount of @spread@ in Y/Z plane. A value of @1@ restricts particles to X/Z plane.\nbindParticlesMaterial_set_flatness :: MethodBind\nbindParticlesMaterial_set_flatness\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_flatness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of @spread@ in Y/Z plane. A value of @1@ restricts particles to X/Z plane.\nset_flatness ::\n               (ParticlesMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_flatness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_set_flatness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_flatness\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.set_flatness\n\n{-# NOINLINE bindParticlesMaterial_set_gravity #-}\n\n-- | Gravity applied to every particle.\nbindParticlesMaterial_set_gravity :: MethodBind\nbindParticlesMaterial_set_gravity\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_gravity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gravity applied to every particle.\nset_gravity ::\n              (ParticlesMaterial :< cls, Object :< cls) =>\n              cls -> Vector3 -> IO ()\nset_gravity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_set_gravity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_gravity\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.set_gravity\n\n{-# NOINLINE bindParticlesMaterial_set_lifetime_randomness #-}\n\n-- | Particle lifetime randomness ratio.\nbindParticlesMaterial_set_lifetime_randomness :: MethodBind\nbindParticlesMaterial_set_lifetime_randomness\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_lifetime_randomness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Particle lifetime randomness ratio.\nset_lifetime_randomness ::\n                          (ParticlesMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_lifetime_randomness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParticlesMaterial_set_lifetime_randomness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_lifetime_randomness\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.set_lifetime_randomness\n\n{-# NOINLINE bindParticlesMaterial_set_param #-}\n\n-- | Sets the specified @enum Parameter@.\nbindParticlesMaterial_set_param :: MethodBind\nbindParticlesMaterial_set_param\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the specified @enum Parameter@.\nset_param ::\n            (ParticlesMaterial :< cls, Object :< cls) =>\n            cls -> Int -> Float -> IO ()\nset_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_set_param (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_param\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.set_param\n\n{-# NOINLINE bindParticlesMaterial_set_param_randomness #-}\n\n-- | Sets the randomness ratio for the specified @enum Parameter@.\nbindParticlesMaterial_set_param_randomness :: MethodBind\nbindParticlesMaterial_set_param_randomness\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_param_randomness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the randomness ratio for the specified @enum Parameter@.\nset_param_randomness ::\n                       (ParticlesMaterial :< cls, Object :< cls) =>\n                       cls -> Int -> Float -> IO ()\nset_param_randomness cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_set_param_randomness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_param_randomness\"\n           '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.set_param_randomness\n\n{-# NOINLINE bindParticlesMaterial_set_param_texture #-}\n\n-- | Sets the @Texture@ for the specified @enum Parameter@.\nbindParticlesMaterial_set_param_texture :: MethodBind\nbindParticlesMaterial_set_param_texture\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_param_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Texture@ for the specified @enum Parameter@.\nset_param_texture ::\n                    (ParticlesMaterial :< cls, Object :< cls) =>\n                    cls -> Int -> Texture -> IO ()\nset_param_texture cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_set_param_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_param_texture\"\n           '[Int, Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.set_param_texture\n\n{-# NOINLINE bindParticlesMaterial_set_spread #-}\n\n-- | Each particle's initial direction range from @+spread@ to @-spread@ degrees. Applied to X/Z plane and Y/Z planes.\nbindParticlesMaterial_set_spread :: MethodBind\nbindParticlesMaterial_set_spread\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_spread\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Each particle's initial direction range from @+spread@ to @-spread@ degrees. Applied to X/Z plane and Y/Z planes.\nset_spread ::\n             (ParticlesMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_spread cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_set_spread\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_spread\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.set_spread\n\n{-# NOINLINE bindParticlesMaterial_set_trail_color_modifier #-}\n\n-- | Trail particles' color will vary along this @GradientTexture@.\nbindParticlesMaterial_set_trail_color_modifier :: MethodBind\nbindParticlesMaterial_set_trail_color_modifier\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_trail_color_modifier\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Trail particles' color will vary along this @GradientTexture@.\nset_trail_color_modifier ::\n                           (ParticlesMaterial :< cls, Object :< cls) =>\n                           cls -> GradientTexture -> IO ()\nset_trail_color_modifier cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParticlesMaterial_set_trail_color_modifier\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_trail_color_modifier\"\n           '[GradientTexture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.set_trail_color_modifier\n\n{-# NOINLINE bindParticlesMaterial_set_trail_divisor #-}\n\n-- | Emitter will emit @amount@ divided by @trail_divisor@ particles. The remaining particles will be used as trail(s).\nbindParticlesMaterial_set_trail_divisor :: MethodBind\nbindParticlesMaterial_set_trail_divisor\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_trail_divisor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Emitter will emit @amount@ divided by @trail_divisor@ particles. The remaining particles will be used as trail(s).\nset_trail_divisor ::\n                    (ParticlesMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_trail_divisor cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindParticlesMaterial_set_trail_divisor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_trail_divisor\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.set_trail_divisor\n\n{-# NOINLINE bindParticlesMaterial_set_trail_size_modifier #-}\n\n-- | Trail particles' size will vary along this @CurveTexture@.\nbindParticlesMaterial_set_trail_size_modifier :: MethodBind\nbindParticlesMaterial_set_trail_size_modifier\n  = unsafePerformIO $\n      withCString \"ParticlesMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_trail_size_modifier\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Trail particles' size will vary along this @CurveTexture@.\nset_trail_size_modifier ::\n                          (ParticlesMaterial :< cls, Object :< cls) =>\n                          cls -> CurveTexture -> IO ()\nset_trail_size_modifier cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindParticlesMaterial_set_trail_size_modifier\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ParticlesMaterial \"set_trail_size_modifier\"\n           '[CurveTexture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ParticlesMaterial.set_trail_size_modifier"
  },
  {
    "path": "src/Godot/Core/Path.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Path\n       (Godot.Core.Path.sig_curve_changed, Godot.Core.Path._curve_changed,\n        Godot.Core.Path.get_curve, Godot.Core.Path.set_curve)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\n-- | Emitted when the @curve@ changes.\nsig_curve_changed :: Godot.Internal.Dispatch.Signal Path\nsig_curve_changed = Godot.Internal.Dispatch.Signal \"curve_changed\"\n\ninstance NodeSignal Path \"curve_changed\" '[]\n\ninstance NodeProperty Path \"curve\" Curve3D 'False where\n        nodeProperty = (get_curve, wrapDroppingSetter set_curve, Nothing)\n\n{-# NOINLINE bindPath__curve_changed #-}\n\nbindPath__curve_changed :: MethodBind\nbindPath__curve_changed\n  = unsafePerformIO $\n      withCString \"Path\" $\n        \\ clsNamePtr ->\n          withCString \"_curve_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_curve_changed :: (Path :< cls, Object :< cls) => cls -> IO ()\n_curve_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPath__curve_changed (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Path \"_curve_changed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Path._curve_changed\n\n{-# NOINLINE bindPath_get_curve #-}\n\n-- | A @Curve3D@ describing the path.\nbindPath_get_curve :: MethodBind\nbindPath_get_curve\n  = unsafePerformIO $\n      withCString \"Path\" $\n        \\ clsNamePtr ->\n          withCString \"get_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A @Curve3D@ describing the path.\nget_curve :: (Path :< cls, Object :< cls) => cls -> IO Curve3D\nget_curve cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPath_get_curve (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Path \"get_curve\" '[] (IO Curve3D) where\n        nodeMethod = Godot.Core.Path.get_curve\n\n{-# NOINLINE bindPath_set_curve #-}\n\n-- | A @Curve3D@ describing the path.\nbindPath_set_curve :: MethodBind\nbindPath_set_curve\n  = unsafePerformIO $\n      withCString \"Path\" $\n        \\ clsNamePtr ->\n          withCString \"set_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A @Curve3D@ describing the path.\nset_curve ::\n            (Path :< cls, Object :< cls) => cls -> Curve3D -> IO ()\nset_curve cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPath_set_curve (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Path \"set_curve\" '[Curve3D] (IO ()) where\n        nodeMethod = Godot.Core.Path.set_curve"
  },
  {
    "path": "src/Godot/Core/Path2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Path2D\n       (Godot.Core.Path2D._curve_changed, Godot.Core.Path2D.get_curve,\n        Godot.Core.Path2D.set_curve)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\ninstance NodeProperty Path2D \"curve\" Curve2D 'False where\n        nodeProperty = (get_curve, wrapDroppingSetter set_curve, Nothing)\n\n{-# NOINLINE bindPath2D__curve_changed #-}\n\nbindPath2D__curve_changed :: MethodBind\nbindPath2D__curve_changed\n  = unsafePerformIO $\n      withCString \"Path2D\" $\n        \\ clsNamePtr ->\n          withCString \"_curve_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_curve_changed :: (Path2D :< cls, Object :< cls) => cls -> IO ()\n_curve_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPath2D__curve_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Path2D \"_curve_changed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Path2D._curve_changed\n\n{-# NOINLINE bindPath2D_get_curve #-}\n\n-- | A @Curve2D@ describing the path.\nbindPath2D_get_curve :: MethodBind\nbindPath2D_get_curve\n  = unsafePerformIO $\n      withCString \"Path2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A @Curve2D@ describing the path.\nget_curve :: (Path2D :< cls, Object :< cls) => cls -> IO Curve2D\nget_curve cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPath2D_get_curve (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Path2D \"get_curve\" '[] (IO Curve2D) where\n        nodeMethod = Godot.Core.Path2D.get_curve\n\n{-# NOINLINE bindPath2D_set_curve #-}\n\n-- | A @Curve2D@ describing the path.\nbindPath2D_set_curve :: MethodBind\nbindPath2D_set_curve\n  = unsafePerformIO $\n      withCString \"Path2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A @Curve2D@ describing the path.\nset_curve ::\n            (Path2D :< cls, Object :< cls) => cls -> Curve2D -> IO ()\nset_curve cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPath2D_set_curve (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Path2D \"set_curve\" '[Curve2D] (IO ()) where\n        nodeMethod = Godot.Core.Path2D.set_curve"
  },
  {
    "path": "src/Godot/Core/PathFollow.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PathFollow\n       (Godot.Core.PathFollow._ROTATION_ORIENTED,\n        Godot.Core.PathFollow._ROTATION_XY,\n        Godot.Core.PathFollow._ROTATION_Y,\n        Godot.Core.PathFollow._ROTATION_XYZ,\n        Godot.Core.PathFollow._ROTATION_NONE,\n        Godot.Core.PathFollow.get_cubic_interpolation,\n        Godot.Core.PathFollow.get_h_offset,\n        Godot.Core.PathFollow.get_offset,\n        Godot.Core.PathFollow.get_rotation_mode,\n        Godot.Core.PathFollow.get_unit_offset,\n        Godot.Core.PathFollow.get_v_offset, Godot.Core.PathFollow.has_loop,\n        Godot.Core.PathFollow.set_cubic_interpolation,\n        Godot.Core.PathFollow.set_h_offset, Godot.Core.PathFollow.set_loop,\n        Godot.Core.PathFollow.set_offset,\n        Godot.Core.PathFollow.set_rotation_mode,\n        Godot.Core.PathFollow.set_unit_offset,\n        Godot.Core.PathFollow.set_v_offset)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\n_ROTATION_ORIENTED :: Int\n_ROTATION_ORIENTED = 4\n\n_ROTATION_XY :: Int\n_ROTATION_XY = 2\n\n_ROTATION_Y :: Int\n_ROTATION_Y = 1\n\n_ROTATION_XYZ :: Int\n_ROTATION_XYZ = 3\n\n_ROTATION_NONE :: Int\n_ROTATION_NONE = 0\n\ninstance NodeProperty PathFollow \"cubic_interp\" Bool 'False where\n        nodeProperty\n          = (get_cubic_interpolation,\n             wrapDroppingSetter set_cubic_interpolation, Nothing)\n\ninstance NodeProperty PathFollow \"h_offset\" Float 'False where\n        nodeProperty\n          = (get_h_offset, wrapDroppingSetter set_h_offset, Nothing)\n\ninstance NodeProperty PathFollow \"loop\" Bool 'False where\n        nodeProperty = (has_loop, wrapDroppingSetter set_loop, Nothing)\n\ninstance NodeProperty PathFollow \"offset\" Float 'False where\n        nodeProperty = (get_offset, wrapDroppingSetter set_offset, Nothing)\n\ninstance NodeProperty PathFollow \"rotation_mode\" Int 'False where\n        nodeProperty\n          = (get_rotation_mode, wrapDroppingSetter set_rotation_mode,\n             Nothing)\n\ninstance NodeProperty PathFollow \"unit_offset\" Float 'False where\n        nodeProperty\n          = (get_unit_offset, wrapDroppingSetter set_unit_offset, Nothing)\n\ninstance NodeProperty PathFollow \"v_offset\" Float 'False where\n        nodeProperty\n          = (get_v_offset, wrapDroppingSetter set_v_offset, Nothing)\n\n{-# NOINLINE bindPathFollow_get_cubic_interpolation #-}\n\n-- | If @true@, the position between two cached points is interpolated cubically, and linearly otherwise.\n--   \t\t\tThe points along the @Curve3D@ of the @Path@ are precomputed before use, for faster calculations. The point at the requested offset is then calculated interpolating between two adjacent cached points. This may present a problem if the curve makes sharp turns, as the cached points may not follow the curve closely enough.\n--   \t\t\tThere are two answers to this problem: either increase the number of cached points and increase memory consumption, or make a cubic interpolation between two points at the cost of (slightly) slower calculations.\nbindPathFollow_get_cubic_interpolation :: MethodBind\nbindPathFollow_get_cubic_interpolation\n  = unsafePerformIO $\n      withCString \"PathFollow\" $\n        \\ clsNamePtr ->\n          withCString \"get_cubic_interpolation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the position between two cached points is interpolated cubically, and linearly otherwise.\n--   \t\t\tThe points along the @Curve3D@ of the @Path@ are precomputed before use, for faster calculations. The point at the requested offset is then calculated interpolating between two adjacent cached points. This may present a problem if the curve makes sharp turns, as the cached points may not follow the curve closely enough.\n--   \t\t\tThere are two answers to this problem: either increase the number of cached points and increase memory consumption, or make a cubic interpolation between two points at the cost of (slightly) slower calculations.\nget_cubic_interpolation ::\n                          (PathFollow :< cls, Object :< cls) => cls -> IO Bool\nget_cubic_interpolation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow_get_cubic_interpolation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow \"get_cubic_interpolation\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PathFollow.get_cubic_interpolation\n\n{-# NOINLINE bindPathFollow_get_h_offset #-}\n\n-- | The node's offset along the curve.\nbindPathFollow_get_h_offset :: MethodBind\nbindPathFollow_get_h_offset\n  = unsafePerformIO $\n      withCString \"PathFollow\" $\n        \\ clsNamePtr ->\n          withCString \"get_h_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's offset along the curve.\nget_h_offset ::\n               (PathFollow :< cls, Object :< cls) => cls -> IO Float\nget_h_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow_get_h_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow \"get_h_offset\" '[] (IO Float) where\n        nodeMethod = Godot.Core.PathFollow.get_h_offset\n\n{-# NOINLINE bindPathFollow_get_offset #-}\n\n-- | The distance from the first vertex, measured in 3D units along the path. This sets this node's position to a point within the path.\nbindPathFollow_get_offset :: MethodBind\nbindPathFollow_get_offset\n  = unsafePerformIO $\n      withCString \"PathFollow\" $\n        \\ clsNamePtr ->\n          withCString \"get_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance from the first vertex, measured in 3D units along the path. This sets this node's position to a point within the path.\nget_offset :: (PathFollow :< cls, Object :< cls) => cls -> IO Float\nget_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow_get_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow \"get_offset\" '[] (IO Float) where\n        nodeMethod = Godot.Core.PathFollow.get_offset\n\n{-# NOINLINE bindPathFollow_get_rotation_mode #-}\n\n-- | Allows or forbids rotation on one or more axes, depending on the @enum RotationMode@ constants being used.\nbindPathFollow_get_rotation_mode :: MethodBind\nbindPathFollow_get_rotation_mode\n  = unsafePerformIO $\n      withCString \"PathFollow\" $\n        \\ clsNamePtr ->\n          withCString \"get_rotation_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Allows or forbids rotation on one or more axes, depending on the @enum RotationMode@ constants being used.\nget_rotation_mode ::\n                    (PathFollow :< cls, Object :< cls) => cls -> IO Int\nget_rotation_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow_get_rotation_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow \"get_rotation_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.PathFollow.get_rotation_mode\n\n{-# NOINLINE bindPathFollow_get_unit_offset #-}\n\n-- | The distance from the first vertex, considering 0.0 as the first vertex and 1.0 as the last. This is just another way of expressing the offset within the path, as the offset supplied is multiplied internally by the path's length.\nbindPathFollow_get_unit_offset :: MethodBind\nbindPathFollow_get_unit_offset\n  = unsafePerformIO $\n      withCString \"PathFollow\" $\n        \\ clsNamePtr ->\n          withCString \"get_unit_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance from the first vertex, considering 0.0 as the first vertex and 1.0 as the last. This is just another way of expressing the offset within the path, as the offset supplied is multiplied internally by the path's length.\nget_unit_offset ::\n                  (PathFollow :< cls, Object :< cls) => cls -> IO Float\nget_unit_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow_get_unit_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow \"get_unit_offset\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.PathFollow.get_unit_offset\n\n{-# NOINLINE bindPathFollow_get_v_offset #-}\n\n-- | The node's offset perpendicular to the curve.\nbindPathFollow_get_v_offset :: MethodBind\nbindPathFollow_get_v_offset\n  = unsafePerformIO $\n      withCString \"PathFollow\" $\n        \\ clsNamePtr ->\n          withCString \"get_v_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's offset perpendicular to the curve.\nget_v_offset ::\n               (PathFollow :< cls, Object :< cls) => cls -> IO Float\nget_v_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow_get_v_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow \"get_v_offset\" '[] (IO Float) where\n        nodeMethod = Godot.Core.PathFollow.get_v_offset\n\n{-# NOINLINE bindPathFollow_has_loop #-}\n\n-- | If @true@, any offset outside the path's length will wrap around, instead of stopping at the ends. Use it for cyclic paths.\nbindPathFollow_has_loop :: MethodBind\nbindPathFollow_has_loop\n  = unsafePerformIO $\n      withCString \"PathFollow\" $\n        \\ clsNamePtr ->\n          withCString \"has_loop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, any offset outside the path's length will wrap around, instead of stopping at the ends. Use it for cyclic paths.\nhas_loop :: (PathFollow :< cls, Object :< cls) => cls -> IO Bool\nhas_loop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow_has_loop (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow \"has_loop\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.PathFollow.has_loop\n\n{-# NOINLINE bindPathFollow_set_cubic_interpolation #-}\n\n-- | If @true@, the position between two cached points is interpolated cubically, and linearly otherwise.\n--   \t\t\tThe points along the @Curve3D@ of the @Path@ are precomputed before use, for faster calculations. The point at the requested offset is then calculated interpolating between two adjacent cached points. This may present a problem if the curve makes sharp turns, as the cached points may not follow the curve closely enough.\n--   \t\t\tThere are two answers to this problem: either increase the number of cached points and increase memory consumption, or make a cubic interpolation between two points at the cost of (slightly) slower calculations.\nbindPathFollow_set_cubic_interpolation :: MethodBind\nbindPathFollow_set_cubic_interpolation\n  = unsafePerformIO $\n      withCString \"PathFollow\" $\n        \\ clsNamePtr ->\n          withCString \"set_cubic_interpolation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the position between two cached points is interpolated cubically, and linearly otherwise.\n--   \t\t\tThe points along the @Curve3D@ of the @Path@ are precomputed before use, for faster calculations. The point at the requested offset is then calculated interpolating between two adjacent cached points. This may present a problem if the curve makes sharp turns, as the cached points may not follow the curve closely enough.\n--   \t\t\tThere are two answers to this problem: either increase the number of cached points and increase memory consumption, or make a cubic interpolation between two points at the cost of (slightly) slower calculations.\nset_cubic_interpolation ::\n                          (PathFollow :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_cubic_interpolation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow_set_cubic_interpolation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow \"set_cubic_interpolation\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PathFollow.set_cubic_interpolation\n\n{-# NOINLINE bindPathFollow_set_h_offset #-}\n\n-- | The node's offset along the curve.\nbindPathFollow_set_h_offset :: MethodBind\nbindPathFollow_set_h_offset\n  = unsafePerformIO $\n      withCString \"PathFollow\" $\n        \\ clsNamePtr ->\n          withCString \"set_h_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's offset along the curve.\nset_h_offset ::\n               (PathFollow :< cls, Object :< cls) => cls -> Float -> IO ()\nset_h_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow_set_h_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow \"set_h_offset\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.PathFollow.set_h_offset\n\n{-# NOINLINE bindPathFollow_set_loop #-}\n\n-- | If @true@, any offset outside the path's length will wrap around, instead of stopping at the ends. Use it for cyclic paths.\nbindPathFollow_set_loop :: MethodBind\nbindPathFollow_set_loop\n  = unsafePerformIO $\n      withCString \"PathFollow\" $\n        \\ clsNamePtr ->\n          withCString \"set_loop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, any offset outside the path's length will wrap around, instead of stopping at the ends. Use it for cyclic paths.\nset_loop ::\n           (PathFollow :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_loop cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow_set_loop (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow \"set_loop\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.PathFollow.set_loop\n\n{-# NOINLINE bindPathFollow_set_offset #-}\n\n-- | The distance from the first vertex, measured in 3D units along the path. This sets this node's position to a point within the path.\nbindPathFollow_set_offset :: MethodBind\nbindPathFollow_set_offset\n  = unsafePerformIO $\n      withCString \"PathFollow\" $\n        \\ clsNamePtr ->\n          withCString \"set_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance from the first vertex, measured in 3D units along the path. This sets this node's position to a point within the path.\nset_offset ::\n             (PathFollow :< cls, Object :< cls) => cls -> Float -> IO ()\nset_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow_set_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow \"set_offset\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.PathFollow.set_offset\n\n{-# NOINLINE bindPathFollow_set_rotation_mode #-}\n\n-- | Allows or forbids rotation on one or more axes, depending on the @enum RotationMode@ constants being used.\nbindPathFollow_set_rotation_mode :: MethodBind\nbindPathFollow_set_rotation_mode\n  = unsafePerformIO $\n      withCString \"PathFollow\" $\n        \\ clsNamePtr ->\n          withCString \"set_rotation_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Allows or forbids rotation on one or more axes, depending on the @enum RotationMode@ constants being used.\nset_rotation_mode ::\n                    (PathFollow :< cls, Object :< cls) => cls -> Int -> IO ()\nset_rotation_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow_set_rotation_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow \"set_rotation_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.PathFollow.set_rotation_mode\n\n{-# NOINLINE bindPathFollow_set_unit_offset #-}\n\n-- | The distance from the first vertex, considering 0.0 as the first vertex and 1.0 as the last. This is just another way of expressing the offset within the path, as the offset supplied is multiplied internally by the path's length.\nbindPathFollow_set_unit_offset :: MethodBind\nbindPathFollow_set_unit_offset\n  = unsafePerformIO $\n      withCString \"PathFollow\" $\n        \\ clsNamePtr ->\n          withCString \"set_unit_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance from the first vertex, considering 0.0 as the first vertex and 1.0 as the last. This is just another way of expressing the offset within the path, as the offset supplied is multiplied internally by the path's length.\nset_unit_offset ::\n                  (PathFollow :< cls, Object :< cls) => cls -> Float -> IO ()\nset_unit_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow_set_unit_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow \"set_unit_offset\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.PathFollow.set_unit_offset\n\n{-# NOINLINE bindPathFollow_set_v_offset #-}\n\n-- | The node's offset perpendicular to the curve.\nbindPathFollow_set_v_offset :: MethodBind\nbindPathFollow_set_v_offset\n  = unsafePerformIO $\n      withCString \"PathFollow\" $\n        \\ clsNamePtr ->\n          withCString \"set_v_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's offset perpendicular to the curve.\nset_v_offset ::\n               (PathFollow :< cls, Object :< cls) => cls -> Float -> IO ()\nset_v_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow_set_v_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow \"set_v_offset\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.PathFollow.set_v_offset"
  },
  {
    "path": "src/Godot/Core/PathFollow2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PathFollow2D\n       (Godot.Core.PathFollow2D.get_cubic_interpolation,\n        Godot.Core.PathFollow2D.get_h_offset,\n        Godot.Core.PathFollow2D.get_lookahead,\n        Godot.Core.PathFollow2D.get_offset,\n        Godot.Core.PathFollow2D.get_unit_offset,\n        Godot.Core.PathFollow2D.get_v_offset,\n        Godot.Core.PathFollow2D.has_loop,\n        Godot.Core.PathFollow2D.is_rotating,\n        Godot.Core.PathFollow2D.set_cubic_interpolation,\n        Godot.Core.PathFollow2D.set_h_offset,\n        Godot.Core.PathFollow2D.set_lookahead,\n        Godot.Core.PathFollow2D.set_loop,\n        Godot.Core.PathFollow2D.set_offset,\n        Godot.Core.PathFollow2D.set_rotate,\n        Godot.Core.PathFollow2D.set_unit_offset,\n        Godot.Core.PathFollow2D.set_v_offset)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\ninstance NodeProperty PathFollow2D \"cubic_interp\" Bool 'False where\n        nodeProperty\n          = (get_cubic_interpolation,\n             wrapDroppingSetter set_cubic_interpolation, Nothing)\n\ninstance NodeProperty PathFollow2D \"h_offset\" Float 'False where\n        nodeProperty\n          = (get_h_offset, wrapDroppingSetter set_h_offset, Nothing)\n\ninstance NodeProperty PathFollow2D \"lookahead\" Float 'False where\n        nodeProperty\n          = (get_lookahead, wrapDroppingSetter set_lookahead, Nothing)\n\ninstance NodeProperty PathFollow2D \"loop\" Bool 'False where\n        nodeProperty = (has_loop, wrapDroppingSetter set_loop, Nothing)\n\ninstance NodeProperty PathFollow2D \"offset\" Float 'False where\n        nodeProperty = (get_offset, wrapDroppingSetter set_offset, Nothing)\n\ninstance NodeProperty PathFollow2D \"rotate\" Bool 'False where\n        nodeProperty\n          = (is_rotating, wrapDroppingSetter set_rotate, Nothing)\n\ninstance NodeProperty PathFollow2D \"unit_offset\" Float 'False where\n        nodeProperty\n          = (get_unit_offset, wrapDroppingSetter set_unit_offset, Nothing)\n\ninstance NodeProperty PathFollow2D \"v_offset\" Float 'False where\n        nodeProperty\n          = (get_v_offset, wrapDroppingSetter set_v_offset, Nothing)\n\n{-# NOINLINE bindPathFollow2D_get_cubic_interpolation #-}\n\n-- | If @true@, the position between two cached points is interpolated cubically, and linearly otherwise.\n--   \t\t\tThe points along the @Curve2D@ of the @Path2D@ are precomputed before use, for faster calculations. The point at the requested offset is then calculated interpolating between two adjacent cached points. This may present a problem if the curve makes sharp turns, as the cached points may not follow the curve closely enough.\n--   \t\t\tThere are two answers to this problem: either increase the number of cached points and increase memory consumption, or make a cubic interpolation between two points at the cost of (slightly) slower calculations.\nbindPathFollow2D_get_cubic_interpolation :: MethodBind\nbindPathFollow2D_get_cubic_interpolation\n  = unsafePerformIO $\n      withCString \"PathFollow2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_cubic_interpolation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the position between two cached points is interpolated cubically, and linearly otherwise.\n--   \t\t\tThe points along the @Curve2D@ of the @Path2D@ are precomputed before use, for faster calculations. The point at the requested offset is then calculated interpolating between two adjacent cached points. This may present a problem if the curve makes sharp turns, as the cached points may not follow the curve closely enough.\n--   \t\t\tThere are two answers to this problem: either increase the number of cached points and increase memory consumption, or make a cubic interpolation between two points at the cost of (slightly) slower calculations.\nget_cubic_interpolation ::\n                          (PathFollow2D :< cls, Object :< cls) => cls -> IO Bool\nget_cubic_interpolation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow2D_get_cubic_interpolation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow2D \"get_cubic_interpolation\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PathFollow2D.get_cubic_interpolation\n\n{-# NOINLINE bindPathFollow2D_get_h_offset #-}\n\n-- | The node's offset along the curve.\nbindPathFollow2D_get_h_offset :: MethodBind\nbindPathFollow2D_get_h_offset\n  = unsafePerformIO $\n      withCString \"PathFollow2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_h_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's offset along the curve.\nget_h_offset ::\n               (PathFollow2D :< cls, Object :< cls) => cls -> IO Float\nget_h_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow2D_get_h_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow2D \"get_h_offset\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.PathFollow2D.get_h_offset\n\n{-# NOINLINE bindPathFollow2D_get_lookahead #-}\n\n-- | How far to look ahead of the curve to calculate the tangent if the node is rotating. E.g. shorter lookaheads will lead to faster rotations.\nbindPathFollow2D_get_lookahead :: MethodBind\nbindPathFollow2D_get_lookahead\n  = unsafePerformIO $\n      withCString \"PathFollow2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_lookahead\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How far to look ahead of the curve to calculate the tangent if the node is rotating. E.g. shorter lookaheads will lead to faster rotations.\nget_lookahead ::\n                (PathFollow2D :< cls, Object :< cls) => cls -> IO Float\nget_lookahead cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow2D_get_lookahead (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow2D \"get_lookahead\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.PathFollow2D.get_lookahead\n\n{-# NOINLINE bindPathFollow2D_get_offset #-}\n\n-- | The distance along the path in pixels.\nbindPathFollow2D_get_offset :: MethodBind\nbindPathFollow2D_get_offset\n  = unsafePerformIO $\n      withCString \"PathFollow2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance along the path in pixels.\nget_offset ::\n             (PathFollow2D :< cls, Object :< cls) => cls -> IO Float\nget_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow2D_get_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow2D \"get_offset\" '[] (IO Float) where\n        nodeMethod = Godot.Core.PathFollow2D.get_offset\n\n{-# NOINLINE bindPathFollow2D_get_unit_offset #-}\n\n-- | The distance along the path as a number in the range 0.0 (for the first vertex) to 1.0 (for the last). This is just another way of expressing the offset within the path, as the offset supplied is multiplied internally by the path's length.\nbindPathFollow2D_get_unit_offset :: MethodBind\nbindPathFollow2D_get_unit_offset\n  = unsafePerformIO $\n      withCString \"PathFollow2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_unit_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance along the path as a number in the range 0.0 (for the first vertex) to 1.0 (for the last). This is just another way of expressing the offset within the path, as the offset supplied is multiplied internally by the path's length.\nget_unit_offset ::\n                  (PathFollow2D :< cls, Object :< cls) => cls -> IO Float\nget_unit_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow2D_get_unit_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow2D \"get_unit_offset\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.PathFollow2D.get_unit_offset\n\n{-# NOINLINE bindPathFollow2D_get_v_offset #-}\n\n-- | The node's offset perpendicular to the curve.\nbindPathFollow2D_get_v_offset :: MethodBind\nbindPathFollow2D_get_v_offset\n  = unsafePerformIO $\n      withCString \"PathFollow2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_v_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's offset perpendicular to the curve.\nget_v_offset ::\n               (PathFollow2D :< cls, Object :< cls) => cls -> IO Float\nget_v_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow2D_get_v_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow2D \"get_v_offset\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.PathFollow2D.get_v_offset\n\n{-# NOINLINE bindPathFollow2D_has_loop #-}\n\n-- | If @true@, any offset outside the path's length will wrap around, instead of stopping at the ends. Use it for cyclic paths.\nbindPathFollow2D_has_loop :: MethodBind\nbindPathFollow2D_has_loop\n  = unsafePerformIO $\n      withCString \"PathFollow2D\" $\n        \\ clsNamePtr ->\n          withCString \"has_loop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, any offset outside the path's length will wrap around, instead of stopping at the ends. Use it for cyclic paths.\nhas_loop :: (PathFollow2D :< cls, Object :< cls) => cls -> IO Bool\nhas_loop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow2D_has_loop (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow2D \"has_loop\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.PathFollow2D.has_loop\n\n{-# NOINLINE bindPathFollow2D_is_rotating #-}\n\n-- | If @true@, this node rotates to follow the path, making its descendants rotate.\nbindPathFollow2D_is_rotating :: MethodBind\nbindPathFollow2D_is_rotating\n  = unsafePerformIO $\n      withCString \"PathFollow2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_rotating\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this node rotates to follow the path, making its descendants rotate.\nis_rotating ::\n              (PathFollow2D :< cls, Object :< cls) => cls -> IO Bool\nis_rotating cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow2D_is_rotating (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow2D \"is_rotating\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.PathFollow2D.is_rotating\n\n{-# NOINLINE bindPathFollow2D_set_cubic_interpolation #-}\n\n-- | If @true@, the position between two cached points is interpolated cubically, and linearly otherwise.\n--   \t\t\tThe points along the @Curve2D@ of the @Path2D@ are precomputed before use, for faster calculations. The point at the requested offset is then calculated interpolating between two adjacent cached points. This may present a problem if the curve makes sharp turns, as the cached points may not follow the curve closely enough.\n--   \t\t\tThere are two answers to this problem: either increase the number of cached points and increase memory consumption, or make a cubic interpolation between two points at the cost of (slightly) slower calculations.\nbindPathFollow2D_set_cubic_interpolation :: MethodBind\nbindPathFollow2D_set_cubic_interpolation\n  = unsafePerformIO $\n      withCString \"PathFollow2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_cubic_interpolation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the position between two cached points is interpolated cubically, and linearly otherwise.\n--   \t\t\tThe points along the @Curve2D@ of the @Path2D@ are precomputed before use, for faster calculations. The point at the requested offset is then calculated interpolating between two adjacent cached points. This may present a problem if the curve makes sharp turns, as the cached points may not follow the curve closely enough.\n--   \t\t\tThere are two answers to this problem: either increase the number of cached points and increase memory consumption, or make a cubic interpolation between two points at the cost of (slightly) slower calculations.\nset_cubic_interpolation ::\n                          (PathFollow2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_cubic_interpolation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow2D_set_cubic_interpolation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow2D \"set_cubic_interpolation\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PathFollow2D.set_cubic_interpolation\n\n{-# NOINLINE bindPathFollow2D_set_h_offset #-}\n\n-- | The node's offset along the curve.\nbindPathFollow2D_set_h_offset :: MethodBind\nbindPathFollow2D_set_h_offset\n  = unsafePerformIO $\n      withCString \"PathFollow2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_h_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's offset along the curve.\nset_h_offset ::\n               (PathFollow2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_h_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow2D_set_h_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow2D \"set_h_offset\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.PathFollow2D.set_h_offset\n\n{-# NOINLINE bindPathFollow2D_set_lookahead #-}\n\n-- | How far to look ahead of the curve to calculate the tangent if the node is rotating. E.g. shorter lookaheads will lead to faster rotations.\nbindPathFollow2D_set_lookahead :: MethodBind\nbindPathFollow2D_set_lookahead\n  = unsafePerformIO $\n      withCString \"PathFollow2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_lookahead\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How far to look ahead of the curve to calculate the tangent if the node is rotating. E.g. shorter lookaheads will lead to faster rotations.\nset_lookahead ::\n                (PathFollow2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_lookahead cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow2D_set_lookahead (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow2D \"set_lookahead\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.PathFollow2D.set_lookahead\n\n{-# NOINLINE bindPathFollow2D_set_loop #-}\n\n-- | If @true@, any offset outside the path's length will wrap around, instead of stopping at the ends. Use it for cyclic paths.\nbindPathFollow2D_set_loop :: MethodBind\nbindPathFollow2D_set_loop\n  = unsafePerformIO $\n      withCString \"PathFollow2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_loop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, any offset outside the path's length will wrap around, instead of stopping at the ends. Use it for cyclic paths.\nset_loop ::\n           (PathFollow2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_loop cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow2D_set_loop (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow2D \"set_loop\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.PathFollow2D.set_loop\n\n{-# NOINLINE bindPathFollow2D_set_offset #-}\n\n-- | The distance along the path in pixels.\nbindPathFollow2D_set_offset :: MethodBind\nbindPathFollow2D_set_offset\n  = unsafePerformIO $\n      withCString \"PathFollow2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance along the path in pixels.\nset_offset ::\n             (PathFollow2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow2D_set_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow2D \"set_offset\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.PathFollow2D.set_offset\n\n{-# NOINLINE bindPathFollow2D_set_rotate #-}\n\n-- | If @true@, this node rotates to follow the path, making its descendants rotate.\nbindPathFollow2D_set_rotate :: MethodBind\nbindPathFollow2D_set_rotate\n  = unsafePerformIO $\n      withCString \"PathFollow2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_rotate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this node rotates to follow the path, making its descendants rotate.\nset_rotate ::\n             (PathFollow2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_rotate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow2D_set_rotate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow2D \"set_rotate\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.PathFollow2D.set_rotate\n\n{-# NOINLINE bindPathFollow2D_set_unit_offset #-}\n\n-- | The distance along the path as a number in the range 0.0 (for the first vertex) to 1.0 (for the last). This is just another way of expressing the offset within the path, as the offset supplied is multiplied internally by the path's length.\nbindPathFollow2D_set_unit_offset :: MethodBind\nbindPathFollow2D_set_unit_offset\n  = unsafePerformIO $\n      withCString \"PathFollow2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_unit_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The distance along the path as a number in the range 0.0 (for the first vertex) to 1.0 (for the last). This is just another way of expressing the offset within the path, as the offset supplied is multiplied internally by the path's length.\nset_unit_offset ::\n                  (PathFollow2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_unit_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow2D_set_unit_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow2D \"set_unit_offset\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.PathFollow2D.set_unit_offset\n\n{-# NOINLINE bindPathFollow2D_set_v_offset #-}\n\n-- | The node's offset perpendicular to the curve.\nbindPathFollow2D_set_v_offset :: MethodBind\nbindPathFollow2D_set_v_offset\n  = unsafePerformIO $\n      withCString \"PathFollow2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_v_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's offset perpendicular to the curve.\nset_v_offset ::\n               (PathFollow2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_v_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPathFollow2D_set_v_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PathFollow2D \"set_v_offset\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.PathFollow2D.set_v_offset"
  },
  {
    "path": "src/Godot/Core/Performance.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Performance\n       (Godot.Core.Performance._PHYSICS_2D_ISLAND_COUNT,\n        Godot.Core.Performance._OBJECT_RESOURCE_COUNT,\n        Godot.Core.Performance._RENDER_VERTEX_MEM_USED,\n        Godot.Core.Performance._PHYSICS_3D_ISLAND_COUNT,\n        Godot.Core.Performance._PHYSICS_2D_COLLISION_PAIRS,\n        Godot.Core.Performance._MEMORY_STATIC_MAX,\n        Godot.Core.Performance._TIME_PHYSICS_PROCESS,\n        Godot.Core.Performance._RENDER_TEXTURE_MEM_USED,\n        Godot.Core.Performance._MEMORY_DYNAMIC_MAX,\n        Godot.Core.Performance._OBJECT_ORPHAN_NODE_COUNT,\n        Godot.Core.Performance._MEMORY_DYNAMIC,\n        Godot.Core.Performance._RENDER_MATERIAL_CHANGES_IN_FRAME,\n        Godot.Core.Performance._OBJECT_NODE_COUNT,\n        Godot.Core.Performance._AUDIO_OUTPUT_LATENCY,\n        Godot.Core.Performance._RENDER_OBJECTS_IN_FRAME,\n        Godot.Core.Performance._RENDER_DRAW_CALLS_IN_FRAME,\n        Godot.Core.Performance._TIME_PROCESS,\n        Godot.Core.Performance._MEMORY_MESSAGE_BUFFER_MAX,\n        Godot.Core.Performance._PHYSICS_3D_COLLISION_PAIRS,\n        Godot.Core.Performance._RENDER_SHADER_CHANGES_IN_FRAME,\n        Godot.Core.Performance._MONITOR_MAX,\n        Godot.Core.Performance._TIME_FPS,\n        Godot.Core.Performance._PHYSICS_2D_ACTIVE_OBJECTS,\n        Godot.Core.Performance._RENDER_SURFACE_CHANGES_IN_FRAME,\n        Godot.Core.Performance._RENDER_VIDEO_MEM_USED,\n        Godot.Core.Performance._MEMORY_STATIC,\n        Godot.Core.Performance._RENDER_VERTICES_IN_FRAME,\n        Godot.Core.Performance._OBJECT_COUNT,\n        Godot.Core.Performance._PHYSICS_3D_ACTIVE_OBJECTS,\n        Godot.Core.Performance._RENDER_USAGE_VIDEO_MEM_TOTAL,\n        Godot.Core.Performance.get_monitor)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n_PHYSICS_2D_ISLAND_COUNT :: Int\n_PHYSICS_2D_ISLAND_COUNT = 24\n\n_OBJECT_RESOURCE_COUNT :: Int\n_OBJECT_RESOURCE_COUNT = 9\n\n_RENDER_VERTEX_MEM_USED :: Int\n_RENDER_VERTEX_MEM_USED = 20\n\n_PHYSICS_3D_ISLAND_COUNT :: Int\n_PHYSICS_3D_ISLAND_COUNT = 27\n\n_PHYSICS_2D_COLLISION_PAIRS :: Int\n_PHYSICS_2D_COLLISION_PAIRS = 23\n\n_MEMORY_STATIC_MAX :: Int\n_MEMORY_STATIC_MAX = 5\n\n_TIME_PHYSICS_PROCESS :: Int\n_TIME_PHYSICS_PROCESS = 2\n\n_RENDER_TEXTURE_MEM_USED :: Int\n_RENDER_TEXTURE_MEM_USED = 19\n\n_MEMORY_DYNAMIC_MAX :: Int\n_MEMORY_DYNAMIC_MAX = 6\n\n_OBJECT_ORPHAN_NODE_COUNT :: Int\n_OBJECT_ORPHAN_NODE_COUNT = 11\n\n_MEMORY_DYNAMIC :: Int\n_MEMORY_DYNAMIC = 4\n\n_RENDER_MATERIAL_CHANGES_IN_FRAME :: Int\n_RENDER_MATERIAL_CHANGES_IN_FRAME = 14\n\n_OBJECT_NODE_COUNT :: Int\n_OBJECT_NODE_COUNT = 10\n\n_AUDIO_OUTPUT_LATENCY :: Int\n_AUDIO_OUTPUT_LATENCY = 28\n\n_RENDER_OBJECTS_IN_FRAME :: Int\n_RENDER_OBJECTS_IN_FRAME = 12\n\n_RENDER_DRAW_CALLS_IN_FRAME :: Int\n_RENDER_DRAW_CALLS_IN_FRAME = 17\n\n_TIME_PROCESS :: Int\n_TIME_PROCESS = 1\n\n_MEMORY_MESSAGE_BUFFER_MAX :: Int\n_MEMORY_MESSAGE_BUFFER_MAX = 7\n\n_PHYSICS_3D_COLLISION_PAIRS :: Int\n_PHYSICS_3D_COLLISION_PAIRS = 26\n\n_RENDER_SHADER_CHANGES_IN_FRAME :: Int\n_RENDER_SHADER_CHANGES_IN_FRAME = 15\n\n_MONITOR_MAX :: Int\n_MONITOR_MAX = 29\n\n_TIME_FPS :: Int\n_TIME_FPS = 0\n\n_PHYSICS_2D_ACTIVE_OBJECTS :: Int\n_PHYSICS_2D_ACTIVE_OBJECTS = 22\n\n_RENDER_SURFACE_CHANGES_IN_FRAME :: Int\n_RENDER_SURFACE_CHANGES_IN_FRAME = 16\n\n_RENDER_VIDEO_MEM_USED :: Int\n_RENDER_VIDEO_MEM_USED = 18\n\n_MEMORY_STATIC :: Int\n_MEMORY_STATIC = 3\n\n_RENDER_VERTICES_IN_FRAME :: Int\n_RENDER_VERTICES_IN_FRAME = 13\n\n_OBJECT_COUNT :: Int\n_OBJECT_COUNT = 8\n\n_PHYSICS_3D_ACTIVE_OBJECTS :: Int\n_PHYSICS_3D_ACTIVE_OBJECTS = 25\n\n_RENDER_USAGE_VIDEO_MEM_TOTAL :: Int\n_RENDER_USAGE_VIDEO_MEM_TOTAL = 21\n\n{-# NOINLINE bindPerformance_get_monitor #-}\n\n-- | Returns the value of one of the available monitors. You should provide one of the @enum Monitor@ constants as the argument, like this:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tprint(Performance.get_monitor(Performance.TIME_FPS)) # Prints the FPS to the console\n--   \t\t\t\t\n--   @\nbindPerformance_get_monitor :: MethodBind\nbindPerformance_get_monitor\n  = unsafePerformIO $\n      withCString \"Performance\" $\n        \\ clsNamePtr ->\n          withCString \"get_monitor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of one of the available monitors. You should provide one of the @enum Monitor@ constants as the argument, like this:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tprint(Performance.get_monitor(Performance.TIME_FPS)) # Prints the FPS to the console\n--   \t\t\t\t\n--   @\nget_monitor ::\n              (Performance :< cls, Object :< cls) => cls -> Int -> IO Float\nget_monitor cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPerformance_get_monitor (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Performance \"get_monitor\" '[Int] (IO Float)\n         where\n        nodeMethod = Godot.Core.Performance.get_monitor"
  },
  {
    "path": "src/Godot/Core/PhysicalBone.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PhysicalBone\n       (Godot.Core.PhysicalBone._JOINT_TYPE_6DOF,\n        Godot.Core.PhysicalBone._JOINT_TYPE_PIN,\n        Godot.Core.PhysicalBone._JOINT_TYPE_CONE,\n        Godot.Core.PhysicalBone._JOINT_TYPE_NONE,\n        Godot.Core.PhysicalBone._JOINT_TYPE_SLIDER,\n        Godot.Core.PhysicalBone._JOINT_TYPE_HINGE,\n        Godot.Core.PhysicalBone._direct_state_changed,\n        Godot.Core.PhysicalBone.apply_central_impulse,\n        Godot.Core.PhysicalBone.apply_impulse,\n        Godot.Core.PhysicalBone.get_body_offset,\n        Godot.Core.PhysicalBone.get_bone_id,\n        Godot.Core.PhysicalBone.get_bounce,\n        Godot.Core.PhysicalBone.get_friction,\n        Godot.Core.PhysicalBone.get_gravity_scale,\n        Godot.Core.PhysicalBone.get_joint_offset,\n        Godot.Core.PhysicalBone.get_joint_type,\n        Godot.Core.PhysicalBone.get_mass,\n        Godot.Core.PhysicalBone.get_simulate_physics,\n        Godot.Core.PhysicalBone.get_weight,\n        Godot.Core.PhysicalBone.is_simulating_physics,\n        Godot.Core.PhysicalBone.is_static_body,\n        Godot.Core.PhysicalBone.set_body_offset,\n        Godot.Core.PhysicalBone.set_bounce,\n        Godot.Core.PhysicalBone.set_friction,\n        Godot.Core.PhysicalBone.set_gravity_scale,\n        Godot.Core.PhysicalBone.set_joint_offset,\n        Godot.Core.PhysicalBone.set_joint_type,\n        Godot.Core.PhysicalBone.set_mass,\n        Godot.Core.PhysicalBone.set_weight)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PhysicsBody()\n\n_JOINT_TYPE_6DOF :: Int\n_JOINT_TYPE_6DOF = 5\n\n_JOINT_TYPE_PIN :: Int\n_JOINT_TYPE_PIN = 1\n\n_JOINT_TYPE_CONE :: Int\n_JOINT_TYPE_CONE = 2\n\n_JOINT_TYPE_NONE :: Int\n_JOINT_TYPE_NONE = 0\n\n_JOINT_TYPE_SLIDER :: Int\n_JOINT_TYPE_SLIDER = 4\n\n_JOINT_TYPE_HINGE :: Int\n_JOINT_TYPE_HINGE = 3\n\ninstance NodeProperty PhysicalBone \"body_offset\" Transform 'False\n         where\n        nodeProperty\n          = (get_body_offset, wrapDroppingSetter set_body_offset, Nothing)\n\ninstance NodeProperty PhysicalBone \"bounce\" Float 'False where\n        nodeProperty = (get_bounce, wrapDroppingSetter set_bounce, Nothing)\n\ninstance NodeProperty PhysicalBone \"friction\" Float 'False where\n        nodeProperty\n          = (get_friction, wrapDroppingSetter set_friction, Nothing)\n\ninstance NodeProperty PhysicalBone \"gravity_scale\" Float 'False\n         where\n        nodeProperty\n          = (get_gravity_scale, wrapDroppingSetter set_gravity_scale,\n             Nothing)\n\ninstance NodeProperty PhysicalBone \"joint_offset\" Transform 'False\n         where\n        nodeProperty\n          = (get_joint_offset, wrapDroppingSetter set_joint_offset, Nothing)\n\ninstance NodeProperty PhysicalBone \"joint_type\" Int 'False where\n        nodeProperty\n          = (get_joint_type, wrapDroppingSetter set_joint_type, Nothing)\n\ninstance NodeProperty PhysicalBone \"mass\" Float 'False where\n        nodeProperty = (get_mass, wrapDroppingSetter set_mass, Nothing)\n\ninstance NodeProperty PhysicalBone \"weight\" Float 'False where\n        nodeProperty = (get_weight, wrapDroppingSetter set_weight, Nothing)\n\n{-# NOINLINE bindPhysicalBone__direct_state_changed #-}\n\nbindPhysicalBone__direct_state_changed :: MethodBind\nbindPhysicalBone__direct_state_changed\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"_direct_state_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_direct_state_changed ::\n                        (PhysicalBone :< cls, Object :< cls) => cls -> Object -> IO ()\n_direct_state_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone__direct_state_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"_direct_state_changed\" '[Object]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicalBone._direct_state_changed\n\n{-# NOINLINE bindPhysicalBone_apply_central_impulse #-}\n\nbindPhysicalBone_apply_central_impulse :: MethodBind\nbindPhysicalBone_apply_central_impulse\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"apply_central_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\napply_central_impulse ::\n                        (PhysicalBone :< cls, Object :< cls) => cls -> Vector3 -> IO ()\napply_central_impulse cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_apply_central_impulse\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"apply_central_impulse\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicalBone.apply_central_impulse\n\n{-# NOINLINE bindPhysicalBone_apply_impulse #-}\n\nbindPhysicalBone_apply_impulse :: MethodBind\nbindPhysicalBone_apply_impulse\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"apply_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\napply_impulse ::\n                (PhysicalBone :< cls, Object :< cls) =>\n                cls -> Vector3 -> Vector3 -> IO ()\napply_impulse cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_apply_impulse (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"apply_impulse\"\n           '[Vector3, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicalBone.apply_impulse\n\n{-# NOINLINE bindPhysicalBone_get_body_offset #-}\n\nbindPhysicalBone_get_body_offset :: MethodBind\nbindPhysicalBone_get_body_offset\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"get_body_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_body_offset ::\n                  (PhysicalBone :< cls, Object :< cls) => cls -> IO Transform\nget_body_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_get_body_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"get_body_offset\" '[]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.PhysicalBone.get_body_offset\n\n{-# NOINLINE bindPhysicalBone_get_bone_id #-}\n\nbindPhysicalBone_get_bone_id :: MethodBind\nbindPhysicalBone_get_bone_id\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"get_bone_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_bone_id ::\n              (PhysicalBone :< cls, Object :< cls) => cls -> IO Int\nget_bone_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_get_bone_id (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"get_bone_id\" '[] (IO Int) where\n        nodeMethod = Godot.Core.PhysicalBone.get_bone_id\n\n{-# NOINLINE bindPhysicalBone_get_bounce #-}\n\nbindPhysicalBone_get_bounce :: MethodBind\nbindPhysicalBone_get_bounce\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"get_bounce\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_bounce ::\n             (PhysicalBone :< cls, Object :< cls) => cls -> IO Float\nget_bounce cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_get_bounce (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"get_bounce\" '[] (IO Float) where\n        nodeMethod = Godot.Core.PhysicalBone.get_bounce\n\n{-# NOINLINE bindPhysicalBone_get_friction #-}\n\nbindPhysicalBone_get_friction :: MethodBind\nbindPhysicalBone_get_friction\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"get_friction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_friction ::\n               (PhysicalBone :< cls, Object :< cls) => cls -> IO Float\nget_friction cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_get_friction (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"get_friction\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.PhysicalBone.get_friction\n\n{-# NOINLINE bindPhysicalBone_get_gravity_scale #-}\n\nbindPhysicalBone_get_gravity_scale :: MethodBind\nbindPhysicalBone_get_gravity_scale\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"get_gravity_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_gravity_scale ::\n                    (PhysicalBone :< cls, Object :< cls) => cls -> IO Float\nget_gravity_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_get_gravity_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"get_gravity_scale\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.PhysicalBone.get_gravity_scale\n\n{-# NOINLINE bindPhysicalBone_get_joint_offset #-}\n\nbindPhysicalBone_get_joint_offset :: MethodBind\nbindPhysicalBone_get_joint_offset\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"get_joint_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_joint_offset ::\n                   (PhysicalBone :< cls, Object :< cls) => cls -> IO Transform\nget_joint_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_get_joint_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"get_joint_offset\" '[]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.PhysicalBone.get_joint_offset\n\n{-# NOINLINE bindPhysicalBone_get_joint_type #-}\n\nbindPhysicalBone_get_joint_type :: MethodBind\nbindPhysicalBone_get_joint_type\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"get_joint_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_joint_type ::\n                 (PhysicalBone :< cls, Object :< cls) => cls -> IO Int\nget_joint_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_get_joint_type (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"get_joint_type\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicalBone.get_joint_type\n\n{-# NOINLINE bindPhysicalBone_get_mass #-}\n\nbindPhysicalBone_get_mass :: MethodBind\nbindPhysicalBone_get_mass\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"get_mass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_mass :: (PhysicalBone :< cls, Object :< cls) => cls -> IO Float\nget_mass cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_get_mass (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"get_mass\" '[] (IO Float) where\n        nodeMethod = Godot.Core.PhysicalBone.get_mass\n\n{-# NOINLINE bindPhysicalBone_get_simulate_physics #-}\n\nbindPhysicalBone_get_simulate_physics :: MethodBind\nbindPhysicalBone_get_simulate_physics\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"get_simulate_physics\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_simulate_physics ::\n                       (PhysicalBone :< cls, Object :< cls) => cls -> IO Bool\nget_simulate_physics cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_get_simulate_physics\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"get_simulate_physics\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PhysicalBone.get_simulate_physics\n\n{-# NOINLINE bindPhysicalBone_get_weight #-}\n\nbindPhysicalBone_get_weight :: MethodBind\nbindPhysicalBone_get_weight\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"get_weight\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_weight ::\n             (PhysicalBone :< cls, Object :< cls) => cls -> IO Float\nget_weight cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_get_weight (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"get_weight\" '[] (IO Float) where\n        nodeMethod = Godot.Core.PhysicalBone.get_weight\n\n{-# NOINLINE bindPhysicalBone_is_simulating_physics #-}\n\nbindPhysicalBone_is_simulating_physics :: MethodBind\nbindPhysicalBone_is_simulating_physics\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"is_simulating_physics\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_simulating_physics ::\n                        (PhysicalBone :< cls, Object :< cls) => cls -> IO Bool\nis_simulating_physics cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_is_simulating_physics\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"is_simulating_physics\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PhysicalBone.is_simulating_physics\n\n{-# NOINLINE bindPhysicalBone_is_static_body #-}\n\nbindPhysicalBone_is_static_body :: MethodBind\nbindPhysicalBone_is_static_body\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"is_static_body\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_static_body ::\n                 (PhysicalBone :< cls, Object :< cls) => cls -> IO Bool\nis_static_body cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_is_static_body (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"is_static_body\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.PhysicalBone.is_static_body\n\n{-# NOINLINE bindPhysicalBone_set_body_offset #-}\n\nbindPhysicalBone_set_body_offset :: MethodBind\nbindPhysicalBone_set_body_offset\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"set_body_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_body_offset ::\n                  (PhysicalBone :< cls, Object :< cls) => cls -> Transform -> IO ()\nset_body_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_set_body_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"set_body_offset\" '[Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicalBone.set_body_offset\n\n{-# NOINLINE bindPhysicalBone_set_bounce #-}\n\nbindPhysicalBone_set_bounce :: MethodBind\nbindPhysicalBone_set_bounce\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"set_bounce\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_bounce ::\n             (PhysicalBone :< cls, Object :< cls) => cls -> Float -> IO ()\nset_bounce cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_set_bounce (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"set_bounce\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicalBone.set_bounce\n\n{-# NOINLINE bindPhysicalBone_set_friction #-}\n\nbindPhysicalBone_set_friction :: MethodBind\nbindPhysicalBone_set_friction\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"set_friction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_friction ::\n               (PhysicalBone :< cls, Object :< cls) => cls -> Float -> IO ()\nset_friction cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_set_friction (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"set_friction\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicalBone.set_friction\n\n{-# NOINLINE bindPhysicalBone_set_gravity_scale #-}\n\nbindPhysicalBone_set_gravity_scale :: MethodBind\nbindPhysicalBone_set_gravity_scale\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"set_gravity_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_gravity_scale ::\n                    (PhysicalBone :< cls, Object :< cls) => cls -> Float -> IO ()\nset_gravity_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_set_gravity_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"set_gravity_scale\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicalBone.set_gravity_scale\n\n{-# NOINLINE bindPhysicalBone_set_joint_offset #-}\n\nbindPhysicalBone_set_joint_offset :: MethodBind\nbindPhysicalBone_set_joint_offset\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"set_joint_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_joint_offset ::\n                   (PhysicalBone :< cls, Object :< cls) => cls -> Transform -> IO ()\nset_joint_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_set_joint_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"set_joint_offset\" '[Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicalBone.set_joint_offset\n\n{-# NOINLINE bindPhysicalBone_set_joint_type #-}\n\nbindPhysicalBone_set_joint_type :: MethodBind\nbindPhysicalBone_set_joint_type\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"set_joint_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_joint_type ::\n                 (PhysicalBone :< cls, Object :< cls) => cls -> Int -> IO ()\nset_joint_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_set_joint_type (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"set_joint_type\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicalBone.set_joint_type\n\n{-# NOINLINE bindPhysicalBone_set_mass #-}\n\nbindPhysicalBone_set_mass :: MethodBind\nbindPhysicalBone_set_mass\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"set_mass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_mass ::\n           (PhysicalBone :< cls, Object :< cls) => cls -> Float -> IO ()\nset_mass cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_set_mass (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"set_mass\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.PhysicalBone.set_mass\n\n{-# NOINLINE bindPhysicalBone_set_weight #-}\n\nbindPhysicalBone_set_weight :: MethodBind\nbindPhysicalBone_set_weight\n  = unsafePerformIO $\n      withCString \"PhysicalBone\" $\n        \\ clsNamePtr ->\n          withCString \"set_weight\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_weight ::\n             (PhysicalBone :< cls, Object :< cls) => cls -> Float -> IO ()\nset_weight cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicalBone_set_weight (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicalBone \"set_weight\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicalBone.set_weight"
  },
  {
    "path": "src/Godot/Core/Physics2DDirectBodyState.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Physics2DDirectBodyState\n       (Godot.Core.Physics2DDirectBodyState.add_central_force,\n        Godot.Core.Physics2DDirectBodyState.add_force,\n        Godot.Core.Physics2DDirectBodyState.add_torque,\n        Godot.Core.Physics2DDirectBodyState.apply_central_impulse,\n        Godot.Core.Physics2DDirectBodyState.apply_impulse,\n        Godot.Core.Physics2DDirectBodyState.apply_torque_impulse,\n        Godot.Core.Physics2DDirectBodyState.get_angular_velocity,\n        Godot.Core.Physics2DDirectBodyState.get_contact_collider,\n        Godot.Core.Physics2DDirectBodyState.get_contact_collider_id,\n        Godot.Core.Physics2DDirectBodyState.get_contact_collider_object,\n        Godot.Core.Physics2DDirectBodyState.get_contact_collider_position,\n        Godot.Core.Physics2DDirectBodyState.get_contact_collider_shape,\n        Godot.Core.Physics2DDirectBodyState.get_contact_collider_shape_metadata,\n        Godot.Core.Physics2DDirectBodyState.get_contact_collider_velocity_at_position,\n        Godot.Core.Physics2DDirectBodyState.get_contact_count,\n        Godot.Core.Physics2DDirectBodyState.get_contact_local_normal,\n        Godot.Core.Physics2DDirectBodyState.get_contact_local_position,\n        Godot.Core.Physics2DDirectBodyState.get_contact_local_shape,\n        Godot.Core.Physics2DDirectBodyState.get_inverse_inertia,\n        Godot.Core.Physics2DDirectBodyState.get_inverse_mass,\n        Godot.Core.Physics2DDirectBodyState.get_linear_velocity,\n        Godot.Core.Physics2DDirectBodyState.get_space_state,\n        Godot.Core.Physics2DDirectBodyState.get_step,\n        Godot.Core.Physics2DDirectBodyState.get_total_angular_damp,\n        Godot.Core.Physics2DDirectBodyState.get_total_gravity,\n        Godot.Core.Physics2DDirectBodyState.get_total_linear_damp,\n        Godot.Core.Physics2DDirectBodyState.get_transform,\n        Godot.Core.Physics2DDirectBodyState.integrate_forces,\n        Godot.Core.Physics2DDirectBodyState.is_sleeping,\n        Godot.Core.Physics2DDirectBodyState.set_angular_velocity,\n        Godot.Core.Physics2DDirectBodyState.set_linear_velocity,\n        Godot.Core.Physics2DDirectBodyState.set_sleep_state,\n        Godot.Core.Physics2DDirectBodyState.set_transform)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\ninstance NodeProperty Physics2DDirectBodyState \"angular_velocity\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_angular_velocity, wrapDroppingSetter set_angular_velocity,\n             Nothing)\n\ninstance NodeProperty Physics2DDirectBodyState \"inverse_inertia\"\n           Float\n           'True\n         where\n        nodeProperty = (get_inverse_inertia, (), Nothing)\n\ninstance NodeProperty Physics2DDirectBodyState \"inverse_mass\" Float\n           'True\n         where\n        nodeProperty = (get_inverse_mass, (), Nothing)\n\ninstance NodeProperty Physics2DDirectBodyState \"linear_velocity\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (get_linear_velocity, wrapDroppingSetter set_linear_velocity,\n             Nothing)\n\ninstance NodeProperty Physics2DDirectBodyState \"sleeping\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_sleeping, wrapDroppingSetter set_sleep_state, Nothing)\n\ninstance NodeProperty Physics2DDirectBodyState \"step\" Float 'True\n         where\n        nodeProperty = (get_step, (), Nothing)\n\ninstance NodeProperty Physics2DDirectBodyState \"total_angular_damp\"\n           Float\n           'True\n         where\n        nodeProperty = (get_total_angular_damp, (), Nothing)\n\ninstance NodeProperty Physics2DDirectBodyState \"total_gravity\"\n           Vector2\n           'True\n         where\n        nodeProperty = (get_total_gravity, (), Nothing)\n\ninstance NodeProperty Physics2DDirectBodyState \"total_linear_damp\"\n           Float\n           'True\n         where\n        nodeProperty = (get_total_linear_damp, (), Nothing)\n\ninstance NodeProperty Physics2DDirectBodyState \"transform\"\n           Transform2d\n           'False\n         where\n        nodeProperty\n          = (get_transform, wrapDroppingSetter set_transform, Nothing)\n\n{-# NOINLINE bindPhysics2DDirectBodyState_add_central_force #-}\n\n-- | Adds a constant directional force without affecting rotation.\nbindPhysics2DDirectBodyState_add_central_force :: MethodBind\nbindPhysics2DDirectBodyState_add_central_force\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"add_central_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a constant directional force without affecting rotation.\nadd_central_force ::\n                    (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                    cls -> Vector2 -> IO ()\nadd_central_force cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_add_central_force\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"add_central_force\"\n           '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DDirectBodyState.add_central_force\n\n{-# NOINLINE bindPhysics2DDirectBodyState_add_force #-}\n\n-- | Adds a positioned force to the body. Both the force and the offset from the body origin are in global coordinates.\nbindPhysics2DDirectBodyState_add_force :: MethodBind\nbindPhysics2DDirectBodyState_add_force\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"add_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a positioned force to the body. Both the force and the offset from the body origin are in global coordinates.\nadd_force ::\n            (Physics2DDirectBodyState :< cls, Object :< cls) =>\n            cls -> Vector2 -> Vector2 -> IO ()\nadd_force cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DDirectBodyState_add_force\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"add_force\"\n           '[Vector2, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DDirectBodyState.add_force\n\n{-# NOINLINE bindPhysics2DDirectBodyState_add_torque #-}\n\n-- | Adds a constant rotational force.\nbindPhysics2DDirectBodyState_add_torque :: MethodBind\nbindPhysics2DDirectBodyState_add_torque\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"add_torque\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a constant rotational force.\nadd_torque ::\n             (Physics2DDirectBodyState :< cls, Object :< cls) =>\n             cls -> Float -> IO ()\nadd_torque cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DDirectBodyState_add_torque\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"add_torque\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DDirectBodyState.add_torque\n\n{-# NOINLINE bindPhysics2DDirectBodyState_apply_central_impulse #-}\n\n-- | Applies a directional impulse without affecting rotation.\nbindPhysics2DDirectBodyState_apply_central_impulse :: MethodBind\nbindPhysics2DDirectBodyState_apply_central_impulse\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"apply_central_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies a directional impulse without affecting rotation.\napply_central_impulse ::\n                        (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                        cls -> Vector2 -> IO ()\napply_central_impulse cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_apply_central_impulse\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState\n           \"apply_central_impulse\"\n           '[Vector2]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.apply_central_impulse\n\n{-# NOINLINE bindPhysics2DDirectBodyState_apply_impulse #-}\n\n-- | Applies a positioned impulse to the body. An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the \"_force\" functions otherwise). The offset uses the rotation of the global coordinate system, but is centered at the object's origin.\nbindPhysics2DDirectBodyState_apply_impulse :: MethodBind\nbindPhysics2DDirectBodyState_apply_impulse\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"apply_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies a positioned impulse to the body. An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the \"_force\" functions otherwise). The offset uses the rotation of the global coordinate system, but is centered at the object's origin.\napply_impulse ::\n                (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                cls -> Vector2 -> Vector2 -> IO ()\napply_impulse cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DDirectBodyState_apply_impulse\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"apply_impulse\"\n           '[Vector2, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DDirectBodyState.apply_impulse\n\n{-# NOINLINE bindPhysics2DDirectBodyState_apply_torque_impulse #-}\n\n-- | Applies a rotational impulse to the body.\nbindPhysics2DDirectBodyState_apply_torque_impulse :: MethodBind\nbindPhysics2DDirectBodyState_apply_torque_impulse\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"apply_torque_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies a rotational impulse to the body.\napply_torque_impulse ::\n                       (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                       cls -> Float -> IO ()\napply_torque_impulse cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_apply_torque_impulse\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"apply_torque_impulse\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.apply_torque_impulse\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_angular_velocity #-}\n\n-- | The body's rotational velocity.\nbindPhysics2DDirectBodyState_get_angular_velocity :: MethodBind\nbindPhysics2DDirectBodyState_get_angular_velocity\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_angular_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's rotational velocity.\nget_angular_velocity ::\n                       (Physics2DDirectBodyState :< cls, Object :< cls) => cls -> IO Float\nget_angular_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_get_angular_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"get_angular_velocity\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.get_angular_velocity\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_contact_collider #-}\n\n-- | Returns the collider's @RID@.\nbindPhysics2DDirectBodyState_get_contact_collider :: MethodBind\nbindPhysics2DDirectBodyState_get_contact_collider\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_collider\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the collider's @RID@.\nget_contact_collider ::\n                       (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                       cls -> Int -> IO Rid\nget_contact_collider cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_get_contact_collider\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"get_contact_collider\"\n           '[Int]\n           (IO Rid)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.get_contact_collider\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_contact_collider_id\n             #-}\n\n-- | Returns the collider's object id.\nbindPhysics2DDirectBodyState_get_contact_collider_id :: MethodBind\nbindPhysics2DDirectBodyState_get_contact_collider_id\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_collider_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the collider's object id.\nget_contact_collider_id ::\n                          (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                          cls -> Int -> IO Int\nget_contact_collider_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_get_contact_collider_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState\n           \"get_contact_collider_id\"\n           '[Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.get_contact_collider_id\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_contact_collider_object\n             #-}\n\n-- | Returns the collider object. This depends on how it was created (will return a scene node if such was used to create it).\nbindPhysics2DDirectBodyState_get_contact_collider_object ::\n                                                         MethodBind\nbindPhysics2DDirectBodyState_get_contact_collider_object\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_collider_object\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the collider object. This depends on how it was created (will return a scene node if such was used to create it).\nget_contact_collider_object ::\n                              (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                              cls -> Int -> IO Object\nget_contact_collider_object cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_get_contact_collider_object\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState\n           \"get_contact_collider_object\"\n           '[Int]\n           (IO Object)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.get_contact_collider_object\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_contact_collider_position\n             #-}\n\n-- | Returns the contact position in the collider.\nbindPhysics2DDirectBodyState_get_contact_collider_position ::\n                                                           MethodBind\nbindPhysics2DDirectBodyState_get_contact_collider_position\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_collider_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the contact position in the collider.\nget_contact_collider_position ::\n                                (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                                cls -> Int -> IO Vector2\nget_contact_collider_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_get_contact_collider_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState\n           \"get_contact_collider_position\"\n           '[Int]\n           (IO Vector2)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.get_contact_collider_position\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_contact_collider_shape\n             #-}\n\n-- | Returns the collider's shape index.\nbindPhysics2DDirectBodyState_get_contact_collider_shape ::\n                                                        MethodBind\nbindPhysics2DDirectBodyState_get_contact_collider_shape\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_collider_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the collider's shape index.\nget_contact_collider_shape ::\n                             (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                             cls -> Int -> IO Int\nget_contact_collider_shape cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_get_contact_collider_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState\n           \"get_contact_collider_shape\"\n           '[Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.get_contact_collider_shape\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_contact_collider_shape_metadata\n             #-}\n\n-- | Returns the collided shape's metadata. This metadata is different from @method Object.get_meta@, and is set with @method Physics2DServer.shape_set_data@.\nbindPhysics2DDirectBodyState_get_contact_collider_shape_metadata ::\n                                                                 MethodBind\nbindPhysics2DDirectBodyState_get_contact_collider_shape_metadata\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_collider_shape_metadata\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the collided shape's metadata. This metadata is different from @method Object.get_meta@, and is set with @method Physics2DServer.shape_set_data@.\nget_contact_collider_shape_metadata ::\n                                      (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                                      cls -> Int -> IO GodotVariant\nget_contact_collider_shape_metadata cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_get_contact_collider_shape_metadata\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState\n           \"get_contact_collider_shape_metadata\"\n           '[Int]\n           (IO GodotVariant)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.get_contact_collider_shape_metadata\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_contact_collider_velocity_at_position\n             #-}\n\n-- | Returns the linear velocity vector at the collider's contact point.\nbindPhysics2DDirectBodyState_get_contact_collider_velocity_at_position ::\n                                                                       MethodBind\nbindPhysics2DDirectBodyState_get_contact_collider_velocity_at_position\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_collider_velocity_at_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the linear velocity vector at the collider's contact point.\nget_contact_collider_velocity_at_position ::\n                                            (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                                            cls -> Int -> IO Vector2\nget_contact_collider_velocity_at_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_get_contact_collider_velocity_at_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState\n           \"get_contact_collider_velocity_at_position\"\n           '[Int]\n           (IO Vector2)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.get_contact_collider_velocity_at_position\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_contact_count #-}\n\n-- | Returns the number of contacts this body has with other bodies.\n--   \t\t\t\t__Note:__ By default, this returns 0 unless bodies are configured to monitor contacts. See @RigidBody2D.contact_monitor@.\nbindPhysics2DDirectBodyState_get_contact_count :: MethodBind\nbindPhysics2DDirectBodyState_get_contact_count\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of contacts this body has with other bodies.\n--   \t\t\t\t__Note:__ By default, this returns 0 unless bodies are configured to monitor contacts. See @RigidBody2D.contact_monitor@.\nget_contact_count ::\n                    (Physics2DDirectBodyState :< cls, Object :< cls) => cls -> IO Int\nget_contact_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_get_contact_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"get_contact_count\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Physics2DDirectBodyState.get_contact_count\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_contact_local_normal\n             #-}\n\n-- | Returns the local normal at the contact point.\nbindPhysics2DDirectBodyState_get_contact_local_normal :: MethodBind\nbindPhysics2DDirectBodyState_get_contact_local_normal\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_local_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the local normal at the contact point.\nget_contact_local_normal ::\n                           (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                           cls -> Int -> IO Vector2\nget_contact_local_normal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_get_contact_local_normal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState\n           \"get_contact_local_normal\"\n           '[Int]\n           (IO Vector2)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.get_contact_local_normal\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_contact_local_position\n             #-}\n\n-- | Returns the local position of the contact point.\nbindPhysics2DDirectBodyState_get_contact_local_position ::\n                                                        MethodBind\nbindPhysics2DDirectBodyState_get_contact_local_position\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_local_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the local position of the contact point.\nget_contact_local_position ::\n                             (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                             cls -> Int -> IO Vector2\nget_contact_local_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_get_contact_local_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState\n           \"get_contact_local_position\"\n           '[Int]\n           (IO Vector2)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.get_contact_local_position\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_contact_local_shape\n             #-}\n\n-- | Returns the local shape index of the collision.\nbindPhysics2DDirectBodyState_get_contact_local_shape :: MethodBind\nbindPhysics2DDirectBodyState_get_contact_local_shape\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_local_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the local shape index of the collision.\nget_contact_local_shape ::\n                          (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                          cls -> Int -> IO Int\nget_contact_local_shape cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_get_contact_local_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState\n           \"get_contact_local_shape\"\n           '[Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.get_contact_local_shape\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_inverse_inertia #-}\n\n-- | The inverse of the inertia of the body.\nbindPhysics2DDirectBodyState_get_inverse_inertia :: MethodBind\nbindPhysics2DDirectBodyState_get_inverse_inertia\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_inverse_inertia\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The inverse of the inertia of the body.\nget_inverse_inertia ::\n                      (Physics2DDirectBodyState :< cls, Object :< cls) => cls -> IO Float\nget_inverse_inertia cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_get_inverse_inertia\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"get_inverse_inertia\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.get_inverse_inertia\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_inverse_mass #-}\n\n-- | The inverse of the mass of the body.\nbindPhysics2DDirectBodyState_get_inverse_mass :: MethodBind\nbindPhysics2DDirectBodyState_get_inverse_mass\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_inverse_mass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The inverse of the mass of the body.\nget_inverse_mass ::\n                   (Physics2DDirectBodyState :< cls, Object :< cls) => cls -> IO Float\nget_inverse_mass cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_get_inverse_mass\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"get_inverse_mass\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Physics2DDirectBodyState.get_inverse_mass\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_linear_velocity #-}\n\n-- | The body's linear velocity.\nbindPhysics2DDirectBodyState_get_linear_velocity :: MethodBind\nbindPhysics2DDirectBodyState_get_linear_velocity\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_linear_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's linear velocity.\nget_linear_velocity ::\n                      (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                      cls -> IO Vector2\nget_linear_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_get_linear_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"get_linear_velocity\"\n           '[]\n           (IO Vector2)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.get_linear_velocity\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_space_state #-}\n\n-- | Returns the current state of the space, useful for queries.\nbindPhysics2DDirectBodyState_get_space_state :: MethodBind\nbindPhysics2DDirectBodyState_get_space_state\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_space_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current state of the space, useful for queries.\nget_space_state ::\n                  (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                  cls -> IO Physics2DDirectSpaceState\nget_space_state cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DDirectBodyState_get_space_state\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"get_space_state\" '[]\n           (IO Physics2DDirectSpaceState)\n         where\n        nodeMethod = Godot.Core.Physics2DDirectBodyState.get_space_state\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_step #-}\n\n-- | The timestep (delta) used for the simulation.\nbindPhysics2DDirectBodyState_get_step :: MethodBind\nbindPhysics2DDirectBodyState_get_step\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_step\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The timestep (delta) used for the simulation.\nget_step ::\n           (Physics2DDirectBodyState :< cls, Object :< cls) => cls -> IO Float\nget_step cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DDirectBodyState_get_step\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"get_step\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Physics2DDirectBodyState.get_step\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_total_angular_damp\n             #-}\n\n-- | The rate at which the body stops rotating, if there are not any other forces moving it.\nbindPhysics2DDirectBodyState_get_total_angular_damp :: MethodBind\nbindPhysics2DDirectBodyState_get_total_angular_damp\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_total_angular_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rate at which the body stops rotating, if there are not any other forces moving it.\nget_total_angular_damp ::\n                         (Physics2DDirectBodyState :< cls, Object :< cls) => cls -> IO Float\nget_total_angular_damp cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_get_total_angular_damp\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState\n           \"get_total_angular_damp\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.get_total_angular_damp\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_total_gravity #-}\n\n-- | The total gravity vector being currently applied to this body.\nbindPhysics2DDirectBodyState_get_total_gravity :: MethodBind\nbindPhysics2DDirectBodyState_get_total_gravity\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_total_gravity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The total gravity vector being currently applied to this body.\nget_total_gravity ::\n                    (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                    cls -> IO Vector2\nget_total_gravity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_get_total_gravity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"get_total_gravity\"\n           '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Physics2DDirectBodyState.get_total_gravity\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_total_linear_damp #-}\n\n-- | The rate at which the body stops moving, if there are not any other forces moving it.\nbindPhysics2DDirectBodyState_get_total_linear_damp :: MethodBind\nbindPhysics2DDirectBodyState_get_total_linear_damp\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_total_linear_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rate at which the body stops moving, if there are not any other forces moving it.\nget_total_linear_damp ::\n                        (Physics2DDirectBodyState :< cls, Object :< cls) => cls -> IO Float\nget_total_linear_damp cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_get_total_linear_damp\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState\n           \"get_total_linear_damp\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.get_total_linear_damp\n\n{-# NOINLINE bindPhysics2DDirectBodyState_get_transform #-}\n\n-- | The body's transformation matrix.\nbindPhysics2DDirectBodyState_get_transform :: MethodBind\nbindPhysics2DDirectBodyState_get_transform\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's transformation matrix.\nget_transform ::\n                (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                cls -> IO Transform2d\nget_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DDirectBodyState_get_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"get_transform\" '[]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.Physics2DDirectBodyState.get_transform\n\n{-# NOINLINE bindPhysics2DDirectBodyState_integrate_forces #-}\n\n-- | Calls the built-in force integration code.\nbindPhysics2DDirectBodyState_integrate_forces :: MethodBind\nbindPhysics2DDirectBodyState_integrate_forces\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"integrate_forces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calls the built-in force integration code.\nintegrate_forces ::\n                   (Physics2DDirectBodyState :< cls, Object :< cls) => cls -> IO ()\nintegrate_forces cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_integrate_forces\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"integrate_forces\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DDirectBodyState.integrate_forces\n\n{-# NOINLINE bindPhysics2DDirectBodyState_is_sleeping #-}\n\n-- | If @true@, this body is currently sleeping (not active).\nbindPhysics2DDirectBodyState_is_sleeping :: MethodBind\nbindPhysics2DDirectBodyState_is_sleeping\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"is_sleeping\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this body is currently sleeping (not active).\nis_sleeping ::\n              (Physics2DDirectBodyState :< cls, Object :< cls) => cls -> IO Bool\nis_sleeping cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DDirectBodyState_is_sleeping\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"is_sleeping\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Physics2DDirectBodyState.is_sleeping\n\n{-# NOINLINE bindPhysics2DDirectBodyState_set_angular_velocity #-}\n\n-- | The body's rotational velocity.\nbindPhysics2DDirectBodyState_set_angular_velocity :: MethodBind\nbindPhysics2DDirectBodyState_set_angular_velocity\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"set_angular_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's rotational velocity.\nset_angular_velocity ::\n                       (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                       cls -> Float -> IO ()\nset_angular_velocity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_set_angular_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"set_angular_velocity\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.set_angular_velocity\n\n{-# NOINLINE bindPhysics2DDirectBodyState_set_linear_velocity #-}\n\n-- | The body's linear velocity.\nbindPhysics2DDirectBodyState_set_linear_velocity :: MethodBind\nbindPhysics2DDirectBodyState_set_linear_velocity\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"set_linear_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's linear velocity.\nset_linear_velocity ::\n                      (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                      cls -> Vector2 -> IO ()\nset_linear_velocity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectBodyState_set_linear_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"set_linear_velocity\"\n           '[Vector2]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectBodyState.set_linear_velocity\n\n{-# NOINLINE bindPhysics2DDirectBodyState_set_sleep_state #-}\n\n-- | If @true@, this body is currently sleeping (not active).\nbindPhysics2DDirectBodyState_set_sleep_state :: MethodBind\nbindPhysics2DDirectBodyState_set_sleep_state\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"set_sleep_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this body is currently sleeping (not active).\nset_sleep_state ::\n                  (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                  cls -> Bool -> IO ()\nset_sleep_state cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DDirectBodyState_set_sleep_state\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"set_sleep_state\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DDirectBodyState.set_sleep_state\n\n{-# NOINLINE bindPhysics2DDirectBodyState_set_transform #-}\n\n-- | The body's transformation matrix.\nbindPhysics2DDirectBodyState_set_transform :: MethodBind\nbindPhysics2DDirectBodyState_set_transform\n  = unsafePerformIO $\n      withCString \"Physics2DDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's transformation matrix.\nset_transform ::\n                (Physics2DDirectBodyState :< cls, Object :< cls) =>\n                cls -> Transform2d -> IO ()\nset_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DDirectBodyState_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectBodyState \"set_transform\"\n           '[Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DDirectBodyState.set_transform"
  },
  {
    "path": "src/Godot/Core/Physics2DDirectBodyStateSW.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Physics2DDirectBodyStateSW () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Physics2DDirectBodyState()"
  },
  {
    "path": "src/Godot/Core/Physics2DDirectSpaceState.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Physics2DDirectSpaceState\n       (Godot.Core.Physics2DDirectSpaceState.cast_motion,\n        Godot.Core.Physics2DDirectSpaceState.collide_shape,\n        Godot.Core.Physics2DDirectSpaceState.get_rest_info,\n        Godot.Core.Physics2DDirectSpaceState.intersect_point,\n        Godot.Core.Physics2DDirectSpaceState.intersect_point_on_canvas,\n        Godot.Core.Physics2DDirectSpaceState.intersect_ray,\n        Godot.Core.Physics2DDirectSpaceState.intersect_shape)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n{-# NOINLINE bindPhysics2DDirectSpaceState_cast_motion #-}\n\n-- | Checks how far the shape can travel toward a point. If the shape can not move, the array will be empty.\n--   \t\t\t\t__Note:__ Both the shape and the motion are supplied through a @Physics2DShapeQueryParameters@ object. The method will return an array with two floats between 0 and 1, both representing a fraction of @motion@. The first is how far the shape can move without triggering a collision, and the second is the point at which a collision will occur. If no collision is detected, the returned array will be @@1, 1@@.\nbindPhysics2DDirectSpaceState_cast_motion :: MethodBind\nbindPhysics2DDirectSpaceState_cast_motion\n  = unsafePerformIO $\n      withCString \"Physics2DDirectSpaceState\" $\n        \\ clsNamePtr ->\n          withCString \"cast_motion\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Checks how far the shape can travel toward a point. If the shape can not move, the array will be empty.\n--   \t\t\t\t__Note:__ Both the shape and the motion are supplied through a @Physics2DShapeQueryParameters@ object. The method will return an array with two floats between 0 and 1, both representing a fraction of @motion@. The first is how far the shape can move without triggering a collision, and the second is the point at which a collision will occur. If no collision is detected, the returned array will be @@1, 1@@.\ncast_motion ::\n              (Physics2DDirectSpaceState :< cls, Object :< cls) =>\n              cls -> Physics2DShapeQueryParameters -> IO Array\ncast_motion cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DDirectSpaceState_cast_motion\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectSpaceState \"cast_motion\"\n           '[Physics2DShapeQueryParameters]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Physics2DDirectSpaceState.cast_motion\n\n{-# NOINLINE bindPhysics2DDirectSpaceState_collide_shape #-}\n\n-- | Checks the intersections of a shape, given through a @Physics2DShapeQueryParameters@ object, against the space. The resulting array contains a list of points where the shape intersects another. Like with @method intersect_shape@, the number of returned results can be limited to save processing time.\nbindPhysics2DDirectSpaceState_collide_shape :: MethodBind\nbindPhysics2DDirectSpaceState_collide_shape\n  = unsafePerformIO $\n      withCString \"Physics2DDirectSpaceState\" $\n        \\ clsNamePtr ->\n          withCString \"collide_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Checks the intersections of a shape, given through a @Physics2DShapeQueryParameters@ object, against the space. The resulting array contains a list of points where the shape intersects another. Like with @method intersect_shape@, the number of returned results can be limited to save processing time.\ncollide_shape ::\n                (Physics2DDirectSpaceState :< cls, Object :< cls) =>\n                cls -> Physics2DShapeQueryParameters -> Maybe Int -> IO Array\ncollide_shape cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (32)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DDirectSpaceState_collide_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectSpaceState \"collide_shape\"\n           '[Physics2DShapeQueryParameters, Maybe Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Physics2DDirectSpaceState.collide_shape\n\n{-# NOINLINE bindPhysics2DDirectSpaceState_get_rest_info #-}\n\n-- | Checks the intersections of a shape, given through a @Physics2DShapeQueryParameters@ object, against the space. If it collides with more than one shape, the nearest one is selected. If the shape did not intersect anything, then an empty dictionary is returned instead.\n--   \t\t\t\t__Note:__ This method does not take into account the @motion@ property of the object. The returned object is a dictionary containing the following fields:\n--   \t\t\t\t@collider_id@: The colliding object's ID.\n--   \t\t\t\t@linear_velocity@: The colliding object's velocity @Vector2@. If the object is an @Area2D@, the result is @(0, 0)@.\n--   \t\t\t\t@metadata@: The intersecting shape's metadata. This metadata is different from @method Object.get_meta@, and is set with @method Physics2DServer.shape_set_data@.\n--   \t\t\t\t@normal@: The object's surface normal at the intersection point.\n--   \t\t\t\t@point@: The intersection point.\n--   \t\t\t\t@rid@: The intersecting object's @RID@.\n--   \t\t\t\t@shape@: The shape index of the colliding shape.\nbindPhysics2DDirectSpaceState_get_rest_info :: MethodBind\nbindPhysics2DDirectSpaceState_get_rest_info\n  = unsafePerformIO $\n      withCString \"Physics2DDirectSpaceState\" $\n        \\ clsNamePtr ->\n          withCString \"get_rest_info\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Checks the intersections of a shape, given through a @Physics2DShapeQueryParameters@ object, against the space. If it collides with more than one shape, the nearest one is selected. If the shape did not intersect anything, then an empty dictionary is returned instead.\n--   \t\t\t\t__Note:__ This method does not take into account the @motion@ property of the object. The returned object is a dictionary containing the following fields:\n--   \t\t\t\t@collider_id@: The colliding object's ID.\n--   \t\t\t\t@linear_velocity@: The colliding object's velocity @Vector2@. If the object is an @Area2D@, the result is @(0, 0)@.\n--   \t\t\t\t@metadata@: The intersecting shape's metadata. This metadata is different from @method Object.get_meta@, and is set with @method Physics2DServer.shape_set_data@.\n--   \t\t\t\t@normal@: The object's surface normal at the intersection point.\n--   \t\t\t\t@point@: The intersection point.\n--   \t\t\t\t@rid@: The intersecting object's @RID@.\n--   \t\t\t\t@shape@: The shape index of the colliding shape.\nget_rest_info ::\n                (Physics2DDirectSpaceState :< cls, Object :< cls) =>\n                cls -> Physics2DShapeQueryParameters -> IO Dictionary\nget_rest_info cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DDirectSpaceState_get_rest_info\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectSpaceState \"get_rest_info\"\n           '[Physics2DShapeQueryParameters]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.Physics2DDirectSpaceState.get_rest_info\n\n{-# NOINLINE bindPhysics2DDirectSpaceState_intersect_point #-}\n\n-- | Checks whether a point is inside any shape. The shapes the point is inside of are returned in an array containing dictionaries with the following fields:\n--   \t\t\t\t@collider@: The colliding object.\n--   \t\t\t\t@collider_id@: The colliding object's ID.\n--   \t\t\t\t@metadata@: The intersecting shape's metadata. This metadata is different from @method Object.get_meta@, and is set with @method Physics2DServer.shape_set_data@.\n--   \t\t\t\t@rid@: The intersecting object's @RID@.\n--   \t\t\t\t@shape@: The shape index of the colliding shape.\n--   \t\t\t\tAdditionally, the method can take an @exclude@ array of objects or @RID@s that are to be excluded from collisions, a @collision_mask@ bitmask representing the physics layers to check in, or booleans to determine if the ray should collide with @PhysicsBody@s or @Area@s, respectively.\nbindPhysics2DDirectSpaceState_intersect_point :: MethodBind\nbindPhysics2DDirectSpaceState_intersect_point\n  = unsafePerformIO $\n      withCString \"Physics2DDirectSpaceState\" $\n        \\ clsNamePtr ->\n          withCString \"intersect_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Checks whether a point is inside any shape. The shapes the point is inside of are returned in an array containing dictionaries with the following fields:\n--   \t\t\t\t@collider@: The colliding object.\n--   \t\t\t\t@collider_id@: The colliding object's ID.\n--   \t\t\t\t@metadata@: The intersecting shape's metadata. This metadata is different from @method Object.get_meta@, and is set with @method Physics2DServer.shape_set_data@.\n--   \t\t\t\t@rid@: The intersecting object's @RID@.\n--   \t\t\t\t@shape@: The shape index of the colliding shape.\n--   \t\t\t\tAdditionally, the method can take an @exclude@ array of objects or @RID@s that are to be excluded from collisions, a @collision_mask@ bitmask representing the physics layers to check in, or booleans to determine if the ray should collide with @PhysicsBody@s or @Area@s, respectively.\nintersect_point ::\n                  (Physics2DDirectSpaceState :< cls, Object :< cls) =>\n                  cls ->\n                    Vector2 ->\n                      Maybe Int ->\n                        Maybe Array -> Maybe Int -> Maybe Bool -> Maybe Bool -> IO Array\nintersect_point cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (32)) toVariant arg2,\n       defaultedVariant VariantArray V.empty arg3,\n       maybe (VariantInt (2147483647)) toVariant arg4,\n       maybe (VariantBool True) toVariant arg5,\n       maybe (VariantBool False) toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectSpaceState_intersect_point\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectSpaceState \"intersect_point\"\n           '[Vector2, Maybe Int, Maybe Array, Maybe Int, Maybe Bool,\n             Maybe Bool]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Physics2DDirectSpaceState.intersect_point\n\n{-# NOINLINE bindPhysics2DDirectSpaceState_intersect_point_on_canvas\n             #-}\n\nbindPhysics2DDirectSpaceState_intersect_point_on_canvas ::\n                                                        MethodBind\nbindPhysics2DDirectSpaceState_intersect_point_on_canvas\n  = unsafePerformIO $\n      withCString \"Physics2DDirectSpaceState\" $\n        \\ clsNamePtr ->\n          withCString \"intersect_point_on_canvas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nintersect_point_on_canvas ::\n                            (Physics2DDirectSpaceState :< cls, Object :< cls) =>\n                            cls ->\n                              Vector2 ->\n                                Int ->\n                                  Maybe Int ->\n                                    Maybe Array -> Maybe Int -> Maybe Bool -> Maybe Bool -> IO Array\nintersect_point_on_canvas cls arg1 arg2 arg3 arg4 arg5 arg6 arg7\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (32)) toVariant arg3,\n       defaultedVariant VariantArray V.empty arg4,\n       maybe (VariantInt (2147483647)) toVariant arg5,\n       maybe (VariantBool True) toVariant arg6,\n       maybe (VariantBool False) toVariant arg7]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectSpaceState_intersect_point_on_canvas\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectSpaceState\n           \"intersect_point_on_canvas\"\n           '[Vector2, Int, Maybe Int, Maybe Array, Maybe Int, Maybe Bool,\n             Maybe Bool]\n           (IO Array)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DDirectSpaceState.intersect_point_on_canvas\n\n{-# NOINLINE bindPhysics2DDirectSpaceState_intersect_ray #-}\n\n-- | Intersects a ray in a given space. The returned object is a dictionary with the following fields:\n--   \t\t\t\t@collider@: The colliding object.\n--   \t\t\t\t@collider_id@: The colliding object's ID.\n--   \t\t\t\t@metadata@: The intersecting shape's metadata. This metadata is different from @method Object.get_meta@, and is set with @method Physics2DServer.shape_set_data@.\n--   \t\t\t\t@normal@: The object's surface normal at the intersection point.\n--   \t\t\t\t@position@: The intersection point.\n--   \t\t\t\t@rid@: The intersecting object's @RID@.\n--   \t\t\t\t@shape@: The shape index of the colliding shape.\n--   \t\t\t\tIf the ray did not intersect anything, then an empty dictionary is returned instead.\n--   \t\t\t\tAdditionally, the method can take an @exclude@ array of objects or @RID@s that are to be excluded from collisions, a @collision_mask@ bitmask representing the physics layers to check in, or booleans to determine if the ray should collide with @PhysicsBody@s or @Area@s, respectively.\nbindPhysics2DDirectSpaceState_intersect_ray :: MethodBind\nbindPhysics2DDirectSpaceState_intersect_ray\n  = unsafePerformIO $\n      withCString \"Physics2DDirectSpaceState\" $\n        \\ clsNamePtr ->\n          withCString \"intersect_ray\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Intersects a ray in a given space. The returned object is a dictionary with the following fields:\n--   \t\t\t\t@collider@: The colliding object.\n--   \t\t\t\t@collider_id@: The colliding object's ID.\n--   \t\t\t\t@metadata@: The intersecting shape's metadata. This metadata is different from @method Object.get_meta@, and is set with @method Physics2DServer.shape_set_data@.\n--   \t\t\t\t@normal@: The object's surface normal at the intersection point.\n--   \t\t\t\t@position@: The intersection point.\n--   \t\t\t\t@rid@: The intersecting object's @RID@.\n--   \t\t\t\t@shape@: The shape index of the colliding shape.\n--   \t\t\t\tIf the ray did not intersect anything, then an empty dictionary is returned instead.\n--   \t\t\t\tAdditionally, the method can take an @exclude@ array of objects or @RID@s that are to be excluded from collisions, a @collision_mask@ bitmask representing the physics layers to check in, or booleans to determine if the ray should collide with @PhysicsBody@s or @Area@s, respectively.\nintersect_ray ::\n                (Physics2DDirectSpaceState :< cls, Object :< cls) =>\n                cls ->\n                  Vector2 ->\n                    Vector2 ->\n                      Maybe Array ->\n                        Maybe Int -> Maybe Bool -> Maybe Bool -> IO Dictionary\nintersect_ray cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantArray V.empty arg3,\n       maybe (VariantInt (2147483647)) toVariant arg4,\n       maybe (VariantBool True) toVariant arg5,\n       maybe (VariantBool False) toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DDirectSpaceState_intersect_ray\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectSpaceState \"intersect_ray\"\n           '[Vector2, Vector2, Maybe Array, Maybe Int, Maybe Bool, Maybe Bool]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.Physics2DDirectSpaceState.intersect_ray\n\n{-# NOINLINE bindPhysics2DDirectSpaceState_intersect_shape #-}\n\n-- | Checks the intersections of a shape, given through a @Physics2DShapeQueryParameters@ object, against the space.\n--   \t\t\t\t__Note:__ This method does not take into account the @motion@ property of the object. The intersected shapes are returned in an array containing dictionaries with the following fields:\n--   \t\t\t\t@collider@: The colliding object.\n--   \t\t\t\t@collider_id@: The colliding object's ID.\n--   \t\t\t\t@metadata@: The intersecting shape's metadata. This metadata is different from @method Object.get_meta@, and is set with @method Physics2DServer.shape_set_data@.\n--   \t\t\t\t@rid@: The intersecting object's @RID@.\n--   \t\t\t\t@shape@: The shape index of the colliding shape.\n--   \t\t\t\tThe number of intersections can be limited with the @max_results@ parameter, to reduce the processing time.\nbindPhysics2DDirectSpaceState_intersect_shape :: MethodBind\nbindPhysics2DDirectSpaceState_intersect_shape\n  = unsafePerformIO $\n      withCString \"Physics2DDirectSpaceState\" $\n        \\ clsNamePtr ->\n          withCString \"intersect_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Checks the intersections of a shape, given through a @Physics2DShapeQueryParameters@ object, against the space.\n--   \t\t\t\t__Note:__ This method does not take into account the @motion@ property of the object. The intersected shapes are returned in an array containing dictionaries with the following fields:\n--   \t\t\t\t@collider@: The colliding object.\n--   \t\t\t\t@collider_id@: The colliding object's ID.\n--   \t\t\t\t@metadata@: The intersecting shape's metadata. This metadata is different from @method Object.get_meta@, and is set with @method Physics2DServer.shape_set_data@.\n--   \t\t\t\t@rid@: The intersecting object's @RID@.\n--   \t\t\t\t@shape@: The shape index of the colliding shape.\n--   \t\t\t\tThe number of intersections can be limited with the @max_results@ parameter, to reduce the processing time.\nintersect_shape ::\n                  (Physics2DDirectSpaceState :< cls, Object :< cls) =>\n                  cls -> Physics2DShapeQueryParameters -> Maybe Int -> IO Array\nintersect_shape cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (32)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DDirectSpaceState_intersect_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DDirectSpaceState \"intersect_shape\"\n           '[Physics2DShapeQueryParameters, Maybe Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Physics2DDirectSpaceState.intersect_shape"
  },
  {
    "path": "src/Godot/Core/Physics2DServer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Physics2DServer\n       (Godot.Core.Physics2DServer._SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS,\n        Godot.Core.Physics2DServer._AREA_SPACE_OVERRIDE_REPLACE,\n        Godot.Core.Physics2DServer._SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH,\n        Godot.Core.Physics2DServer._CCD_MODE_DISABLED,\n        Godot.Core.Physics2DServer._JOINT_PARAM_MAX_FORCE,\n        Godot.Core.Physics2DServer._CCD_MODE_CAST_RAY,\n        Godot.Core.Physics2DServer._JOINT_GROOVE,\n        Godot.Core.Physics2DServer._BODY_PARAM_BOUNCE,\n        Godot.Core.Physics2DServer._BODY_MODE_CHARACTER,\n        Godot.Core.Physics2DServer._SHAPE_RAY,\n        Godot.Core.Physics2DServer._CCD_MODE_CAST_SHAPE,\n        Godot.Core.Physics2DServer._BODY_STATE_LINEAR_VELOCITY,\n        Godot.Core.Physics2DServer._AREA_PARAM_LINEAR_DAMP,\n        Godot.Core.Physics2DServer._BODY_PARAM_ANGULAR_DAMP,\n        Godot.Core.Physics2DServer._SPACE_PARAM_BODY_TIME_TO_SLEEP,\n        Godot.Core.Physics2DServer._BODY_PARAM_LINEAR_DAMP,\n        Godot.Core.Physics2DServer._AREA_PARAM_GRAVITY_DISTANCE_SCALE,\n        Godot.Core.Physics2DServer._BODY_STATE_ANGULAR_VELOCITY,\n        Godot.Core.Physics2DServer._AREA_BODY_REMOVED,\n        Godot.Core.Physics2DServer._BODY_STATE_SLEEPING,\n        Godot.Core.Physics2DServer._INFO_ISLAND_COUNT,\n        Godot.Core.Physics2DServer._AREA_SPACE_OVERRIDE_DISABLED,\n        Godot.Core.Physics2DServer._AREA_PARAM_GRAVITY_IS_POINT,\n        Godot.Core.Physics2DServer._AREA_PARAM_GRAVITY_POINT_ATTENUATION,\n        Godot.Core.Physics2DServer._BODY_STATE_TRANSFORM,\n        Godot.Core.Physics2DServer._BODY_PARAM_INERTIA,\n        Godot.Core.Physics2DServer._BODY_PARAM_MASS,\n        Godot.Core.Physics2DServer._BODY_MODE_STATIC,\n        Godot.Core.Physics2DServer._JOINT_PARAM_MAX_BIAS,\n        Godot.Core.Physics2DServer._SHAPE_SEGMENT,\n        Godot.Core.Physics2DServer._BODY_PARAM_GRAVITY_SCALE,\n        Godot.Core.Physics2DServer._JOINT_DAMPED_SPRING,\n        Godot.Core.Physics2DServer._AREA_PARAM_GRAVITY,\n        Godot.Core.Physics2DServer._INFO_COLLISION_PAIRS,\n        Godot.Core.Physics2DServer._SHAPE_RECTANGLE,\n        Godot.Core.Physics2DServer._INFO_ACTIVE_OBJECTS,\n        Godot.Core.Physics2DServer._DAMPED_STRING_DAMPING,\n        Godot.Core.Physics2DServer._SPACE_PARAM_CONTACT_RECYCLE_RADIUS,\n        Godot.Core.Physics2DServer._SPACE_PARAM_CONTACT_MAX_SEPARATION,\n        Godot.Core.Physics2DServer._DAMPED_STRING_REST_LENGTH,\n        Godot.Core.Physics2DServer._AREA_BODY_ADDED,\n        Godot.Core.Physics2DServer._AREA_SPACE_OVERRIDE_COMBINE_REPLACE,\n        Godot.Core.Physics2DServer._SHAPE_CIRCLE,\n        Godot.Core.Physics2DServer._SHAPE_CONVEX_POLYGON,\n        Godot.Core.Physics2DServer._AREA_PARAM_PRIORITY,\n        Godot.Core.Physics2DServer._AREA_SPACE_OVERRIDE_REPLACE_COMBINE,\n        Godot.Core.Physics2DServer._BODY_MODE_RIGID,\n        Godot.Core.Physics2DServer._SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION,\n        Godot.Core.Physics2DServer._BODY_PARAM_FRICTION,\n        Godot.Core.Physics2DServer._SHAPE_CAPSULE,\n        Godot.Core.Physics2DServer._AREA_PARAM_ANGULAR_DAMP,\n        Godot.Core.Physics2DServer._BODY_MODE_KINEMATIC,\n        Godot.Core.Physics2DServer._SHAPE_CONCAVE_POLYGON,\n        Godot.Core.Physics2DServer._AREA_PARAM_GRAVITY_VECTOR,\n        Godot.Core.Physics2DServer._JOINT_PARAM_BIAS,\n        Godot.Core.Physics2DServer._SHAPE_CUSTOM,\n        Godot.Core.Physics2DServer._BODY_STATE_CAN_SLEEP,\n        Godot.Core.Physics2DServer._BODY_PARAM_MAX,\n        Godot.Core.Physics2DServer._SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD,\n        Godot.Core.Physics2DServer._SHAPE_LINE,\n        Godot.Core.Physics2DServer._JOINT_PIN,\n        Godot.Core.Physics2DServer._AREA_SPACE_OVERRIDE_COMBINE,\n        Godot.Core.Physics2DServer._DAMPED_STRING_STIFFNESS,\n        Godot.Core.Physics2DServer._SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD,\n        Godot.Core.Physics2DServer.area_add_shape,\n        Godot.Core.Physics2DServer.area_attach_canvas_instance_id,\n        Godot.Core.Physics2DServer.area_attach_object_instance_id,\n        Godot.Core.Physics2DServer.area_clear_shapes,\n        Godot.Core.Physics2DServer.area_create,\n        Godot.Core.Physics2DServer.area_get_canvas_instance_id,\n        Godot.Core.Physics2DServer.area_get_object_instance_id,\n        Godot.Core.Physics2DServer.area_get_param,\n        Godot.Core.Physics2DServer.area_get_shape,\n        Godot.Core.Physics2DServer.area_get_shape_count,\n        Godot.Core.Physics2DServer.area_get_shape_transform,\n        Godot.Core.Physics2DServer.area_get_space,\n        Godot.Core.Physics2DServer.area_get_space_override_mode,\n        Godot.Core.Physics2DServer.area_get_transform,\n        Godot.Core.Physics2DServer.area_remove_shape,\n        Godot.Core.Physics2DServer.area_set_area_monitor_callback,\n        Godot.Core.Physics2DServer.area_set_collision_layer,\n        Godot.Core.Physics2DServer.area_set_collision_mask,\n        Godot.Core.Physics2DServer.area_set_monitor_callback,\n        Godot.Core.Physics2DServer.area_set_monitorable,\n        Godot.Core.Physics2DServer.area_set_param,\n        Godot.Core.Physics2DServer.area_set_shape,\n        Godot.Core.Physics2DServer.area_set_shape_disabled,\n        Godot.Core.Physics2DServer.area_set_shape_transform,\n        Godot.Core.Physics2DServer.area_set_space,\n        Godot.Core.Physics2DServer.area_set_space_override_mode,\n        Godot.Core.Physics2DServer.area_set_transform,\n        Godot.Core.Physics2DServer.body_add_central_force,\n        Godot.Core.Physics2DServer.body_add_collision_exception,\n        Godot.Core.Physics2DServer.body_add_force,\n        Godot.Core.Physics2DServer.body_add_shape,\n        Godot.Core.Physics2DServer.body_add_torque,\n        Godot.Core.Physics2DServer.body_apply_central_impulse,\n        Godot.Core.Physics2DServer.body_apply_impulse,\n        Godot.Core.Physics2DServer.body_apply_torque_impulse,\n        Godot.Core.Physics2DServer.body_attach_canvas_instance_id,\n        Godot.Core.Physics2DServer.body_attach_object_instance_id,\n        Godot.Core.Physics2DServer.body_clear_shapes,\n        Godot.Core.Physics2DServer.body_create,\n        Godot.Core.Physics2DServer.body_get_canvas_instance_id,\n        Godot.Core.Physics2DServer.body_get_collision_layer,\n        Godot.Core.Physics2DServer.body_get_collision_mask,\n        Godot.Core.Physics2DServer.body_get_continuous_collision_detection_mode,\n        Godot.Core.Physics2DServer.body_get_direct_state,\n        Godot.Core.Physics2DServer.body_get_max_contacts_reported,\n        Godot.Core.Physics2DServer.body_get_mode,\n        Godot.Core.Physics2DServer.body_get_object_instance_id,\n        Godot.Core.Physics2DServer.body_get_param,\n        Godot.Core.Physics2DServer.body_get_shape,\n        Godot.Core.Physics2DServer.body_get_shape_count,\n        Godot.Core.Physics2DServer.body_get_shape_metadata,\n        Godot.Core.Physics2DServer.body_get_shape_transform,\n        Godot.Core.Physics2DServer.body_get_space,\n        Godot.Core.Physics2DServer.body_get_state,\n        Godot.Core.Physics2DServer.body_is_omitting_force_integration,\n        Godot.Core.Physics2DServer.body_remove_collision_exception,\n        Godot.Core.Physics2DServer.body_remove_shape,\n        Godot.Core.Physics2DServer.body_set_axis_velocity,\n        Godot.Core.Physics2DServer.body_set_collision_layer,\n        Godot.Core.Physics2DServer.body_set_collision_mask,\n        Godot.Core.Physics2DServer.body_set_continuous_collision_detection_mode,\n        Godot.Core.Physics2DServer.body_set_force_integration_callback,\n        Godot.Core.Physics2DServer.body_set_max_contacts_reported,\n        Godot.Core.Physics2DServer.body_set_mode,\n        Godot.Core.Physics2DServer.body_set_omit_force_integration,\n        Godot.Core.Physics2DServer.body_set_param,\n        Godot.Core.Physics2DServer.body_set_shape,\n        Godot.Core.Physics2DServer.body_set_shape_as_one_way_collision,\n        Godot.Core.Physics2DServer.body_set_shape_disabled,\n        Godot.Core.Physics2DServer.body_set_shape_metadata,\n        Godot.Core.Physics2DServer.body_set_shape_transform,\n        Godot.Core.Physics2DServer.body_set_space,\n        Godot.Core.Physics2DServer.body_set_state,\n        Godot.Core.Physics2DServer.body_test_motion,\n        Godot.Core.Physics2DServer.capsule_shape_create,\n        Godot.Core.Physics2DServer.circle_shape_create,\n        Godot.Core.Physics2DServer.concave_polygon_shape_create,\n        Godot.Core.Physics2DServer.convex_polygon_shape_create,\n        Godot.Core.Physics2DServer.damped_spring_joint_create,\n        Godot.Core.Physics2DServer.damped_string_joint_get_param,\n        Godot.Core.Physics2DServer.damped_string_joint_set_param,\n        Godot.Core.Physics2DServer.free_rid,\n        Godot.Core.Physics2DServer.get_process_info,\n        Godot.Core.Physics2DServer.groove_joint_create,\n        Godot.Core.Physics2DServer.joint_get_param,\n        Godot.Core.Physics2DServer.joint_get_type,\n        Godot.Core.Physics2DServer.joint_set_param,\n        Godot.Core.Physics2DServer.line_shape_create,\n        Godot.Core.Physics2DServer.pin_joint_create,\n        Godot.Core.Physics2DServer.ray_shape_create,\n        Godot.Core.Physics2DServer.rectangle_shape_create,\n        Godot.Core.Physics2DServer.segment_shape_create,\n        Godot.Core.Physics2DServer.set_active,\n        Godot.Core.Physics2DServer.shape_get_data,\n        Godot.Core.Physics2DServer.shape_get_type,\n        Godot.Core.Physics2DServer.shape_set_data,\n        Godot.Core.Physics2DServer.space_create,\n        Godot.Core.Physics2DServer.space_get_direct_state,\n        Godot.Core.Physics2DServer.space_get_param,\n        Godot.Core.Physics2DServer.space_is_active,\n        Godot.Core.Physics2DServer.space_set_active,\n        Godot.Core.Physics2DServer.space_set_param)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n_SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS :: Int\n_SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS = 6\n\n_AREA_SPACE_OVERRIDE_REPLACE :: Int\n_AREA_SPACE_OVERRIDE_REPLACE = 3\n\n_SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH :: Int\n_SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH = 7\n\n_CCD_MODE_DISABLED :: Int\n_CCD_MODE_DISABLED = 0\n\n_JOINT_PARAM_MAX_FORCE :: Int\n_JOINT_PARAM_MAX_FORCE = 2\n\n_CCD_MODE_CAST_RAY :: Int\n_CCD_MODE_CAST_RAY = 1\n\n_JOINT_GROOVE :: Int\n_JOINT_GROOVE = 1\n\n_BODY_PARAM_BOUNCE :: Int\n_BODY_PARAM_BOUNCE = 0\n\n_BODY_MODE_CHARACTER :: Int\n_BODY_MODE_CHARACTER = 3\n\n_SHAPE_RAY :: Int\n_SHAPE_RAY = 1\n\n_CCD_MODE_CAST_SHAPE :: Int\n_CCD_MODE_CAST_SHAPE = 2\n\n_BODY_STATE_LINEAR_VELOCITY :: Int\n_BODY_STATE_LINEAR_VELOCITY = 1\n\n_AREA_PARAM_LINEAR_DAMP :: Int\n_AREA_PARAM_LINEAR_DAMP = 5\n\n_BODY_PARAM_ANGULAR_DAMP :: Int\n_BODY_PARAM_ANGULAR_DAMP = 6\n\n_SPACE_PARAM_BODY_TIME_TO_SLEEP :: Int\n_SPACE_PARAM_BODY_TIME_TO_SLEEP = 5\n\n_BODY_PARAM_LINEAR_DAMP :: Int\n_BODY_PARAM_LINEAR_DAMP = 5\n\n_AREA_PARAM_GRAVITY_DISTANCE_SCALE :: Int\n_AREA_PARAM_GRAVITY_DISTANCE_SCALE = 3\n\n_BODY_STATE_ANGULAR_VELOCITY :: Int\n_BODY_STATE_ANGULAR_VELOCITY = 2\n\n_AREA_BODY_REMOVED :: Int\n_AREA_BODY_REMOVED = 1\n\n_BODY_STATE_SLEEPING :: Int\n_BODY_STATE_SLEEPING = 3\n\n_INFO_ISLAND_COUNT :: Int\n_INFO_ISLAND_COUNT = 2\n\n_AREA_SPACE_OVERRIDE_DISABLED :: Int\n_AREA_SPACE_OVERRIDE_DISABLED = 0\n\n_AREA_PARAM_GRAVITY_IS_POINT :: Int\n_AREA_PARAM_GRAVITY_IS_POINT = 2\n\n_AREA_PARAM_GRAVITY_POINT_ATTENUATION :: Int\n_AREA_PARAM_GRAVITY_POINT_ATTENUATION = 4\n\n_BODY_STATE_TRANSFORM :: Int\n_BODY_STATE_TRANSFORM = 0\n\n_BODY_PARAM_INERTIA :: Int\n_BODY_PARAM_INERTIA = 3\n\n_BODY_PARAM_MASS :: Int\n_BODY_PARAM_MASS = 2\n\n_BODY_MODE_STATIC :: Int\n_BODY_MODE_STATIC = 0\n\n_JOINT_PARAM_MAX_BIAS :: Int\n_JOINT_PARAM_MAX_BIAS = 1\n\n_SHAPE_SEGMENT :: Int\n_SHAPE_SEGMENT = 2\n\n_BODY_PARAM_GRAVITY_SCALE :: Int\n_BODY_PARAM_GRAVITY_SCALE = 4\n\n_JOINT_DAMPED_SPRING :: Int\n_JOINT_DAMPED_SPRING = 2\n\n_AREA_PARAM_GRAVITY :: Int\n_AREA_PARAM_GRAVITY = 0\n\n_INFO_COLLISION_PAIRS :: Int\n_INFO_COLLISION_PAIRS = 1\n\n_SHAPE_RECTANGLE :: Int\n_SHAPE_RECTANGLE = 4\n\n_INFO_ACTIVE_OBJECTS :: Int\n_INFO_ACTIVE_OBJECTS = 0\n\n_DAMPED_STRING_DAMPING :: Int\n_DAMPED_STRING_DAMPING = 2\n\n_SPACE_PARAM_CONTACT_RECYCLE_RADIUS :: Int\n_SPACE_PARAM_CONTACT_RECYCLE_RADIUS = 0\n\n_SPACE_PARAM_CONTACT_MAX_SEPARATION :: Int\n_SPACE_PARAM_CONTACT_MAX_SEPARATION = 1\n\n_DAMPED_STRING_REST_LENGTH :: Int\n_DAMPED_STRING_REST_LENGTH = 0\n\n_AREA_BODY_ADDED :: Int\n_AREA_BODY_ADDED = 0\n\n_AREA_SPACE_OVERRIDE_COMBINE_REPLACE :: Int\n_AREA_SPACE_OVERRIDE_COMBINE_REPLACE = 2\n\n_SHAPE_CIRCLE :: Int\n_SHAPE_CIRCLE = 3\n\n_SHAPE_CONVEX_POLYGON :: Int\n_SHAPE_CONVEX_POLYGON = 6\n\n_AREA_PARAM_PRIORITY :: Int\n_AREA_PARAM_PRIORITY = 7\n\n_AREA_SPACE_OVERRIDE_REPLACE_COMBINE :: Int\n_AREA_SPACE_OVERRIDE_REPLACE_COMBINE = 4\n\n_BODY_MODE_RIGID :: Int\n_BODY_MODE_RIGID = 2\n\n_SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION :: Int\n_SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION = 2\n\n_BODY_PARAM_FRICTION :: Int\n_BODY_PARAM_FRICTION = 1\n\n_SHAPE_CAPSULE :: Int\n_SHAPE_CAPSULE = 5\n\n_AREA_PARAM_ANGULAR_DAMP :: Int\n_AREA_PARAM_ANGULAR_DAMP = 6\n\n_BODY_MODE_KINEMATIC :: Int\n_BODY_MODE_KINEMATIC = 1\n\n_SHAPE_CONCAVE_POLYGON :: Int\n_SHAPE_CONCAVE_POLYGON = 7\n\n_AREA_PARAM_GRAVITY_VECTOR :: Int\n_AREA_PARAM_GRAVITY_VECTOR = 1\n\n_JOINT_PARAM_BIAS :: Int\n_JOINT_PARAM_BIAS = 0\n\n_SHAPE_CUSTOM :: Int\n_SHAPE_CUSTOM = 8\n\n_BODY_STATE_CAN_SLEEP :: Int\n_BODY_STATE_CAN_SLEEP = 4\n\n_BODY_PARAM_MAX :: Int\n_BODY_PARAM_MAX = 7\n\n_SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD :: Int\n_SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD = 4\n\n_SHAPE_LINE :: Int\n_SHAPE_LINE = 0\n\n_JOINT_PIN :: Int\n_JOINT_PIN = 0\n\n_AREA_SPACE_OVERRIDE_COMBINE :: Int\n_AREA_SPACE_OVERRIDE_COMBINE = 1\n\n_DAMPED_STRING_STIFFNESS :: Int\n_DAMPED_STRING_STIFFNESS = 1\n\n_SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD :: Int\n_SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD = 3\n\n{-# NOINLINE bindPhysics2DServer_area_add_shape #-}\n\n-- | Adds a shape to the area, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index.\nbindPhysics2DServer_area_add_shape :: MethodBind\nbindPhysics2DServer_area_add_shape\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_add_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a shape to the area, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index.\narea_add_shape ::\n                 (Physics2DServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Rid -> Maybe Transform2d -> Maybe Bool -> IO ()\narea_add_shape cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantTransform2d\n         (TF2d (V2 1 0) (V2 0 1) (V2 0 0))\n         arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_add_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_add_shape\"\n           '[Rid, Rid, Maybe Transform2d, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_add_shape\n\n{-# NOINLINE bindPhysics2DServer_area_attach_canvas_instance_id #-}\n\nbindPhysics2DServer_area_attach_canvas_instance_id :: MethodBind\nbindPhysics2DServer_area_attach_canvas_instance_id\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_attach_canvas_instance_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\narea_attach_canvas_instance_id ::\n                                 (Physics2DServer :< cls, Object :< cls) =>\n                                 cls -> Rid -> Int -> IO ()\narea_attach_canvas_instance_id cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_area_attach_canvas_instance_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer\n           \"area_attach_canvas_instance_id\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.area_attach_canvas_instance_id\n\n{-# NOINLINE bindPhysics2DServer_area_attach_object_instance_id #-}\n\n-- | Assigns the area to a descendant of @Object@, so it can exist in the node tree.\nbindPhysics2DServer_area_attach_object_instance_id :: MethodBind\nbindPhysics2DServer_area_attach_object_instance_id\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_attach_object_instance_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Assigns the area to a descendant of @Object@, so it can exist in the node tree.\narea_attach_object_instance_id ::\n                                 (Physics2DServer :< cls, Object :< cls) =>\n                                 cls -> Rid -> Int -> IO ()\narea_attach_object_instance_id cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_area_attach_object_instance_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer\n           \"area_attach_object_instance_id\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.area_attach_object_instance_id\n\n{-# NOINLINE bindPhysics2DServer_area_clear_shapes #-}\n\n-- | Removes all shapes from an area. It does not delete the shapes, so they can be reassigned later.\nbindPhysics2DServer_area_clear_shapes :: MethodBind\nbindPhysics2DServer_area_clear_shapes\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_clear_shapes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all shapes from an area. It does not delete the shapes, so they can be reassigned later.\narea_clear_shapes ::\n                    (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO ()\narea_clear_shapes cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_clear_shapes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_clear_shapes\" '[Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_clear_shapes\n\n{-# NOINLINE bindPhysics2DServer_area_create #-}\n\n-- | Creates an @Area2D@.\nbindPhysics2DServer_area_create :: MethodBind\nbindPhysics2DServer_area_create\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates an @Area2D@.\narea_create ::\n              (Physics2DServer :< cls, Object :< cls) => cls -> IO Rid\narea_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_create (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_create\n\n{-# NOINLINE bindPhysics2DServer_area_get_canvas_instance_id #-}\n\nbindPhysics2DServer_area_get_canvas_instance_id :: MethodBind\nbindPhysics2DServer_area_get_canvas_instance_id\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_get_canvas_instance_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\narea_get_canvas_instance_id ::\n                              (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO Int\narea_get_canvas_instance_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_area_get_canvas_instance_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_get_canvas_instance_id\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_get_canvas_instance_id\n\n{-# NOINLINE bindPhysics2DServer_area_get_object_instance_id #-}\n\n-- | Gets the instance ID of the object the area is assigned to.\nbindPhysics2DServer_area_get_object_instance_id :: MethodBind\nbindPhysics2DServer_area_get_object_instance_id\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_get_object_instance_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the instance ID of the object the area is assigned to.\narea_get_object_instance_id ::\n                              (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO Int\narea_get_object_instance_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_area_get_object_instance_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_get_object_instance_id\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_get_object_instance_id\n\n{-# NOINLINE bindPhysics2DServer_area_get_param #-}\n\n-- | Returns an area parameter value. See @enum AreaParameter@ for a list of available parameters.\nbindPhysics2DServer_area_get_param :: MethodBind\nbindPhysics2DServer_area_get_param\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an area parameter value. See @enum AreaParameter@ for a list of available parameters.\narea_get_param ::\n                 (Physics2DServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> IO GodotVariant\narea_get_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_get_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_get_param\" '[Rid, Int]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_get_param\n\n{-# NOINLINE bindPhysics2DServer_area_get_shape #-}\n\n-- | Returns the @RID@ of the nth shape of an area.\nbindPhysics2DServer_area_get_shape :: MethodBind\nbindPhysics2DServer_area_get_shape\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_get_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @RID@ of the nth shape of an area.\narea_get_shape ::\n                 (Physics2DServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> IO Rid\narea_get_shape cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_get_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_get_shape\" '[Rid, Int]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_get_shape\n\n{-# NOINLINE bindPhysics2DServer_area_get_shape_count #-}\n\n-- | Returns the number of shapes assigned to an area.\nbindPhysics2DServer_area_get_shape_count :: MethodBind\nbindPhysics2DServer_area_get_shape_count\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_get_shape_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of shapes assigned to an area.\narea_get_shape_count ::\n                       (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO Int\narea_get_shape_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_get_shape_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_get_shape_count\" '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_get_shape_count\n\n{-# NOINLINE bindPhysics2DServer_area_get_shape_transform #-}\n\n-- | Returns the transform matrix of a shape within an area.\nbindPhysics2DServer_area_get_shape_transform :: MethodBind\nbindPhysics2DServer_area_get_shape_transform\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_get_shape_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the transform matrix of a shape within an area.\narea_get_shape_transform ::\n                           (Physics2DServer :< cls, Object :< cls) =>\n                           cls -> Rid -> Int -> IO Transform2d\narea_get_shape_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_get_shape_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_get_shape_transform\"\n           '[Rid, Int]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_get_shape_transform\n\n{-# NOINLINE bindPhysics2DServer_area_get_space #-}\n\n-- | Returns the space assigned to the area.\nbindPhysics2DServer_area_get_space :: MethodBind\nbindPhysics2DServer_area_get_space\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_get_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the space assigned to the area.\narea_get_space ::\n                 (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO Rid\narea_get_space cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_get_space\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_get_space\" '[Rid]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_get_space\n\n{-# NOINLINE bindPhysics2DServer_area_get_space_override_mode #-}\n\n-- | Returns the space override mode for the area.\nbindPhysics2DServer_area_get_space_override_mode :: MethodBind\nbindPhysics2DServer_area_get_space_override_mode\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_get_space_override_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the space override mode for the area.\narea_get_space_override_mode ::\n                               (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO Int\narea_get_space_override_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_area_get_space_override_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_get_space_override_mode\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.area_get_space_override_mode\n\n{-# NOINLINE bindPhysics2DServer_area_get_transform #-}\n\n-- | Returns the transform matrix for an area.\nbindPhysics2DServer_area_get_transform :: MethodBind\nbindPhysics2DServer_area_get_transform\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_get_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the transform matrix for an area.\narea_get_transform ::\n                     (Physics2DServer :< cls, Object :< cls) =>\n                     cls -> Rid -> IO Transform2d\narea_get_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_get_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_get_transform\" '[Rid]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_get_transform\n\n{-# NOINLINE bindPhysics2DServer_area_remove_shape #-}\n\n-- | Removes a shape from an area. It does not delete the shape, so it can be reassigned later.\nbindPhysics2DServer_area_remove_shape :: MethodBind\nbindPhysics2DServer_area_remove_shape\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_remove_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a shape from an area. It does not delete the shape, so it can be reassigned later.\narea_remove_shape ::\n                    (Physics2DServer :< cls, Object :< cls) =>\n                    cls -> Rid -> Int -> IO ()\narea_remove_shape cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_remove_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_remove_shape\" '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_remove_shape\n\n{-# NOINLINE bindPhysics2DServer_area_set_area_monitor_callback #-}\n\nbindPhysics2DServer_area_set_area_monitor_callback :: MethodBind\nbindPhysics2DServer_area_set_area_monitor_callback\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_area_monitor_callback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\narea_set_area_monitor_callback ::\n                                 (Physics2DServer :< cls, Object :< cls) =>\n                                 cls -> Rid -> Object -> GodotString -> IO ()\narea_set_area_monitor_callback cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_area_set_area_monitor_callback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer\n           \"area_set_area_monitor_callback\"\n           '[Rid, Object, GodotString]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.area_set_area_monitor_callback\n\n{-# NOINLINE bindPhysics2DServer_area_set_collision_layer #-}\n\n-- | Assigns the area to one or many physics layers.\nbindPhysics2DServer_area_set_collision_layer :: MethodBind\nbindPhysics2DServer_area_set_collision_layer\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Assigns the area to one or many physics layers.\narea_set_collision_layer ::\n                           (Physics2DServer :< cls, Object :< cls) =>\n                           cls -> Rid -> Int -> IO ()\narea_set_collision_layer cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_set_collision_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_set_collision_layer\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_set_collision_layer\n\n{-# NOINLINE bindPhysics2DServer_area_set_collision_mask #-}\n\n-- | Sets which physics layers the area will monitor.\nbindPhysics2DServer_area_set_collision_mask :: MethodBind\nbindPhysics2DServer_area_set_collision_mask\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets which physics layers the area will monitor.\narea_set_collision_mask ::\n                          (Physics2DServer :< cls, Object :< cls) =>\n                          cls -> Rid -> Int -> IO ()\narea_set_collision_mask cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_set_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_set_collision_mask\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_set_collision_mask\n\n{-# NOINLINE bindPhysics2DServer_area_set_monitor_callback #-}\n\n-- | Sets the function to call when any body/area enters or exits the area. This callback will be called for any object interacting with the area, and takes five parameters:\n--   \t\t\t\t1: @AREA_BODY_ADDED@ or @AREA_BODY_REMOVED@, depending on whether the object entered or exited the area.\n--   \t\t\t\t2: @RID@ of the object that entered/exited the area.\n--   \t\t\t\t3: Instance ID of the object that entered/exited the area.\n--   \t\t\t\t4: The shape index of the object that entered/exited the area.\n--   \t\t\t\t5: The shape index of the area where the object entered/exited.\nbindPhysics2DServer_area_set_monitor_callback :: MethodBind\nbindPhysics2DServer_area_set_monitor_callback\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_monitor_callback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the function to call when any body/area enters or exits the area. This callback will be called for any object interacting with the area, and takes five parameters:\n--   \t\t\t\t1: @AREA_BODY_ADDED@ or @AREA_BODY_REMOVED@, depending on whether the object entered or exited the area.\n--   \t\t\t\t2: @RID@ of the object that entered/exited the area.\n--   \t\t\t\t3: Instance ID of the object that entered/exited the area.\n--   \t\t\t\t4: The shape index of the object that entered/exited the area.\n--   \t\t\t\t5: The shape index of the area where the object entered/exited.\narea_set_monitor_callback ::\n                            (Physics2DServer :< cls, Object :< cls) =>\n                            cls -> Rid -> Object -> GodotString -> IO ()\narea_set_monitor_callback cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_area_set_monitor_callback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_set_monitor_callback\"\n           '[Rid, Object, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_set_monitor_callback\n\n{-# NOINLINE bindPhysics2DServer_area_set_monitorable #-}\n\nbindPhysics2DServer_area_set_monitorable :: MethodBind\nbindPhysics2DServer_area_set_monitorable\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_monitorable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\narea_set_monitorable ::\n                       (Physics2DServer :< cls, Object :< cls) =>\n                       cls -> Rid -> Bool -> IO ()\narea_set_monitorable cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_set_monitorable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_set_monitorable\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_set_monitorable\n\n{-# NOINLINE bindPhysics2DServer_area_set_param #-}\n\n-- | Sets the value for an area parameter. See @enum AreaParameter@ for a list of available parameters.\nbindPhysics2DServer_area_set_param :: MethodBind\nbindPhysics2DServer_area_set_param\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the value for an area parameter. See @enum AreaParameter@ for a list of available parameters.\narea_set_param ::\n                 (Physics2DServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> GodotVariant -> IO ()\narea_set_param cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_set_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_set_param\"\n           '[Rid, Int, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_set_param\n\n{-# NOINLINE bindPhysics2DServer_area_set_shape #-}\n\n-- | Substitutes a given area shape by another. The old shape is selected by its index, the new one by its @RID@.\nbindPhysics2DServer_area_set_shape :: MethodBind\nbindPhysics2DServer_area_set_shape\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Substitutes a given area shape by another. The old shape is selected by its index, the new one by its @RID@.\narea_set_shape ::\n                 (Physics2DServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> Rid -> IO ()\narea_set_shape cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_set_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_set_shape\"\n           '[Rid, Int, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_set_shape\n\n{-# NOINLINE bindPhysics2DServer_area_set_shape_disabled #-}\n\n-- | Disables a given shape in an area.\nbindPhysics2DServer_area_set_shape_disabled :: MethodBind\nbindPhysics2DServer_area_set_shape_disabled\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_shape_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Disables a given shape in an area.\narea_set_shape_disabled ::\n                          (Physics2DServer :< cls, Object :< cls) =>\n                          cls -> Rid -> Int -> Bool -> IO ()\narea_set_shape_disabled cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_set_shape_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_set_shape_disabled\"\n           '[Rid, Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_set_shape_disabled\n\n{-# NOINLINE bindPhysics2DServer_area_set_shape_transform #-}\n\n-- | Sets the transform matrix for an area shape.\nbindPhysics2DServer_area_set_shape_transform :: MethodBind\nbindPhysics2DServer_area_set_shape_transform\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_shape_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the transform matrix for an area shape.\narea_set_shape_transform ::\n                           (Physics2DServer :< cls, Object :< cls) =>\n                           cls -> Rid -> Int -> Transform2d -> IO ()\narea_set_shape_transform cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_set_shape_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_set_shape_transform\"\n           '[Rid, Int, Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_set_shape_transform\n\n{-# NOINLINE bindPhysics2DServer_area_set_space #-}\n\n-- | Assigns a space to the area.\nbindPhysics2DServer_area_set_space :: MethodBind\nbindPhysics2DServer_area_set_space\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Assigns a space to the area.\narea_set_space ::\n                 (Physics2DServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Rid -> IO ()\narea_set_space cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_set_space\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_set_space\" '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_set_space\n\n{-# NOINLINE bindPhysics2DServer_area_set_space_override_mode #-}\n\n-- | Sets the space override mode for the area. See @enum AreaSpaceOverrideMode@ for a list of available modes.\nbindPhysics2DServer_area_set_space_override_mode :: MethodBind\nbindPhysics2DServer_area_set_space_override_mode\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_space_override_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the space override mode for the area. See @enum AreaSpaceOverrideMode@ for a list of available modes.\narea_set_space_override_mode ::\n                               (Physics2DServer :< cls, Object :< cls) =>\n                               cls -> Rid -> Int -> IO ()\narea_set_space_override_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_area_set_space_override_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_set_space_override_mode\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.area_set_space_override_mode\n\n{-# NOINLINE bindPhysics2DServer_area_set_transform #-}\n\n-- | Sets the transform matrix for an area.\nbindPhysics2DServer_area_set_transform :: MethodBind\nbindPhysics2DServer_area_set_transform\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the transform matrix for an area.\narea_set_transform ::\n                     (Physics2DServer :< cls, Object :< cls) =>\n                     cls -> Rid -> Transform2d -> IO ()\narea_set_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_area_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"area_set_transform\"\n           '[Rid, Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.area_set_transform\n\n{-# NOINLINE bindPhysics2DServer_body_add_central_force #-}\n\nbindPhysics2DServer_body_add_central_force :: MethodBind\nbindPhysics2DServer_body_add_central_force\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_add_central_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nbody_add_central_force ::\n                         (Physics2DServer :< cls, Object :< cls) =>\n                         cls -> Rid -> Vector2 -> IO ()\nbody_add_central_force cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_add_central_force\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_add_central_force\"\n           '[Rid, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_add_central_force\n\n{-# NOINLINE bindPhysics2DServer_body_add_collision_exception #-}\n\n-- | Adds a body to the list of bodies exempt from collisions.\nbindPhysics2DServer_body_add_collision_exception :: MethodBind\nbindPhysics2DServer_body_add_collision_exception\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_add_collision_exception\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a body to the list of bodies exempt from collisions.\nbody_add_collision_exception ::\n                               (Physics2DServer :< cls, Object :< cls) =>\n                               cls -> Rid -> Rid -> IO ()\nbody_add_collision_exception cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_body_add_collision_exception\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_add_collision_exception\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.body_add_collision_exception\n\n{-# NOINLINE bindPhysics2DServer_body_add_force #-}\n\n-- | Adds a positioned force to the applied force and torque. As with @method body_apply_impulse@, both the force and the offset from the body origin are in global coordinates. A force differs from an impulse in that, while the two are forces, the impulse clears itself after being applied.\nbindPhysics2DServer_body_add_force :: MethodBind\nbindPhysics2DServer_body_add_force\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_add_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a positioned force to the applied force and torque. As with @method body_apply_impulse@, both the force and the offset from the body origin are in global coordinates. A force differs from an impulse in that, while the two are forces, the impulse clears itself after being applied.\nbody_add_force ::\n                 (Physics2DServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Vector2 -> Vector2 -> IO ()\nbody_add_force cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_add_force\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_add_force\"\n           '[Rid, Vector2, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_add_force\n\n{-# NOINLINE bindPhysics2DServer_body_add_shape #-}\n\n-- | Adds a shape to the body, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index.\nbindPhysics2DServer_body_add_shape :: MethodBind\nbindPhysics2DServer_body_add_shape\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_add_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a shape to the body, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index.\nbody_add_shape ::\n                 (Physics2DServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Rid -> Maybe Transform2d -> Maybe Bool -> IO ()\nbody_add_shape cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantTransform2d\n         (TF2d (V2 1 0) (V2 0 1) (V2 0 0))\n         arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_add_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_add_shape\"\n           '[Rid, Rid, Maybe Transform2d, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_add_shape\n\n{-# NOINLINE bindPhysics2DServer_body_add_torque #-}\n\nbindPhysics2DServer_body_add_torque :: MethodBind\nbindPhysics2DServer_body_add_torque\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_add_torque\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nbody_add_torque ::\n                  (Physics2DServer :< cls, Object :< cls) =>\n                  cls -> Rid -> Float -> IO ()\nbody_add_torque cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_add_torque\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_add_torque\" '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_add_torque\n\n{-# NOINLINE bindPhysics2DServer_body_apply_central_impulse #-}\n\nbindPhysics2DServer_body_apply_central_impulse :: MethodBind\nbindPhysics2DServer_body_apply_central_impulse\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_apply_central_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nbody_apply_central_impulse ::\n                             (Physics2DServer :< cls, Object :< cls) =>\n                             cls -> Rid -> Vector2 -> IO ()\nbody_apply_central_impulse cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_body_apply_central_impulse\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_apply_central_impulse\"\n           '[Rid, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_apply_central_impulse\n\n{-# NOINLINE bindPhysics2DServer_body_apply_impulse #-}\n\n-- | Adds a positioned impulse to the applied force and torque. Both the force and the offset from the body origin are in global coordinates.\nbindPhysics2DServer_body_apply_impulse :: MethodBind\nbindPhysics2DServer_body_apply_impulse\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_apply_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a positioned impulse to the applied force and torque. Both the force and the offset from the body origin are in global coordinates.\nbody_apply_impulse ::\n                     (Physics2DServer :< cls, Object :< cls) =>\n                     cls -> Rid -> Vector2 -> Vector2 -> IO ()\nbody_apply_impulse cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_apply_impulse\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_apply_impulse\"\n           '[Rid, Vector2, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_apply_impulse\n\n{-# NOINLINE bindPhysics2DServer_body_apply_torque_impulse #-}\n\nbindPhysics2DServer_body_apply_torque_impulse :: MethodBind\nbindPhysics2DServer_body_apply_torque_impulse\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_apply_torque_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nbody_apply_torque_impulse ::\n                            (Physics2DServer :< cls, Object :< cls) =>\n                            cls -> Rid -> Float -> IO ()\nbody_apply_torque_impulse cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_body_apply_torque_impulse\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_apply_torque_impulse\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_apply_torque_impulse\n\n{-# NOINLINE bindPhysics2DServer_body_attach_canvas_instance_id #-}\n\nbindPhysics2DServer_body_attach_canvas_instance_id :: MethodBind\nbindPhysics2DServer_body_attach_canvas_instance_id\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_attach_canvas_instance_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nbody_attach_canvas_instance_id ::\n                                 (Physics2DServer :< cls, Object :< cls) =>\n                                 cls -> Rid -> Int -> IO ()\nbody_attach_canvas_instance_id cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_body_attach_canvas_instance_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer\n           \"body_attach_canvas_instance_id\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.body_attach_canvas_instance_id\n\n{-# NOINLINE bindPhysics2DServer_body_attach_object_instance_id #-}\n\n-- | Assigns the area to a descendant of @Object@, so it can exist in the node tree.\nbindPhysics2DServer_body_attach_object_instance_id :: MethodBind\nbindPhysics2DServer_body_attach_object_instance_id\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_attach_object_instance_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Assigns the area to a descendant of @Object@, so it can exist in the node tree.\nbody_attach_object_instance_id ::\n                                 (Physics2DServer :< cls, Object :< cls) =>\n                                 cls -> Rid -> Int -> IO ()\nbody_attach_object_instance_id cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_body_attach_object_instance_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer\n           \"body_attach_object_instance_id\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.body_attach_object_instance_id\n\n{-# NOINLINE bindPhysics2DServer_body_clear_shapes #-}\n\n-- | Removes all shapes from a body.\nbindPhysics2DServer_body_clear_shapes :: MethodBind\nbindPhysics2DServer_body_clear_shapes\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_clear_shapes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all shapes from a body.\nbody_clear_shapes ::\n                    (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO ()\nbody_clear_shapes cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_clear_shapes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_clear_shapes\" '[Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_clear_shapes\n\n{-# NOINLINE bindPhysics2DServer_body_create #-}\n\n-- | Creates a physics body.\nbindPhysics2DServer_body_create :: MethodBind\nbindPhysics2DServer_body_create\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a physics body.\nbody_create ::\n              (Physics2DServer :< cls, Object :< cls) => cls -> IO Rid\nbody_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_create (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_create\n\n{-# NOINLINE bindPhysics2DServer_body_get_canvas_instance_id #-}\n\nbindPhysics2DServer_body_get_canvas_instance_id :: MethodBind\nbindPhysics2DServer_body_get_canvas_instance_id\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_canvas_instance_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nbody_get_canvas_instance_id ::\n                              (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nbody_get_canvas_instance_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_body_get_canvas_instance_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_get_canvas_instance_id\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_get_canvas_instance_id\n\n{-# NOINLINE bindPhysics2DServer_body_get_collision_layer #-}\n\n-- | Returns the physics layer or layers a body belongs to.\nbindPhysics2DServer_body_get_collision_layer :: MethodBind\nbindPhysics2DServer_body_get_collision_layer\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the physics layer or layers a body belongs to.\nbody_get_collision_layer ::\n                           (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nbody_get_collision_layer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_get_collision_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_get_collision_layer\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_get_collision_layer\n\n{-# NOINLINE bindPhysics2DServer_body_get_collision_mask #-}\n\n-- | Returns the physics layer or layers a body can collide with.\nbindPhysics2DServer_body_get_collision_mask :: MethodBind\nbindPhysics2DServer_body_get_collision_mask\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the physics layer or layers a body can collide with.\nbody_get_collision_mask ::\n                          (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nbody_get_collision_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_get_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_get_collision_mask\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_get_collision_mask\n\n{-# NOINLINE bindPhysics2DServer_body_get_continuous_collision_detection_mode\n             #-}\n\n-- | Returns the continuous collision detection mode.\nbindPhysics2DServer_body_get_continuous_collision_detection_mode ::\n                                                                 MethodBind\nbindPhysics2DServer_body_get_continuous_collision_detection_mode\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_continuous_collision_detection_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the continuous collision detection mode.\nbody_get_continuous_collision_detection_mode ::\n                                               (Physics2DServer :< cls, Object :< cls) =>\n                                               cls -> Rid -> IO Int\nbody_get_continuous_collision_detection_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_body_get_continuous_collision_detection_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer\n           \"body_get_continuous_collision_detection_mode\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.body_get_continuous_collision_detection_mode\n\n{-# NOINLINE bindPhysics2DServer_body_get_direct_state #-}\n\n-- | Returns the @Physics2DDirectBodyState@ of the body.\nbindPhysics2DServer_body_get_direct_state :: MethodBind\nbindPhysics2DServer_body_get_direct_state\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_direct_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Physics2DDirectBodyState@ of the body.\nbody_get_direct_state ::\n                        (Physics2DServer :< cls, Object :< cls) =>\n                        cls -> Rid -> IO Physics2DDirectBodyState\nbody_get_direct_state cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_get_direct_state\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_get_direct_state\" '[Rid]\n           (IO Physics2DDirectBodyState)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_get_direct_state\n\n{-# NOINLINE bindPhysics2DServer_body_get_max_contacts_reported #-}\n\n-- | Returns the maximum contacts that can be reported. See @method body_set_max_contacts_reported@.\nbindPhysics2DServer_body_get_max_contacts_reported :: MethodBind\nbindPhysics2DServer_body_get_max_contacts_reported\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_max_contacts_reported\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the maximum contacts that can be reported. See @method body_set_max_contacts_reported@.\nbody_get_max_contacts_reported ::\n                                 (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nbody_get_max_contacts_reported cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_body_get_max_contacts_reported\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer\n           \"body_get_max_contacts_reported\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.body_get_max_contacts_reported\n\n{-# NOINLINE bindPhysics2DServer_body_get_mode #-}\n\n-- | Returns the body mode.\nbindPhysics2DServer_body_get_mode :: MethodBind\nbindPhysics2DServer_body_get_mode\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the body mode.\nbody_get_mode ::\n                (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nbody_get_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_get_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_get_mode\" '[Rid] (IO Int)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_get_mode\n\n{-# NOINLINE bindPhysics2DServer_body_get_object_instance_id #-}\n\n-- | Gets the instance ID of the object the area is assigned to.\nbindPhysics2DServer_body_get_object_instance_id :: MethodBind\nbindPhysics2DServer_body_get_object_instance_id\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_object_instance_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the instance ID of the object the area is assigned to.\nbody_get_object_instance_id ::\n                              (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nbody_get_object_instance_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_body_get_object_instance_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_get_object_instance_id\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_get_object_instance_id\n\n{-# NOINLINE bindPhysics2DServer_body_get_param #-}\n\n-- | Returns the value of a body parameter. See @enum BodyParameter@ for a list of available parameters.\nbindPhysics2DServer_body_get_param :: MethodBind\nbindPhysics2DServer_body_get_param\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of a body parameter. See @enum BodyParameter@ for a list of available parameters.\nbody_get_param ::\n                 (Physics2DServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> IO Float\nbody_get_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_get_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_get_param\" '[Rid, Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_get_param\n\n{-# NOINLINE bindPhysics2DServer_body_get_shape #-}\n\n-- | Returns the @RID@ of the nth shape of a body.\nbindPhysics2DServer_body_get_shape :: MethodBind\nbindPhysics2DServer_body_get_shape\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @RID@ of the nth shape of a body.\nbody_get_shape ::\n                 (Physics2DServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> IO Rid\nbody_get_shape cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_get_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_get_shape\" '[Rid, Int]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_get_shape\n\n{-# NOINLINE bindPhysics2DServer_body_get_shape_count #-}\n\n-- | Returns the number of shapes assigned to a body.\nbindPhysics2DServer_body_get_shape_count :: MethodBind\nbindPhysics2DServer_body_get_shape_count\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_shape_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of shapes assigned to a body.\nbody_get_shape_count ::\n                       (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nbody_get_shape_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_get_shape_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_get_shape_count\" '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_get_shape_count\n\n{-# NOINLINE bindPhysics2DServer_body_get_shape_metadata #-}\n\n-- | Returns the metadata of a shape of a body.\nbindPhysics2DServer_body_get_shape_metadata :: MethodBind\nbindPhysics2DServer_body_get_shape_metadata\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_shape_metadata\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the metadata of a shape of a body.\nbody_get_shape_metadata ::\n                          (Physics2DServer :< cls, Object :< cls) =>\n                          cls -> Rid -> Int -> IO GodotVariant\nbody_get_shape_metadata cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_get_shape_metadata\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_get_shape_metadata\"\n           '[Rid, Int]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_get_shape_metadata\n\n{-# NOINLINE bindPhysics2DServer_body_get_shape_transform #-}\n\n-- | Returns the transform matrix of a body shape.\nbindPhysics2DServer_body_get_shape_transform :: MethodBind\nbindPhysics2DServer_body_get_shape_transform\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_shape_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the transform matrix of a body shape.\nbody_get_shape_transform ::\n                           (Physics2DServer :< cls, Object :< cls) =>\n                           cls -> Rid -> Int -> IO Transform2d\nbody_get_shape_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_get_shape_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_get_shape_transform\"\n           '[Rid, Int]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_get_shape_transform\n\n{-# NOINLINE bindPhysics2DServer_body_get_space #-}\n\n-- | Returns the @RID@ of the space assigned to a body.\nbindPhysics2DServer_body_get_space :: MethodBind\nbindPhysics2DServer_body_get_space\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @RID@ of the space assigned to a body.\nbody_get_space ::\n                 (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO Rid\nbody_get_space cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_get_space\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_get_space\" '[Rid]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_get_space\n\n{-# NOINLINE bindPhysics2DServer_body_get_state #-}\n\n-- | Returns a body state.\nbindPhysics2DServer_body_get_state :: MethodBind\nbindPhysics2DServer_body_get_state\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a body state.\nbody_get_state ::\n                 (Physics2DServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> IO GodotVariant\nbody_get_state cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_get_state\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_get_state\" '[Rid, Int]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_get_state\n\n{-# NOINLINE bindPhysics2DServer_body_is_omitting_force_integration\n             #-}\n\n-- | Returns whether a body uses a callback function to calculate its own physics (see @method body_set_force_integration_callback@).\nbindPhysics2DServer_body_is_omitting_force_integration ::\n                                                       MethodBind\nbindPhysics2DServer_body_is_omitting_force_integration\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_is_omitting_force_integration\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether a body uses a callback function to calculate its own physics (see @method body_set_force_integration_callback@).\nbody_is_omitting_force_integration ::\n                                     (Physics2DServer :< cls, Object :< cls) =>\n                                     cls -> Rid -> IO Bool\nbody_is_omitting_force_integration cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_body_is_omitting_force_integration\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer\n           \"body_is_omitting_force_integration\"\n           '[Rid]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.body_is_omitting_force_integration\n\n{-# NOINLINE bindPhysics2DServer_body_remove_collision_exception\n             #-}\n\n-- | Removes a body from the list of bodies exempt from collisions.\nbindPhysics2DServer_body_remove_collision_exception :: MethodBind\nbindPhysics2DServer_body_remove_collision_exception\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_remove_collision_exception\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a body from the list of bodies exempt from collisions.\nbody_remove_collision_exception ::\n                                  (Physics2DServer :< cls, Object :< cls) =>\n                                  cls -> Rid -> Rid -> IO ()\nbody_remove_collision_exception cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_body_remove_collision_exception\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer\n           \"body_remove_collision_exception\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.body_remove_collision_exception\n\n{-# NOINLINE bindPhysics2DServer_body_remove_shape #-}\n\n-- | Removes a shape from a body. The shape is not deleted, so it can be reused afterwards.\nbindPhysics2DServer_body_remove_shape :: MethodBind\nbindPhysics2DServer_body_remove_shape\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_remove_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a shape from a body. The shape is not deleted, so it can be reused afterwards.\nbody_remove_shape ::\n                    (Physics2DServer :< cls, Object :< cls) =>\n                    cls -> Rid -> Int -> IO ()\nbody_remove_shape cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_remove_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_remove_shape\" '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_remove_shape\n\n{-# NOINLINE bindPhysics2DServer_body_set_axis_velocity #-}\n\n-- | Sets an axis velocity. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior.\nbindPhysics2DServer_body_set_axis_velocity :: MethodBind\nbindPhysics2DServer_body_set_axis_velocity\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_axis_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets an axis velocity. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior.\nbody_set_axis_velocity ::\n                         (Physics2DServer :< cls, Object :< cls) =>\n                         cls -> Rid -> Vector2 -> IO ()\nbody_set_axis_velocity cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_set_axis_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_set_axis_velocity\"\n           '[Rid, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_set_axis_velocity\n\n{-# NOINLINE bindPhysics2DServer_body_set_collision_layer #-}\n\n-- | Sets the physics layer or layers a body belongs to.\nbindPhysics2DServer_body_set_collision_layer :: MethodBind\nbindPhysics2DServer_body_set_collision_layer\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the physics layer or layers a body belongs to.\nbody_set_collision_layer ::\n                           (Physics2DServer :< cls, Object :< cls) =>\n                           cls -> Rid -> Int -> IO ()\nbody_set_collision_layer cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_set_collision_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_set_collision_layer\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_set_collision_layer\n\n{-# NOINLINE bindPhysics2DServer_body_set_collision_mask #-}\n\n-- | Sets the physics layer or layers a body can collide with.\nbindPhysics2DServer_body_set_collision_mask :: MethodBind\nbindPhysics2DServer_body_set_collision_mask\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the physics layer or layers a body can collide with.\nbody_set_collision_mask ::\n                          (Physics2DServer :< cls, Object :< cls) =>\n                          cls -> Rid -> Int -> IO ()\nbody_set_collision_mask cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_set_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_set_collision_mask\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_set_collision_mask\n\n{-# NOINLINE bindPhysics2DServer_body_set_continuous_collision_detection_mode\n             #-}\n\n-- | Sets the continuous collision detection mode using one of the @enum CCDMode@ constants.\n--   \t\t\t\tContinuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided.\nbindPhysics2DServer_body_set_continuous_collision_detection_mode ::\n                                                                 MethodBind\nbindPhysics2DServer_body_set_continuous_collision_detection_mode\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_continuous_collision_detection_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the continuous collision detection mode using one of the @enum CCDMode@ constants.\n--   \t\t\t\tContinuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided.\nbody_set_continuous_collision_detection_mode ::\n                                               (Physics2DServer :< cls, Object :< cls) =>\n                                               cls -> Rid -> Int -> IO ()\nbody_set_continuous_collision_detection_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_body_set_continuous_collision_detection_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer\n           \"body_set_continuous_collision_detection_mode\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.body_set_continuous_collision_detection_mode\n\n{-# NOINLINE bindPhysics2DServer_body_set_force_integration_callback\n             #-}\n\n-- | Sets the function used to calculate physics for an object, if that object allows it (see @method body_set_omit_force_integration@).\nbindPhysics2DServer_body_set_force_integration_callback ::\n                                                        MethodBind\nbindPhysics2DServer_body_set_force_integration_callback\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_force_integration_callback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the function used to calculate physics for an object, if that object allows it (see @method body_set_omit_force_integration@).\nbody_set_force_integration_callback ::\n                                      (Physics2DServer :< cls, Object :< cls) =>\n                                      cls ->\n                                        Rid -> Object -> GodotString -> Maybe GodotVariant -> IO ()\nbody_set_force_integration_callback cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe VariantNil toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_body_set_force_integration_callback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer\n           \"body_set_force_integration_callback\"\n           '[Rid, Object, GodotString, Maybe GodotVariant]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.body_set_force_integration_callback\n\n{-# NOINLINE bindPhysics2DServer_body_set_max_contacts_reported #-}\n\n-- | Sets the maximum contacts to report. Bodies can keep a log of the contacts with other bodies, this is enabled by setting the maximum amount of contacts reported to a number greater than 0.\nbindPhysics2DServer_body_set_max_contacts_reported :: MethodBind\nbindPhysics2DServer_body_set_max_contacts_reported\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_max_contacts_reported\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the maximum contacts to report. Bodies can keep a log of the contacts with other bodies, this is enabled by setting the maximum amount of contacts reported to a number greater than 0.\nbody_set_max_contacts_reported ::\n                                 (Physics2DServer :< cls, Object :< cls) =>\n                                 cls -> Rid -> Int -> IO ()\nbody_set_max_contacts_reported cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_body_set_max_contacts_reported\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer\n           \"body_set_max_contacts_reported\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.body_set_max_contacts_reported\n\n{-# NOINLINE bindPhysics2DServer_body_set_mode #-}\n\n-- | Sets the body mode using one of the @enum BodyMode@ constants.\nbindPhysics2DServer_body_set_mode :: MethodBind\nbindPhysics2DServer_body_set_mode\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the body mode using one of the @enum BodyMode@ constants.\nbody_set_mode ::\n                (Physics2DServer :< cls, Object :< cls) =>\n                cls -> Rid -> Int -> IO ()\nbody_set_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_set_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_set_mode\" '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_set_mode\n\n{-# NOINLINE bindPhysics2DServer_body_set_omit_force_integration\n             #-}\n\n-- | Sets whether a body uses a callback function to calculate its own physics (see @method body_set_force_integration_callback@).\nbindPhysics2DServer_body_set_omit_force_integration :: MethodBind\nbindPhysics2DServer_body_set_omit_force_integration\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_omit_force_integration\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether a body uses a callback function to calculate its own physics (see @method body_set_force_integration_callback@).\nbody_set_omit_force_integration ::\n                                  (Physics2DServer :< cls, Object :< cls) =>\n                                  cls -> Rid -> Bool -> IO ()\nbody_set_omit_force_integration cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_body_set_omit_force_integration\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer\n           \"body_set_omit_force_integration\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.body_set_omit_force_integration\n\n{-# NOINLINE bindPhysics2DServer_body_set_param #-}\n\n-- | Sets a body parameter. See @enum BodyParameter@ for a list of available parameters.\nbindPhysics2DServer_body_set_param :: MethodBind\nbindPhysics2DServer_body_set_param\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a body parameter. See @enum BodyParameter@ for a list of available parameters.\nbody_set_param ::\n                 (Physics2DServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> Float -> IO ()\nbody_set_param cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_set_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_set_param\"\n           '[Rid, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_set_param\n\n{-# NOINLINE bindPhysics2DServer_body_set_shape #-}\n\n-- | Substitutes a given body shape by another. The old shape is selected by its index, the new one by its @RID@.\nbindPhysics2DServer_body_set_shape :: MethodBind\nbindPhysics2DServer_body_set_shape\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Substitutes a given body shape by another. The old shape is selected by its index, the new one by its @RID@.\nbody_set_shape ::\n                 (Physics2DServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> Rid -> IO ()\nbody_set_shape cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_set_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_set_shape\"\n           '[Rid, Int, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_set_shape\n\n{-# NOINLINE bindPhysics2DServer_body_set_shape_as_one_way_collision\n             #-}\n\n-- | Enables one way collision on body if @enable@ is @true@.\nbindPhysics2DServer_body_set_shape_as_one_way_collision ::\n                                                        MethodBind\nbindPhysics2DServer_body_set_shape_as_one_way_collision\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_shape_as_one_way_collision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables one way collision on body if @enable@ is @true@.\nbody_set_shape_as_one_way_collision ::\n                                      (Physics2DServer :< cls, Object :< cls) =>\n                                      cls -> Rid -> Int -> Bool -> Float -> IO ()\nbody_set_shape_as_one_way_collision cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_body_set_shape_as_one_way_collision\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer\n           \"body_set_shape_as_one_way_collision\"\n           '[Rid, Int, Bool, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.body_set_shape_as_one_way_collision\n\n{-# NOINLINE bindPhysics2DServer_body_set_shape_disabled #-}\n\n-- | Disables shape in body if @disable@ is @true@.\nbindPhysics2DServer_body_set_shape_disabled :: MethodBind\nbindPhysics2DServer_body_set_shape_disabled\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_shape_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Disables shape in body if @disable@ is @true@.\nbody_set_shape_disabled ::\n                          (Physics2DServer :< cls, Object :< cls) =>\n                          cls -> Rid -> Int -> Bool -> IO ()\nbody_set_shape_disabled cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_set_shape_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_set_shape_disabled\"\n           '[Rid, Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_set_shape_disabled\n\n{-# NOINLINE bindPhysics2DServer_body_set_shape_metadata #-}\n\n-- | Sets metadata of a shape within a body. This metadata is different from @method Object.set_meta@, and can be retrieved on shape queries.\nbindPhysics2DServer_body_set_shape_metadata :: MethodBind\nbindPhysics2DServer_body_set_shape_metadata\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_shape_metadata\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets metadata of a shape within a body. This metadata is different from @method Object.set_meta@, and can be retrieved on shape queries.\nbody_set_shape_metadata ::\n                          (Physics2DServer :< cls, Object :< cls) =>\n                          cls -> Rid -> Int -> GodotVariant -> IO ()\nbody_set_shape_metadata cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_set_shape_metadata\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_set_shape_metadata\"\n           '[Rid, Int, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_set_shape_metadata\n\n{-# NOINLINE bindPhysics2DServer_body_set_shape_transform #-}\n\n-- | Sets the transform matrix for a body shape.\nbindPhysics2DServer_body_set_shape_transform :: MethodBind\nbindPhysics2DServer_body_set_shape_transform\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_shape_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the transform matrix for a body shape.\nbody_set_shape_transform ::\n                           (Physics2DServer :< cls, Object :< cls) =>\n                           cls -> Rid -> Int -> Transform2d -> IO ()\nbody_set_shape_transform cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_set_shape_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_set_shape_transform\"\n           '[Rid, Int, Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_set_shape_transform\n\n{-# NOINLINE bindPhysics2DServer_body_set_space #-}\n\n-- | Assigns a space to the body (see @method space_create@).\nbindPhysics2DServer_body_set_space :: MethodBind\nbindPhysics2DServer_body_set_space\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Assigns a space to the body (see @method space_create@).\nbody_set_space ::\n                 (Physics2DServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Rid -> IO ()\nbody_set_space cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_set_space\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_set_space\" '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_set_space\n\n{-# NOINLINE bindPhysics2DServer_body_set_state #-}\n\n-- | Sets a body state using one of the @enum BodyState@ constants.\n--   \t\t\t\tNote that the method doesn't take effect immediately. The state will change on the next physics frame.\nbindPhysics2DServer_body_set_state :: MethodBind\nbindPhysics2DServer_body_set_state\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a body state using one of the @enum BodyState@ constants.\n--   \t\t\t\tNote that the method doesn't take effect immediately. The state will change on the next physics frame.\nbody_set_state ::\n                 (Physics2DServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> GodotVariant -> IO ()\nbody_set_state cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_set_state\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_set_state\"\n           '[Rid, Int, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_set_state\n\n{-# NOINLINE bindPhysics2DServer_body_test_motion #-}\n\n-- | Returns @true@ if a collision would result from moving in the given direction from a given point in space. Margin increases the size of the shapes involved in the collision detection. @Physics2DTestMotionResult@ can be passed to return additional information in.\nbindPhysics2DServer_body_test_motion :: MethodBind\nbindPhysics2DServer_body_test_motion\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_test_motion\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if a collision would result from moving in the given direction from a given point in space. Margin increases the size of the shapes involved in the collision detection. @Physics2DTestMotionResult@ can be passed to return additional information in.\nbody_test_motion ::\n                   (Physics2DServer :< cls, Object :< cls) =>\n                   cls ->\n                     Rid ->\n                       Transform2d ->\n                         Vector2 ->\n                           Bool -> Maybe Float -> Maybe Physics2DTestMotionResult -> IO Bool\nbody_test_motion cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       maybe (VariantReal (0.08)) toVariant arg5,\n       maybe VariantNil toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_body_test_motion\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"body_test_motion\"\n           '[Rid, Transform2d, Vector2, Bool, Maybe Float,\n             Maybe Physics2DTestMotionResult]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.body_test_motion\n\n{-# NOINLINE bindPhysics2DServer_capsule_shape_create #-}\n\nbindPhysics2DServer_capsule_shape_create :: MethodBind\nbindPhysics2DServer_capsule_shape_create\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"capsule_shape_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncapsule_shape_create ::\n                       (Physics2DServer :< cls, Object :< cls) => cls -> IO Rid\ncapsule_shape_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_capsule_shape_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"capsule_shape_create\" '[]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.capsule_shape_create\n\n{-# NOINLINE bindPhysics2DServer_circle_shape_create #-}\n\nbindPhysics2DServer_circle_shape_create :: MethodBind\nbindPhysics2DServer_circle_shape_create\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"circle_shape_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncircle_shape_create ::\n                      (Physics2DServer :< cls, Object :< cls) => cls -> IO Rid\ncircle_shape_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_circle_shape_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"circle_shape_create\" '[]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.circle_shape_create\n\n{-# NOINLINE bindPhysics2DServer_concave_polygon_shape_create #-}\n\nbindPhysics2DServer_concave_polygon_shape_create :: MethodBind\nbindPhysics2DServer_concave_polygon_shape_create\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"concave_polygon_shape_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nconcave_polygon_shape_create ::\n                               (Physics2DServer :< cls, Object :< cls) => cls -> IO Rid\nconcave_polygon_shape_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_concave_polygon_shape_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"concave_polygon_shape_create\"\n           '[]\n           (IO Rid)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.concave_polygon_shape_create\n\n{-# NOINLINE bindPhysics2DServer_convex_polygon_shape_create #-}\n\nbindPhysics2DServer_convex_polygon_shape_create :: MethodBind\nbindPhysics2DServer_convex_polygon_shape_create\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"convex_polygon_shape_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nconvex_polygon_shape_create ::\n                              (Physics2DServer :< cls, Object :< cls) => cls -> IO Rid\nconvex_polygon_shape_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_convex_polygon_shape_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"convex_polygon_shape_create\"\n           '[]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.convex_polygon_shape_create\n\n{-# NOINLINE bindPhysics2DServer_damped_spring_joint_create #-}\n\n-- | Creates a damped spring joint between two bodies. If not specified, the second body is assumed to be the joint itself.\nbindPhysics2DServer_damped_spring_joint_create :: MethodBind\nbindPhysics2DServer_damped_spring_joint_create\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"damped_spring_joint_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a damped spring joint between two bodies. If not specified, the second body is assumed to be the joint itself.\ndamped_spring_joint_create ::\n                             (Physics2DServer :< cls, Object :< cls) =>\n                             cls -> Vector2 -> Vector2 -> Rid -> Maybe Rid -> IO Rid\ndamped_spring_joint_create cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe VariantNil toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_damped_spring_joint_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"damped_spring_joint_create\"\n           '[Vector2, Vector2, Rid, Maybe Rid]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.damped_spring_joint_create\n\n{-# NOINLINE bindPhysics2DServer_damped_string_joint_get_param #-}\n\n-- | Returns the value of a damped spring joint parameter.\nbindPhysics2DServer_damped_string_joint_get_param :: MethodBind\nbindPhysics2DServer_damped_string_joint_get_param\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"damped_string_joint_get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of a damped spring joint parameter.\ndamped_string_joint_get_param ::\n                                (Physics2DServer :< cls, Object :< cls) =>\n                                cls -> Rid -> Int -> IO Float\ndamped_string_joint_get_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_damped_string_joint_get_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"damped_string_joint_get_param\"\n           '[Rid, Int]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.damped_string_joint_get_param\n\n{-# NOINLINE bindPhysics2DServer_damped_string_joint_set_param #-}\n\n-- | Sets a damped spring joint parameter. See @enum DampedStringParam@ for a list of available parameters.\nbindPhysics2DServer_damped_string_joint_set_param :: MethodBind\nbindPhysics2DServer_damped_string_joint_set_param\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"damped_string_joint_set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a damped spring joint parameter. See @enum DampedStringParam@ for a list of available parameters.\ndamped_string_joint_set_param ::\n                                (Physics2DServer :< cls, Object :< cls) =>\n                                cls -> Rid -> Int -> Float -> IO ()\ndamped_string_joint_set_param cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DServer_damped_string_joint_set_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"damped_string_joint_set_param\"\n           '[Rid, Int, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DServer.damped_string_joint_set_param\n\n{-# NOINLINE bindPhysics2DServer_free_rid #-}\n\n-- | Destroys any of the objects created by Physics2DServer. If the @RID@ passed is not one of the objects that can be created by Physics2DServer, an error will be sent to the console.\nbindPhysics2DServer_free_rid :: MethodBind\nbindPhysics2DServer_free_rid\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"free_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Destroys any of the objects created by Physics2DServer. If the @RID@ passed is not one of the objects that can be created by Physics2DServer, an error will be sent to the console.\nfree_rid ::\n           (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO ()\nfree_rid cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_free_rid (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"free_rid\" '[Rid] (IO ()) where\n        nodeMethod = Godot.Core.Physics2DServer.free_rid\n\n{-# NOINLINE bindPhysics2DServer_get_process_info #-}\n\n-- | Returns information about the current state of the 2D physics engine. See @enum ProcessInfo@ for a list of available states.\nbindPhysics2DServer_get_process_info :: MethodBind\nbindPhysics2DServer_get_process_info\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_process_info\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns information about the current state of the 2D physics engine. See @enum ProcessInfo@ for a list of available states.\nget_process_info ::\n                   (Physics2DServer :< cls, Object :< cls) => cls -> Int -> IO Int\nget_process_info cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_get_process_info\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"get_process_info\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.get_process_info\n\n{-# NOINLINE bindPhysics2DServer_groove_joint_create #-}\n\n-- | Creates a groove joint between two bodies. If not specified, the bodies are assumed to be the joint itself.\nbindPhysics2DServer_groove_joint_create :: MethodBind\nbindPhysics2DServer_groove_joint_create\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"groove_joint_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a groove joint between two bodies. If not specified, the bodies are assumed to be the joint itself.\ngroove_joint_create ::\n                      (Physics2DServer :< cls, Object :< cls) =>\n                      cls ->\n                        Vector2 -> Vector2 -> Vector2 -> Maybe Rid -> Maybe Rid -> IO Rid\ngroove_joint_create cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe VariantNil toVariant arg4, maybe VariantNil toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_groove_joint_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"groove_joint_create\"\n           '[Vector2, Vector2, Vector2, Maybe Rid, Maybe Rid]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.groove_joint_create\n\n{-# NOINLINE bindPhysics2DServer_joint_get_param #-}\n\n-- | Returns the value of a joint parameter.\nbindPhysics2DServer_joint_get_param :: MethodBind\nbindPhysics2DServer_joint_get_param\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"joint_get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of a joint parameter.\njoint_get_param ::\n                  (Physics2DServer :< cls, Object :< cls) =>\n                  cls -> Rid -> Int -> IO Float\njoint_get_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_joint_get_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"joint_get_param\" '[Rid, Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.joint_get_param\n\n{-# NOINLINE bindPhysics2DServer_joint_get_type #-}\n\n-- | Returns a joint's type (see @enum JointType@).\nbindPhysics2DServer_joint_get_type :: MethodBind\nbindPhysics2DServer_joint_get_type\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"joint_get_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a joint's type (see @enum JointType@).\njoint_get_type ::\n                 (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO Int\njoint_get_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_joint_get_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"joint_get_type\" '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.joint_get_type\n\n{-# NOINLINE bindPhysics2DServer_joint_set_param #-}\n\n-- | Sets a joint parameter. See @enum JointParam@ for a list of available parameters.\nbindPhysics2DServer_joint_set_param :: MethodBind\nbindPhysics2DServer_joint_set_param\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"joint_set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a joint parameter. See @enum JointParam@ for a list of available parameters.\njoint_set_param ::\n                  (Physics2DServer :< cls, Object :< cls) =>\n                  cls -> Rid -> Int -> Float -> IO ()\njoint_set_param cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_joint_set_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"joint_set_param\"\n           '[Rid, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.joint_set_param\n\n{-# NOINLINE bindPhysics2DServer_line_shape_create #-}\n\nbindPhysics2DServer_line_shape_create :: MethodBind\nbindPhysics2DServer_line_shape_create\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"line_shape_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nline_shape_create ::\n                    (Physics2DServer :< cls, Object :< cls) => cls -> IO Rid\nline_shape_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_line_shape_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"line_shape_create\" '[]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.line_shape_create\n\n{-# NOINLINE bindPhysics2DServer_pin_joint_create #-}\n\n-- | Creates a pin joint between two bodies. If not specified, the second body is assumed to be the joint itself.\nbindPhysics2DServer_pin_joint_create :: MethodBind\nbindPhysics2DServer_pin_joint_create\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"pin_joint_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a pin joint between two bodies. If not specified, the second body is assumed to be the joint itself.\npin_joint_create ::\n                   (Physics2DServer :< cls, Object :< cls) =>\n                   cls -> Vector2 -> Rid -> Maybe Rid -> IO Rid\npin_joint_create cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, maybe VariantNil toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_pin_joint_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"pin_joint_create\"\n           '[Vector2, Rid, Maybe Rid]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.pin_joint_create\n\n{-# NOINLINE bindPhysics2DServer_ray_shape_create #-}\n\nbindPhysics2DServer_ray_shape_create :: MethodBind\nbindPhysics2DServer_ray_shape_create\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"ray_shape_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nray_shape_create ::\n                   (Physics2DServer :< cls, Object :< cls) => cls -> IO Rid\nray_shape_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_ray_shape_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"ray_shape_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.ray_shape_create\n\n{-# NOINLINE bindPhysics2DServer_rectangle_shape_create #-}\n\nbindPhysics2DServer_rectangle_shape_create :: MethodBind\nbindPhysics2DServer_rectangle_shape_create\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"rectangle_shape_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nrectangle_shape_create ::\n                         (Physics2DServer :< cls, Object :< cls) => cls -> IO Rid\nrectangle_shape_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_rectangle_shape_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"rectangle_shape_create\" '[]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.rectangle_shape_create\n\n{-# NOINLINE bindPhysics2DServer_segment_shape_create #-}\n\nbindPhysics2DServer_segment_shape_create :: MethodBind\nbindPhysics2DServer_segment_shape_create\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"segment_shape_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nsegment_shape_create ::\n                       (Physics2DServer :< cls, Object :< cls) => cls -> IO Rid\nsegment_shape_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_segment_shape_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"segment_shape_create\" '[]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.segment_shape_create\n\n{-# NOINLINE bindPhysics2DServer_set_active #-}\n\n-- | Activates or deactivates the 2D physics engine.\nbindPhysics2DServer_set_active :: MethodBind\nbindPhysics2DServer_set_active\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Activates or deactivates the 2D physics engine.\nset_active ::\n             (Physics2DServer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_active cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_set_active (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"set_active\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.set_active\n\n{-# NOINLINE bindPhysics2DServer_shape_get_data #-}\n\n-- | Returns the shape data.\nbindPhysics2DServer_shape_get_data :: MethodBind\nbindPhysics2DServer_shape_get_data\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"shape_get_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the shape data.\nshape_get_data ::\n                 (Physics2DServer :< cls, Object :< cls) =>\n                 cls -> Rid -> IO GodotVariant\nshape_get_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_shape_get_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"shape_get_data\" '[Rid]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.shape_get_data\n\n{-# NOINLINE bindPhysics2DServer_shape_get_type #-}\n\n-- | Returns a shape's type (see @enum ShapeType@).\nbindPhysics2DServer_shape_get_type :: MethodBind\nbindPhysics2DServer_shape_get_type\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"shape_get_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a shape's type (see @enum ShapeType@).\nshape_get_type ::\n                 (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nshape_get_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_shape_get_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"shape_get_type\" '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.shape_get_type\n\n{-# NOINLINE bindPhysics2DServer_shape_set_data #-}\n\n-- | Sets the shape data that defines its shape and size. The data to be passed depends on the kind of shape created @method shape_get_type@.\nbindPhysics2DServer_shape_set_data :: MethodBind\nbindPhysics2DServer_shape_set_data\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"shape_set_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the shape data that defines its shape and size. The data to be passed depends on the kind of shape created @method shape_get_type@.\nshape_set_data ::\n                 (Physics2DServer :< cls, Object :< cls) =>\n                 cls -> Rid -> GodotVariant -> IO ()\nshape_set_data cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_shape_set_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"shape_set_data\"\n           '[Rid, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.shape_set_data\n\n{-# NOINLINE bindPhysics2DServer_space_create #-}\n\n-- | Creates a space. A space is a collection of parameters for the physics engine that can be assigned to an area or a body. It can be assigned to an area with @method area_set_space@, or to a body with @method body_set_space@.\nbindPhysics2DServer_space_create :: MethodBind\nbindPhysics2DServer_space_create\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"space_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a space. A space is a collection of parameters for the physics engine that can be assigned to an area or a body. It can be assigned to an area with @method area_set_space@, or to a body with @method body_set_space@.\nspace_create ::\n               (Physics2DServer :< cls, Object :< cls) => cls -> IO Rid\nspace_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_space_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"space_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.space_create\n\n{-# NOINLINE bindPhysics2DServer_space_get_direct_state #-}\n\n-- | Returns the state of a space, a @Physics2DDirectSpaceState@. This object can be used to make collision/intersection queries.\nbindPhysics2DServer_space_get_direct_state :: MethodBind\nbindPhysics2DServer_space_get_direct_state\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"space_get_direct_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the state of a space, a @Physics2DDirectSpaceState@. This object can be used to make collision/intersection queries.\nspace_get_direct_state ::\n                         (Physics2DServer :< cls, Object :< cls) =>\n                         cls -> Rid -> IO Physics2DDirectSpaceState\nspace_get_direct_state cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_space_get_direct_state\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"space_get_direct_state\" '[Rid]\n           (IO Physics2DDirectSpaceState)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.space_get_direct_state\n\n{-# NOINLINE bindPhysics2DServer_space_get_param #-}\n\n-- | Returns the value of a space parameter.\nbindPhysics2DServer_space_get_param :: MethodBind\nbindPhysics2DServer_space_get_param\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"space_get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of a space parameter.\nspace_get_param ::\n                  (Physics2DServer :< cls, Object :< cls) =>\n                  cls -> Rid -> Int -> IO Float\nspace_get_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_space_get_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"space_get_param\" '[Rid, Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.space_get_param\n\n{-# NOINLINE bindPhysics2DServer_space_is_active #-}\n\n-- | Returns whether the space is active.\nbindPhysics2DServer_space_is_active :: MethodBind\nbindPhysics2DServer_space_is_active\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"space_is_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether the space is active.\nspace_is_active ::\n                  (Physics2DServer :< cls, Object :< cls) => cls -> Rid -> IO Bool\nspace_is_active cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_space_is_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"space_is_active\" '[Rid]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Physics2DServer.space_is_active\n\n{-# NOINLINE bindPhysics2DServer_space_set_active #-}\n\n-- | Marks a space as active. It will not have an effect, unless it is assigned to an area or body.\nbindPhysics2DServer_space_set_active :: MethodBind\nbindPhysics2DServer_space_set_active\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"space_set_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Marks a space as active. It will not have an effect, unless it is assigned to an area or body.\nspace_set_active ::\n                   (Physics2DServer :< cls, Object :< cls) =>\n                   cls -> Rid -> Bool -> IO ()\nspace_set_active cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_space_set_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"space_set_active\" '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.space_set_active\n\n{-# NOINLINE bindPhysics2DServer_space_set_param #-}\n\n-- | Sets the value for a space parameter. See @enum SpaceParameter@ for a list of available parameters.\nbindPhysics2DServer_space_set_param :: MethodBind\nbindPhysics2DServer_space_set_param\n  = unsafePerformIO $\n      withCString \"Physics2DServer\" $\n        \\ clsNamePtr ->\n          withCString \"space_set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the value for a space parameter. See @enum SpaceParameter@ for a list of available parameters.\nspace_set_param ::\n                  (Physics2DServer :< cls, Object :< cls) =>\n                  cls -> Rid -> Int -> Float -> IO ()\nspace_set_param cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DServer_space_set_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DServer \"space_set_param\"\n           '[Rid, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DServer.space_set_param"
  },
  {
    "path": "src/Godot/Core/Physics2DServerSW.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Physics2DServerSW () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Physics2DServer()"
  },
  {
    "path": "src/Godot/Core/Physics2DShapeQueryParameters.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Physics2DShapeQueryParameters\n       (Godot.Core.Physics2DShapeQueryParameters.get_collision_layer,\n        Godot.Core.Physics2DShapeQueryParameters.get_exclude,\n        Godot.Core.Physics2DShapeQueryParameters.get_margin,\n        Godot.Core.Physics2DShapeQueryParameters.get_motion,\n        Godot.Core.Physics2DShapeQueryParameters.get_shape_rid,\n        Godot.Core.Physics2DShapeQueryParameters.get_transform,\n        Godot.Core.Physics2DShapeQueryParameters.is_collide_with_areas_enabled,\n        Godot.Core.Physics2DShapeQueryParameters.is_collide_with_bodies_enabled,\n        Godot.Core.Physics2DShapeQueryParameters.set_collide_with_areas,\n        Godot.Core.Physics2DShapeQueryParameters.set_collide_with_bodies,\n        Godot.Core.Physics2DShapeQueryParameters.set_collision_layer,\n        Godot.Core.Physics2DShapeQueryParameters.set_exclude,\n        Godot.Core.Physics2DShapeQueryParameters.set_margin,\n        Godot.Core.Physics2DShapeQueryParameters.set_motion,\n        Godot.Core.Physics2DShapeQueryParameters.set_shape,\n        Godot.Core.Physics2DShapeQueryParameters.set_shape_rid,\n        Godot.Core.Physics2DShapeQueryParameters.set_transform)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\ninstance NodeProperty Physics2DShapeQueryParameters\n           \"collide_with_areas\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (is_collide_with_areas_enabled,\n             wrapDroppingSetter set_collide_with_areas, Nothing)\n\ninstance NodeProperty Physics2DShapeQueryParameters\n           \"collide_with_bodies\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (is_collide_with_bodies_enabled,\n             wrapDroppingSetter set_collide_with_bodies, Nothing)\n\ninstance NodeProperty Physics2DShapeQueryParameters\n           \"collision_layer\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_collision_layer, wrapDroppingSetter set_collision_layer,\n             Nothing)\n\ninstance NodeProperty Physics2DShapeQueryParameters \"exclude\" Array\n           'False\n         where\n        nodeProperty\n          = (get_exclude, wrapDroppingSetter set_exclude, Nothing)\n\ninstance NodeProperty Physics2DShapeQueryParameters \"margin\" Float\n           'False\n         where\n        nodeProperty = (get_margin, wrapDroppingSetter set_margin, Nothing)\n\ninstance NodeProperty Physics2DShapeQueryParameters \"motion\"\n           Vector2\n           'False\n         where\n        nodeProperty = (get_motion, wrapDroppingSetter set_motion, Nothing)\n\ninstance NodeProperty Physics2DShapeQueryParameters \"shape_rid\" Rid\n           'False\n         where\n        nodeProperty\n          = (get_shape_rid, wrapDroppingSetter set_shape_rid, Nothing)\n\ninstance NodeProperty Physics2DShapeQueryParameters \"transform\"\n           Transform2d\n           'False\n         where\n        nodeProperty\n          = (get_transform, wrapDroppingSetter set_transform, Nothing)\n\n{-# NOINLINE bindPhysics2DShapeQueryParameters_get_collision_layer\n             #-}\n\n-- | The physics layer(s) the query will take into account (as a bitmask). See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindPhysics2DShapeQueryParameters_get_collision_layer :: MethodBind\nbindPhysics2DShapeQueryParameters_get_collision_layer\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layer(s) the query will take into account (as a bitmask). See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nget_collision_layer ::\n                      (Physics2DShapeQueryParameters :< cls, Object :< cls) =>\n                      cls -> IO Int\nget_collision_layer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DShapeQueryParameters_get_collision_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryParameters\n           \"get_collision_layer\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DShapeQueryParameters.get_collision_layer\n\n{-# NOINLINE bindPhysics2DShapeQueryParameters_get_exclude #-}\n\n-- | The list of objects or object @RID@s that will be excluded from collisions.\nbindPhysics2DShapeQueryParameters_get_exclude :: MethodBind\nbindPhysics2DShapeQueryParameters_get_exclude\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"get_exclude\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The list of objects or object @RID@s that will be excluded from collisions.\nget_exclude ::\n              (Physics2DShapeQueryParameters :< cls, Object :< cls) =>\n              cls -> IO Array\nget_exclude cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DShapeQueryParameters_get_exclude\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryParameters \"get_exclude\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Physics2DShapeQueryParameters.get_exclude\n\n{-# NOINLINE bindPhysics2DShapeQueryParameters_get_margin #-}\n\n-- | The collision margin for the shape.\nbindPhysics2DShapeQueryParameters_get_margin :: MethodBind\nbindPhysics2DShapeQueryParameters_get_margin\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"get_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The collision margin for the shape.\nget_margin ::\n             (Physics2DShapeQueryParameters :< cls, Object :< cls) =>\n             cls -> IO Float\nget_margin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DShapeQueryParameters_get_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryParameters \"get_margin\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Physics2DShapeQueryParameters.get_margin\n\n{-# NOINLINE bindPhysics2DShapeQueryParameters_get_motion #-}\n\n-- | The motion of the shape being queried for.\nbindPhysics2DShapeQueryParameters_get_motion :: MethodBind\nbindPhysics2DShapeQueryParameters_get_motion\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"get_motion\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The motion of the shape being queried for.\nget_motion ::\n             (Physics2DShapeQueryParameters :< cls, Object :< cls) =>\n             cls -> IO Vector2\nget_motion cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DShapeQueryParameters_get_motion\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryParameters \"get_motion\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Physics2DShapeQueryParameters.get_motion\n\n{-# NOINLINE bindPhysics2DShapeQueryParameters_get_shape_rid #-}\n\n-- | The queried shape's @RID@. See also @method set_shape@.\nbindPhysics2DShapeQueryParameters_get_shape_rid :: MethodBind\nbindPhysics2DShapeQueryParameters_get_shape_rid\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"get_shape_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The queried shape's @RID@. See also @method set_shape@.\nget_shape_rid ::\n                (Physics2DShapeQueryParameters :< cls, Object :< cls) =>\n                cls -> IO Rid\nget_shape_rid cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DShapeQueryParameters_get_shape_rid\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryParameters \"get_shape_rid\"\n           '[]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DShapeQueryParameters.get_shape_rid\n\n{-# NOINLINE bindPhysics2DShapeQueryParameters_get_transform #-}\n\n-- | The queried shape's transform matrix.\nbindPhysics2DShapeQueryParameters_get_transform :: MethodBind\nbindPhysics2DShapeQueryParameters_get_transform\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"get_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The queried shape's transform matrix.\nget_transform ::\n                (Physics2DShapeQueryParameters :< cls, Object :< cls) =>\n                cls -> IO Transform2d\nget_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DShapeQueryParameters_get_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryParameters \"get_transform\"\n           '[]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.Physics2DShapeQueryParameters.get_transform\n\n{-# NOINLINE bindPhysics2DShapeQueryParameters_is_collide_with_areas_enabled\n             #-}\n\n-- | If @true@, the query will take @Area2D@s into account.\nbindPhysics2DShapeQueryParameters_is_collide_with_areas_enabled ::\n                                                                MethodBind\nbindPhysics2DShapeQueryParameters_is_collide_with_areas_enabled\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"is_collide_with_areas_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the query will take @Area2D@s into account.\nis_collide_with_areas_enabled ::\n                                (Physics2DShapeQueryParameters :< cls, Object :< cls) =>\n                                cls -> IO Bool\nis_collide_with_areas_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DShapeQueryParameters_is_collide_with_areas_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryParameters\n           \"is_collide_with_areas_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DShapeQueryParameters.is_collide_with_areas_enabled\n\n{-# NOINLINE bindPhysics2DShapeQueryParameters_is_collide_with_bodies_enabled\n             #-}\n\n-- | If @true@, the query will take @PhysicsBody2D@s into account.\nbindPhysics2DShapeQueryParameters_is_collide_with_bodies_enabled ::\n                                                                 MethodBind\nbindPhysics2DShapeQueryParameters_is_collide_with_bodies_enabled\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"is_collide_with_bodies_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the query will take @PhysicsBody2D@s into account.\nis_collide_with_bodies_enabled ::\n                                 (Physics2DShapeQueryParameters :< cls, Object :< cls) =>\n                                 cls -> IO Bool\nis_collide_with_bodies_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DShapeQueryParameters_is_collide_with_bodies_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryParameters\n           \"is_collide_with_bodies_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DShapeQueryParameters.is_collide_with_bodies_enabled\n\n{-# NOINLINE bindPhysics2DShapeQueryParameters_set_collide_with_areas\n             #-}\n\n-- | If @true@, the query will take @Area2D@s into account.\nbindPhysics2DShapeQueryParameters_set_collide_with_areas ::\n                                                         MethodBind\nbindPhysics2DShapeQueryParameters_set_collide_with_areas\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"set_collide_with_areas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the query will take @Area2D@s into account.\nset_collide_with_areas ::\n                         (Physics2DShapeQueryParameters :< cls, Object :< cls) =>\n                         cls -> Bool -> IO ()\nset_collide_with_areas cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DShapeQueryParameters_set_collide_with_areas\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryParameters\n           \"set_collide_with_areas\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DShapeQueryParameters.set_collide_with_areas\n\n{-# NOINLINE bindPhysics2DShapeQueryParameters_set_collide_with_bodies\n             #-}\n\n-- | If @true@, the query will take @PhysicsBody2D@s into account.\nbindPhysics2DShapeQueryParameters_set_collide_with_bodies ::\n                                                          MethodBind\nbindPhysics2DShapeQueryParameters_set_collide_with_bodies\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"set_collide_with_bodies\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the query will take @PhysicsBody2D@s into account.\nset_collide_with_bodies ::\n                          (Physics2DShapeQueryParameters :< cls, Object :< cls) =>\n                          cls -> Bool -> IO ()\nset_collide_with_bodies cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DShapeQueryParameters_set_collide_with_bodies\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryParameters\n           \"set_collide_with_bodies\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DShapeQueryParameters.set_collide_with_bodies\n\n{-# NOINLINE bindPhysics2DShapeQueryParameters_set_collision_layer\n             #-}\n\n-- | The physics layer(s) the query will take into account (as a bitmask). See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindPhysics2DShapeQueryParameters_set_collision_layer :: MethodBind\nbindPhysics2DShapeQueryParameters_set_collision_layer\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layer(s) the query will take into account (as a bitmask). See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nset_collision_layer ::\n                      (Physics2DShapeQueryParameters :< cls, Object :< cls) =>\n                      cls -> Int -> IO ()\nset_collision_layer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DShapeQueryParameters_set_collision_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryParameters\n           \"set_collision_layer\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Physics2DShapeQueryParameters.set_collision_layer\n\n{-# NOINLINE bindPhysics2DShapeQueryParameters_set_exclude #-}\n\n-- | The list of objects or object @RID@s that will be excluded from collisions.\nbindPhysics2DShapeQueryParameters_set_exclude :: MethodBind\nbindPhysics2DShapeQueryParameters_set_exclude\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"set_exclude\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The list of objects or object @RID@s that will be excluded from collisions.\nset_exclude ::\n              (Physics2DShapeQueryParameters :< cls, Object :< cls) =>\n              cls -> Array -> IO ()\nset_exclude cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DShapeQueryParameters_set_exclude\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryParameters \"set_exclude\"\n           '[Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DShapeQueryParameters.set_exclude\n\n{-# NOINLINE bindPhysics2DShapeQueryParameters_set_margin #-}\n\n-- | The collision margin for the shape.\nbindPhysics2DShapeQueryParameters_set_margin :: MethodBind\nbindPhysics2DShapeQueryParameters_set_margin\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"set_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The collision margin for the shape.\nset_margin ::\n             (Physics2DShapeQueryParameters :< cls, Object :< cls) =>\n             cls -> Float -> IO ()\nset_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DShapeQueryParameters_set_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryParameters \"set_margin\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DShapeQueryParameters.set_margin\n\n{-# NOINLINE bindPhysics2DShapeQueryParameters_set_motion #-}\n\n-- | The motion of the shape being queried for.\nbindPhysics2DShapeQueryParameters_set_motion :: MethodBind\nbindPhysics2DShapeQueryParameters_set_motion\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"set_motion\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The motion of the shape being queried for.\nset_motion ::\n             (Physics2DShapeQueryParameters :< cls, Object :< cls) =>\n             cls -> Vector2 -> IO ()\nset_motion cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DShapeQueryParameters_set_motion\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryParameters \"set_motion\"\n           '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DShapeQueryParameters.set_motion\n\n{-# NOINLINE bindPhysics2DShapeQueryParameters_set_shape #-}\n\n-- | Sets the @Shape2D@ that will be used for collision/intersection queries.\nbindPhysics2DShapeQueryParameters_set_shape :: MethodBind\nbindPhysics2DShapeQueryParameters_set_shape\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"set_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Shape2D@ that will be used for collision/intersection queries.\nset_shape ::\n            (Physics2DShapeQueryParameters :< cls, Object :< cls) =>\n            cls -> Resource -> IO ()\nset_shape cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DShapeQueryParameters_set_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryParameters \"set_shape\"\n           '[Resource]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DShapeQueryParameters.set_shape\n\n{-# NOINLINE bindPhysics2DShapeQueryParameters_set_shape_rid #-}\n\n-- | The queried shape's @RID@. See also @method set_shape@.\nbindPhysics2DShapeQueryParameters_set_shape_rid :: MethodBind\nbindPhysics2DShapeQueryParameters_set_shape_rid\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"set_shape_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The queried shape's @RID@. See also @method set_shape@.\nset_shape_rid ::\n                (Physics2DShapeQueryParameters :< cls, Object :< cls) =>\n                cls -> Rid -> IO ()\nset_shape_rid cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DShapeQueryParameters_set_shape_rid\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryParameters \"set_shape_rid\"\n           '[Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DShapeQueryParameters.set_shape_rid\n\n{-# NOINLINE bindPhysics2DShapeQueryParameters_set_transform #-}\n\n-- | The queried shape's transform matrix.\nbindPhysics2DShapeQueryParameters_set_transform :: MethodBind\nbindPhysics2DShapeQueryParameters_set_transform\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The queried shape's transform matrix.\nset_transform ::\n                (Physics2DShapeQueryParameters :< cls, Object :< cls) =>\n                cls -> Transform2d -> IO ()\nset_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DShapeQueryParameters_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryParameters \"set_transform\"\n           '[Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Physics2DShapeQueryParameters.set_transform"
  },
  {
    "path": "src/Godot/Core/Physics2DShapeQueryResult.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Physics2DShapeQueryResult\n       (Godot.Core.Physics2DShapeQueryResult.get_result_count,\n        Godot.Core.Physics2DShapeQueryResult.get_result_object,\n        Godot.Core.Physics2DShapeQueryResult.get_result_object_id,\n        Godot.Core.Physics2DShapeQueryResult.get_result_object_shape,\n        Godot.Core.Physics2DShapeQueryResult.get_result_rid)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindPhysics2DShapeQueryResult_get_result_count #-}\n\n-- | Returns the number of objects that intersected with the shape.\nbindPhysics2DShapeQueryResult_get_result_count :: MethodBind\nbindPhysics2DShapeQueryResult_get_result_count\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_result_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of objects that intersected with the shape.\nget_result_count ::\n                   (Physics2DShapeQueryResult :< cls, Object :< cls) => cls -> IO Int\nget_result_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DShapeQueryResult_get_result_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryResult \"get_result_count\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Physics2DShapeQueryResult.get_result_count\n\n{-# NOINLINE bindPhysics2DShapeQueryResult_get_result_object #-}\n\n-- | Returns the @Object@ that intersected with the shape at index @idx@.\nbindPhysics2DShapeQueryResult_get_result_object :: MethodBind\nbindPhysics2DShapeQueryResult_get_result_object\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_result_object\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Object@ that intersected with the shape at index @idx@.\nget_result_object ::\n                    (Physics2DShapeQueryResult :< cls, Object :< cls) =>\n                    cls -> Int -> IO Object\nget_result_object cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DShapeQueryResult_get_result_object\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryResult \"get_result_object\"\n           '[Int]\n           (IO Object)\n         where\n        nodeMethod = Godot.Core.Physics2DShapeQueryResult.get_result_object\n\n{-# NOINLINE bindPhysics2DShapeQueryResult_get_result_object_id #-}\n\n-- | Returns the instance ID of the @Object@ that intersected with the shape at index @idx@.\nbindPhysics2DShapeQueryResult_get_result_object_id :: MethodBind\nbindPhysics2DShapeQueryResult_get_result_object_id\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_result_object_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the instance ID of the @Object@ that intersected with the shape at index @idx@.\nget_result_object_id ::\n                       (Physics2DShapeQueryResult :< cls, Object :< cls) =>\n                       cls -> Int -> IO Int\nget_result_object_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DShapeQueryResult_get_result_object_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryResult\n           \"get_result_object_id\"\n           '[Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DShapeQueryResult.get_result_object_id\n\n{-# NOINLINE bindPhysics2DShapeQueryResult_get_result_object_shape\n             #-}\n\n-- | Returns the child index of the object's @Shape@ that intersected with the shape at index @idx@.\nbindPhysics2DShapeQueryResult_get_result_object_shape :: MethodBind\nbindPhysics2DShapeQueryResult_get_result_object_shape\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_result_object_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the child index of the object's @Shape@ that intersected with the shape at index @idx@.\nget_result_object_shape ::\n                          (Physics2DShapeQueryResult :< cls, Object :< cls) =>\n                          cls -> Int -> IO Int\nget_result_object_shape cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DShapeQueryResult_get_result_object_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryResult\n           \"get_result_object_shape\"\n           '[Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DShapeQueryResult.get_result_object_shape\n\n{-# NOINLINE bindPhysics2DShapeQueryResult_get_result_rid #-}\n\n-- | Returns the @RID@ of the object that intersected with the shape at index @idx@.\nbindPhysics2DShapeQueryResult_get_result_rid :: MethodBind\nbindPhysics2DShapeQueryResult_get_result_rid\n  = unsafePerformIO $\n      withCString \"Physics2DShapeQueryResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_result_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @RID@ of the object that intersected with the shape at index @idx@.\nget_result_rid ::\n                 (Physics2DShapeQueryResult :< cls, Object :< cls) =>\n                 cls -> Int -> IO Rid\nget_result_rid cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DShapeQueryResult_get_result_rid\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DShapeQueryResult \"get_result_rid\"\n           '[Int]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DShapeQueryResult.get_result_rid"
  },
  {
    "path": "src/Godot/Core/Physics2DTestMotionResult.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Physics2DTestMotionResult\n       (Godot.Core.Physics2DTestMotionResult.get_collider,\n        Godot.Core.Physics2DTestMotionResult.get_collider_id,\n        Godot.Core.Physics2DTestMotionResult.get_collider_rid,\n        Godot.Core.Physics2DTestMotionResult.get_collider_shape,\n        Godot.Core.Physics2DTestMotionResult.get_collider_velocity,\n        Godot.Core.Physics2DTestMotionResult.get_collision_normal,\n        Godot.Core.Physics2DTestMotionResult.get_collision_point,\n        Godot.Core.Physics2DTestMotionResult.get_motion,\n        Godot.Core.Physics2DTestMotionResult.get_motion_remainder)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\ninstance NodeProperty Physics2DTestMotionResult \"collider\" Object\n           'True\n         where\n        nodeProperty = (get_collider, (), Nothing)\n\ninstance NodeProperty Physics2DTestMotionResult \"collider_id\" Int\n           'True\n         where\n        nodeProperty = (get_collider_id, (), Nothing)\n\ninstance NodeProperty Physics2DTestMotionResult \"collider_rid\" Rid\n           'True\n         where\n        nodeProperty = (get_collider_rid, (), Nothing)\n\ninstance NodeProperty Physics2DTestMotionResult \"collider_shape\"\n           Int\n           'True\n         where\n        nodeProperty = (get_collider_shape, (), Nothing)\n\ninstance NodeProperty Physics2DTestMotionResult \"collider_velocity\"\n           Vector2\n           'True\n         where\n        nodeProperty = (get_collider_velocity, (), Nothing)\n\ninstance NodeProperty Physics2DTestMotionResult \"collision_normal\"\n           Vector2\n           'True\n         where\n        nodeProperty = (get_collision_normal, (), Nothing)\n\ninstance NodeProperty Physics2DTestMotionResult \"collision_point\"\n           Vector2\n           'True\n         where\n        nodeProperty = (get_collision_point, (), Nothing)\n\ninstance NodeProperty Physics2DTestMotionResult \"motion\" Vector2\n           'True\n         where\n        nodeProperty = (get_motion, (), Nothing)\n\ninstance NodeProperty Physics2DTestMotionResult \"motion_remainder\"\n           Vector2\n           'True\n         where\n        nodeProperty = (get_motion_remainder, (), Nothing)\n\n{-# NOINLINE bindPhysics2DTestMotionResult_get_collider #-}\n\nbindPhysics2DTestMotionResult_get_collider :: MethodBind\nbindPhysics2DTestMotionResult_get_collider\n  = unsafePerformIO $\n      withCString \"Physics2DTestMotionResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_collider ::\n               (Physics2DTestMotionResult :< cls, Object :< cls) =>\n               cls -> IO Object\nget_collider cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DTestMotionResult_get_collider\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DTestMotionResult \"get_collider\" '[]\n           (IO Object)\n         where\n        nodeMethod = Godot.Core.Physics2DTestMotionResult.get_collider\n\n{-# NOINLINE bindPhysics2DTestMotionResult_get_collider_id #-}\n\nbindPhysics2DTestMotionResult_get_collider_id :: MethodBind\nbindPhysics2DTestMotionResult_get_collider_id\n  = unsafePerformIO $\n      withCString \"Physics2DTestMotionResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_collider_id ::\n                  (Physics2DTestMotionResult :< cls, Object :< cls) => cls -> IO Int\nget_collider_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DTestMotionResult_get_collider_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DTestMotionResult \"get_collider_id\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Physics2DTestMotionResult.get_collider_id\n\n{-# NOINLINE bindPhysics2DTestMotionResult_get_collider_rid #-}\n\nbindPhysics2DTestMotionResult_get_collider_rid :: MethodBind\nbindPhysics2DTestMotionResult_get_collider_rid\n  = unsafePerformIO $\n      withCString \"Physics2DTestMotionResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_collider_rid ::\n                   (Physics2DTestMotionResult :< cls, Object :< cls) => cls -> IO Rid\nget_collider_rid cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DTestMotionResult_get_collider_rid\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DTestMotionResult \"get_collider_rid\"\n           '[]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.Physics2DTestMotionResult.get_collider_rid\n\n{-# NOINLINE bindPhysics2DTestMotionResult_get_collider_shape #-}\n\nbindPhysics2DTestMotionResult_get_collider_shape :: MethodBind\nbindPhysics2DTestMotionResult_get_collider_shape\n  = unsafePerformIO $\n      withCString \"Physics2DTestMotionResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_collider_shape ::\n                     (Physics2DTestMotionResult :< cls, Object :< cls) => cls -> IO Int\nget_collider_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DTestMotionResult_get_collider_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DTestMotionResult \"get_collider_shape\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DTestMotionResult.get_collider_shape\n\n{-# NOINLINE bindPhysics2DTestMotionResult_get_collider_velocity\n             #-}\n\nbindPhysics2DTestMotionResult_get_collider_velocity :: MethodBind\nbindPhysics2DTestMotionResult_get_collider_velocity\n  = unsafePerformIO $\n      withCString \"Physics2DTestMotionResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_collider_velocity ::\n                        (Physics2DTestMotionResult :< cls, Object :< cls) =>\n                        cls -> IO Vector2\nget_collider_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DTestMotionResult_get_collider_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DTestMotionResult\n           \"get_collider_velocity\"\n           '[]\n           (IO Vector2)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DTestMotionResult.get_collider_velocity\n\n{-# NOINLINE bindPhysics2DTestMotionResult_get_collision_normal #-}\n\nbindPhysics2DTestMotionResult_get_collision_normal :: MethodBind\nbindPhysics2DTestMotionResult_get_collision_normal\n  = unsafePerformIO $\n      withCString \"Physics2DTestMotionResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_collision_normal ::\n                       (Physics2DTestMotionResult :< cls, Object :< cls) =>\n                       cls -> IO Vector2\nget_collision_normal cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DTestMotionResult_get_collision_normal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DTestMotionResult\n           \"get_collision_normal\"\n           '[]\n           (IO Vector2)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DTestMotionResult.get_collision_normal\n\n{-# NOINLINE bindPhysics2DTestMotionResult_get_collision_point #-}\n\nbindPhysics2DTestMotionResult_get_collision_point :: MethodBind\nbindPhysics2DTestMotionResult_get_collision_point\n  = unsafePerformIO $\n      withCString \"Physics2DTestMotionResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_collision_point ::\n                      (Physics2DTestMotionResult :< cls, Object :< cls) =>\n                      cls -> IO Vector2\nget_collision_point cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DTestMotionResult_get_collision_point\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DTestMotionResult \"get_collision_point\"\n           '[]\n           (IO Vector2)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DTestMotionResult.get_collision_point\n\n{-# NOINLINE bindPhysics2DTestMotionResult_get_motion #-}\n\nbindPhysics2DTestMotionResult_get_motion :: MethodBind\nbindPhysics2DTestMotionResult_get_motion\n  = unsafePerformIO $\n      withCString \"Physics2DTestMotionResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_motion\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_motion ::\n             (Physics2DTestMotionResult :< cls, Object :< cls) =>\n             cls -> IO Vector2\nget_motion cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysics2DTestMotionResult_get_motion\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DTestMotionResult \"get_motion\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Physics2DTestMotionResult.get_motion\n\n{-# NOINLINE bindPhysics2DTestMotionResult_get_motion_remainder #-}\n\nbindPhysics2DTestMotionResult_get_motion_remainder :: MethodBind\nbindPhysics2DTestMotionResult_get_motion_remainder\n  = unsafePerformIO $\n      withCString \"Physics2DTestMotionResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_motion_remainder\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_motion_remainder ::\n                       (Physics2DTestMotionResult :< cls, Object :< cls) =>\n                       cls -> IO Vector2\nget_motion_remainder cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysics2DTestMotionResult_get_motion_remainder\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Physics2DTestMotionResult\n           \"get_motion_remainder\"\n           '[]\n           (IO Vector2)\n         where\n        nodeMethod\n          = Godot.Core.Physics2DTestMotionResult.get_motion_remainder"
  },
  {
    "path": "src/Godot/Core/PhysicsBody.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PhysicsBody\n       (Godot.Core.PhysicsBody._get_layers,\n        Godot.Core.PhysicsBody._set_layers,\n        Godot.Core.PhysicsBody.add_collision_exception_with,\n        Godot.Core.PhysicsBody.get_collision_exceptions,\n        Godot.Core.PhysicsBody.get_collision_layer,\n        Godot.Core.PhysicsBody.get_collision_layer_bit,\n        Godot.Core.PhysicsBody.get_collision_mask,\n        Godot.Core.PhysicsBody.get_collision_mask_bit,\n        Godot.Core.PhysicsBody.remove_collision_exception_with,\n        Godot.Core.PhysicsBody.set_collision_layer,\n        Godot.Core.PhysicsBody.set_collision_layer_bit,\n        Godot.Core.PhysicsBody.set_collision_mask,\n        Godot.Core.PhysicsBody.set_collision_mask_bit)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.CollisionObject()\n\ninstance NodeProperty PhysicsBody \"collision_layer\" Int 'False\n         where\n        nodeProperty\n          = (get_collision_layer, wrapDroppingSetter set_collision_layer,\n             Nothing)\n\ninstance NodeProperty PhysicsBody \"collision_mask\" Int 'False where\n        nodeProperty\n          = (get_collision_mask, wrapDroppingSetter set_collision_mask,\n             Nothing)\n\n{-# NOINLINE bindPhysicsBody__get_layers #-}\n\nbindPhysicsBody__get_layers :: MethodBind\nbindPhysicsBody__get_layers\n  = unsafePerformIO $\n      withCString \"PhysicsBody\" $\n        \\ clsNamePtr ->\n          withCString \"_get_layers\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_layers :: (PhysicsBody :< cls, Object :< cls) => cls -> IO Int\n_get_layers cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody__get_layers (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody \"_get_layers\" '[] (IO Int) where\n        nodeMethod = Godot.Core.PhysicsBody._get_layers\n\n{-# NOINLINE bindPhysicsBody__set_layers #-}\n\nbindPhysicsBody__set_layers :: MethodBind\nbindPhysicsBody__set_layers\n  = unsafePerformIO $\n      withCString \"PhysicsBody\" $\n        \\ clsNamePtr ->\n          withCString \"_set_layers\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_layers ::\n              (PhysicsBody :< cls, Object :< cls) => cls -> Int -> IO ()\n_set_layers cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody__set_layers (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody \"_set_layers\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.PhysicsBody._set_layers\n\n{-# NOINLINE bindPhysicsBody_add_collision_exception_with #-}\n\n-- | Adds a body to the list of bodies that this body can't collide with.\nbindPhysicsBody_add_collision_exception_with :: MethodBind\nbindPhysicsBody_add_collision_exception_with\n  = unsafePerformIO $\n      withCString \"PhysicsBody\" $\n        \\ clsNamePtr ->\n          withCString \"add_collision_exception_with\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a body to the list of bodies that this body can't collide with.\nadd_collision_exception_with ::\n                               (PhysicsBody :< cls, Object :< cls) => cls -> Node -> IO ()\nadd_collision_exception_with cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody_add_collision_exception_with\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody \"add_collision_exception_with\"\n           '[Node]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsBody.add_collision_exception_with\n\n{-# NOINLINE bindPhysicsBody_get_collision_exceptions #-}\n\n-- | Returns an array of nodes that were added as collision exceptions for this body.\nbindPhysicsBody_get_collision_exceptions :: MethodBind\nbindPhysicsBody_get_collision_exceptions\n  = unsafePerformIO $\n      withCString \"PhysicsBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_exceptions\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of nodes that were added as collision exceptions for this body.\nget_collision_exceptions ::\n                           (PhysicsBody :< cls, Object :< cls) => cls -> IO Array\nget_collision_exceptions cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody_get_collision_exceptions\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody \"get_collision_exceptions\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.PhysicsBody.get_collision_exceptions\n\n{-# NOINLINE bindPhysicsBody_get_collision_layer #-}\n\n-- | The physics layers this area is in.\n--   \t\t\tCollidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the @collision_mask@ property.\n--   \t\t\tA contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindPhysicsBody_get_collision_layer :: MethodBind\nbindPhysicsBody_get_collision_layer\n  = unsafePerformIO $\n      withCString \"PhysicsBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layers this area is in.\n--   \t\t\tCollidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the @collision_mask@ property.\n--   \t\t\tA contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nget_collision_layer ::\n                      (PhysicsBody :< cls, Object :< cls) => cls -> IO Int\nget_collision_layer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody_get_collision_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody \"get_collision_layer\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicsBody.get_collision_layer\n\n{-# NOINLINE bindPhysicsBody_get_collision_layer_bit #-}\n\n-- | Returns an individual bit on the @collision_layer@.\nbindPhysicsBody_get_collision_layer_bit :: MethodBind\nbindPhysicsBody_get_collision_layer_bit\n  = unsafePerformIO $\n      withCString \"PhysicsBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_layer_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an individual bit on the @collision_layer@.\nget_collision_layer_bit ::\n                          (PhysicsBody :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_layer_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody_get_collision_layer_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody \"get_collision_layer_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PhysicsBody.get_collision_layer_bit\n\n{-# NOINLINE bindPhysicsBody_get_collision_mask #-}\n\n-- | The physics layers this area scans for collisions. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindPhysicsBody_get_collision_mask :: MethodBind\nbindPhysicsBody_get_collision_mask\n  = unsafePerformIO $\n      withCString \"PhysicsBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layers this area scans for collisions. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nget_collision_mask ::\n                     (PhysicsBody :< cls, Object :< cls) => cls -> IO Int\nget_collision_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody_get_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody \"get_collision_mask\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicsBody.get_collision_mask\n\n{-# NOINLINE bindPhysicsBody_get_collision_mask_bit #-}\n\n-- | Returns an individual bit on the @collision_mask@.\nbindPhysicsBody_get_collision_mask_bit :: MethodBind\nbindPhysicsBody_get_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"PhysicsBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an individual bit on the @collision_mask@.\nget_collision_mask_bit ::\n                         (PhysicsBody :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_mask_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody_get_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody \"get_collision_mask_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PhysicsBody.get_collision_mask_bit\n\n{-# NOINLINE bindPhysicsBody_remove_collision_exception_with #-}\n\n-- | Removes a body from the list of bodies that this body can't collide with.\nbindPhysicsBody_remove_collision_exception_with :: MethodBind\nbindPhysicsBody_remove_collision_exception_with\n  = unsafePerformIO $\n      withCString \"PhysicsBody\" $\n        \\ clsNamePtr ->\n          withCString \"remove_collision_exception_with\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a body from the list of bodies that this body can't collide with.\nremove_collision_exception_with ::\n                                  (PhysicsBody :< cls, Object :< cls) => cls -> Node -> IO ()\nremove_collision_exception_with cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsBody_remove_collision_exception_with\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody \"remove_collision_exception_with\"\n           '[Node]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsBody.remove_collision_exception_with\n\n{-# NOINLINE bindPhysicsBody_set_collision_layer #-}\n\n-- | The physics layers this area is in.\n--   \t\t\tCollidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the @collision_mask@ property.\n--   \t\t\tA contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindPhysicsBody_set_collision_layer :: MethodBind\nbindPhysicsBody_set_collision_layer\n  = unsafePerformIO $\n      withCString \"PhysicsBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layers this area is in.\n--   \t\t\tCollidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the @collision_mask@ property.\n--   \t\t\tA contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nset_collision_layer ::\n                      (PhysicsBody :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_layer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody_set_collision_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody \"set_collision_layer\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsBody.set_collision_layer\n\n{-# NOINLINE bindPhysicsBody_set_collision_layer_bit #-}\n\n-- | Sets individual bits on the @collision_layer@ bitmask. Use this if you only need to change one layer's value.\nbindPhysicsBody_set_collision_layer_bit :: MethodBind\nbindPhysicsBody_set_collision_layer_bit\n  = unsafePerformIO $\n      withCString \"PhysicsBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_layer_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets individual bits on the @collision_layer@ bitmask. Use this if you only need to change one layer's value.\nset_collision_layer_bit ::\n                          (PhysicsBody :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_collision_layer_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody_set_collision_layer_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody \"set_collision_layer_bit\"\n           '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsBody.set_collision_layer_bit\n\n{-# NOINLINE bindPhysicsBody_set_collision_mask #-}\n\n-- | The physics layers this area scans for collisions. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindPhysicsBody_set_collision_mask :: MethodBind\nbindPhysicsBody_set_collision_mask\n  = unsafePerformIO $\n      withCString \"PhysicsBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layers this area scans for collisions. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nset_collision_mask ::\n                     (PhysicsBody :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody_set_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody \"set_collision_mask\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsBody.set_collision_mask\n\n{-# NOINLINE bindPhysicsBody_set_collision_mask_bit #-}\n\n-- | Sets individual bits on the @collision_mask@ bitmask. Use this if you only need to change one layer's value.\nbindPhysicsBody_set_collision_mask_bit :: MethodBind\nbindPhysicsBody_set_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"PhysicsBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets individual bits on the @collision_mask@ bitmask. Use this if you only need to change one layer's value.\nset_collision_mask_bit ::\n                         (PhysicsBody :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_collision_mask_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody_set_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody \"set_collision_mask_bit\"\n           '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsBody.set_collision_mask_bit"
  },
  {
    "path": "src/Godot/Core/PhysicsBody2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PhysicsBody2D\n       (Godot.Core.PhysicsBody2D._get_layers,\n        Godot.Core.PhysicsBody2D._set_layers,\n        Godot.Core.PhysicsBody2D.add_collision_exception_with,\n        Godot.Core.PhysicsBody2D.get_collision_exceptions,\n        Godot.Core.PhysicsBody2D.get_collision_layer,\n        Godot.Core.PhysicsBody2D.get_collision_layer_bit,\n        Godot.Core.PhysicsBody2D.get_collision_mask,\n        Godot.Core.PhysicsBody2D.get_collision_mask_bit,\n        Godot.Core.PhysicsBody2D.remove_collision_exception_with,\n        Godot.Core.PhysicsBody2D.set_collision_layer,\n        Godot.Core.PhysicsBody2D.set_collision_layer_bit,\n        Godot.Core.PhysicsBody2D.set_collision_mask,\n        Godot.Core.PhysicsBody2D.set_collision_mask_bit)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.CollisionObject2D()\n\ninstance NodeProperty PhysicsBody2D \"collision_layer\" Int 'False\n         where\n        nodeProperty\n          = (get_collision_layer, wrapDroppingSetter set_collision_layer,\n             Nothing)\n\ninstance NodeProperty PhysicsBody2D \"collision_mask\" Int 'False\n         where\n        nodeProperty\n          = (get_collision_mask, wrapDroppingSetter set_collision_mask,\n             Nothing)\n\ninstance NodeProperty PhysicsBody2D \"layers\" Int 'False where\n        nodeProperty\n          = (_get_layers, wrapDroppingSetter _set_layers, Nothing)\n\n{-# NOINLINE bindPhysicsBody2D__get_layers #-}\n\n-- | Both @collision_layer@ and @collision_mask@. Returns @collision_layer@ when accessed. Updates @collision_layer@ and @collision_mask@ when modified.\nbindPhysicsBody2D__get_layers :: MethodBind\nbindPhysicsBody2D__get_layers\n  = unsafePerformIO $\n      withCString \"PhysicsBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"_get_layers\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Both @collision_layer@ and @collision_mask@. Returns @collision_layer@ when accessed. Updates @collision_layer@ and @collision_mask@ when modified.\n_get_layers ::\n              (PhysicsBody2D :< cls, Object :< cls) => cls -> IO Int\n_get_layers cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody2D__get_layers (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody2D \"_get_layers\" '[] (IO Int) where\n        nodeMethod = Godot.Core.PhysicsBody2D._get_layers\n\n{-# NOINLINE bindPhysicsBody2D__set_layers #-}\n\n-- | Both @collision_layer@ and @collision_mask@. Returns @collision_layer@ when accessed. Updates @collision_layer@ and @collision_mask@ when modified.\nbindPhysicsBody2D__set_layers :: MethodBind\nbindPhysicsBody2D__set_layers\n  = unsafePerformIO $\n      withCString \"PhysicsBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"_set_layers\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Both @collision_layer@ and @collision_mask@. Returns @collision_layer@ when accessed. Updates @collision_layer@ and @collision_mask@ when modified.\n_set_layers ::\n              (PhysicsBody2D :< cls, Object :< cls) => cls -> Int -> IO ()\n_set_layers cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody2D__set_layers (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody2D \"_set_layers\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsBody2D._set_layers\n\n{-# NOINLINE bindPhysicsBody2D_add_collision_exception_with #-}\n\n-- | Adds a body to the list of bodies that this body can't collide with.\nbindPhysicsBody2D_add_collision_exception_with :: MethodBind\nbindPhysicsBody2D_add_collision_exception_with\n  = unsafePerformIO $\n      withCString \"PhysicsBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"add_collision_exception_with\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a body to the list of bodies that this body can't collide with.\nadd_collision_exception_with ::\n                               (PhysicsBody2D :< cls, Object :< cls) => cls -> Node -> IO ()\nadd_collision_exception_with cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsBody2D_add_collision_exception_with\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody2D \"add_collision_exception_with\"\n           '[Node]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsBody2D.add_collision_exception_with\n\n{-# NOINLINE bindPhysicsBody2D_get_collision_exceptions #-}\n\n-- | Returns an array of nodes that were added as collision exceptions for this body.\nbindPhysicsBody2D_get_collision_exceptions :: MethodBind\nbindPhysicsBody2D_get_collision_exceptions\n  = unsafePerformIO $\n      withCString \"PhysicsBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_exceptions\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of nodes that were added as collision exceptions for this body.\nget_collision_exceptions ::\n                           (PhysicsBody2D :< cls, Object :< cls) => cls -> IO Array\nget_collision_exceptions cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody2D_get_collision_exceptions\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody2D \"get_collision_exceptions\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.PhysicsBody2D.get_collision_exceptions\n\n{-# NOINLINE bindPhysicsBody2D_get_collision_layer #-}\n\n-- | The physics layers this area is in.\n--   \t\t\tCollidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the @collision_mask@ property.\n--   \t\t\tA contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindPhysicsBody2D_get_collision_layer :: MethodBind\nbindPhysicsBody2D_get_collision_layer\n  = unsafePerformIO $\n      withCString \"PhysicsBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layers this area is in.\n--   \t\t\tCollidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the @collision_mask@ property.\n--   \t\t\tA contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nget_collision_layer ::\n                      (PhysicsBody2D :< cls, Object :< cls) => cls -> IO Int\nget_collision_layer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody2D_get_collision_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody2D \"get_collision_layer\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicsBody2D.get_collision_layer\n\n{-# NOINLINE bindPhysicsBody2D_get_collision_layer_bit #-}\n\n-- | Returns an individual bit on the @collision_layer@.\nbindPhysicsBody2D_get_collision_layer_bit :: MethodBind\nbindPhysicsBody2D_get_collision_layer_bit\n  = unsafePerformIO $\n      withCString \"PhysicsBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_layer_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an individual bit on the @collision_layer@.\nget_collision_layer_bit ::\n                          (PhysicsBody2D :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_layer_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody2D_get_collision_layer_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody2D \"get_collision_layer_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PhysicsBody2D.get_collision_layer_bit\n\n{-# NOINLINE bindPhysicsBody2D_get_collision_mask #-}\n\n-- | The physics layers this area scans for collisions. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindPhysicsBody2D_get_collision_mask :: MethodBind\nbindPhysicsBody2D_get_collision_mask\n  = unsafePerformIO $\n      withCString \"PhysicsBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layers this area scans for collisions. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nget_collision_mask ::\n                     (PhysicsBody2D :< cls, Object :< cls) => cls -> IO Int\nget_collision_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody2D_get_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody2D \"get_collision_mask\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicsBody2D.get_collision_mask\n\n{-# NOINLINE bindPhysicsBody2D_get_collision_mask_bit #-}\n\n-- | Returns an individual bit on the @collision_mask@.\nbindPhysicsBody2D_get_collision_mask_bit :: MethodBind\nbindPhysicsBody2D_get_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"PhysicsBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an individual bit on the @collision_mask@.\nget_collision_mask_bit ::\n                         (PhysicsBody2D :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_mask_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody2D_get_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody2D \"get_collision_mask_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PhysicsBody2D.get_collision_mask_bit\n\n{-# NOINLINE bindPhysicsBody2D_remove_collision_exception_with #-}\n\n-- | Removes a body from the list of bodies that this body can't collide with.\nbindPhysicsBody2D_remove_collision_exception_with :: MethodBind\nbindPhysicsBody2D_remove_collision_exception_with\n  = unsafePerformIO $\n      withCString \"PhysicsBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"remove_collision_exception_with\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a body from the list of bodies that this body can't collide with.\nremove_collision_exception_with ::\n                                  (PhysicsBody2D :< cls, Object :< cls) => cls -> Node -> IO ()\nremove_collision_exception_with cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsBody2D_remove_collision_exception_with\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody2D \"remove_collision_exception_with\"\n           '[Node]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.PhysicsBody2D.remove_collision_exception_with\n\n{-# NOINLINE bindPhysicsBody2D_set_collision_layer #-}\n\n-- | The physics layers this area is in.\n--   \t\t\tCollidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the @collision_mask@ property.\n--   \t\t\tA contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindPhysicsBody2D_set_collision_layer :: MethodBind\nbindPhysicsBody2D_set_collision_layer\n  = unsafePerformIO $\n      withCString \"PhysicsBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layers this area is in.\n--   \t\t\tCollidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the @collision_mask@ property.\n--   \t\t\tA contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nset_collision_layer ::\n                      (PhysicsBody2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_layer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody2D_set_collision_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody2D \"set_collision_layer\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsBody2D.set_collision_layer\n\n{-# NOINLINE bindPhysicsBody2D_set_collision_layer_bit #-}\n\n-- | Sets individual bits on the @collision_layer@ bitmask. Use this if you only need to change one layer's value.\nbindPhysicsBody2D_set_collision_layer_bit :: MethodBind\nbindPhysicsBody2D_set_collision_layer_bit\n  = unsafePerformIO $\n      withCString \"PhysicsBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_layer_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets individual bits on the @collision_layer@ bitmask. Use this if you only need to change one layer's value.\nset_collision_layer_bit ::\n                          (PhysicsBody2D :< cls, Object :< cls) =>\n                          cls -> Int -> Bool -> IO ()\nset_collision_layer_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody2D_set_collision_layer_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody2D \"set_collision_layer_bit\"\n           '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsBody2D.set_collision_layer_bit\n\n{-# NOINLINE bindPhysicsBody2D_set_collision_mask #-}\n\n-- | The physics layers this area scans for collisions. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindPhysicsBody2D_set_collision_mask :: MethodBind\nbindPhysicsBody2D_set_collision_mask\n  = unsafePerformIO $\n      withCString \"PhysicsBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layers this area scans for collisions. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nset_collision_mask ::\n                     (PhysicsBody2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody2D_set_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody2D \"set_collision_mask\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsBody2D.set_collision_mask\n\n{-# NOINLINE bindPhysicsBody2D_set_collision_mask_bit #-}\n\n-- | Sets individual bits on the @collision_mask@ bitmask. Use this if you only need to change one layer's value.\nbindPhysicsBody2D_set_collision_mask_bit :: MethodBind\nbindPhysicsBody2D_set_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"PhysicsBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets individual bits on the @collision_mask@ bitmask. Use this if you only need to change one layer's value.\nset_collision_mask_bit ::\n                         (PhysicsBody2D :< cls, Object :< cls) =>\n                         cls -> Int -> Bool -> IO ()\nset_collision_mask_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsBody2D_set_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsBody2D \"set_collision_mask_bit\"\n           '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsBody2D.set_collision_mask_bit"
  },
  {
    "path": "src/Godot/Core/PhysicsDirectBodyState.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PhysicsDirectBodyState\n       (Godot.Core.PhysicsDirectBodyState.add_central_force,\n        Godot.Core.PhysicsDirectBodyState.add_force,\n        Godot.Core.PhysicsDirectBodyState.add_torque,\n        Godot.Core.PhysicsDirectBodyState.apply_central_impulse,\n        Godot.Core.PhysicsDirectBodyState.apply_impulse,\n        Godot.Core.PhysicsDirectBodyState.apply_torque_impulse,\n        Godot.Core.PhysicsDirectBodyState.get_angular_velocity,\n        Godot.Core.PhysicsDirectBodyState.get_center_of_mass,\n        Godot.Core.PhysicsDirectBodyState.get_contact_collider,\n        Godot.Core.PhysicsDirectBodyState.get_contact_collider_id,\n        Godot.Core.PhysicsDirectBodyState.get_contact_collider_object,\n        Godot.Core.PhysicsDirectBodyState.get_contact_collider_position,\n        Godot.Core.PhysicsDirectBodyState.get_contact_collider_shape,\n        Godot.Core.PhysicsDirectBodyState.get_contact_collider_velocity_at_position,\n        Godot.Core.PhysicsDirectBodyState.get_contact_count,\n        Godot.Core.PhysicsDirectBodyState.get_contact_impulse,\n        Godot.Core.PhysicsDirectBodyState.get_contact_local_normal,\n        Godot.Core.PhysicsDirectBodyState.get_contact_local_position,\n        Godot.Core.PhysicsDirectBodyState.get_contact_local_shape,\n        Godot.Core.PhysicsDirectBodyState.get_inverse_inertia,\n        Godot.Core.PhysicsDirectBodyState.get_inverse_mass,\n        Godot.Core.PhysicsDirectBodyState.get_linear_velocity,\n        Godot.Core.PhysicsDirectBodyState.get_principal_inertia_axes,\n        Godot.Core.PhysicsDirectBodyState.get_space_state,\n        Godot.Core.PhysicsDirectBodyState.get_step,\n        Godot.Core.PhysicsDirectBodyState.get_total_angular_damp,\n        Godot.Core.PhysicsDirectBodyState.get_total_gravity,\n        Godot.Core.PhysicsDirectBodyState.get_total_linear_damp,\n        Godot.Core.PhysicsDirectBodyState.get_transform,\n        Godot.Core.PhysicsDirectBodyState.integrate_forces,\n        Godot.Core.PhysicsDirectBodyState.is_sleeping,\n        Godot.Core.PhysicsDirectBodyState.set_angular_velocity,\n        Godot.Core.PhysicsDirectBodyState.set_linear_velocity,\n        Godot.Core.PhysicsDirectBodyState.set_sleep_state,\n        Godot.Core.PhysicsDirectBodyState.set_transform)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\ninstance NodeProperty PhysicsDirectBodyState \"angular_velocity\"\n           Vector3\n           'False\n         where\n        nodeProperty\n          = (get_angular_velocity, wrapDroppingSetter set_angular_velocity,\n             Nothing)\n\ninstance NodeProperty PhysicsDirectBodyState \"center_of_mass\"\n           Vector3\n           'True\n         where\n        nodeProperty = (get_center_of_mass, (), Nothing)\n\ninstance NodeProperty PhysicsDirectBodyState \"inverse_inertia\"\n           Vector3\n           'True\n         where\n        nodeProperty = (get_inverse_inertia, (), Nothing)\n\ninstance NodeProperty PhysicsDirectBodyState \"inverse_mass\" Float\n           'True\n         where\n        nodeProperty = (get_inverse_mass, (), Nothing)\n\ninstance NodeProperty PhysicsDirectBodyState \"linear_velocity\"\n           Vector3\n           'False\n         where\n        nodeProperty\n          = (get_linear_velocity, wrapDroppingSetter set_linear_velocity,\n             Nothing)\n\ninstance NodeProperty PhysicsDirectBodyState\n           \"principal_inertia_axes\"\n           Basis\n           'True\n         where\n        nodeProperty = (get_principal_inertia_axes, (), Nothing)\n\ninstance NodeProperty PhysicsDirectBodyState \"sleeping\" Bool 'False\n         where\n        nodeProperty\n          = (is_sleeping, wrapDroppingSetter set_sleep_state, Nothing)\n\ninstance NodeProperty PhysicsDirectBodyState \"step\" Float 'True\n         where\n        nodeProperty = (get_step, (), Nothing)\n\ninstance NodeProperty PhysicsDirectBodyState \"total_angular_damp\"\n           Float\n           'True\n         where\n        nodeProperty = (get_total_angular_damp, (), Nothing)\n\ninstance NodeProperty PhysicsDirectBodyState \"total_gravity\"\n           Vector3\n           'True\n         where\n        nodeProperty = (get_total_gravity, (), Nothing)\n\ninstance NodeProperty PhysicsDirectBodyState \"total_linear_damp\"\n           Float\n           'True\n         where\n        nodeProperty = (get_total_linear_damp, (), Nothing)\n\ninstance NodeProperty PhysicsDirectBodyState \"transform\" Transform\n           'False\n         where\n        nodeProperty\n          = (get_transform, wrapDroppingSetter set_transform, Nothing)\n\n{-# NOINLINE bindPhysicsDirectBodyState_add_central_force #-}\n\n-- | Adds a constant directional force without affecting rotation.\n--   \t\t\t\tThis is equivalent to @add_force(force, Vector3(0,0,0))@.\nbindPhysicsDirectBodyState_add_central_force :: MethodBind\nbindPhysicsDirectBodyState_add_central_force\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"add_central_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a constant directional force without affecting rotation.\n--   \t\t\t\tThis is equivalent to @add_force(force, Vector3(0,0,0))@.\nadd_central_force ::\n                    (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                    cls -> Vector3 -> IO ()\nadd_central_force cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectBodyState_add_central_force\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"add_central_force\"\n           '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.add_central_force\n\n{-# NOINLINE bindPhysicsDirectBodyState_add_force #-}\n\n-- | Adds a positioned force to the body. Both the force and the offset from the body origin are in global coordinates.\nbindPhysicsDirectBodyState_add_force :: MethodBind\nbindPhysicsDirectBodyState_add_force\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"add_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a positioned force to the body. Both the force and the offset from the body origin are in global coordinates.\nadd_force ::\n            (PhysicsDirectBodyState :< cls, Object :< cls) =>\n            cls -> Vector3 -> Vector3 -> IO ()\nadd_force cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectBodyState_add_force\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"add_force\"\n           '[Vector3, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.add_force\n\n{-# NOINLINE bindPhysicsDirectBodyState_add_torque #-}\n\n-- | Adds a constant rotational force without affecting position.\nbindPhysicsDirectBodyState_add_torque :: MethodBind\nbindPhysicsDirectBodyState_add_torque\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"add_torque\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a constant rotational force without affecting position.\nadd_torque ::\n             (PhysicsDirectBodyState :< cls, Object :< cls) =>\n             cls -> Vector3 -> IO ()\nadd_torque cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectBodyState_add_torque\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"add_torque\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.add_torque\n\n{-# NOINLINE bindPhysicsDirectBodyState_apply_central_impulse #-}\n\n-- | Applies a single directional impulse without affecting rotation.\n--   \t\t\t\tThis is equivalent to @apply_impulse(Vector3(0, 0, 0), impulse)@.\nbindPhysicsDirectBodyState_apply_central_impulse :: MethodBind\nbindPhysicsDirectBodyState_apply_central_impulse\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"apply_central_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies a single directional impulse without affecting rotation.\n--   \t\t\t\tThis is equivalent to @apply_impulse(Vector3(0, 0, 0), impulse)@.\napply_central_impulse ::\n                        (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                        cls -> Vector3 -> IO ()\napply_central_impulse cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_apply_central_impulse\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"apply_central_impulse\"\n           '[Vector3]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.PhysicsDirectBodyState.apply_central_impulse\n\n{-# NOINLINE bindPhysicsDirectBodyState_apply_impulse #-}\n\n-- | Applies a positioned impulse to the body. An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason it should only be used when simulating one-time impacts. The position uses the rotation of the global coordinate system, but is centered at the object's origin.\nbindPhysicsDirectBodyState_apply_impulse :: MethodBind\nbindPhysicsDirectBodyState_apply_impulse\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"apply_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies a positioned impulse to the body. An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason it should only be used when simulating one-time impacts. The position uses the rotation of the global coordinate system, but is centered at the object's origin.\napply_impulse ::\n                (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                cls -> Vector3 -> Vector3 -> IO ()\napply_impulse cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectBodyState_apply_impulse\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"apply_impulse\"\n           '[Vector3, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.apply_impulse\n\n{-# NOINLINE bindPhysicsDirectBodyState_apply_torque_impulse #-}\n\n-- | Apply a torque impulse (which will be affected by the body mass and shape). This will rotate the body around the vector @j@ passed as parameter.\nbindPhysicsDirectBodyState_apply_torque_impulse :: MethodBind\nbindPhysicsDirectBodyState_apply_torque_impulse\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"apply_torque_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Apply a torque impulse (which will be affected by the body mass and shape). This will rotate the body around the vector @j@ passed as parameter.\napply_torque_impulse ::\n                       (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                       cls -> Vector3 -> IO ()\napply_torque_impulse cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_apply_torque_impulse\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"apply_torque_impulse\"\n           '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.apply_torque_impulse\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_angular_velocity #-}\n\n-- | The body's rotational velocity.\nbindPhysicsDirectBodyState_get_angular_velocity :: MethodBind\nbindPhysicsDirectBodyState_get_angular_velocity\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_angular_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's rotational velocity.\nget_angular_velocity ::\n                       (PhysicsDirectBodyState :< cls, Object :< cls) => cls -> IO Vector3\nget_angular_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_get_angular_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"get_angular_velocity\"\n           '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.get_angular_velocity\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_center_of_mass #-}\n\nbindPhysicsDirectBodyState_get_center_of_mass :: MethodBind\nbindPhysicsDirectBodyState_get_center_of_mass\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_center_of_mass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_center_of_mass ::\n                     (PhysicsDirectBodyState :< cls, Object :< cls) => cls -> IO Vector3\nget_center_of_mass cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_get_center_of_mass\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"get_center_of_mass\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.get_center_of_mass\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_contact_collider #-}\n\n-- | Returns the collider's @RID@.\nbindPhysicsDirectBodyState_get_contact_collider :: MethodBind\nbindPhysicsDirectBodyState_get_contact_collider\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_collider\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the collider's @RID@.\nget_contact_collider ::\n                       (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                       cls -> Int -> IO Rid\nget_contact_collider cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_get_contact_collider\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"get_contact_collider\"\n           '[Int]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.get_contact_collider\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_contact_collider_id #-}\n\n-- | Returns the collider's object id.\nbindPhysicsDirectBodyState_get_contact_collider_id :: MethodBind\nbindPhysicsDirectBodyState_get_contact_collider_id\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_collider_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the collider's object id.\nget_contact_collider_id ::\n                          (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                          cls -> Int -> IO Int\nget_contact_collider_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_get_contact_collider_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState\n           \"get_contact_collider_id\"\n           '[Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsDirectBodyState.get_contact_collider_id\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_contact_collider_object\n             #-}\n\n-- | Returns the collider object.\nbindPhysicsDirectBodyState_get_contact_collider_object ::\n                                                       MethodBind\nbindPhysicsDirectBodyState_get_contact_collider_object\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_collider_object\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the collider object.\nget_contact_collider_object ::\n                              (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                              cls -> Int -> IO Object\nget_contact_collider_object cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_get_contact_collider_object\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState\n           \"get_contact_collider_object\"\n           '[Int]\n           (IO Object)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsDirectBodyState.get_contact_collider_object\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_contact_collider_position\n             #-}\n\n-- | Returns the contact position in the collider.\nbindPhysicsDirectBodyState_get_contact_collider_position ::\n                                                         MethodBind\nbindPhysicsDirectBodyState_get_contact_collider_position\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_collider_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the contact position in the collider.\nget_contact_collider_position ::\n                                (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                                cls -> Int -> IO Vector3\nget_contact_collider_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_get_contact_collider_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState\n           \"get_contact_collider_position\"\n           '[Int]\n           (IO Vector3)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsDirectBodyState.get_contact_collider_position\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_contact_collider_shape\n             #-}\n\n-- | Returns the collider's shape index.\nbindPhysicsDirectBodyState_get_contact_collider_shape :: MethodBind\nbindPhysicsDirectBodyState_get_contact_collider_shape\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_collider_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the collider's shape index.\nget_contact_collider_shape ::\n                             (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                             cls -> Int -> IO Int\nget_contact_collider_shape cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_get_contact_collider_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState\n           \"get_contact_collider_shape\"\n           '[Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsDirectBodyState.get_contact_collider_shape\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_contact_collider_velocity_at_position\n             #-}\n\n-- | Returns the linear velocity vector at the collider's contact point.\nbindPhysicsDirectBodyState_get_contact_collider_velocity_at_position ::\n                                                                     MethodBind\nbindPhysicsDirectBodyState_get_contact_collider_velocity_at_position\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_collider_velocity_at_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the linear velocity vector at the collider's contact point.\nget_contact_collider_velocity_at_position ::\n                                            (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                                            cls -> Int -> IO Vector3\nget_contact_collider_velocity_at_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_get_contact_collider_velocity_at_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState\n           \"get_contact_collider_velocity_at_position\"\n           '[Int]\n           (IO Vector3)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsDirectBodyState.get_contact_collider_velocity_at_position\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_contact_count #-}\n\n-- | Returns the number of contacts this body has with other bodies.\n--   \t\t\t\t__Note:__ By default, this returns 0 unless bodies are configured to monitor contacts. See @RigidBody.contact_monitor@.\nbindPhysicsDirectBodyState_get_contact_count :: MethodBind\nbindPhysicsDirectBodyState_get_contact_count\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of contacts this body has with other bodies.\n--   \t\t\t\t__Note:__ By default, this returns 0 unless bodies are configured to monitor contacts. See @RigidBody.contact_monitor@.\nget_contact_count ::\n                    (PhysicsDirectBodyState :< cls, Object :< cls) => cls -> IO Int\nget_contact_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectBodyState_get_contact_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"get_contact_count\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.get_contact_count\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_contact_impulse #-}\n\n-- | Impulse created by the contact. Only implemented for Bullet physics.\nbindPhysicsDirectBodyState_get_contact_impulse :: MethodBind\nbindPhysicsDirectBodyState_get_contact_impulse\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Impulse created by the contact. Only implemented for Bullet physics.\nget_contact_impulse ::\n                      (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                      cls -> Int -> IO Float\nget_contact_impulse cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_get_contact_impulse\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"get_contact_impulse\"\n           '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.get_contact_impulse\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_contact_local_normal\n             #-}\n\n-- | Returns the local normal at the contact point.\nbindPhysicsDirectBodyState_get_contact_local_normal :: MethodBind\nbindPhysicsDirectBodyState_get_contact_local_normal\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_local_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the local normal at the contact point.\nget_contact_local_normal ::\n                           (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                           cls -> Int -> IO Vector3\nget_contact_local_normal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_get_contact_local_normal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState\n           \"get_contact_local_normal\"\n           '[Int]\n           (IO Vector3)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsDirectBodyState.get_contact_local_normal\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_contact_local_position\n             #-}\n\n-- | Returns the local position of the contact point.\nbindPhysicsDirectBodyState_get_contact_local_position :: MethodBind\nbindPhysicsDirectBodyState_get_contact_local_position\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_local_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the local position of the contact point.\nget_contact_local_position ::\n                             (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                             cls -> Int -> IO Vector3\nget_contact_local_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_get_contact_local_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState\n           \"get_contact_local_position\"\n           '[Int]\n           (IO Vector3)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsDirectBodyState.get_contact_local_position\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_contact_local_shape #-}\n\n-- | Returns the local shape index of the collision.\nbindPhysicsDirectBodyState_get_contact_local_shape :: MethodBind\nbindPhysicsDirectBodyState_get_contact_local_shape\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_contact_local_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the local shape index of the collision.\nget_contact_local_shape ::\n                          (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                          cls -> Int -> IO Int\nget_contact_local_shape cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_get_contact_local_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState\n           \"get_contact_local_shape\"\n           '[Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsDirectBodyState.get_contact_local_shape\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_inverse_inertia #-}\n\n-- | The inverse of the inertia of the body.\nbindPhysicsDirectBodyState_get_inverse_inertia :: MethodBind\nbindPhysicsDirectBodyState_get_inverse_inertia\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_inverse_inertia\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The inverse of the inertia of the body.\nget_inverse_inertia ::\n                      (PhysicsDirectBodyState :< cls, Object :< cls) => cls -> IO Vector3\nget_inverse_inertia cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_get_inverse_inertia\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"get_inverse_inertia\"\n           '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.get_inverse_inertia\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_inverse_mass #-}\n\n-- | The inverse of the mass of the body.\nbindPhysicsDirectBodyState_get_inverse_mass :: MethodBind\nbindPhysicsDirectBodyState_get_inverse_mass\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_inverse_mass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The inverse of the mass of the body.\nget_inverse_mass ::\n                   (PhysicsDirectBodyState :< cls, Object :< cls) => cls -> IO Float\nget_inverse_mass cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectBodyState_get_inverse_mass\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"get_inverse_mass\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.get_inverse_mass\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_linear_velocity #-}\n\n-- | The body's linear velocity.\nbindPhysicsDirectBodyState_get_linear_velocity :: MethodBind\nbindPhysicsDirectBodyState_get_linear_velocity\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_linear_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's linear velocity.\nget_linear_velocity ::\n                      (PhysicsDirectBodyState :< cls, Object :< cls) => cls -> IO Vector3\nget_linear_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_get_linear_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"get_linear_velocity\"\n           '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.get_linear_velocity\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_principal_inertia_axes\n             #-}\n\nbindPhysicsDirectBodyState_get_principal_inertia_axes :: MethodBind\nbindPhysicsDirectBodyState_get_principal_inertia_axes\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_principal_inertia_axes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_principal_inertia_axes ::\n                             (PhysicsDirectBodyState :< cls, Object :< cls) => cls -> IO Basis\nget_principal_inertia_axes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_get_principal_inertia_axes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState\n           \"get_principal_inertia_axes\"\n           '[]\n           (IO Basis)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsDirectBodyState.get_principal_inertia_axes\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_space_state #-}\n\n-- | Returns the current state of the space, useful for queries.\nbindPhysicsDirectBodyState_get_space_state :: MethodBind\nbindPhysicsDirectBodyState_get_space_state\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_space_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current state of the space, useful for queries.\nget_space_state ::\n                  (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                  cls -> IO PhysicsDirectSpaceState\nget_space_state cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectBodyState_get_space_state\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"get_space_state\" '[]\n           (IO PhysicsDirectSpaceState)\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.get_space_state\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_step #-}\n\n-- | The timestep (delta) used for the simulation.\nbindPhysicsDirectBodyState_get_step :: MethodBind\nbindPhysicsDirectBodyState_get_step\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_step\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The timestep (delta) used for the simulation.\nget_step ::\n           (PhysicsDirectBodyState :< cls, Object :< cls) => cls -> IO Float\nget_step cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectBodyState_get_step\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"get_step\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.get_step\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_total_angular_damp #-}\n\n-- | The rate at which the body stops rotating, if there are not any other forces moving it.\nbindPhysicsDirectBodyState_get_total_angular_damp :: MethodBind\nbindPhysicsDirectBodyState_get_total_angular_damp\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_total_angular_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rate at which the body stops rotating, if there are not any other forces moving it.\nget_total_angular_damp ::\n                         (PhysicsDirectBodyState :< cls, Object :< cls) => cls -> IO Float\nget_total_angular_damp cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_get_total_angular_damp\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"get_total_angular_damp\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsDirectBodyState.get_total_angular_damp\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_total_gravity #-}\n\n-- | The total gravity vector being currently applied to this body.\nbindPhysicsDirectBodyState_get_total_gravity :: MethodBind\nbindPhysicsDirectBodyState_get_total_gravity\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_total_gravity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The total gravity vector being currently applied to this body.\nget_total_gravity ::\n                    (PhysicsDirectBodyState :< cls, Object :< cls) => cls -> IO Vector3\nget_total_gravity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectBodyState_get_total_gravity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"get_total_gravity\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.get_total_gravity\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_total_linear_damp #-}\n\n-- | The rate at which the body stops moving, if there are not any other forces moving it.\nbindPhysicsDirectBodyState_get_total_linear_damp :: MethodBind\nbindPhysicsDirectBodyState_get_total_linear_damp\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_total_linear_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rate at which the body stops moving, if there are not any other forces moving it.\nget_total_linear_damp ::\n                        (PhysicsDirectBodyState :< cls, Object :< cls) => cls -> IO Float\nget_total_linear_damp cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_get_total_linear_damp\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"get_total_linear_damp\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsDirectBodyState.get_total_linear_damp\n\n{-# NOINLINE bindPhysicsDirectBodyState_get_transform #-}\n\n-- | The body's transformation matrix.\nbindPhysicsDirectBodyState_get_transform :: MethodBind\nbindPhysicsDirectBodyState_get_transform\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"get_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's transformation matrix.\nget_transform ::\n                (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                cls -> IO Transform\nget_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectBodyState_get_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"get_transform\" '[]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.get_transform\n\n{-# NOINLINE bindPhysicsDirectBodyState_integrate_forces #-}\n\n-- | Calls the built-in force integration code.\nbindPhysicsDirectBodyState_integrate_forces :: MethodBind\nbindPhysicsDirectBodyState_integrate_forces\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"integrate_forces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calls the built-in force integration code.\nintegrate_forces ::\n                   (PhysicsDirectBodyState :< cls, Object :< cls) => cls -> IO ()\nintegrate_forces cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectBodyState_integrate_forces\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"integrate_forces\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.integrate_forces\n\n{-# NOINLINE bindPhysicsDirectBodyState_is_sleeping #-}\n\n-- | If @true@, this body is currently sleeping (not active).\nbindPhysicsDirectBodyState_is_sleeping :: MethodBind\nbindPhysicsDirectBodyState_is_sleeping\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"is_sleeping\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this body is currently sleeping (not active).\nis_sleeping ::\n              (PhysicsDirectBodyState :< cls, Object :< cls) => cls -> IO Bool\nis_sleeping cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectBodyState_is_sleeping\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"is_sleeping\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.is_sleeping\n\n{-# NOINLINE bindPhysicsDirectBodyState_set_angular_velocity #-}\n\n-- | The body's rotational velocity.\nbindPhysicsDirectBodyState_set_angular_velocity :: MethodBind\nbindPhysicsDirectBodyState_set_angular_velocity\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"set_angular_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's rotational velocity.\nset_angular_velocity ::\n                       (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                       cls -> Vector3 -> IO ()\nset_angular_velocity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_set_angular_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"set_angular_velocity\"\n           '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.set_angular_velocity\n\n{-# NOINLINE bindPhysicsDirectBodyState_set_linear_velocity #-}\n\n-- | The body's linear velocity.\nbindPhysicsDirectBodyState_set_linear_velocity :: MethodBind\nbindPhysicsDirectBodyState_set_linear_velocity\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"set_linear_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's linear velocity.\nset_linear_velocity ::\n                      (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                      cls -> Vector3 -> IO ()\nset_linear_velocity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsDirectBodyState_set_linear_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"set_linear_velocity\"\n           '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.set_linear_velocity\n\n{-# NOINLINE bindPhysicsDirectBodyState_set_sleep_state #-}\n\n-- | If @true@, this body is currently sleeping (not active).\nbindPhysicsDirectBodyState_set_sleep_state :: MethodBind\nbindPhysicsDirectBodyState_set_sleep_state\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"set_sleep_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this body is currently sleeping (not active).\nset_sleep_state ::\n                  (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                  cls -> Bool -> IO ()\nset_sleep_state cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectBodyState_set_sleep_state\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"set_sleep_state\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.set_sleep_state\n\n{-# NOINLINE bindPhysicsDirectBodyState_set_transform #-}\n\n-- | The body's transformation matrix.\nbindPhysicsDirectBodyState_set_transform :: MethodBind\nbindPhysicsDirectBodyState_set_transform\n  = unsafePerformIO $\n      withCString \"PhysicsDirectBodyState\" $\n        \\ clsNamePtr ->\n          withCString \"set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's transformation matrix.\nset_transform ::\n                (PhysicsDirectBodyState :< cls, Object :< cls) =>\n                cls -> Transform -> IO ()\nset_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectBodyState_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectBodyState \"set_transform\"\n           '[Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsDirectBodyState.set_transform"
  },
  {
    "path": "src/Godot/Core/PhysicsDirectSpaceState.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PhysicsDirectSpaceState\n       (Godot.Core.PhysicsDirectSpaceState.cast_motion,\n        Godot.Core.PhysicsDirectSpaceState.collide_shape,\n        Godot.Core.PhysicsDirectSpaceState.get_rest_info,\n        Godot.Core.PhysicsDirectSpaceState.intersect_ray,\n        Godot.Core.PhysicsDirectSpaceState.intersect_shape)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n{-# NOINLINE bindPhysicsDirectSpaceState_cast_motion #-}\n\n-- | Checks whether the shape can travel to a point. The method will return an array with two floats between 0 and 1, both representing a fraction of @motion@. The first is how far the shape can move without triggering a collision, and the second is the point at which a collision will occur. If no collision is detected, the returned array will be @@1, 1@@.\n--   \t\t\t\tIf the shape can not move, the returned array will be @@0, 0@@ under Bullet, and empty under GodotPhysics.\nbindPhysicsDirectSpaceState_cast_motion :: MethodBind\nbindPhysicsDirectSpaceState_cast_motion\n  = unsafePerformIO $\n      withCString \"PhysicsDirectSpaceState\" $\n        \\ clsNamePtr ->\n          withCString \"cast_motion\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Checks whether the shape can travel to a point. The method will return an array with two floats between 0 and 1, both representing a fraction of @motion@. The first is how far the shape can move without triggering a collision, and the second is the point at which a collision will occur. If no collision is detected, the returned array will be @@1, 1@@.\n--   \t\t\t\tIf the shape can not move, the returned array will be @@0, 0@@ under Bullet, and empty under GodotPhysics.\ncast_motion ::\n              (PhysicsDirectSpaceState :< cls, Object :< cls) =>\n              cls -> PhysicsShapeQueryParameters -> Vector3 -> IO Array\ncast_motion cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectSpaceState_cast_motion\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectSpaceState \"cast_motion\"\n           '[PhysicsShapeQueryParameters, Vector3]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.PhysicsDirectSpaceState.cast_motion\n\n{-# NOINLINE bindPhysicsDirectSpaceState_collide_shape #-}\n\n-- | Checks the intersections of a shape, given through a @PhysicsShapeQueryParameters@ object, against the space. The resulting array contains a list of points where the shape intersects another. Like with @method intersect_shape@, the number of returned results can be limited to save processing time.\nbindPhysicsDirectSpaceState_collide_shape :: MethodBind\nbindPhysicsDirectSpaceState_collide_shape\n  = unsafePerformIO $\n      withCString \"PhysicsDirectSpaceState\" $\n        \\ clsNamePtr ->\n          withCString \"collide_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Checks the intersections of a shape, given through a @PhysicsShapeQueryParameters@ object, against the space. The resulting array contains a list of points where the shape intersects another. Like with @method intersect_shape@, the number of returned results can be limited to save processing time.\ncollide_shape ::\n                (PhysicsDirectSpaceState :< cls, Object :< cls) =>\n                cls -> PhysicsShapeQueryParameters -> Maybe Int -> IO Array\ncollide_shape cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (32)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectSpaceState_collide_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectSpaceState \"collide_shape\"\n           '[PhysicsShapeQueryParameters, Maybe Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.PhysicsDirectSpaceState.collide_shape\n\n{-# NOINLINE bindPhysicsDirectSpaceState_get_rest_info #-}\n\n-- | Checks the intersections of a shape, given through a @PhysicsShapeQueryParameters@ object, against the space. If it collides with more than one shape, the nearest one is selected. The returned object is a dictionary containing the following fields:\n--   \t\t\t\t@collider_id@: The colliding object's ID.\n--   \t\t\t\t@linear_velocity@: The colliding object's velocity @Vector3@. If the object is an @Area@, the result is @(0, 0, 0)@.\n--   \t\t\t\t@normal@: The object's surface normal at the intersection point.\n--   \t\t\t\t@point@: The intersection point.\n--   \t\t\t\t@rid@: The intersecting object's @RID@.\n--   \t\t\t\t@shape@: The shape index of the colliding shape.\n--   \t\t\t\tIf the shape did not intersect anything, then an empty dictionary is returned instead.\nbindPhysicsDirectSpaceState_get_rest_info :: MethodBind\nbindPhysicsDirectSpaceState_get_rest_info\n  = unsafePerformIO $\n      withCString \"PhysicsDirectSpaceState\" $\n        \\ clsNamePtr ->\n          withCString \"get_rest_info\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Checks the intersections of a shape, given through a @PhysicsShapeQueryParameters@ object, against the space. If it collides with more than one shape, the nearest one is selected. The returned object is a dictionary containing the following fields:\n--   \t\t\t\t@collider_id@: The colliding object's ID.\n--   \t\t\t\t@linear_velocity@: The colliding object's velocity @Vector3@. If the object is an @Area@, the result is @(0, 0, 0)@.\n--   \t\t\t\t@normal@: The object's surface normal at the intersection point.\n--   \t\t\t\t@point@: The intersection point.\n--   \t\t\t\t@rid@: The intersecting object's @RID@.\n--   \t\t\t\t@shape@: The shape index of the colliding shape.\n--   \t\t\t\tIf the shape did not intersect anything, then an empty dictionary is returned instead.\nget_rest_info ::\n                (PhysicsDirectSpaceState :< cls, Object :< cls) =>\n                cls -> PhysicsShapeQueryParameters -> IO Dictionary\nget_rest_info cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectSpaceState_get_rest_info\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectSpaceState \"get_rest_info\"\n           '[PhysicsShapeQueryParameters]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.PhysicsDirectSpaceState.get_rest_info\n\n{-# NOINLINE bindPhysicsDirectSpaceState_intersect_ray #-}\n\n-- | Intersects a ray in a given space. The returned object is a dictionary with the following fields:\n--   \t\t\t\t@collider@: The colliding object.\n--   \t\t\t\t@collider_id@: The colliding object's ID.\n--   \t\t\t\t@normal@: The object's surface normal at the intersection point.\n--   \t\t\t\t@position@: The intersection point.\n--   \t\t\t\t@rid@: The intersecting object's @RID@.\n--   \t\t\t\t@shape@: The shape index of the colliding shape.\n--   \t\t\t\tIf the ray did not intersect anything, then an empty dictionary is returned instead.\n--   \t\t\t\tAdditionally, the method can take an @exclude@ array of objects or @RID@s that are to be excluded from collisions, a @collision_mask@ bitmask representing the physics layers to check in, or booleans to determine if the ray should collide with @PhysicsBody@s or @Area@s, respectively.\nbindPhysicsDirectSpaceState_intersect_ray :: MethodBind\nbindPhysicsDirectSpaceState_intersect_ray\n  = unsafePerformIO $\n      withCString \"PhysicsDirectSpaceState\" $\n        \\ clsNamePtr ->\n          withCString \"intersect_ray\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Intersects a ray in a given space. The returned object is a dictionary with the following fields:\n--   \t\t\t\t@collider@: The colliding object.\n--   \t\t\t\t@collider_id@: The colliding object's ID.\n--   \t\t\t\t@normal@: The object's surface normal at the intersection point.\n--   \t\t\t\t@position@: The intersection point.\n--   \t\t\t\t@rid@: The intersecting object's @RID@.\n--   \t\t\t\t@shape@: The shape index of the colliding shape.\n--   \t\t\t\tIf the ray did not intersect anything, then an empty dictionary is returned instead.\n--   \t\t\t\tAdditionally, the method can take an @exclude@ array of objects or @RID@s that are to be excluded from collisions, a @collision_mask@ bitmask representing the physics layers to check in, or booleans to determine if the ray should collide with @PhysicsBody@s or @Area@s, respectively.\nintersect_ray ::\n                (PhysicsDirectSpaceState :< cls, Object :< cls) =>\n                cls ->\n                  Vector3 ->\n                    Vector3 ->\n                      Maybe Array ->\n                        Maybe Int -> Maybe Bool -> Maybe Bool -> IO Dictionary\nintersect_ray cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantArray V.empty arg3,\n       maybe (VariantInt (2147483647)) toVariant arg4,\n       maybe (VariantBool True) toVariant arg5,\n       maybe (VariantBool False) toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectSpaceState_intersect_ray\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectSpaceState \"intersect_ray\"\n           '[Vector3, Vector3, Maybe Array, Maybe Int, Maybe Bool, Maybe Bool]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.PhysicsDirectSpaceState.intersect_ray\n\n{-# NOINLINE bindPhysicsDirectSpaceState_intersect_shape #-}\n\n-- | Checks the intersections of a shape, given through a @PhysicsShapeQueryParameters@ object, against the space. The intersected shapes are returned in an array containing dictionaries with the following fields:\n--   \t\t\t\t@collider@: The colliding object.\n--   \t\t\t\t@collider_id@: The colliding object's ID.\n--   \t\t\t\t@rid@: The intersecting object's @RID@.\n--   \t\t\t\t@shape@: The shape index of the colliding shape.\n--   \t\t\t\tThe number of intersections can be limited with the @max_results@ parameter, to reduce the processing time.\nbindPhysicsDirectSpaceState_intersect_shape :: MethodBind\nbindPhysicsDirectSpaceState_intersect_shape\n  = unsafePerformIO $\n      withCString \"PhysicsDirectSpaceState\" $\n        \\ clsNamePtr ->\n          withCString \"intersect_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Checks the intersections of a shape, given through a @PhysicsShapeQueryParameters@ object, against the space. The intersected shapes are returned in an array containing dictionaries with the following fields:\n--   \t\t\t\t@collider@: The colliding object.\n--   \t\t\t\t@collider_id@: The colliding object's ID.\n--   \t\t\t\t@rid@: The intersecting object's @RID@.\n--   \t\t\t\t@shape@: The shape index of the colliding shape.\n--   \t\t\t\tThe number of intersections can be limited with the @max_results@ parameter, to reduce the processing time.\nintersect_shape ::\n                  (PhysicsDirectSpaceState :< cls, Object :< cls) =>\n                  cls -> PhysicsShapeQueryParameters -> Maybe Int -> IO Array\nintersect_shape cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (32)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsDirectSpaceState_intersect_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsDirectSpaceState \"intersect_shape\"\n           '[PhysicsShapeQueryParameters, Maybe Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.PhysicsDirectSpaceState.intersect_shape"
  },
  {
    "path": "src/Godot/Core/PhysicsMaterial.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PhysicsMaterial\n       (Godot.Core.PhysicsMaterial.get_bounce,\n        Godot.Core.PhysicsMaterial.get_friction,\n        Godot.Core.PhysicsMaterial.is_absorbent,\n        Godot.Core.PhysicsMaterial.is_rough,\n        Godot.Core.PhysicsMaterial.set_absorbent,\n        Godot.Core.PhysicsMaterial.set_bounce,\n        Godot.Core.PhysicsMaterial.set_friction,\n        Godot.Core.PhysicsMaterial.set_rough)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty PhysicsMaterial \"absorbent\" Bool 'False where\n        nodeProperty\n          = (is_absorbent, wrapDroppingSetter set_absorbent, Nothing)\n\ninstance NodeProperty PhysicsMaterial \"bounce\" Float 'False where\n        nodeProperty = (get_bounce, wrapDroppingSetter set_bounce, Nothing)\n\ninstance NodeProperty PhysicsMaterial \"friction\" Float 'False where\n        nodeProperty\n          = (get_friction, wrapDroppingSetter set_friction, Nothing)\n\ninstance NodeProperty PhysicsMaterial \"rough\" Bool 'False where\n        nodeProperty = (is_rough, wrapDroppingSetter set_rough, Nothing)\n\n{-# NOINLINE bindPhysicsMaterial_get_bounce #-}\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\nbindPhysicsMaterial_get_bounce :: MethodBind\nbindPhysicsMaterial_get_bounce\n  = unsafePerformIO $\n      withCString \"PhysicsMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_bounce\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\nget_bounce ::\n             (PhysicsMaterial :< cls, Object :< cls) => cls -> IO Float\nget_bounce cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsMaterial_get_bounce (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsMaterial \"get_bounce\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.PhysicsMaterial.get_bounce\n\n{-# NOINLINE bindPhysicsMaterial_get_friction #-}\n\n-- | The body's friction. Values range from @0@ (frictionless) to @1@ (maximum friction).\nbindPhysicsMaterial_get_friction :: MethodBind\nbindPhysicsMaterial_get_friction\n  = unsafePerformIO $\n      withCString \"PhysicsMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_friction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's friction. Values range from @0@ (frictionless) to @1@ (maximum friction).\nget_friction ::\n               (PhysicsMaterial :< cls, Object :< cls) => cls -> IO Float\nget_friction cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsMaterial_get_friction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsMaterial \"get_friction\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.PhysicsMaterial.get_friction\n\n{-# NOINLINE bindPhysicsMaterial_is_absorbent #-}\n\n-- | If @true@, subtracts the bounciness from the colliding object's bounciness instead of adding it.\nbindPhysicsMaterial_is_absorbent :: MethodBind\nbindPhysicsMaterial_is_absorbent\n  = unsafePerformIO $\n      withCString \"PhysicsMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"is_absorbent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, subtracts the bounciness from the colliding object's bounciness instead of adding it.\nis_absorbent ::\n               (PhysicsMaterial :< cls, Object :< cls) => cls -> IO Bool\nis_absorbent cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsMaterial_is_absorbent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsMaterial \"is_absorbent\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.PhysicsMaterial.is_absorbent\n\n{-# NOINLINE bindPhysicsMaterial_is_rough #-}\n\n-- | If @true@, the physics engine will use the friction of the object marked as \"rough\" when two objects collide. If @false@, the physics engine will use the lowest friction of all colliding objects instead. If @true@ for both colliding objects, the physics engine will use the highest friction.\nbindPhysicsMaterial_is_rough :: MethodBind\nbindPhysicsMaterial_is_rough\n  = unsafePerformIO $\n      withCString \"PhysicsMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"is_rough\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the physics engine will use the friction of the object marked as \"rough\" when two objects collide. If @false@, the physics engine will use the lowest friction of all colliding objects instead. If @true@ for both colliding objects, the physics engine will use the highest friction.\nis_rough ::\n           (PhysicsMaterial :< cls, Object :< cls) => cls -> IO Bool\nis_rough cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsMaterial_is_rough (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsMaterial \"is_rough\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.PhysicsMaterial.is_rough\n\n{-# NOINLINE bindPhysicsMaterial_set_absorbent #-}\n\n-- | If @true@, subtracts the bounciness from the colliding object's bounciness instead of adding it.\nbindPhysicsMaterial_set_absorbent :: MethodBind\nbindPhysicsMaterial_set_absorbent\n  = unsafePerformIO $\n      withCString \"PhysicsMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_absorbent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, subtracts the bounciness from the colliding object's bounciness instead of adding it.\nset_absorbent ::\n                (PhysicsMaterial :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_absorbent cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsMaterial_set_absorbent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsMaterial \"set_absorbent\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsMaterial.set_absorbent\n\n{-# NOINLINE bindPhysicsMaterial_set_bounce #-}\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\nbindPhysicsMaterial_set_bounce :: MethodBind\nbindPhysicsMaterial_set_bounce\n  = unsafePerformIO $\n      withCString \"PhysicsMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_bounce\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\nset_bounce ::\n             (PhysicsMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_bounce cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsMaterial_set_bounce (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsMaterial \"set_bounce\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsMaterial.set_bounce\n\n{-# NOINLINE bindPhysicsMaterial_set_friction #-}\n\n-- | The body's friction. Values range from @0@ (frictionless) to @1@ (maximum friction).\nbindPhysicsMaterial_set_friction :: MethodBind\nbindPhysicsMaterial_set_friction\n  = unsafePerformIO $\n      withCString \"PhysicsMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_friction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's friction. Values range from @0@ (frictionless) to @1@ (maximum friction).\nset_friction ::\n               (PhysicsMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_friction cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsMaterial_set_friction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsMaterial \"set_friction\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsMaterial.set_friction\n\n{-# NOINLINE bindPhysicsMaterial_set_rough #-}\n\n-- | If @true@, the physics engine will use the friction of the object marked as \"rough\" when two objects collide. If @false@, the physics engine will use the lowest friction of all colliding objects instead. If @true@ for both colliding objects, the physics engine will use the highest friction.\nbindPhysicsMaterial_set_rough :: MethodBind\nbindPhysicsMaterial_set_rough\n  = unsafePerformIO $\n      withCString \"PhysicsMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_rough\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the physics engine will use the friction of the object marked as \"rough\" when two objects collide. If @false@, the physics engine will use the lowest friction of all colliding objects instead. If @true@ for both colliding objects, the physics engine will use the highest friction.\nset_rough ::\n            (PhysicsMaterial :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_rough cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsMaterial_set_rough (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsMaterial \"set_rough\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsMaterial.set_rough"
  },
  {
    "path": "src/Godot/Core/PhysicsServer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PhysicsServer\n       (Godot.Core.PhysicsServer._SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS,\n        Godot.Core.PhysicsServer._JOINT_SLIDER,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_FLAG_ENABLE_MOTOR,\n        Godot.Core.PhysicsServer._HINGE_JOINT_LIMIT_SOFTNESS,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_LINEAR_RESTITUTION,\n        Godot.Core.PhysicsServer._CONE_TWIST_JOINT_SWING_SPAN,\n        Godot.Core.PhysicsServer._AREA_SPACE_OVERRIDE_REPLACE,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_LINEAR_MOTION_RESTITUTION,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT,\n        Godot.Core.PhysicsServer._SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION,\n        Godot.Core.PhysicsServer._SPACE_PARAM_BODY_ANGULAR_VELOCITY_DAMP_RATIO,\n        Godot.Core.PhysicsServer._HINGE_JOINT_MOTOR_MAX_IMPULSE,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_ANGULAR_UPPER_LIMIT,\n        Godot.Core.PhysicsServer._BODY_PARAM_BOUNCE,\n        Godot.Core.PhysicsServer._BODY_AXIS_ANGULAR_Y,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_ANGULAR_LIMIT_LOWER,\n        Godot.Core.PhysicsServer._SHAPE_CYLINDER,\n        Godot.Core.PhysicsServer._BODY_MODE_CHARACTER,\n        Godot.Core.PhysicsServer._SHAPE_RAY,\n        Godot.Core.PhysicsServer._BODY_STATE_LINEAR_VELOCITY,\n        Godot.Core.PhysicsServer._HINGE_JOINT_BIAS,\n        Godot.Core.PhysicsServer._AREA_PARAM_LINEAR_DAMP,\n        Godot.Core.PhysicsServer._BODY_PARAM_ANGULAR_DAMP,\n        Godot.Core.PhysicsServer._SPACE_PARAM_BODY_TIME_TO_SLEEP,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_LINEAR_MOTION_SOFTNESS,\n        Godot.Core.PhysicsServer._BODY_PARAM_LINEAR_DAMP,\n        Godot.Core.PhysicsServer._AREA_PARAM_GRAVITY_DISTANCE_SCALE,\n        Godot.Core.PhysicsServer._BODY_STATE_ANGULAR_VELOCITY,\n        Godot.Core.PhysicsServer._AREA_BODY_REMOVED,\n        Godot.Core.PhysicsServer._BODY_STATE_SLEEPING,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_ANGULAR_LIMIT_SOFTNESS,\n        Godot.Core.PhysicsServer._INFO_ISLAND_COUNT,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION,\n        Godot.Core.PhysicsServer._AREA_SPACE_OVERRIDE_DISABLED,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION,\n        Godot.Core.PhysicsServer._AREA_PARAM_GRAVITY_IS_POINT,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_LINEAR_UPPER_LIMIT,\n        Godot.Core.PhysicsServer._AREA_PARAM_GRAVITY_POINT_ATTENUATION,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_ANGULAR_FORCE_LIMIT,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_LINEAR_LIMIT_DAMPING,\n        Godot.Core.PhysicsServer._BODY_STATE_TRANSFORM,\n        Godot.Core.PhysicsServer._BODY_AXIS_LINEAR_Z,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION,\n        Godot.Core.PhysicsServer._BODY_PARAM_MASS,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT,\n        Godot.Core.PhysicsServer._BODY_MODE_STATIC,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_ANGULAR_RESTITUTION,\n        Godot.Core.PhysicsServer._HINGE_JOINT_LIMIT_UPPER,\n        Godot.Core.PhysicsServer._BODY_PARAM_GRAVITY_SCALE,\n        Godot.Core.PhysicsServer._HINGE_JOINT_MOTOR_TARGET_VELOCITY,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS,\n        Godot.Core.PhysicsServer._PIN_JOINT_IMPULSE_CLAMP,\n        Godot.Core.PhysicsServer._SHAPE_PLANE,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_ANGULAR_LIMIT_UPPER,\n        Godot.Core.PhysicsServer._AREA_PARAM_GRAVITY,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_ANGULAR_LOWER_LIMIT,\n        Godot.Core.PhysicsServer._HINGE_JOINT_LIMIT_RELAXATION,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS,\n        Godot.Core.PhysicsServer._INFO_COLLISION_PAIRS,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_LINEAR_LIMIT_UPPER,\n        Godot.Core.PhysicsServer._PIN_JOINT_DAMPING,\n        Godot.Core.PhysicsServer._HINGE_JOINT_FLAG_USE_LIMIT,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS,\n        Godot.Core.PhysicsServer._BODY_AXIS_ANGULAR_Z,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_ANGULAR_LIMIT_DAMPING,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING,\n        Godot.Core.PhysicsServer._INFO_ACTIVE_OBJECTS,\n        Godot.Core.PhysicsServer._CONE_TWIST_JOINT_RELAXATION,\n        Godot.Core.PhysicsServer._SPACE_PARAM_CONTACT_RECYCLE_RADIUS,\n        Godot.Core.PhysicsServer._JOINT_HINGE,\n        Godot.Core.PhysicsServer._JOINT_CONE_TWIST,\n        Godot.Core.PhysicsServer._SPACE_PARAM_CONTACT_MAX_SEPARATION,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_MAX,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_LINEAR_LIMIT_SOFTNESS,\n        Godot.Core.PhysicsServer._AREA_BODY_ADDED,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_ANGULAR_DAMPING,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_ANGULAR_MOTION_DAMPING,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION,\n        Godot.Core.PhysicsServer._AREA_SPACE_OVERRIDE_COMBINE_REPLACE,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS,\n        Godot.Core.PhysicsServer._JOINT_6DOF,\n        Godot.Core.PhysicsServer._CONE_TWIST_JOINT_BIAS,\n        Godot.Core.PhysicsServer._SHAPE_CONVEX_POLYGON,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY,\n        Godot.Core.PhysicsServer._AREA_PARAM_PRIORITY,\n        Godot.Core.PhysicsServer._AREA_SPACE_OVERRIDE_REPLACE_COMBINE,\n        Godot.Core.PhysicsServer._BODY_MODE_RIGID,\n        Godot.Core.PhysicsServer._HINGE_JOINT_LIMIT_LOWER,\n        Godot.Core.PhysicsServer._SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION,\n        Godot.Core.PhysicsServer._BODY_PARAM_FRICTION,\n        Godot.Core.PhysicsServer._SHAPE_CAPSULE,\n        Godot.Core.PhysicsServer._AREA_PARAM_ANGULAR_DAMP,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY,\n        Godot.Core.PhysicsServer._HINGE_JOINT_FLAG_ENABLE_MOTOR,\n        Godot.Core.PhysicsServer._SHAPE_BOX,\n        Godot.Core.PhysicsServer._CONE_TWIST_JOINT_TWIST_SPAN,\n        Godot.Core.PhysicsServer._BODY_MODE_KINEMATIC,\n        Godot.Core.PhysicsServer._SHAPE_CONCAVE_POLYGON,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT,\n        Godot.Core.PhysicsServer._HINGE_JOINT_LIMIT_BIAS,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_ANGULAR_ERP,\n        Godot.Core.PhysicsServer._BODY_AXIS_LINEAR_Y,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_LINEAR_LIMIT_LOWER,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_LINEAR_MOTION_DAMPING,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_LINEAR_DAMPING,\n        Godot.Core.PhysicsServer._PIN_JOINT_BIAS,\n        Godot.Core.PhysicsServer._AREA_PARAM_GRAVITY_VECTOR,\n        Godot.Core.PhysicsServer._SHAPE_CUSTOM,\n        Godot.Core.PhysicsServer._BODY_STATE_CAN_SLEEP,\n        Godot.Core.PhysicsServer._SHAPE_HEIGHTMAP,\n        Godot.Core.PhysicsServer._BODY_PARAM_MAX,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING,\n        Godot.Core.PhysicsServer._SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD,\n        Godot.Core.PhysicsServer._CONE_TWIST_JOINT_SOFTNESS,\n        Godot.Core.PhysicsServer._BODY_AXIS_ANGULAR_X,\n        Godot.Core.PhysicsServer._JOINT_PIN,\n        Godot.Core.PhysicsServer._SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_FLAG_ENABLE_LINEAR_MOTOR,\n        Godot.Core.PhysicsServer._G6DOF_JOINT_LINEAR_LOWER_LIMIT,\n        Godot.Core.PhysicsServer._BODY_AXIS_LINEAR_X,\n        Godot.Core.PhysicsServer._SHAPE_SPHERE,\n        Godot.Core.PhysicsServer._AREA_SPACE_OVERRIDE_COMBINE,\n        Godot.Core.PhysicsServer._SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD,\n        Godot.Core.PhysicsServer.area_add_shape,\n        Godot.Core.PhysicsServer.area_attach_object_instance_id,\n        Godot.Core.PhysicsServer.area_clear_shapes,\n        Godot.Core.PhysicsServer.area_create,\n        Godot.Core.PhysicsServer.area_get_object_instance_id,\n        Godot.Core.PhysicsServer.area_get_param,\n        Godot.Core.PhysicsServer.area_get_shape,\n        Godot.Core.PhysicsServer.area_get_shape_count,\n        Godot.Core.PhysicsServer.area_get_shape_transform,\n        Godot.Core.PhysicsServer.area_get_space,\n        Godot.Core.PhysicsServer.area_get_space_override_mode,\n        Godot.Core.PhysicsServer.area_get_transform,\n        Godot.Core.PhysicsServer.area_is_ray_pickable,\n        Godot.Core.PhysicsServer.area_remove_shape,\n        Godot.Core.PhysicsServer.area_set_area_monitor_callback,\n        Godot.Core.PhysicsServer.area_set_collision_layer,\n        Godot.Core.PhysicsServer.area_set_collision_mask,\n        Godot.Core.PhysicsServer.area_set_monitor_callback,\n        Godot.Core.PhysicsServer.area_set_monitorable,\n        Godot.Core.PhysicsServer.area_set_param,\n        Godot.Core.PhysicsServer.area_set_ray_pickable,\n        Godot.Core.PhysicsServer.area_set_shape,\n        Godot.Core.PhysicsServer.area_set_shape_disabled,\n        Godot.Core.PhysicsServer.area_set_shape_transform,\n        Godot.Core.PhysicsServer.area_set_space,\n        Godot.Core.PhysicsServer.area_set_space_override_mode,\n        Godot.Core.PhysicsServer.area_set_transform,\n        Godot.Core.PhysicsServer.body_add_central_force,\n        Godot.Core.PhysicsServer.body_add_collision_exception,\n        Godot.Core.PhysicsServer.body_add_force,\n        Godot.Core.PhysicsServer.body_add_shape,\n        Godot.Core.PhysicsServer.body_add_torque,\n        Godot.Core.PhysicsServer.body_apply_central_impulse,\n        Godot.Core.PhysicsServer.body_apply_impulse,\n        Godot.Core.PhysicsServer.body_apply_torque_impulse,\n        Godot.Core.PhysicsServer.body_attach_object_instance_id,\n        Godot.Core.PhysicsServer.body_clear_shapes,\n        Godot.Core.PhysicsServer.body_create,\n        Godot.Core.PhysicsServer.body_get_collision_layer,\n        Godot.Core.PhysicsServer.body_get_collision_mask,\n        Godot.Core.PhysicsServer.body_get_direct_state,\n        Godot.Core.PhysicsServer.body_get_kinematic_safe_margin,\n        Godot.Core.PhysicsServer.body_get_max_contacts_reported,\n        Godot.Core.PhysicsServer.body_get_mode,\n        Godot.Core.PhysicsServer.body_get_object_instance_id,\n        Godot.Core.PhysicsServer.body_get_param,\n        Godot.Core.PhysicsServer.body_get_shape,\n        Godot.Core.PhysicsServer.body_get_shape_count,\n        Godot.Core.PhysicsServer.body_get_shape_transform,\n        Godot.Core.PhysicsServer.body_get_space,\n        Godot.Core.PhysicsServer.body_get_state,\n        Godot.Core.PhysicsServer.body_is_axis_locked,\n        Godot.Core.PhysicsServer.body_is_continuous_collision_detection_enabled,\n        Godot.Core.PhysicsServer.body_is_omitting_force_integration,\n        Godot.Core.PhysicsServer.body_is_ray_pickable,\n        Godot.Core.PhysicsServer.body_remove_collision_exception,\n        Godot.Core.PhysicsServer.body_remove_shape,\n        Godot.Core.PhysicsServer.body_set_axis_lock,\n        Godot.Core.PhysicsServer.body_set_axis_velocity,\n        Godot.Core.PhysicsServer.body_set_collision_layer,\n        Godot.Core.PhysicsServer.body_set_collision_mask,\n        Godot.Core.PhysicsServer.body_set_enable_continuous_collision_detection,\n        Godot.Core.PhysicsServer.body_set_force_integration_callback,\n        Godot.Core.PhysicsServer.body_set_kinematic_safe_margin,\n        Godot.Core.PhysicsServer.body_set_max_contacts_reported,\n        Godot.Core.PhysicsServer.body_set_mode,\n        Godot.Core.PhysicsServer.body_set_omit_force_integration,\n        Godot.Core.PhysicsServer.body_set_param,\n        Godot.Core.PhysicsServer.body_set_ray_pickable,\n        Godot.Core.PhysicsServer.body_set_shape,\n        Godot.Core.PhysicsServer.body_set_shape_disabled,\n        Godot.Core.PhysicsServer.body_set_shape_transform,\n        Godot.Core.PhysicsServer.body_set_space,\n        Godot.Core.PhysicsServer.body_set_state,\n        Godot.Core.PhysicsServer.cone_twist_joint_get_param,\n        Godot.Core.PhysicsServer.cone_twist_joint_set_param,\n        Godot.Core.PhysicsServer.free_rid,\n        Godot.Core.PhysicsServer.generic_6dof_joint_get_flag,\n        Godot.Core.PhysicsServer.generic_6dof_joint_get_param,\n        Godot.Core.PhysicsServer.generic_6dof_joint_set_flag,\n        Godot.Core.PhysicsServer.generic_6dof_joint_set_param,\n        Godot.Core.PhysicsServer.get_process_info,\n        Godot.Core.PhysicsServer.hinge_joint_get_flag,\n        Godot.Core.PhysicsServer.hinge_joint_get_param,\n        Godot.Core.PhysicsServer.hinge_joint_set_flag,\n        Godot.Core.PhysicsServer.hinge_joint_set_param,\n        Godot.Core.PhysicsServer.joint_create_cone_twist,\n        Godot.Core.PhysicsServer.joint_create_generic_6dof,\n        Godot.Core.PhysicsServer.joint_create_hinge,\n        Godot.Core.PhysicsServer.joint_create_pin,\n        Godot.Core.PhysicsServer.joint_create_slider,\n        Godot.Core.PhysicsServer.joint_get_solver_priority,\n        Godot.Core.PhysicsServer.joint_get_type,\n        Godot.Core.PhysicsServer.joint_set_solver_priority,\n        Godot.Core.PhysicsServer.pin_joint_get_local_a,\n        Godot.Core.PhysicsServer.pin_joint_get_local_b,\n        Godot.Core.PhysicsServer.pin_joint_get_param,\n        Godot.Core.PhysicsServer.pin_joint_set_local_a,\n        Godot.Core.PhysicsServer.pin_joint_set_local_b,\n        Godot.Core.PhysicsServer.pin_joint_set_param,\n        Godot.Core.PhysicsServer.set_active,\n        Godot.Core.PhysicsServer.shape_create,\n        Godot.Core.PhysicsServer.shape_get_data,\n        Godot.Core.PhysicsServer.shape_get_type,\n        Godot.Core.PhysicsServer.shape_set_data,\n        Godot.Core.PhysicsServer.slider_joint_get_param,\n        Godot.Core.PhysicsServer.slider_joint_set_param,\n        Godot.Core.PhysicsServer.space_create,\n        Godot.Core.PhysicsServer.space_get_direct_state,\n        Godot.Core.PhysicsServer.space_get_param,\n        Godot.Core.PhysicsServer.space_is_active,\n        Godot.Core.PhysicsServer.space_set_active,\n        Godot.Core.PhysicsServer.space_set_param)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n_SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS :: Int\n_SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS = 7\n\n_JOINT_SLIDER :: Int\n_JOINT_SLIDER = 2\n\n_G6DOF_JOINT_FLAG_ENABLE_MOTOR :: Int\n_G6DOF_JOINT_FLAG_ENABLE_MOTOR = 4\n\n_HINGE_JOINT_LIMIT_SOFTNESS :: Int\n_HINGE_JOINT_LIMIT_SOFTNESS = 4\n\n_G6DOF_JOINT_LINEAR_RESTITUTION :: Int\n_G6DOF_JOINT_LINEAR_RESTITUTION = 3\n\n_CONE_TWIST_JOINT_SWING_SPAN :: Int\n_CONE_TWIST_JOINT_SWING_SPAN = 0\n\n_AREA_SPACE_OVERRIDE_REPLACE :: Int\n_AREA_SPACE_OVERRIDE_REPLACE = 3\n\n_SLIDER_JOINT_LINEAR_MOTION_RESTITUTION :: Int\n_SLIDER_JOINT_LINEAR_MOTION_RESTITUTION = 6\n\n_G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT :: Int\n_G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT = 18\n\n_SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH :: Int\n_SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH = 8\n\n_SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION :: Int\n_SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION = 9\n\n_SPACE_PARAM_BODY_ANGULAR_VELOCITY_DAMP_RATIO :: Int\n_SPACE_PARAM_BODY_ANGULAR_VELOCITY_DAMP_RATIO = 6\n\n_HINGE_JOINT_MOTOR_MAX_IMPULSE :: Int\n_HINGE_JOINT_MOTOR_MAX_IMPULSE = 7\n\n_G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT :: Int\n_G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT = 1\n\n_G6DOF_JOINT_ANGULAR_UPPER_LIMIT :: Int\n_G6DOF_JOINT_ANGULAR_UPPER_LIMIT = 11\n\n_BODY_PARAM_BOUNCE :: Int\n_BODY_PARAM_BOUNCE = 0\n\n_BODY_AXIS_ANGULAR_Y :: Int\n_BODY_AXIS_ANGULAR_Y = 16\n\n_SLIDER_JOINT_ANGULAR_LIMIT_LOWER :: Int\n_SLIDER_JOINT_ANGULAR_LIMIT_LOWER = 12\n\n_SHAPE_CYLINDER :: Int\n_SHAPE_CYLINDER = 5\n\n_BODY_MODE_CHARACTER :: Int\n_BODY_MODE_CHARACTER = 3\n\n_SHAPE_RAY :: Int\n_SHAPE_RAY = 1\n\n_BODY_STATE_LINEAR_VELOCITY :: Int\n_BODY_STATE_LINEAR_VELOCITY = 1\n\n_HINGE_JOINT_BIAS :: Int\n_HINGE_JOINT_BIAS = 0\n\n_AREA_PARAM_LINEAR_DAMP :: Int\n_AREA_PARAM_LINEAR_DAMP = 5\n\n_BODY_PARAM_ANGULAR_DAMP :: Int\n_BODY_PARAM_ANGULAR_DAMP = 5\n\n_SPACE_PARAM_BODY_TIME_TO_SLEEP :: Int\n_SPACE_PARAM_BODY_TIME_TO_SLEEP = 5\n\n_SLIDER_JOINT_LINEAR_MOTION_SOFTNESS :: Int\n_SLIDER_JOINT_LINEAR_MOTION_SOFTNESS = 5\n\n_BODY_PARAM_LINEAR_DAMP :: Int\n_BODY_PARAM_LINEAR_DAMP = 4\n\n_AREA_PARAM_GRAVITY_DISTANCE_SCALE :: Int\n_AREA_PARAM_GRAVITY_DISTANCE_SCALE = 3\n\n_BODY_STATE_ANGULAR_VELOCITY :: Int\n_BODY_STATE_ANGULAR_VELOCITY = 2\n\n_AREA_BODY_REMOVED :: Int\n_AREA_BODY_REMOVED = 1\n\n_BODY_STATE_SLEEPING :: Int\n_BODY_STATE_SLEEPING = 3\n\n_G6DOF_JOINT_ANGULAR_LIMIT_SOFTNESS :: Int\n_G6DOF_JOINT_ANGULAR_LIMIT_SOFTNESS = 12\n\n_INFO_ISLAND_COUNT :: Int\n_INFO_ISLAND_COUNT = 2\n\n_SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION :: Int\n_SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION = 14\n\n_AREA_SPACE_OVERRIDE_DISABLED :: Int\n_AREA_SPACE_OVERRIDE_DISABLED = 0\n\n_SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION :: Int\n_SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION = 20\n\n_AREA_PARAM_GRAVITY_IS_POINT :: Int\n_AREA_PARAM_GRAVITY_IS_POINT = 2\n\n_G6DOF_JOINT_LINEAR_UPPER_LIMIT :: Int\n_G6DOF_JOINT_LINEAR_UPPER_LIMIT = 1\n\n_AREA_PARAM_GRAVITY_POINT_ATTENUATION :: Int\n_AREA_PARAM_GRAVITY_POINT_ATTENUATION = 4\n\n_G6DOF_JOINT_ANGULAR_FORCE_LIMIT :: Int\n_G6DOF_JOINT_ANGULAR_FORCE_LIMIT = 15\n\n_SLIDER_JOINT_LINEAR_LIMIT_DAMPING :: Int\n_SLIDER_JOINT_LINEAR_LIMIT_DAMPING = 4\n\n_BODY_STATE_TRANSFORM :: Int\n_BODY_STATE_TRANSFORM = 0\n\n_BODY_AXIS_LINEAR_Z :: Int\n_BODY_AXIS_LINEAR_Z = 4\n\n_SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION :: Int\n_SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION = 17\n\n_BODY_PARAM_MASS :: Int\n_BODY_PARAM_MASS = 2\n\n_G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT :: Int\n_G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT = 6\n\n_BODY_MODE_STATIC :: Int\n_BODY_MODE_STATIC = 0\n\n_G6DOF_JOINT_ANGULAR_RESTITUTION :: Int\n_G6DOF_JOINT_ANGULAR_RESTITUTION = 14\n\n_HINGE_JOINT_LIMIT_UPPER :: Int\n_HINGE_JOINT_LIMIT_UPPER = 1\n\n_BODY_PARAM_GRAVITY_SCALE :: Int\n_BODY_PARAM_GRAVITY_SCALE = 3\n\n_HINGE_JOINT_MOTOR_TARGET_VELOCITY :: Int\n_HINGE_JOINT_MOTOR_TARGET_VELOCITY = 6\n\n_SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS :: Int\n_SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS = 8\n\n_PIN_JOINT_IMPULSE_CLAMP :: Int\n_PIN_JOINT_IMPULSE_CLAMP = 2\n\n_SHAPE_PLANE :: Int\n_SHAPE_PLANE = 0\n\n_SLIDER_JOINT_ANGULAR_LIMIT_UPPER :: Int\n_SLIDER_JOINT_ANGULAR_LIMIT_UPPER = 11\n\n_AREA_PARAM_GRAVITY :: Int\n_AREA_PARAM_GRAVITY = 0\n\n_G6DOF_JOINT_ANGULAR_LOWER_LIMIT :: Int\n_G6DOF_JOINT_ANGULAR_LOWER_LIMIT = 10\n\n_HINGE_JOINT_LIMIT_RELAXATION :: Int\n_HINGE_JOINT_LIMIT_RELAXATION = 5\n\n_SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS :: Int\n_SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS = 13\n\n_INFO_COLLISION_PAIRS :: Int\n_INFO_COLLISION_PAIRS = 1\n\n_SLIDER_JOINT_LINEAR_LIMIT_UPPER :: Int\n_SLIDER_JOINT_LINEAR_LIMIT_UPPER = 0\n\n_PIN_JOINT_DAMPING :: Int\n_PIN_JOINT_DAMPING = 1\n\n_HINGE_JOINT_FLAG_USE_LIMIT :: Int\n_HINGE_JOINT_FLAG_USE_LIMIT = 0\n\n_SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS :: Int\n_SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS = 19\n\n_BODY_AXIS_ANGULAR_Z :: Int\n_BODY_AXIS_ANGULAR_Z = 32\n\n_SLIDER_JOINT_ANGULAR_LIMIT_DAMPING :: Int\n_SLIDER_JOINT_ANGULAR_LIMIT_DAMPING = 15\n\n_SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING :: Int\n_SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING = 21\n\n_INFO_ACTIVE_OBJECTS :: Int\n_INFO_ACTIVE_OBJECTS = 0\n\n_CONE_TWIST_JOINT_RELAXATION :: Int\n_CONE_TWIST_JOINT_RELAXATION = 4\n\n_SPACE_PARAM_CONTACT_RECYCLE_RADIUS :: Int\n_SPACE_PARAM_CONTACT_RECYCLE_RADIUS = 0\n\n_JOINT_HINGE :: Int\n_JOINT_HINGE = 1\n\n_JOINT_CONE_TWIST :: Int\n_JOINT_CONE_TWIST = 3\n\n_SPACE_PARAM_CONTACT_MAX_SEPARATION :: Int\n_SPACE_PARAM_CONTACT_MAX_SEPARATION = 1\n\n_SLIDER_JOINT_MAX :: Int\n_SLIDER_JOINT_MAX = 22\n\n_G6DOF_JOINT_LINEAR_LIMIT_SOFTNESS :: Int\n_G6DOF_JOINT_LINEAR_LIMIT_SOFTNESS = 2\n\n_AREA_BODY_ADDED :: Int\n_AREA_BODY_ADDED = 0\n\n_G6DOF_JOINT_ANGULAR_DAMPING :: Int\n_G6DOF_JOINT_ANGULAR_DAMPING = 13\n\n_SLIDER_JOINT_ANGULAR_MOTION_DAMPING :: Int\n_SLIDER_JOINT_ANGULAR_MOTION_DAMPING = 18\n\n_SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION :: Int\n_SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION = 3\n\n_AREA_SPACE_OVERRIDE_COMBINE_REPLACE :: Int\n_AREA_SPACE_OVERRIDE_COMBINE_REPLACE = 2\n\n_SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS :: Int\n_SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS = 16\n\n_JOINT_6DOF :: Int\n_JOINT_6DOF = 4\n\n_CONE_TWIST_JOINT_BIAS :: Int\n_CONE_TWIST_JOINT_BIAS = 2\n\n_SHAPE_CONVEX_POLYGON :: Int\n_SHAPE_CONVEX_POLYGON = 6\n\n_G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY :: Int\n_G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY = 17\n\n_AREA_PARAM_PRIORITY :: Int\n_AREA_PARAM_PRIORITY = 7\n\n_AREA_SPACE_OVERRIDE_REPLACE_COMBINE :: Int\n_AREA_SPACE_OVERRIDE_REPLACE_COMBINE = 4\n\n_BODY_MODE_RIGID :: Int\n_BODY_MODE_RIGID = 2\n\n_HINGE_JOINT_LIMIT_LOWER :: Int\n_HINGE_JOINT_LIMIT_LOWER = 2\n\n_SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION :: Int\n_SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION = 2\n\n_BODY_PARAM_FRICTION :: Int\n_BODY_PARAM_FRICTION = 1\n\n_SHAPE_CAPSULE :: Int\n_SHAPE_CAPSULE = 4\n\n_AREA_PARAM_ANGULAR_DAMP :: Int\n_AREA_PARAM_ANGULAR_DAMP = 6\n\n_G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY :: Int\n_G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY = 5\n\n_HINGE_JOINT_FLAG_ENABLE_MOTOR :: Int\n_HINGE_JOINT_FLAG_ENABLE_MOTOR = 1\n\n_SHAPE_BOX :: Int\n_SHAPE_BOX = 3\n\n_CONE_TWIST_JOINT_TWIST_SPAN :: Int\n_CONE_TWIST_JOINT_TWIST_SPAN = 1\n\n_BODY_MODE_KINEMATIC :: Int\n_BODY_MODE_KINEMATIC = 1\n\n_SHAPE_CONCAVE_POLYGON :: Int\n_SHAPE_CONCAVE_POLYGON = 7\n\n_G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT :: Int\n_G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT = 0\n\n_HINGE_JOINT_LIMIT_BIAS :: Int\n_HINGE_JOINT_LIMIT_BIAS = 3\n\n_G6DOF_JOINT_ANGULAR_ERP :: Int\n_G6DOF_JOINT_ANGULAR_ERP = 16\n\n_BODY_AXIS_LINEAR_Y :: Int\n_BODY_AXIS_LINEAR_Y = 2\n\n_SLIDER_JOINT_LINEAR_LIMIT_LOWER :: Int\n_SLIDER_JOINT_LINEAR_LIMIT_LOWER = 1\n\n_SLIDER_JOINT_LINEAR_MOTION_DAMPING :: Int\n_SLIDER_JOINT_LINEAR_MOTION_DAMPING = 7\n\n_G6DOF_JOINT_LINEAR_DAMPING :: Int\n_G6DOF_JOINT_LINEAR_DAMPING = 4\n\n_PIN_JOINT_BIAS :: Int\n_PIN_JOINT_BIAS = 0\n\n_AREA_PARAM_GRAVITY_VECTOR :: Int\n_AREA_PARAM_GRAVITY_VECTOR = 1\n\n_SHAPE_CUSTOM :: Int\n_SHAPE_CUSTOM = 9\n\n_BODY_STATE_CAN_SLEEP :: Int\n_BODY_STATE_CAN_SLEEP = 4\n\n_SHAPE_HEIGHTMAP :: Int\n_SHAPE_HEIGHTMAP = 8\n\n_BODY_PARAM_MAX :: Int\n_BODY_PARAM_MAX = 6\n\n_SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING :: Int\n_SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING = 10\n\n_SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD :: Int\n_SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD = 4\n\n_CONE_TWIST_JOINT_SOFTNESS :: Int\n_CONE_TWIST_JOINT_SOFTNESS = 3\n\n_BODY_AXIS_ANGULAR_X :: Int\n_BODY_AXIS_ANGULAR_X = 8\n\n_JOINT_PIN :: Int\n_JOINT_PIN = 0\n\n_SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS :: Int\n_SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS = 2\n\n_G6DOF_JOINT_FLAG_ENABLE_LINEAR_MOTOR :: Int\n_G6DOF_JOINT_FLAG_ENABLE_LINEAR_MOTOR = 5\n\n_G6DOF_JOINT_LINEAR_LOWER_LIMIT :: Int\n_G6DOF_JOINT_LINEAR_LOWER_LIMIT = 0\n\n_BODY_AXIS_LINEAR_X :: Int\n_BODY_AXIS_LINEAR_X = 1\n\n_SHAPE_SPHERE :: Int\n_SHAPE_SPHERE = 2\n\n_AREA_SPACE_OVERRIDE_COMBINE :: Int\n_AREA_SPACE_OVERRIDE_COMBINE = 1\n\n_SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD :: Int\n_SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD = 3\n\n{-# NOINLINE bindPhysicsServer_area_add_shape #-}\n\n-- | Adds a shape to the area, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index.\nbindPhysicsServer_area_add_shape :: MethodBind\nbindPhysicsServer_area_add_shape\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_add_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a shape to the area, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index.\narea_add_shape ::\n                 (PhysicsServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Rid -> Maybe Transform -> Maybe Bool -> IO ()\narea_add_shape cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantTransform\n         (TF (V3 (V3 1 0 0) (V3 0 1 0) (V3 0 0 1)) (V3 0 0 0))\n         arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_add_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_add_shape\"\n           '[Rid, Rid, Maybe Transform, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_add_shape\n\n{-# NOINLINE bindPhysicsServer_area_attach_object_instance_id #-}\n\n-- | Assigns the area to a descendant of @Object@, so it can exist in the node tree.\nbindPhysicsServer_area_attach_object_instance_id :: MethodBind\nbindPhysicsServer_area_attach_object_instance_id\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_attach_object_instance_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Assigns the area to a descendant of @Object@, so it can exist in the node tree.\narea_attach_object_instance_id ::\n                                 (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\narea_attach_object_instance_id cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_area_attach_object_instance_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_attach_object_instance_id\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.PhysicsServer.area_attach_object_instance_id\n\n{-# NOINLINE bindPhysicsServer_area_clear_shapes #-}\n\n-- | Removes all shapes from an area. It does not delete the shapes, so they can be reassigned later.\nbindPhysicsServer_area_clear_shapes :: MethodBind\nbindPhysicsServer_area_clear_shapes\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_clear_shapes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all shapes from an area. It does not delete the shapes, so they can be reassigned later.\narea_clear_shapes ::\n                    (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO ()\narea_clear_shapes cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_clear_shapes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_clear_shapes\" '[Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_clear_shapes\n\n{-# NOINLINE bindPhysicsServer_area_create #-}\n\n-- | Creates an @Area@.\nbindPhysicsServer_area_create :: MethodBind\nbindPhysicsServer_area_create\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates an @Area@.\narea_create ::\n              (PhysicsServer :< cls, Object :< cls) => cls -> IO Rid\narea_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_create (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_create\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.PhysicsServer.area_create\n\n{-# NOINLINE bindPhysicsServer_area_get_object_instance_id #-}\n\n-- | Gets the instance ID of the object the area is assigned to.\nbindPhysicsServer_area_get_object_instance_id :: MethodBind\nbindPhysicsServer_area_get_object_instance_id\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_get_object_instance_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the instance ID of the object the area is assigned to.\narea_get_object_instance_id ::\n                              (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Int\narea_get_object_instance_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_area_get_object_instance_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_get_object_instance_id\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_get_object_instance_id\n\n{-# NOINLINE bindPhysicsServer_area_get_param #-}\n\n-- | Returns an area parameter value. A list of available parameters is on the @enum AreaParameter@ constants.\nbindPhysicsServer_area_get_param :: MethodBind\nbindPhysicsServer_area_get_param\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an area parameter value. A list of available parameters is on the @enum AreaParameter@ constants.\narea_get_param ::\n                 (PhysicsServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> IO GodotVariant\narea_get_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_get_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_get_param\" '[Rid, Int]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_get_param\n\n{-# NOINLINE bindPhysicsServer_area_get_shape #-}\n\n-- | Returns the @RID@ of the nth shape of an area.\nbindPhysicsServer_area_get_shape :: MethodBind\nbindPhysicsServer_area_get_shape\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_get_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @RID@ of the nth shape of an area.\narea_get_shape ::\n                 (PhysicsServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> IO Rid\narea_get_shape cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_get_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_get_shape\" '[Rid, Int]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_get_shape\n\n{-# NOINLINE bindPhysicsServer_area_get_shape_count #-}\n\n-- | Returns the number of shapes assigned to an area.\nbindPhysicsServer_area_get_shape_count :: MethodBind\nbindPhysicsServer_area_get_shape_count\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_get_shape_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of shapes assigned to an area.\narea_get_shape_count ::\n                       (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Int\narea_get_shape_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_get_shape_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_get_shape_count\" '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_get_shape_count\n\n{-# NOINLINE bindPhysicsServer_area_get_shape_transform #-}\n\n-- | Returns the transform matrix of a shape within an area.\nbindPhysicsServer_area_get_shape_transform :: MethodBind\nbindPhysicsServer_area_get_shape_transform\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_get_shape_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the transform matrix of a shape within an area.\narea_get_shape_transform ::\n                           (PhysicsServer :< cls, Object :< cls) =>\n                           cls -> Rid -> Int -> IO Transform\narea_get_shape_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_get_shape_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_get_shape_transform\"\n           '[Rid, Int]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_get_shape_transform\n\n{-# NOINLINE bindPhysicsServer_area_get_space #-}\n\n-- | Returns the space assigned to the area.\nbindPhysicsServer_area_get_space :: MethodBind\nbindPhysicsServer_area_get_space\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_get_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the space assigned to the area.\narea_get_space ::\n                 (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Rid\narea_get_space cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_get_space\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_get_space\" '[Rid] (IO Rid)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_get_space\n\n{-# NOINLINE bindPhysicsServer_area_get_space_override_mode #-}\n\n-- | Returns the space override mode for the area.\nbindPhysicsServer_area_get_space_override_mode :: MethodBind\nbindPhysicsServer_area_get_space_override_mode\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_get_space_override_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the space override mode for the area.\narea_get_space_override_mode ::\n                               (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Int\narea_get_space_override_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_area_get_space_override_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_get_space_override_mode\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_get_space_override_mode\n\n{-# NOINLINE bindPhysicsServer_area_get_transform #-}\n\n-- | Returns the transform matrix for an area.\nbindPhysicsServer_area_get_transform :: MethodBind\nbindPhysicsServer_area_get_transform\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_get_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the transform matrix for an area.\narea_get_transform ::\n                     (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Transform\narea_get_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_get_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_get_transform\" '[Rid]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_get_transform\n\n{-# NOINLINE bindPhysicsServer_area_is_ray_pickable #-}\n\n-- | If @true@, area collides with rays.\nbindPhysicsServer_area_is_ray_pickable :: MethodBind\nbindPhysicsServer_area_is_ray_pickable\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_is_ray_pickable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, area collides with rays.\narea_is_ray_pickable ::\n                       (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Bool\narea_is_ray_pickable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_is_ray_pickable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_is_ray_pickable\" '[Rid]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_is_ray_pickable\n\n{-# NOINLINE bindPhysicsServer_area_remove_shape #-}\n\n-- | Removes a shape from an area. It does not delete the shape, so it can be reassigned later.\nbindPhysicsServer_area_remove_shape :: MethodBind\nbindPhysicsServer_area_remove_shape\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_remove_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a shape from an area. It does not delete the shape, so it can be reassigned later.\narea_remove_shape ::\n                    (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\narea_remove_shape cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_remove_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_remove_shape\" '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_remove_shape\n\n{-# NOINLINE bindPhysicsServer_area_set_area_monitor_callback #-}\n\nbindPhysicsServer_area_set_area_monitor_callback :: MethodBind\nbindPhysicsServer_area_set_area_monitor_callback\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_area_monitor_callback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\narea_set_area_monitor_callback ::\n                                 (PhysicsServer :< cls, Object :< cls) =>\n                                 cls -> Rid -> Object -> GodotString -> IO ()\narea_set_area_monitor_callback cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_area_set_area_monitor_callback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_set_area_monitor_callback\"\n           '[Rid, Object, GodotString]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.PhysicsServer.area_set_area_monitor_callback\n\n{-# NOINLINE bindPhysicsServer_area_set_collision_layer #-}\n\n-- | Assigns the area to one or many physics layers.\nbindPhysicsServer_area_set_collision_layer :: MethodBind\nbindPhysicsServer_area_set_collision_layer\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Assigns the area to one or many physics layers.\narea_set_collision_layer ::\n                           (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\narea_set_collision_layer cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_set_collision_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_set_collision_layer\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_set_collision_layer\n\n{-# NOINLINE bindPhysicsServer_area_set_collision_mask #-}\n\n-- | Sets which physics layers the area will monitor.\nbindPhysicsServer_area_set_collision_mask :: MethodBind\nbindPhysicsServer_area_set_collision_mask\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets which physics layers the area will monitor.\narea_set_collision_mask ::\n                          (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\narea_set_collision_mask cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_set_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_set_collision_mask\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_set_collision_mask\n\n{-# NOINLINE bindPhysicsServer_area_set_monitor_callback #-}\n\n-- | Sets the function to call when any body/area enters or exits the area. This callback will be called for any object interacting with the area, and takes five parameters:\n--   \t\t\t\t1: @AREA_BODY_ADDED@ or @AREA_BODY_REMOVED@, depending on whether the object entered or exited the area.\n--   \t\t\t\t2: @RID@ of the object that entered/exited the area.\n--   \t\t\t\t3: Instance ID of the object that entered/exited the area.\n--   \t\t\t\t4: The shape index of the object that entered/exited the area.\n--   \t\t\t\t5: The shape index of the area where the object entered/exited.\nbindPhysicsServer_area_set_monitor_callback :: MethodBind\nbindPhysicsServer_area_set_monitor_callback\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_monitor_callback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the function to call when any body/area enters or exits the area. This callback will be called for any object interacting with the area, and takes five parameters:\n--   \t\t\t\t1: @AREA_BODY_ADDED@ or @AREA_BODY_REMOVED@, depending on whether the object entered or exited the area.\n--   \t\t\t\t2: @RID@ of the object that entered/exited the area.\n--   \t\t\t\t3: Instance ID of the object that entered/exited the area.\n--   \t\t\t\t4: The shape index of the object that entered/exited the area.\n--   \t\t\t\t5: The shape index of the area where the object entered/exited.\narea_set_monitor_callback ::\n                            (PhysicsServer :< cls, Object :< cls) =>\n                            cls -> Rid -> Object -> GodotString -> IO ()\narea_set_monitor_callback cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_set_monitor_callback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_set_monitor_callback\"\n           '[Rid, Object, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_set_monitor_callback\n\n{-# NOINLINE bindPhysicsServer_area_set_monitorable #-}\n\nbindPhysicsServer_area_set_monitorable :: MethodBind\nbindPhysicsServer_area_set_monitorable\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_monitorable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\narea_set_monitorable ::\n                       (PhysicsServer :< cls, Object :< cls) =>\n                       cls -> Rid -> Bool -> IO ()\narea_set_monitorable cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_set_monitorable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_set_monitorable\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_set_monitorable\n\n{-# NOINLINE bindPhysicsServer_area_set_param #-}\n\n-- | Sets the value for an area parameter. A list of available parameters is on the @enum AreaParameter@ constants.\nbindPhysicsServer_area_set_param :: MethodBind\nbindPhysicsServer_area_set_param\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the value for an area parameter. A list of available parameters is on the @enum AreaParameter@ constants.\narea_set_param ::\n                 (PhysicsServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> GodotVariant -> IO ()\narea_set_param cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_set_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_set_param\"\n           '[Rid, Int, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_set_param\n\n{-# NOINLINE bindPhysicsServer_area_set_ray_pickable #-}\n\n-- | Sets object pickable with rays.\nbindPhysicsServer_area_set_ray_pickable :: MethodBind\nbindPhysicsServer_area_set_ray_pickable\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_ray_pickable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets object pickable with rays.\narea_set_ray_pickable ::\n                        (PhysicsServer :< cls, Object :< cls) =>\n                        cls -> Rid -> Bool -> IO ()\narea_set_ray_pickable cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_set_ray_pickable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_set_ray_pickable\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_set_ray_pickable\n\n{-# NOINLINE bindPhysicsServer_area_set_shape #-}\n\n-- | Substitutes a given area shape by another. The old shape is selected by its index, the new one by its @RID@.\nbindPhysicsServer_area_set_shape :: MethodBind\nbindPhysicsServer_area_set_shape\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Substitutes a given area shape by another. The old shape is selected by its index, the new one by its @RID@.\narea_set_shape ::\n                 (PhysicsServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> Rid -> IO ()\narea_set_shape cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_set_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_set_shape\" '[Rid, Int, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_set_shape\n\n{-# NOINLINE bindPhysicsServer_area_set_shape_disabled #-}\n\nbindPhysicsServer_area_set_shape_disabled :: MethodBind\nbindPhysicsServer_area_set_shape_disabled\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_shape_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\narea_set_shape_disabled ::\n                          (PhysicsServer :< cls, Object :< cls) =>\n                          cls -> Rid -> Int -> Bool -> IO ()\narea_set_shape_disabled cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_set_shape_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_set_shape_disabled\"\n           '[Rid, Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_set_shape_disabled\n\n{-# NOINLINE bindPhysicsServer_area_set_shape_transform #-}\n\n-- | Sets the transform matrix for an area shape.\nbindPhysicsServer_area_set_shape_transform :: MethodBind\nbindPhysicsServer_area_set_shape_transform\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_shape_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the transform matrix for an area shape.\narea_set_shape_transform ::\n                           (PhysicsServer :< cls, Object :< cls) =>\n                           cls -> Rid -> Int -> Transform -> IO ()\narea_set_shape_transform cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_set_shape_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_set_shape_transform\"\n           '[Rid, Int, Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_set_shape_transform\n\n{-# NOINLINE bindPhysicsServer_area_set_space #-}\n\n-- | Assigns a space to the area.\nbindPhysicsServer_area_set_space :: MethodBind\nbindPhysicsServer_area_set_space\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Assigns a space to the area.\narea_set_space ::\n                 (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\narea_set_space cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_set_space\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_set_space\" '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_set_space\n\n{-# NOINLINE bindPhysicsServer_area_set_space_override_mode #-}\n\n-- | Sets the space override mode for the area. The modes are described in the @enum AreaSpaceOverrideMode@ constants.\nbindPhysicsServer_area_set_space_override_mode :: MethodBind\nbindPhysicsServer_area_set_space_override_mode\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_space_override_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the space override mode for the area. The modes are described in the @enum AreaSpaceOverrideMode@ constants.\narea_set_space_override_mode ::\n                               (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\narea_set_space_override_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_area_set_space_override_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_set_space_override_mode\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_set_space_override_mode\n\n{-# NOINLINE bindPhysicsServer_area_set_transform #-}\n\n-- | Sets the transform matrix for an area.\nbindPhysicsServer_area_set_transform :: MethodBind\nbindPhysicsServer_area_set_transform\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"area_set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the transform matrix for an area.\narea_set_transform ::\n                     (PhysicsServer :< cls, Object :< cls) =>\n                     cls -> Rid -> Transform -> IO ()\narea_set_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_area_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"area_set_transform\"\n           '[Rid, Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.area_set_transform\n\n{-# NOINLINE bindPhysicsServer_body_add_central_force #-}\n\nbindPhysicsServer_body_add_central_force :: MethodBind\nbindPhysicsServer_body_add_central_force\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_add_central_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nbody_add_central_force ::\n                         (PhysicsServer :< cls, Object :< cls) =>\n                         cls -> Rid -> Vector3 -> IO ()\nbody_add_central_force cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_add_central_force\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_add_central_force\"\n           '[Rid, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_add_central_force\n\n{-# NOINLINE bindPhysicsServer_body_add_collision_exception #-}\n\n-- | Adds a body to the list of bodies exempt from collisions.\nbindPhysicsServer_body_add_collision_exception :: MethodBind\nbindPhysicsServer_body_add_collision_exception\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_add_collision_exception\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a body to the list of bodies exempt from collisions.\nbody_add_collision_exception ::\n                               (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\nbody_add_collision_exception cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_body_add_collision_exception\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_add_collision_exception\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_add_collision_exception\n\n{-# NOINLINE bindPhysicsServer_body_add_force #-}\n\nbindPhysicsServer_body_add_force :: MethodBind\nbindPhysicsServer_body_add_force\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_add_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nbody_add_force ::\n                 (PhysicsServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Vector3 -> Vector3 -> IO ()\nbody_add_force cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_add_force\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_add_force\"\n           '[Rid, Vector3, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_add_force\n\n{-# NOINLINE bindPhysicsServer_body_add_shape #-}\n\n-- | Adds a shape to the body, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index.\nbindPhysicsServer_body_add_shape :: MethodBind\nbindPhysicsServer_body_add_shape\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_add_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a shape to the body, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index.\nbody_add_shape ::\n                 (PhysicsServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Rid -> Maybe Transform -> Maybe Bool -> IO ()\nbody_add_shape cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantTransform\n         (TF (V3 (V3 1 0 0) (V3 0 1 0) (V3 0 0 1)) (V3 0 0 0))\n         arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_add_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_add_shape\"\n           '[Rid, Rid, Maybe Transform, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_add_shape\n\n{-# NOINLINE bindPhysicsServer_body_add_torque #-}\n\nbindPhysicsServer_body_add_torque :: MethodBind\nbindPhysicsServer_body_add_torque\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_add_torque\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nbody_add_torque ::\n                  (PhysicsServer :< cls, Object :< cls) =>\n                  cls -> Rid -> Vector3 -> IO ()\nbody_add_torque cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_add_torque\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_add_torque\" '[Rid, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_add_torque\n\n{-# NOINLINE bindPhysicsServer_body_apply_central_impulse #-}\n\nbindPhysicsServer_body_apply_central_impulse :: MethodBind\nbindPhysicsServer_body_apply_central_impulse\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_apply_central_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nbody_apply_central_impulse ::\n                             (PhysicsServer :< cls, Object :< cls) =>\n                             cls -> Rid -> Vector3 -> IO ()\nbody_apply_central_impulse cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_apply_central_impulse\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_apply_central_impulse\"\n           '[Rid, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_apply_central_impulse\n\n{-# NOINLINE bindPhysicsServer_body_apply_impulse #-}\n\n-- | Gives the body a push at a @position@ in the direction of the @impulse@.\nbindPhysicsServer_body_apply_impulse :: MethodBind\nbindPhysicsServer_body_apply_impulse\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_apply_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gives the body a push at a @position@ in the direction of the @impulse@.\nbody_apply_impulse ::\n                     (PhysicsServer :< cls, Object :< cls) =>\n                     cls -> Rid -> Vector3 -> Vector3 -> IO ()\nbody_apply_impulse cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_apply_impulse\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_apply_impulse\"\n           '[Rid, Vector3, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_apply_impulse\n\n{-# NOINLINE bindPhysicsServer_body_apply_torque_impulse #-}\n\n-- | Gives the body a push to rotate it.\nbindPhysicsServer_body_apply_torque_impulse :: MethodBind\nbindPhysicsServer_body_apply_torque_impulse\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_apply_torque_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gives the body a push to rotate it.\nbody_apply_torque_impulse ::\n                            (PhysicsServer :< cls, Object :< cls) =>\n                            cls -> Rid -> Vector3 -> IO ()\nbody_apply_torque_impulse cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_apply_torque_impulse\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_apply_torque_impulse\"\n           '[Rid, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_apply_torque_impulse\n\n{-# NOINLINE bindPhysicsServer_body_attach_object_instance_id #-}\n\n-- | Assigns the area to a descendant of @Object@, so it can exist in the node tree.\nbindPhysicsServer_body_attach_object_instance_id :: MethodBind\nbindPhysicsServer_body_attach_object_instance_id\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_attach_object_instance_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Assigns the area to a descendant of @Object@, so it can exist in the node tree.\nbody_attach_object_instance_id ::\n                                 (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nbody_attach_object_instance_id cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_body_attach_object_instance_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_attach_object_instance_id\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.PhysicsServer.body_attach_object_instance_id\n\n{-# NOINLINE bindPhysicsServer_body_clear_shapes #-}\n\n-- | Removes all shapes from a body.\nbindPhysicsServer_body_clear_shapes :: MethodBind\nbindPhysicsServer_body_clear_shapes\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_clear_shapes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all shapes from a body.\nbody_clear_shapes ::\n                    (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO ()\nbody_clear_shapes cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_clear_shapes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_clear_shapes\" '[Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_clear_shapes\n\n{-# NOINLINE bindPhysicsServer_body_create #-}\n\n-- | Creates a physics body. The first parameter can be any value from @enum BodyMode@ constants, for the type of body created. Additionally, the body can be created in sleeping state to save processing time.\nbindPhysicsServer_body_create :: MethodBind\nbindPhysicsServer_body_create\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a physics body. The first parameter can be any value from @enum BodyMode@ constants, for the type of body created. Additionally, the body can be created in sleeping state to save processing time.\nbody_create ::\n              (PhysicsServer :< cls, Object :< cls) =>\n              cls -> Maybe Int -> Maybe Bool -> IO Rid\nbody_create cls arg1 arg2\n  = withVariantArray\n      [maybe (VariantInt (2)) toVariant arg1,\n       maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_create (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_create\"\n           '[Maybe Int, Maybe Bool]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_create\n\n{-# NOINLINE bindPhysicsServer_body_get_collision_layer #-}\n\n-- | Returns the physics layer or layers a body belongs to.\nbindPhysicsServer_body_get_collision_layer :: MethodBind\nbindPhysicsServer_body_get_collision_layer\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the physics layer or layers a body belongs to.\nbody_get_collision_layer ::\n                           (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nbody_get_collision_layer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_get_collision_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_get_collision_layer\" '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_get_collision_layer\n\n{-# NOINLINE bindPhysicsServer_body_get_collision_mask #-}\n\n-- | Returns the physics layer or layers a body can collide with.\n--   -\nbindPhysicsServer_body_get_collision_mask :: MethodBind\nbindPhysicsServer_body_get_collision_mask\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the physics layer or layers a body can collide with.\n--   -\nbody_get_collision_mask ::\n                          (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nbody_get_collision_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_get_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_get_collision_mask\" '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_get_collision_mask\n\n{-# NOINLINE bindPhysicsServer_body_get_direct_state #-}\n\n-- | Returns the @PhysicsDirectBodyState@ of the body.\nbindPhysicsServer_body_get_direct_state :: MethodBind\nbindPhysicsServer_body_get_direct_state\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_direct_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @PhysicsDirectBodyState@ of the body.\nbody_get_direct_state ::\n                        (PhysicsServer :< cls, Object :< cls) =>\n                        cls -> Rid -> IO PhysicsDirectBodyState\nbody_get_direct_state cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_get_direct_state\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_get_direct_state\" '[Rid]\n           (IO PhysicsDirectBodyState)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_get_direct_state\n\n{-# NOINLINE bindPhysicsServer_body_get_kinematic_safe_margin #-}\n\nbindPhysicsServer_body_get_kinematic_safe_margin :: MethodBind\nbindPhysicsServer_body_get_kinematic_safe_margin\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_kinematic_safe_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nbody_get_kinematic_safe_margin ::\n                                 (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Float\nbody_get_kinematic_safe_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_body_get_kinematic_safe_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_get_kinematic_safe_margin\"\n           '[Rid]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsServer.body_get_kinematic_safe_margin\n\n{-# NOINLINE bindPhysicsServer_body_get_max_contacts_reported #-}\n\n-- | Returns the maximum contacts that can be reported. See @method body_set_max_contacts_reported@.\nbindPhysicsServer_body_get_max_contacts_reported :: MethodBind\nbindPhysicsServer_body_get_max_contacts_reported\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_max_contacts_reported\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the maximum contacts that can be reported. See @method body_set_max_contacts_reported@.\nbody_get_max_contacts_reported ::\n                                 (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nbody_get_max_contacts_reported cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_body_get_max_contacts_reported\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_get_max_contacts_reported\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsServer.body_get_max_contacts_reported\n\n{-# NOINLINE bindPhysicsServer_body_get_mode #-}\n\n-- | Returns the body mode.\nbindPhysicsServer_body_get_mode :: MethodBind\nbindPhysicsServer_body_get_mode\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the body mode.\nbody_get_mode ::\n                (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nbody_get_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_get_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_get_mode\" '[Rid] (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_get_mode\n\n{-# NOINLINE bindPhysicsServer_body_get_object_instance_id #-}\n\n-- | Gets the instance ID of the object the area is assigned to.\nbindPhysicsServer_body_get_object_instance_id :: MethodBind\nbindPhysicsServer_body_get_object_instance_id\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_object_instance_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the instance ID of the object the area is assigned to.\nbody_get_object_instance_id ::\n                              (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nbody_get_object_instance_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_body_get_object_instance_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_get_object_instance_id\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_get_object_instance_id\n\n{-# NOINLINE bindPhysicsServer_body_get_param #-}\n\n-- | Returns the value of a body parameter. A list of available parameters is on the @enum BodyParameter@ constants.\nbindPhysicsServer_body_get_param :: MethodBind\nbindPhysicsServer_body_get_param\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of a body parameter. A list of available parameters is on the @enum BodyParameter@ constants.\nbody_get_param ::\n                 (PhysicsServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> IO Float\nbody_get_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_get_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_get_param\" '[Rid, Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_get_param\n\n{-# NOINLINE bindPhysicsServer_body_get_shape #-}\n\n-- | Returns the @RID@ of the nth shape of a body.\nbindPhysicsServer_body_get_shape :: MethodBind\nbindPhysicsServer_body_get_shape\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @RID@ of the nth shape of a body.\nbody_get_shape ::\n                 (PhysicsServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> IO Rid\nbody_get_shape cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_get_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_get_shape\" '[Rid, Int]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_get_shape\n\n{-# NOINLINE bindPhysicsServer_body_get_shape_count #-}\n\n-- | Returns the number of shapes assigned to a body.\nbindPhysicsServer_body_get_shape_count :: MethodBind\nbindPhysicsServer_body_get_shape_count\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_shape_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of shapes assigned to a body.\nbody_get_shape_count ::\n                       (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nbody_get_shape_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_get_shape_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_get_shape_count\" '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_get_shape_count\n\n{-# NOINLINE bindPhysicsServer_body_get_shape_transform #-}\n\n-- | Returns the transform matrix of a body shape.\nbindPhysicsServer_body_get_shape_transform :: MethodBind\nbindPhysicsServer_body_get_shape_transform\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_shape_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the transform matrix of a body shape.\nbody_get_shape_transform ::\n                           (PhysicsServer :< cls, Object :< cls) =>\n                           cls -> Rid -> Int -> IO Transform\nbody_get_shape_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_get_shape_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_get_shape_transform\"\n           '[Rid, Int]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_get_shape_transform\n\n{-# NOINLINE bindPhysicsServer_body_get_space #-}\n\n-- | Returns the @RID@ of the space assigned to a body.\nbindPhysicsServer_body_get_space :: MethodBind\nbindPhysicsServer_body_get_space\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @RID@ of the space assigned to a body.\nbody_get_space ::\n                 (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Rid\nbody_get_space cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_get_space\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_get_space\" '[Rid] (IO Rid)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_get_space\n\n{-# NOINLINE bindPhysicsServer_body_get_state #-}\n\n-- | Returns a body state.\nbindPhysicsServer_body_get_state :: MethodBind\nbindPhysicsServer_body_get_state\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_get_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a body state.\nbody_get_state ::\n                 (PhysicsServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> IO GodotVariant\nbody_get_state cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_get_state\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_get_state\" '[Rid, Int]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_get_state\n\n{-# NOINLINE bindPhysicsServer_body_is_axis_locked #-}\n\nbindPhysicsServer_body_is_axis_locked :: MethodBind\nbindPhysicsServer_body_is_axis_locked\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_is_axis_locked\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nbody_is_axis_locked ::\n                      (PhysicsServer :< cls, Object :< cls) =>\n                      cls -> Rid -> Int -> IO Bool\nbody_is_axis_locked cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_is_axis_locked\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_is_axis_locked\" '[Rid, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_is_axis_locked\n\n{-# NOINLINE bindPhysicsServer_body_is_continuous_collision_detection_enabled\n             #-}\n\n-- | If @true@, the continuous collision detection mode is enabled.\nbindPhysicsServer_body_is_continuous_collision_detection_enabled ::\n                                                                 MethodBind\nbindPhysicsServer_body_is_continuous_collision_detection_enabled\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_is_continuous_collision_detection_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the continuous collision detection mode is enabled.\nbody_is_continuous_collision_detection_enabled ::\n                                                 (PhysicsServer :< cls, Object :< cls) =>\n                                                 cls -> Rid -> IO Bool\nbody_is_continuous_collision_detection_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_body_is_continuous_collision_detection_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer\n           \"body_is_continuous_collision_detection_enabled\"\n           '[Rid]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsServer.body_is_continuous_collision_detection_enabled\n\n{-# NOINLINE bindPhysicsServer_body_is_omitting_force_integration\n             #-}\n\n-- | Returns whether a body uses a callback function to calculate its own physics (see @method body_set_force_integration_callback@).\nbindPhysicsServer_body_is_omitting_force_integration :: MethodBind\nbindPhysicsServer_body_is_omitting_force_integration\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_is_omitting_force_integration\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether a body uses a callback function to calculate its own physics (see @method body_set_force_integration_callback@).\nbody_is_omitting_force_integration ::\n                                     (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Bool\nbody_is_omitting_force_integration cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_body_is_omitting_force_integration\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer\n           \"body_is_omitting_force_integration\"\n           '[Rid]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsServer.body_is_omitting_force_integration\n\n{-# NOINLINE bindPhysicsServer_body_is_ray_pickable #-}\n\n-- | If @true@, the body can be detected by rays.\nbindPhysicsServer_body_is_ray_pickable :: MethodBind\nbindPhysicsServer_body_is_ray_pickable\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_is_ray_pickable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the body can be detected by rays.\nbody_is_ray_pickable ::\n                       (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Bool\nbody_is_ray_pickable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_is_ray_pickable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_is_ray_pickable\" '[Rid]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_is_ray_pickable\n\n{-# NOINLINE bindPhysicsServer_body_remove_collision_exception #-}\n\n-- | Removes a body from the list of bodies exempt from collisions.\n--   \t\t\t\tContinuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided.\nbindPhysicsServer_body_remove_collision_exception :: MethodBind\nbindPhysicsServer_body_remove_collision_exception\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_remove_collision_exception\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a body from the list of bodies exempt from collisions.\n--   \t\t\t\tContinuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided.\nbody_remove_collision_exception ::\n                                  (PhysicsServer :< cls, Object :< cls) =>\n                                  cls -> Rid -> Rid -> IO ()\nbody_remove_collision_exception cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_body_remove_collision_exception\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_remove_collision_exception\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.PhysicsServer.body_remove_collision_exception\n\n{-# NOINLINE bindPhysicsServer_body_remove_shape #-}\n\n-- | Removes a shape from a body. The shape is not deleted, so it can be reused afterwards.\nbindPhysicsServer_body_remove_shape :: MethodBind\nbindPhysicsServer_body_remove_shape\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_remove_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a shape from a body. The shape is not deleted, so it can be reused afterwards.\nbody_remove_shape ::\n                    (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nbody_remove_shape cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_remove_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_remove_shape\" '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_remove_shape\n\n{-# NOINLINE bindPhysicsServer_body_set_axis_lock #-}\n\nbindPhysicsServer_body_set_axis_lock :: MethodBind\nbindPhysicsServer_body_set_axis_lock\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_axis_lock\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nbody_set_axis_lock ::\n                     (PhysicsServer :< cls, Object :< cls) =>\n                     cls -> Rid -> Int -> Bool -> IO ()\nbody_set_axis_lock cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_set_axis_lock\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_set_axis_lock\"\n           '[Rid, Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_set_axis_lock\n\n{-# NOINLINE bindPhysicsServer_body_set_axis_velocity #-}\n\n-- | Sets an axis velocity. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior.\nbindPhysicsServer_body_set_axis_velocity :: MethodBind\nbindPhysicsServer_body_set_axis_velocity\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_axis_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets an axis velocity. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior.\nbody_set_axis_velocity ::\n                         (PhysicsServer :< cls, Object :< cls) =>\n                         cls -> Rid -> Vector3 -> IO ()\nbody_set_axis_velocity cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_set_axis_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_set_axis_velocity\"\n           '[Rid, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_set_axis_velocity\n\n{-# NOINLINE bindPhysicsServer_body_set_collision_layer #-}\n\n-- | Sets the physics layer or layers a body belongs to.\nbindPhysicsServer_body_set_collision_layer :: MethodBind\nbindPhysicsServer_body_set_collision_layer\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the physics layer or layers a body belongs to.\nbody_set_collision_layer ::\n                           (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nbody_set_collision_layer cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_set_collision_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_set_collision_layer\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_set_collision_layer\n\n{-# NOINLINE bindPhysicsServer_body_set_collision_mask #-}\n\n-- | Sets the physics layer or layers a body can collide with.\nbindPhysicsServer_body_set_collision_mask :: MethodBind\nbindPhysicsServer_body_set_collision_mask\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the physics layer or layers a body can collide with.\nbody_set_collision_mask ::\n                          (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nbody_set_collision_mask cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_set_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_set_collision_mask\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_set_collision_mask\n\n{-# NOINLINE bindPhysicsServer_body_set_enable_continuous_collision_detection\n             #-}\n\n-- | If @true@, the continuous collision detection mode is enabled.\n--   \t\t\t\tContinuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided.\nbindPhysicsServer_body_set_enable_continuous_collision_detection ::\n                                                                 MethodBind\nbindPhysicsServer_body_set_enable_continuous_collision_detection\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_enable_continuous_collision_detection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the continuous collision detection mode is enabled.\n--   \t\t\t\tContinuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided.\nbody_set_enable_continuous_collision_detection ::\n                                                 (PhysicsServer :< cls, Object :< cls) =>\n                                                 cls -> Rid -> Bool -> IO ()\nbody_set_enable_continuous_collision_detection cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_body_set_enable_continuous_collision_detection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer\n           \"body_set_enable_continuous_collision_detection\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.PhysicsServer.body_set_enable_continuous_collision_detection\n\n{-# NOINLINE bindPhysicsServer_body_set_force_integration_callback\n             #-}\n\n-- | Sets the function used to calculate physics for an object, if that object allows it (see @method body_set_omit_force_integration@).\nbindPhysicsServer_body_set_force_integration_callback :: MethodBind\nbindPhysicsServer_body_set_force_integration_callback\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_force_integration_callback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the function used to calculate physics for an object, if that object allows it (see @method body_set_omit_force_integration@).\nbody_set_force_integration_callback ::\n                                      (PhysicsServer :< cls, Object :< cls) =>\n                                      cls ->\n                                        Rid -> Object -> GodotString -> Maybe GodotVariant -> IO ()\nbody_set_force_integration_callback cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe VariantNil toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_body_set_force_integration_callback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer\n           \"body_set_force_integration_callback\"\n           '[Rid, Object, GodotString, Maybe GodotVariant]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.PhysicsServer.body_set_force_integration_callback\n\n{-# NOINLINE bindPhysicsServer_body_set_kinematic_safe_margin #-}\n\nbindPhysicsServer_body_set_kinematic_safe_margin :: MethodBind\nbindPhysicsServer_body_set_kinematic_safe_margin\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_kinematic_safe_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nbody_set_kinematic_safe_margin ::\n                                 (PhysicsServer :< cls, Object :< cls) =>\n                                 cls -> Rid -> Float -> IO ()\nbody_set_kinematic_safe_margin cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_body_set_kinematic_safe_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_set_kinematic_safe_margin\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.PhysicsServer.body_set_kinematic_safe_margin\n\n{-# NOINLINE bindPhysicsServer_body_set_max_contacts_reported #-}\n\n-- | Sets the maximum contacts to report. Bodies can keep a log of the contacts with other bodies, this is enabled by setting the maximum amount of contacts reported to a number greater than 0.\nbindPhysicsServer_body_set_max_contacts_reported :: MethodBind\nbindPhysicsServer_body_set_max_contacts_reported\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_max_contacts_reported\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the maximum contacts to report. Bodies can keep a log of the contacts with other bodies, this is enabled by setting the maximum amount of contacts reported to a number greater than 0.\nbody_set_max_contacts_reported ::\n                                 (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nbody_set_max_contacts_reported cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_body_set_max_contacts_reported\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_set_max_contacts_reported\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.PhysicsServer.body_set_max_contacts_reported\n\n{-# NOINLINE bindPhysicsServer_body_set_mode #-}\n\n-- | Sets the body mode, from one of the @enum BodyMode@ constants.\nbindPhysicsServer_body_set_mode :: MethodBind\nbindPhysicsServer_body_set_mode\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the body mode, from one of the @enum BodyMode@ constants.\nbody_set_mode ::\n                (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nbody_set_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_set_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_set_mode\" '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_set_mode\n\n{-# NOINLINE bindPhysicsServer_body_set_omit_force_integration #-}\n\n-- | Sets whether a body uses a callback function to calculate its own physics (see @method body_set_force_integration_callback@).\nbindPhysicsServer_body_set_omit_force_integration :: MethodBind\nbindPhysicsServer_body_set_omit_force_integration\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_omit_force_integration\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether a body uses a callback function to calculate its own physics (see @method body_set_force_integration_callback@).\nbody_set_omit_force_integration ::\n                                  (PhysicsServer :< cls, Object :< cls) =>\n                                  cls -> Rid -> Bool -> IO ()\nbody_set_omit_force_integration cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_body_set_omit_force_integration\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_set_omit_force_integration\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.PhysicsServer.body_set_omit_force_integration\n\n{-# NOINLINE bindPhysicsServer_body_set_param #-}\n\n-- | Sets a body parameter. A list of available parameters is on the @enum BodyParameter@ constants.\nbindPhysicsServer_body_set_param :: MethodBind\nbindPhysicsServer_body_set_param\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a body parameter. A list of available parameters is on the @enum BodyParameter@ constants.\nbody_set_param ::\n                 (PhysicsServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> Float -> IO ()\nbody_set_param cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_set_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_set_param\"\n           '[Rid, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_set_param\n\n{-# NOINLINE bindPhysicsServer_body_set_ray_pickable #-}\n\n-- | Sets the body pickable with rays if @enabled@ is set.\nbindPhysicsServer_body_set_ray_pickable :: MethodBind\nbindPhysicsServer_body_set_ray_pickable\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_ray_pickable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the body pickable with rays if @enabled@ is set.\nbody_set_ray_pickable ::\n                        (PhysicsServer :< cls, Object :< cls) =>\n                        cls -> Rid -> Bool -> IO ()\nbody_set_ray_pickable cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_set_ray_pickable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_set_ray_pickable\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_set_ray_pickable\n\n{-# NOINLINE bindPhysicsServer_body_set_shape #-}\n\n-- | Substitutes a given body shape by another. The old shape is selected by its index, the new one by its @RID@.\nbindPhysicsServer_body_set_shape :: MethodBind\nbindPhysicsServer_body_set_shape\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Substitutes a given body shape by another. The old shape is selected by its index, the new one by its @RID@.\nbody_set_shape ::\n                 (PhysicsServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> Rid -> IO ()\nbody_set_shape cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_set_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_set_shape\" '[Rid, Int, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_set_shape\n\n{-# NOINLINE bindPhysicsServer_body_set_shape_disabled #-}\n\nbindPhysicsServer_body_set_shape_disabled :: MethodBind\nbindPhysicsServer_body_set_shape_disabled\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_shape_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nbody_set_shape_disabled ::\n                          (PhysicsServer :< cls, Object :< cls) =>\n                          cls -> Rid -> Int -> Bool -> IO ()\nbody_set_shape_disabled cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_set_shape_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_set_shape_disabled\"\n           '[Rid, Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_set_shape_disabled\n\n{-# NOINLINE bindPhysicsServer_body_set_shape_transform #-}\n\n-- | Sets the transform matrix for a body shape.\nbindPhysicsServer_body_set_shape_transform :: MethodBind\nbindPhysicsServer_body_set_shape_transform\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_shape_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the transform matrix for a body shape.\nbody_set_shape_transform ::\n                           (PhysicsServer :< cls, Object :< cls) =>\n                           cls -> Rid -> Int -> Transform -> IO ()\nbody_set_shape_transform cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_set_shape_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_set_shape_transform\"\n           '[Rid, Int, Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_set_shape_transform\n\n{-# NOINLINE bindPhysicsServer_body_set_space #-}\n\n-- | Assigns a space to the body (see @method space_create@).\nbindPhysicsServer_body_set_space :: MethodBind\nbindPhysicsServer_body_set_space\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Assigns a space to the body (see @method space_create@).\nbody_set_space ::\n                 (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\nbody_set_space cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_set_space\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_set_space\" '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_set_space\n\n{-# NOINLINE bindPhysicsServer_body_set_state #-}\n\n-- | Sets a body state (see @enum BodyState@ constants).\nbindPhysicsServer_body_set_state :: MethodBind\nbindPhysicsServer_body_set_state\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"body_set_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a body state (see @enum BodyState@ constants).\nbody_set_state ::\n                 (PhysicsServer :< cls, Object :< cls) =>\n                 cls -> Rid -> Int -> GodotVariant -> IO ()\nbody_set_state cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_body_set_state\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"body_set_state\"\n           '[Rid, Int, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.body_set_state\n\n{-# NOINLINE bindPhysicsServer_cone_twist_joint_get_param #-}\n\n-- | Gets a cone_twist_joint parameter (see @enum ConeTwistJointParam@ constants).\nbindPhysicsServer_cone_twist_joint_get_param :: MethodBind\nbindPhysicsServer_cone_twist_joint_get_param\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"cone_twist_joint_get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a cone_twist_joint parameter (see @enum ConeTwistJointParam@ constants).\ncone_twist_joint_get_param ::\n                             (PhysicsServer :< cls, Object :< cls) =>\n                             cls -> Rid -> Int -> IO Float\ncone_twist_joint_get_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_cone_twist_joint_get_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"cone_twist_joint_get_param\"\n           '[Rid, Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.cone_twist_joint_get_param\n\n{-# NOINLINE bindPhysicsServer_cone_twist_joint_set_param #-}\n\n-- | Sets a cone_twist_joint parameter (see @enum ConeTwistJointParam@ constants).\nbindPhysicsServer_cone_twist_joint_set_param :: MethodBind\nbindPhysicsServer_cone_twist_joint_set_param\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"cone_twist_joint_set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a cone_twist_joint parameter (see @enum ConeTwistJointParam@ constants).\ncone_twist_joint_set_param ::\n                             (PhysicsServer :< cls, Object :< cls) =>\n                             cls -> Rid -> Int -> Float -> IO ()\ncone_twist_joint_set_param cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_cone_twist_joint_set_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"cone_twist_joint_set_param\"\n           '[Rid, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.cone_twist_joint_set_param\n\n{-# NOINLINE bindPhysicsServer_free_rid #-}\n\n-- | Destroys any of the objects created by PhysicsServer. If the @RID@ passed is not one of the objects that can be created by PhysicsServer, an error will be sent to the console.\nbindPhysicsServer_free_rid :: MethodBind\nbindPhysicsServer_free_rid\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"free_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Destroys any of the objects created by PhysicsServer. If the @RID@ passed is not one of the objects that can be created by PhysicsServer, an error will be sent to the console.\nfree_rid ::\n           (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO ()\nfree_rid cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_free_rid (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"free_rid\" '[Rid] (IO ()) where\n        nodeMethod = Godot.Core.PhysicsServer.free_rid\n\n{-# NOINLINE bindPhysicsServer_generic_6dof_joint_get_flag #-}\n\n-- | Gets a generic_6_DOF_joint flag (see @enum G6DOFJointAxisFlag@ constants).\nbindPhysicsServer_generic_6dof_joint_get_flag :: MethodBind\nbindPhysicsServer_generic_6dof_joint_get_flag\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"generic_6dof_joint_get_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a generic_6_DOF_joint flag (see @enum G6DOFJointAxisFlag@ constants).\ngeneric_6dof_joint_get_flag ::\n                              (PhysicsServer :< cls, Object :< cls) =>\n                              cls -> Rid -> Int -> Int -> IO Bool\ngeneric_6dof_joint_get_flag cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_generic_6dof_joint_get_flag\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"generic_6dof_joint_get_flag\"\n           '[Rid, Int, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.generic_6dof_joint_get_flag\n\n{-# NOINLINE bindPhysicsServer_generic_6dof_joint_get_param #-}\n\n-- | Gets a generic_6_DOF_joint parameter (see @enum G6DOFJointAxisParam@ constants).\nbindPhysicsServer_generic_6dof_joint_get_param :: MethodBind\nbindPhysicsServer_generic_6dof_joint_get_param\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"generic_6dof_joint_get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a generic_6_DOF_joint parameter (see @enum G6DOFJointAxisParam@ constants).\ngeneric_6dof_joint_get_param ::\n                               (PhysicsServer :< cls, Object :< cls) =>\n                               cls -> Rid -> Int -> Int -> IO Float\ngeneric_6dof_joint_get_param cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_generic_6dof_joint_get_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"generic_6dof_joint_get_param\"\n           '[Rid, Int, Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.generic_6dof_joint_get_param\n\n{-# NOINLINE bindPhysicsServer_generic_6dof_joint_set_flag #-}\n\n-- | Sets a generic_6_DOF_joint flag (see @enum G6DOFJointAxisFlag@ constants).\nbindPhysicsServer_generic_6dof_joint_set_flag :: MethodBind\nbindPhysicsServer_generic_6dof_joint_set_flag\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"generic_6dof_joint_set_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a generic_6_DOF_joint flag (see @enum G6DOFJointAxisFlag@ constants).\ngeneric_6dof_joint_set_flag ::\n                              (PhysicsServer :< cls, Object :< cls) =>\n                              cls -> Rid -> Int -> Int -> Bool -> IO ()\ngeneric_6dof_joint_set_flag cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_generic_6dof_joint_set_flag\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"generic_6dof_joint_set_flag\"\n           '[Rid, Int, Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.generic_6dof_joint_set_flag\n\n{-# NOINLINE bindPhysicsServer_generic_6dof_joint_set_param #-}\n\n-- | Sets a generic_6_DOF_joint parameter (see @enum G6DOFJointAxisParam@ constants).\nbindPhysicsServer_generic_6dof_joint_set_param :: MethodBind\nbindPhysicsServer_generic_6dof_joint_set_param\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"generic_6dof_joint_set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a generic_6_DOF_joint parameter (see @enum G6DOFJointAxisParam@ constants).\ngeneric_6dof_joint_set_param ::\n                               (PhysicsServer :< cls, Object :< cls) =>\n                               cls -> Rid -> Int -> Int -> Float -> IO ()\ngeneric_6dof_joint_set_param cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsServer_generic_6dof_joint_set_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"generic_6dof_joint_set_param\"\n           '[Rid, Int, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.generic_6dof_joint_set_param\n\n{-# NOINLINE bindPhysicsServer_get_process_info #-}\n\n-- | Returns an Info defined by the @enum ProcessInfo@ input given.\nbindPhysicsServer_get_process_info :: MethodBind\nbindPhysicsServer_get_process_info\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_process_info\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an Info defined by the @enum ProcessInfo@ input given.\nget_process_info ::\n                   (PhysicsServer :< cls, Object :< cls) => cls -> Int -> IO Int\nget_process_info cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_get_process_info\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"get_process_info\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.get_process_info\n\n{-# NOINLINE bindPhysicsServer_hinge_joint_get_flag #-}\n\n-- | Gets a hinge_joint flag (see @enum HingeJointFlag@ constants).\nbindPhysicsServer_hinge_joint_get_flag :: MethodBind\nbindPhysicsServer_hinge_joint_get_flag\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"hinge_joint_get_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a hinge_joint flag (see @enum HingeJointFlag@ constants).\nhinge_joint_get_flag ::\n                       (PhysicsServer :< cls, Object :< cls) =>\n                       cls -> Rid -> Int -> IO Bool\nhinge_joint_get_flag cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_hinge_joint_get_flag\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"hinge_joint_get_flag\"\n           '[Rid, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.hinge_joint_get_flag\n\n{-# NOINLINE bindPhysicsServer_hinge_joint_get_param #-}\n\n-- | Gets a hinge_joint parameter (see @enum HingeJointParam@).\nbindPhysicsServer_hinge_joint_get_param :: MethodBind\nbindPhysicsServer_hinge_joint_get_param\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"hinge_joint_get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a hinge_joint parameter (see @enum HingeJointParam@).\nhinge_joint_get_param ::\n                        (PhysicsServer :< cls, Object :< cls) =>\n                        cls -> Rid -> Int -> IO Float\nhinge_joint_get_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_hinge_joint_get_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"hinge_joint_get_param\"\n           '[Rid, Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.hinge_joint_get_param\n\n{-# NOINLINE bindPhysicsServer_hinge_joint_set_flag #-}\n\n-- | Sets a hinge_joint flag (see @enum HingeJointFlag@ constants).\nbindPhysicsServer_hinge_joint_set_flag :: MethodBind\nbindPhysicsServer_hinge_joint_set_flag\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"hinge_joint_set_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a hinge_joint flag (see @enum HingeJointFlag@ constants).\nhinge_joint_set_flag ::\n                       (PhysicsServer :< cls, Object :< cls) =>\n                       cls -> Rid -> Int -> Bool -> IO ()\nhinge_joint_set_flag cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_hinge_joint_set_flag\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"hinge_joint_set_flag\"\n           '[Rid, Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.hinge_joint_set_flag\n\n{-# NOINLINE bindPhysicsServer_hinge_joint_set_param #-}\n\n-- | Sets a hinge_joint parameter (see @enum HingeJointParam@ constants).\nbindPhysicsServer_hinge_joint_set_param :: MethodBind\nbindPhysicsServer_hinge_joint_set_param\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"hinge_joint_set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a hinge_joint parameter (see @enum HingeJointParam@ constants).\nhinge_joint_set_param ::\n                        (PhysicsServer :< cls, Object :< cls) =>\n                        cls -> Rid -> Int -> Float -> IO ()\nhinge_joint_set_param cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_hinge_joint_set_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"hinge_joint_set_param\"\n           '[Rid, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.hinge_joint_set_param\n\n{-# NOINLINE bindPhysicsServer_joint_create_cone_twist #-}\n\n-- | Creates a @ConeTwistJoint@.\nbindPhysicsServer_joint_create_cone_twist :: MethodBind\nbindPhysicsServer_joint_create_cone_twist\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"joint_create_cone_twist\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a @ConeTwistJoint@.\njoint_create_cone_twist ::\n                          (PhysicsServer :< cls, Object :< cls) =>\n                          cls -> Rid -> Transform -> Rid -> Transform -> IO Rid\njoint_create_cone_twist cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_joint_create_cone_twist\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"joint_create_cone_twist\"\n           '[Rid, Transform, Rid, Transform]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.joint_create_cone_twist\n\n{-# NOINLINE bindPhysicsServer_joint_create_generic_6dof #-}\n\n-- | Creates a @Generic6DOFJoint@.\nbindPhysicsServer_joint_create_generic_6dof :: MethodBind\nbindPhysicsServer_joint_create_generic_6dof\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"joint_create_generic_6dof\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a @Generic6DOFJoint@.\njoint_create_generic_6dof ::\n                            (PhysicsServer :< cls, Object :< cls) =>\n                            cls -> Rid -> Transform -> Rid -> Transform -> IO Rid\njoint_create_generic_6dof cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_joint_create_generic_6dof\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"joint_create_generic_6dof\"\n           '[Rid, Transform, Rid, Transform]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.joint_create_generic_6dof\n\n{-# NOINLINE bindPhysicsServer_joint_create_hinge #-}\n\n-- | Creates a @HingeJoint@.\nbindPhysicsServer_joint_create_hinge :: MethodBind\nbindPhysicsServer_joint_create_hinge\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"joint_create_hinge\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a @HingeJoint@.\njoint_create_hinge ::\n                     (PhysicsServer :< cls, Object :< cls) =>\n                     cls -> Rid -> Transform -> Rid -> Transform -> IO Rid\njoint_create_hinge cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_joint_create_hinge\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"joint_create_hinge\"\n           '[Rid, Transform, Rid, Transform]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.joint_create_hinge\n\n{-# NOINLINE bindPhysicsServer_joint_create_pin #-}\n\n-- | Creates a @PinJoint@.\nbindPhysicsServer_joint_create_pin :: MethodBind\nbindPhysicsServer_joint_create_pin\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"joint_create_pin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a @PinJoint@.\njoint_create_pin ::\n                   (PhysicsServer :< cls, Object :< cls) =>\n                   cls -> Rid -> Vector3 -> Rid -> Vector3 -> IO Rid\njoint_create_pin cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_joint_create_pin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"joint_create_pin\"\n           '[Rid, Vector3, Rid, Vector3]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.joint_create_pin\n\n{-# NOINLINE bindPhysicsServer_joint_create_slider #-}\n\n-- | Creates a @SliderJoint@.\nbindPhysicsServer_joint_create_slider :: MethodBind\nbindPhysicsServer_joint_create_slider\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"joint_create_slider\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a @SliderJoint@.\njoint_create_slider ::\n                      (PhysicsServer :< cls, Object :< cls) =>\n                      cls -> Rid -> Transform -> Rid -> Transform -> IO Rid\njoint_create_slider cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_joint_create_slider\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"joint_create_slider\"\n           '[Rid, Transform, Rid, Transform]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.joint_create_slider\n\n{-# NOINLINE bindPhysicsServer_joint_get_solver_priority #-}\n\n-- | Gets the priority value of the Joint.\nbindPhysicsServer_joint_get_solver_priority :: MethodBind\nbindPhysicsServer_joint_get_solver_priority\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"joint_get_solver_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the priority value of the Joint.\njoint_get_solver_priority ::\n                            (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Int\njoint_get_solver_priority cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_joint_get_solver_priority\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"joint_get_solver_priority\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.joint_get_solver_priority\n\n{-# NOINLINE bindPhysicsServer_joint_get_type #-}\n\n-- | Returns the type of the Joint.\nbindPhysicsServer_joint_get_type :: MethodBind\nbindPhysicsServer_joint_get_type\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"joint_get_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the type of the Joint.\njoint_get_type ::\n                 (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Int\njoint_get_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_joint_get_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"joint_get_type\" '[Rid] (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.joint_get_type\n\n{-# NOINLINE bindPhysicsServer_joint_set_solver_priority #-}\n\n-- | Sets the priority value of the Joint.\nbindPhysicsServer_joint_set_solver_priority :: MethodBind\nbindPhysicsServer_joint_set_solver_priority\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"joint_set_solver_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the priority value of the Joint.\njoint_set_solver_priority ::\n                            (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\njoint_set_solver_priority cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_joint_set_solver_priority\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"joint_set_solver_priority\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.joint_set_solver_priority\n\n{-# NOINLINE bindPhysicsServer_pin_joint_get_local_a #-}\n\n-- | Returns position of the joint in the local space of body a of the joint.\nbindPhysicsServer_pin_joint_get_local_a :: MethodBind\nbindPhysicsServer_pin_joint_get_local_a\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"pin_joint_get_local_a\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns position of the joint in the local space of body a of the joint.\npin_joint_get_local_a ::\n                        (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Vector3\npin_joint_get_local_a cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_pin_joint_get_local_a\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"pin_joint_get_local_a\" '[Rid]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.pin_joint_get_local_a\n\n{-# NOINLINE bindPhysicsServer_pin_joint_get_local_b #-}\n\n-- | Returns position of the joint in the local space of body b of the joint.\nbindPhysicsServer_pin_joint_get_local_b :: MethodBind\nbindPhysicsServer_pin_joint_get_local_b\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"pin_joint_get_local_b\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns position of the joint in the local space of body b of the joint.\npin_joint_get_local_b ::\n                        (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Vector3\npin_joint_get_local_b cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_pin_joint_get_local_b\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"pin_joint_get_local_b\" '[Rid]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.pin_joint_get_local_b\n\n{-# NOINLINE bindPhysicsServer_pin_joint_get_param #-}\n\n-- | Gets a pin_joint parameter (see @enum PinJointParam@ constants).\nbindPhysicsServer_pin_joint_get_param :: MethodBind\nbindPhysicsServer_pin_joint_get_param\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"pin_joint_get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a pin_joint parameter (see @enum PinJointParam@ constants).\npin_joint_get_param ::\n                      (PhysicsServer :< cls, Object :< cls) =>\n                      cls -> Rid -> Int -> IO Float\npin_joint_get_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_pin_joint_get_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"pin_joint_get_param\" '[Rid, Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.pin_joint_get_param\n\n{-# NOINLINE bindPhysicsServer_pin_joint_set_local_a #-}\n\n-- | Sets position of the joint in the local space of body a of the joint.\nbindPhysicsServer_pin_joint_set_local_a :: MethodBind\nbindPhysicsServer_pin_joint_set_local_a\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"pin_joint_set_local_a\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets position of the joint in the local space of body a of the joint.\npin_joint_set_local_a ::\n                        (PhysicsServer :< cls, Object :< cls) =>\n                        cls -> Rid -> Vector3 -> IO ()\npin_joint_set_local_a cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_pin_joint_set_local_a\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"pin_joint_set_local_a\"\n           '[Rid, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.pin_joint_set_local_a\n\n{-# NOINLINE bindPhysicsServer_pin_joint_set_local_b #-}\n\n-- | Sets position of the joint in the local space of body b of the joint.\nbindPhysicsServer_pin_joint_set_local_b :: MethodBind\nbindPhysicsServer_pin_joint_set_local_b\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"pin_joint_set_local_b\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets position of the joint in the local space of body b of the joint.\npin_joint_set_local_b ::\n                        (PhysicsServer :< cls, Object :< cls) =>\n                        cls -> Rid -> Vector3 -> IO ()\npin_joint_set_local_b cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_pin_joint_set_local_b\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"pin_joint_set_local_b\"\n           '[Rid, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.pin_joint_set_local_b\n\n{-# NOINLINE bindPhysicsServer_pin_joint_set_param #-}\n\n-- | Sets a pin_joint parameter (see @enum PinJointParam@ constants).\nbindPhysicsServer_pin_joint_set_param :: MethodBind\nbindPhysicsServer_pin_joint_set_param\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"pin_joint_set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a pin_joint parameter (see @enum PinJointParam@ constants).\npin_joint_set_param ::\n                      (PhysicsServer :< cls, Object :< cls) =>\n                      cls -> Rid -> Int -> Float -> IO ()\npin_joint_set_param cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_pin_joint_set_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"pin_joint_set_param\"\n           '[Rid, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.pin_joint_set_param\n\n{-# NOINLINE bindPhysicsServer_set_active #-}\n\n-- | Activates or deactivates the 3D physics engine.\nbindPhysicsServer_set_active :: MethodBind\nbindPhysicsServer_set_active\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Activates or deactivates the 3D physics engine.\nset_active ::\n             (PhysicsServer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_active cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_set_active (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"set_active\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.set_active\n\n{-# NOINLINE bindPhysicsServer_shape_create #-}\n\n-- | Creates a shape of a type from @enum ShapeType@. Does not assign it to a body or an area. To do so, you must use @method area_set_shape@ or @method body_set_shape@.\nbindPhysicsServer_shape_create :: MethodBind\nbindPhysicsServer_shape_create\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"shape_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a shape of a type from @enum ShapeType@. Does not assign it to a body or an area. To do so, you must use @method area_set_shape@ or @method body_set_shape@.\nshape_create ::\n               (PhysicsServer :< cls, Object :< cls) => cls -> Int -> IO Rid\nshape_create cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_shape_create (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"shape_create\" '[Int] (IO Rid)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.shape_create\n\n{-# NOINLINE bindPhysicsServer_shape_get_data #-}\n\n-- | Returns the shape data.\nbindPhysicsServer_shape_get_data :: MethodBind\nbindPhysicsServer_shape_get_data\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"shape_get_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the shape data.\nshape_get_data ::\n                 (PhysicsServer :< cls, Object :< cls) =>\n                 cls -> Rid -> IO GodotVariant\nshape_get_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_shape_get_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"shape_get_data\" '[Rid]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.shape_get_data\n\n{-# NOINLINE bindPhysicsServer_shape_get_type #-}\n\n-- | Returns the type of shape (see @enum ShapeType@ constants).\nbindPhysicsServer_shape_get_type :: MethodBind\nbindPhysicsServer_shape_get_type\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"shape_get_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the type of shape (see @enum ShapeType@ constants).\nshape_get_type ::\n                 (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nshape_get_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_shape_get_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"shape_get_type\" '[Rid] (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.shape_get_type\n\n{-# NOINLINE bindPhysicsServer_shape_set_data #-}\n\n-- | Sets the shape data that defines its shape and size. The data to be passed depends on the kind of shape created @method shape_get_type@.\nbindPhysicsServer_shape_set_data :: MethodBind\nbindPhysicsServer_shape_set_data\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"shape_set_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the shape data that defines its shape and size. The data to be passed depends on the kind of shape created @method shape_get_type@.\nshape_set_data ::\n                 (PhysicsServer :< cls, Object :< cls) =>\n                 cls -> Rid -> GodotVariant -> IO ()\nshape_set_data cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_shape_set_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"shape_set_data\"\n           '[Rid, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.shape_set_data\n\n{-# NOINLINE bindPhysicsServer_slider_joint_get_param #-}\n\n-- | Gets a slider_joint parameter (see @enum SliderJointParam@ constants).\nbindPhysicsServer_slider_joint_get_param :: MethodBind\nbindPhysicsServer_slider_joint_get_param\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"slider_joint_get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a slider_joint parameter (see @enum SliderJointParam@ constants).\nslider_joint_get_param ::\n                         (PhysicsServer :< cls, Object :< cls) =>\n                         cls -> Rid -> Int -> IO Float\nslider_joint_get_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_slider_joint_get_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"slider_joint_get_param\"\n           '[Rid, Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.slider_joint_get_param\n\n{-# NOINLINE bindPhysicsServer_slider_joint_set_param #-}\n\n-- | Gets a slider_joint parameter (see @enum SliderJointParam@ constants).\nbindPhysicsServer_slider_joint_set_param :: MethodBind\nbindPhysicsServer_slider_joint_set_param\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"slider_joint_set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a slider_joint parameter (see @enum SliderJointParam@ constants).\nslider_joint_set_param ::\n                         (PhysicsServer :< cls, Object :< cls) =>\n                         cls -> Rid -> Int -> Float -> IO ()\nslider_joint_set_param cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_slider_joint_set_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"slider_joint_set_param\"\n           '[Rid, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.slider_joint_set_param\n\n{-# NOINLINE bindPhysicsServer_space_create #-}\n\n-- | Creates a space. A space is a collection of parameters for the physics engine that can be assigned to an area or a body. It can be assigned to an area with @method area_set_space@, or to a body with @method body_set_space@.\nbindPhysicsServer_space_create :: MethodBind\nbindPhysicsServer_space_create\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"space_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a space. A space is a collection of parameters for the physics engine that can be assigned to an area or a body. It can be assigned to an area with @method area_set_space@, or to a body with @method body_set_space@.\nspace_create ::\n               (PhysicsServer :< cls, Object :< cls) => cls -> IO Rid\nspace_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_space_create (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"space_create\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.PhysicsServer.space_create\n\n{-# NOINLINE bindPhysicsServer_space_get_direct_state #-}\n\n-- | Returns the state of a space, a @PhysicsDirectSpaceState@. This object can be used to make collision/intersection queries.\nbindPhysicsServer_space_get_direct_state :: MethodBind\nbindPhysicsServer_space_get_direct_state\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"space_get_direct_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the state of a space, a @PhysicsDirectSpaceState@. This object can be used to make collision/intersection queries.\nspace_get_direct_state ::\n                         (PhysicsServer :< cls, Object :< cls) =>\n                         cls -> Rid -> IO PhysicsDirectSpaceState\nspace_get_direct_state cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_space_get_direct_state\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"space_get_direct_state\" '[Rid]\n           (IO PhysicsDirectSpaceState)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.space_get_direct_state\n\n{-# NOINLINE bindPhysicsServer_space_get_param #-}\n\n-- | Returns the value of a space parameter.\nbindPhysicsServer_space_get_param :: MethodBind\nbindPhysicsServer_space_get_param\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"space_get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of a space parameter.\nspace_get_param ::\n                  (PhysicsServer :< cls, Object :< cls) =>\n                  cls -> Rid -> Int -> IO Float\nspace_get_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_space_get_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"space_get_param\" '[Rid, Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.space_get_param\n\n{-# NOINLINE bindPhysicsServer_space_is_active #-}\n\n-- | Returns whether the space is active.\nbindPhysicsServer_space_is_active :: MethodBind\nbindPhysicsServer_space_is_active\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"space_is_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether the space is active.\nspace_is_active ::\n                  (PhysicsServer :< cls, Object :< cls) => cls -> Rid -> IO Bool\nspace_is_active cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_space_is_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"space_is_active\" '[Rid]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PhysicsServer.space_is_active\n\n{-# NOINLINE bindPhysicsServer_space_set_active #-}\n\n-- | Marks a space as active. It will not have an effect, unless it is assigned to an area or body.\nbindPhysicsServer_space_set_active :: MethodBind\nbindPhysicsServer_space_set_active\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"space_set_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Marks a space as active. It will not have an effect, unless it is assigned to an area or body.\nspace_set_active ::\n                   (PhysicsServer :< cls, Object :< cls) =>\n                   cls -> Rid -> Bool -> IO ()\nspace_set_active cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_space_set_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"space_set_active\" '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.space_set_active\n\n{-# NOINLINE bindPhysicsServer_space_set_param #-}\n\n-- | Sets the value for a space parameter. A list of available parameters is on the @enum SpaceParameter@ constants.\nbindPhysicsServer_space_set_param :: MethodBind\nbindPhysicsServer_space_set_param\n  = unsafePerformIO $\n      withCString \"PhysicsServer\" $\n        \\ clsNamePtr ->\n          withCString \"space_set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the value for a space parameter. A list of available parameters is on the @enum SpaceParameter@ constants.\nspace_set_param ::\n                  (PhysicsServer :< cls, Object :< cls) =>\n                  cls -> Rid -> Int -> Float -> IO ()\nspace_set_param cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsServer_space_set_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsServer \"space_set_param\"\n           '[Rid, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsServer.space_set_param"
  },
  {
    "path": "src/Godot/Core/PhysicsShapeQueryParameters.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PhysicsShapeQueryParameters\n       (Godot.Core.PhysicsShapeQueryParameters.get_collision_mask,\n        Godot.Core.PhysicsShapeQueryParameters.get_exclude,\n        Godot.Core.PhysicsShapeQueryParameters.get_margin,\n        Godot.Core.PhysicsShapeQueryParameters.get_shape_rid,\n        Godot.Core.PhysicsShapeQueryParameters.get_transform,\n        Godot.Core.PhysicsShapeQueryParameters.is_collide_with_areas_enabled,\n        Godot.Core.PhysicsShapeQueryParameters.is_collide_with_bodies_enabled,\n        Godot.Core.PhysicsShapeQueryParameters.set_collide_with_areas,\n        Godot.Core.PhysicsShapeQueryParameters.set_collide_with_bodies,\n        Godot.Core.PhysicsShapeQueryParameters.set_collision_mask,\n        Godot.Core.PhysicsShapeQueryParameters.set_exclude,\n        Godot.Core.PhysicsShapeQueryParameters.set_margin,\n        Godot.Core.PhysicsShapeQueryParameters.set_shape,\n        Godot.Core.PhysicsShapeQueryParameters.set_shape_rid,\n        Godot.Core.PhysicsShapeQueryParameters.set_transform)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\ninstance NodeProperty PhysicsShapeQueryParameters\n           \"collide_with_areas\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (is_collide_with_areas_enabled,\n             wrapDroppingSetter set_collide_with_areas, Nothing)\n\ninstance NodeProperty PhysicsShapeQueryParameters\n           \"collide_with_bodies\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (is_collide_with_bodies_enabled,\n             wrapDroppingSetter set_collide_with_bodies, Nothing)\n\ninstance NodeProperty PhysicsShapeQueryParameters \"collision_mask\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_collision_mask, wrapDroppingSetter set_collision_mask,\n             Nothing)\n\ninstance NodeProperty PhysicsShapeQueryParameters \"exclude\" Array\n           'False\n         where\n        nodeProperty\n          = (get_exclude, wrapDroppingSetter set_exclude, Nothing)\n\ninstance NodeProperty PhysicsShapeQueryParameters \"margin\" Float\n           'False\n         where\n        nodeProperty = (get_margin, wrapDroppingSetter set_margin, Nothing)\n\ninstance NodeProperty PhysicsShapeQueryParameters \"shape_rid\" Rid\n           'False\n         where\n        nodeProperty\n          = (get_shape_rid, wrapDroppingSetter set_shape_rid, Nothing)\n\ninstance NodeProperty PhysicsShapeQueryParameters \"transform\"\n           Transform\n           'False\n         where\n        nodeProperty\n          = (get_transform, wrapDroppingSetter set_transform, Nothing)\n\n{-# NOINLINE bindPhysicsShapeQueryParameters_get_collision_mask #-}\n\n-- | The physics layer(s) the query will take into account (as a bitmask). See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindPhysicsShapeQueryParameters_get_collision_mask :: MethodBind\nbindPhysicsShapeQueryParameters_get_collision_mask\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layer(s) the query will take into account (as a bitmask). See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nget_collision_mask ::\n                     (PhysicsShapeQueryParameters :< cls, Object :< cls) =>\n                     cls -> IO Int\nget_collision_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsShapeQueryParameters_get_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryParameters\n           \"get_collision_mask\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsShapeQueryParameters.get_collision_mask\n\n{-# NOINLINE bindPhysicsShapeQueryParameters_get_exclude #-}\n\n-- | The list of objects or object @RID@s that will be excluded from collisions.\nbindPhysicsShapeQueryParameters_get_exclude :: MethodBind\nbindPhysicsShapeQueryParameters_get_exclude\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"get_exclude\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The list of objects or object @RID@s that will be excluded from collisions.\nget_exclude ::\n              (PhysicsShapeQueryParameters :< cls, Object :< cls) =>\n              cls -> IO Array\nget_exclude cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsShapeQueryParameters_get_exclude\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryParameters \"get_exclude\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.PhysicsShapeQueryParameters.get_exclude\n\n{-# NOINLINE bindPhysicsShapeQueryParameters_get_margin #-}\n\n-- | The collision margin for the shape.\nbindPhysicsShapeQueryParameters_get_margin :: MethodBind\nbindPhysicsShapeQueryParameters_get_margin\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"get_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The collision margin for the shape.\nget_margin ::\n             (PhysicsShapeQueryParameters :< cls, Object :< cls) =>\n             cls -> IO Float\nget_margin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsShapeQueryParameters_get_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryParameters \"get_margin\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.PhysicsShapeQueryParameters.get_margin\n\n{-# NOINLINE bindPhysicsShapeQueryParameters_get_shape_rid #-}\n\n-- | The queried shape's @RID@. See also @method set_shape@.\nbindPhysicsShapeQueryParameters_get_shape_rid :: MethodBind\nbindPhysicsShapeQueryParameters_get_shape_rid\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"get_shape_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The queried shape's @RID@. See also @method set_shape@.\nget_shape_rid ::\n                (PhysicsShapeQueryParameters :< cls, Object :< cls) =>\n                cls -> IO Rid\nget_shape_rid cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsShapeQueryParameters_get_shape_rid\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryParameters \"get_shape_rid\" '[]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.PhysicsShapeQueryParameters.get_shape_rid\n\n{-# NOINLINE bindPhysicsShapeQueryParameters_get_transform #-}\n\n-- | The queried shape's transform matrix.\nbindPhysicsShapeQueryParameters_get_transform :: MethodBind\nbindPhysicsShapeQueryParameters_get_transform\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"get_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The queried shape's transform matrix.\nget_transform ::\n                (PhysicsShapeQueryParameters :< cls, Object :< cls) =>\n                cls -> IO Transform\nget_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsShapeQueryParameters_get_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryParameters \"get_transform\" '[]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.PhysicsShapeQueryParameters.get_transform\n\n{-# NOINLINE bindPhysicsShapeQueryParameters_is_collide_with_areas_enabled\n             #-}\n\n-- | If @true@, the query will take @Area@s into account.\nbindPhysicsShapeQueryParameters_is_collide_with_areas_enabled ::\n                                                              MethodBind\nbindPhysicsShapeQueryParameters_is_collide_with_areas_enabled\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"is_collide_with_areas_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the query will take @Area@s into account.\nis_collide_with_areas_enabled ::\n                                (PhysicsShapeQueryParameters :< cls, Object :< cls) =>\n                                cls -> IO Bool\nis_collide_with_areas_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsShapeQueryParameters_is_collide_with_areas_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryParameters\n           \"is_collide_with_areas_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsShapeQueryParameters.is_collide_with_areas_enabled\n\n{-# NOINLINE bindPhysicsShapeQueryParameters_is_collide_with_bodies_enabled\n             #-}\n\n-- | If @true@, the query will take @PhysicsBody@s into account.\nbindPhysicsShapeQueryParameters_is_collide_with_bodies_enabled ::\n                                                               MethodBind\nbindPhysicsShapeQueryParameters_is_collide_with_bodies_enabled\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"is_collide_with_bodies_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the query will take @PhysicsBody@s into account.\nis_collide_with_bodies_enabled ::\n                                 (PhysicsShapeQueryParameters :< cls, Object :< cls) =>\n                                 cls -> IO Bool\nis_collide_with_bodies_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsShapeQueryParameters_is_collide_with_bodies_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryParameters\n           \"is_collide_with_bodies_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsShapeQueryParameters.is_collide_with_bodies_enabled\n\n{-# NOINLINE bindPhysicsShapeQueryParameters_set_collide_with_areas\n             #-}\n\n-- | If @true@, the query will take @Area@s into account.\nbindPhysicsShapeQueryParameters_set_collide_with_areas ::\n                                                       MethodBind\nbindPhysicsShapeQueryParameters_set_collide_with_areas\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"set_collide_with_areas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the query will take @Area@s into account.\nset_collide_with_areas ::\n                         (PhysicsShapeQueryParameters :< cls, Object :< cls) =>\n                         cls -> Bool -> IO ()\nset_collide_with_areas cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsShapeQueryParameters_set_collide_with_areas\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryParameters\n           \"set_collide_with_areas\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.PhysicsShapeQueryParameters.set_collide_with_areas\n\n{-# NOINLINE bindPhysicsShapeQueryParameters_set_collide_with_bodies\n             #-}\n\n-- | If @true@, the query will take @PhysicsBody@s into account.\nbindPhysicsShapeQueryParameters_set_collide_with_bodies ::\n                                                        MethodBind\nbindPhysicsShapeQueryParameters_set_collide_with_bodies\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"set_collide_with_bodies\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the query will take @PhysicsBody@s into account.\nset_collide_with_bodies ::\n                          (PhysicsShapeQueryParameters :< cls, Object :< cls) =>\n                          cls -> Bool -> IO ()\nset_collide_with_bodies cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsShapeQueryParameters_set_collide_with_bodies\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryParameters\n           \"set_collide_with_bodies\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.PhysicsShapeQueryParameters.set_collide_with_bodies\n\n{-# NOINLINE bindPhysicsShapeQueryParameters_set_collision_mask #-}\n\n-- | The physics layer(s) the query will take into account (as a bitmask). See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindPhysicsShapeQueryParameters_set_collision_mask :: MethodBind\nbindPhysicsShapeQueryParameters_set_collision_mask\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layer(s) the query will take into account (as a bitmask). See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nset_collision_mask ::\n                     (PhysicsShapeQueryParameters :< cls, Object :< cls) =>\n                     cls -> Int -> IO ()\nset_collision_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsShapeQueryParameters_set_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryParameters\n           \"set_collision_mask\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.PhysicsShapeQueryParameters.set_collision_mask\n\n{-# NOINLINE bindPhysicsShapeQueryParameters_set_exclude #-}\n\n-- | The list of objects or object @RID@s that will be excluded from collisions.\nbindPhysicsShapeQueryParameters_set_exclude :: MethodBind\nbindPhysicsShapeQueryParameters_set_exclude\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"set_exclude\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The list of objects or object @RID@s that will be excluded from collisions.\nset_exclude ::\n              (PhysicsShapeQueryParameters :< cls, Object :< cls) =>\n              cls -> Array -> IO ()\nset_exclude cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsShapeQueryParameters_set_exclude\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryParameters \"set_exclude\"\n           '[Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsShapeQueryParameters.set_exclude\n\n{-# NOINLINE bindPhysicsShapeQueryParameters_set_margin #-}\n\n-- | The collision margin for the shape.\nbindPhysicsShapeQueryParameters_set_margin :: MethodBind\nbindPhysicsShapeQueryParameters_set_margin\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"set_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The collision margin for the shape.\nset_margin ::\n             (PhysicsShapeQueryParameters :< cls, Object :< cls) =>\n             cls -> Float -> IO ()\nset_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsShapeQueryParameters_set_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryParameters \"set_margin\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsShapeQueryParameters.set_margin\n\n{-# NOINLINE bindPhysicsShapeQueryParameters_set_shape #-}\n\n-- | Sets the @Shape@ that will be used for collision/intersection queries.\nbindPhysicsShapeQueryParameters_set_shape :: MethodBind\nbindPhysicsShapeQueryParameters_set_shape\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"set_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Shape@ that will be used for collision/intersection queries.\nset_shape ::\n            (PhysicsShapeQueryParameters :< cls, Object :< cls) =>\n            cls -> Resource -> IO ()\nset_shape cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsShapeQueryParameters_set_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryParameters \"set_shape\"\n           '[Resource]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsShapeQueryParameters.set_shape\n\n{-# NOINLINE bindPhysicsShapeQueryParameters_set_shape_rid #-}\n\n-- | The queried shape's @RID@. See also @method set_shape@.\nbindPhysicsShapeQueryParameters_set_shape_rid :: MethodBind\nbindPhysicsShapeQueryParameters_set_shape_rid\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"set_shape_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The queried shape's @RID@. See also @method set_shape@.\nset_shape_rid ::\n                (PhysicsShapeQueryParameters :< cls, Object :< cls) =>\n                cls -> Rid -> IO ()\nset_shape_rid cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsShapeQueryParameters_set_shape_rid\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryParameters \"set_shape_rid\"\n           '[Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsShapeQueryParameters.set_shape_rid\n\n{-# NOINLINE bindPhysicsShapeQueryParameters_set_transform #-}\n\n-- | The queried shape's transform matrix.\nbindPhysicsShapeQueryParameters_set_transform :: MethodBind\nbindPhysicsShapeQueryParameters_set_transform\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryParameters\" $\n        \\ clsNamePtr ->\n          withCString \"set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The queried shape's transform matrix.\nset_transform ::\n                (PhysicsShapeQueryParameters :< cls, Object :< cls) =>\n                cls -> Transform -> IO ()\nset_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsShapeQueryParameters_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryParameters \"set_transform\"\n           '[Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PhysicsShapeQueryParameters.set_transform"
  },
  {
    "path": "src/Godot/Core/PhysicsShapeQueryResult.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PhysicsShapeQueryResult\n       (Godot.Core.PhysicsShapeQueryResult.get_result_count,\n        Godot.Core.PhysicsShapeQueryResult.get_result_object,\n        Godot.Core.PhysicsShapeQueryResult.get_result_object_id,\n        Godot.Core.PhysicsShapeQueryResult.get_result_object_shape,\n        Godot.Core.PhysicsShapeQueryResult.get_result_rid)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindPhysicsShapeQueryResult_get_result_count #-}\n\n-- | Returns the number of objects that intersected with the shape.\nbindPhysicsShapeQueryResult_get_result_count :: MethodBind\nbindPhysicsShapeQueryResult_get_result_count\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_result_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of objects that intersected with the shape.\nget_result_count ::\n                   (PhysicsShapeQueryResult :< cls, Object :< cls) => cls -> IO Int\nget_result_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsShapeQueryResult_get_result_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryResult \"get_result_count\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PhysicsShapeQueryResult.get_result_count\n\n{-# NOINLINE bindPhysicsShapeQueryResult_get_result_object #-}\n\n-- | Returns the @Object@ that intersected with the shape at index @idx@.\nbindPhysicsShapeQueryResult_get_result_object :: MethodBind\nbindPhysicsShapeQueryResult_get_result_object\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_result_object\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Object@ that intersected with the shape at index @idx@.\nget_result_object ::\n                    (PhysicsShapeQueryResult :< cls, Object :< cls) =>\n                    cls -> Int -> IO Object\nget_result_object cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsShapeQueryResult_get_result_object\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryResult \"get_result_object\"\n           '[Int]\n           (IO Object)\n         where\n        nodeMethod = Godot.Core.PhysicsShapeQueryResult.get_result_object\n\n{-# NOINLINE bindPhysicsShapeQueryResult_get_result_object_id #-}\n\n-- | Returns the instance ID of the @Object@ that intersected with the shape at index @idx@.\nbindPhysicsShapeQueryResult_get_result_object_id :: MethodBind\nbindPhysicsShapeQueryResult_get_result_object_id\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_result_object_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the instance ID of the @Object@ that intersected with the shape at index @idx@.\nget_result_object_id ::\n                       (PhysicsShapeQueryResult :< cls, Object :< cls) =>\n                       cls -> Int -> IO Int\nget_result_object_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsShapeQueryResult_get_result_object_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryResult \"get_result_object_id\"\n           '[Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsShapeQueryResult.get_result_object_id\n\n{-# NOINLINE bindPhysicsShapeQueryResult_get_result_object_shape\n             #-}\n\n-- | Returns the child index of the object's @Shape@ that intersected with the shape at index @idx@.\nbindPhysicsShapeQueryResult_get_result_object_shape :: MethodBind\nbindPhysicsShapeQueryResult_get_result_object_shape\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_result_object_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the child index of the object's @Shape@ that intersected with the shape at index @idx@.\nget_result_object_shape ::\n                          (PhysicsShapeQueryResult :< cls, Object :< cls) =>\n                          cls -> Int -> IO Int\nget_result_object_shape cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPhysicsShapeQueryResult_get_result_object_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryResult\n           \"get_result_object_shape\"\n           '[Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.PhysicsShapeQueryResult.get_result_object_shape\n\n{-# NOINLINE bindPhysicsShapeQueryResult_get_result_rid #-}\n\n-- | Returns the @RID@ of the object that intersected with the shape at index @idx@.\nbindPhysicsShapeQueryResult_get_result_rid :: MethodBind\nbindPhysicsShapeQueryResult_get_result_rid\n  = unsafePerformIO $\n      withCString \"PhysicsShapeQueryResult\" $\n        \\ clsNamePtr ->\n          withCString \"get_result_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @RID@ of the object that intersected with the shape at index @idx@.\nget_result_rid ::\n                 (PhysicsShapeQueryResult :< cls, Object :< cls) =>\n                 cls -> Int -> IO Rid\nget_result_rid cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPhysicsShapeQueryResult_get_result_rid\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PhysicsShapeQueryResult \"get_result_rid\" '[Int]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.PhysicsShapeQueryResult.get_result_rid"
  },
  {
    "path": "src/Godot/Core/PinJoint.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PinJoint\n       (Godot.Core.PinJoint._PARAM_IMPULSE_CLAMP,\n        Godot.Core.PinJoint._PARAM_DAMPING,\n        Godot.Core.PinJoint._PARAM_BIAS, Godot.Core.PinJoint.get_param,\n        Godot.Core.PinJoint.set_param)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Joint()\n\n_PARAM_IMPULSE_CLAMP :: Int\n_PARAM_IMPULSE_CLAMP = 2\n\n_PARAM_DAMPING :: Int\n_PARAM_DAMPING = 1\n\n_PARAM_BIAS :: Int\n_PARAM_BIAS = 0\n\ninstance NodeProperty PinJoint \"params/bias\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_param, wrapIndexedSetter 0 set_param,\n             Nothing)\n\ninstance NodeProperty PinJoint \"params/damping\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_param, wrapIndexedSetter 1 set_param,\n             Nothing)\n\ninstance NodeProperty PinJoint \"params/impulse_clamp\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_param, wrapIndexedSetter 2 set_param,\n             Nothing)\n\n{-# NOINLINE bindPinJoint_get_param #-}\n\n-- | Returns the value of the specified parameter.\nbindPinJoint_get_param :: MethodBind\nbindPinJoint_get_param\n  = unsafePerformIO $\n      withCString \"PinJoint\" $\n        \\ clsNamePtr ->\n          withCString \"get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of the specified parameter.\nget_param ::\n            (PinJoint :< cls, Object :< cls) => cls -> Int -> IO Float\nget_param cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPinJoint_get_param (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PinJoint \"get_param\" '[Int] (IO Float) where\n        nodeMethod = Godot.Core.PinJoint.get_param\n\n{-# NOINLINE bindPinJoint_set_param #-}\n\n-- | Sets the value of the specified parameter.\nbindPinJoint_set_param :: MethodBind\nbindPinJoint_set_param\n  = unsafePerformIO $\n      withCString \"PinJoint\" $\n        \\ clsNamePtr ->\n          withCString \"set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the value of the specified parameter.\nset_param ::\n            (PinJoint :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\nset_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPinJoint_set_param (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PinJoint \"set_param\" '[Int, Float] (IO ())\n         where\n        nodeMethod = Godot.Core.PinJoint.set_param"
  },
  {
    "path": "src/Godot/Core/PinJoint2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PinJoint2D\n       (Godot.Core.PinJoint2D.get_softness,\n        Godot.Core.PinJoint2D.set_softness)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Joint2D()\n\ninstance NodeProperty PinJoint2D \"softness\" Float 'False where\n        nodeProperty\n          = (get_softness, wrapDroppingSetter set_softness, Nothing)\n\n{-# NOINLINE bindPinJoint2D_get_softness #-}\n\n-- | The higher this value, the more the bond to the pinned partner can flex.\nbindPinJoint2D_get_softness :: MethodBind\nbindPinJoint2D_get_softness\n  = unsafePerformIO $\n      withCString \"PinJoint2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_softness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The higher this value, the more the bond to the pinned partner can flex.\nget_softness ::\n               (PinJoint2D :< cls, Object :< cls) => cls -> IO Float\nget_softness cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPinJoint2D_get_softness (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PinJoint2D \"get_softness\" '[] (IO Float) where\n        nodeMethod = Godot.Core.PinJoint2D.get_softness\n\n{-# NOINLINE bindPinJoint2D_set_softness #-}\n\n-- | The higher this value, the more the bond to the pinned partner can flex.\nbindPinJoint2D_set_softness :: MethodBind\nbindPinJoint2D_set_softness\n  = unsafePerformIO $\n      withCString \"PinJoint2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_softness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The higher this value, the more the bond to the pinned partner can flex.\nset_softness ::\n               (PinJoint2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_softness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPinJoint2D_set_softness (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PinJoint2D \"set_softness\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.PinJoint2D.set_softness"
  },
  {
    "path": "src/Godot/Core/PlaneMesh.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PlaneMesh\n       (Godot.Core.PlaneMesh.get_size,\n        Godot.Core.PlaneMesh.get_subdivide_depth,\n        Godot.Core.PlaneMesh.get_subdivide_width,\n        Godot.Core.PlaneMesh.set_size,\n        Godot.Core.PlaneMesh.set_subdivide_depth,\n        Godot.Core.PlaneMesh.set_subdivide_width)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PrimitiveMesh()\n\ninstance NodeProperty PlaneMesh \"size\" Vector2 'False where\n        nodeProperty = (get_size, wrapDroppingSetter set_size, Nothing)\n\ninstance NodeProperty PlaneMesh \"subdivide_depth\" Int 'False where\n        nodeProperty\n          = (get_subdivide_depth, wrapDroppingSetter set_subdivide_depth,\n             Nothing)\n\ninstance NodeProperty PlaneMesh \"subdivide_width\" Int 'False where\n        nodeProperty\n          = (get_subdivide_width, wrapDroppingSetter set_subdivide_width,\n             Nothing)\n\n{-# NOINLINE bindPlaneMesh_get_size #-}\n\n-- | Size of the generated plane.\nbindPlaneMesh_get_size :: MethodBind\nbindPlaneMesh_get_size\n  = unsafePerformIO $\n      withCString \"PlaneMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Size of the generated plane.\nget_size :: (PlaneMesh :< cls, Object :< cls) => cls -> IO Vector2\nget_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPlaneMesh_get_size (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PlaneMesh \"get_size\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.PlaneMesh.get_size\n\n{-# NOINLINE bindPlaneMesh_get_subdivide_depth #-}\n\n-- | Number of subdivision along the Z axis.\nbindPlaneMesh_get_subdivide_depth :: MethodBind\nbindPlaneMesh_get_subdivide_depth\n  = unsafePerformIO $\n      withCString \"PlaneMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_subdivide_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of subdivision along the Z axis.\nget_subdivide_depth ::\n                      (PlaneMesh :< cls, Object :< cls) => cls -> IO Int\nget_subdivide_depth cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPlaneMesh_get_subdivide_depth\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PlaneMesh \"get_subdivide_depth\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.PlaneMesh.get_subdivide_depth\n\n{-# NOINLINE bindPlaneMesh_get_subdivide_width #-}\n\n-- | Number of subdivision along the X axis.\nbindPlaneMesh_get_subdivide_width :: MethodBind\nbindPlaneMesh_get_subdivide_width\n  = unsafePerformIO $\n      withCString \"PlaneMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_subdivide_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of subdivision along the X axis.\nget_subdivide_width ::\n                      (PlaneMesh :< cls, Object :< cls) => cls -> IO Int\nget_subdivide_width cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPlaneMesh_get_subdivide_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PlaneMesh \"get_subdivide_width\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.PlaneMesh.get_subdivide_width\n\n{-# NOINLINE bindPlaneMesh_set_size #-}\n\n-- | Size of the generated plane.\nbindPlaneMesh_set_size :: MethodBind\nbindPlaneMesh_set_size\n  = unsafePerformIO $\n      withCString \"PlaneMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Size of the generated plane.\nset_size ::\n           (PlaneMesh :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPlaneMesh_set_size (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PlaneMesh \"set_size\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.PlaneMesh.set_size\n\n{-# NOINLINE bindPlaneMesh_set_subdivide_depth #-}\n\n-- | Number of subdivision along the Z axis.\nbindPlaneMesh_set_subdivide_depth :: MethodBind\nbindPlaneMesh_set_subdivide_depth\n  = unsafePerformIO $\n      withCString \"PlaneMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_subdivide_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of subdivision along the Z axis.\nset_subdivide_depth ::\n                      (PlaneMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_subdivide_depth cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPlaneMesh_set_subdivide_depth\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PlaneMesh \"set_subdivide_depth\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.PlaneMesh.set_subdivide_depth\n\n{-# NOINLINE bindPlaneMesh_set_subdivide_width #-}\n\n-- | Number of subdivision along the X axis.\nbindPlaneMesh_set_subdivide_width :: MethodBind\nbindPlaneMesh_set_subdivide_width\n  = unsafePerformIO $\n      withCString \"PlaneMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_subdivide_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of subdivision along the X axis.\nset_subdivide_width ::\n                      (PlaneMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_subdivide_width cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPlaneMesh_set_subdivide_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PlaneMesh \"set_subdivide_width\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.PlaneMesh.set_subdivide_width"
  },
  {
    "path": "src/Godot/Core/PlaneShape.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PlaneShape\n       (Godot.Core.PlaneShape.get_plane, Godot.Core.PlaneShape.set_plane)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Shape()\n\ninstance NodeProperty PlaneShape \"plane\" Plane 'False where\n        nodeProperty = (get_plane, wrapDroppingSetter set_plane, Nothing)\n\n{-# NOINLINE bindPlaneShape_get_plane #-}\n\n-- | The @Plane@ used by the @PlaneShape@ for collision.\nbindPlaneShape_get_plane :: MethodBind\nbindPlaneShape_get_plane\n  = unsafePerformIO $\n      withCString \"PlaneShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_plane\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Plane@ used by the @PlaneShape@ for collision.\nget_plane :: (PlaneShape :< cls, Object :< cls) => cls -> IO Plane\nget_plane cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPlaneShape_get_plane (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PlaneShape \"get_plane\" '[] (IO Plane) where\n        nodeMethod = Godot.Core.PlaneShape.get_plane\n\n{-# NOINLINE bindPlaneShape_set_plane #-}\n\n-- | The @Plane@ used by the @PlaneShape@ for collision.\nbindPlaneShape_set_plane :: MethodBind\nbindPlaneShape_set_plane\n  = unsafePerformIO $\n      withCString \"PlaneShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_plane\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Plane@ used by the @PlaneShape@ for collision.\nset_plane ::\n            (PlaneShape :< cls, Object :< cls) => cls -> Plane -> IO ()\nset_plane cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPlaneShape_set_plane (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PlaneShape \"set_plane\" '[Plane] (IO ()) where\n        nodeMethod = Godot.Core.PlaneShape.set_plane"
  },
  {
    "path": "src/Godot/Core/PluginScript.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PluginScript (Godot.Core.PluginScript.new) where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Script()\n\n{-# NOINLINE bindPluginScript_new #-}\n\nbindPluginScript_new :: MethodBind\nbindPluginScript_new\n  = unsafePerformIO $\n      withCString \"PluginScript\" $\n        \\ clsNamePtr ->\n          withCString \"new\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nnew ::\n      (PluginScript :< cls, Object :< cls) =>\n      cls -> [Variant 'GodotTy] -> IO GodotVariant\nnew cls varargs\n  = withVariantArray ([] ++ varargs)\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPluginScript_new (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PluginScript \"new\" '[[Variant 'GodotTy]]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.PluginScript.new"
  },
  {
    "path": "src/Godot/Core/PointMesh.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PointMesh () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PrimitiveMesh()"
  },
  {
    "path": "src/Godot/Core/Polygon2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Polygon2D\n       (Godot.Core.Polygon2D._get_bones, Godot.Core.Polygon2D._set_bones,\n        Godot.Core.Polygon2D._skeleton_bone_setup_changed,\n        Godot.Core.Polygon2D.add_bone, Godot.Core.Polygon2D.clear_bones,\n        Godot.Core.Polygon2D.erase_bone,\n        Godot.Core.Polygon2D.get_antialiased,\n        Godot.Core.Polygon2D.get_bone_count,\n        Godot.Core.Polygon2D.get_bone_path,\n        Godot.Core.Polygon2D.get_bone_weights,\n        Godot.Core.Polygon2D.get_color,\n        Godot.Core.Polygon2D.get_internal_vertex_count,\n        Godot.Core.Polygon2D.get_invert,\n        Godot.Core.Polygon2D.get_invert_border,\n        Godot.Core.Polygon2D.get_offset, Godot.Core.Polygon2D.get_polygon,\n        Godot.Core.Polygon2D.get_polygons,\n        Godot.Core.Polygon2D.get_skeleton,\n        Godot.Core.Polygon2D.get_texture,\n        Godot.Core.Polygon2D.get_texture_offset,\n        Godot.Core.Polygon2D.get_texture_rotation,\n        Godot.Core.Polygon2D.get_texture_rotation_degrees,\n        Godot.Core.Polygon2D.get_texture_scale,\n        Godot.Core.Polygon2D.get_uv,\n        Godot.Core.Polygon2D.get_vertex_colors,\n        Godot.Core.Polygon2D.set_antialiased,\n        Godot.Core.Polygon2D.set_bone_path,\n        Godot.Core.Polygon2D.set_bone_weights,\n        Godot.Core.Polygon2D.set_color,\n        Godot.Core.Polygon2D.set_internal_vertex_count,\n        Godot.Core.Polygon2D.set_invert,\n        Godot.Core.Polygon2D.set_invert_border,\n        Godot.Core.Polygon2D.set_offset, Godot.Core.Polygon2D.set_polygon,\n        Godot.Core.Polygon2D.set_polygons,\n        Godot.Core.Polygon2D.set_skeleton,\n        Godot.Core.Polygon2D.set_texture,\n        Godot.Core.Polygon2D.set_texture_offset,\n        Godot.Core.Polygon2D.set_texture_rotation,\n        Godot.Core.Polygon2D.set_texture_rotation_degrees,\n        Godot.Core.Polygon2D.set_texture_scale,\n        Godot.Core.Polygon2D.set_uv,\n        Godot.Core.Polygon2D.set_vertex_colors)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\ninstance NodeProperty Polygon2D \"antialiased\" Bool 'False where\n        nodeProperty\n          = (get_antialiased, wrapDroppingSetter set_antialiased, Nothing)\n\ninstance NodeProperty Polygon2D \"bones\" Array 'False where\n        nodeProperty = (_get_bones, wrapDroppingSetter _set_bones, Nothing)\n\ninstance NodeProperty Polygon2D \"color\" Color 'False where\n        nodeProperty = (get_color, wrapDroppingSetter set_color, Nothing)\n\ninstance NodeProperty Polygon2D \"internal_vertex_count\" Int 'False\n         where\n        nodeProperty\n          = (get_internal_vertex_count,\n             wrapDroppingSetter set_internal_vertex_count, Nothing)\n\ninstance NodeProperty Polygon2D \"invert_border\" Float 'False where\n        nodeProperty\n          = (get_invert_border, wrapDroppingSetter set_invert_border,\n             Nothing)\n\ninstance NodeProperty Polygon2D \"invert_enable\" Bool 'False where\n        nodeProperty = (get_invert, wrapDroppingSetter set_invert, Nothing)\n\ninstance NodeProperty Polygon2D \"offset\" Vector2 'False where\n        nodeProperty = (get_offset, wrapDroppingSetter set_offset, Nothing)\n\ninstance NodeProperty Polygon2D \"polygon\" PoolVector2Array 'False\n         where\n        nodeProperty\n          = (get_polygon, wrapDroppingSetter set_polygon, Nothing)\n\ninstance NodeProperty Polygon2D \"polygons\" Array 'False where\n        nodeProperty\n          = (get_polygons, wrapDroppingSetter set_polygons, Nothing)\n\ninstance NodeProperty Polygon2D \"skeleton\" NodePath 'False where\n        nodeProperty\n          = (get_skeleton, wrapDroppingSetter set_skeleton, Nothing)\n\ninstance NodeProperty Polygon2D \"texture\" Texture 'False where\n        nodeProperty\n          = (get_texture, wrapDroppingSetter set_texture, Nothing)\n\ninstance NodeProperty Polygon2D \"texture_offset\" Vector2 'False\n         where\n        nodeProperty\n          = (get_texture_offset, wrapDroppingSetter set_texture_offset,\n             Nothing)\n\ninstance NodeProperty Polygon2D \"texture_rotation\" Float 'False\n         where\n        nodeProperty\n          = (get_texture_rotation, wrapDroppingSetter set_texture_rotation,\n             Nothing)\n\ninstance NodeProperty Polygon2D \"texture_rotation_degrees\" Float\n           'False\n         where\n        nodeProperty\n          = (get_texture_rotation_degrees,\n             wrapDroppingSetter set_texture_rotation_degrees, Nothing)\n\ninstance NodeProperty Polygon2D \"texture_scale\" Vector2 'False\n         where\n        nodeProperty\n          = (get_texture_scale, wrapDroppingSetter set_texture_scale,\n             Nothing)\n\ninstance NodeProperty Polygon2D \"uv\" PoolVector2Array 'False where\n        nodeProperty = (get_uv, wrapDroppingSetter set_uv, Nothing)\n\ninstance NodeProperty Polygon2D \"vertex_colors\" PoolColorArray\n           'False\n         where\n        nodeProperty\n          = (get_vertex_colors, wrapDroppingSetter set_vertex_colors,\n             Nothing)\n\n{-# NOINLINE bindPolygon2D__get_bones #-}\n\nbindPolygon2D__get_bones :: MethodBind\nbindPolygon2D__get_bones\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"_get_bones\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_bones :: (Polygon2D :< cls, Object :< cls) => cls -> IO Array\n_get_bones cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D__get_bones (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"_get_bones\" '[] (IO Array) where\n        nodeMethod = Godot.Core.Polygon2D._get_bones\n\n{-# NOINLINE bindPolygon2D__set_bones #-}\n\nbindPolygon2D__set_bones :: MethodBind\nbindPolygon2D__set_bones\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"_set_bones\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_bones ::\n             (Polygon2D :< cls, Object :< cls) => cls -> Array -> IO ()\n_set_bones cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D__set_bones (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"_set_bones\" '[Array] (IO ()) where\n        nodeMethod = Godot.Core.Polygon2D._set_bones\n\n{-# NOINLINE bindPolygon2D__skeleton_bone_setup_changed #-}\n\nbindPolygon2D__skeleton_bone_setup_changed :: MethodBind\nbindPolygon2D__skeleton_bone_setup_changed\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"_skeleton_bone_setup_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_skeleton_bone_setup_changed ::\n                               (Polygon2D :< cls, Object :< cls) => cls -> IO ()\n_skeleton_bone_setup_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D__skeleton_bone_setup_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"_skeleton_bone_setup_changed\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Polygon2D._skeleton_bone_setup_changed\n\n{-# NOINLINE bindPolygon2D_add_bone #-}\n\n-- | Adds a bone with the specified @path@ and @weights@.\nbindPolygon2D_add_bone :: MethodBind\nbindPolygon2D_add_bone\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"add_bone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a bone with the specified @path@ and @weights@.\nadd_bone ::\n           (Polygon2D :< cls, Object :< cls) =>\n           cls -> NodePath -> PoolRealArray -> IO ()\nadd_bone cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_add_bone (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"add_bone\" '[NodePath, PoolRealArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Polygon2D.add_bone\n\n{-# NOINLINE bindPolygon2D_clear_bones #-}\n\n-- | Removes all bones from this @Polygon2D@.\nbindPolygon2D_clear_bones :: MethodBind\nbindPolygon2D_clear_bones\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"clear_bones\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all bones from this @Polygon2D@.\nclear_bones :: (Polygon2D :< cls, Object :< cls) => cls -> IO ()\nclear_bones cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_clear_bones (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"clear_bones\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Polygon2D.clear_bones\n\n{-# NOINLINE bindPolygon2D_erase_bone #-}\n\n-- | Removes the specified bone from this @Polygon2D@.\nbindPolygon2D_erase_bone :: MethodBind\nbindPolygon2D_erase_bone\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"erase_bone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the specified bone from this @Polygon2D@.\nerase_bone ::\n             (Polygon2D :< cls, Object :< cls) => cls -> Int -> IO ()\nerase_bone cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_erase_bone (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"erase_bone\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Polygon2D.erase_bone\n\n{-# NOINLINE bindPolygon2D_get_antialiased #-}\n\n-- | If @true@, polygon edges will be anti-aliased.\nbindPolygon2D_get_antialiased :: MethodBind\nbindPolygon2D_get_antialiased\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_antialiased\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, polygon edges will be anti-aliased.\nget_antialiased ::\n                  (Polygon2D :< cls, Object :< cls) => cls -> IO Bool\nget_antialiased cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_antialiased (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_antialiased\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Polygon2D.get_antialiased\n\n{-# NOINLINE bindPolygon2D_get_bone_count #-}\n\n-- | Returns the number of bones in this @Polygon2D@.\nbindPolygon2D_get_bone_count :: MethodBind\nbindPolygon2D_get_bone_count\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_bone_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of bones in this @Polygon2D@.\nget_bone_count ::\n                 (Polygon2D :< cls, Object :< cls) => cls -> IO Int\nget_bone_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_bone_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_bone_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Polygon2D.get_bone_count\n\n{-# NOINLINE bindPolygon2D_get_bone_path #-}\n\n-- | Returns the path to the node associated with the specified bone.\nbindPolygon2D_get_bone_path :: MethodBind\nbindPolygon2D_get_bone_path\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_bone_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the path to the node associated with the specified bone.\nget_bone_path ::\n                (Polygon2D :< cls, Object :< cls) => cls -> Int -> IO NodePath\nget_bone_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_bone_path (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_bone_path\" '[Int] (IO NodePath)\n         where\n        nodeMethod = Godot.Core.Polygon2D.get_bone_path\n\n{-# NOINLINE bindPolygon2D_get_bone_weights #-}\n\n-- | Returns the height values of the specified bone.\nbindPolygon2D_get_bone_weights :: MethodBind\nbindPolygon2D_get_bone_weights\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_bone_weights\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the height values of the specified bone.\nget_bone_weights ::\n                   (Polygon2D :< cls, Object :< cls) => cls -> Int -> IO PoolRealArray\nget_bone_weights cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_bone_weights (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_bone_weights\" '[Int]\n           (IO PoolRealArray)\n         where\n        nodeMethod = Godot.Core.Polygon2D.get_bone_weights\n\n{-# NOINLINE bindPolygon2D_get_color #-}\n\n-- | The polygon's fill color. If @texture@ is defined, it will be multiplied by this color. It will also be the default color for vertices not set in @vertex_colors@.\nbindPolygon2D_get_color :: MethodBind\nbindPolygon2D_get_color\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The polygon's fill color. If @texture@ is defined, it will be multiplied by this color. It will also be the default color for vertices not set in @vertex_colors@.\nget_color :: (Polygon2D :< cls, Object :< cls) => cls -> IO Color\nget_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_color (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_color\" '[] (IO Color) where\n        nodeMethod = Godot.Core.Polygon2D.get_color\n\n{-# NOINLINE bindPolygon2D_get_internal_vertex_count #-}\n\nbindPolygon2D_get_internal_vertex_count :: MethodBind\nbindPolygon2D_get_internal_vertex_count\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_internal_vertex_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_internal_vertex_count ::\n                            (Polygon2D :< cls, Object :< cls) => cls -> IO Int\nget_internal_vertex_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_internal_vertex_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_internal_vertex_count\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Polygon2D.get_internal_vertex_count\n\n{-# NOINLINE bindPolygon2D_get_invert #-}\n\n-- | If @true@, polygon will be inverted, containing the area outside the defined points and extending to the @invert_border@.\nbindPolygon2D_get_invert :: MethodBind\nbindPolygon2D_get_invert\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_invert\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, polygon will be inverted, containing the area outside the defined points and extending to the @invert_border@.\nget_invert :: (Polygon2D :< cls, Object :< cls) => cls -> IO Bool\nget_invert cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_invert (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_invert\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Polygon2D.get_invert\n\n{-# NOINLINE bindPolygon2D_get_invert_border #-}\n\n-- | Added padding applied to the bounding box when using @invert@. Setting this value too small may result in a \"Bad Polygon\" error.\nbindPolygon2D_get_invert_border :: MethodBind\nbindPolygon2D_get_invert_border\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_invert_border\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Added padding applied to the bounding box when using @invert@. Setting this value too small may result in a \"Bad Polygon\" error.\nget_invert_border ::\n                    (Polygon2D :< cls, Object :< cls) => cls -> IO Float\nget_invert_border cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_invert_border (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_invert_border\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Polygon2D.get_invert_border\n\n{-# NOINLINE bindPolygon2D_get_offset #-}\n\n-- | The offset applied to each vertex.\nbindPolygon2D_get_offset :: MethodBind\nbindPolygon2D_get_offset\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The offset applied to each vertex.\nget_offset ::\n             (Polygon2D :< cls, Object :< cls) => cls -> IO Vector2\nget_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_offset (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_offset\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.Polygon2D.get_offset\n\n{-# NOINLINE bindPolygon2D_get_polygon #-}\n\n-- | The polygon's list of vertices. The final point will be connected to the first.\n--   \t\t\t__Note:__ This returns a copy of the @PoolVector2Array@ rather than a reference.\nbindPolygon2D_get_polygon :: MethodBind\nbindPolygon2D_get_polygon\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The polygon's list of vertices. The final point will be connected to the first.\n--   \t\t\t__Note:__ This returns a copy of the @PoolVector2Array@ rather than a reference.\nget_polygon ::\n              (Polygon2D :< cls, Object :< cls) => cls -> IO PoolVector2Array\nget_polygon cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_polygon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_polygon\" '[]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.Polygon2D.get_polygon\n\n{-# NOINLINE bindPolygon2D_get_polygons #-}\n\nbindPolygon2D_get_polygons :: MethodBind\nbindPolygon2D_get_polygons\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_polygons\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_polygons ::\n               (Polygon2D :< cls, Object :< cls) => cls -> IO Array\nget_polygons cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_polygons (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_polygons\" '[] (IO Array) where\n        nodeMethod = Godot.Core.Polygon2D.get_polygons\n\n{-# NOINLINE bindPolygon2D_get_skeleton #-}\n\nbindPolygon2D_get_skeleton :: MethodBind\nbindPolygon2D_get_skeleton\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_skeleton\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_skeleton ::\n               (Polygon2D :< cls, Object :< cls) => cls -> IO NodePath\nget_skeleton cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_skeleton (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_skeleton\" '[] (IO NodePath)\n         where\n        nodeMethod = Godot.Core.Polygon2D.get_skeleton\n\n{-# NOINLINE bindPolygon2D_get_texture #-}\n\n-- | The polygon's fill texture. Use @uv@ to set texture coordinates.\nbindPolygon2D_get_texture :: MethodBind\nbindPolygon2D_get_texture\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The polygon's fill texture. Use @uv@ to set texture coordinates.\nget_texture ::\n              (Polygon2D :< cls, Object :< cls) => cls -> IO Texture\nget_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_texture\" '[] (IO Texture) where\n        nodeMethod = Godot.Core.Polygon2D.get_texture\n\n{-# NOINLINE bindPolygon2D_get_texture_offset #-}\n\n-- | Amount to offset the polygon's @texture@. If @(0, 0)@ the texture's origin (its top-left corner) will be placed at the polygon's @position@.\nbindPolygon2D_get_texture_offset :: MethodBind\nbindPolygon2D_get_texture_offset\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount to offset the polygon's @texture@. If @(0, 0)@ the texture's origin (its top-left corner) will be placed at the polygon's @position@.\nget_texture_offset ::\n                     (Polygon2D :< cls, Object :< cls) => cls -> IO Vector2\nget_texture_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_texture_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_texture_offset\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Polygon2D.get_texture_offset\n\n{-# NOINLINE bindPolygon2D_get_texture_rotation #-}\n\n-- | The texture's rotation in radians.\nbindPolygon2D_get_texture_rotation :: MethodBind\nbindPolygon2D_get_texture_rotation\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The texture's rotation in radians.\nget_texture_rotation ::\n                       (Polygon2D :< cls, Object :< cls) => cls -> IO Float\nget_texture_rotation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_texture_rotation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_texture_rotation\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Polygon2D.get_texture_rotation\n\n{-# NOINLINE bindPolygon2D_get_texture_rotation_degrees #-}\n\n-- | The texture's rotation in degrees.\nbindPolygon2D_get_texture_rotation_degrees :: MethodBind\nbindPolygon2D_get_texture_rotation_degrees\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture_rotation_degrees\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The texture's rotation in degrees.\nget_texture_rotation_degrees ::\n                               (Polygon2D :< cls, Object :< cls) => cls -> IO Float\nget_texture_rotation_degrees cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_texture_rotation_degrees\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_texture_rotation_degrees\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.Polygon2D.get_texture_rotation_degrees\n\n{-# NOINLINE bindPolygon2D_get_texture_scale #-}\n\n-- | Amount to multiply the @uv@ coordinates when using a @texture@. Larger values make the texture smaller, and vice versa.\nbindPolygon2D_get_texture_scale :: MethodBind\nbindPolygon2D_get_texture_scale\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount to multiply the @uv@ coordinates when using a @texture@. Larger values make the texture smaller, and vice versa.\nget_texture_scale ::\n                    (Polygon2D :< cls, Object :< cls) => cls -> IO Vector2\nget_texture_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_texture_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_texture_scale\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Polygon2D.get_texture_scale\n\n{-# NOINLINE bindPolygon2D_get_uv #-}\n\n-- | Texture coordinates for each vertex of the polygon. There should be one @uv@ per polygon vertex. If there are fewer, undefined vertices will use @(0, 0)@.\nbindPolygon2D_get_uv :: MethodBind\nbindPolygon2D_get_uv\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_uv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Texture coordinates for each vertex of the polygon. There should be one @uv@ per polygon vertex. If there are fewer, undefined vertices will use @(0, 0)@.\nget_uv ::\n         (Polygon2D :< cls, Object :< cls) => cls -> IO PoolVector2Array\nget_uv cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_uv (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_uv\" '[] (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.Polygon2D.get_uv\n\n{-# NOINLINE bindPolygon2D_get_vertex_colors #-}\n\n-- | Color for each vertex. Colors are interpolated between vertices, resulting in smooth gradients. There should be one per polygon vertex. If there are fewer, undefined vertices will use @color@.\nbindPolygon2D_get_vertex_colors :: MethodBind\nbindPolygon2D_get_vertex_colors\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_vertex_colors\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Color for each vertex. Colors are interpolated between vertices, resulting in smooth gradients. There should be one per polygon vertex. If there are fewer, undefined vertices will use @color@.\nget_vertex_colors ::\n                    (Polygon2D :< cls, Object :< cls) => cls -> IO PoolColorArray\nget_vertex_colors cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_get_vertex_colors (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"get_vertex_colors\" '[]\n           (IO PoolColorArray)\n         where\n        nodeMethod = Godot.Core.Polygon2D.get_vertex_colors\n\n{-# NOINLINE bindPolygon2D_set_antialiased #-}\n\n-- | If @true@, polygon edges will be anti-aliased.\nbindPolygon2D_set_antialiased :: MethodBind\nbindPolygon2D_set_antialiased\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_antialiased\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, polygon edges will be anti-aliased.\nset_antialiased ::\n                  (Polygon2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_antialiased cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_set_antialiased (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"set_antialiased\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Polygon2D.set_antialiased\n\n{-# NOINLINE bindPolygon2D_set_bone_path #-}\n\n-- | Sets the path to the node associated with the specified bone.\nbindPolygon2D_set_bone_path :: MethodBind\nbindPolygon2D_set_bone_path\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_bone_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the path to the node associated with the specified bone.\nset_bone_path ::\n                (Polygon2D :< cls, Object :< cls) =>\n                cls -> Int -> NodePath -> IO ()\nset_bone_path cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_set_bone_path (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"set_bone_path\" '[Int, NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Polygon2D.set_bone_path\n\n{-# NOINLINE bindPolygon2D_set_bone_weights #-}\n\n-- | Sets the weight values for the specified bone.\nbindPolygon2D_set_bone_weights :: MethodBind\nbindPolygon2D_set_bone_weights\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_bone_weights\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the weight values for the specified bone.\nset_bone_weights ::\n                   (Polygon2D :< cls, Object :< cls) =>\n                   cls -> Int -> PoolRealArray -> IO ()\nset_bone_weights cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_set_bone_weights (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"set_bone_weights\"\n           '[Int, PoolRealArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Polygon2D.set_bone_weights\n\n{-# NOINLINE bindPolygon2D_set_color #-}\n\n-- | The polygon's fill color. If @texture@ is defined, it will be multiplied by this color. It will also be the default color for vertices not set in @vertex_colors@.\nbindPolygon2D_set_color :: MethodBind\nbindPolygon2D_set_color\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The polygon's fill color. If @texture@ is defined, it will be multiplied by this color. It will also be the default color for vertices not set in @vertex_colors@.\nset_color ::\n            (Polygon2D :< cls, Object :< cls) => cls -> Color -> IO ()\nset_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_set_color (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"set_color\" '[Color] (IO ()) where\n        nodeMethod = Godot.Core.Polygon2D.set_color\n\n{-# NOINLINE bindPolygon2D_set_internal_vertex_count #-}\n\nbindPolygon2D_set_internal_vertex_count :: MethodBind\nbindPolygon2D_set_internal_vertex_count\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_internal_vertex_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_internal_vertex_count ::\n                            (Polygon2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_internal_vertex_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_set_internal_vertex_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"set_internal_vertex_count\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Polygon2D.set_internal_vertex_count\n\n{-# NOINLINE bindPolygon2D_set_invert #-}\n\n-- | If @true@, polygon will be inverted, containing the area outside the defined points and extending to the @invert_border@.\nbindPolygon2D_set_invert :: MethodBind\nbindPolygon2D_set_invert\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_invert\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, polygon will be inverted, containing the area outside the defined points and extending to the @invert_border@.\nset_invert ::\n             (Polygon2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_invert cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_set_invert (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"set_invert\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Polygon2D.set_invert\n\n{-# NOINLINE bindPolygon2D_set_invert_border #-}\n\n-- | Added padding applied to the bounding box when using @invert@. Setting this value too small may result in a \"Bad Polygon\" error.\nbindPolygon2D_set_invert_border :: MethodBind\nbindPolygon2D_set_invert_border\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_invert_border\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Added padding applied to the bounding box when using @invert@. Setting this value too small may result in a \"Bad Polygon\" error.\nset_invert_border ::\n                    (Polygon2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_invert_border cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_set_invert_border (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"set_invert_border\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Polygon2D.set_invert_border\n\n{-# NOINLINE bindPolygon2D_set_offset #-}\n\n-- | The offset applied to each vertex.\nbindPolygon2D_set_offset :: MethodBind\nbindPolygon2D_set_offset\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The offset applied to each vertex.\nset_offset ::\n             (Polygon2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_set_offset (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"set_offset\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.Polygon2D.set_offset\n\n{-# NOINLINE bindPolygon2D_set_polygon #-}\n\n-- | The polygon's list of vertices. The final point will be connected to the first.\n--   \t\t\t__Note:__ This returns a copy of the @PoolVector2Array@ rather than a reference.\nbindPolygon2D_set_polygon :: MethodBind\nbindPolygon2D_set_polygon\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The polygon's list of vertices. The final point will be connected to the first.\n--   \t\t\t__Note:__ This returns a copy of the @PoolVector2Array@ rather than a reference.\nset_polygon ::\n              (Polygon2D :< cls, Object :< cls) =>\n              cls -> PoolVector2Array -> IO ()\nset_polygon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_set_polygon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"set_polygon\" '[PoolVector2Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Polygon2D.set_polygon\n\n{-# NOINLINE bindPolygon2D_set_polygons #-}\n\nbindPolygon2D_set_polygons :: MethodBind\nbindPolygon2D_set_polygons\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_polygons\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_polygons ::\n               (Polygon2D :< cls, Object :< cls) => cls -> Array -> IO ()\nset_polygons cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_set_polygons (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"set_polygons\" '[Array] (IO ()) where\n        nodeMethod = Godot.Core.Polygon2D.set_polygons\n\n{-# NOINLINE bindPolygon2D_set_skeleton #-}\n\nbindPolygon2D_set_skeleton :: MethodBind\nbindPolygon2D_set_skeleton\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_skeleton\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_skeleton ::\n               (Polygon2D :< cls, Object :< cls) => cls -> NodePath -> IO ()\nset_skeleton cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_set_skeleton (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"set_skeleton\" '[NodePath] (IO ())\n         where\n        nodeMethod = Godot.Core.Polygon2D.set_skeleton\n\n{-# NOINLINE bindPolygon2D_set_texture #-}\n\n-- | The polygon's fill texture. Use @uv@ to set texture coordinates.\nbindPolygon2D_set_texture :: MethodBind\nbindPolygon2D_set_texture\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The polygon's fill texture. Use @uv@ to set texture coordinates.\nset_texture ::\n              (Polygon2D :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_set_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"set_texture\" '[Texture] (IO ())\n         where\n        nodeMethod = Godot.Core.Polygon2D.set_texture\n\n{-# NOINLINE bindPolygon2D_set_texture_offset #-}\n\n-- | Amount to offset the polygon's @texture@. If @(0, 0)@ the texture's origin (its top-left corner) will be placed at the polygon's @position@.\nbindPolygon2D_set_texture_offset :: MethodBind\nbindPolygon2D_set_texture_offset\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount to offset the polygon's @texture@. If @(0, 0)@ the texture's origin (its top-left corner) will be placed at the polygon's @position@.\nset_texture_offset ::\n                     (Polygon2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_texture_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_set_texture_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"set_texture_offset\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Polygon2D.set_texture_offset\n\n{-# NOINLINE bindPolygon2D_set_texture_rotation #-}\n\n-- | The texture's rotation in radians.\nbindPolygon2D_set_texture_rotation :: MethodBind\nbindPolygon2D_set_texture_rotation\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The texture's rotation in radians.\nset_texture_rotation ::\n                       (Polygon2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_texture_rotation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_set_texture_rotation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"set_texture_rotation\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Polygon2D.set_texture_rotation\n\n{-# NOINLINE bindPolygon2D_set_texture_rotation_degrees #-}\n\n-- | The texture's rotation in degrees.\nbindPolygon2D_set_texture_rotation_degrees :: MethodBind\nbindPolygon2D_set_texture_rotation_degrees\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture_rotation_degrees\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The texture's rotation in degrees.\nset_texture_rotation_degrees ::\n                               (Polygon2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_texture_rotation_degrees cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_set_texture_rotation_degrees\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"set_texture_rotation_degrees\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Polygon2D.set_texture_rotation_degrees\n\n{-# NOINLINE bindPolygon2D_set_texture_scale #-}\n\n-- | Amount to multiply the @uv@ coordinates when using a @texture@. Larger values make the texture smaller, and vice versa.\nbindPolygon2D_set_texture_scale :: MethodBind\nbindPolygon2D_set_texture_scale\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount to multiply the @uv@ coordinates when using a @texture@. Larger values make the texture smaller, and vice versa.\nset_texture_scale ::\n                    (Polygon2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_texture_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_set_texture_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"set_texture_scale\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Polygon2D.set_texture_scale\n\n{-# NOINLINE bindPolygon2D_set_uv #-}\n\n-- | Texture coordinates for each vertex of the polygon. There should be one @uv@ per polygon vertex. If there are fewer, undefined vertices will use @(0, 0)@.\nbindPolygon2D_set_uv :: MethodBind\nbindPolygon2D_set_uv\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_uv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Texture coordinates for each vertex of the polygon. There should be one @uv@ per polygon vertex. If there are fewer, undefined vertices will use @(0, 0)@.\nset_uv ::\n         (Polygon2D :< cls, Object :< cls) =>\n         cls -> PoolVector2Array -> IO ()\nset_uv cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_set_uv (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"set_uv\" '[PoolVector2Array] (IO ())\n         where\n        nodeMethod = Godot.Core.Polygon2D.set_uv\n\n{-# NOINLINE bindPolygon2D_set_vertex_colors #-}\n\n-- | Color for each vertex. Colors are interpolated between vertices, resulting in smooth gradients. There should be one per polygon vertex. If there are fewer, undefined vertices will use @color@.\nbindPolygon2D_set_vertex_colors :: MethodBind\nbindPolygon2D_set_vertex_colors\n  = unsafePerformIO $\n      withCString \"Polygon2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_vertex_colors\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Color for each vertex. Colors are interpolated between vertices, resulting in smooth gradients. There should be one per polygon vertex. If there are fewer, undefined vertices will use @color@.\nset_vertex_colors ::\n                    (Polygon2D :< cls, Object :< cls) => cls -> PoolColorArray -> IO ()\nset_vertex_colors cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygon2D_set_vertex_colors (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Polygon2D \"set_vertex_colors\" '[PoolColorArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Polygon2D.set_vertex_colors"
  },
  {
    "path": "src/Godot/Core/PolygonPathFinder.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PolygonPathFinder\n       (Godot.Core.PolygonPathFinder._get_data,\n        Godot.Core.PolygonPathFinder._set_data,\n        Godot.Core.PolygonPathFinder.find_path,\n        Godot.Core.PolygonPathFinder.get_bounds,\n        Godot.Core.PolygonPathFinder.get_closest_point,\n        Godot.Core.PolygonPathFinder.get_intersections,\n        Godot.Core.PolygonPathFinder.get_point_penalty,\n        Godot.Core.PolygonPathFinder.is_point_inside,\n        Godot.Core.PolygonPathFinder.set_point_penalty,\n        Godot.Core.PolygonPathFinder.setup)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty PolygonPathFinder \"data\" Dictionary 'False\n         where\n        nodeProperty = (_get_data, wrapDroppingSetter _set_data, Nothing)\n\n{-# NOINLINE bindPolygonPathFinder__get_data #-}\n\nbindPolygonPathFinder__get_data :: MethodBind\nbindPolygonPathFinder__get_data\n  = unsafePerformIO $\n      withCString \"PolygonPathFinder\" $\n        \\ clsNamePtr ->\n          withCString \"_get_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_data ::\n            (PolygonPathFinder :< cls, Object :< cls) => cls -> IO Dictionary\n_get_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygonPathFinder__get_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PolygonPathFinder \"_get_data\" '[]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.PolygonPathFinder._get_data\n\n{-# NOINLINE bindPolygonPathFinder__set_data #-}\n\nbindPolygonPathFinder__set_data :: MethodBind\nbindPolygonPathFinder__set_data\n  = unsafePerformIO $\n      withCString \"PolygonPathFinder\" $\n        \\ clsNamePtr ->\n          withCString \"_set_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_data ::\n            (PolygonPathFinder :< cls, Object :< cls) =>\n            cls -> Dictionary -> IO ()\n_set_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygonPathFinder__set_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PolygonPathFinder \"_set_data\" '[Dictionary]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PolygonPathFinder._set_data\n\n{-# NOINLINE bindPolygonPathFinder_find_path #-}\n\nbindPolygonPathFinder_find_path :: MethodBind\nbindPolygonPathFinder_find_path\n  = unsafePerformIO $\n      withCString \"PolygonPathFinder\" $\n        \\ clsNamePtr ->\n          withCString \"find_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nfind_path ::\n            (PolygonPathFinder :< cls, Object :< cls) =>\n            cls -> Vector2 -> Vector2 -> IO PoolVector2Array\nfind_path cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygonPathFinder_find_path (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PolygonPathFinder \"find_path\"\n           '[Vector2, Vector2]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.PolygonPathFinder.find_path\n\n{-# NOINLINE bindPolygonPathFinder_get_bounds #-}\n\nbindPolygonPathFinder_get_bounds :: MethodBind\nbindPolygonPathFinder_get_bounds\n  = unsafePerformIO $\n      withCString \"PolygonPathFinder\" $\n        \\ clsNamePtr ->\n          withCString \"get_bounds\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_bounds ::\n             (PolygonPathFinder :< cls, Object :< cls) => cls -> IO Rect2\nget_bounds cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygonPathFinder_get_bounds\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PolygonPathFinder \"get_bounds\" '[] (IO Rect2)\n         where\n        nodeMethod = Godot.Core.PolygonPathFinder.get_bounds\n\n{-# NOINLINE bindPolygonPathFinder_get_closest_point #-}\n\nbindPolygonPathFinder_get_closest_point :: MethodBind\nbindPolygonPathFinder_get_closest_point\n  = unsafePerformIO $\n      withCString \"PolygonPathFinder\" $\n        \\ clsNamePtr ->\n          withCString \"get_closest_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_closest_point ::\n                    (PolygonPathFinder :< cls, Object :< cls) =>\n                    cls -> Vector2 -> IO Vector2\nget_closest_point cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygonPathFinder_get_closest_point\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PolygonPathFinder \"get_closest_point\"\n           '[Vector2]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.PolygonPathFinder.get_closest_point\n\n{-# NOINLINE bindPolygonPathFinder_get_intersections #-}\n\nbindPolygonPathFinder_get_intersections :: MethodBind\nbindPolygonPathFinder_get_intersections\n  = unsafePerformIO $\n      withCString \"PolygonPathFinder\" $\n        \\ clsNamePtr ->\n          withCString \"get_intersections\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_intersections ::\n                    (PolygonPathFinder :< cls, Object :< cls) =>\n                    cls -> Vector2 -> Vector2 -> IO PoolVector2Array\nget_intersections cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygonPathFinder_get_intersections\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PolygonPathFinder \"get_intersections\"\n           '[Vector2, Vector2]\n           (IO PoolVector2Array)\n         where\n        nodeMethod = Godot.Core.PolygonPathFinder.get_intersections\n\n{-# NOINLINE bindPolygonPathFinder_get_point_penalty #-}\n\nbindPolygonPathFinder_get_point_penalty :: MethodBind\nbindPolygonPathFinder_get_point_penalty\n  = unsafePerformIO $\n      withCString \"PolygonPathFinder\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_penalty\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_point_penalty ::\n                    (PolygonPathFinder :< cls, Object :< cls) => cls -> Int -> IO Float\nget_point_penalty cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygonPathFinder_get_point_penalty\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PolygonPathFinder \"get_point_penalty\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.PolygonPathFinder.get_point_penalty\n\n{-# NOINLINE bindPolygonPathFinder_is_point_inside #-}\n\nbindPolygonPathFinder_is_point_inside :: MethodBind\nbindPolygonPathFinder_is_point_inside\n  = unsafePerformIO $\n      withCString \"PolygonPathFinder\" $\n        \\ clsNamePtr ->\n          withCString \"is_point_inside\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_point_inside ::\n                  (PolygonPathFinder :< cls, Object :< cls) =>\n                  cls -> Vector2 -> IO Bool\nis_point_inside cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygonPathFinder_is_point_inside\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PolygonPathFinder \"is_point_inside\" '[Vector2]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PolygonPathFinder.is_point_inside\n\n{-# NOINLINE bindPolygonPathFinder_set_point_penalty #-}\n\nbindPolygonPathFinder_set_point_penalty :: MethodBind\nbindPolygonPathFinder_set_point_penalty\n  = unsafePerformIO $\n      withCString \"PolygonPathFinder\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_penalty\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_point_penalty ::\n                    (PolygonPathFinder :< cls, Object :< cls) =>\n                    cls -> Int -> Float -> IO ()\nset_point_penalty cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygonPathFinder_set_point_penalty\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PolygonPathFinder \"set_point_penalty\"\n           '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PolygonPathFinder.set_point_penalty\n\n{-# NOINLINE bindPolygonPathFinder_setup #-}\n\nbindPolygonPathFinder_setup :: MethodBind\nbindPolygonPathFinder_setup\n  = unsafePerformIO $\n      withCString \"PolygonPathFinder\" $\n        \\ clsNamePtr ->\n          withCString \"setup\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nsetup ::\n        (PolygonPathFinder :< cls, Object :< cls) =>\n        cls -> PoolVector2Array -> PoolIntArray -> IO ()\nsetup cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPolygonPathFinder_setup (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PolygonPathFinder \"setup\"\n           '[PoolVector2Array, PoolIntArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PolygonPathFinder.setup"
  },
  {
    "path": "src/Godot/Core/Popup.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Popup\n       (Godot.Core.Popup._NOTIFICATION_POST_POPUP,\n        Godot.Core.Popup._NOTIFICATION_POPUP_HIDE,\n        Godot.Core.Popup.sig_about_to_show,\n        Godot.Core.Popup.sig_popup_hide, Godot.Core.Popup.is_exclusive,\n        Godot.Core.Popup.popup, Godot.Core.Popup.popup_centered,\n        Godot.Core.Popup.popup_centered_clamped,\n        Godot.Core.Popup.popup_centered_minsize,\n        Godot.Core.Popup.popup_centered_ratio,\n        Godot.Core.Popup.set_as_minsize, Godot.Core.Popup.set_exclusive)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()\n\n_NOTIFICATION_POST_POPUP :: Int\n_NOTIFICATION_POST_POPUP = 80\n\n_NOTIFICATION_POPUP_HIDE :: Int\n_NOTIFICATION_POPUP_HIDE = 81\n\n-- | Emitted when a popup is about to be shown. This is often used in @PopupMenu@ to clear the list of options then create a new one according to the current context.\nsig_about_to_show :: Godot.Internal.Dispatch.Signal Popup\nsig_about_to_show = Godot.Internal.Dispatch.Signal \"about_to_show\"\n\ninstance NodeSignal Popup \"about_to_show\" '[]\n\n-- | Emitted when a popup is hidden.\nsig_popup_hide :: Godot.Internal.Dispatch.Signal Popup\nsig_popup_hide = Godot.Internal.Dispatch.Signal \"popup_hide\"\n\ninstance NodeSignal Popup \"popup_hide\" '[]\n\ninstance NodeProperty Popup \"popup_exclusive\" Bool 'False where\n        nodeProperty\n          = (is_exclusive, wrapDroppingSetter set_exclusive, Nothing)\n\n{-# NOINLINE bindPopup_is_exclusive #-}\n\n-- | If @true@, the popup will not be hidden when a click event occurs outside of it, or when it receives the @ui_cancel@ action event.\n--   \t\t\t__Note:__ Enabling this property doesn't affect the Close or Cancel buttons' behavior in dialogs that inherit from this class. As a workaround, you can use @method WindowDialog.get_close_button@ or @method ConfirmationDialog.get_cancel@ and hide the buttons in question by setting their @CanvasItem.visible@ property to @false@.\nbindPopup_is_exclusive :: MethodBind\nbindPopup_is_exclusive\n  = unsafePerformIO $\n      withCString \"Popup\" $\n        \\ clsNamePtr ->\n          withCString \"is_exclusive\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the popup will not be hidden when a click event occurs outside of it, or when it receives the @ui_cancel@ action event.\n--   \t\t\t__Note:__ Enabling this property doesn't affect the Close or Cancel buttons' behavior in dialogs that inherit from this class. As a workaround, you can use @method WindowDialog.get_close_button@ or @method ConfirmationDialog.get_cancel@ and hide the buttons in question by setting their @CanvasItem.visible@ property to @false@.\nis_exclusive :: (Popup :< cls, Object :< cls) => cls -> IO Bool\nis_exclusive cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopup_is_exclusive (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Popup \"is_exclusive\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Popup.is_exclusive\n\n{-# NOINLINE bindPopup_popup #-}\n\n-- | Popup (show the control in modal form).\nbindPopup_popup :: MethodBind\nbindPopup_popup\n  = unsafePerformIO $\n      withCString \"Popup\" $\n        \\ clsNamePtr ->\n          withCString \"popup\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Popup (show the control in modal form).\npopup ::\n        (Popup :< cls, Object :< cls) => cls -> Maybe Rect2 -> IO ()\npopup cls arg1\n  = withVariantArray\n      [defaultedVariant VariantRect2 (V2 (V2 0 0) (V2 0 0)) arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopup_popup (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Popup \"popup\" '[Maybe Rect2] (IO ()) where\n        nodeMethod = Godot.Core.Popup.popup\n\n{-# NOINLINE bindPopup_popup_centered #-}\n\n-- | Popup (show the control in modal form) in the center of the screen relative to its current canvas transform, at the current size, or at a size determined by @size@.\nbindPopup_popup_centered :: MethodBind\nbindPopup_popup_centered\n  = unsafePerformIO $\n      withCString \"Popup\" $\n        \\ clsNamePtr ->\n          withCString \"popup_centered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Popup (show the control in modal form) in the center of the screen relative to its current canvas transform, at the current size, or at a size determined by @size@.\npopup_centered ::\n                 (Popup :< cls, Object :< cls) => cls -> Maybe Vector2 -> IO ()\npopup_centered cls arg1\n  = withVariantArray [defaultedVariant VariantVector2 (V2 0 0) arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopup_popup_centered (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Popup \"popup_centered\" '[Maybe Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.Popup.popup_centered\n\n{-# NOINLINE bindPopup_popup_centered_clamped #-}\n\n-- | Popup (show the control in modal form) in the center of the screen relative to the current canvas transform, clamping the size to @size@, then ensuring the popup is no larger than the viewport size multiplied by @fallback_ratio@.\nbindPopup_popup_centered_clamped :: MethodBind\nbindPopup_popup_centered_clamped\n  = unsafePerformIO $\n      withCString \"Popup\" $\n        \\ clsNamePtr ->\n          withCString \"popup_centered_clamped\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Popup (show the control in modal form) in the center of the screen relative to the current canvas transform, clamping the size to @size@, then ensuring the popup is no larger than the viewport size multiplied by @fallback_ratio@.\npopup_centered_clamped ::\n                         (Popup :< cls, Object :< cls) =>\n                         cls -> Maybe Vector2 -> Maybe Float -> IO ()\npopup_centered_clamped cls arg1 arg2\n  = withVariantArray\n      [defaultedVariant VariantVector2 (V2 0 0) arg1,\n       maybe (VariantReal (0.75)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopup_popup_centered_clamped\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Popup \"popup_centered_clamped\"\n           '[Maybe Vector2, Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Popup.popup_centered_clamped\n\n{-# NOINLINE bindPopup_popup_centered_minsize #-}\n\n-- | Popup (show the control in modal form) in the center of the screen relative to the current canvas transform, ensuring the size is never smaller than @minsize@.\nbindPopup_popup_centered_minsize :: MethodBind\nbindPopup_popup_centered_minsize\n  = unsafePerformIO $\n      withCString \"Popup\" $\n        \\ clsNamePtr ->\n          withCString \"popup_centered_minsize\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Popup (show the control in modal form) in the center of the screen relative to the current canvas transform, ensuring the size is never smaller than @minsize@.\npopup_centered_minsize ::\n                         (Popup :< cls, Object :< cls) => cls -> Maybe Vector2 -> IO ()\npopup_centered_minsize cls arg1\n  = withVariantArray [defaultedVariant VariantVector2 (V2 0 0) arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopup_popup_centered_minsize\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Popup \"popup_centered_minsize\" '[Maybe Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Popup.popup_centered_minsize\n\n{-# NOINLINE bindPopup_popup_centered_ratio #-}\n\n-- | Popup (show the control in modal form) in the center of the screen relative to the current canvas transform, scaled at a ratio of size of the screen.\nbindPopup_popup_centered_ratio :: MethodBind\nbindPopup_popup_centered_ratio\n  = unsafePerformIO $\n      withCString \"Popup\" $\n        \\ clsNamePtr ->\n          withCString \"popup_centered_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Popup (show the control in modal form) in the center of the screen relative to the current canvas transform, scaled at a ratio of size of the screen.\npopup_centered_ratio ::\n                       (Popup :< cls, Object :< cls) => cls -> Maybe Float -> IO ()\npopup_centered_ratio cls arg1\n  = withVariantArray [maybe (VariantReal (0.75)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopup_popup_centered_ratio (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Popup \"popup_centered_ratio\" '[Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Popup.popup_centered_ratio\n\n{-# NOINLINE bindPopup_set_as_minsize #-}\n\n-- | Shrink popup to keep to the minimum size of content.\nbindPopup_set_as_minsize :: MethodBind\nbindPopup_set_as_minsize\n  = unsafePerformIO $\n      withCString \"Popup\" $\n        \\ clsNamePtr ->\n          withCString \"set_as_minsize\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Shrink popup to keep to the minimum size of content.\nset_as_minsize :: (Popup :< cls, Object :< cls) => cls -> IO ()\nset_as_minsize cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopup_set_as_minsize (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Popup \"set_as_minsize\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Popup.set_as_minsize\n\n{-# NOINLINE bindPopup_set_exclusive #-}\n\n-- | If @true@, the popup will not be hidden when a click event occurs outside of it, or when it receives the @ui_cancel@ action event.\n--   \t\t\t__Note:__ Enabling this property doesn't affect the Close or Cancel buttons' behavior in dialogs that inherit from this class. As a workaround, you can use @method WindowDialog.get_close_button@ or @method ConfirmationDialog.get_cancel@ and hide the buttons in question by setting their @CanvasItem.visible@ property to @false@.\nbindPopup_set_exclusive :: MethodBind\nbindPopup_set_exclusive\n  = unsafePerformIO $\n      withCString \"Popup\" $\n        \\ clsNamePtr ->\n          withCString \"set_exclusive\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the popup will not be hidden when a click event occurs outside of it, or when it receives the @ui_cancel@ action event.\n--   \t\t\t__Note:__ Enabling this property doesn't affect the Close or Cancel buttons' behavior in dialogs that inherit from this class. As a workaround, you can use @method WindowDialog.get_close_button@ or @method ConfirmationDialog.get_cancel@ and hide the buttons in question by setting their @CanvasItem.visible@ property to @false@.\nset_exclusive ::\n                (Popup :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_exclusive cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopup_set_exclusive (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Popup \"set_exclusive\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Popup.set_exclusive"
  },
  {
    "path": "src/Godot/Core/PopupDialog.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PopupDialog () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Popup()"
  },
  {
    "path": "src/Godot/Core/PopupMenu.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PopupMenu\n       (Godot.Core.PopupMenu.sig_id_focused,\n        Godot.Core.PopupMenu.sig_id_pressed,\n        Godot.Core.PopupMenu.sig_index_pressed,\n        Godot.Core.PopupMenu._get_items, Godot.Core.PopupMenu._gui_input,\n        Godot.Core.PopupMenu._set_items,\n        Godot.Core.PopupMenu._submenu_timeout,\n        Godot.Core.PopupMenu.add_check_item,\n        Godot.Core.PopupMenu.add_check_shortcut,\n        Godot.Core.PopupMenu.add_icon_check_item,\n        Godot.Core.PopupMenu.add_icon_check_shortcut,\n        Godot.Core.PopupMenu.add_icon_item,\n        Godot.Core.PopupMenu.add_icon_radio_check_item,\n        Godot.Core.PopupMenu.add_icon_radio_check_shortcut,\n        Godot.Core.PopupMenu.add_icon_shortcut,\n        Godot.Core.PopupMenu.add_item,\n        Godot.Core.PopupMenu.add_multistate_item,\n        Godot.Core.PopupMenu.add_radio_check_item,\n        Godot.Core.PopupMenu.add_radio_check_shortcut,\n        Godot.Core.PopupMenu.add_separator,\n        Godot.Core.PopupMenu.add_shortcut,\n        Godot.Core.PopupMenu.add_submenu_item, Godot.Core.PopupMenu.clear,\n        Godot.Core.PopupMenu.get_allow_search,\n        Godot.Core.PopupMenu.get_item_accelerator,\n        Godot.Core.PopupMenu.get_item_count,\n        Godot.Core.PopupMenu.get_item_icon,\n        Godot.Core.PopupMenu.get_item_id,\n        Godot.Core.PopupMenu.get_item_index,\n        Godot.Core.PopupMenu.get_item_metadata,\n        Godot.Core.PopupMenu.get_item_shortcut,\n        Godot.Core.PopupMenu.get_item_submenu,\n        Godot.Core.PopupMenu.get_item_text,\n        Godot.Core.PopupMenu.get_item_tooltip,\n        Godot.Core.PopupMenu.get_submenu_popup_delay,\n        Godot.Core.PopupMenu.is_hide_on_checkable_item_selection,\n        Godot.Core.PopupMenu.is_hide_on_item_selection,\n        Godot.Core.PopupMenu.is_hide_on_state_item_selection,\n        Godot.Core.PopupMenu.is_hide_on_window_lose_focus,\n        Godot.Core.PopupMenu.is_item_checkable,\n        Godot.Core.PopupMenu.is_item_checked,\n        Godot.Core.PopupMenu.is_item_disabled,\n        Godot.Core.PopupMenu.is_item_radio_checkable,\n        Godot.Core.PopupMenu.is_item_separator,\n        Godot.Core.PopupMenu.is_item_shortcut_disabled,\n        Godot.Core.PopupMenu.remove_item,\n        Godot.Core.PopupMenu.set_allow_search,\n        Godot.Core.PopupMenu.set_hide_on_checkable_item_selection,\n        Godot.Core.PopupMenu.set_hide_on_item_selection,\n        Godot.Core.PopupMenu.set_hide_on_state_item_selection,\n        Godot.Core.PopupMenu.set_hide_on_window_lose_focus,\n        Godot.Core.PopupMenu.set_item_accelerator,\n        Godot.Core.PopupMenu.set_item_as_checkable,\n        Godot.Core.PopupMenu.set_item_as_radio_checkable,\n        Godot.Core.PopupMenu.set_item_as_separator,\n        Godot.Core.PopupMenu.set_item_checked,\n        Godot.Core.PopupMenu.set_item_disabled,\n        Godot.Core.PopupMenu.set_item_icon,\n        Godot.Core.PopupMenu.set_item_id,\n        Godot.Core.PopupMenu.set_item_metadata,\n        Godot.Core.PopupMenu.set_item_multistate,\n        Godot.Core.PopupMenu.set_item_shortcut,\n        Godot.Core.PopupMenu.set_item_shortcut_disabled,\n        Godot.Core.PopupMenu.set_item_submenu,\n        Godot.Core.PopupMenu.set_item_text,\n        Godot.Core.PopupMenu.set_item_tooltip,\n        Godot.Core.PopupMenu.set_submenu_popup_delay,\n        Godot.Core.PopupMenu.toggle_item_checked,\n        Godot.Core.PopupMenu.toggle_item_multistate)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Popup()\n\n-- | Emitted when user navigated to an item of some @id@ using @ui_up@ or @ui_down@ action.\nsig_id_focused :: Godot.Internal.Dispatch.Signal PopupMenu\nsig_id_focused = Godot.Internal.Dispatch.Signal \"id_focused\"\n\ninstance NodeSignal PopupMenu \"id_focused\" '[Int]\n\n-- | Emitted when an item of some @id@ is pressed or its accelerator is activated.\nsig_id_pressed :: Godot.Internal.Dispatch.Signal PopupMenu\nsig_id_pressed = Godot.Internal.Dispatch.Signal \"id_pressed\"\n\ninstance NodeSignal PopupMenu \"id_pressed\" '[Int]\n\n-- | Emitted when an item of some @index@ is pressed or its accelerator is activated.\nsig_index_pressed :: Godot.Internal.Dispatch.Signal PopupMenu\nsig_index_pressed = Godot.Internal.Dispatch.Signal \"index_pressed\"\n\ninstance NodeSignal PopupMenu \"index_pressed\" '[Int]\n\ninstance NodeProperty PopupMenu \"allow_search\" Bool 'False where\n        nodeProperty\n          = (get_allow_search, wrapDroppingSetter set_allow_search, Nothing)\n\ninstance NodeProperty PopupMenu \"hide_on_checkable_item_selection\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (is_hide_on_checkable_item_selection,\n             wrapDroppingSetter set_hide_on_checkable_item_selection, Nothing)\n\ninstance NodeProperty PopupMenu \"hide_on_item_selection\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_hide_on_item_selection,\n             wrapDroppingSetter set_hide_on_item_selection, Nothing)\n\ninstance NodeProperty PopupMenu \"hide_on_state_item_selection\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_hide_on_state_item_selection,\n             wrapDroppingSetter set_hide_on_state_item_selection, Nothing)\n\ninstance NodeProperty PopupMenu \"items\" Array 'False where\n        nodeProperty = (_get_items, wrapDroppingSetter _set_items, Nothing)\n\ninstance NodeProperty PopupMenu \"submenu_popup_delay\" Float 'False\n         where\n        nodeProperty\n          = (get_submenu_popup_delay,\n             wrapDroppingSetter set_submenu_popup_delay, Nothing)\n\n{-# NOINLINE bindPopupMenu__get_items #-}\n\nbindPopupMenu__get_items :: MethodBind\nbindPopupMenu__get_items\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"_get_items\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_items :: (PopupMenu :< cls, Object :< cls) => cls -> IO Array\n_get_items cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu__get_items (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"_get_items\" '[] (IO Array) where\n        nodeMethod = Godot.Core.PopupMenu._get_items\n\n{-# NOINLINE bindPopupMenu__gui_input #-}\n\nbindPopupMenu__gui_input :: MethodBind\nbindPopupMenu__gui_input\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (PopupMenu :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu__gui_input (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"_gui_input\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu._gui_input\n\n{-# NOINLINE bindPopupMenu__set_items #-}\n\nbindPopupMenu__set_items :: MethodBind\nbindPopupMenu__set_items\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"_set_items\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_items ::\n             (PopupMenu :< cls, Object :< cls) => cls -> Array -> IO ()\n_set_items cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu__set_items (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"_set_items\" '[Array] (IO ()) where\n        nodeMethod = Godot.Core.PopupMenu._set_items\n\n{-# NOINLINE bindPopupMenu__submenu_timeout #-}\n\nbindPopupMenu__submenu_timeout :: MethodBind\nbindPopupMenu__submenu_timeout\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"_submenu_timeout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_submenu_timeout ::\n                   (PopupMenu :< cls, Object :< cls) => cls -> IO ()\n_submenu_timeout cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu__submenu_timeout (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"_submenu_timeout\" '[] (IO ()) where\n        nodeMethod = Godot.Core.PopupMenu._submenu_timeout\n\n{-# NOINLINE bindPopupMenu_add_check_item #-}\n\n-- | Adds a new checkable item with text @label@.\n--   \t\t\t\tAn @id@ can optionally be provided, as well as an accelerator (@accel@). If no @id@ is provided, one will be created from the index. If no @accel@ is provided then the default @0@ will be assigned to it. See @method get_item_accelerator@ for more info on accelerators.\n--   \t\t\t\t__Note:__ Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See @method set_item_checked@ for more info on how to control it.\nbindPopupMenu_add_check_item :: MethodBind\nbindPopupMenu_add_check_item\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"add_check_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new checkable item with text @label@.\n--   \t\t\t\tAn @id@ can optionally be provided, as well as an accelerator (@accel@). If no @id@ is provided, one will be created from the index. If no @accel@ is provided then the default @0@ will be assigned to it. See @method get_item_accelerator@ for more info on accelerators.\n--   \t\t\t\t__Note:__ Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See @method set_item_checked@ for more info on how to control it.\nadd_check_item ::\n                 (PopupMenu :< cls, Object :< cls) =>\n                 cls -> GodotString -> Maybe Int -> Maybe Int -> IO ()\nadd_check_item cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (-1)) toVariant arg2,\n       maybe (VariantInt (0)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_add_check_item (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"add_check_item\"\n           '[GodotString, Maybe Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.add_check_item\n\n{-# NOINLINE bindPopupMenu_add_check_shortcut #-}\n\n-- | Adds a new checkable item and assigns the specified @ShortCut@ to it. Sets the label of the checkbox to the @ShortCut@'s name.\n--   \t\t\t\tAn @id@ can optionally be provided. If no @id@ is provided, one will be created from the index.\n--   \t\t\t\t__Note:__ Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See @method set_item_checked@ for more info on how to control it.\nbindPopupMenu_add_check_shortcut :: MethodBind\nbindPopupMenu_add_check_shortcut\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"add_check_shortcut\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new checkable item and assigns the specified @ShortCut@ to it. Sets the label of the checkbox to the @ShortCut@'s name.\n--   \t\t\t\tAn @id@ can optionally be provided. If no @id@ is provided, one will be created from the index.\n--   \t\t\t\t__Note:__ Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See @method set_item_checked@ for more info on how to control it.\nadd_check_shortcut ::\n                     (PopupMenu :< cls, Object :< cls) =>\n                     cls -> ShortCut -> Maybe Int -> Maybe Bool -> IO ()\nadd_check_shortcut cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (-1)) toVariant arg2,\n       maybe (VariantBool False) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_add_check_shortcut\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"add_check_shortcut\"\n           '[ShortCut, Maybe Int, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.add_check_shortcut\n\n{-# NOINLINE bindPopupMenu_add_icon_check_item #-}\n\n-- | Adds a new checkable item with text @label@ and icon @texture@.\n--   \t\t\t\tAn @id@ can optionally be provided, as well as an accelerator (@accel@). If no @id@ is provided, one will be created from the index. If no @accel@ is provided then the default @0@ will be assigned to it. See @method get_item_accelerator@ for more info on accelerators.\n--   \t\t\t\t__Note:__ Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See @method set_item_checked@ for more info on how to control it.\nbindPopupMenu_add_icon_check_item :: MethodBind\nbindPopupMenu_add_icon_check_item\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"add_icon_check_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new checkable item with text @label@ and icon @texture@.\n--   \t\t\t\tAn @id@ can optionally be provided, as well as an accelerator (@accel@). If no @id@ is provided, one will be created from the index. If no @accel@ is provided then the default @0@ will be assigned to it. See @method get_item_accelerator@ for more info on accelerators.\n--   \t\t\t\t__Note:__ Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See @method set_item_checked@ for more info on how to control it.\nadd_icon_check_item ::\n                      (PopupMenu :< cls, Object :< cls) =>\n                      cls -> Texture -> GodotString -> Maybe Int -> Maybe Int -> IO ()\nadd_icon_check_item cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (-1)) toVariant arg3,\n       maybe (VariantInt (0)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_add_icon_check_item\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"add_icon_check_item\"\n           '[Texture, GodotString, Maybe Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.add_icon_check_item\n\n{-# NOINLINE bindPopupMenu_add_icon_check_shortcut #-}\n\n-- | Adds a new checkable item and assigns the specified @ShortCut@ and icon @texture@ to it. Sets the label of the checkbox to the @ShortCut@'s name.\n--   \t\t\t\tAn @id@ can optionally be provided. If no @id@ is provided, one will be created from the index.\n--   \t\t\t\t__Note:__ Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See @method set_item_checked@ for more info on how to control it.\nbindPopupMenu_add_icon_check_shortcut :: MethodBind\nbindPopupMenu_add_icon_check_shortcut\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"add_icon_check_shortcut\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new checkable item and assigns the specified @ShortCut@ and icon @texture@ to it. Sets the label of the checkbox to the @ShortCut@'s name.\n--   \t\t\t\tAn @id@ can optionally be provided. If no @id@ is provided, one will be created from the index.\n--   \t\t\t\t__Note:__ Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See @method set_item_checked@ for more info on how to control it.\nadd_icon_check_shortcut ::\n                          (PopupMenu :< cls, Object :< cls) =>\n                          cls -> Texture -> ShortCut -> Maybe Int -> Maybe Bool -> IO ()\nadd_icon_check_shortcut cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (-1)) toVariant arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_add_icon_check_shortcut\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"add_icon_check_shortcut\"\n           '[Texture, ShortCut, Maybe Int, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.add_icon_check_shortcut\n\n{-# NOINLINE bindPopupMenu_add_icon_item #-}\n\n-- | Adds a new item with text @label@ and icon @texture@.\n--   \t\t\t\tAn @id@ can optionally be provided, as well as an accelerator (@accel@). If no @id@ is provided, one will be created from the index. If no @accel@ is provided then the default @0@ will be assigned to it. See @method get_item_accelerator@ for more info on accelerators.\nbindPopupMenu_add_icon_item :: MethodBind\nbindPopupMenu_add_icon_item\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"add_icon_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new item with text @label@ and icon @texture@.\n--   \t\t\t\tAn @id@ can optionally be provided, as well as an accelerator (@accel@). If no @id@ is provided, one will be created from the index. If no @accel@ is provided then the default @0@ will be assigned to it. See @method get_item_accelerator@ for more info on accelerators.\nadd_icon_item ::\n                (PopupMenu :< cls, Object :< cls) =>\n                cls -> Texture -> GodotString -> Maybe Int -> Maybe Int -> IO ()\nadd_icon_item cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (-1)) toVariant arg3,\n       maybe (VariantInt (0)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_add_icon_item (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"add_icon_item\"\n           '[Texture, GodotString, Maybe Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.add_icon_item\n\n{-# NOINLINE bindPopupMenu_add_icon_radio_check_item #-}\n\n-- | Same as @method add_icon_check_item@, but uses a radio check button.\nbindPopupMenu_add_icon_radio_check_item :: MethodBind\nbindPopupMenu_add_icon_radio_check_item\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"add_icon_radio_check_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Same as @method add_icon_check_item@, but uses a radio check button.\nadd_icon_radio_check_item ::\n                            (PopupMenu :< cls, Object :< cls) =>\n                            cls -> Texture -> GodotString -> Maybe Int -> Maybe Int -> IO ()\nadd_icon_radio_check_item cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (-1)) toVariant arg3,\n       maybe (VariantInt (0)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_add_icon_radio_check_item\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"add_icon_radio_check_item\"\n           '[Texture, GodotString, Maybe Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.add_icon_radio_check_item\n\n{-# NOINLINE bindPopupMenu_add_icon_radio_check_shortcut #-}\n\n-- | Same as @method add_icon_check_shortcut@, but uses a radio check button.\nbindPopupMenu_add_icon_radio_check_shortcut :: MethodBind\nbindPopupMenu_add_icon_radio_check_shortcut\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"add_icon_radio_check_shortcut\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Same as @method add_icon_check_shortcut@, but uses a radio check button.\nadd_icon_radio_check_shortcut ::\n                                (PopupMenu :< cls, Object :< cls) =>\n                                cls -> Texture -> ShortCut -> Maybe Int -> Maybe Bool -> IO ()\nadd_icon_radio_check_shortcut cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (-1)) toVariant arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_add_icon_radio_check_shortcut\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"add_icon_radio_check_shortcut\"\n           '[Texture, ShortCut, Maybe Int, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.add_icon_radio_check_shortcut\n\n{-# NOINLINE bindPopupMenu_add_icon_shortcut #-}\n\n-- | Adds a new item and assigns the specified @ShortCut@ and icon @texture@ to it. Sets the label of the checkbox to the @ShortCut@'s name.\n--   \t\t\t\tAn @id@ can optionally be provided. If no @id@ is provided, one will be created from the index.\nbindPopupMenu_add_icon_shortcut :: MethodBind\nbindPopupMenu_add_icon_shortcut\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"add_icon_shortcut\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new item and assigns the specified @ShortCut@ and icon @texture@ to it. Sets the label of the checkbox to the @ShortCut@'s name.\n--   \t\t\t\tAn @id@ can optionally be provided. If no @id@ is provided, one will be created from the index.\nadd_icon_shortcut ::\n                    (PopupMenu :< cls, Object :< cls) =>\n                    cls -> Texture -> ShortCut -> Maybe Int -> Maybe Bool -> IO ()\nadd_icon_shortcut cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (-1)) toVariant arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_add_icon_shortcut (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"add_icon_shortcut\"\n           '[Texture, ShortCut, Maybe Int, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.add_icon_shortcut\n\n{-# NOINLINE bindPopupMenu_add_item #-}\n\n-- | Adds a new item with text @label@.\n--   \t\t\t\tAn @id@ can optionally be provided, as well as an accelerator (@accel@). If no @id@ is provided, one will be created from the index. If no @accel@ is provided then the default @0@ will be assigned to it. See @method get_item_accelerator@ for more info on accelerators.\nbindPopupMenu_add_item :: MethodBind\nbindPopupMenu_add_item\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"add_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new item with text @label@.\n--   \t\t\t\tAn @id@ can optionally be provided, as well as an accelerator (@accel@). If no @id@ is provided, one will be created from the index. If no @accel@ is provided then the default @0@ will be assigned to it. See @method get_item_accelerator@ for more info on accelerators.\nadd_item ::\n           (PopupMenu :< cls, Object :< cls) =>\n           cls -> GodotString -> Maybe Int -> Maybe Int -> IO ()\nadd_item cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (-1)) toVariant arg2,\n       maybe (VariantInt (0)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_add_item (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"add_item\"\n           '[GodotString, Maybe Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.add_item\n\n{-# NOINLINE bindPopupMenu_add_multistate_item #-}\n\n-- | Adds a new multistate item with text @label@.\n--   \t\t\t\tContrarily to normal binary items, multistate items can have more than two states, as defined by @max_states@. Each press or activate of the item will increase the state by one. The default value is defined by @default_state@.\n--   \t\t\t\tAn @id@ can optionally be provided, as well as an accelerator (@accel@). If no @id@ is provided, one will be created from the index. If no @accel@ is provided then the default @0@ will be assigned to it. See @method get_item_accelerator@ for more info on accelerators.\nbindPopupMenu_add_multistate_item :: MethodBind\nbindPopupMenu_add_multistate_item\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"add_multistate_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new multistate item with text @label@.\n--   \t\t\t\tContrarily to normal binary items, multistate items can have more than two states, as defined by @max_states@. Each press or activate of the item will increase the state by one. The default value is defined by @default_state@.\n--   \t\t\t\tAn @id@ can optionally be provided, as well as an accelerator (@accel@). If no @id@ is provided, one will be created from the index. If no @accel@ is provided then the default @0@ will be assigned to it. See @method get_item_accelerator@ for more info on accelerators.\nadd_multistate_item ::\n                      (PopupMenu :< cls, Object :< cls) =>\n                      cls ->\n                        GodotString -> Int -> Maybe Int -> Maybe Int -> Maybe Int -> IO ()\nadd_multistate_item cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (0)) toVariant arg3,\n       maybe (VariantInt (-1)) toVariant arg4,\n       maybe (VariantInt (0)) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_add_multistate_item\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"add_multistate_item\"\n           '[GodotString, Int, Maybe Int, Maybe Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.add_multistate_item\n\n{-# NOINLINE bindPopupMenu_add_radio_check_item #-}\n\n-- | Adds a new radio check button with text @label@.\n--   \t\t\t\tAn @id@ can optionally be provided, as well as an accelerator (@accel@). If no @id@ is provided, one will be created from the index. If no @accel@ is provided then the default @0@ will be assigned to it. See @method get_item_accelerator@ for more info on accelerators.\n--   \t\t\t\t__Note:__ Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See @method set_item_checked@ for more info on how to control it.\nbindPopupMenu_add_radio_check_item :: MethodBind\nbindPopupMenu_add_radio_check_item\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"add_radio_check_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new radio check button with text @label@.\n--   \t\t\t\tAn @id@ can optionally be provided, as well as an accelerator (@accel@). If no @id@ is provided, one will be created from the index. If no @accel@ is provided then the default @0@ will be assigned to it. See @method get_item_accelerator@ for more info on accelerators.\n--   \t\t\t\t__Note:__ Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See @method set_item_checked@ for more info on how to control it.\nadd_radio_check_item ::\n                       (PopupMenu :< cls, Object :< cls) =>\n                       cls -> GodotString -> Maybe Int -> Maybe Int -> IO ()\nadd_radio_check_item cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (-1)) toVariant arg2,\n       maybe (VariantInt (0)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_add_radio_check_item\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"add_radio_check_item\"\n           '[GodotString, Maybe Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.add_radio_check_item\n\n{-# NOINLINE bindPopupMenu_add_radio_check_shortcut #-}\n\n-- | Adds a new radio check button and assigns a @ShortCut@ to it. Sets the label of the checkbox to the @ShortCut@'s name.\n--   \t\t\t\tAn @id@ can optionally be provided. If no @id@ is provided, one will be created from the index.\n--   \t\t\t\t__Note:__ Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See @method set_item_checked@ for more info on how to control it.\nbindPopupMenu_add_radio_check_shortcut :: MethodBind\nbindPopupMenu_add_radio_check_shortcut\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"add_radio_check_shortcut\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new radio check button and assigns a @ShortCut@ to it. Sets the label of the checkbox to the @ShortCut@'s name.\n--   \t\t\t\tAn @id@ can optionally be provided. If no @id@ is provided, one will be created from the index.\n--   \t\t\t\t__Note:__ Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See @method set_item_checked@ for more info on how to control it.\nadd_radio_check_shortcut ::\n                           (PopupMenu :< cls, Object :< cls) =>\n                           cls -> ShortCut -> Maybe Int -> Maybe Bool -> IO ()\nadd_radio_check_shortcut cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (-1)) toVariant arg2,\n       maybe (VariantBool False) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_add_radio_check_shortcut\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"add_radio_check_shortcut\"\n           '[ShortCut, Maybe Int, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.add_radio_check_shortcut\n\n{-# NOINLINE bindPopupMenu_add_separator #-}\n\n-- | Adds a separator between items. Separators also occupy an index.\nbindPopupMenu_add_separator :: MethodBind\nbindPopupMenu_add_separator\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"add_separator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a separator between items. Separators also occupy an index.\nadd_separator ::\n                (PopupMenu :< cls, Object :< cls) =>\n                cls -> Maybe GodotString -> IO ()\nadd_separator cls arg1\n  = withVariantArray [defaultedVariant VariantString \"\" arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_add_separator (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"add_separator\" '[Maybe GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.add_separator\n\n{-# NOINLINE bindPopupMenu_add_shortcut #-}\n\n-- | Adds a @ShortCut@.\n--   \t\t\t\tAn @id@ can optionally be provided. If no @id@ is provided, one will be created from the index.\nbindPopupMenu_add_shortcut :: MethodBind\nbindPopupMenu_add_shortcut\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"add_shortcut\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @ShortCut@.\n--   \t\t\t\tAn @id@ can optionally be provided. If no @id@ is provided, one will be created from the index.\nadd_shortcut ::\n               (PopupMenu :< cls, Object :< cls) =>\n               cls -> ShortCut -> Maybe Int -> Maybe Bool -> IO ()\nadd_shortcut cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (-1)) toVariant arg2,\n       maybe (VariantBool False) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_add_shortcut (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"add_shortcut\"\n           '[ShortCut, Maybe Int, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.add_shortcut\n\n{-# NOINLINE bindPopupMenu_add_submenu_item #-}\n\n-- | Adds an item that will act as a submenu of the parent @PopupMenu@ node when clicked. The @submenu@ argument is the name of the child @PopupMenu@ node that will be shown when the item is clicked.\n--   \t\t\t\tAn @id@ can optionally be provided. If no @id@ is provided, one will be created from the index.\nbindPopupMenu_add_submenu_item :: MethodBind\nbindPopupMenu_add_submenu_item\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"add_submenu_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an item that will act as a submenu of the parent @PopupMenu@ node when clicked. The @submenu@ argument is the name of the child @PopupMenu@ node that will be shown when the item is clicked.\n--   \t\t\t\tAn @id@ can optionally be provided. If no @id@ is provided, one will be created from the index.\nadd_submenu_item ::\n                   (PopupMenu :< cls, Object :< cls) =>\n                   cls -> GodotString -> GodotString -> Maybe Int -> IO ()\nadd_submenu_item cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (-1)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_add_submenu_item (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"add_submenu_item\"\n           '[GodotString, GodotString, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.add_submenu_item\n\n{-# NOINLINE bindPopupMenu_clear #-}\n\n-- | Removes all items from the @PopupMenu@.\nbindPopupMenu_clear :: MethodBind\nbindPopupMenu_clear\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all items from the @PopupMenu@.\nclear :: (PopupMenu :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_clear (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.PopupMenu.clear\n\n{-# NOINLINE bindPopupMenu_get_allow_search #-}\n\n-- | If @true@, allows to navigate @PopupMenu@ with letter keys.\nbindPopupMenu_get_allow_search :: MethodBind\nbindPopupMenu_get_allow_search\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"get_allow_search\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, allows to navigate @PopupMenu@ with letter keys.\nget_allow_search ::\n                   (PopupMenu :< cls, Object :< cls) => cls -> IO Bool\nget_allow_search cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_get_allow_search (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"get_allow_search\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.PopupMenu.get_allow_search\n\n{-# NOINLINE bindPopupMenu_get_item_accelerator #-}\n\n-- | Returns the accelerator of the item at index @idx@. Accelerators are special combinations of keys that activate the item, no matter which control is focused.\nbindPopupMenu_get_item_accelerator :: MethodBind\nbindPopupMenu_get_item_accelerator\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_accelerator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the accelerator of the item at index @idx@. Accelerators are special combinations of keys that activate the item, no matter which control is focused.\nget_item_accelerator ::\n                       (PopupMenu :< cls, Object :< cls) => cls -> Int -> IO Int\nget_item_accelerator cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_get_item_accelerator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"get_item_accelerator\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.PopupMenu.get_item_accelerator\n\n{-# NOINLINE bindPopupMenu_get_item_count #-}\n\n-- | Returns the number of items in the @PopupMenu@.\nbindPopupMenu_get_item_count :: MethodBind\nbindPopupMenu_get_item_count\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of items in the @PopupMenu@.\nget_item_count ::\n                 (PopupMenu :< cls, Object :< cls) => cls -> IO Int\nget_item_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_get_item_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"get_item_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.PopupMenu.get_item_count\n\n{-# NOINLINE bindPopupMenu_get_item_icon #-}\n\n-- | Returns the icon of the item at index @idx@.\nbindPopupMenu_get_item_icon :: MethodBind\nbindPopupMenu_get_item_icon\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the icon of the item at index @idx@.\nget_item_icon ::\n                (PopupMenu :< cls, Object :< cls) => cls -> Int -> IO Texture\nget_item_icon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_get_item_icon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"get_item_icon\" '[Int] (IO Texture)\n         where\n        nodeMethod = Godot.Core.PopupMenu.get_item_icon\n\n{-# NOINLINE bindPopupMenu_get_item_id #-}\n\n-- | Returns the id of the item at index @idx@. @id@ can be manually assigned, while index can not.\nbindPopupMenu_get_item_id :: MethodBind\nbindPopupMenu_get_item_id\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the id of the item at index @idx@. @id@ can be manually assigned, while index can not.\nget_item_id ::\n              (PopupMenu :< cls, Object :< cls) => cls -> Int -> IO Int\nget_item_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_get_item_id (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"get_item_id\" '[Int] (IO Int) where\n        nodeMethod = Godot.Core.PopupMenu.get_item_id\n\n{-# NOINLINE bindPopupMenu_get_item_index #-}\n\n-- | Returns the index of the item containing the specified @id@. Index is automatically assigned to each item by the engine. Index can not be set manually.\nbindPopupMenu_get_item_index :: MethodBind\nbindPopupMenu_get_item_index\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the index of the item containing the specified @id@. Index is automatically assigned to each item by the engine. Index can not be set manually.\nget_item_index ::\n                 (PopupMenu :< cls, Object :< cls) => cls -> Int -> IO Int\nget_item_index cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_get_item_index (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"get_item_index\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.PopupMenu.get_item_index\n\n{-# NOINLINE bindPopupMenu_get_item_metadata #-}\n\n-- | Returns the metadata of the specified item, which might be of any type. You can set it with @method set_item_metadata@, which provides a simple way of assigning context data to items.\nbindPopupMenu_get_item_metadata :: MethodBind\nbindPopupMenu_get_item_metadata\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_metadata\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the metadata of the specified item, which might be of any type. You can set it with @method set_item_metadata@, which provides a simple way of assigning context data to items.\nget_item_metadata ::\n                    (PopupMenu :< cls, Object :< cls) => cls -> Int -> IO GodotVariant\nget_item_metadata cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_get_item_metadata (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"get_item_metadata\" '[Int]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.PopupMenu.get_item_metadata\n\n{-# NOINLINE bindPopupMenu_get_item_shortcut #-}\n\n-- | Returns the @ShortCut@ associated with the specified @idx@ item.\nbindPopupMenu_get_item_shortcut :: MethodBind\nbindPopupMenu_get_item_shortcut\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_shortcut\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @ShortCut@ associated with the specified @idx@ item.\nget_item_shortcut ::\n                    (PopupMenu :< cls, Object :< cls) => cls -> Int -> IO ShortCut\nget_item_shortcut cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_get_item_shortcut (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"get_item_shortcut\" '[Int]\n           (IO ShortCut)\n         where\n        nodeMethod = Godot.Core.PopupMenu.get_item_shortcut\n\n{-# NOINLINE bindPopupMenu_get_item_submenu #-}\n\n-- | Returns the submenu name of the item at index @idx@. See @method add_submenu_item@ for more info on how to add a submenu.\nbindPopupMenu_get_item_submenu :: MethodBind\nbindPopupMenu_get_item_submenu\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_submenu\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the submenu name of the item at index @idx@. See @method add_submenu_item@ for more info on how to add a submenu.\nget_item_submenu ::\n                   (PopupMenu :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_item_submenu cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_get_item_submenu (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"get_item_submenu\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.PopupMenu.get_item_submenu\n\n{-# NOINLINE bindPopupMenu_get_item_text #-}\n\n-- | Returns the text of the item at index @idx@.\nbindPopupMenu_get_item_text :: MethodBind\nbindPopupMenu_get_item_text\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the text of the item at index @idx@.\nget_item_text ::\n                (PopupMenu :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_item_text cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_get_item_text (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"get_item_text\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.PopupMenu.get_item_text\n\n{-# NOINLINE bindPopupMenu_get_item_tooltip #-}\n\n-- | Returns the tooltip associated with the specified index index @idx@.\nbindPopupMenu_get_item_tooltip :: MethodBind\nbindPopupMenu_get_item_tooltip\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_tooltip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tooltip associated with the specified index index @idx@.\nget_item_tooltip ::\n                   (PopupMenu :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_item_tooltip cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_get_item_tooltip (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"get_item_tooltip\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.PopupMenu.get_item_tooltip\n\n{-# NOINLINE bindPopupMenu_get_submenu_popup_delay #-}\n\n-- | Sets the delay time in seconds for the submenu item to popup on mouse hovering. If the popup menu is added as a child of another (acting as a submenu), it will inherit the delay time of the parent menu item.\nbindPopupMenu_get_submenu_popup_delay :: MethodBind\nbindPopupMenu_get_submenu_popup_delay\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"get_submenu_popup_delay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the delay time in seconds for the submenu item to popup on mouse hovering. If the popup menu is added as a child of another (acting as a submenu), it will inherit the delay time of the parent menu item.\nget_submenu_popup_delay ::\n                          (PopupMenu :< cls, Object :< cls) => cls -> IO Float\nget_submenu_popup_delay cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_get_submenu_popup_delay\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"get_submenu_popup_delay\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.PopupMenu.get_submenu_popup_delay\n\n{-# NOINLINE bindPopupMenu_is_hide_on_checkable_item_selection #-}\n\n-- | If @true@, hides the @PopupMenu@ when a checkbox or radio button is selected.\nbindPopupMenu_is_hide_on_checkable_item_selection :: MethodBind\nbindPopupMenu_is_hide_on_checkable_item_selection\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"is_hide_on_checkable_item_selection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, hides the @PopupMenu@ when a checkbox or radio button is selected.\nis_hide_on_checkable_item_selection ::\n                                      (PopupMenu :< cls, Object :< cls) => cls -> IO Bool\nis_hide_on_checkable_item_selection cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPopupMenu_is_hide_on_checkable_item_selection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"is_hide_on_checkable_item_selection\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.PopupMenu.is_hide_on_checkable_item_selection\n\n{-# NOINLINE bindPopupMenu_is_hide_on_item_selection #-}\n\n-- | If @true@, hides the @PopupMenu@ when an item is selected.\nbindPopupMenu_is_hide_on_item_selection :: MethodBind\nbindPopupMenu_is_hide_on_item_selection\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"is_hide_on_item_selection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, hides the @PopupMenu@ when an item is selected.\nis_hide_on_item_selection ::\n                            (PopupMenu :< cls, Object :< cls) => cls -> IO Bool\nis_hide_on_item_selection cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_is_hide_on_item_selection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"is_hide_on_item_selection\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PopupMenu.is_hide_on_item_selection\n\n{-# NOINLINE bindPopupMenu_is_hide_on_state_item_selection #-}\n\n-- | If @true@, hides the @PopupMenu@ when a state item is selected.\nbindPopupMenu_is_hide_on_state_item_selection :: MethodBind\nbindPopupMenu_is_hide_on_state_item_selection\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"is_hide_on_state_item_selection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, hides the @PopupMenu@ when a state item is selected.\nis_hide_on_state_item_selection ::\n                                  (PopupMenu :< cls, Object :< cls) => cls -> IO Bool\nis_hide_on_state_item_selection cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPopupMenu_is_hide_on_state_item_selection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"is_hide_on_state_item_selection\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PopupMenu.is_hide_on_state_item_selection\n\n{-# NOINLINE bindPopupMenu_is_hide_on_window_lose_focus #-}\n\n-- | Returns @true@ if the popup will be hidden when the window loses focus or not.\nbindPopupMenu_is_hide_on_window_lose_focus :: MethodBind\nbindPopupMenu_is_hide_on_window_lose_focus\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"is_hide_on_window_lose_focus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the popup will be hidden when the window loses focus or not.\nis_hide_on_window_lose_focus ::\n                               (PopupMenu :< cls, Object :< cls) => cls -> IO Bool\nis_hide_on_window_lose_focus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_is_hide_on_window_lose_focus\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"is_hide_on_window_lose_focus\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PopupMenu.is_hide_on_window_lose_focus\n\n{-# NOINLINE bindPopupMenu_is_item_checkable #-}\n\n-- | Returns @true@ if the item at index @idx@ is checkable in some way, i.e. if it has a checkbox or radio button.\n--   \t\t\t\t__Note:__ Checkable items just display a checkmark or radio button, but don't have any built-in checking behavior and must be checked/unchecked manually.\nbindPopupMenu_is_item_checkable :: MethodBind\nbindPopupMenu_is_item_checkable\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"is_item_checkable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the item at index @idx@ is checkable in some way, i.e. if it has a checkbox or radio button.\n--   \t\t\t\t__Note:__ Checkable items just display a checkmark or radio button, but don't have any built-in checking behavior and must be checked/unchecked manually.\nis_item_checkable ::\n                    (PopupMenu :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_item_checkable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_is_item_checkable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"is_item_checkable\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.PopupMenu.is_item_checkable\n\n{-# NOINLINE bindPopupMenu_is_item_checked #-}\n\n-- | Returns @true@ if the item at index @idx@ is checked.\nbindPopupMenu_is_item_checked :: MethodBind\nbindPopupMenu_is_item_checked\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"is_item_checked\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the item at index @idx@ is checked.\nis_item_checked ::\n                  (PopupMenu :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_item_checked cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_is_item_checked (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"is_item_checked\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.PopupMenu.is_item_checked\n\n{-# NOINLINE bindPopupMenu_is_item_disabled #-}\n\n-- | Returns @true@ if the item at index @idx@ is disabled. When it is disabled it can't be selected, or its action invoked.\n--   \t\t\t\tSee @method set_item_disabled@ for more info on how to disable an item.\nbindPopupMenu_is_item_disabled :: MethodBind\nbindPopupMenu_is_item_disabled\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"is_item_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the item at index @idx@ is disabled. When it is disabled it can't be selected, or its action invoked.\n--   \t\t\t\tSee @method set_item_disabled@ for more info on how to disable an item.\nis_item_disabled ::\n                   (PopupMenu :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_item_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_is_item_disabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"is_item_disabled\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.PopupMenu.is_item_disabled\n\n{-# NOINLINE bindPopupMenu_is_item_radio_checkable #-}\n\n-- | Returns @true@ if the item at index @idx@ has radio button-style checkability.\n--   \t\t\t\t__Note:__ This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups.\nbindPopupMenu_is_item_radio_checkable :: MethodBind\nbindPopupMenu_is_item_radio_checkable\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"is_item_radio_checkable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the item at index @idx@ has radio button-style checkability.\n--   \t\t\t\t__Note:__ This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups.\nis_item_radio_checkable ::\n                          (PopupMenu :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_item_radio_checkable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_is_item_radio_checkable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"is_item_radio_checkable\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PopupMenu.is_item_radio_checkable\n\n{-# NOINLINE bindPopupMenu_is_item_separator #-}\n\n-- | Returns @true@ if the item is a separator. If it is, it will be displayed as a line. See @method add_separator@ for more info on how to add a separator.\nbindPopupMenu_is_item_separator :: MethodBind\nbindPopupMenu_is_item_separator\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"is_item_separator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the item is a separator. If it is, it will be displayed as a line. See @method add_separator@ for more info on how to add a separator.\nis_item_separator ::\n                    (PopupMenu :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_item_separator cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_is_item_separator (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"is_item_separator\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.PopupMenu.is_item_separator\n\n{-# NOINLINE bindPopupMenu_is_item_shortcut_disabled #-}\n\n-- | Returns @true@ if the specified item's shortcut is disabled.\nbindPopupMenu_is_item_shortcut_disabled :: MethodBind\nbindPopupMenu_is_item_shortcut_disabled\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"is_item_shortcut_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the specified item's shortcut is disabled.\nis_item_shortcut_disabled ::\n                            (PopupMenu :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_item_shortcut_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_is_item_shortcut_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"is_item_shortcut_disabled\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.PopupMenu.is_item_shortcut_disabled\n\n{-# NOINLINE bindPopupMenu_remove_item #-}\n\n-- | Removes the item at index @idx@ from the menu.\n--   \t\t\t\t__Note:__ The indices of items after the removed item will be shifted by one.\nbindPopupMenu_remove_item :: MethodBind\nbindPopupMenu_remove_item\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"remove_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the item at index @idx@ from the menu.\n--   \t\t\t\t__Note:__ The indices of items after the removed item will be shifted by one.\nremove_item ::\n              (PopupMenu :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_item cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_remove_item (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"remove_item\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.PopupMenu.remove_item\n\n{-# NOINLINE bindPopupMenu_set_allow_search #-}\n\n-- | If @true@, allows to navigate @PopupMenu@ with letter keys.\nbindPopupMenu_set_allow_search :: MethodBind\nbindPopupMenu_set_allow_search\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_allow_search\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, allows to navigate @PopupMenu@ with letter keys.\nset_allow_search ::\n                   (PopupMenu :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_allow_search cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_allow_search (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_allow_search\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_allow_search\n\n{-# NOINLINE bindPopupMenu_set_hide_on_checkable_item_selection #-}\n\n-- | If @true@, hides the @PopupMenu@ when a checkbox or radio button is selected.\nbindPopupMenu_set_hide_on_checkable_item_selection :: MethodBind\nbindPopupMenu_set_hide_on_checkable_item_selection\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_hide_on_checkable_item_selection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, hides the @PopupMenu@ when a checkbox or radio button is selected.\nset_hide_on_checkable_item_selection ::\n                                       (PopupMenu :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_hide_on_checkable_item_selection cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPopupMenu_set_hide_on_checkable_item_selection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu\n           \"set_hide_on_checkable_item_selection\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.PopupMenu.set_hide_on_checkable_item_selection\n\n{-# NOINLINE bindPopupMenu_set_hide_on_item_selection #-}\n\n-- | If @true@, hides the @PopupMenu@ when an item is selected.\nbindPopupMenu_set_hide_on_item_selection :: MethodBind\nbindPopupMenu_set_hide_on_item_selection\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_hide_on_item_selection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, hides the @PopupMenu@ when an item is selected.\nset_hide_on_item_selection ::\n                             (PopupMenu :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_hide_on_item_selection cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_hide_on_item_selection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_hide_on_item_selection\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_hide_on_item_selection\n\n{-# NOINLINE bindPopupMenu_set_hide_on_state_item_selection #-}\n\n-- | If @true@, hides the @PopupMenu@ when a state item is selected.\nbindPopupMenu_set_hide_on_state_item_selection :: MethodBind\nbindPopupMenu_set_hide_on_state_item_selection\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_hide_on_state_item_selection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, hides the @PopupMenu@ when a state item is selected.\nset_hide_on_state_item_selection ::\n                                   (PopupMenu :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_hide_on_state_item_selection cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindPopupMenu_set_hide_on_state_item_selection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_hide_on_state_item_selection\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_hide_on_state_item_selection\n\n{-# NOINLINE bindPopupMenu_set_hide_on_window_lose_focus #-}\n\n-- | Hides the @PopupMenu@ when the window loses focus.\nbindPopupMenu_set_hide_on_window_lose_focus :: MethodBind\nbindPopupMenu_set_hide_on_window_lose_focus\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_hide_on_window_lose_focus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Hides the @PopupMenu@ when the window loses focus.\nset_hide_on_window_lose_focus ::\n                                (PopupMenu :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_hide_on_window_lose_focus cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_hide_on_window_lose_focus\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_hide_on_window_lose_focus\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_hide_on_window_lose_focus\n\n{-# NOINLINE bindPopupMenu_set_item_accelerator #-}\n\n-- | Sets the accelerator of the item at index @idx@. Accelerators are special combinations of keys that activate the item, no matter which control is focused.\nbindPopupMenu_set_item_accelerator :: MethodBind\nbindPopupMenu_set_item_accelerator\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_accelerator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the accelerator of the item at index @idx@. Accelerators are special combinations of keys that activate the item, no matter which control is focused.\nset_item_accelerator ::\n                       (PopupMenu :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nset_item_accelerator cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_item_accelerator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_item_accelerator\" '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_item_accelerator\n\n{-# NOINLINE bindPopupMenu_set_item_as_checkable #-}\n\n-- | Sets whether the item at index @idx@ has a checkbox. If @false@, sets the type of the item to plain text.\n--   \t\t\t\t__Note:__ Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually.\nbindPopupMenu_set_item_as_checkable :: MethodBind\nbindPopupMenu_set_item_as_checkable\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_as_checkable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether the item at index @idx@ has a checkbox. If @false@, sets the type of the item to plain text.\n--   \t\t\t\t__Note:__ Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually.\nset_item_as_checkable ::\n                        (PopupMenu :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_item_as_checkable cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_item_as_checkable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_item_as_checkable\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_item_as_checkable\n\n{-# NOINLINE bindPopupMenu_set_item_as_radio_checkable #-}\n\n-- | Sets the type of the item at the specified index @idx@ to radio button. If @false@, sets the type of the item to plain text.\nbindPopupMenu_set_item_as_radio_checkable :: MethodBind\nbindPopupMenu_set_item_as_radio_checkable\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_as_radio_checkable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the type of the item at the specified index @idx@ to radio button. If @false@, sets the type of the item to plain text.\nset_item_as_radio_checkable ::\n                              (PopupMenu :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_item_as_radio_checkable cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_item_as_radio_checkable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_item_as_radio_checkable\"\n           '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_item_as_radio_checkable\n\n{-# NOINLINE bindPopupMenu_set_item_as_separator #-}\n\n-- | Mark the item at index @idx@ as a separator, which means that it would be displayed as a line. If @false@, sets the type of the item to plain text.\nbindPopupMenu_set_item_as_separator :: MethodBind\nbindPopupMenu_set_item_as_separator\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_as_separator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Mark the item at index @idx@ as a separator, which means that it would be displayed as a line. If @false@, sets the type of the item to plain text.\nset_item_as_separator ::\n                        (PopupMenu :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_item_as_separator cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_item_as_separator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_item_as_separator\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_item_as_separator\n\n{-# NOINLINE bindPopupMenu_set_item_checked #-}\n\n-- | Sets the checkstate status of the item at index @idx@.\nbindPopupMenu_set_item_checked :: MethodBind\nbindPopupMenu_set_item_checked\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_checked\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the checkstate status of the item at index @idx@.\nset_item_checked ::\n                   (PopupMenu :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_item_checked cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_item_checked (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_item_checked\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_item_checked\n\n{-# NOINLINE bindPopupMenu_set_item_disabled #-}\n\n-- | Enables/disables the item at index @idx@. When it is disabled, it can't be selected and its action can't be invoked.\nbindPopupMenu_set_item_disabled :: MethodBind\nbindPopupMenu_set_item_disabled\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables/disables the item at index @idx@. When it is disabled, it can't be selected and its action can't be invoked.\nset_item_disabled ::\n                    (PopupMenu :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_item_disabled cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_item_disabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_item_disabled\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_item_disabled\n\n{-# NOINLINE bindPopupMenu_set_item_icon #-}\n\n-- | Replaces the @Texture@ icon of the specified @idx@.\nbindPopupMenu_set_item_icon :: MethodBind\nbindPopupMenu_set_item_icon\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Replaces the @Texture@ icon of the specified @idx@.\nset_item_icon ::\n                (PopupMenu :< cls, Object :< cls) => cls -> Int -> Texture -> IO ()\nset_item_icon cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_item_icon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_item_icon\" '[Int, Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_item_icon\n\n{-# NOINLINE bindPopupMenu_set_item_id #-}\n\n-- | Sets the @id@ of the item at index @idx@.\nbindPopupMenu_set_item_id :: MethodBind\nbindPopupMenu_set_item_id\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @id@ of the item at index @idx@.\nset_item_id ::\n              (PopupMenu :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nset_item_id cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_item_id (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_item_id\" '[Int, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_item_id\n\n{-# NOINLINE bindPopupMenu_set_item_metadata #-}\n\n-- | Sets the metadata of an item, which may be of any type. You can later get it with @method get_item_metadata@, which provides a simple way of assigning context data to items.\nbindPopupMenu_set_item_metadata :: MethodBind\nbindPopupMenu_set_item_metadata\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_metadata\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the metadata of an item, which may be of any type. You can later get it with @method get_item_metadata@, which provides a simple way of assigning context data to items.\nset_item_metadata ::\n                    (PopupMenu :< cls, Object :< cls) =>\n                    cls -> Int -> GodotVariant -> IO ()\nset_item_metadata cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_item_metadata (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_item_metadata\"\n           '[Int, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_item_metadata\n\n{-# NOINLINE bindPopupMenu_set_item_multistate #-}\n\n-- | Sets the state of an multistate item. See @method add_multistate_item@ for details.\nbindPopupMenu_set_item_multistate :: MethodBind\nbindPopupMenu_set_item_multistate\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_multistate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the state of an multistate item. See @method add_multistate_item@ for details.\nset_item_multistate ::\n                      (PopupMenu :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nset_item_multistate cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_item_multistate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_item_multistate\" '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_item_multistate\n\n{-# NOINLINE bindPopupMenu_set_item_shortcut #-}\n\n-- | Sets a @ShortCut@ for the specified item @idx@.\nbindPopupMenu_set_item_shortcut :: MethodBind\nbindPopupMenu_set_item_shortcut\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_shortcut\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a @ShortCut@ for the specified item @idx@.\nset_item_shortcut ::\n                    (PopupMenu :< cls, Object :< cls) =>\n                    cls -> Int -> ShortCut -> Maybe Bool -> IO ()\nset_item_shortcut cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool False) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_item_shortcut (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_item_shortcut\"\n           '[Int, ShortCut, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_item_shortcut\n\n{-# NOINLINE bindPopupMenu_set_item_shortcut_disabled #-}\n\n-- | Disables the @ShortCut@ of the specified index @idx@.\nbindPopupMenu_set_item_shortcut_disabled :: MethodBind\nbindPopupMenu_set_item_shortcut_disabled\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_shortcut_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Disables the @ShortCut@ of the specified index @idx@.\nset_item_shortcut_disabled ::\n                             (PopupMenu :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_item_shortcut_disabled cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_item_shortcut_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_item_shortcut_disabled\"\n           '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_item_shortcut_disabled\n\n{-# NOINLINE bindPopupMenu_set_item_submenu #-}\n\n-- | Sets the submenu of the item at index @idx@. The submenu is the name of a child @PopupMenu@ node that would be shown when the item is clicked.\nbindPopupMenu_set_item_submenu :: MethodBind\nbindPopupMenu_set_item_submenu\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_submenu\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the submenu of the item at index @idx@. The submenu is the name of a child @PopupMenu@ node that would be shown when the item is clicked.\nset_item_submenu ::\n                   (PopupMenu :< cls, Object :< cls) =>\n                   cls -> Int -> GodotString -> IO ()\nset_item_submenu cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_item_submenu (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_item_submenu\"\n           '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_item_submenu\n\n{-# NOINLINE bindPopupMenu_set_item_text #-}\n\n-- | Sets the text of the item at index @idx@.\nbindPopupMenu_set_item_text :: MethodBind\nbindPopupMenu_set_item_text\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the text of the item at index @idx@.\nset_item_text ::\n                (PopupMenu :< cls, Object :< cls) =>\n                cls -> Int -> GodotString -> IO ()\nset_item_text cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_item_text (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_item_text\" '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_item_text\n\n{-# NOINLINE bindPopupMenu_set_item_tooltip #-}\n\n-- | Sets the @String@ tooltip of the item at the specified index @idx@.\nbindPopupMenu_set_item_tooltip :: MethodBind\nbindPopupMenu_set_item_tooltip\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_item_tooltip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @String@ tooltip of the item at the specified index @idx@.\nset_item_tooltip ::\n                   (PopupMenu :< cls, Object :< cls) =>\n                   cls -> Int -> GodotString -> IO ()\nset_item_tooltip cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_item_tooltip (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_item_tooltip\"\n           '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_item_tooltip\n\n{-# NOINLINE bindPopupMenu_set_submenu_popup_delay #-}\n\n-- | Sets the delay time in seconds for the submenu item to popup on mouse hovering. If the popup menu is added as a child of another (acting as a submenu), it will inherit the delay time of the parent menu item.\nbindPopupMenu_set_submenu_popup_delay :: MethodBind\nbindPopupMenu_set_submenu_popup_delay\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"set_submenu_popup_delay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the delay time in seconds for the submenu item to popup on mouse hovering. If the popup menu is added as a child of another (acting as a submenu), it will inherit the delay time of the parent menu item.\nset_submenu_popup_delay ::\n                          (PopupMenu :< cls, Object :< cls) => cls -> Float -> IO ()\nset_submenu_popup_delay cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_set_submenu_popup_delay\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"set_submenu_popup_delay\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.set_submenu_popup_delay\n\n{-# NOINLINE bindPopupMenu_toggle_item_checked #-}\n\n-- | Toggles the check state of the item of the specified index @idx@.\nbindPopupMenu_toggle_item_checked :: MethodBind\nbindPopupMenu_toggle_item_checked\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"toggle_item_checked\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Toggles the check state of the item of the specified index @idx@.\ntoggle_item_checked ::\n                      (PopupMenu :< cls, Object :< cls) => cls -> Int -> IO ()\ntoggle_item_checked cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_toggle_item_checked\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"toggle_item_checked\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.toggle_item_checked\n\n{-# NOINLINE bindPopupMenu_toggle_item_multistate #-}\n\n-- | Cycle to the next state of an multistate item. See @method add_multistate_item@ for details.\nbindPopupMenu_toggle_item_multistate :: MethodBind\nbindPopupMenu_toggle_item_multistate\n  = unsafePerformIO $\n      withCString \"PopupMenu\" $\n        \\ clsNamePtr ->\n          withCString \"toggle_item_multistate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Cycle to the next state of an multistate item. See @method add_multistate_item@ for details.\ntoggle_item_multistate ::\n                         (PopupMenu :< cls, Object :< cls) => cls -> Int -> IO ()\ntoggle_item_multistate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPopupMenu_toggle_item_multistate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PopupMenu \"toggle_item_multistate\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PopupMenu.toggle_item_multistate"
  },
  {
    "path": "src/Godot/Core/PopupPanel.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PopupPanel () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Popup()"
  },
  {
    "path": "src/Godot/Core/Position2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Position2D\n       (Godot.Core.Position2D._get_gizmo_extents,\n        Godot.Core.Position2D._set_gizmo_extents)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\ninstance NodeProperty Position2D \"gizmo_extents\" Float 'False where\n        nodeProperty\n          = (_get_gizmo_extents, wrapDroppingSetter _set_gizmo_extents,\n             Nothing)\n\n{-# NOINLINE bindPosition2D__get_gizmo_extents #-}\n\nbindPosition2D__get_gizmo_extents :: MethodBind\nbindPosition2D__get_gizmo_extents\n  = unsafePerformIO $\n      withCString \"Position2D\" $\n        \\ clsNamePtr ->\n          withCString \"_get_gizmo_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_gizmo_extents ::\n                     (Position2D :< cls, Object :< cls) => cls -> IO Float\n_get_gizmo_extents cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPosition2D__get_gizmo_extents\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Position2D \"_get_gizmo_extents\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Position2D._get_gizmo_extents\n\n{-# NOINLINE bindPosition2D__set_gizmo_extents #-}\n\nbindPosition2D__set_gizmo_extents :: MethodBind\nbindPosition2D__set_gizmo_extents\n  = unsafePerformIO $\n      withCString \"Position2D\" $\n        \\ clsNamePtr ->\n          withCString \"_set_gizmo_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_gizmo_extents ::\n                     (Position2D :< cls, Object :< cls) => cls -> Float -> IO ()\n_set_gizmo_extents cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPosition2D__set_gizmo_extents\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Position2D \"_set_gizmo_extents\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Position2D._set_gizmo_extents"
  },
  {
    "path": "src/Godot/Core/Position3D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Position3D () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()"
  },
  {
    "path": "src/Godot/Core/PrimitiveMesh.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PrimitiveMesh\n       (Godot.Core.PrimitiveMesh._update,\n        Godot.Core.PrimitiveMesh.get_custom_aabb,\n        Godot.Core.PrimitiveMesh.get_flip_faces,\n        Godot.Core.PrimitiveMesh.get_material,\n        Godot.Core.PrimitiveMesh.get_mesh_arrays,\n        Godot.Core.PrimitiveMesh.set_custom_aabb,\n        Godot.Core.PrimitiveMesh.set_flip_faces,\n        Godot.Core.PrimitiveMesh.set_material)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Mesh()\n\ninstance NodeProperty PrimitiveMesh \"custom_aabb\" Aabb 'False where\n        nodeProperty\n          = (get_custom_aabb, wrapDroppingSetter set_custom_aabb, Nothing)\n\ninstance NodeProperty PrimitiveMesh \"flip_faces\" Bool 'False where\n        nodeProperty\n          = (get_flip_faces, wrapDroppingSetter set_flip_faces, Nothing)\n\ninstance NodeProperty PrimitiveMesh \"material\" Material 'False\n         where\n        nodeProperty\n          = (get_material, wrapDroppingSetter set_material, Nothing)\n\n{-# NOINLINE bindPrimitiveMesh__update #-}\n\nbindPrimitiveMesh__update :: MethodBind\nbindPrimitiveMesh__update\n  = unsafePerformIO $\n      withCString \"PrimitiveMesh\" $\n        \\ clsNamePtr ->\n          withCString \"_update\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update :: (PrimitiveMesh :< cls, Object :< cls) => cls -> IO ()\n_update cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPrimitiveMesh__update (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PrimitiveMesh \"_update\" '[] (IO ()) where\n        nodeMethod = Godot.Core.PrimitiveMesh._update\n\n{-# NOINLINE bindPrimitiveMesh_get_custom_aabb #-}\n\n-- | Overrides the @AABB@ with one defined by user for use with frustum culling. Especially useful to avoid unnexpected culling when  using a shader to offset vertices.\nbindPrimitiveMesh_get_custom_aabb :: MethodBind\nbindPrimitiveMesh_get_custom_aabb\n  = unsafePerformIO $\n      withCString \"PrimitiveMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_custom_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Overrides the @AABB@ with one defined by user for use with frustum culling. Especially useful to avoid unnexpected culling when  using a shader to offset vertices.\nget_custom_aabb ::\n                  (PrimitiveMesh :< cls, Object :< cls) => cls -> IO Aabb\nget_custom_aabb cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPrimitiveMesh_get_custom_aabb\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PrimitiveMesh \"get_custom_aabb\" '[] (IO Aabb)\n         where\n        nodeMethod = Godot.Core.PrimitiveMesh.get_custom_aabb\n\n{-# NOINLINE bindPrimitiveMesh_get_flip_faces #-}\n\n-- | If set, the order of the vertices in each triangle are reversed resulting in the backside of the mesh being drawn.\n--   \t\t\tThis gives the same result as using @SpatialMaterial.CULL_BACK@ in @SpatialMaterial.params_cull_mode@.\nbindPrimitiveMesh_get_flip_faces :: MethodBind\nbindPrimitiveMesh_get_flip_faces\n  = unsafePerformIO $\n      withCString \"PrimitiveMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_flip_faces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If set, the order of the vertices in each triangle are reversed resulting in the backside of the mesh being drawn.\n--   \t\t\tThis gives the same result as using @SpatialMaterial.CULL_BACK@ in @SpatialMaterial.params_cull_mode@.\nget_flip_faces ::\n                 (PrimitiveMesh :< cls, Object :< cls) => cls -> IO Bool\nget_flip_faces cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPrimitiveMesh_get_flip_faces\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PrimitiveMesh \"get_flip_faces\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.PrimitiveMesh.get_flip_faces\n\n{-# NOINLINE bindPrimitiveMesh_get_material #-}\n\n-- | The current @Material@ of the primitive mesh.\nbindPrimitiveMesh_get_material :: MethodBind\nbindPrimitiveMesh_get_material\n  = unsafePerformIO $\n      withCString \"PrimitiveMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current @Material@ of the primitive mesh.\nget_material ::\n               (PrimitiveMesh :< cls, Object :< cls) => cls -> IO Material\nget_material cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPrimitiveMesh_get_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PrimitiveMesh \"get_material\" '[] (IO Material)\n         where\n        nodeMethod = Godot.Core.PrimitiveMesh.get_material\n\n{-# NOINLINE bindPrimitiveMesh_get_mesh_arrays #-}\n\n-- | Returns mesh arrays used to constitute surface of @Mesh@. The result can be passed to @method ArrayMesh.add_surface_from_arrays@ to create a new surface. For example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar c := CylinderMesh.new()\n--   \t\t\t\tvar arr_mesh := ArrayMesh.new()\n--   \t\t\t\tarr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, c.get_mesh_arrays())\n--   \t\t\t\t\n--   @\nbindPrimitiveMesh_get_mesh_arrays :: MethodBind\nbindPrimitiveMesh_get_mesh_arrays\n  = unsafePerformIO $\n      withCString \"PrimitiveMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_mesh_arrays\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns mesh arrays used to constitute surface of @Mesh@. The result can be passed to @method ArrayMesh.add_surface_from_arrays@ to create a new surface. For example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar c := CylinderMesh.new()\n--   \t\t\t\tvar arr_mesh := ArrayMesh.new()\n--   \t\t\t\tarr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, c.get_mesh_arrays())\n--   \t\t\t\t\n--   @\nget_mesh_arrays ::\n                  (PrimitiveMesh :< cls, Object :< cls) => cls -> IO Array\nget_mesh_arrays cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPrimitiveMesh_get_mesh_arrays\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PrimitiveMesh \"get_mesh_arrays\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.PrimitiveMesh.get_mesh_arrays\n\n{-# NOINLINE bindPrimitiveMesh_set_custom_aabb #-}\n\n-- | Overrides the @AABB@ with one defined by user for use with frustum culling. Especially useful to avoid unnexpected culling when  using a shader to offset vertices.\nbindPrimitiveMesh_set_custom_aabb :: MethodBind\nbindPrimitiveMesh_set_custom_aabb\n  = unsafePerformIO $\n      withCString \"PrimitiveMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_custom_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Overrides the @AABB@ with one defined by user for use with frustum culling. Especially useful to avoid unnexpected culling when  using a shader to offset vertices.\nset_custom_aabb ::\n                  (PrimitiveMesh :< cls, Object :< cls) => cls -> Aabb -> IO ()\nset_custom_aabb cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPrimitiveMesh_set_custom_aabb\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PrimitiveMesh \"set_custom_aabb\" '[Aabb] (IO ())\n         where\n        nodeMethod = Godot.Core.PrimitiveMesh.set_custom_aabb\n\n{-# NOINLINE bindPrimitiveMesh_set_flip_faces #-}\n\n-- | If set, the order of the vertices in each triangle are reversed resulting in the backside of the mesh being drawn.\n--   \t\t\tThis gives the same result as using @SpatialMaterial.CULL_BACK@ in @SpatialMaterial.params_cull_mode@.\nbindPrimitiveMesh_set_flip_faces :: MethodBind\nbindPrimitiveMesh_set_flip_faces\n  = unsafePerformIO $\n      withCString \"PrimitiveMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_flip_faces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If set, the order of the vertices in each triangle are reversed resulting in the backside of the mesh being drawn.\n--   \t\t\tThis gives the same result as using @SpatialMaterial.CULL_BACK@ in @SpatialMaterial.params_cull_mode@.\nset_flip_faces ::\n                 (PrimitiveMesh :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_flip_faces cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPrimitiveMesh_set_flip_faces\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PrimitiveMesh \"set_flip_faces\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.PrimitiveMesh.set_flip_faces\n\n{-# NOINLINE bindPrimitiveMesh_set_material #-}\n\n-- | The current @Material@ of the primitive mesh.\nbindPrimitiveMesh_set_material :: MethodBind\nbindPrimitiveMesh_set_material\n  = unsafePerformIO $\n      withCString \"PrimitiveMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current @Material@ of the primitive mesh.\nset_material ::\n               (PrimitiveMesh :< cls, Object :< cls) => cls -> Material -> IO ()\nset_material cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPrimitiveMesh_set_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PrimitiveMesh \"set_material\" '[Material]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.PrimitiveMesh.set_material"
  },
  {
    "path": "src/Godot/Core/PrismMesh.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.PrismMesh\n       (Godot.Core.PrismMesh.get_left_to_right,\n        Godot.Core.PrismMesh.get_size,\n        Godot.Core.PrismMesh.get_subdivide_depth,\n        Godot.Core.PrismMesh.get_subdivide_height,\n        Godot.Core.PrismMesh.get_subdivide_width,\n        Godot.Core.PrismMesh.set_left_to_right,\n        Godot.Core.PrismMesh.set_size,\n        Godot.Core.PrismMesh.set_subdivide_depth,\n        Godot.Core.PrismMesh.set_subdivide_height,\n        Godot.Core.PrismMesh.set_subdivide_width)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PrimitiveMesh()\n\ninstance NodeProperty PrismMesh \"left_to_right\" Float 'False where\n        nodeProperty\n          = (get_left_to_right, wrapDroppingSetter set_left_to_right,\n             Nothing)\n\ninstance NodeProperty PrismMesh \"size\" Vector3 'False where\n        nodeProperty = (get_size, wrapDroppingSetter set_size, Nothing)\n\ninstance NodeProperty PrismMesh \"subdivide_depth\" Int 'False where\n        nodeProperty\n          = (get_subdivide_depth, wrapDroppingSetter set_subdivide_depth,\n             Nothing)\n\ninstance NodeProperty PrismMesh \"subdivide_height\" Int 'False where\n        nodeProperty\n          = (get_subdivide_height, wrapDroppingSetter set_subdivide_height,\n             Nothing)\n\ninstance NodeProperty PrismMesh \"subdivide_width\" Int 'False where\n        nodeProperty\n          = (get_subdivide_width, wrapDroppingSetter set_subdivide_width,\n             Nothing)\n\n{-# NOINLINE bindPrismMesh_get_left_to_right #-}\n\n-- | Displacement of the upper edge along the X axis. 0.0 positions edge straight above the bottom-left edge.\nbindPrismMesh_get_left_to_right :: MethodBind\nbindPrismMesh_get_left_to_right\n  = unsafePerformIO $\n      withCString \"PrismMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_left_to_right\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Displacement of the upper edge along the X axis. 0.0 positions edge straight above the bottom-left edge.\nget_left_to_right ::\n                    (PrismMesh :< cls, Object :< cls) => cls -> IO Float\nget_left_to_right cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPrismMesh_get_left_to_right (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PrismMesh \"get_left_to_right\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.PrismMesh.get_left_to_right\n\n{-# NOINLINE bindPrismMesh_get_size #-}\n\n-- | Size of the prism.\nbindPrismMesh_get_size :: MethodBind\nbindPrismMesh_get_size\n  = unsafePerformIO $\n      withCString \"PrismMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Size of the prism.\nget_size :: (PrismMesh :< cls, Object :< cls) => cls -> IO Vector3\nget_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPrismMesh_get_size (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PrismMesh \"get_size\" '[] (IO Vector3) where\n        nodeMethod = Godot.Core.PrismMesh.get_size\n\n{-# NOINLINE bindPrismMesh_get_subdivide_depth #-}\n\n-- | Number of added edge loops along the Z axis.\nbindPrismMesh_get_subdivide_depth :: MethodBind\nbindPrismMesh_get_subdivide_depth\n  = unsafePerformIO $\n      withCString \"PrismMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_subdivide_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of added edge loops along the Z axis.\nget_subdivide_depth ::\n                      (PrismMesh :< cls, Object :< cls) => cls -> IO Int\nget_subdivide_depth cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPrismMesh_get_subdivide_depth\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PrismMesh \"get_subdivide_depth\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.PrismMesh.get_subdivide_depth\n\n{-# NOINLINE bindPrismMesh_get_subdivide_height #-}\n\n-- | Number of added edge loops along the Y axis.\nbindPrismMesh_get_subdivide_height :: MethodBind\nbindPrismMesh_get_subdivide_height\n  = unsafePerformIO $\n      withCString \"PrismMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_subdivide_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of added edge loops along the Y axis.\nget_subdivide_height ::\n                       (PrismMesh :< cls, Object :< cls) => cls -> IO Int\nget_subdivide_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPrismMesh_get_subdivide_height\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PrismMesh \"get_subdivide_height\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.PrismMesh.get_subdivide_height\n\n{-# NOINLINE bindPrismMesh_get_subdivide_width #-}\n\n-- | Number of added edge loops along the X axis.\nbindPrismMesh_get_subdivide_width :: MethodBind\nbindPrismMesh_get_subdivide_width\n  = unsafePerformIO $\n      withCString \"PrismMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_subdivide_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of added edge loops along the X axis.\nget_subdivide_width ::\n                      (PrismMesh :< cls, Object :< cls) => cls -> IO Int\nget_subdivide_width cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPrismMesh_get_subdivide_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PrismMesh \"get_subdivide_width\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.PrismMesh.get_subdivide_width\n\n{-# NOINLINE bindPrismMesh_set_left_to_right #-}\n\n-- | Displacement of the upper edge along the X axis. 0.0 positions edge straight above the bottom-left edge.\nbindPrismMesh_set_left_to_right :: MethodBind\nbindPrismMesh_set_left_to_right\n  = unsafePerformIO $\n      withCString \"PrismMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_left_to_right\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Displacement of the upper edge along the X axis. 0.0 positions edge straight above the bottom-left edge.\nset_left_to_right ::\n                    (PrismMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_left_to_right cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPrismMesh_set_left_to_right (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PrismMesh \"set_left_to_right\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.PrismMesh.set_left_to_right\n\n{-# NOINLINE bindPrismMesh_set_size #-}\n\n-- | Size of the prism.\nbindPrismMesh_set_size :: MethodBind\nbindPrismMesh_set_size\n  = unsafePerformIO $\n      withCString \"PrismMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Size of the prism.\nset_size ::\n           (PrismMesh :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPrismMesh_set_size (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PrismMesh \"set_size\" '[Vector3] (IO ()) where\n        nodeMethod = Godot.Core.PrismMesh.set_size\n\n{-# NOINLINE bindPrismMesh_set_subdivide_depth #-}\n\n-- | Number of added edge loops along the Z axis.\nbindPrismMesh_set_subdivide_depth :: MethodBind\nbindPrismMesh_set_subdivide_depth\n  = unsafePerformIO $\n      withCString \"PrismMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_subdivide_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of added edge loops along the Z axis.\nset_subdivide_depth ::\n                      (PrismMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_subdivide_depth cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPrismMesh_set_subdivide_depth\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PrismMesh \"set_subdivide_depth\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.PrismMesh.set_subdivide_depth\n\n{-# NOINLINE bindPrismMesh_set_subdivide_height #-}\n\n-- | Number of added edge loops along the Y axis.\nbindPrismMesh_set_subdivide_height :: MethodBind\nbindPrismMesh_set_subdivide_height\n  = unsafePerformIO $\n      withCString \"PrismMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_subdivide_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of added edge loops along the Y axis.\nset_subdivide_height ::\n                       (PrismMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_subdivide_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPrismMesh_set_subdivide_height\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PrismMesh \"set_subdivide_height\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.PrismMesh.set_subdivide_height\n\n{-# NOINLINE bindPrismMesh_set_subdivide_width #-}\n\n-- | Number of added edge loops along the X axis.\nbindPrismMesh_set_subdivide_width :: MethodBind\nbindPrismMesh_set_subdivide_width\n  = unsafePerformIO $\n      withCString \"PrismMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_subdivide_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of added edge loops along the X axis.\nset_subdivide_width ::\n                      (PrismMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_subdivide_width cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindPrismMesh_set_subdivide_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod PrismMesh \"set_subdivide_width\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.PrismMesh.set_subdivide_width"
  },
  {
    "path": "src/Godot/Core/ProceduralSky.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ProceduralSky\n       (Godot.Core.ProceduralSky._TEXTURE_SIZE_512,\n        Godot.Core.ProceduralSky._TEXTURE_SIZE_2048,\n        Godot.Core.ProceduralSky._TEXTURE_SIZE_1024,\n        Godot.Core.ProceduralSky._TEXTURE_SIZE_256,\n        Godot.Core.ProceduralSky._TEXTURE_SIZE_MAX,\n        Godot.Core.ProceduralSky._TEXTURE_SIZE_4096,\n        Godot.Core.ProceduralSky._thread_done,\n        Godot.Core.ProceduralSky._update_sky,\n        Godot.Core.ProceduralSky.get_ground_bottom_color,\n        Godot.Core.ProceduralSky.get_ground_curve,\n        Godot.Core.ProceduralSky.get_ground_energy,\n        Godot.Core.ProceduralSky.get_ground_horizon_color,\n        Godot.Core.ProceduralSky.get_sky_curve,\n        Godot.Core.ProceduralSky.get_sky_energy,\n        Godot.Core.ProceduralSky.get_sky_horizon_color,\n        Godot.Core.ProceduralSky.get_sky_top_color,\n        Godot.Core.ProceduralSky.get_sun_angle_max,\n        Godot.Core.ProceduralSky.get_sun_angle_min,\n        Godot.Core.ProceduralSky.get_sun_color,\n        Godot.Core.ProceduralSky.get_sun_curve,\n        Godot.Core.ProceduralSky.get_sun_energy,\n        Godot.Core.ProceduralSky.get_sun_latitude,\n        Godot.Core.ProceduralSky.get_sun_longitude,\n        Godot.Core.ProceduralSky.get_texture_size,\n        Godot.Core.ProceduralSky.set_ground_bottom_color,\n        Godot.Core.ProceduralSky.set_ground_curve,\n        Godot.Core.ProceduralSky.set_ground_energy,\n        Godot.Core.ProceduralSky.set_ground_horizon_color,\n        Godot.Core.ProceduralSky.set_sky_curve,\n        Godot.Core.ProceduralSky.set_sky_energy,\n        Godot.Core.ProceduralSky.set_sky_horizon_color,\n        Godot.Core.ProceduralSky.set_sky_top_color,\n        Godot.Core.ProceduralSky.set_sun_angle_max,\n        Godot.Core.ProceduralSky.set_sun_angle_min,\n        Godot.Core.ProceduralSky.set_sun_color,\n        Godot.Core.ProceduralSky.set_sun_curve,\n        Godot.Core.ProceduralSky.set_sun_energy,\n        Godot.Core.ProceduralSky.set_sun_latitude,\n        Godot.Core.ProceduralSky.set_sun_longitude,\n        Godot.Core.ProceduralSky.set_texture_size)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Sky()\n\n_TEXTURE_SIZE_512 :: Int\n_TEXTURE_SIZE_512 = 1\n\n_TEXTURE_SIZE_2048 :: Int\n_TEXTURE_SIZE_2048 = 3\n\n_TEXTURE_SIZE_1024 :: Int\n_TEXTURE_SIZE_1024 = 2\n\n_TEXTURE_SIZE_256 :: Int\n_TEXTURE_SIZE_256 = 0\n\n_TEXTURE_SIZE_MAX :: Int\n_TEXTURE_SIZE_MAX = 5\n\n_TEXTURE_SIZE_4096 :: Int\n_TEXTURE_SIZE_4096 = 4\n\ninstance NodeProperty ProceduralSky \"ground_bottom_color\" Color\n           'False\n         where\n        nodeProperty\n          = (get_ground_bottom_color,\n             wrapDroppingSetter set_ground_bottom_color, Nothing)\n\ninstance NodeProperty ProceduralSky \"ground_curve\" Float 'False\n         where\n        nodeProperty\n          = (get_ground_curve, wrapDroppingSetter set_ground_curve, Nothing)\n\ninstance NodeProperty ProceduralSky \"ground_energy\" Float 'False\n         where\n        nodeProperty\n          = (get_ground_energy, wrapDroppingSetter set_ground_energy,\n             Nothing)\n\ninstance NodeProperty ProceduralSky \"ground_horizon_color\" Color\n           'False\n         where\n        nodeProperty\n          = (get_ground_horizon_color,\n             wrapDroppingSetter set_ground_horizon_color, Nothing)\n\ninstance NodeProperty ProceduralSky \"sky_curve\" Float 'False where\n        nodeProperty\n          = (get_sky_curve, wrapDroppingSetter set_sky_curve, Nothing)\n\ninstance NodeProperty ProceduralSky \"sky_energy\" Float 'False where\n        nodeProperty\n          = (get_sky_energy, wrapDroppingSetter set_sky_energy, Nothing)\n\ninstance NodeProperty ProceduralSky \"sky_horizon_color\" Color\n           'False\n         where\n        nodeProperty\n          = (get_sky_horizon_color, wrapDroppingSetter set_sky_horizon_color,\n             Nothing)\n\ninstance NodeProperty ProceduralSky \"sky_top_color\" Color 'False\n         where\n        nodeProperty\n          = (get_sky_top_color, wrapDroppingSetter set_sky_top_color,\n             Nothing)\n\ninstance NodeProperty ProceduralSky \"sun_angle_max\" Float 'False\n         where\n        nodeProperty\n          = (get_sun_angle_max, wrapDroppingSetter set_sun_angle_max,\n             Nothing)\n\ninstance NodeProperty ProceduralSky \"sun_angle_min\" Float 'False\n         where\n        nodeProperty\n          = (get_sun_angle_min, wrapDroppingSetter set_sun_angle_min,\n             Nothing)\n\ninstance NodeProperty ProceduralSky \"sun_color\" Color 'False where\n        nodeProperty\n          = (get_sun_color, wrapDroppingSetter set_sun_color, Nothing)\n\ninstance NodeProperty ProceduralSky \"sun_curve\" Float 'False where\n        nodeProperty\n          = (get_sun_curve, wrapDroppingSetter set_sun_curve, Nothing)\n\ninstance NodeProperty ProceduralSky \"sun_energy\" Float 'False where\n        nodeProperty\n          = (get_sun_energy, wrapDroppingSetter set_sun_energy, Nothing)\n\ninstance NodeProperty ProceduralSky \"sun_latitude\" Float 'False\n         where\n        nodeProperty\n          = (get_sun_latitude, wrapDroppingSetter set_sun_latitude, Nothing)\n\ninstance NodeProperty ProceduralSky \"sun_longitude\" Float 'False\n         where\n        nodeProperty\n          = (get_sun_longitude, wrapDroppingSetter set_sun_longitude,\n             Nothing)\n\ninstance NodeProperty ProceduralSky \"texture_size\" Int 'False where\n        nodeProperty\n          = (get_texture_size, wrapDroppingSetter set_texture_size, Nothing)\n\n{-# NOINLINE bindProceduralSky__thread_done #-}\n\nbindProceduralSky__thread_done :: MethodBind\nbindProceduralSky__thread_done\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"_thread_done\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_thread_done ::\n               (ProceduralSky :< cls, Object :< cls) => cls -> Image -> IO ()\n_thread_done cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky__thread_done (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"_thread_done\" '[Image] (IO ())\n         where\n        nodeMethod = Godot.Core.ProceduralSky._thread_done\n\n{-# NOINLINE bindProceduralSky__update_sky #-}\n\nbindProceduralSky__update_sky :: MethodBind\nbindProceduralSky__update_sky\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"_update_sky\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_sky ::\n              (ProceduralSky :< cls, Object :< cls) => cls -> IO ()\n_update_sky cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky__update_sky (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"_update_sky\" '[] (IO ()) where\n        nodeMethod = Godot.Core.ProceduralSky._update_sky\n\n{-# NOINLINE bindProceduralSky_get_ground_bottom_color #-}\n\n-- | Color of the ground at the bottom.\nbindProceduralSky_get_ground_bottom_color :: MethodBind\nbindProceduralSky_get_ground_bottom_color\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"get_ground_bottom_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Color of the ground at the bottom.\nget_ground_bottom_color ::\n                          (ProceduralSky :< cls, Object :< cls) => cls -> IO Color\nget_ground_bottom_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_get_ground_bottom_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"get_ground_bottom_color\" '[]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.ProceduralSky.get_ground_bottom_color\n\n{-# NOINLINE bindProceduralSky_get_ground_curve #-}\n\n-- | How quickly the @ground_horizon_color@ fades into the @ground_bottom_color@.\nbindProceduralSky_get_ground_curve :: MethodBind\nbindProceduralSky_get_ground_curve\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"get_ground_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How quickly the @ground_horizon_color@ fades into the @ground_bottom_color@.\nget_ground_curve ::\n                   (ProceduralSky :< cls, Object :< cls) => cls -> IO Float\nget_ground_curve cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_get_ground_curve\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"get_ground_curve\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.ProceduralSky.get_ground_curve\n\n{-# NOINLINE bindProceduralSky_get_ground_energy #-}\n\n-- | Amount of energy contribution from the ground.\nbindProceduralSky_get_ground_energy :: MethodBind\nbindProceduralSky_get_ground_energy\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"get_ground_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of energy contribution from the ground.\nget_ground_energy ::\n                    (ProceduralSky :< cls, Object :< cls) => cls -> IO Float\nget_ground_energy cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_get_ground_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"get_ground_energy\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.ProceduralSky.get_ground_energy\n\n{-# NOINLINE bindProceduralSky_get_ground_horizon_color #-}\n\n-- | Color of the ground at the horizon.\nbindProceduralSky_get_ground_horizon_color :: MethodBind\nbindProceduralSky_get_ground_horizon_color\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"get_ground_horizon_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Color of the ground at the horizon.\nget_ground_horizon_color ::\n                           (ProceduralSky :< cls, Object :< cls) => cls -> IO Color\nget_ground_horizon_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_get_ground_horizon_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"get_ground_horizon_color\" '[]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.ProceduralSky.get_ground_horizon_color\n\n{-# NOINLINE bindProceduralSky_get_sky_curve #-}\n\n-- | How quickly the @sky_horizon_color@ fades into the @sky_top_color@.\nbindProceduralSky_get_sky_curve :: MethodBind\nbindProceduralSky_get_sky_curve\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"get_sky_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How quickly the @sky_horizon_color@ fades into the @sky_top_color@.\nget_sky_curve ::\n                (ProceduralSky :< cls, Object :< cls) => cls -> IO Float\nget_sky_curve cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_get_sky_curve (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"get_sky_curve\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.ProceduralSky.get_sky_curve\n\n{-# NOINLINE bindProceduralSky_get_sky_energy #-}\n\n-- | Amount of energy contribution from the sky.\nbindProceduralSky_get_sky_energy :: MethodBind\nbindProceduralSky_get_sky_energy\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"get_sky_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of energy contribution from the sky.\nget_sky_energy ::\n                 (ProceduralSky :< cls, Object :< cls) => cls -> IO Float\nget_sky_energy cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_get_sky_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"get_sky_energy\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.ProceduralSky.get_sky_energy\n\n{-# NOINLINE bindProceduralSky_get_sky_horizon_color #-}\n\n-- | Color of the sky at the horizon.\nbindProceduralSky_get_sky_horizon_color :: MethodBind\nbindProceduralSky_get_sky_horizon_color\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"get_sky_horizon_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Color of the sky at the horizon.\nget_sky_horizon_color ::\n                        (ProceduralSky :< cls, Object :< cls) => cls -> IO Color\nget_sky_horizon_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_get_sky_horizon_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"get_sky_horizon_color\" '[]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.ProceduralSky.get_sky_horizon_color\n\n{-# NOINLINE bindProceduralSky_get_sky_top_color #-}\n\n-- | Color of the sky at the top.\nbindProceduralSky_get_sky_top_color :: MethodBind\nbindProceduralSky_get_sky_top_color\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"get_sky_top_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Color of the sky at the top.\nget_sky_top_color ::\n                    (ProceduralSky :< cls, Object :< cls) => cls -> IO Color\nget_sky_top_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_get_sky_top_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"get_sky_top_color\" '[]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.ProceduralSky.get_sky_top_color\n\n{-# NOINLINE bindProceduralSky_get_sun_angle_max #-}\n\n-- | Distance from center of sun where it fades out completely.\nbindProceduralSky_get_sun_angle_max :: MethodBind\nbindProceduralSky_get_sun_angle_max\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"get_sun_angle_max\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Distance from center of sun where it fades out completely.\nget_sun_angle_max ::\n                    (ProceduralSky :< cls, Object :< cls) => cls -> IO Float\nget_sun_angle_max cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_get_sun_angle_max\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"get_sun_angle_max\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.ProceduralSky.get_sun_angle_max\n\n{-# NOINLINE bindProceduralSky_get_sun_angle_min #-}\n\n-- | Distance from sun where it goes from solid to starting to fade.\nbindProceduralSky_get_sun_angle_min :: MethodBind\nbindProceduralSky_get_sun_angle_min\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"get_sun_angle_min\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Distance from sun where it goes from solid to starting to fade.\nget_sun_angle_min ::\n                    (ProceduralSky :< cls, Object :< cls) => cls -> IO Float\nget_sun_angle_min cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_get_sun_angle_min\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"get_sun_angle_min\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.ProceduralSky.get_sun_angle_min\n\n{-# NOINLINE bindProceduralSky_get_sun_color #-}\n\n-- | The sun's color.\nbindProceduralSky_get_sun_color :: MethodBind\nbindProceduralSky_get_sun_color\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"get_sun_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The sun's color.\nget_sun_color ::\n                (ProceduralSky :< cls, Object :< cls) => cls -> IO Color\nget_sun_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_get_sun_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"get_sun_color\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.ProceduralSky.get_sun_color\n\n{-# NOINLINE bindProceduralSky_get_sun_curve #-}\n\n-- | How quickly the sun fades away between @sun_angle_min@ and @sun_angle_max@.\nbindProceduralSky_get_sun_curve :: MethodBind\nbindProceduralSky_get_sun_curve\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"get_sun_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How quickly the sun fades away between @sun_angle_min@ and @sun_angle_max@.\nget_sun_curve ::\n                (ProceduralSky :< cls, Object :< cls) => cls -> IO Float\nget_sun_curve cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_get_sun_curve (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"get_sun_curve\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.ProceduralSky.get_sun_curve\n\n{-# NOINLINE bindProceduralSky_get_sun_energy #-}\n\n-- | Amount of energy contribution from the sun.\nbindProceduralSky_get_sun_energy :: MethodBind\nbindProceduralSky_get_sun_energy\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"get_sun_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of energy contribution from the sun.\nget_sun_energy ::\n                 (ProceduralSky :< cls, Object :< cls) => cls -> IO Float\nget_sun_energy cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_get_sun_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"get_sun_energy\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.ProceduralSky.get_sun_energy\n\n{-# NOINLINE bindProceduralSky_get_sun_latitude #-}\n\n-- | The sun's height using polar coordinates.\nbindProceduralSky_get_sun_latitude :: MethodBind\nbindProceduralSky_get_sun_latitude\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"get_sun_latitude\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The sun's height using polar coordinates.\nget_sun_latitude ::\n                   (ProceduralSky :< cls, Object :< cls) => cls -> IO Float\nget_sun_latitude cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_get_sun_latitude\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"get_sun_latitude\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.ProceduralSky.get_sun_latitude\n\n{-# NOINLINE bindProceduralSky_get_sun_longitude #-}\n\n-- | The direction of the sun using polar coordinates.\nbindProceduralSky_get_sun_longitude :: MethodBind\nbindProceduralSky_get_sun_longitude\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"get_sun_longitude\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The direction of the sun using polar coordinates.\nget_sun_longitude ::\n                    (ProceduralSky :< cls, Object :< cls) => cls -> IO Float\nget_sun_longitude cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_get_sun_longitude\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"get_sun_longitude\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.ProceduralSky.get_sun_longitude\n\n{-# NOINLINE bindProceduralSky_get_texture_size #-}\n\n-- | Size of @Texture@ that the ProceduralSky will generate. The size is set using @enum TextureSize@.\nbindProceduralSky_get_texture_size :: MethodBind\nbindProceduralSky_get_texture_size\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Size of @Texture@ that the ProceduralSky will generate. The size is set using @enum TextureSize@.\nget_texture_size ::\n                   (ProceduralSky :< cls, Object :< cls) => cls -> IO Int\nget_texture_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_get_texture_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"get_texture_size\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ProceduralSky.get_texture_size\n\n{-# NOINLINE bindProceduralSky_set_ground_bottom_color #-}\n\n-- | Color of the ground at the bottom.\nbindProceduralSky_set_ground_bottom_color :: MethodBind\nbindProceduralSky_set_ground_bottom_color\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"set_ground_bottom_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Color of the ground at the bottom.\nset_ground_bottom_color ::\n                          (ProceduralSky :< cls, Object :< cls) => cls -> Color -> IO ()\nset_ground_bottom_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_set_ground_bottom_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"set_ground_bottom_color\"\n           '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProceduralSky.set_ground_bottom_color\n\n{-# NOINLINE bindProceduralSky_set_ground_curve #-}\n\n-- | How quickly the @ground_horizon_color@ fades into the @ground_bottom_color@.\nbindProceduralSky_set_ground_curve :: MethodBind\nbindProceduralSky_set_ground_curve\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"set_ground_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How quickly the @ground_horizon_color@ fades into the @ground_bottom_color@.\nset_ground_curve ::\n                   (ProceduralSky :< cls, Object :< cls) => cls -> Float -> IO ()\nset_ground_curve cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_set_ground_curve\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"set_ground_curve\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProceduralSky.set_ground_curve\n\n{-# NOINLINE bindProceduralSky_set_ground_energy #-}\n\n-- | Amount of energy contribution from the ground.\nbindProceduralSky_set_ground_energy :: MethodBind\nbindProceduralSky_set_ground_energy\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"set_ground_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of energy contribution from the ground.\nset_ground_energy ::\n                    (ProceduralSky :< cls, Object :< cls) => cls -> Float -> IO ()\nset_ground_energy cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_set_ground_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"set_ground_energy\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProceduralSky.set_ground_energy\n\n{-# NOINLINE bindProceduralSky_set_ground_horizon_color #-}\n\n-- | Color of the ground at the horizon.\nbindProceduralSky_set_ground_horizon_color :: MethodBind\nbindProceduralSky_set_ground_horizon_color\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"set_ground_horizon_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Color of the ground at the horizon.\nset_ground_horizon_color ::\n                           (ProceduralSky :< cls, Object :< cls) => cls -> Color -> IO ()\nset_ground_horizon_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_set_ground_horizon_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"set_ground_horizon_color\"\n           '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProceduralSky.set_ground_horizon_color\n\n{-# NOINLINE bindProceduralSky_set_sky_curve #-}\n\n-- | How quickly the @sky_horizon_color@ fades into the @sky_top_color@.\nbindProceduralSky_set_sky_curve :: MethodBind\nbindProceduralSky_set_sky_curve\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"set_sky_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How quickly the @sky_horizon_color@ fades into the @sky_top_color@.\nset_sky_curve ::\n                (ProceduralSky :< cls, Object :< cls) => cls -> Float -> IO ()\nset_sky_curve cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_set_sky_curve (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"set_sky_curve\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.ProceduralSky.set_sky_curve\n\n{-# NOINLINE bindProceduralSky_set_sky_energy #-}\n\n-- | Amount of energy contribution from the sky.\nbindProceduralSky_set_sky_energy :: MethodBind\nbindProceduralSky_set_sky_energy\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"set_sky_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of energy contribution from the sky.\nset_sky_energy ::\n                 (ProceduralSky :< cls, Object :< cls) => cls -> Float -> IO ()\nset_sky_energy cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_set_sky_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"set_sky_energy\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.ProceduralSky.set_sky_energy\n\n{-# NOINLINE bindProceduralSky_set_sky_horizon_color #-}\n\n-- | Color of the sky at the horizon.\nbindProceduralSky_set_sky_horizon_color :: MethodBind\nbindProceduralSky_set_sky_horizon_color\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"set_sky_horizon_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Color of the sky at the horizon.\nset_sky_horizon_color ::\n                        (ProceduralSky :< cls, Object :< cls) => cls -> Color -> IO ()\nset_sky_horizon_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_set_sky_horizon_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"set_sky_horizon_color\" '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProceduralSky.set_sky_horizon_color\n\n{-# NOINLINE bindProceduralSky_set_sky_top_color #-}\n\n-- | Color of the sky at the top.\nbindProceduralSky_set_sky_top_color :: MethodBind\nbindProceduralSky_set_sky_top_color\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"set_sky_top_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Color of the sky at the top.\nset_sky_top_color ::\n                    (ProceduralSky :< cls, Object :< cls) => cls -> Color -> IO ()\nset_sky_top_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_set_sky_top_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"set_sky_top_color\" '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProceduralSky.set_sky_top_color\n\n{-# NOINLINE bindProceduralSky_set_sun_angle_max #-}\n\n-- | Distance from center of sun where it fades out completely.\nbindProceduralSky_set_sun_angle_max :: MethodBind\nbindProceduralSky_set_sun_angle_max\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"set_sun_angle_max\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Distance from center of sun where it fades out completely.\nset_sun_angle_max ::\n                    (ProceduralSky :< cls, Object :< cls) => cls -> Float -> IO ()\nset_sun_angle_max cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_set_sun_angle_max\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"set_sun_angle_max\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProceduralSky.set_sun_angle_max\n\n{-# NOINLINE bindProceduralSky_set_sun_angle_min #-}\n\n-- | Distance from sun where it goes from solid to starting to fade.\nbindProceduralSky_set_sun_angle_min :: MethodBind\nbindProceduralSky_set_sun_angle_min\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"set_sun_angle_min\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Distance from sun where it goes from solid to starting to fade.\nset_sun_angle_min ::\n                    (ProceduralSky :< cls, Object :< cls) => cls -> Float -> IO ()\nset_sun_angle_min cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_set_sun_angle_min\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"set_sun_angle_min\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProceduralSky.set_sun_angle_min\n\n{-# NOINLINE bindProceduralSky_set_sun_color #-}\n\n-- | The sun's color.\nbindProceduralSky_set_sun_color :: MethodBind\nbindProceduralSky_set_sun_color\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"set_sun_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The sun's color.\nset_sun_color ::\n                (ProceduralSky :< cls, Object :< cls) => cls -> Color -> IO ()\nset_sun_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_set_sun_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"set_sun_color\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.ProceduralSky.set_sun_color\n\n{-# NOINLINE bindProceduralSky_set_sun_curve #-}\n\n-- | How quickly the sun fades away between @sun_angle_min@ and @sun_angle_max@.\nbindProceduralSky_set_sun_curve :: MethodBind\nbindProceduralSky_set_sun_curve\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"set_sun_curve\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How quickly the sun fades away between @sun_angle_min@ and @sun_angle_max@.\nset_sun_curve ::\n                (ProceduralSky :< cls, Object :< cls) => cls -> Float -> IO ()\nset_sun_curve cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_set_sun_curve (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"set_sun_curve\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.ProceduralSky.set_sun_curve\n\n{-# NOINLINE bindProceduralSky_set_sun_energy #-}\n\n-- | Amount of energy contribution from the sun.\nbindProceduralSky_set_sun_energy :: MethodBind\nbindProceduralSky_set_sun_energy\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"set_sun_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of energy contribution from the sun.\nset_sun_energy ::\n                 (ProceduralSky :< cls, Object :< cls) => cls -> Float -> IO ()\nset_sun_energy cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_set_sun_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"set_sun_energy\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.ProceduralSky.set_sun_energy\n\n{-# NOINLINE bindProceduralSky_set_sun_latitude #-}\n\n-- | The sun's height using polar coordinates.\nbindProceduralSky_set_sun_latitude :: MethodBind\nbindProceduralSky_set_sun_latitude\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"set_sun_latitude\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The sun's height using polar coordinates.\nset_sun_latitude ::\n                   (ProceduralSky :< cls, Object :< cls) => cls -> Float -> IO ()\nset_sun_latitude cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_set_sun_latitude\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"set_sun_latitude\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProceduralSky.set_sun_latitude\n\n{-# NOINLINE bindProceduralSky_set_sun_longitude #-}\n\n-- | The direction of the sun using polar coordinates.\nbindProceduralSky_set_sun_longitude :: MethodBind\nbindProceduralSky_set_sun_longitude\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"set_sun_longitude\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The direction of the sun using polar coordinates.\nset_sun_longitude ::\n                    (ProceduralSky :< cls, Object :< cls) => cls -> Float -> IO ()\nset_sun_longitude cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_set_sun_longitude\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"set_sun_longitude\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProceduralSky.set_sun_longitude\n\n{-# NOINLINE bindProceduralSky_set_texture_size #-}\n\n-- | Size of @Texture@ that the ProceduralSky will generate. The size is set using @enum TextureSize@.\nbindProceduralSky_set_texture_size :: MethodBind\nbindProceduralSky_set_texture_size\n  = unsafePerformIO $\n      withCString \"ProceduralSky\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Size of @Texture@ that the ProceduralSky will generate. The size is set using @enum TextureSize@.\nset_texture_size ::\n                   (ProceduralSky :< cls, Object :< cls) => cls -> Int -> IO ()\nset_texture_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProceduralSky_set_texture_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProceduralSky \"set_texture_size\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.ProceduralSky.set_texture_size"
  },
  {
    "path": "src/Godot/Core/ProgressBar.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ProgressBar\n       (Godot.Core.ProgressBar.is_percent_visible,\n        Godot.Core.ProgressBar.set_percent_visible)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Range()\n\ninstance NodeProperty ProgressBar \"percent_visible\" Bool 'False\n         where\n        nodeProperty\n          = (is_percent_visible, wrapDroppingSetter set_percent_visible,\n             Nothing)\n\n{-# NOINLINE bindProgressBar_is_percent_visible #-}\n\n-- | If @true@, the fill percentage is displayed on the bar.\nbindProgressBar_is_percent_visible :: MethodBind\nbindProgressBar_is_percent_visible\n  = unsafePerformIO $\n      withCString \"ProgressBar\" $\n        \\ clsNamePtr ->\n          withCString \"is_percent_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the fill percentage is displayed on the bar.\nis_percent_visible ::\n                     (ProgressBar :< cls, Object :< cls) => cls -> IO Bool\nis_percent_visible cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProgressBar_is_percent_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProgressBar \"is_percent_visible\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ProgressBar.is_percent_visible\n\n{-# NOINLINE bindProgressBar_set_percent_visible #-}\n\n-- | If @true@, the fill percentage is displayed on the bar.\nbindProgressBar_set_percent_visible :: MethodBind\nbindProgressBar_set_percent_visible\n  = unsafePerformIO $\n      withCString \"ProgressBar\" $\n        \\ clsNamePtr ->\n          withCString \"set_percent_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the fill percentage is displayed on the bar.\nset_percent_visible ::\n                      (ProgressBar :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_percent_visible cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProgressBar_set_percent_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProgressBar \"set_percent_visible\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProgressBar.set_percent_visible"
  },
  {
    "path": "src/Godot/Core/ProjectSettings.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ProjectSettings\n       (Godot.Core.ProjectSettings.add_property_info,\n        Godot.Core.ProjectSettings.clear,\n        Godot.Core.ProjectSettings.get_order,\n        Godot.Core.ProjectSettings.get_setting,\n        Godot.Core.ProjectSettings.globalize_path,\n        Godot.Core.ProjectSettings.has_setting,\n        Godot.Core.ProjectSettings.load_resource_pack,\n        Godot.Core.ProjectSettings.localize_path,\n        Godot.Core.ProjectSettings.property_can_revert,\n        Godot.Core.ProjectSettings.property_get_revert,\n        Godot.Core.ProjectSettings.save,\n        Godot.Core.ProjectSettings.save_custom,\n        Godot.Core.ProjectSettings.set_initial_value,\n        Godot.Core.ProjectSettings.set_order,\n        Godot.Core.ProjectSettings.set_setting)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n{-# NOINLINE bindProjectSettings_add_property_info #-}\n\n-- | Adds a custom property info to a property. The dictionary must contain:\n--   \t\t\t\t- @name@: @String@ (the property's name)\n--   \t\t\t\t- @type@: @int@ (see @enum Variant.Type@)\n--   \t\t\t\t- optionally @hint@: @int@ (see @enum PropertyHint@) and @hint_string@: @String@\n--   \t\t\t\t__Example:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tProjectSettings.set(\"category/property_name\", 0)\n--   \n--   \t\t\t\tvar property_info = {\n--   \t\t\t\t    \"name\": \"category/property_name\",\n--   \t\t\t\t    \"type\": TYPE_INT,\n--   \t\t\t\t    \"hint\": PROPERTY_HINT_ENUM,\n--   \t\t\t\t    \"hint_string\": \"one,two,three\"\n--   \t\t\t\t}\n--   \n--   \t\t\t\tProjectSettings.add_property_info(property_info)\n--   \t\t\t\t\n--   @\nbindProjectSettings_add_property_info :: MethodBind\nbindProjectSettings_add_property_info\n  = unsafePerformIO $\n      withCString \"ProjectSettings\" $\n        \\ clsNamePtr ->\n          withCString \"add_property_info\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a custom property info to a property. The dictionary must contain:\n--   \t\t\t\t- @name@: @String@ (the property's name)\n--   \t\t\t\t- @type@: @int@ (see @enum Variant.Type@)\n--   \t\t\t\t- optionally @hint@: @int@ (see @enum PropertyHint@) and @hint_string@: @String@\n--   \t\t\t\t__Example:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tProjectSettings.set(\"category/property_name\", 0)\n--   \n--   \t\t\t\tvar property_info = {\n--   \t\t\t\t    \"name\": \"category/property_name\",\n--   \t\t\t\t    \"type\": TYPE_INT,\n--   \t\t\t\t    \"hint\": PROPERTY_HINT_ENUM,\n--   \t\t\t\t    \"hint_string\": \"one,two,three\"\n--   \t\t\t\t}\n--   \n--   \t\t\t\tProjectSettings.add_property_info(property_info)\n--   \t\t\t\t\n--   @\nadd_property_info ::\n                    (ProjectSettings :< cls, Object :< cls) =>\n                    cls -> Dictionary -> IO ()\nadd_property_info cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProjectSettings_add_property_info\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProjectSettings \"add_property_info\"\n           '[Dictionary]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProjectSettings.add_property_info\n\n{-# NOINLINE bindProjectSettings_clear #-}\n\n-- | Clears the whole configuration (not recommended, may break things).\nbindProjectSettings_clear :: MethodBind\nbindProjectSettings_clear\n  = unsafePerformIO $\n      withCString \"ProjectSettings\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears the whole configuration (not recommended, may break things).\nclear ::\n        (ProjectSettings :< cls, Object :< cls) =>\n        cls -> GodotString -> IO ()\nclear cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProjectSettings_clear (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProjectSettings \"clear\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.ProjectSettings.clear\n\n{-# NOINLINE bindProjectSettings_get_order #-}\n\n-- | Returns the order of a configuration value (influences when saved to the config file).\nbindProjectSettings_get_order :: MethodBind\nbindProjectSettings_get_order\n  = unsafePerformIO $\n      withCString \"ProjectSettings\" $\n        \\ clsNamePtr ->\n          withCString \"get_order\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the order of a configuration value (influences when saved to the config file).\nget_order ::\n            (ProjectSettings :< cls, Object :< cls) =>\n            cls -> GodotString -> IO Int\nget_order cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProjectSettings_get_order (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProjectSettings \"get_order\" '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ProjectSettings.get_order\n\n{-# NOINLINE bindProjectSettings_get_setting #-}\n\n-- | Returns the value of a setting.\n--   \t\t\t\t__Example:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tprint(ProjectSettings.get_setting(\"application/config/name\"))\n--   \t\t\t\t\n--   @\nbindProjectSettings_get_setting :: MethodBind\nbindProjectSettings_get_setting\n  = unsafePerformIO $\n      withCString \"ProjectSettings\" $\n        \\ clsNamePtr ->\n          withCString \"get_setting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of a setting.\n--   \t\t\t\t__Example:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tprint(ProjectSettings.get_setting(\"application/config/name\"))\n--   \t\t\t\t\n--   @\nget_setting ::\n              (ProjectSettings :< cls, Object :< cls) =>\n              cls -> GodotString -> IO GodotVariant\nget_setting cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProjectSettings_get_setting (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProjectSettings \"get_setting\" '[GodotString]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.ProjectSettings.get_setting\n\n{-# NOINLINE bindProjectSettings_globalize_path #-}\n\n-- | Converts a localized path (@res://@) to a full native OS path.\nbindProjectSettings_globalize_path :: MethodBind\nbindProjectSettings_globalize_path\n  = unsafePerformIO $\n      withCString \"ProjectSettings\" $\n        \\ clsNamePtr ->\n          withCString \"globalize_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Converts a localized path (@res://@) to a full native OS path.\nglobalize_path ::\n                 (ProjectSettings :< cls, Object :< cls) =>\n                 cls -> GodotString -> IO GodotString\nglobalize_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProjectSettings_globalize_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProjectSettings \"globalize_path\" '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.ProjectSettings.globalize_path\n\n{-# NOINLINE bindProjectSettings_has_setting #-}\n\n-- | Returns @true@ if a configuration value is present.\nbindProjectSettings_has_setting :: MethodBind\nbindProjectSettings_has_setting\n  = unsafePerformIO $\n      withCString \"ProjectSettings\" $\n        \\ clsNamePtr ->\n          withCString \"has_setting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if a configuration value is present.\nhas_setting ::\n              (ProjectSettings :< cls, Object :< cls) =>\n              cls -> GodotString -> IO Bool\nhas_setting cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProjectSettings_has_setting (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProjectSettings \"has_setting\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ProjectSettings.has_setting\n\n{-# NOINLINE bindProjectSettings_load_resource_pack #-}\n\n-- | Loads the contents of the .pck or .zip file specified by @pack@ into the resource filesystem (@res://@). Returns @true@ on success.\n--   \t\t\t\t__Note:__ If a file from @pack@ shares the same path as a file already in the resource filesystem, any attempts to load that file will use the file from @pack@ unless @replace_files@ is set to @false@.\nbindProjectSettings_load_resource_pack :: MethodBind\nbindProjectSettings_load_resource_pack\n  = unsafePerformIO $\n      withCString \"ProjectSettings\" $\n        \\ clsNamePtr ->\n          withCString \"load_resource_pack\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Loads the contents of the .pck or .zip file specified by @pack@ into the resource filesystem (@res://@). Returns @true@ on success.\n--   \t\t\t\t__Note:__ If a file from @pack@ shares the same path as a file already in the resource filesystem, any attempts to load that file will use the file from @pack@ unless @replace_files@ is set to @false@.\nload_resource_pack ::\n                     (ProjectSettings :< cls, Object :< cls) =>\n                     cls -> GodotString -> Maybe Bool -> IO Bool\nload_resource_pack cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool True) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProjectSettings_load_resource_pack\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProjectSettings \"load_resource_pack\"\n           '[GodotString, Maybe Bool]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ProjectSettings.load_resource_pack\n\n{-# NOINLINE bindProjectSettings_localize_path #-}\n\n-- | Convert a path to a localized path (@res://@ path).\nbindProjectSettings_localize_path :: MethodBind\nbindProjectSettings_localize_path\n  = unsafePerformIO $\n      withCString \"ProjectSettings\" $\n        \\ clsNamePtr ->\n          withCString \"localize_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Convert a path to a localized path (@res://@ path).\nlocalize_path ::\n                (ProjectSettings :< cls, Object :< cls) =>\n                cls -> GodotString -> IO GodotString\nlocalize_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProjectSettings_localize_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProjectSettings \"localize_path\" '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.ProjectSettings.localize_path\n\n{-# NOINLINE bindProjectSettings_property_can_revert #-}\n\n-- | Returns @true@ if the specified property exists and its initial value differs from the current value.\nbindProjectSettings_property_can_revert :: MethodBind\nbindProjectSettings_property_can_revert\n  = unsafePerformIO $\n      withCString \"ProjectSettings\" $\n        \\ clsNamePtr ->\n          withCString \"property_can_revert\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the specified property exists and its initial value differs from the current value.\nproperty_can_revert ::\n                      (ProjectSettings :< cls, Object :< cls) =>\n                      cls -> GodotString -> IO Bool\nproperty_can_revert cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProjectSettings_property_can_revert\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProjectSettings \"property_can_revert\"\n           '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ProjectSettings.property_can_revert\n\n{-# NOINLINE bindProjectSettings_property_get_revert #-}\n\n-- | Returns the specified property's initial value. Returns @null@ if the property does not exist.\nbindProjectSettings_property_get_revert :: MethodBind\nbindProjectSettings_property_get_revert\n  = unsafePerformIO $\n      withCString \"ProjectSettings\" $\n        \\ clsNamePtr ->\n          withCString \"property_get_revert\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the specified property's initial value. Returns @null@ if the property does not exist.\nproperty_get_revert ::\n                      (ProjectSettings :< cls, Object :< cls) =>\n                      cls -> GodotString -> IO GodotVariant\nproperty_get_revert cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProjectSettings_property_get_revert\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProjectSettings \"property_get_revert\"\n           '[GodotString]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.ProjectSettings.property_get_revert\n\n{-# NOINLINE bindProjectSettings_save #-}\n\n-- | Saves the configuration to the @project.godot@ file.\nbindProjectSettings_save :: MethodBind\nbindProjectSettings_save\n  = unsafePerformIO $\n      withCString \"ProjectSettings\" $\n        \\ clsNamePtr ->\n          withCString \"save\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Saves the configuration to the @project.godot@ file.\nsave :: (ProjectSettings :< cls, Object :< cls) => cls -> IO Int\nsave cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProjectSettings_save (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProjectSettings \"save\" '[] (IO Int) where\n        nodeMethod = Godot.Core.ProjectSettings.save\n\n{-# NOINLINE bindProjectSettings_save_custom #-}\n\n-- | Saves the configuration to a custom file. The file extension must be @.godot@ (to save in text-based @ConfigFile@ format) or @.binary@ (to save in binary format).\nbindProjectSettings_save_custom :: MethodBind\nbindProjectSettings_save_custom\n  = unsafePerformIO $\n      withCString \"ProjectSettings\" $\n        \\ clsNamePtr ->\n          withCString \"save_custom\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Saves the configuration to a custom file. The file extension must be @.godot@ (to save in text-based @ConfigFile@ format) or @.binary@ (to save in binary format).\nsave_custom ::\n              (ProjectSettings :< cls, Object :< cls) =>\n              cls -> GodotString -> IO Int\nsave_custom cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProjectSettings_save_custom (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProjectSettings \"save_custom\" '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ProjectSettings.save_custom\n\n{-# NOINLINE bindProjectSettings_set_initial_value #-}\n\n-- | Sets the specified property's initial value. This is the value the property reverts to.\nbindProjectSettings_set_initial_value :: MethodBind\nbindProjectSettings_set_initial_value\n  = unsafePerformIO $\n      withCString \"ProjectSettings\" $\n        \\ clsNamePtr ->\n          withCString \"set_initial_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the specified property's initial value. This is the value the property reverts to.\nset_initial_value ::\n                    (ProjectSettings :< cls, Object :< cls) =>\n                    cls -> GodotString -> GodotVariant -> IO ()\nset_initial_value cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProjectSettings_set_initial_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProjectSettings \"set_initial_value\"\n           '[GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProjectSettings.set_initial_value\n\n{-# NOINLINE bindProjectSettings_set_order #-}\n\n-- | Sets the order of a configuration value (influences when saved to the config file).\nbindProjectSettings_set_order :: MethodBind\nbindProjectSettings_set_order\n  = unsafePerformIO $\n      withCString \"ProjectSettings\" $\n        \\ clsNamePtr ->\n          withCString \"set_order\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the order of a configuration value (influences when saved to the config file).\nset_order ::\n            (ProjectSettings :< cls, Object :< cls) =>\n            cls -> GodotString -> Int -> IO ()\nset_order cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProjectSettings_set_order (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProjectSettings \"set_order\" '[GodotString, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProjectSettings.set_order\n\n{-# NOINLINE bindProjectSettings_set_setting #-}\n\n-- | Sets the value of a setting.\n--   \t\t\t\t__Example:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tProjectSettings.set_setting(\"application/config/name\", \"Example\")\n--   \t\t\t\t\n--   @\nbindProjectSettings_set_setting :: MethodBind\nbindProjectSettings_set_setting\n  = unsafePerformIO $\n      withCString \"ProjectSettings\" $\n        \\ clsNamePtr ->\n          withCString \"set_setting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the value of a setting.\n--   \t\t\t\t__Example:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tProjectSettings.set_setting(\"application/config/name\", \"Example\")\n--   \t\t\t\t\n--   @\nset_setting ::\n              (ProjectSettings :< cls, Object :< cls) =>\n              cls -> GodotString -> GodotVariant -> IO ()\nset_setting cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProjectSettings_set_setting (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProjectSettings \"set_setting\"\n           '[GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProjectSettings.set_setting"
  },
  {
    "path": "src/Godot/Core/ProximityGroup.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ProximityGroup\n       (Godot.Core.ProximityGroup._MODE_SIGNAL,\n        Godot.Core.ProximityGroup._MODE_PROXY,\n        Godot.Core.ProximityGroup.sig_broadcast,\n        Godot.Core.ProximityGroup._proximity_group_broadcast,\n        Godot.Core.ProximityGroup.broadcast,\n        Godot.Core.ProximityGroup.get_dispatch_mode,\n        Godot.Core.ProximityGroup.get_grid_radius,\n        Godot.Core.ProximityGroup.get_group_name,\n        Godot.Core.ProximityGroup.set_dispatch_mode,\n        Godot.Core.ProximityGroup.set_grid_radius,\n        Godot.Core.ProximityGroup.set_group_name)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\n_MODE_SIGNAL :: Int\n_MODE_SIGNAL = 1\n\n_MODE_PROXY :: Int\n_MODE_PROXY = 0\n\nsig_broadcast :: Godot.Internal.Dispatch.Signal ProximityGroup\nsig_broadcast = Godot.Internal.Dispatch.Signal \"broadcast\"\n\ninstance NodeSignal ProximityGroup \"broadcast\"\n           '[GodotString, Array]\n\ninstance NodeProperty ProximityGroup \"dispatch_mode\" Int 'False\n         where\n        nodeProperty\n          = (get_dispatch_mode, wrapDroppingSetter set_dispatch_mode,\n             Nothing)\n\ninstance NodeProperty ProximityGroup \"grid_radius\" Vector3 'False\n         where\n        nodeProperty\n          = (get_grid_radius, wrapDroppingSetter set_grid_radius, Nothing)\n\ninstance NodeProperty ProximityGroup \"group_name\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_group_name, wrapDroppingSetter set_group_name, Nothing)\n\n{-# NOINLINE bindProximityGroup__proximity_group_broadcast #-}\n\nbindProximityGroup__proximity_group_broadcast :: MethodBind\nbindProximityGroup__proximity_group_broadcast\n  = unsafePerformIO $\n      withCString \"ProximityGroup\" $\n        \\ clsNamePtr ->\n          withCString \"_proximity_group_broadcast\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_proximity_group_broadcast ::\n                             (ProximityGroup :< cls, Object :< cls) =>\n                             cls -> GodotString -> GodotVariant -> IO ()\n_proximity_group_broadcast cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindProximityGroup__proximity_group_broadcast\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProximityGroup \"_proximity_group_broadcast\"\n           '[GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProximityGroup._proximity_group_broadcast\n\n{-# NOINLINE bindProximityGroup_broadcast #-}\n\nbindProximityGroup_broadcast :: MethodBind\nbindProximityGroup_broadcast\n  = unsafePerformIO $\n      withCString \"ProximityGroup\" $\n        \\ clsNamePtr ->\n          withCString \"broadcast\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nbroadcast ::\n            (ProximityGroup :< cls, Object :< cls) =>\n            cls -> GodotString -> GodotVariant -> IO ()\nbroadcast cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProximityGroup_broadcast (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProximityGroup \"broadcast\"\n           '[GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProximityGroup.broadcast\n\n{-# NOINLINE bindProximityGroup_get_dispatch_mode #-}\n\nbindProximityGroup_get_dispatch_mode :: MethodBind\nbindProximityGroup_get_dispatch_mode\n  = unsafePerformIO $\n      withCString \"ProximityGroup\" $\n        \\ clsNamePtr ->\n          withCString \"get_dispatch_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_dispatch_mode ::\n                    (ProximityGroup :< cls, Object :< cls) => cls -> IO Int\nget_dispatch_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProximityGroup_get_dispatch_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProximityGroup \"get_dispatch_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ProximityGroup.get_dispatch_mode\n\n{-# NOINLINE bindProximityGroup_get_grid_radius #-}\n\nbindProximityGroup_get_grid_radius :: MethodBind\nbindProximityGroup_get_grid_radius\n  = unsafePerformIO $\n      withCString \"ProximityGroup\" $\n        \\ clsNamePtr ->\n          withCString \"get_grid_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_grid_radius ::\n                  (ProximityGroup :< cls, Object :< cls) => cls -> IO Vector3\nget_grid_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProximityGroup_get_grid_radius\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProximityGroup \"get_grid_radius\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.ProximityGroup.get_grid_radius\n\n{-# NOINLINE bindProximityGroup_get_group_name #-}\n\nbindProximityGroup_get_group_name :: MethodBind\nbindProximityGroup_get_group_name\n  = unsafePerformIO $\n      withCString \"ProximityGroup\" $\n        \\ clsNamePtr ->\n          withCString \"get_group_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_group_name ::\n                 (ProximityGroup :< cls, Object :< cls) => cls -> IO GodotString\nget_group_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProximityGroup_get_group_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProximityGroup \"get_group_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.ProximityGroup.get_group_name\n\n{-# NOINLINE bindProximityGroup_set_dispatch_mode #-}\n\nbindProximityGroup_set_dispatch_mode :: MethodBind\nbindProximityGroup_set_dispatch_mode\n  = unsafePerformIO $\n      withCString \"ProximityGroup\" $\n        \\ clsNamePtr ->\n          withCString \"set_dispatch_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_dispatch_mode ::\n                    (ProximityGroup :< cls, Object :< cls) => cls -> Int -> IO ()\nset_dispatch_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProximityGroup_set_dispatch_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProximityGroup \"set_dispatch_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProximityGroup.set_dispatch_mode\n\n{-# NOINLINE bindProximityGroup_set_grid_radius #-}\n\nbindProximityGroup_set_grid_radius :: MethodBind\nbindProximityGroup_set_grid_radius\n  = unsafePerformIO $\n      withCString \"ProximityGroup\" $\n        \\ clsNamePtr ->\n          withCString \"set_grid_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_grid_radius ::\n                  (ProximityGroup :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_grid_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProximityGroup_set_grid_radius\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProximityGroup \"set_grid_radius\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProximityGroup.set_grid_radius\n\n{-# NOINLINE bindProximityGroup_set_group_name #-}\n\nbindProximityGroup_set_group_name :: MethodBind\nbindProximityGroup_set_group_name\n  = unsafePerformIO $\n      withCString \"ProximityGroup\" $\n        \\ clsNamePtr ->\n          withCString \"set_group_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_group_name ::\n                 (ProximityGroup :< cls, Object :< cls) =>\n                 cls -> GodotString -> IO ()\nset_group_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProximityGroup_set_group_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProximityGroup \"set_group_name\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ProximityGroup.set_group_name"
  },
  {
    "path": "src/Godot/Core/ProxyTexture.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ProxyTexture\n       (Godot.Core.ProxyTexture.get_base,\n        Godot.Core.ProxyTexture.set_base)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Texture()\n\ninstance NodeProperty ProxyTexture \"base\" Texture 'False where\n        nodeProperty = (get_base, wrapDroppingSetter set_base, Nothing)\n\n{-# NOINLINE bindProxyTexture_get_base #-}\n\nbindProxyTexture_get_base :: MethodBind\nbindProxyTexture_get_base\n  = unsafePerformIO $\n      withCString \"ProxyTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_base\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_base ::\n           (ProxyTexture :< cls, Object :< cls) => cls -> IO Texture\nget_base cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProxyTexture_get_base (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProxyTexture \"get_base\" '[] (IO Texture) where\n        nodeMethod = Godot.Core.ProxyTexture.get_base\n\n{-# NOINLINE bindProxyTexture_set_base #-}\n\nbindProxyTexture_set_base :: MethodBind\nbindProxyTexture_set_base\n  = unsafePerformIO $\n      withCString \"ProxyTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_base\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_base ::\n           (ProxyTexture :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_base cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindProxyTexture_set_base (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ProxyTexture \"set_base\" '[Texture] (IO ())\n         where\n        nodeMethod = Godot.Core.ProxyTexture.set_base"
  },
  {
    "path": "src/Godot/Core/QuadMesh.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.QuadMesh\n       (Godot.Core.QuadMesh.get_size, Godot.Core.QuadMesh.set_size) where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PrimitiveMesh()\n\ninstance NodeProperty QuadMesh \"size\" Vector2 'False where\n        nodeProperty = (get_size, wrapDroppingSetter set_size, Nothing)\n\n{-# NOINLINE bindQuadMesh_get_size #-}\n\n-- | Size on the X and Y axes.\nbindQuadMesh_get_size :: MethodBind\nbindQuadMesh_get_size\n  = unsafePerformIO $\n      withCString \"QuadMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Size on the X and Y axes.\nget_size :: (QuadMesh :< cls, Object :< cls) => cls -> IO Vector2\nget_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindQuadMesh_get_size (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod QuadMesh \"get_size\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.QuadMesh.get_size\n\n{-# NOINLINE bindQuadMesh_set_size #-}\n\n-- | Size on the X and Y axes.\nbindQuadMesh_set_size :: MethodBind\nbindQuadMesh_set_size\n  = unsafePerformIO $\n      withCString \"QuadMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Size on the X and Y axes.\nset_size ::\n           (QuadMesh :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindQuadMesh_set_size (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod QuadMesh \"set_size\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.QuadMesh.set_size"
  },
  {
    "path": "src/Godot/Core/RandomNumberGenerator.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.RandomNumberGenerator\n       (Godot.Core.RandomNumberGenerator.get_seed,\n        Godot.Core.RandomNumberGenerator.randf,\n        Godot.Core.RandomNumberGenerator.randf_range,\n        Godot.Core.RandomNumberGenerator.randfn,\n        Godot.Core.RandomNumberGenerator.randi,\n        Godot.Core.RandomNumberGenerator.randi_range,\n        Godot.Core.RandomNumberGenerator.randomize,\n        Godot.Core.RandomNumberGenerator.set_seed)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\ninstance NodeProperty RandomNumberGenerator \"seed\" Int 'False where\n        nodeProperty = (get_seed, wrapDroppingSetter set_seed, Nothing)\n\n{-# NOINLINE bindRandomNumberGenerator_get_seed #-}\n\n-- | The seed used by the random number generator. A given seed will give a reproducible sequence of pseudo-random numbers.\n--   \t\t\t__Note:__ The RNG does not have an avalanche effect, and can output similar random streams given similar seeds. Consider using a hash function to improve your seed quality if they're sourced externally.\nbindRandomNumberGenerator_get_seed :: MethodBind\nbindRandomNumberGenerator_get_seed\n  = unsafePerformIO $\n      withCString \"RandomNumberGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"get_seed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The seed used by the random number generator. A given seed will give a reproducible sequence of pseudo-random numbers.\n--   \t\t\t__Note:__ The RNG does not have an avalanche effect, and can output similar random streams given similar seeds. Consider using a hash function to improve your seed quality if they're sourced externally.\nget_seed ::\n           (RandomNumberGenerator :< cls, Object :< cls) => cls -> IO Int\nget_seed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRandomNumberGenerator_get_seed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RandomNumberGenerator \"get_seed\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.RandomNumberGenerator.get_seed\n\n{-# NOINLINE bindRandomNumberGenerator_randf #-}\n\n-- | Generates a pseudo-random float between @0.0@ and @1.0@ (inclusive).\nbindRandomNumberGenerator_randf :: MethodBind\nbindRandomNumberGenerator_randf\n  = unsafePerformIO $\n      withCString \"RandomNumberGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"randf\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Generates a pseudo-random float between @0.0@ and @1.0@ (inclusive).\nrandf ::\n        (RandomNumberGenerator :< cls, Object :< cls) => cls -> IO Float\nrandf cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRandomNumberGenerator_randf (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RandomNumberGenerator \"randf\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.RandomNumberGenerator.randf\n\n{-# NOINLINE bindRandomNumberGenerator_randf_range #-}\n\n-- | Generates a pseudo-random float between @from@ and @to@ (inclusive).\nbindRandomNumberGenerator_randf_range :: MethodBind\nbindRandomNumberGenerator_randf_range\n  = unsafePerformIO $\n      withCString \"RandomNumberGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"randf_range\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Generates a pseudo-random float between @from@ and @to@ (inclusive).\nrandf_range ::\n              (RandomNumberGenerator :< cls, Object :< cls) =>\n              cls -> Float -> Float -> IO Float\nrandf_range cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRandomNumberGenerator_randf_range\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RandomNumberGenerator \"randf_range\"\n           '[Float, Float]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.RandomNumberGenerator.randf_range\n\n{-# NOINLINE bindRandomNumberGenerator_randfn #-}\n\n-- | Generates a @url=https://en.wikipedia.org/wiki/Normal_distribution@normally-distributed@/url@ pseudo-random number, using Box-Muller transform with the specified @mean@ and a standard @deviation@. This is also called Gaussian distribution.\nbindRandomNumberGenerator_randfn :: MethodBind\nbindRandomNumberGenerator_randfn\n  = unsafePerformIO $\n      withCString \"RandomNumberGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"randfn\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Generates a @url=https://en.wikipedia.org/wiki/Normal_distribution@normally-distributed@/url@ pseudo-random number, using Box-Muller transform with the specified @mean@ and a standard @deviation@. This is also called Gaussian distribution.\nrandfn ::\n         (RandomNumberGenerator :< cls, Object :< cls) =>\n         cls -> Maybe Float -> Maybe Float -> IO Float\nrandfn cls arg1 arg2\n  = withVariantArray\n      [maybe (VariantReal (0)) toVariant arg1,\n       maybe (VariantReal (1)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRandomNumberGenerator_randfn\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RandomNumberGenerator \"randfn\"\n           '[Maybe Float, Maybe Float]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.RandomNumberGenerator.randfn\n\n{-# NOINLINE bindRandomNumberGenerator_randi #-}\n\n-- | Generates a pseudo-random 32-bit unsigned integer between @0@ and @4294967295@ (inclusive).\nbindRandomNumberGenerator_randi :: MethodBind\nbindRandomNumberGenerator_randi\n  = unsafePerformIO $\n      withCString \"RandomNumberGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"randi\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Generates a pseudo-random 32-bit unsigned integer between @0@ and @4294967295@ (inclusive).\nrandi ::\n        (RandomNumberGenerator :< cls, Object :< cls) => cls -> IO Int\nrandi cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRandomNumberGenerator_randi (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RandomNumberGenerator \"randi\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.RandomNumberGenerator.randi\n\n{-# NOINLINE bindRandomNumberGenerator_randi_range #-}\n\n-- | Generates a pseudo-random 32-bit signed integer between @from@ and @to@ (inclusive).\nbindRandomNumberGenerator_randi_range :: MethodBind\nbindRandomNumberGenerator_randi_range\n  = unsafePerformIO $\n      withCString \"RandomNumberGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"randi_range\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Generates a pseudo-random 32-bit signed integer between @from@ and @to@ (inclusive).\nrandi_range ::\n              (RandomNumberGenerator :< cls, Object :< cls) =>\n              cls -> Int -> Int -> IO Int\nrandi_range cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRandomNumberGenerator_randi_range\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RandomNumberGenerator \"randi_range\" '[Int, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.RandomNumberGenerator.randi_range\n\n{-# NOINLINE bindRandomNumberGenerator_randomize #-}\n\n-- | Setups a time-based seed to generator.\nbindRandomNumberGenerator_randomize :: MethodBind\nbindRandomNumberGenerator_randomize\n  = unsafePerformIO $\n      withCString \"RandomNumberGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"randomize\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Setups a time-based seed to generator.\nrandomize ::\n            (RandomNumberGenerator :< cls, Object :< cls) => cls -> IO ()\nrandomize cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRandomNumberGenerator_randomize\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RandomNumberGenerator \"randomize\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.RandomNumberGenerator.randomize\n\n{-# NOINLINE bindRandomNumberGenerator_set_seed #-}\n\n-- | The seed used by the random number generator. A given seed will give a reproducible sequence of pseudo-random numbers.\n--   \t\t\t__Note:__ The RNG does not have an avalanche effect, and can output similar random streams given similar seeds. Consider using a hash function to improve your seed quality if they're sourced externally.\nbindRandomNumberGenerator_set_seed :: MethodBind\nbindRandomNumberGenerator_set_seed\n  = unsafePerformIO $\n      withCString \"RandomNumberGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"set_seed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The seed used by the random number generator. A given seed will give a reproducible sequence of pseudo-random numbers.\n--   \t\t\t__Note:__ The RNG does not have an avalanche effect, and can output similar random streams given similar seeds. Consider using a hash function to improve your seed quality if they're sourced externally.\nset_seed ::\n           (RandomNumberGenerator :< cls, Object :< cls) =>\n           cls -> Int -> IO ()\nset_seed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRandomNumberGenerator_set_seed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RandomNumberGenerator \"set_seed\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.RandomNumberGenerator.set_seed"
  },
  {
    "path": "src/Godot/Core/Range.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Range\n       (Godot.Core.Range.sig_changed, Godot.Core.Range.sig_value_changed,\n        Godot.Core.Range.get_as_ratio, Godot.Core.Range.get_max,\n        Godot.Core.Range.get_min, Godot.Core.Range.get_page,\n        Godot.Core.Range.get_step, Godot.Core.Range.get_value,\n        Godot.Core.Range.is_greater_allowed,\n        Godot.Core.Range.is_lesser_allowed, Godot.Core.Range.is_ratio_exp,\n        Godot.Core.Range.is_using_rounded_values,\n        Godot.Core.Range.set_allow_greater,\n        Godot.Core.Range.set_allow_lesser, Godot.Core.Range.set_as_ratio,\n        Godot.Core.Range.set_exp_ratio, Godot.Core.Range.set_max,\n        Godot.Core.Range.set_min, Godot.Core.Range.set_page,\n        Godot.Core.Range.set_step, Godot.Core.Range.set_use_rounded_values,\n        Godot.Core.Range.set_value, Godot.Core.Range.share,\n        Godot.Core.Range.unshare)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()\n\n-- | Emitted when @min_value@, @max_value@, @page@, or @step@ change.\nsig_changed :: Godot.Internal.Dispatch.Signal Range\nsig_changed = Godot.Internal.Dispatch.Signal \"changed\"\n\ninstance NodeSignal Range \"changed\" '[]\n\n-- | Emitted when @value@ changes.\nsig_value_changed :: Godot.Internal.Dispatch.Signal Range\nsig_value_changed = Godot.Internal.Dispatch.Signal \"value_changed\"\n\ninstance NodeSignal Range \"value_changed\" '[Float]\n\ninstance NodeProperty Range \"allow_greater\" Bool 'False where\n        nodeProperty\n          = (is_greater_allowed, wrapDroppingSetter set_allow_greater,\n             Nothing)\n\ninstance NodeProperty Range \"allow_lesser\" Bool 'False where\n        nodeProperty\n          = (is_lesser_allowed, wrapDroppingSetter set_allow_lesser, Nothing)\n\ninstance NodeProperty Range \"exp_edit\" Bool 'False where\n        nodeProperty\n          = (is_ratio_exp, wrapDroppingSetter set_exp_ratio, Nothing)\n\ninstance NodeProperty Range \"max_value\" Float 'False where\n        nodeProperty = (get_max, wrapDroppingSetter set_max, Nothing)\n\ninstance NodeProperty Range \"min_value\" Float 'False where\n        nodeProperty = (get_min, wrapDroppingSetter set_min, Nothing)\n\ninstance NodeProperty Range \"page\" Float 'False where\n        nodeProperty = (get_page, wrapDroppingSetter set_page, Nothing)\n\ninstance NodeProperty Range \"ratio\" Float 'False where\n        nodeProperty\n          = (get_as_ratio, wrapDroppingSetter set_as_ratio, Nothing)\n\ninstance NodeProperty Range \"rounded\" Bool 'False where\n        nodeProperty\n          = (is_using_rounded_values,\n             wrapDroppingSetter set_use_rounded_values, Nothing)\n\ninstance NodeProperty Range \"step\" Float 'False where\n        nodeProperty = (get_step, wrapDroppingSetter set_step, Nothing)\n\ninstance NodeProperty Range \"value\" Float 'False where\n        nodeProperty = (get_value, wrapDroppingSetter set_value, Nothing)\n\n{-# NOINLINE bindRange_get_as_ratio #-}\n\n-- | The value mapped between 0 and 1.\nbindRange_get_as_ratio :: MethodBind\nbindRange_get_as_ratio\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"get_as_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The value mapped between 0 and 1.\nget_as_ratio :: (Range :< cls, Object :< cls) => cls -> IO Float\nget_as_ratio cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_get_as_ratio (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"get_as_ratio\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Range.get_as_ratio\n\n{-# NOINLINE bindRange_get_max #-}\n\n-- | Maximum value. Range is clamped if @value@ is greater than @max_value@.\nbindRange_get_max :: MethodBind\nbindRange_get_max\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"get_max\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum value. Range is clamped if @value@ is greater than @max_value@.\nget_max :: (Range :< cls, Object :< cls) => cls -> IO Float\nget_max cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_get_max (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"get_max\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Range.get_max\n\n{-# NOINLINE bindRange_get_min #-}\n\n-- | Minimum value. Range is clamped if @value@ is less than @min_value@.\nbindRange_get_min :: MethodBind\nbindRange_get_min\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"get_min\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Minimum value. Range is clamped if @value@ is less than @min_value@.\nget_min :: (Range :< cls, Object :< cls) => cls -> IO Float\nget_min cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_get_min (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"get_min\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Range.get_min\n\n{-# NOINLINE bindRange_get_page #-}\n\n-- | Page size. Used mainly for @ScrollBar@. ScrollBar's length is its size multiplied by @page@ over the difference between @min_value@ and @max_value@.\nbindRange_get_page :: MethodBind\nbindRange_get_page\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"get_page\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Page size. Used mainly for @ScrollBar@. ScrollBar's length is its size multiplied by @page@ over the difference between @min_value@ and @max_value@.\nget_page :: (Range :< cls, Object :< cls) => cls -> IO Float\nget_page cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_get_page (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"get_page\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Range.get_page\n\n{-# NOINLINE bindRange_get_step #-}\n\n-- | If greater than 0, @value@ will always be rounded to a multiple of @step@. If @rounded@ is also @true@, @value@ will first be rounded to a multiple of @step@ then rounded to the nearest integer.\nbindRange_get_step :: MethodBind\nbindRange_get_step\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"get_step\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If greater than 0, @value@ will always be rounded to a multiple of @step@. If @rounded@ is also @true@, @value@ will first be rounded to a multiple of @step@ then rounded to the nearest integer.\nget_step :: (Range :< cls, Object :< cls) => cls -> IO Float\nget_step cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_get_step (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"get_step\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Range.get_step\n\n{-# NOINLINE bindRange_get_value #-}\n\n-- | Range's current value.\nbindRange_get_value :: MethodBind\nbindRange_get_value\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"get_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Range's current value.\nget_value :: (Range :< cls, Object :< cls) => cls -> IO Float\nget_value cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_get_value (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"get_value\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Range.get_value\n\n{-# NOINLINE bindRange_is_greater_allowed #-}\n\n-- | If @true@, @value@ may be greater than @max_value@.\nbindRange_is_greater_allowed :: MethodBind\nbindRange_is_greater_allowed\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"is_greater_allowed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, @value@ may be greater than @max_value@.\nis_greater_allowed ::\n                     (Range :< cls, Object :< cls) => cls -> IO Bool\nis_greater_allowed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_is_greater_allowed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"is_greater_allowed\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Range.is_greater_allowed\n\n{-# NOINLINE bindRange_is_lesser_allowed #-}\n\n-- | If @true@, @value@ may be less than @min_value@.\nbindRange_is_lesser_allowed :: MethodBind\nbindRange_is_lesser_allowed\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"is_lesser_allowed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, @value@ may be less than @min_value@.\nis_lesser_allowed ::\n                    (Range :< cls, Object :< cls) => cls -> IO Bool\nis_lesser_allowed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_is_lesser_allowed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"is_lesser_allowed\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Range.is_lesser_allowed\n\n{-# NOINLINE bindRange_is_ratio_exp #-}\n\n-- | If @true@, and @min_value@ is greater than 0, @value@ will be represented exponentially rather than linearly.\nbindRange_is_ratio_exp :: MethodBind\nbindRange_is_ratio_exp\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"is_ratio_exp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, and @min_value@ is greater than 0, @value@ will be represented exponentially rather than linearly.\nis_ratio_exp :: (Range :< cls, Object :< cls) => cls -> IO Bool\nis_ratio_exp cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_is_ratio_exp (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"is_ratio_exp\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Range.is_ratio_exp\n\n{-# NOINLINE bindRange_is_using_rounded_values #-}\n\n-- | If @true@, @value@ will always be rounded to the nearest integer.\nbindRange_is_using_rounded_values :: MethodBind\nbindRange_is_using_rounded_values\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_rounded_values\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, @value@ will always be rounded to the nearest integer.\nis_using_rounded_values ::\n                          (Range :< cls, Object :< cls) => cls -> IO Bool\nis_using_rounded_values cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_is_using_rounded_values\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"is_using_rounded_values\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Range.is_using_rounded_values\n\n{-# NOINLINE bindRange_set_allow_greater #-}\n\n-- | If @true@, @value@ may be greater than @max_value@.\nbindRange_set_allow_greater :: MethodBind\nbindRange_set_allow_greater\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"set_allow_greater\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, @value@ may be greater than @max_value@.\nset_allow_greater ::\n                    (Range :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_allow_greater cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_set_allow_greater (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"set_allow_greater\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Range.set_allow_greater\n\n{-# NOINLINE bindRange_set_allow_lesser #-}\n\n-- | If @true@, @value@ may be less than @min_value@.\nbindRange_set_allow_lesser :: MethodBind\nbindRange_set_allow_lesser\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"set_allow_lesser\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, @value@ may be less than @min_value@.\nset_allow_lesser ::\n                   (Range :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_allow_lesser cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_set_allow_lesser (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"set_allow_lesser\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Range.set_allow_lesser\n\n{-# NOINLINE bindRange_set_as_ratio #-}\n\n-- | The value mapped between 0 and 1.\nbindRange_set_as_ratio :: MethodBind\nbindRange_set_as_ratio\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"set_as_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The value mapped between 0 and 1.\nset_as_ratio ::\n               (Range :< cls, Object :< cls) => cls -> Float -> IO ()\nset_as_ratio cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_set_as_ratio (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"set_as_ratio\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Range.set_as_ratio\n\n{-# NOINLINE bindRange_set_exp_ratio #-}\n\n-- | If @true@, and @min_value@ is greater than 0, @value@ will be represented exponentially rather than linearly.\nbindRange_set_exp_ratio :: MethodBind\nbindRange_set_exp_ratio\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"set_exp_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, and @min_value@ is greater than 0, @value@ will be represented exponentially rather than linearly.\nset_exp_ratio ::\n                (Range :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_exp_ratio cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_set_exp_ratio (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"set_exp_ratio\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Range.set_exp_ratio\n\n{-# NOINLINE bindRange_set_max #-}\n\n-- | Maximum value. Range is clamped if @value@ is greater than @max_value@.\nbindRange_set_max :: MethodBind\nbindRange_set_max\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"set_max\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Maximum value. Range is clamped if @value@ is greater than @max_value@.\nset_max :: (Range :< cls, Object :< cls) => cls -> Float -> IO ()\nset_max cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_set_max (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"set_max\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Range.set_max\n\n{-# NOINLINE bindRange_set_min #-}\n\n-- | Minimum value. Range is clamped if @value@ is less than @min_value@.\nbindRange_set_min :: MethodBind\nbindRange_set_min\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"set_min\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Minimum value. Range is clamped if @value@ is less than @min_value@.\nset_min :: (Range :< cls, Object :< cls) => cls -> Float -> IO ()\nset_min cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_set_min (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"set_min\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Range.set_min\n\n{-# NOINLINE bindRange_set_page #-}\n\n-- | Page size. Used mainly for @ScrollBar@. ScrollBar's length is its size multiplied by @page@ over the difference between @min_value@ and @max_value@.\nbindRange_set_page :: MethodBind\nbindRange_set_page\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"set_page\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Page size. Used mainly for @ScrollBar@. ScrollBar's length is its size multiplied by @page@ over the difference between @min_value@ and @max_value@.\nset_page :: (Range :< cls, Object :< cls) => cls -> Float -> IO ()\nset_page cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_set_page (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"set_page\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Range.set_page\n\n{-# NOINLINE bindRange_set_step #-}\n\n-- | If greater than 0, @value@ will always be rounded to a multiple of @step@. If @rounded@ is also @true@, @value@ will first be rounded to a multiple of @step@ then rounded to the nearest integer.\nbindRange_set_step :: MethodBind\nbindRange_set_step\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"set_step\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If greater than 0, @value@ will always be rounded to a multiple of @step@. If @rounded@ is also @true@, @value@ will first be rounded to a multiple of @step@ then rounded to the nearest integer.\nset_step :: (Range :< cls, Object :< cls) => cls -> Float -> IO ()\nset_step cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_set_step (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"set_step\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Range.set_step\n\n{-# NOINLINE bindRange_set_use_rounded_values #-}\n\n-- | If @true@, @value@ will always be rounded to the nearest integer.\nbindRange_set_use_rounded_values :: MethodBind\nbindRange_set_use_rounded_values\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_rounded_values\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, @value@ will always be rounded to the nearest integer.\nset_use_rounded_values ::\n                         (Range :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_rounded_values cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_set_use_rounded_values\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"set_use_rounded_values\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Range.set_use_rounded_values\n\n{-# NOINLINE bindRange_set_value #-}\n\n-- | Range's current value.\nbindRange_set_value :: MethodBind\nbindRange_set_value\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"set_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Range's current value.\nset_value :: (Range :< cls, Object :< cls) => cls -> Float -> IO ()\nset_value cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_set_value (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"set_value\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Range.set_value\n\n{-# NOINLINE bindRange_share #-}\n\n-- | Binds two ranges together along with any ranges previously grouped with either of them. When any of range's member variables change, it will share the new value with all other ranges in its group.\nbindRange_share :: MethodBind\nbindRange_share\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"share\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Binds two ranges together along with any ranges previously grouped with either of them. When any of range's member variables change, it will share the new value with all other ranges in its group.\nshare :: (Range :< cls, Object :< cls) => cls -> Node -> IO ()\nshare cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_share (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"share\" '[Node] (IO ()) where\n        nodeMethod = Godot.Core.Range.share\n\n{-# NOINLINE bindRange_unshare #-}\n\n-- | Stops range from sharing its member variables with any other.\nbindRange_unshare :: MethodBind\nbindRange_unshare\n  = unsafePerformIO $\n      withCString \"Range\" $\n        \\ clsNamePtr ->\n          withCString \"unshare\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops range from sharing its member variables with any other.\nunshare :: (Range :< cls, Object :< cls) => cls -> IO ()\nunshare cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRange_unshare (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Range \"unshare\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Range.unshare"
  },
  {
    "path": "src/Godot/Core/RayCast.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.RayCast\n       (Godot.Core.RayCast.add_exception,\n        Godot.Core.RayCast.add_exception_rid,\n        Godot.Core.RayCast.clear_exceptions,\n        Godot.Core.RayCast.force_raycast_update,\n        Godot.Core.RayCast.get_cast_to, Godot.Core.RayCast.get_collider,\n        Godot.Core.RayCast.get_collider_shape,\n        Godot.Core.RayCast.get_collision_mask,\n        Godot.Core.RayCast.get_collision_mask_bit,\n        Godot.Core.RayCast.get_collision_normal,\n        Godot.Core.RayCast.get_collision_point,\n        Godot.Core.RayCast.get_exclude_parent_body,\n        Godot.Core.RayCast.is_collide_with_areas_enabled,\n        Godot.Core.RayCast.is_collide_with_bodies_enabled,\n        Godot.Core.RayCast.is_colliding, Godot.Core.RayCast.is_enabled,\n        Godot.Core.RayCast.remove_exception,\n        Godot.Core.RayCast.remove_exception_rid,\n        Godot.Core.RayCast.set_cast_to,\n        Godot.Core.RayCast.set_collide_with_areas,\n        Godot.Core.RayCast.set_collide_with_bodies,\n        Godot.Core.RayCast.set_collision_mask,\n        Godot.Core.RayCast.set_collision_mask_bit,\n        Godot.Core.RayCast.set_enabled,\n        Godot.Core.RayCast.set_exclude_parent_body)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\ninstance NodeProperty RayCast \"cast_to\" Vector3 'False where\n        nodeProperty\n          = (get_cast_to, wrapDroppingSetter set_cast_to, Nothing)\n\ninstance NodeProperty RayCast \"collide_with_areas\" Bool 'False\n         where\n        nodeProperty\n          = (is_collide_with_areas_enabled,\n             wrapDroppingSetter set_collide_with_areas, Nothing)\n\ninstance NodeProperty RayCast \"collide_with_bodies\" Bool 'False\n         where\n        nodeProperty\n          = (is_collide_with_bodies_enabled,\n             wrapDroppingSetter set_collide_with_bodies, Nothing)\n\ninstance NodeProperty RayCast \"collision_mask\" Int 'False where\n        nodeProperty\n          = (get_collision_mask, wrapDroppingSetter set_collision_mask,\n             Nothing)\n\ninstance NodeProperty RayCast \"enabled\" Bool 'False where\n        nodeProperty\n          = (is_enabled, wrapDroppingSetter set_enabled, Nothing)\n\ninstance NodeProperty RayCast \"exclude_parent\" Bool 'False where\n        nodeProperty\n          = (get_exclude_parent_body,\n             wrapDroppingSetter set_exclude_parent_body, Nothing)\n\n{-# NOINLINE bindRayCast_add_exception #-}\n\n-- | Adds a collision exception so the ray does not report collisions with the specified node.\nbindRayCast_add_exception :: MethodBind\nbindRayCast_add_exception\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"add_exception\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a collision exception so the ray does not report collisions with the specified node.\nadd_exception ::\n                (RayCast :< cls, Object :< cls) => cls -> Object -> IO ()\nadd_exception cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_add_exception (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"add_exception\" '[Object] (IO ()) where\n        nodeMethod = Godot.Core.RayCast.add_exception\n\n{-# NOINLINE bindRayCast_add_exception_rid #-}\n\n-- | Adds a collision exception so the ray does not report collisions with the specified @RID@.\nbindRayCast_add_exception_rid :: MethodBind\nbindRayCast_add_exception_rid\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"add_exception_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a collision exception so the ray does not report collisions with the specified @RID@.\nadd_exception_rid ::\n                    (RayCast :< cls, Object :< cls) => cls -> Rid -> IO ()\nadd_exception_rid cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_add_exception_rid (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"add_exception_rid\" '[Rid] (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast.add_exception_rid\n\n{-# NOINLINE bindRayCast_clear_exceptions #-}\n\n-- | Removes all collision exceptions for this ray.\nbindRayCast_clear_exceptions :: MethodBind\nbindRayCast_clear_exceptions\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"clear_exceptions\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all collision exceptions for this ray.\nclear_exceptions :: (RayCast :< cls, Object :< cls) => cls -> IO ()\nclear_exceptions cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_clear_exceptions (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"clear_exceptions\" '[] (IO ()) where\n        nodeMethod = Godot.Core.RayCast.clear_exceptions\n\n{-# NOINLINE bindRayCast_force_raycast_update #-}\n\n-- | Updates the collision information for the ray.\n--   \t\t\t\tUse this method to update the collision information immediately instead of waiting for the next @_physics_process@ call, for example if the ray or its parent has changed state.\n--   \t\t\t\t__Note:__ @enabled@ is not required for this to work.\nbindRayCast_force_raycast_update :: MethodBind\nbindRayCast_force_raycast_update\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"force_raycast_update\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Updates the collision information for the ray.\n--   \t\t\t\tUse this method to update the collision information immediately instead of waiting for the next @_physics_process@ call, for example if the ray or its parent has changed state.\n--   \t\t\t\t__Note:__ @enabled@ is not required for this to work.\nforce_raycast_update ::\n                       (RayCast :< cls, Object :< cls) => cls -> IO ()\nforce_raycast_update cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_force_raycast_update\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"force_raycast_update\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast.force_raycast_update\n\n{-# NOINLINE bindRayCast_get_cast_to #-}\n\n-- | The ray's destination point, relative to the RayCast's @position@.\nbindRayCast_get_cast_to :: MethodBind\nbindRayCast_get_cast_to\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"get_cast_to\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ray's destination point, relative to the RayCast's @position@.\nget_cast_to :: (RayCast :< cls, Object :< cls) => cls -> IO Vector3\nget_cast_to cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_get_cast_to (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"get_cast_to\" '[] (IO Vector3) where\n        nodeMethod = Godot.Core.RayCast.get_cast_to\n\n{-# NOINLINE bindRayCast_get_collider #-}\n\n-- | Returns the first object that the ray intersects, or @null@ if no object is intersecting the ray (i.e. @method is_colliding@ returns @false@).\nbindRayCast_get_collider :: MethodBind\nbindRayCast_get_collider\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the first object that the ray intersects, or @null@ if no object is intersecting the ray (i.e. @method is_colliding@ returns @false@).\nget_collider :: (RayCast :< cls, Object :< cls) => cls -> IO Object\nget_collider cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_get_collider (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"get_collider\" '[] (IO Object) where\n        nodeMethod = Godot.Core.RayCast.get_collider\n\n{-# NOINLINE bindRayCast_get_collider_shape #-}\n\n-- | Returns the shape ID of the first object that the ray intersects, or @0@ if no object is intersecting the ray (i.e. @method is_colliding@ returns @false@).\nbindRayCast_get_collider_shape :: MethodBind\nbindRayCast_get_collider_shape\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the shape ID of the first object that the ray intersects, or @0@ if no object is intersecting the ray (i.e. @method is_colliding@ returns @false@).\nget_collider_shape ::\n                     (RayCast :< cls, Object :< cls) => cls -> IO Int\nget_collider_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_get_collider_shape (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"get_collider_shape\" '[] (IO Int) where\n        nodeMethod = Godot.Core.RayCast.get_collider_shape\n\n{-# NOINLINE bindRayCast_get_collision_mask #-}\n\n-- | The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindRayCast_get_collision_mask :: MethodBind\nbindRayCast_get_collision_mask\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nget_collision_mask ::\n                     (RayCast :< cls, Object :< cls) => cls -> IO Int\nget_collision_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_get_collision_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"get_collision_mask\" '[] (IO Int) where\n        nodeMethod = Godot.Core.RayCast.get_collision_mask\n\n{-# NOINLINE bindRayCast_get_collision_mask_bit #-}\n\n-- | Returns @true@ if the bit index passed is turned on.\n--   \t\t\t\t__Note:__ Bit indices range from 0-19.\nbindRayCast_get_collision_mask_bit :: MethodBind\nbindRayCast_get_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the bit index passed is turned on.\n--   \t\t\t\t__Note:__ Bit indices range from 0-19.\nget_collision_mask_bit ::\n                         (RayCast :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_mask_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_get_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"get_collision_mask_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RayCast.get_collision_mask_bit\n\n{-# NOINLINE bindRayCast_get_collision_normal #-}\n\n-- | Returns the normal of the intersecting object's shape at the collision point.\nbindRayCast_get_collision_normal :: MethodBind\nbindRayCast_get_collision_normal\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the normal of the intersecting object's shape at the collision point.\nget_collision_normal ::\n                       (RayCast :< cls, Object :< cls) => cls -> IO Vector3\nget_collision_normal cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_get_collision_normal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"get_collision_normal\" '[] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.RayCast.get_collision_normal\n\n{-# NOINLINE bindRayCast_get_collision_point #-}\n\n-- | Returns the collision point at which the ray intersects the closest object.\n--   \t\t\t\t__Note:__ This point is in the __global__ coordinate system.\nbindRayCast_get_collision_point :: MethodBind\nbindRayCast_get_collision_point\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the collision point at which the ray intersects the closest object.\n--   \t\t\t\t__Note:__ This point is in the __global__ coordinate system.\nget_collision_point ::\n                      (RayCast :< cls, Object :< cls) => cls -> IO Vector3\nget_collision_point cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_get_collision_point (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"get_collision_point\" '[] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.RayCast.get_collision_point\n\n{-# NOINLINE bindRayCast_get_exclude_parent_body #-}\n\n-- | If @true@, collisions will be ignored for this RayCast's immediate parent.\nbindRayCast_get_exclude_parent_body :: MethodBind\nbindRayCast_get_exclude_parent_body\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"get_exclude_parent_body\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, collisions will be ignored for this RayCast's immediate parent.\nget_exclude_parent_body ::\n                          (RayCast :< cls, Object :< cls) => cls -> IO Bool\nget_exclude_parent_body cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_get_exclude_parent_body\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"get_exclude_parent_body\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.RayCast.get_exclude_parent_body\n\n{-# NOINLINE bindRayCast_is_collide_with_areas_enabled #-}\n\n-- | If @true@, collision with @Area@s will be reported.\nbindRayCast_is_collide_with_areas_enabled :: MethodBind\nbindRayCast_is_collide_with_areas_enabled\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"is_collide_with_areas_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, collision with @Area@s will be reported.\nis_collide_with_areas_enabled ::\n                                (RayCast :< cls, Object :< cls) => cls -> IO Bool\nis_collide_with_areas_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_is_collide_with_areas_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"is_collide_with_areas_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RayCast.is_collide_with_areas_enabled\n\n{-# NOINLINE bindRayCast_is_collide_with_bodies_enabled #-}\n\n-- | If @true@, collision with @PhysicsBody@s will be reported.\nbindRayCast_is_collide_with_bodies_enabled :: MethodBind\nbindRayCast_is_collide_with_bodies_enabled\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"is_collide_with_bodies_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, collision with @PhysicsBody@s will be reported.\nis_collide_with_bodies_enabled ::\n                                 (RayCast :< cls, Object :< cls) => cls -> IO Bool\nis_collide_with_bodies_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_is_collide_with_bodies_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"is_collide_with_bodies_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RayCast.is_collide_with_bodies_enabled\n\n{-# NOINLINE bindRayCast_is_colliding #-}\n\n-- | Returns whether any object is intersecting with the ray's vector (considering the vector length).\nbindRayCast_is_colliding :: MethodBind\nbindRayCast_is_colliding\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"is_colliding\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether any object is intersecting with the ray's vector (considering the vector length).\nis_colliding :: (RayCast :< cls, Object :< cls) => cls -> IO Bool\nis_colliding cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_is_colliding (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"is_colliding\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.RayCast.is_colliding\n\n{-# NOINLINE bindRayCast_is_enabled #-}\n\n-- | If @true@, collisions will be reported.\nbindRayCast_is_enabled :: MethodBind\nbindRayCast_is_enabled\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"is_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, collisions will be reported.\nis_enabled :: (RayCast :< cls, Object :< cls) => cls -> IO Bool\nis_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_is_enabled (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"is_enabled\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.RayCast.is_enabled\n\n{-# NOINLINE bindRayCast_remove_exception #-}\n\n-- | Removes a collision exception so the ray does report collisions with the specified node.\nbindRayCast_remove_exception :: MethodBind\nbindRayCast_remove_exception\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"remove_exception\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a collision exception so the ray does report collisions with the specified node.\nremove_exception ::\n                   (RayCast :< cls, Object :< cls) => cls -> Object -> IO ()\nremove_exception cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_remove_exception (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"remove_exception\" '[Object] (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast.remove_exception\n\n{-# NOINLINE bindRayCast_remove_exception_rid #-}\n\n-- | Removes a collision exception so the ray does report collisions with the specified @RID@.\nbindRayCast_remove_exception_rid :: MethodBind\nbindRayCast_remove_exception_rid\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"remove_exception_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a collision exception so the ray does report collisions with the specified @RID@.\nremove_exception_rid ::\n                       (RayCast :< cls, Object :< cls) => cls -> Rid -> IO ()\nremove_exception_rid cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_remove_exception_rid\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"remove_exception_rid\" '[Rid] (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast.remove_exception_rid\n\n{-# NOINLINE bindRayCast_set_cast_to #-}\n\n-- | The ray's destination point, relative to the RayCast's @position@.\nbindRayCast_set_cast_to :: MethodBind\nbindRayCast_set_cast_to\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"set_cast_to\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ray's destination point, relative to the RayCast's @position@.\nset_cast_to ::\n              (RayCast :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_cast_to cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_set_cast_to (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"set_cast_to\" '[Vector3] (IO ()) where\n        nodeMethod = Godot.Core.RayCast.set_cast_to\n\n{-# NOINLINE bindRayCast_set_collide_with_areas #-}\n\n-- | If @true@, collision with @Area@s will be reported.\nbindRayCast_set_collide_with_areas :: MethodBind\nbindRayCast_set_collide_with_areas\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"set_collide_with_areas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, collision with @Area@s will be reported.\nset_collide_with_areas ::\n                         (RayCast :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_collide_with_areas cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_set_collide_with_areas\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"set_collide_with_areas\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast.set_collide_with_areas\n\n{-# NOINLINE bindRayCast_set_collide_with_bodies #-}\n\n-- | If @true@, collision with @PhysicsBody@s will be reported.\nbindRayCast_set_collide_with_bodies :: MethodBind\nbindRayCast_set_collide_with_bodies\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"set_collide_with_bodies\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, collision with @PhysicsBody@s will be reported.\nset_collide_with_bodies ::\n                          (RayCast :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_collide_with_bodies cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_set_collide_with_bodies\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"set_collide_with_bodies\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast.set_collide_with_bodies\n\n{-# NOINLINE bindRayCast_set_collision_mask #-}\n\n-- | The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindRayCast_set_collision_mask :: MethodBind\nbindRayCast_set_collision_mask\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nset_collision_mask ::\n                     (RayCast :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_set_collision_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"set_collision_mask\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast.set_collision_mask\n\n{-# NOINLINE bindRayCast_set_collision_mask_bit #-}\n\n-- | Sets the bit index passed to the @value@ passed.\n--   \t\t\t\t__Note:__ Bit indexes range from 0-19.\nbindRayCast_set_collision_mask_bit :: MethodBind\nbindRayCast_set_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the bit index passed to the @value@ passed.\n--   \t\t\t\t__Note:__ Bit indexes range from 0-19.\nset_collision_mask_bit ::\n                         (RayCast :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_collision_mask_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_set_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"set_collision_mask_bit\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast.set_collision_mask_bit\n\n{-# NOINLINE bindRayCast_set_enabled #-}\n\n-- | If @true@, collisions will be reported.\nbindRayCast_set_enabled :: MethodBind\nbindRayCast_set_enabled\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"set_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, collisions will be reported.\nset_enabled ::\n              (RayCast :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_set_enabled (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"set_enabled\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.RayCast.set_enabled\n\n{-# NOINLINE bindRayCast_set_exclude_parent_body #-}\n\n-- | If @true@, collisions will be ignored for this RayCast's immediate parent.\nbindRayCast_set_exclude_parent_body :: MethodBind\nbindRayCast_set_exclude_parent_body\n  = unsafePerformIO $\n      withCString \"RayCast\" $\n        \\ clsNamePtr ->\n          withCString \"set_exclude_parent_body\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, collisions will be ignored for this RayCast's immediate parent.\nset_exclude_parent_body ::\n                          (RayCast :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_exclude_parent_body cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast_set_exclude_parent_body\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast \"set_exclude_parent_body\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast.set_exclude_parent_body"
  },
  {
    "path": "src/Godot/Core/RayCast2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.RayCast2D\n       (Godot.Core.RayCast2D.add_exception,\n        Godot.Core.RayCast2D.add_exception_rid,\n        Godot.Core.RayCast2D.clear_exceptions,\n        Godot.Core.RayCast2D.force_raycast_update,\n        Godot.Core.RayCast2D.get_cast_to,\n        Godot.Core.RayCast2D.get_collider,\n        Godot.Core.RayCast2D.get_collider_shape,\n        Godot.Core.RayCast2D.get_collision_mask,\n        Godot.Core.RayCast2D.get_collision_mask_bit,\n        Godot.Core.RayCast2D.get_collision_normal,\n        Godot.Core.RayCast2D.get_collision_point,\n        Godot.Core.RayCast2D.get_exclude_parent_body,\n        Godot.Core.RayCast2D.is_collide_with_areas_enabled,\n        Godot.Core.RayCast2D.is_collide_with_bodies_enabled,\n        Godot.Core.RayCast2D.is_colliding, Godot.Core.RayCast2D.is_enabled,\n        Godot.Core.RayCast2D.remove_exception,\n        Godot.Core.RayCast2D.remove_exception_rid,\n        Godot.Core.RayCast2D.set_cast_to,\n        Godot.Core.RayCast2D.set_collide_with_areas,\n        Godot.Core.RayCast2D.set_collide_with_bodies,\n        Godot.Core.RayCast2D.set_collision_mask,\n        Godot.Core.RayCast2D.set_collision_mask_bit,\n        Godot.Core.RayCast2D.set_enabled,\n        Godot.Core.RayCast2D.set_exclude_parent_body)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\ninstance NodeProperty RayCast2D \"cast_to\" Vector2 'False where\n        nodeProperty\n          = (get_cast_to, wrapDroppingSetter set_cast_to, Nothing)\n\ninstance NodeProperty RayCast2D \"collide_with_areas\" Bool 'False\n         where\n        nodeProperty\n          = (is_collide_with_areas_enabled,\n             wrapDroppingSetter set_collide_with_areas, Nothing)\n\ninstance NodeProperty RayCast2D \"collide_with_bodies\" Bool 'False\n         where\n        nodeProperty\n          = (is_collide_with_bodies_enabled,\n             wrapDroppingSetter set_collide_with_bodies, Nothing)\n\ninstance NodeProperty RayCast2D \"collision_mask\" Int 'False where\n        nodeProperty\n          = (get_collision_mask, wrapDroppingSetter set_collision_mask,\n             Nothing)\n\ninstance NodeProperty RayCast2D \"enabled\" Bool 'False where\n        nodeProperty\n          = (is_enabled, wrapDroppingSetter set_enabled, Nothing)\n\ninstance NodeProperty RayCast2D \"exclude_parent\" Bool 'False where\n        nodeProperty\n          = (get_exclude_parent_body,\n             wrapDroppingSetter set_exclude_parent_body, Nothing)\n\n{-# NOINLINE bindRayCast2D_add_exception #-}\n\n-- | Adds a collision exception so the ray does not report collisions with the specified node.\nbindRayCast2D_add_exception :: MethodBind\nbindRayCast2D_add_exception\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"add_exception\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a collision exception so the ray does not report collisions with the specified node.\nadd_exception ::\n                (RayCast2D :< cls, Object :< cls) => cls -> Object -> IO ()\nadd_exception cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_add_exception (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"add_exception\" '[Object] (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast2D.add_exception\n\n{-# NOINLINE bindRayCast2D_add_exception_rid #-}\n\n-- | Adds a collision exception so the ray does not report collisions with the specified @RID@.\nbindRayCast2D_add_exception_rid :: MethodBind\nbindRayCast2D_add_exception_rid\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"add_exception_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a collision exception so the ray does not report collisions with the specified @RID@.\nadd_exception_rid ::\n                    (RayCast2D :< cls, Object :< cls) => cls -> Rid -> IO ()\nadd_exception_rid cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_add_exception_rid (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"add_exception_rid\" '[Rid] (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast2D.add_exception_rid\n\n{-# NOINLINE bindRayCast2D_clear_exceptions #-}\n\n-- | Removes all collision exceptions for this ray.\nbindRayCast2D_clear_exceptions :: MethodBind\nbindRayCast2D_clear_exceptions\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"clear_exceptions\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all collision exceptions for this ray.\nclear_exceptions ::\n                   (RayCast2D :< cls, Object :< cls) => cls -> IO ()\nclear_exceptions cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_clear_exceptions (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"clear_exceptions\" '[] (IO ()) where\n        nodeMethod = Godot.Core.RayCast2D.clear_exceptions\n\n{-# NOINLINE bindRayCast2D_force_raycast_update #-}\n\n-- | Updates the collision information for the ray. Use this method to update the collision information immediately instead of waiting for the next @_physics_process@ call, for example if the ray or its parent has changed state.\n--   \t\t\t\t__Note:__ @enabled@ is not required for this to work.\nbindRayCast2D_force_raycast_update :: MethodBind\nbindRayCast2D_force_raycast_update\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"force_raycast_update\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Updates the collision information for the ray. Use this method to update the collision information immediately instead of waiting for the next @_physics_process@ call, for example if the ray or its parent has changed state.\n--   \t\t\t\t__Note:__ @enabled@ is not required for this to work.\nforce_raycast_update ::\n                       (RayCast2D :< cls, Object :< cls) => cls -> IO ()\nforce_raycast_update cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_force_raycast_update\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"force_raycast_update\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast2D.force_raycast_update\n\n{-# NOINLINE bindRayCast2D_get_cast_to #-}\n\n-- | The ray's destination point, relative to the RayCast's @position@.\nbindRayCast2D_get_cast_to :: MethodBind\nbindRayCast2D_get_cast_to\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_cast_to\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ray's destination point, relative to the RayCast's @position@.\nget_cast_to ::\n              (RayCast2D :< cls, Object :< cls) => cls -> IO Vector2\nget_cast_to cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_get_cast_to (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"get_cast_to\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.RayCast2D.get_cast_to\n\n{-# NOINLINE bindRayCast2D_get_collider #-}\n\n-- | Returns the first object that the ray intersects, or @null@ if no object is intersecting the ray (i.e. @method is_colliding@ returns @false@).\nbindRayCast2D_get_collider :: MethodBind\nbindRayCast2D_get_collider\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the first object that the ray intersects, or @null@ if no object is intersecting the ray (i.e. @method is_colliding@ returns @false@).\nget_collider ::\n               (RayCast2D :< cls, Object :< cls) => cls -> IO Object\nget_collider cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_get_collider (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"get_collider\" '[] (IO Object) where\n        nodeMethod = Godot.Core.RayCast2D.get_collider\n\n{-# NOINLINE bindRayCast2D_get_collider_shape #-}\n\n-- | Returns the shape ID of the first object that the ray intersects, or @0@ if no object is intersecting the ray (i.e. @method is_colliding@ returns @false@).\nbindRayCast2D_get_collider_shape :: MethodBind\nbindRayCast2D_get_collider_shape\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collider_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the shape ID of the first object that the ray intersects, or @0@ if no object is intersecting the ray (i.e. @method is_colliding@ returns @false@).\nget_collider_shape ::\n                     (RayCast2D :< cls, Object :< cls) => cls -> IO Int\nget_collider_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_get_collider_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"get_collider_shape\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.RayCast2D.get_collider_shape\n\n{-# NOINLINE bindRayCast2D_get_collision_mask #-}\n\n-- | The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindRayCast2D_get_collision_mask :: MethodBind\nbindRayCast2D_get_collision_mask\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nget_collision_mask ::\n                     (RayCast2D :< cls, Object :< cls) => cls -> IO Int\nget_collision_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_get_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"get_collision_mask\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.RayCast2D.get_collision_mask\n\n{-# NOINLINE bindRayCast2D_get_collision_mask_bit #-}\n\n-- | Returns an individual bit on the collision mask.\nbindRayCast2D_get_collision_mask_bit :: MethodBind\nbindRayCast2D_get_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an individual bit on the collision mask.\nget_collision_mask_bit ::\n                         (RayCast2D :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_mask_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_get_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"get_collision_mask_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RayCast2D.get_collision_mask_bit\n\n{-# NOINLINE bindRayCast2D_get_collision_normal #-}\n\n-- | Returns the normal of the intersecting object's shape at the collision point.\nbindRayCast2D_get_collision_normal :: MethodBind\nbindRayCast2D_get_collision_normal\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the normal of the intersecting object's shape at the collision point.\nget_collision_normal ::\n                       (RayCast2D :< cls, Object :< cls) => cls -> IO Vector2\nget_collision_normal cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_get_collision_normal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"get_collision_normal\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.RayCast2D.get_collision_normal\n\n{-# NOINLINE bindRayCast2D_get_collision_point #-}\n\n-- | Returns the collision point at which the ray intersects the closest object.\n--   \t\t\t\t__Note:__ this point is in the __global__ coordinate system.\nbindRayCast2D_get_collision_point :: MethodBind\nbindRayCast2D_get_collision_point\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_point\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the collision point at which the ray intersects the closest object.\n--   \t\t\t\t__Note:__ this point is in the __global__ coordinate system.\nget_collision_point ::\n                      (RayCast2D :< cls, Object :< cls) => cls -> IO Vector2\nget_collision_point cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_get_collision_point\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"get_collision_point\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.RayCast2D.get_collision_point\n\n{-# NOINLINE bindRayCast2D_get_exclude_parent_body #-}\n\n-- | If @true@, the parent node will be excluded from collision detection.\nbindRayCast2D_get_exclude_parent_body :: MethodBind\nbindRayCast2D_get_exclude_parent_body\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_exclude_parent_body\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the parent node will be excluded from collision detection.\nget_exclude_parent_body ::\n                          (RayCast2D :< cls, Object :< cls) => cls -> IO Bool\nget_exclude_parent_body cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_get_exclude_parent_body\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"get_exclude_parent_body\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RayCast2D.get_exclude_parent_body\n\n{-# NOINLINE bindRayCast2D_is_collide_with_areas_enabled #-}\n\n-- | If @true@, collision with @Area2D@s will be reported.\nbindRayCast2D_is_collide_with_areas_enabled :: MethodBind\nbindRayCast2D_is_collide_with_areas_enabled\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_collide_with_areas_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, collision with @Area2D@s will be reported.\nis_collide_with_areas_enabled ::\n                                (RayCast2D :< cls, Object :< cls) => cls -> IO Bool\nis_collide_with_areas_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_is_collide_with_areas_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"is_collide_with_areas_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RayCast2D.is_collide_with_areas_enabled\n\n{-# NOINLINE bindRayCast2D_is_collide_with_bodies_enabled #-}\n\n-- | If @true@, collision with @PhysicsBody2D@s will be reported.\nbindRayCast2D_is_collide_with_bodies_enabled :: MethodBind\nbindRayCast2D_is_collide_with_bodies_enabled\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_collide_with_bodies_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, collision with @PhysicsBody2D@s will be reported.\nis_collide_with_bodies_enabled ::\n                                 (RayCast2D :< cls, Object :< cls) => cls -> IO Bool\nis_collide_with_bodies_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_is_collide_with_bodies_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"is_collide_with_bodies_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RayCast2D.is_collide_with_bodies_enabled\n\n{-# NOINLINE bindRayCast2D_is_colliding #-}\n\n-- | Returns whether any object is intersecting with the ray's vector (considering the vector length).\nbindRayCast2D_is_colliding :: MethodBind\nbindRayCast2D_is_colliding\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_colliding\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether any object is intersecting with the ray's vector (considering the vector length).\nis_colliding :: (RayCast2D :< cls, Object :< cls) => cls -> IO Bool\nis_colliding cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_is_colliding (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"is_colliding\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.RayCast2D.is_colliding\n\n{-# NOINLINE bindRayCast2D_is_enabled #-}\n\n-- | If @true@, collisions will be reported.\nbindRayCast2D_is_enabled :: MethodBind\nbindRayCast2D_is_enabled\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, collisions will be reported.\nis_enabled :: (RayCast2D :< cls, Object :< cls) => cls -> IO Bool\nis_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_is_enabled (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"is_enabled\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.RayCast2D.is_enabled\n\n{-# NOINLINE bindRayCast2D_remove_exception #-}\n\n-- | Removes a collision exception so the ray does report collisions with the specified node.\nbindRayCast2D_remove_exception :: MethodBind\nbindRayCast2D_remove_exception\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"remove_exception\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a collision exception so the ray does report collisions with the specified node.\nremove_exception ::\n                   (RayCast2D :< cls, Object :< cls) => cls -> Object -> IO ()\nremove_exception cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_remove_exception (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"remove_exception\" '[Object] (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast2D.remove_exception\n\n{-# NOINLINE bindRayCast2D_remove_exception_rid #-}\n\n-- | Removes a collision exception so the ray does report collisions with the specified @RID@.\nbindRayCast2D_remove_exception_rid :: MethodBind\nbindRayCast2D_remove_exception_rid\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"remove_exception_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a collision exception so the ray does report collisions with the specified @RID@.\nremove_exception_rid ::\n                       (RayCast2D :< cls, Object :< cls) => cls -> Rid -> IO ()\nremove_exception_rid cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_remove_exception_rid\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"remove_exception_rid\" '[Rid] (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast2D.remove_exception_rid\n\n{-# NOINLINE bindRayCast2D_set_cast_to #-}\n\n-- | The ray's destination point, relative to the RayCast's @position@.\nbindRayCast2D_set_cast_to :: MethodBind\nbindRayCast2D_set_cast_to\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_cast_to\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ray's destination point, relative to the RayCast's @position@.\nset_cast_to ::\n              (RayCast2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_cast_to cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_set_cast_to (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"set_cast_to\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast2D.set_cast_to\n\n{-# NOINLINE bindRayCast2D_set_collide_with_areas #-}\n\n-- | If @true@, collision with @Area2D@s will be reported.\nbindRayCast2D_set_collide_with_areas :: MethodBind\nbindRayCast2D_set_collide_with_areas\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_collide_with_areas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, collision with @Area2D@s will be reported.\nset_collide_with_areas ::\n                         (RayCast2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_collide_with_areas cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_set_collide_with_areas\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"set_collide_with_areas\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast2D.set_collide_with_areas\n\n{-# NOINLINE bindRayCast2D_set_collide_with_bodies #-}\n\n-- | If @true@, collision with @PhysicsBody2D@s will be reported.\nbindRayCast2D_set_collide_with_bodies :: MethodBind\nbindRayCast2D_set_collide_with_bodies\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_collide_with_bodies\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, collision with @PhysicsBody2D@s will be reported.\nset_collide_with_bodies ::\n                          (RayCast2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_collide_with_bodies cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_set_collide_with_bodies\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"set_collide_with_bodies\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast2D.set_collide_with_bodies\n\n{-# NOINLINE bindRayCast2D_set_collision_mask #-}\n\n-- | The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindRayCast2D_set_collision_mask :: MethodBind\nbindRayCast2D_set_collision_mask\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nset_collision_mask ::\n                     (RayCast2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_set_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"set_collision_mask\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast2D.set_collision_mask\n\n{-# NOINLINE bindRayCast2D_set_collision_mask_bit #-}\n\n-- | Sets or clears individual bits on the collision mask. This makes selecting the areas scanned easier.\nbindRayCast2D_set_collision_mask_bit :: MethodBind\nbindRayCast2D_set_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets or clears individual bits on the collision mask. This makes selecting the areas scanned easier.\nset_collision_mask_bit ::\n                         (RayCast2D :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_collision_mask_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_set_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"set_collision_mask_bit\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast2D.set_collision_mask_bit\n\n{-# NOINLINE bindRayCast2D_set_enabled #-}\n\n-- | If @true@, collisions will be reported.\nbindRayCast2D_set_enabled :: MethodBind\nbindRayCast2D_set_enabled\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, collisions will be reported.\nset_enabled ::\n              (RayCast2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_set_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"set_enabled\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.RayCast2D.set_enabled\n\n{-# NOINLINE bindRayCast2D_set_exclude_parent_body #-}\n\n-- | If @true@, the parent node will be excluded from collision detection.\nbindRayCast2D_set_exclude_parent_body :: MethodBind\nbindRayCast2D_set_exclude_parent_body\n  = unsafePerformIO $\n      withCString \"RayCast2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_exclude_parent_body\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the parent node will be excluded from collision detection.\nset_exclude_parent_body ::\n                          (RayCast2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_exclude_parent_body cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayCast2D_set_exclude_parent_body\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayCast2D \"set_exclude_parent_body\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RayCast2D.set_exclude_parent_body"
  },
  {
    "path": "src/Godot/Core/RayShape.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.RayShape\n       (Godot.Core.RayShape.get_length,\n        Godot.Core.RayShape.get_slips_on_slope,\n        Godot.Core.RayShape.set_length,\n        Godot.Core.RayShape.set_slips_on_slope)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Shape()\n\ninstance NodeProperty RayShape \"length\" Float 'False where\n        nodeProperty = (get_length, wrapDroppingSetter set_length, Nothing)\n\ninstance NodeProperty RayShape \"slips_on_slope\" Bool 'False where\n        nodeProperty\n          = (get_slips_on_slope, wrapDroppingSetter set_slips_on_slope,\n             Nothing)\n\n{-# NOINLINE bindRayShape_get_length #-}\n\n-- | The ray's length.\nbindRayShape_get_length :: MethodBind\nbindRayShape_get_length\n  = unsafePerformIO $\n      withCString \"RayShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ray's length.\nget_length :: (RayShape :< cls, Object :< cls) => cls -> IO Float\nget_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayShape_get_length (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayShape \"get_length\" '[] (IO Float) where\n        nodeMethod = Godot.Core.RayShape.get_length\n\n{-# NOINLINE bindRayShape_get_slips_on_slope #-}\n\n-- | If @true@, allow the shape to return the correct normal.\nbindRayShape_get_slips_on_slope :: MethodBind\nbindRayShape_get_slips_on_slope\n  = unsafePerformIO $\n      withCString \"RayShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_slips_on_slope\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, allow the shape to return the correct normal.\nget_slips_on_slope ::\n                     (RayShape :< cls, Object :< cls) => cls -> IO Bool\nget_slips_on_slope cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayShape_get_slips_on_slope (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayShape \"get_slips_on_slope\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.RayShape.get_slips_on_slope\n\n{-# NOINLINE bindRayShape_set_length #-}\n\n-- | The ray's length.\nbindRayShape_set_length :: MethodBind\nbindRayShape_set_length\n  = unsafePerformIO $\n      withCString \"RayShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ray's length.\nset_length ::\n             (RayShape :< cls, Object :< cls) => cls -> Float -> IO ()\nset_length cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayShape_set_length (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayShape \"set_length\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.RayShape.set_length\n\n{-# NOINLINE bindRayShape_set_slips_on_slope #-}\n\n-- | If @true@, allow the shape to return the correct normal.\nbindRayShape_set_slips_on_slope :: MethodBind\nbindRayShape_set_slips_on_slope\n  = unsafePerformIO $\n      withCString \"RayShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_slips_on_slope\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, allow the shape to return the correct normal.\nset_slips_on_slope ::\n                     (RayShape :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_slips_on_slope cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayShape_set_slips_on_slope (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayShape \"set_slips_on_slope\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.RayShape.set_slips_on_slope"
  },
  {
    "path": "src/Godot/Core/RayShape2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.RayShape2D\n       (Godot.Core.RayShape2D.get_length,\n        Godot.Core.RayShape2D.get_slips_on_slope,\n        Godot.Core.RayShape2D.set_length,\n        Godot.Core.RayShape2D.set_slips_on_slope)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Shape2D()\n\ninstance NodeProperty RayShape2D \"length\" Float 'False where\n        nodeProperty = (get_length, wrapDroppingSetter set_length, Nothing)\n\ninstance NodeProperty RayShape2D \"slips_on_slope\" Bool 'False where\n        nodeProperty\n          = (get_slips_on_slope, wrapDroppingSetter set_slips_on_slope,\n             Nothing)\n\n{-# NOINLINE bindRayShape2D_get_length #-}\n\n-- | The ray's length.\nbindRayShape2D_get_length :: MethodBind\nbindRayShape2D_get_length\n  = unsafePerformIO $\n      withCString \"RayShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ray's length.\nget_length :: (RayShape2D :< cls, Object :< cls) => cls -> IO Float\nget_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayShape2D_get_length (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayShape2D \"get_length\" '[] (IO Float) where\n        nodeMethod = Godot.Core.RayShape2D.get_length\n\n{-# NOINLINE bindRayShape2D_get_slips_on_slope #-}\n\n-- | If @true@, allow the shape to return the correct normal.\nbindRayShape2D_get_slips_on_slope :: MethodBind\nbindRayShape2D_get_slips_on_slope\n  = unsafePerformIO $\n      withCString \"RayShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_slips_on_slope\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, allow the shape to return the correct normal.\nget_slips_on_slope ::\n                     (RayShape2D :< cls, Object :< cls) => cls -> IO Bool\nget_slips_on_slope cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayShape2D_get_slips_on_slope\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayShape2D \"get_slips_on_slope\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.RayShape2D.get_slips_on_slope\n\n{-# NOINLINE bindRayShape2D_set_length #-}\n\n-- | The ray's length.\nbindRayShape2D_set_length :: MethodBind\nbindRayShape2D_set_length\n  = unsafePerformIO $\n      withCString \"RayShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The ray's length.\nset_length ::\n             (RayShape2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_length cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayShape2D_set_length (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayShape2D \"set_length\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.RayShape2D.set_length\n\n{-# NOINLINE bindRayShape2D_set_slips_on_slope #-}\n\n-- | If @true@, allow the shape to return the correct normal.\nbindRayShape2D_set_slips_on_slope :: MethodBind\nbindRayShape2D_set_slips_on_slope\n  = unsafePerformIO $\n      withCString \"RayShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_slips_on_slope\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, allow the shape to return the correct normal.\nset_slips_on_slope ::\n                     (RayShape2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_slips_on_slope cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRayShape2D_set_slips_on_slope\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RayShape2D \"set_slips_on_slope\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.RayShape2D.set_slips_on_slope"
  },
  {
    "path": "src/Godot/Core/RectangleShape2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.RectangleShape2D\n       (Godot.Core.RectangleShape2D.get_extents,\n        Godot.Core.RectangleShape2D.set_extents)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Shape2D()\n\ninstance NodeProperty RectangleShape2D \"extents\" Vector2 'False\n         where\n        nodeProperty\n          = (get_extents, wrapDroppingSetter set_extents, Nothing)\n\n{-# NOINLINE bindRectangleShape2D_get_extents #-}\n\n-- | The rectangle's half extents. The width and height of this shape is twice the half extents.\nbindRectangleShape2D_get_extents :: MethodBind\nbindRectangleShape2D_get_extents\n  = unsafePerformIO $\n      withCString \"RectangleShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rectangle's half extents. The width and height of this shape is twice the half extents.\nget_extents ::\n              (RectangleShape2D :< cls, Object :< cls) => cls -> IO Vector2\nget_extents cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRectangleShape2D_get_extents\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RectangleShape2D \"get_extents\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.RectangleShape2D.get_extents\n\n{-# NOINLINE bindRectangleShape2D_set_extents #-}\n\n-- | The rectangle's half extents. The width and height of this shape is twice the half extents.\nbindRectangleShape2D_set_extents :: MethodBind\nbindRectangleShape2D_set_extents\n  = unsafePerformIO $\n      withCString \"RectangleShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rectangle's half extents. The width and height of this shape is twice the half extents.\nset_extents ::\n              (RectangleShape2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_extents cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRectangleShape2D_set_extents\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RectangleShape2D \"set_extents\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RectangleShape2D.set_extents"
  },
  {
    "path": "src/Godot/Core/Reference.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Reference\n       (Godot.Core.Reference.init_ref, Godot.Core.Reference.reference,\n        Godot.Core.Reference.unreference)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n{-# NOINLINE bindReference_init_ref #-}\n\n-- | Initializes the internal reference counter. Use this only if you really know what you are doing.\n--   \t\t\t\tReturns whether the initialization was successful.\nbindReference_init_ref :: MethodBind\nbindReference_init_ref\n  = unsafePerformIO $\n      withCString \"Reference\" $\n        \\ clsNamePtr ->\n          withCString \"init_ref\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Initializes the internal reference counter. Use this only if you really know what you are doing.\n--   \t\t\t\tReturns whether the initialization was successful.\ninit_ref :: (Reference :< cls, Object :< cls) => cls -> IO Bool\ninit_ref cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReference_init_ref (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Reference \"init_ref\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Reference.init_ref\n\n{-# NOINLINE bindReference_reference #-}\n\n-- | Increments the internal reference counter. Use this only if you really know what you are doing.\n--   \t\t\t\tReturns @true@ if the increment was successful, @false@ otherwise.\nbindReference_reference :: MethodBind\nbindReference_reference\n  = unsafePerformIO $\n      withCString \"Reference\" $\n        \\ clsNamePtr ->\n          withCString \"reference\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Increments the internal reference counter. Use this only if you really know what you are doing.\n--   \t\t\t\tReturns @true@ if the increment was successful, @false@ otherwise.\nreference :: (Reference :< cls, Object :< cls) => cls -> IO Bool\nreference cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReference_reference (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Reference \"reference\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Reference.reference\n\n{-# NOINLINE bindReference_unreference #-}\n\n-- | Decrements the internal reference counter. Use this only if you really know what you are doing.\n--   \t\t\t\tReturns @true@ if the decrement was successful, @false@ otherwise.\nbindReference_unreference :: MethodBind\nbindReference_unreference\n  = unsafePerformIO $\n      withCString \"Reference\" $\n        \\ clsNamePtr ->\n          withCString \"unreference\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Decrements the internal reference counter. Use this only if you really know what you are doing.\n--   \t\t\t\tReturns @true@ if the decrement was successful, @false@ otherwise.\nunreference :: (Reference :< cls, Object :< cls) => cls -> IO Bool\nunreference cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReference_unreference (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Reference \"unreference\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Reference.unreference"
  },
  {
    "path": "src/Godot/Core/ReferenceRect.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ReferenceRect\n       (Godot.Core.ReferenceRect.get_border_color,\n        Godot.Core.ReferenceRect.get_editor_only,\n        Godot.Core.ReferenceRect.set_border_color,\n        Godot.Core.ReferenceRect.set_editor_only)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()\n\ninstance NodeProperty ReferenceRect \"border_color\" Color 'False\n         where\n        nodeProperty\n          = (get_border_color, wrapDroppingSetter set_border_color, Nothing)\n\ninstance NodeProperty ReferenceRect \"editor_only\" Bool 'False where\n        nodeProperty\n          = (get_editor_only, wrapDroppingSetter set_editor_only, Nothing)\n\n{-# NOINLINE bindReferenceRect_get_border_color #-}\n\n-- | Sets the border @Color@ of the @ReferenceRect@.\nbindReferenceRect_get_border_color :: MethodBind\nbindReferenceRect_get_border_color\n  = unsafePerformIO $\n      withCString \"ReferenceRect\" $\n        \\ clsNamePtr ->\n          withCString \"get_border_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the border @Color@ of the @ReferenceRect@.\nget_border_color ::\n                   (ReferenceRect :< cls, Object :< cls) => cls -> IO Color\nget_border_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReferenceRect_get_border_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReferenceRect \"get_border_color\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.ReferenceRect.get_border_color\n\n{-# NOINLINE bindReferenceRect_get_editor_only #-}\n\n-- | If set to @true@, the @ReferenceRect@ will only be visible while in editor. Otherwise, @ReferenceRect@ will be visible in game.\nbindReferenceRect_get_editor_only :: MethodBind\nbindReferenceRect_get_editor_only\n  = unsafePerformIO $\n      withCString \"ReferenceRect\" $\n        \\ clsNamePtr ->\n          withCString \"get_editor_only\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If set to @true@, the @ReferenceRect@ will only be visible while in editor. Otherwise, @ReferenceRect@ will be visible in game.\nget_editor_only ::\n                  (ReferenceRect :< cls, Object :< cls) => cls -> IO Bool\nget_editor_only cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReferenceRect_get_editor_only\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReferenceRect \"get_editor_only\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ReferenceRect.get_editor_only\n\n{-# NOINLINE bindReferenceRect_set_border_color #-}\n\n-- | Sets the border @Color@ of the @ReferenceRect@.\nbindReferenceRect_set_border_color :: MethodBind\nbindReferenceRect_set_border_color\n  = unsafePerformIO $\n      withCString \"ReferenceRect\" $\n        \\ clsNamePtr ->\n          withCString \"set_border_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the border @Color@ of the @ReferenceRect@.\nset_border_color ::\n                   (ReferenceRect :< cls, Object :< cls) => cls -> Color -> IO ()\nset_border_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReferenceRect_set_border_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReferenceRect \"set_border_color\" '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ReferenceRect.set_border_color\n\n{-# NOINLINE bindReferenceRect_set_editor_only #-}\n\n-- | If set to @true@, the @ReferenceRect@ will only be visible while in editor. Otherwise, @ReferenceRect@ will be visible in game.\nbindReferenceRect_set_editor_only :: MethodBind\nbindReferenceRect_set_editor_only\n  = unsafePerformIO $\n      withCString \"ReferenceRect\" $\n        \\ clsNamePtr ->\n          withCString \"set_editor_only\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If set to @true@, the @ReferenceRect@ will only be visible while in editor. Otherwise, @ReferenceRect@ will be visible in game.\nset_editor_only ::\n                  (ReferenceRect :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_editor_only cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReferenceRect_set_editor_only\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReferenceRect \"set_editor_only\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.ReferenceRect.set_editor_only"
  },
  {
    "path": "src/Godot/Core/ReflectionProbe.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ReflectionProbe\n       (Godot.Core.ReflectionProbe._UPDATE_ALWAYS,\n        Godot.Core.ReflectionProbe._UPDATE_ONCE,\n        Godot.Core.ReflectionProbe.are_shadows_enabled,\n        Godot.Core.ReflectionProbe.get_cull_mask,\n        Godot.Core.ReflectionProbe.get_extents,\n        Godot.Core.ReflectionProbe.get_intensity,\n        Godot.Core.ReflectionProbe.get_interior_ambient,\n        Godot.Core.ReflectionProbe.get_interior_ambient_energy,\n        Godot.Core.ReflectionProbe.get_interior_ambient_probe_contribution,\n        Godot.Core.ReflectionProbe.get_max_distance,\n        Godot.Core.ReflectionProbe.get_origin_offset,\n        Godot.Core.ReflectionProbe.get_update_mode,\n        Godot.Core.ReflectionProbe.is_box_projection_enabled,\n        Godot.Core.ReflectionProbe.is_set_as_interior,\n        Godot.Core.ReflectionProbe.set_as_interior,\n        Godot.Core.ReflectionProbe.set_cull_mask,\n        Godot.Core.ReflectionProbe.set_enable_box_projection,\n        Godot.Core.ReflectionProbe.set_enable_shadows,\n        Godot.Core.ReflectionProbe.set_extents,\n        Godot.Core.ReflectionProbe.set_intensity,\n        Godot.Core.ReflectionProbe.set_interior_ambient,\n        Godot.Core.ReflectionProbe.set_interior_ambient_energy,\n        Godot.Core.ReflectionProbe.set_interior_ambient_probe_contribution,\n        Godot.Core.ReflectionProbe.set_max_distance,\n        Godot.Core.ReflectionProbe.set_origin_offset,\n        Godot.Core.ReflectionProbe.set_update_mode)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualInstance()\n\n_UPDATE_ALWAYS :: Int\n_UPDATE_ALWAYS = 1\n\n_UPDATE_ONCE :: Int\n_UPDATE_ONCE = 0\n\ninstance NodeProperty ReflectionProbe \"box_projection\" Bool 'False\n         where\n        nodeProperty\n          = (is_box_projection_enabled,\n             wrapDroppingSetter set_enable_box_projection, Nothing)\n\ninstance NodeProperty ReflectionProbe \"cull_mask\" Int 'False where\n        nodeProperty\n          = (get_cull_mask, wrapDroppingSetter set_cull_mask, Nothing)\n\ninstance NodeProperty ReflectionProbe \"enable_shadows\" Bool 'False\n         where\n        nodeProperty\n          = (are_shadows_enabled, wrapDroppingSetter set_enable_shadows,\n             Nothing)\n\ninstance NodeProperty ReflectionProbe \"extents\" Vector3 'False\n         where\n        nodeProperty\n          = (get_extents, wrapDroppingSetter set_extents, Nothing)\n\ninstance NodeProperty ReflectionProbe \"intensity\" Float 'False\n         where\n        nodeProperty\n          = (get_intensity, wrapDroppingSetter set_intensity, Nothing)\n\ninstance NodeProperty ReflectionProbe \"interior_ambient_color\"\n           Color\n           'False\n         where\n        nodeProperty\n          = (get_interior_ambient, wrapDroppingSetter set_interior_ambient,\n             Nothing)\n\ninstance NodeProperty ReflectionProbe \"interior_ambient_contrib\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_interior_ambient_probe_contribution,\n             wrapDroppingSetter set_interior_ambient_probe_contribution,\n             Nothing)\n\ninstance NodeProperty ReflectionProbe \"interior_ambient_energy\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_interior_ambient_energy,\n             wrapDroppingSetter set_interior_ambient_energy, Nothing)\n\ninstance NodeProperty ReflectionProbe \"interior_enable\" Bool 'False\n         where\n        nodeProperty\n          = (is_set_as_interior, wrapDroppingSetter set_as_interior, Nothing)\n\ninstance NodeProperty ReflectionProbe \"max_distance\" Float 'False\n         where\n        nodeProperty\n          = (get_max_distance, wrapDroppingSetter set_max_distance, Nothing)\n\ninstance NodeProperty ReflectionProbe \"origin_offset\" Vector3\n           'False\n         where\n        nodeProperty\n          = (get_origin_offset, wrapDroppingSetter set_origin_offset,\n             Nothing)\n\ninstance NodeProperty ReflectionProbe \"update_mode\" Int 'False\n         where\n        nodeProperty\n          = (get_update_mode, wrapDroppingSetter set_update_mode, Nothing)\n\n{-# NOINLINE bindReflectionProbe_are_shadows_enabled #-}\n\n-- | If @true@, computes shadows in the reflection probe. This makes the reflection probe slower to render; you may want to disable this if using the @UPDATE_ALWAYS@ @update_mode@.\nbindReflectionProbe_are_shadows_enabled :: MethodBind\nbindReflectionProbe_are_shadows_enabled\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"are_shadows_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, computes shadows in the reflection probe. This makes the reflection probe slower to render; you may want to disable this if using the @UPDATE_ALWAYS@ @update_mode@.\nare_shadows_enabled ::\n                      (ReflectionProbe :< cls, Object :< cls) => cls -> IO Bool\nare_shadows_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReflectionProbe_are_shadows_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"are_shadows_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.are_shadows_enabled\n\n{-# NOINLINE bindReflectionProbe_get_cull_mask #-}\n\n-- | Sets the cull mask which determines what objects are drawn by this probe. Every @VisualInstance@ with a layer included in this cull mask will be rendered by the probe. It is best to only include large objects which are likely to take up a lot of space in the reflection in order to save on rendering cost.\nbindReflectionProbe_get_cull_mask :: MethodBind\nbindReflectionProbe_get_cull_mask\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"get_cull_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the cull mask which determines what objects are drawn by this probe. Every @VisualInstance@ with a layer included in this cull mask will be rendered by the probe. It is best to only include large objects which are likely to take up a lot of space in the reflection in order to save on rendering cost.\nget_cull_mask ::\n                (ReflectionProbe :< cls, Object :< cls) => cls -> IO Int\nget_cull_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReflectionProbe_get_cull_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"get_cull_mask\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.get_cull_mask\n\n{-# NOINLINE bindReflectionProbe_get_extents #-}\n\n-- | The size of the reflection probe. The larger the extents the more space covered by the probe which will lower the perceived resolution. It is best to keep the extents only as large as you need them.\nbindReflectionProbe_get_extents :: MethodBind\nbindReflectionProbe_get_extents\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"get_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size of the reflection probe. The larger the extents the more space covered by the probe which will lower the perceived resolution. It is best to keep the extents only as large as you need them.\nget_extents ::\n              (ReflectionProbe :< cls, Object :< cls) => cls -> IO Vector3\nget_extents cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReflectionProbe_get_extents (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"get_extents\" '[] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.get_extents\n\n{-# NOINLINE bindReflectionProbe_get_intensity #-}\n\n-- | Defines the reflection intensity. Intensity modulates the strength of the reflection.\nbindReflectionProbe_get_intensity :: MethodBind\nbindReflectionProbe_get_intensity\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"get_intensity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines the reflection intensity. Intensity modulates the strength of the reflection.\nget_intensity ::\n                (ReflectionProbe :< cls, Object :< cls) => cls -> IO Float\nget_intensity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReflectionProbe_get_intensity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"get_intensity\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.get_intensity\n\n{-# NOINLINE bindReflectionProbe_get_interior_ambient #-}\n\n-- | Sets the ambient light color to be used when this probe is set to @interior_enable@.\nbindReflectionProbe_get_interior_ambient :: MethodBind\nbindReflectionProbe_get_interior_ambient\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"get_interior_ambient\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the ambient light color to be used when this probe is set to @interior_enable@.\nget_interior_ambient ::\n                       (ReflectionProbe :< cls, Object :< cls) => cls -> IO Color\nget_interior_ambient cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReflectionProbe_get_interior_ambient\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"get_interior_ambient\" '[]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.get_interior_ambient\n\n{-# NOINLINE bindReflectionProbe_get_interior_ambient_energy #-}\n\n-- | Sets the energy multiplier for this reflection probe's ambient light contribution when set to @interior_enable@.\nbindReflectionProbe_get_interior_ambient_energy :: MethodBind\nbindReflectionProbe_get_interior_ambient_energy\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"get_interior_ambient_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the energy multiplier for this reflection probe's ambient light contribution when set to @interior_enable@.\nget_interior_ambient_energy ::\n                              (ReflectionProbe :< cls, Object :< cls) => cls -> IO Float\nget_interior_ambient_energy cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindReflectionProbe_get_interior_ambient_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"get_interior_ambient_energy\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.get_interior_ambient_energy\n\n{-# NOINLINE bindReflectionProbe_get_interior_ambient_probe_contribution\n             #-}\n\n-- | Sets the contribution value for how much the reflection affects the ambient light for this reflection probe when set to @interior_enable@. Useful so that ambient light matches the color of the room.\nbindReflectionProbe_get_interior_ambient_probe_contribution ::\n                                                            MethodBind\nbindReflectionProbe_get_interior_ambient_probe_contribution\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"get_interior_ambient_probe_contribution\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the contribution value for how much the reflection affects the ambient light for this reflection probe when set to @interior_enable@. Useful so that ambient light matches the color of the room.\nget_interior_ambient_probe_contribution ::\n                                          (ReflectionProbe :< cls, Object :< cls) => cls -> IO Float\nget_interior_ambient_probe_contribution cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindReflectionProbe_get_interior_ambient_probe_contribution\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe\n           \"get_interior_ambient_probe_contribution\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.ReflectionProbe.get_interior_ambient_probe_contribution\n\n{-# NOINLINE bindReflectionProbe_get_max_distance #-}\n\n-- | Sets the max distance away from the probe an object can be before it is culled.\nbindReflectionProbe_get_max_distance :: MethodBind\nbindReflectionProbe_get_max_distance\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"get_max_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the max distance away from the probe an object can be before it is culled.\nget_max_distance ::\n                   (ReflectionProbe :< cls, Object :< cls) => cls -> IO Float\nget_max_distance cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReflectionProbe_get_max_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"get_max_distance\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.get_max_distance\n\n{-# NOINLINE bindReflectionProbe_get_origin_offset #-}\n\n-- | Sets the origin offset to be used when this reflection probe is in box project mode.\nbindReflectionProbe_get_origin_offset :: MethodBind\nbindReflectionProbe_get_origin_offset\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"get_origin_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the origin offset to be used when this reflection probe is in box project mode.\nget_origin_offset ::\n                    (ReflectionProbe :< cls, Object :< cls) => cls -> IO Vector3\nget_origin_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReflectionProbe_get_origin_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"get_origin_offset\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.get_origin_offset\n\n{-# NOINLINE bindReflectionProbe_get_update_mode #-}\n\n-- | Sets how frequently the probe is updated. Can be @UPDATE_ONCE@ or @UPDATE_ALWAYS@.\nbindReflectionProbe_get_update_mode :: MethodBind\nbindReflectionProbe_get_update_mode\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"get_update_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets how frequently the probe is updated. Can be @UPDATE_ONCE@ or @UPDATE_ALWAYS@.\nget_update_mode ::\n                  (ReflectionProbe :< cls, Object :< cls) => cls -> IO Int\nget_update_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReflectionProbe_get_update_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"get_update_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.get_update_mode\n\n{-# NOINLINE bindReflectionProbe_is_box_projection_enabled #-}\n\n-- | If @true@, enables box projection. This makes reflections look more correct in rectangle-shaped rooms by offsetting the reflection center depending on the camera's location.\nbindReflectionProbe_is_box_projection_enabled :: MethodBind\nbindReflectionProbe_is_box_projection_enabled\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"is_box_projection_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables box projection. This makes reflections look more correct in rectangle-shaped rooms by offsetting the reflection center depending on the camera's location.\nis_box_projection_enabled ::\n                            (ReflectionProbe :< cls, Object :< cls) => cls -> IO Bool\nis_box_projection_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindReflectionProbe_is_box_projection_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"is_box_projection_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.is_box_projection_enabled\n\n{-# NOINLINE bindReflectionProbe_is_set_as_interior #-}\n\n-- | If @true@, reflections will ignore sky contribution. Ambient lighting is then controlled by the @interior_ambient_*@ properties.\nbindReflectionProbe_is_set_as_interior :: MethodBind\nbindReflectionProbe_is_set_as_interior\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"is_set_as_interior\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, reflections will ignore sky contribution. Ambient lighting is then controlled by the @interior_ambient_*@ properties.\nis_set_as_interior ::\n                     (ReflectionProbe :< cls, Object :< cls) => cls -> IO Bool\nis_set_as_interior cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReflectionProbe_is_set_as_interior\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"is_set_as_interior\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.is_set_as_interior\n\n{-# NOINLINE bindReflectionProbe_set_as_interior #-}\n\n-- | If @true@, reflections will ignore sky contribution. Ambient lighting is then controlled by the @interior_ambient_*@ properties.\nbindReflectionProbe_set_as_interior :: MethodBind\nbindReflectionProbe_set_as_interior\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_as_interior\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, reflections will ignore sky contribution. Ambient lighting is then controlled by the @interior_ambient_*@ properties.\nset_as_interior ::\n                  (ReflectionProbe :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_as_interior cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReflectionProbe_set_as_interior\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"set_as_interior\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.set_as_interior\n\n{-# NOINLINE bindReflectionProbe_set_cull_mask #-}\n\n-- | Sets the cull mask which determines what objects are drawn by this probe. Every @VisualInstance@ with a layer included in this cull mask will be rendered by the probe. It is best to only include large objects which are likely to take up a lot of space in the reflection in order to save on rendering cost.\nbindReflectionProbe_set_cull_mask :: MethodBind\nbindReflectionProbe_set_cull_mask\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_cull_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the cull mask which determines what objects are drawn by this probe. Every @VisualInstance@ with a layer included in this cull mask will be rendered by the probe. It is best to only include large objects which are likely to take up a lot of space in the reflection in order to save on rendering cost.\nset_cull_mask ::\n                (ReflectionProbe :< cls, Object :< cls) => cls -> Int -> IO ()\nset_cull_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReflectionProbe_set_cull_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"set_cull_mask\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.set_cull_mask\n\n{-# NOINLINE bindReflectionProbe_set_enable_box_projection #-}\n\n-- | If @true@, enables box projection. This makes reflections look more correct in rectangle-shaped rooms by offsetting the reflection center depending on the camera's location.\nbindReflectionProbe_set_enable_box_projection :: MethodBind\nbindReflectionProbe_set_enable_box_projection\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_enable_box_projection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables box projection. This makes reflections look more correct in rectangle-shaped rooms by offsetting the reflection center depending on the camera's location.\nset_enable_box_projection ::\n                            (ReflectionProbe :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_enable_box_projection cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindReflectionProbe_set_enable_box_projection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"set_enable_box_projection\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.set_enable_box_projection\n\n{-# NOINLINE bindReflectionProbe_set_enable_shadows #-}\n\n-- | If @true@, computes shadows in the reflection probe. This makes the reflection probe slower to render; you may want to disable this if using the @UPDATE_ALWAYS@ @update_mode@.\nbindReflectionProbe_set_enable_shadows :: MethodBind\nbindReflectionProbe_set_enable_shadows\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_enable_shadows\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, computes shadows in the reflection probe. This makes the reflection probe slower to render; you may want to disable this if using the @UPDATE_ALWAYS@ @update_mode@.\nset_enable_shadows ::\n                     (ReflectionProbe :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_enable_shadows cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReflectionProbe_set_enable_shadows\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"set_enable_shadows\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.set_enable_shadows\n\n{-# NOINLINE bindReflectionProbe_set_extents #-}\n\n-- | The size of the reflection probe. The larger the extents the more space covered by the probe which will lower the perceived resolution. It is best to keep the extents only as large as you need them.\nbindReflectionProbe_set_extents :: MethodBind\nbindReflectionProbe_set_extents\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size of the reflection probe. The larger the extents the more space covered by the probe which will lower the perceived resolution. It is best to keep the extents only as large as you need them.\nset_extents ::\n              (ReflectionProbe :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_extents cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReflectionProbe_set_extents (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"set_extents\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.set_extents\n\n{-# NOINLINE bindReflectionProbe_set_intensity #-}\n\n-- | Defines the reflection intensity. Intensity modulates the strength of the reflection.\nbindReflectionProbe_set_intensity :: MethodBind\nbindReflectionProbe_set_intensity\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_intensity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines the reflection intensity. Intensity modulates the strength of the reflection.\nset_intensity ::\n                (ReflectionProbe :< cls, Object :< cls) => cls -> Float -> IO ()\nset_intensity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReflectionProbe_set_intensity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"set_intensity\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.set_intensity\n\n{-# NOINLINE bindReflectionProbe_set_interior_ambient #-}\n\n-- | Sets the ambient light color to be used when this probe is set to @interior_enable@.\nbindReflectionProbe_set_interior_ambient :: MethodBind\nbindReflectionProbe_set_interior_ambient\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_interior_ambient\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the ambient light color to be used when this probe is set to @interior_enable@.\nset_interior_ambient ::\n                       (ReflectionProbe :< cls, Object :< cls) => cls -> Color -> IO ()\nset_interior_ambient cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReflectionProbe_set_interior_ambient\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"set_interior_ambient\" '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.set_interior_ambient\n\n{-# NOINLINE bindReflectionProbe_set_interior_ambient_energy #-}\n\n-- | Sets the energy multiplier for this reflection probe's ambient light contribution when set to @interior_enable@.\nbindReflectionProbe_set_interior_ambient_energy :: MethodBind\nbindReflectionProbe_set_interior_ambient_energy\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_interior_ambient_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the energy multiplier for this reflection probe's ambient light contribution when set to @interior_enable@.\nset_interior_ambient_energy ::\n                              (ReflectionProbe :< cls, Object :< cls) => cls -> Float -> IO ()\nset_interior_ambient_energy cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindReflectionProbe_set_interior_ambient_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"set_interior_ambient_energy\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.set_interior_ambient_energy\n\n{-# NOINLINE bindReflectionProbe_set_interior_ambient_probe_contribution\n             #-}\n\n-- | Sets the contribution value for how much the reflection affects the ambient light for this reflection probe when set to @interior_enable@. Useful so that ambient light matches the color of the room.\nbindReflectionProbe_set_interior_ambient_probe_contribution ::\n                                                            MethodBind\nbindReflectionProbe_set_interior_ambient_probe_contribution\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_interior_ambient_probe_contribution\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the contribution value for how much the reflection affects the ambient light for this reflection probe when set to @interior_enable@. Useful so that ambient light matches the color of the room.\nset_interior_ambient_probe_contribution ::\n                                          (ReflectionProbe :< cls, Object :< cls) =>\n                                          cls -> Float -> IO ()\nset_interior_ambient_probe_contribution cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindReflectionProbe_set_interior_ambient_probe_contribution\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe\n           \"set_interior_ambient_probe_contribution\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.ReflectionProbe.set_interior_ambient_probe_contribution\n\n{-# NOINLINE bindReflectionProbe_set_max_distance #-}\n\n-- | Sets the max distance away from the probe an object can be before it is culled.\nbindReflectionProbe_set_max_distance :: MethodBind\nbindReflectionProbe_set_max_distance\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_max_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the max distance away from the probe an object can be before it is culled.\nset_max_distance ::\n                   (ReflectionProbe :< cls, Object :< cls) => cls -> Float -> IO ()\nset_max_distance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReflectionProbe_set_max_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"set_max_distance\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.set_max_distance\n\n{-# NOINLINE bindReflectionProbe_set_origin_offset #-}\n\n-- | Sets the origin offset to be used when this reflection probe is in box project mode.\nbindReflectionProbe_set_origin_offset :: MethodBind\nbindReflectionProbe_set_origin_offset\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_origin_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the origin offset to be used when this reflection probe is in box project mode.\nset_origin_offset ::\n                    (ReflectionProbe :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_origin_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReflectionProbe_set_origin_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"set_origin_offset\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.set_origin_offset\n\n{-# NOINLINE bindReflectionProbe_set_update_mode #-}\n\n-- | Sets how frequently the probe is updated. Can be @UPDATE_ONCE@ or @UPDATE_ALWAYS@.\nbindReflectionProbe_set_update_mode :: MethodBind\nbindReflectionProbe_set_update_mode\n  = unsafePerformIO $\n      withCString \"ReflectionProbe\" $\n        \\ clsNamePtr ->\n          withCString \"set_update_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets how frequently the probe is updated. Can be @UPDATE_ONCE@ or @UPDATE_ALWAYS@.\nset_update_mode ::\n                  (ReflectionProbe :< cls, Object :< cls) => cls -> Int -> IO ()\nset_update_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindReflectionProbe_set_update_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ReflectionProbe \"set_update_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ReflectionProbe.set_update_mode"
  },
  {
    "path": "src/Godot/Core/RegEx.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.RegEx\n       (Godot.Core.RegEx.clear, Godot.Core.RegEx.compile,\n        Godot.Core.RegEx.get_group_count, Godot.Core.RegEx.get_names,\n        Godot.Core.RegEx.get_pattern, Godot.Core.RegEx.is_valid,\n        Godot.Core.RegEx.search, Godot.Core.RegEx.search_all,\n        Godot.Core.RegEx.sub)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindRegEx_clear #-}\n\nbindRegEx_clear :: MethodBind\nbindRegEx_clear\n  = unsafePerformIO $\n      withCString \"RegEx\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nclear :: (RegEx :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRegEx_clear (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RegEx \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.RegEx.clear\n\n{-# NOINLINE bindRegEx_compile #-}\n\nbindRegEx_compile :: MethodBind\nbindRegEx_compile\n  = unsafePerformIO $\n      withCString \"RegEx\" $\n        \\ clsNamePtr ->\n          withCString \"compile\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncompile ::\n          (RegEx :< cls, Object :< cls) => cls -> GodotString -> IO Int\ncompile cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRegEx_compile (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RegEx \"compile\" '[GodotString] (IO Int) where\n        nodeMethod = Godot.Core.RegEx.compile\n\n{-# NOINLINE bindRegEx_get_group_count #-}\n\nbindRegEx_get_group_count :: MethodBind\nbindRegEx_get_group_count\n  = unsafePerformIO $\n      withCString \"RegEx\" $\n        \\ clsNamePtr ->\n          withCString \"get_group_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_group_count :: (RegEx :< cls, Object :< cls) => cls -> IO Int\nget_group_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRegEx_get_group_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RegEx \"get_group_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.RegEx.get_group_count\n\n{-# NOINLINE bindRegEx_get_names #-}\n\nbindRegEx_get_names :: MethodBind\nbindRegEx_get_names\n  = unsafePerformIO $\n      withCString \"RegEx\" $\n        \\ clsNamePtr ->\n          withCString \"get_names\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_names :: (RegEx :< cls, Object :< cls) => cls -> IO Array\nget_names cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRegEx_get_names (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RegEx \"get_names\" '[] (IO Array) where\n        nodeMethod = Godot.Core.RegEx.get_names\n\n{-# NOINLINE bindRegEx_get_pattern #-}\n\nbindRegEx_get_pattern :: MethodBind\nbindRegEx_get_pattern\n  = unsafePerformIO $\n      withCString \"RegEx\" $\n        \\ clsNamePtr ->\n          withCString \"get_pattern\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_pattern ::\n              (RegEx :< cls, Object :< cls) => cls -> IO GodotString\nget_pattern cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRegEx_get_pattern (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RegEx \"get_pattern\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.RegEx.get_pattern\n\n{-# NOINLINE bindRegEx_is_valid #-}\n\nbindRegEx_is_valid :: MethodBind\nbindRegEx_is_valid\n  = unsafePerformIO $\n      withCString \"RegEx\" $\n        \\ clsNamePtr ->\n          withCString \"is_valid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_valid :: (RegEx :< cls, Object :< cls) => cls -> IO Bool\nis_valid cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRegEx_is_valid (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RegEx \"is_valid\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.RegEx.is_valid\n\n{-# NOINLINE bindRegEx_search #-}\n\nbindRegEx_search :: MethodBind\nbindRegEx_search\n  = unsafePerformIO $\n      withCString \"RegEx\" $\n        \\ clsNamePtr ->\n          withCString \"search\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nsearch ::\n         (RegEx :< cls, Object :< cls) =>\n         cls -> GodotString -> Maybe Int -> Maybe Int -> IO RegExMatch\nsearch cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (0)) toVariant arg2,\n       maybe (VariantInt (-1)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRegEx_search (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RegEx \"search\"\n           '[GodotString, Maybe Int, Maybe Int]\n           (IO RegExMatch)\n         where\n        nodeMethod = Godot.Core.RegEx.search\n\n{-# NOINLINE bindRegEx_search_all #-}\n\nbindRegEx_search_all :: MethodBind\nbindRegEx_search_all\n  = unsafePerformIO $\n      withCString \"RegEx\" $\n        \\ clsNamePtr ->\n          withCString \"search_all\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nsearch_all ::\n             (RegEx :< cls, Object :< cls) =>\n             cls -> GodotString -> Maybe Int -> Maybe Int -> IO Array\nsearch_all cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (0)) toVariant arg2,\n       maybe (VariantInt (-1)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRegEx_search_all (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RegEx \"search_all\"\n           '[GodotString, Maybe Int, Maybe Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.RegEx.search_all\n\n{-# NOINLINE bindRegEx_sub #-}\n\nbindRegEx_sub :: MethodBind\nbindRegEx_sub\n  = unsafePerformIO $\n      withCString \"RegEx\" $\n        \\ clsNamePtr ->\n          withCString \"sub\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nsub ::\n      (RegEx :< cls, Object :< cls) =>\n      cls ->\n        GodotString ->\n          GodotString ->\n            Maybe Bool -> Maybe Int -> Maybe Int -> IO GodotString\nsub cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool False) toVariant arg3,\n       maybe (VariantInt (0)) toVariant arg4,\n       maybe (VariantInt (-1)) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRegEx_sub (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RegEx \"sub\"\n           '[GodotString, GodotString, Maybe Bool, Maybe Int, Maybe Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.RegEx.sub"
  },
  {
    "path": "src/Godot/Core/RegExMatch.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.RegExMatch\n       (Godot.Core.RegExMatch.get_end,\n        Godot.Core.RegExMatch.get_group_count,\n        Godot.Core.RegExMatch.get_names, Godot.Core.RegExMatch.get_start,\n        Godot.Core.RegExMatch.get_string,\n        Godot.Core.RegExMatch.get_strings,\n        Godot.Core.RegExMatch.get_subject)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\ninstance NodeProperty RegExMatch \"names\" Dictionary 'True where\n        nodeProperty = (get_names, (), Nothing)\n\ninstance NodeProperty RegExMatch \"strings\" Array 'True where\n        nodeProperty = (get_strings, (), Nothing)\n\ninstance NodeProperty RegExMatch \"subject\" GodotString 'True where\n        nodeProperty = (get_subject, (), Nothing)\n\n{-# NOINLINE bindRegExMatch_get_end #-}\n\nbindRegExMatch_get_end :: MethodBind\nbindRegExMatch_get_end\n  = unsafePerformIO $\n      withCString \"RegExMatch\" $\n        \\ clsNamePtr ->\n          withCString \"get_end\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_end ::\n          (RegExMatch :< cls, Object :< cls) =>\n          cls -> Maybe GodotVariant -> IO Int\nget_end cls arg1\n  = withVariantArray [maybe (VariantInt 0) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRegExMatch_get_end (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RegExMatch \"get_end\" '[Maybe GodotVariant]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.RegExMatch.get_end\n\n{-# NOINLINE bindRegExMatch_get_group_count #-}\n\nbindRegExMatch_get_group_count :: MethodBind\nbindRegExMatch_get_group_count\n  = unsafePerformIO $\n      withCString \"RegExMatch\" $\n        \\ clsNamePtr ->\n          withCString \"get_group_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_group_count ::\n                  (RegExMatch :< cls, Object :< cls) => cls -> IO Int\nget_group_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRegExMatch_get_group_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RegExMatch \"get_group_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.RegExMatch.get_group_count\n\n{-# NOINLINE bindRegExMatch_get_names #-}\n\nbindRegExMatch_get_names :: MethodBind\nbindRegExMatch_get_names\n  = unsafePerformIO $\n      withCString \"RegExMatch\" $\n        \\ clsNamePtr ->\n          withCString \"get_names\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_names ::\n            (RegExMatch :< cls, Object :< cls) => cls -> IO Dictionary\nget_names cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRegExMatch_get_names (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RegExMatch \"get_names\" '[] (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.RegExMatch.get_names\n\n{-# NOINLINE bindRegExMatch_get_start #-}\n\nbindRegExMatch_get_start :: MethodBind\nbindRegExMatch_get_start\n  = unsafePerformIO $\n      withCString \"RegExMatch\" $\n        \\ clsNamePtr ->\n          withCString \"get_start\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_start ::\n            (RegExMatch :< cls, Object :< cls) =>\n            cls -> Maybe GodotVariant -> IO Int\nget_start cls arg1\n  = withVariantArray [maybe (VariantInt 0) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRegExMatch_get_start (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RegExMatch \"get_start\" '[Maybe GodotVariant]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.RegExMatch.get_start\n\n{-# NOINLINE bindRegExMatch_get_string #-}\n\nbindRegExMatch_get_string :: MethodBind\nbindRegExMatch_get_string\n  = unsafePerformIO $\n      withCString \"RegExMatch\" $\n        \\ clsNamePtr ->\n          withCString \"get_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_string ::\n             (RegExMatch :< cls, Object :< cls) =>\n             cls -> Maybe GodotVariant -> IO GodotString\nget_string cls arg1\n  = withVariantArray [maybe (VariantInt 0) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRegExMatch_get_string (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RegExMatch \"get_string\" '[Maybe GodotVariant]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.RegExMatch.get_string\n\n{-# NOINLINE bindRegExMatch_get_strings #-}\n\nbindRegExMatch_get_strings :: MethodBind\nbindRegExMatch_get_strings\n  = unsafePerformIO $\n      withCString \"RegExMatch\" $\n        \\ clsNamePtr ->\n          withCString \"get_strings\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_strings ::\n              (RegExMatch :< cls, Object :< cls) => cls -> IO Array\nget_strings cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRegExMatch_get_strings (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RegExMatch \"get_strings\" '[] (IO Array) where\n        nodeMethod = Godot.Core.RegExMatch.get_strings\n\n{-# NOINLINE bindRegExMatch_get_subject #-}\n\nbindRegExMatch_get_subject :: MethodBind\nbindRegExMatch_get_subject\n  = unsafePerformIO $\n      withCString \"RegExMatch\" $\n        \\ clsNamePtr ->\n          withCString \"get_subject\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_subject ::\n              (RegExMatch :< cls, Object :< cls) => cls -> IO GodotString\nget_subject cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRegExMatch_get_subject (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RegExMatch \"get_subject\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.RegExMatch.get_subject"
  },
  {
    "path": "src/Godot/Core/RemoteTransform.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.RemoteTransform\n       (Godot.Core.RemoteTransform.force_update_cache,\n        Godot.Core.RemoteTransform.get_remote_node,\n        Godot.Core.RemoteTransform.get_update_position,\n        Godot.Core.RemoteTransform.get_update_rotation,\n        Godot.Core.RemoteTransform.get_update_scale,\n        Godot.Core.RemoteTransform.get_use_global_coordinates,\n        Godot.Core.RemoteTransform.set_remote_node,\n        Godot.Core.RemoteTransform.set_update_position,\n        Godot.Core.RemoteTransform.set_update_rotation,\n        Godot.Core.RemoteTransform.set_update_scale,\n        Godot.Core.RemoteTransform.set_use_global_coordinates)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\ninstance NodeProperty RemoteTransform \"remote_path\" NodePath 'False\n         where\n        nodeProperty\n          = (get_remote_node, wrapDroppingSetter set_remote_node, Nothing)\n\ninstance NodeProperty RemoteTransform \"update_position\" Bool 'False\n         where\n        nodeProperty\n          = (get_update_position, wrapDroppingSetter set_update_position,\n             Nothing)\n\ninstance NodeProperty RemoteTransform \"update_rotation\" Bool 'False\n         where\n        nodeProperty\n          = (get_update_rotation, wrapDroppingSetter set_update_rotation,\n             Nothing)\n\ninstance NodeProperty RemoteTransform \"update_scale\" Bool 'False\n         where\n        nodeProperty\n          = (get_update_scale, wrapDroppingSetter set_update_scale, Nothing)\n\ninstance NodeProperty RemoteTransform \"use_global_coordinates\" Bool\n           'False\n         where\n        nodeProperty\n          = (get_use_global_coordinates,\n             wrapDroppingSetter set_use_global_coordinates, Nothing)\n\n{-# NOINLINE bindRemoteTransform_force_update_cache #-}\n\n-- | @RemoteTransform@ caches the remote node. It may not notice if the remote node disappears; @method force_update_cache@ forces it to update the cache again.\nbindRemoteTransform_force_update_cache :: MethodBind\nbindRemoteTransform_force_update_cache\n  = unsafePerformIO $\n      withCString \"RemoteTransform\" $\n        \\ clsNamePtr ->\n          withCString \"force_update_cache\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @RemoteTransform@ caches the remote node. It may not notice if the remote node disappears; @method force_update_cache@ forces it to update the cache again.\nforce_update_cache ::\n                     (RemoteTransform :< cls, Object :< cls) => cls -> IO ()\nforce_update_cache cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRemoteTransform_force_update_cache\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform \"force_update_cache\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RemoteTransform.force_update_cache\n\n{-# NOINLINE bindRemoteTransform_get_remote_node #-}\n\n-- | The @NodePath@ to the remote node, relative to the RemoteTransform's position in the scene.\nbindRemoteTransform_get_remote_node :: MethodBind\nbindRemoteTransform_get_remote_node\n  = unsafePerformIO $\n      withCString \"RemoteTransform\" $\n        \\ clsNamePtr ->\n          withCString \"get_remote_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @NodePath@ to the remote node, relative to the RemoteTransform's position in the scene.\nget_remote_node ::\n                  (RemoteTransform :< cls, Object :< cls) => cls -> IO NodePath\nget_remote_node cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRemoteTransform_get_remote_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform \"get_remote_node\" '[]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.RemoteTransform.get_remote_node\n\n{-# NOINLINE bindRemoteTransform_get_update_position #-}\n\n-- | If @true@, the remote node's position is updated.\nbindRemoteTransform_get_update_position :: MethodBind\nbindRemoteTransform_get_update_position\n  = unsafePerformIO $\n      withCString \"RemoteTransform\" $\n        \\ clsNamePtr ->\n          withCString \"get_update_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the remote node's position is updated.\nget_update_position ::\n                      (RemoteTransform :< cls, Object :< cls) => cls -> IO Bool\nget_update_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRemoteTransform_get_update_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform \"get_update_position\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RemoteTransform.get_update_position\n\n{-# NOINLINE bindRemoteTransform_get_update_rotation #-}\n\n-- | If @true@, the remote node's rotation is updated.\nbindRemoteTransform_get_update_rotation :: MethodBind\nbindRemoteTransform_get_update_rotation\n  = unsafePerformIO $\n      withCString \"RemoteTransform\" $\n        \\ clsNamePtr ->\n          withCString \"get_update_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the remote node's rotation is updated.\nget_update_rotation ::\n                      (RemoteTransform :< cls, Object :< cls) => cls -> IO Bool\nget_update_rotation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRemoteTransform_get_update_rotation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform \"get_update_rotation\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RemoteTransform.get_update_rotation\n\n{-# NOINLINE bindRemoteTransform_get_update_scale #-}\n\n-- | If @true@, the remote node's scale is updated.\nbindRemoteTransform_get_update_scale :: MethodBind\nbindRemoteTransform_get_update_scale\n  = unsafePerformIO $\n      withCString \"RemoteTransform\" $\n        \\ clsNamePtr ->\n          withCString \"get_update_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the remote node's scale is updated.\nget_update_scale ::\n                   (RemoteTransform :< cls, Object :< cls) => cls -> IO Bool\nget_update_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRemoteTransform_get_update_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform \"get_update_scale\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RemoteTransform.get_update_scale\n\n{-# NOINLINE bindRemoteTransform_get_use_global_coordinates #-}\n\n-- | If @true@, global coordinates are used. If @false@, local coordinates are used.\nbindRemoteTransform_get_use_global_coordinates :: MethodBind\nbindRemoteTransform_get_use_global_coordinates\n  = unsafePerformIO $\n      withCString \"RemoteTransform\" $\n        \\ clsNamePtr ->\n          withCString \"get_use_global_coordinates\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, global coordinates are used. If @false@, local coordinates are used.\nget_use_global_coordinates ::\n                             (RemoteTransform :< cls, Object :< cls) => cls -> IO Bool\nget_use_global_coordinates cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindRemoteTransform_get_use_global_coordinates\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform \"get_use_global_coordinates\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RemoteTransform.get_use_global_coordinates\n\n{-# NOINLINE bindRemoteTransform_set_remote_node #-}\n\n-- | The @NodePath@ to the remote node, relative to the RemoteTransform's position in the scene.\nbindRemoteTransform_set_remote_node :: MethodBind\nbindRemoteTransform_set_remote_node\n  = unsafePerformIO $\n      withCString \"RemoteTransform\" $\n        \\ clsNamePtr ->\n          withCString \"set_remote_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @NodePath@ to the remote node, relative to the RemoteTransform's position in the scene.\nset_remote_node ::\n                  (RemoteTransform :< cls, Object :< cls) => cls -> NodePath -> IO ()\nset_remote_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRemoteTransform_set_remote_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform \"set_remote_node\" '[NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RemoteTransform.set_remote_node\n\n{-# NOINLINE bindRemoteTransform_set_update_position #-}\n\n-- | If @true@, the remote node's position is updated.\nbindRemoteTransform_set_update_position :: MethodBind\nbindRemoteTransform_set_update_position\n  = unsafePerformIO $\n      withCString \"RemoteTransform\" $\n        \\ clsNamePtr ->\n          withCString \"set_update_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the remote node's position is updated.\nset_update_position ::\n                      (RemoteTransform :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_update_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRemoteTransform_set_update_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform \"set_update_position\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RemoteTransform.set_update_position\n\n{-# NOINLINE bindRemoteTransform_set_update_rotation #-}\n\n-- | If @true@, the remote node's rotation is updated.\nbindRemoteTransform_set_update_rotation :: MethodBind\nbindRemoteTransform_set_update_rotation\n  = unsafePerformIO $\n      withCString \"RemoteTransform\" $\n        \\ clsNamePtr ->\n          withCString \"set_update_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the remote node's rotation is updated.\nset_update_rotation ::\n                      (RemoteTransform :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_update_rotation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRemoteTransform_set_update_rotation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform \"set_update_rotation\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RemoteTransform.set_update_rotation\n\n{-# NOINLINE bindRemoteTransform_set_update_scale #-}\n\n-- | If @true@, the remote node's scale is updated.\nbindRemoteTransform_set_update_scale :: MethodBind\nbindRemoteTransform_set_update_scale\n  = unsafePerformIO $\n      withCString \"RemoteTransform\" $\n        \\ clsNamePtr ->\n          withCString \"set_update_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the remote node's scale is updated.\nset_update_scale ::\n                   (RemoteTransform :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_update_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRemoteTransform_set_update_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform \"set_update_scale\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RemoteTransform.set_update_scale\n\n{-# NOINLINE bindRemoteTransform_set_use_global_coordinates #-}\n\n-- | If @true@, global coordinates are used. If @false@, local coordinates are used.\nbindRemoteTransform_set_use_global_coordinates :: MethodBind\nbindRemoteTransform_set_use_global_coordinates\n  = unsafePerformIO $\n      withCString \"RemoteTransform\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_global_coordinates\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, global coordinates are used. If @false@, local coordinates are used.\nset_use_global_coordinates ::\n                             (RemoteTransform :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_global_coordinates cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindRemoteTransform_set_use_global_coordinates\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform \"set_use_global_coordinates\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RemoteTransform.set_use_global_coordinates"
  },
  {
    "path": "src/Godot/Core/RemoteTransform2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.RemoteTransform2D\n       (Godot.Core.RemoteTransform2D.force_update_cache,\n        Godot.Core.RemoteTransform2D.get_remote_node,\n        Godot.Core.RemoteTransform2D.get_update_position,\n        Godot.Core.RemoteTransform2D.get_update_rotation,\n        Godot.Core.RemoteTransform2D.get_update_scale,\n        Godot.Core.RemoteTransform2D.get_use_global_coordinates,\n        Godot.Core.RemoteTransform2D.set_remote_node,\n        Godot.Core.RemoteTransform2D.set_update_position,\n        Godot.Core.RemoteTransform2D.set_update_rotation,\n        Godot.Core.RemoteTransform2D.set_update_scale,\n        Godot.Core.RemoteTransform2D.set_use_global_coordinates)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\ninstance NodeProperty RemoteTransform2D \"remote_path\" NodePath\n           'False\n         where\n        nodeProperty\n          = (get_remote_node, wrapDroppingSetter set_remote_node, Nothing)\n\ninstance NodeProperty RemoteTransform2D \"update_position\" Bool\n           'False\n         where\n        nodeProperty\n          = (get_update_position, wrapDroppingSetter set_update_position,\n             Nothing)\n\ninstance NodeProperty RemoteTransform2D \"update_rotation\" Bool\n           'False\n         where\n        nodeProperty\n          = (get_update_rotation, wrapDroppingSetter set_update_rotation,\n             Nothing)\n\ninstance NodeProperty RemoteTransform2D \"update_scale\" Bool 'False\n         where\n        nodeProperty\n          = (get_update_scale, wrapDroppingSetter set_update_scale, Nothing)\n\ninstance NodeProperty RemoteTransform2D \"use_global_coordinates\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (get_use_global_coordinates,\n             wrapDroppingSetter set_use_global_coordinates, Nothing)\n\n{-# NOINLINE bindRemoteTransform2D_force_update_cache #-}\n\n-- | @RemoteTransform2D@ caches the remote node. It may not notice if the remote node disappears; @method force_update_cache@ forces it to update the cache again.\nbindRemoteTransform2D_force_update_cache :: MethodBind\nbindRemoteTransform2D_force_update_cache\n  = unsafePerformIO $\n      withCString \"RemoteTransform2D\" $\n        \\ clsNamePtr ->\n          withCString \"force_update_cache\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @RemoteTransform2D@ caches the remote node. It may not notice if the remote node disappears; @method force_update_cache@ forces it to update the cache again.\nforce_update_cache ::\n                     (RemoteTransform2D :< cls, Object :< cls) => cls -> IO ()\nforce_update_cache cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRemoteTransform2D_force_update_cache\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform2D \"force_update_cache\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RemoteTransform2D.force_update_cache\n\n{-# NOINLINE bindRemoteTransform2D_get_remote_node #-}\n\n-- | The @NodePath@ to the remote node, relative to the RemoteTransform2D's position in the scene.\nbindRemoteTransform2D_get_remote_node :: MethodBind\nbindRemoteTransform2D_get_remote_node\n  = unsafePerformIO $\n      withCString \"RemoteTransform2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_remote_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @NodePath@ to the remote node, relative to the RemoteTransform2D's position in the scene.\nget_remote_node ::\n                  (RemoteTransform2D :< cls, Object :< cls) => cls -> IO NodePath\nget_remote_node cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRemoteTransform2D_get_remote_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform2D \"get_remote_node\" '[]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.RemoteTransform2D.get_remote_node\n\n{-# NOINLINE bindRemoteTransform2D_get_update_position #-}\n\n-- | If @true@, the remote node's position is updated.\nbindRemoteTransform2D_get_update_position :: MethodBind\nbindRemoteTransform2D_get_update_position\n  = unsafePerformIO $\n      withCString \"RemoteTransform2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_update_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the remote node's position is updated.\nget_update_position ::\n                      (RemoteTransform2D :< cls, Object :< cls) => cls -> IO Bool\nget_update_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRemoteTransform2D_get_update_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform2D \"get_update_position\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RemoteTransform2D.get_update_position\n\n{-# NOINLINE bindRemoteTransform2D_get_update_rotation #-}\n\n-- | If @true@, the remote node's rotation is updated.\nbindRemoteTransform2D_get_update_rotation :: MethodBind\nbindRemoteTransform2D_get_update_rotation\n  = unsafePerformIO $\n      withCString \"RemoteTransform2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_update_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the remote node's rotation is updated.\nget_update_rotation ::\n                      (RemoteTransform2D :< cls, Object :< cls) => cls -> IO Bool\nget_update_rotation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRemoteTransform2D_get_update_rotation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform2D \"get_update_rotation\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RemoteTransform2D.get_update_rotation\n\n{-# NOINLINE bindRemoteTransform2D_get_update_scale #-}\n\n-- | If @true@, the remote node's scale is updated.\nbindRemoteTransform2D_get_update_scale :: MethodBind\nbindRemoteTransform2D_get_update_scale\n  = unsafePerformIO $\n      withCString \"RemoteTransform2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_update_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the remote node's scale is updated.\nget_update_scale ::\n                   (RemoteTransform2D :< cls, Object :< cls) => cls -> IO Bool\nget_update_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRemoteTransform2D_get_update_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform2D \"get_update_scale\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RemoteTransform2D.get_update_scale\n\n{-# NOINLINE bindRemoteTransform2D_get_use_global_coordinates #-}\n\n-- | If @true@, global coordinates are used. If @false@, local coordinates are used.\nbindRemoteTransform2D_get_use_global_coordinates :: MethodBind\nbindRemoteTransform2D_get_use_global_coordinates\n  = unsafePerformIO $\n      withCString \"RemoteTransform2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_use_global_coordinates\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, global coordinates are used. If @false@, local coordinates are used.\nget_use_global_coordinates ::\n                             (RemoteTransform2D :< cls, Object :< cls) => cls -> IO Bool\nget_use_global_coordinates cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindRemoteTransform2D_get_use_global_coordinates\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform2D \"get_use_global_coordinates\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.RemoteTransform2D.get_use_global_coordinates\n\n{-# NOINLINE bindRemoteTransform2D_set_remote_node #-}\n\n-- | The @NodePath@ to the remote node, relative to the RemoteTransform2D's position in the scene.\nbindRemoteTransform2D_set_remote_node :: MethodBind\nbindRemoteTransform2D_set_remote_node\n  = unsafePerformIO $\n      withCString \"RemoteTransform2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_remote_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @NodePath@ to the remote node, relative to the RemoteTransform2D's position in the scene.\nset_remote_node ::\n                  (RemoteTransform2D :< cls, Object :< cls) =>\n                  cls -> NodePath -> IO ()\nset_remote_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRemoteTransform2D_set_remote_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform2D \"set_remote_node\" '[NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RemoteTransform2D.set_remote_node\n\n{-# NOINLINE bindRemoteTransform2D_set_update_position #-}\n\n-- | If @true@, the remote node's position is updated.\nbindRemoteTransform2D_set_update_position :: MethodBind\nbindRemoteTransform2D_set_update_position\n  = unsafePerformIO $\n      withCString \"RemoteTransform2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_update_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the remote node's position is updated.\nset_update_position ::\n                      (RemoteTransform2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_update_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRemoteTransform2D_set_update_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform2D \"set_update_position\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RemoteTransform2D.set_update_position\n\n{-# NOINLINE bindRemoteTransform2D_set_update_rotation #-}\n\n-- | If @true@, the remote node's rotation is updated.\nbindRemoteTransform2D_set_update_rotation :: MethodBind\nbindRemoteTransform2D_set_update_rotation\n  = unsafePerformIO $\n      withCString \"RemoteTransform2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_update_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the remote node's rotation is updated.\nset_update_rotation ::\n                      (RemoteTransform2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_update_rotation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRemoteTransform2D_set_update_rotation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform2D \"set_update_rotation\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RemoteTransform2D.set_update_rotation\n\n{-# NOINLINE bindRemoteTransform2D_set_update_scale #-}\n\n-- | If @true@, the remote node's scale is updated.\nbindRemoteTransform2D_set_update_scale :: MethodBind\nbindRemoteTransform2D_set_update_scale\n  = unsafePerformIO $\n      withCString \"RemoteTransform2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_update_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the remote node's scale is updated.\nset_update_scale ::\n                   (RemoteTransform2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_update_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRemoteTransform2D_set_update_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform2D \"set_update_scale\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RemoteTransform2D.set_update_scale\n\n{-# NOINLINE bindRemoteTransform2D_set_use_global_coordinates #-}\n\n-- | If @true@, global coordinates are used. If @false@, local coordinates are used.\nbindRemoteTransform2D_set_use_global_coordinates :: MethodBind\nbindRemoteTransform2D_set_use_global_coordinates\n  = unsafePerformIO $\n      withCString \"RemoteTransform2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_global_coordinates\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, global coordinates are used. If @false@, local coordinates are used.\nset_use_global_coordinates ::\n                             (RemoteTransform2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_global_coordinates cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindRemoteTransform2D_set_use_global_coordinates\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RemoteTransform2D \"set_use_global_coordinates\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.RemoteTransform2D.set_use_global_coordinates"
  },
  {
    "path": "src/Godot/Core/Resource.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Resource\n       (Godot.Core.Resource.sig_changed,\n        Godot.Core.Resource._setup_local_to_scene,\n        Godot.Core.Resource.duplicate, Godot.Core.Resource.get_local_scene,\n        Godot.Core.Resource.get_name, Godot.Core.Resource.get_path,\n        Godot.Core.Resource.get_rid, Godot.Core.Resource.is_local_to_scene,\n        Godot.Core.Resource.set_local_to_scene,\n        Godot.Core.Resource.set_name, Godot.Core.Resource.set_path,\n        Godot.Core.Resource.setup_local_to_scene,\n        Godot.Core.Resource.take_over_path)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n-- | Emitted whenever the resource changes.\nsig_changed :: Godot.Internal.Dispatch.Signal Resource\nsig_changed = Godot.Internal.Dispatch.Signal \"changed\"\n\ninstance NodeSignal Resource \"changed\" '[]\n\ninstance NodeProperty Resource \"resource_local_to_scene\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_local_to_scene, wrapDroppingSetter set_local_to_scene,\n             Nothing)\n\ninstance NodeProperty Resource \"resource_name\" GodotString 'False\n         where\n        nodeProperty = (get_name, wrapDroppingSetter set_name, Nothing)\n\ninstance NodeProperty Resource \"resource_path\" GodotString 'False\n         where\n        nodeProperty = (get_path, wrapDroppingSetter set_path, Nothing)\n\n{-# NOINLINE bindResource__setup_local_to_scene #-}\n\n-- | Virtual function which can be overridden to customize the behavior value of @method setup_local_to_scene@.\nbindResource__setup_local_to_scene :: MethodBind\nbindResource__setup_local_to_scene\n  = unsafePerformIO $\n      withCString \"Resource\" $\n        \\ clsNamePtr ->\n          withCString \"_setup_local_to_scene\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Virtual function which can be overridden to customize the behavior value of @method setup_local_to_scene@.\n_setup_local_to_scene ::\n                        (Resource :< cls, Object :< cls) => cls -> IO ()\n_setup_local_to_scene cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResource__setup_local_to_scene\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Resource \"_setup_local_to_scene\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.Resource._setup_local_to_scene\n\n{-# NOINLINE bindResource_duplicate #-}\n\n-- | Duplicates the resource, returning a new resource. By default, sub-resources are shared between resource copies for efficiency. This can be changed by passing @true@ to the @subresources@ argument which will copy the subresources.\n--   \t\t\t\t__Note:__ If @subresources@ is @true@, this method will only perform a shallow copy. Nested resources within subresources will not be duplicated and will still be shared.\nbindResource_duplicate :: MethodBind\nbindResource_duplicate\n  = unsafePerformIO $\n      withCString \"Resource\" $\n        \\ clsNamePtr ->\n          withCString \"duplicate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Duplicates the resource, returning a new resource. By default, sub-resources are shared between resource copies for efficiency. This can be changed by passing @true@ to the @subresources@ argument which will copy the subresources.\n--   \t\t\t\t__Note:__ If @subresources@ is @true@, this method will only perform a shallow copy. Nested resources within subresources will not be duplicated and will still be shared.\nduplicate ::\n            (Resource :< cls, Object :< cls) =>\n            cls -> Maybe Bool -> IO Resource\nduplicate cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResource_duplicate (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Resource \"duplicate\" '[Maybe Bool]\n           (IO Resource)\n         where\n        nodeMethod = Godot.Core.Resource.duplicate\n\n{-# NOINLINE bindResource_get_local_scene #-}\n\n-- | If @resource_local_to_scene@ is enabled and the resource was loaded from a @PackedScene@ instantiation, returns the local scene where this resource's unique copy is in use. Otherwise, returns @null@.\nbindResource_get_local_scene :: MethodBind\nbindResource_get_local_scene\n  = unsafePerformIO $\n      withCString \"Resource\" $\n        \\ clsNamePtr ->\n          withCString \"get_local_scene\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @resource_local_to_scene@ is enabled and the resource was loaded from a @PackedScene@ instantiation, returns the local scene where this resource's unique copy is in use. Otherwise, returns @null@.\nget_local_scene ::\n                  (Resource :< cls, Object :< cls) => cls -> IO Node\nget_local_scene cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResource_get_local_scene (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Resource \"get_local_scene\" '[] (IO Node) where\n        nodeMethod = Godot.Core.Resource.get_local_scene\n\n{-# NOINLINE bindResource_get_name #-}\n\n-- | The name of the resource. This is an optional identifier.\nbindResource_get_name :: MethodBind\nbindResource_get_name\n  = unsafePerformIO $\n      withCString \"Resource\" $\n        \\ clsNamePtr ->\n          withCString \"get_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The name of the resource. This is an optional identifier.\nget_name ::\n           (Resource :< cls, Object :< cls) => cls -> IO GodotString\nget_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResource_get_name (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Resource \"get_name\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.Resource.get_name\n\n{-# NOINLINE bindResource_get_path #-}\n\n-- | The path to the resource. In case it has its own file, it will return its filepath. If it's tied to the scene, it will return the scene's path, followed by the resource's index.\nbindResource_get_path :: MethodBind\nbindResource_get_path\n  = unsafePerformIO $\n      withCString \"Resource\" $\n        \\ clsNamePtr ->\n          withCString \"get_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The path to the resource. In case it has its own file, it will return its filepath. If it's tied to the scene, it will return the scene's path, followed by the resource's index.\nget_path ::\n           (Resource :< cls, Object :< cls) => cls -> IO GodotString\nget_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResource_get_path (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Resource \"get_path\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.Resource.get_path\n\n{-# NOINLINE bindResource_get_rid #-}\n\n-- | Returns the RID of the resource (or an empty RID). Many resources (such as @Texture@, @Mesh@, etc) are high-level abstractions of resources stored in a server, so this function will return the original RID.\nbindResource_get_rid :: MethodBind\nbindResource_get_rid\n  = unsafePerformIO $\n      withCString \"Resource\" $\n        \\ clsNamePtr ->\n          withCString \"get_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the RID of the resource (or an empty RID). Many resources (such as @Texture@, @Mesh@, etc) are high-level abstractions of resources stored in a server, so this function will return the original RID.\nget_rid :: (Resource :< cls, Object :< cls) => cls -> IO Rid\nget_rid cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResource_get_rid (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Resource \"get_rid\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.Resource.get_rid\n\n{-# NOINLINE bindResource_is_local_to_scene #-}\n\n-- | If @true@, the resource will be made unique in each instance of its local scene. It can thus be modified in a scene instance without impacting other instances of that same scene.\nbindResource_is_local_to_scene :: MethodBind\nbindResource_is_local_to_scene\n  = unsafePerformIO $\n      withCString \"Resource\" $\n        \\ clsNamePtr ->\n          withCString \"is_local_to_scene\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the resource will be made unique in each instance of its local scene. It can thus be modified in a scene instance without impacting other instances of that same scene.\nis_local_to_scene ::\n                    (Resource :< cls, Object :< cls) => cls -> IO Bool\nis_local_to_scene cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResource_is_local_to_scene (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Resource \"is_local_to_scene\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Resource.is_local_to_scene\n\n{-# NOINLINE bindResource_set_local_to_scene #-}\n\n-- | If @true@, the resource will be made unique in each instance of its local scene. It can thus be modified in a scene instance without impacting other instances of that same scene.\nbindResource_set_local_to_scene :: MethodBind\nbindResource_set_local_to_scene\n  = unsafePerformIO $\n      withCString \"Resource\" $\n        \\ clsNamePtr ->\n          withCString \"set_local_to_scene\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the resource will be made unique in each instance of its local scene. It can thus be modified in a scene instance without impacting other instances of that same scene.\nset_local_to_scene ::\n                     (Resource :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_local_to_scene cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResource_set_local_to_scene (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Resource \"set_local_to_scene\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Resource.set_local_to_scene\n\n{-# NOINLINE bindResource_set_name #-}\n\n-- | The name of the resource. This is an optional identifier.\nbindResource_set_name :: MethodBind\nbindResource_set_name\n  = unsafePerformIO $\n      withCString \"Resource\" $\n        \\ clsNamePtr ->\n          withCString \"set_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The name of the resource. This is an optional identifier.\nset_name ::\n           (Resource :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResource_set_name (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Resource \"set_name\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.Resource.set_name\n\n{-# NOINLINE bindResource_set_path #-}\n\n-- | The path to the resource. In case it has its own file, it will return its filepath. If it's tied to the scene, it will return the scene's path, followed by the resource's index.\nbindResource_set_path :: MethodBind\nbindResource_set_path\n  = unsafePerformIO $\n      withCString \"Resource\" $\n        \\ clsNamePtr ->\n          withCString \"set_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The path to the resource. In case it has its own file, it will return its filepath. If it's tied to the scene, it will return the scene's path, followed by the resource's index.\nset_path ::\n           (Resource :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResource_set_path (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Resource \"set_path\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.Resource.set_path\n\n{-# NOINLINE bindResource_setup_local_to_scene #-}\n\n-- | This method is called when a resource with @resource_local_to_scene@ enabled is loaded from a @PackedScene@ instantiation. Its behavior can be customized by overriding @method _setup_local_to_scene@ from script.\n--   \t\t\t\tFor most resources, this method performs no base logic. @ViewportTexture@ performs custom logic to properly set the proxy texture and flags in the local viewport.\nbindResource_setup_local_to_scene :: MethodBind\nbindResource_setup_local_to_scene\n  = unsafePerformIO $\n      withCString \"Resource\" $\n        \\ clsNamePtr ->\n          withCString \"setup_local_to_scene\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This method is called when a resource with @resource_local_to_scene@ enabled is loaded from a @PackedScene@ instantiation. Its behavior can be customized by overriding @method _setup_local_to_scene@ from script.\n--   \t\t\t\tFor most resources, this method performs no base logic. @ViewportTexture@ performs custom logic to properly set the proxy texture and flags in the local viewport.\nsetup_local_to_scene ::\n                       (Resource :< cls, Object :< cls) => cls -> IO ()\nsetup_local_to_scene cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResource_setup_local_to_scene\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Resource \"setup_local_to_scene\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.Resource.setup_local_to_scene\n\n{-# NOINLINE bindResource_take_over_path #-}\n\n-- | Sets the path of the resource, potentially overriding an existing cache entry for this path. This differs from setting @resource_path@, as the latter would error out if another resource was already cached for the given path.\nbindResource_take_over_path :: MethodBind\nbindResource_take_over_path\n  = unsafePerformIO $\n      withCString \"Resource\" $\n        \\ clsNamePtr ->\n          withCString \"take_over_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the path of the resource, potentially overriding an existing cache entry for this path. This differs from setting @resource_path@, as the latter would error out if another resource was already cached for the given path.\ntake_over_path ::\n                 (Resource :< cls, Object :< cls) => cls -> GodotString -> IO ()\ntake_over_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResource_take_over_path (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Resource \"take_over_path\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Resource.take_over_path"
  },
  {
    "path": "src/Godot/Core/ResourceFormatLoader.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ResourceFormatLoader\n       (Godot.Core.ResourceFormatLoader.get_dependencies,\n        Godot.Core.ResourceFormatLoader.get_recognized_extensions,\n        Godot.Core.ResourceFormatLoader.get_resource_type,\n        Godot.Core.ResourceFormatLoader.handles_type,\n        Godot.Core.ResourceFormatLoader.load,\n        Godot.Core.ResourceFormatLoader.rename_dependencies)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindResourceFormatLoader_get_dependencies #-}\n\n-- | If implemented, gets the dependencies of a given resource. If @add_types@ is @true@, paths should be appended @::TypeName@, where @TypeName@ is the class name of the dependency.\n--   \t\t\t\t__Note:__ Custom resource types defined by scripts aren't known by the @ClassDB@, so you might just return @\"Resource\"@ for them.\nbindResourceFormatLoader_get_dependencies :: MethodBind\nbindResourceFormatLoader_get_dependencies\n  = unsafePerformIO $\n      withCString \"ResourceFormatLoader\" $\n        \\ clsNamePtr ->\n          withCString \"get_dependencies\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If implemented, gets the dependencies of a given resource. If @add_types@ is @true@, paths should be appended @::TypeName@, where @TypeName@ is the class name of the dependency.\n--   \t\t\t\t__Note:__ Custom resource types defined by scripts aren't known by the @ClassDB@, so you might just return @\"Resource\"@ for them.\nget_dependencies ::\n                   (ResourceFormatLoader :< cls, Object :< cls) =>\n                   cls -> GodotString -> GodotString -> IO ()\nget_dependencies cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceFormatLoader_get_dependencies\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceFormatLoader \"get_dependencies\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ResourceFormatLoader.get_dependencies\n\n{-# NOINLINE bindResourceFormatLoader_get_recognized_extensions #-}\n\n-- | Gets the list of extensions for files this loader is able to read.\nbindResourceFormatLoader_get_recognized_extensions :: MethodBind\nbindResourceFormatLoader_get_recognized_extensions\n  = unsafePerformIO $\n      withCString \"ResourceFormatLoader\" $\n        \\ clsNamePtr ->\n          withCString \"get_recognized_extensions\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the list of extensions for files this loader is able to read.\nget_recognized_extensions ::\n                            (ResourceFormatLoader :< cls, Object :< cls) =>\n                            cls -> IO PoolStringArray\nget_recognized_extensions cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindResourceFormatLoader_get_recognized_extensions\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceFormatLoader\n           \"get_recognized_extensions\"\n           '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod\n          = Godot.Core.ResourceFormatLoader.get_recognized_extensions\n\n{-# NOINLINE bindResourceFormatLoader_get_resource_type #-}\n\n-- | Gets the class name of the resource associated with the given path. If the loader cannot handle it, it should return @\"\"@.\n--   \t\t\t\t__Note:__ Custom resource types defined by scripts aren't known by the @ClassDB@, so you might just return @\"Resource\"@ for them.\nbindResourceFormatLoader_get_resource_type :: MethodBind\nbindResourceFormatLoader_get_resource_type\n  = unsafePerformIO $\n      withCString \"ResourceFormatLoader\" $\n        \\ clsNamePtr ->\n          withCString \"get_resource_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the class name of the resource associated with the given path. If the loader cannot handle it, it should return @\"\"@.\n--   \t\t\t\t__Note:__ Custom resource types defined by scripts aren't known by the @ClassDB@, so you might just return @\"Resource\"@ for them.\nget_resource_type ::\n                    (ResourceFormatLoader :< cls, Object :< cls) =>\n                    cls -> GodotString -> IO GodotString\nget_resource_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceFormatLoader_get_resource_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceFormatLoader \"get_resource_type\"\n           '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.ResourceFormatLoader.get_resource_type\n\n{-# NOINLINE bindResourceFormatLoader_handles_type #-}\n\n-- | Tells which resource class this loader can load.\n--   \t\t\t\t__Note:__ Custom resource types defined by scripts aren't known by the @ClassDB@, so you might just handle @\"Resource\"@ for them.\nbindResourceFormatLoader_handles_type :: MethodBind\nbindResourceFormatLoader_handles_type\n  = unsafePerformIO $\n      withCString \"ResourceFormatLoader\" $\n        \\ clsNamePtr ->\n          withCString \"handles_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Tells which resource class this loader can load.\n--   \t\t\t\t__Note:__ Custom resource types defined by scripts aren't known by the @ClassDB@, so you might just handle @\"Resource\"@ for them.\nhandles_type ::\n               (ResourceFormatLoader :< cls, Object :< cls) =>\n               cls -> GodotString -> IO Bool\nhandles_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceFormatLoader_handles_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceFormatLoader \"handles_type\"\n           '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ResourceFormatLoader.handles_type\n\n{-# NOINLINE bindResourceFormatLoader_load #-}\n\n-- | Loads a resource when the engine finds this loader to be compatible. If the loaded resource is the result of an import, @original_path@ will target the source file. Returns a @Resource@ object on success, or an @enum Error@ constant in case of failure.\nbindResourceFormatLoader_load :: MethodBind\nbindResourceFormatLoader_load\n  = unsafePerformIO $\n      withCString \"ResourceFormatLoader\" $\n        \\ clsNamePtr ->\n          withCString \"load\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Loads a resource when the engine finds this loader to be compatible. If the loaded resource is the result of an import, @original_path@ will target the source file. Returns a @Resource@ object on success, or an @enum Error@ constant in case of failure.\nload ::\n       (ResourceFormatLoader :< cls, Object :< cls) =>\n       cls -> GodotString -> GodotString -> IO GodotVariant\nload cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceFormatLoader_load (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceFormatLoader \"load\"\n           '[GodotString, GodotString]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.ResourceFormatLoader.load\n\n{-# NOINLINE bindResourceFormatLoader_rename_dependencies #-}\n\n-- | If implemented, renames dependencies within the given resource and saves it. @renames@ is a dictionary @{ String => String }@ mapping old dependency paths to new paths.\n--   \t\t\t\tReturns @OK@ on success, or an @enum Error@ constant in case of failure.\nbindResourceFormatLoader_rename_dependencies :: MethodBind\nbindResourceFormatLoader_rename_dependencies\n  = unsafePerformIO $\n      withCString \"ResourceFormatLoader\" $\n        \\ clsNamePtr ->\n          withCString \"rename_dependencies\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If implemented, renames dependencies within the given resource and saves it. @renames@ is a dictionary @{ String => String }@ mapping old dependency paths to new paths.\n--   \t\t\t\tReturns @OK@ on success, or an @enum Error@ constant in case of failure.\nrename_dependencies ::\n                      (ResourceFormatLoader :< cls, Object :< cls) =>\n                      cls -> GodotString -> GodotString -> IO Int\nrename_dependencies cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceFormatLoader_rename_dependencies\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceFormatLoader \"rename_dependencies\"\n           '[GodotString, GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ResourceFormatLoader.rename_dependencies"
  },
  {
    "path": "src/Godot/Core/ResourceFormatLoaderCrypto.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ResourceFormatLoaderCrypto () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.ResourceFormatLoader()"
  },
  {
    "path": "src/Godot/Core/ResourceFormatSaver.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ResourceFormatSaver\n       (Godot.Core.ResourceFormatSaver.get_recognized_extensions,\n        Godot.Core.ResourceFormatSaver.recognize,\n        Godot.Core.ResourceFormatSaver.save)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindResourceFormatSaver_get_recognized_extensions #-}\n\n-- | Returns the list of extensions available for saving the resource object, provided it is recognized (see @method recognize@).\nbindResourceFormatSaver_get_recognized_extensions :: MethodBind\nbindResourceFormatSaver_get_recognized_extensions\n  = unsafePerformIO $\n      withCString \"ResourceFormatSaver\" $\n        \\ clsNamePtr ->\n          withCString \"get_recognized_extensions\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the list of extensions available for saving the resource object, provided it is recognized (see @method recognize@).\nget_recognized_extensions ::\n                            (ResourceFormatSaver :< cls, Object :< cls) =>\n                            cls -> Resource -> IO PoolStringArray\nget_recognized_extensions cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindResourceFormatSaver_get_recognized_extensions\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceFormatSaver \"get_recognized_extensions\"\n           '[Resource]\n           (IO PoolStringArray)\n         where\n        nodeMethod\n          = Godot.Core.ResourceFormatSaver.get_recognized_extensions\n\n{-# NOINLINE bindResourceFormatSaver_recognize #-}\n\n-- | Returns whether the given resource object can be saved by this saver.\nbindResourceFormatSaver_recognize :: MethodBind\nbindResourceFormatSaver_recognize\n  = unsafePerformIO $\n      withCString \"ResourceFormatSaver\" $\n        \\ clsNamePtr ->\n          withCString \"recognize\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether the given resource object can be saved by this saver.\nrecognize ::\n            (ResourceFormatSaver :< cls, Object :< cls) =>\n            cls -> Resource -> IO Bool\nrecognize cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceFormatSaver_recognize\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceFormatSaver \"recognize\" '[Resource]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ResourceFormatSaver.recognize\n\n{-# NOINLINE bindResourceFormatSaver_save #-}\n\n-- | Saves the given resource object to a file at the target @path@. @flags@ is a bitmask composed with @enum ResourceSaver.SaverFlags@ constants.\n--   \t\t\t\tReturns @OK@ on success, or an @enum Error@ constant in case of failure.\nbindResourceFormatSaver_save :: MethodBind\nbindResourceFormatSaver_save\n  = unsafePerformIO $\n      withCString \"ResourceFormatSaver\" $\n        \\ clsNamePtr ->\n          withCString \"save\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Saves the given resource object to a file at the target @path@. @flags@ is a bitmask composed with @enum ResourceSaver.SaverFlags@ constants.\n--   \t\t\t\tReturns @OK@ on success, or an @enum Error@ constant in case of failure.\nsave ::\n       (ResourceFormatSaver :< cls, Object :< cls) =>\n       cls -> GodotString -> Resource -> Int -> IO Int\nsave cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceFormatSaver_save (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceFormatSaver \"save\"\n           '[GodotString, Resource, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ResourceFormatSaver.save"
  },
  {
    "path": "src/Godot/Core/ResourceFormatSaverCrypto.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ResourceFormatSaverCrypto () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.ResourceFormatSaver()"
  },
  {
    "path": "src/Godot/Core/ResourceImporter.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ResourceImporter () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()"
  },
  {
    "path": "src/Godot/Core/ResourceInteractiveLoader.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ResourceInteractiveLoader\n       (Godot.Core.ResourceInteractiveLoader.get_resource,\n        Godot.Core.ResourceInteractiveLoader.get_stage,\n        Godot.Core.ResourceInteractiveLoader.get_stage_count,\n        Godot.Core.ResourceInteractiveLoader.poll,\n        Godot.Core.ResourceInteractiveLoader.wait)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindResourceInteractiveLoader_get_resource #-}\n\n-- | Returns the loaded resource if the load operation completed successfully, @null@ otherwise.\nbindResourceInteractiveLoader_get_resource :: MethodBind\nbindResourceInteractiveLoader_get_resource\n  = unsafePerformIO $\n      withCString \"ResourceInteractiveLoader\" $\n        \\ clsNamePtr ->\n          withCString \"get_resource\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the loaded resource if the load operation completed successfully, @null@ otherwise.\nget_resource ::\n               (ResourceInteractiveLoader :< cls, Object :< cls) =>\n               cls -> IO Resource\nget_resource cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceInteractiveLoader_get_resource\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceInteractiveLoader \"get_resource\" '[]\n           (IO Resource)\n         where\n        nodeMethod = Godot.Core.ResourceInteractiveLoader.get_resource\n\n{-# NOINLINE bindResourceInteractiveLoader_get_stage #-}\n\n-- | Returns the load stage. The total amount of stages can be queried with @method get_stage_count@.\nbindResourceInteractiveLoader_get_stage :: MethodBind\nbindResourceInteractiveLoader_get_stage\n  = unsafePerformIO $\n      withCString \"ResourceInteractiveLoader\" $\n        \\ clsNamePtr ->\n          withCString \"get_stage\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the load stage. The total amount of stages can be queried with @method get_stage_count@.\nget_stage ::\n            (ResourceInteractiveLoader :< cls, Object :< cls) => cls -> IO Int\nget_stage cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceInteractiveLoader_get_stage\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceInteractiveLoader \"get_stage\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ResourceInteractiveLoader.get_stage\n\n{-# NOINLINE bindResourceInteractiveLoader_get_stage_count #-}\n\n-- | Returns the total amount of stages (calls to @method poll@) needed to completely load this resource.\nbindResourceInteractiveLoader_get_stage_count :: MethodBind\nbindResourceInteractiveLoader_get_stage_count\n  = unsafePerformIO $\n      withCString \"ResourceInteractiveLoader\" $\n        \\ clsNamePtr ->\n          withCString \"get_stage_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the total amount of stages (calls to @method poll@) needed to completely load this resource.\nget_stage_count ::\n                  (ResourceInteractiveLoader :< cls, Object :< cls) => cls -> IO Int\nget_stage_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindResourceInteractiveLoader_get_stage_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceInteractiveLoader \"get_stage_count\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ResourceInteractiveLoader.get_stage_count\n\n{-# NOINLINE bindResourceInteractiveLoader_poll #-}\n\n-- | Polls the loading operation, i.e. loads a data chunk up to the next stage.\n--   \t\t\t\tReturns @OK@ if the poll is successful but the load operation has not finished yet (intermediate stage). This means @method poll@ will have to be called again until the last stage is completed.\n--   \t\t\t\tReturns @ERR_FILE_EOF@ if the load operation has completed successfully. The loaded resource can be obtained by calling @method get_resource@.\n--   \t\t\t\tReturns another @enum Error@ code if the poll has failed.\nbindResourceInteractiveLoader_poll :: MethodBind\nbindResourceInteractiveLoader_poll\n  = unsafePerformIO $\n      withCString \"ResourceInteractiveLoader\" $\n        \\ clsNamePtr ->\n          withCString \"poll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Polls the loading operation, i.e. loads a data chunk up to the next stage.\n--   \t\t\t\tReturns @OK@ if the poll is successful but the load operation has not finished yet (intermediate stage). This means @method poll@ will have to be called again until the last stage is completed.\n--   \t\t\t\tReturns @ERR_FILE_EOF@ if the load operation has completed successfully. The loaded resource can be obtained by calling @method get_resource@.\n--   \t\t\t\tReturns another @enum Error@ code if the poll has failed.\npoll ::\n       (ResourceInteractiveLoader :< cls, Object :< cls) => cls -> IO Int\npoll cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceInteractiveLoader_poll\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceInteractiveLoader \"poll\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ResourceInteractiveLoader.poll\n\n{-# NOINLINE bindResourceInteractiveLoader_wait #-}\n\n-- | Polls the loading operation successively until the resource is completely loaded or a @method poll@ fails.\n--   \t\t\t\tReturns @ERR_FILE_EOF@ if the load operation has completed successfully. The loaded resource can be obtained by calling @method get_resource@.\n--   \t\t\t\tReturns another @enum Error@ code if a poll has failed, aborting the operation.\nbindResourceInteractiveLoader_wait :: MethodBind\nbindResourceInteractiveLoader_wait\n  = unsafePerformIO $\n      withCString \"ResourceInteractiveLoader\" $\n        \\ clsNamePtr ->\n          withCString \"wait\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Polls the loading operation successively until the resource is completely loaded or a @method poll@ fails.\n--   \t\t\t\tReturns @ERR_FILE_EOF@ if the load operation has completed successfully. The loaded resource can be obtained by calling @method get_resource@.\n--   \t\t\t\tReturns another @enum Error@ code if a poll has failed, aborting the operation.\nwait ::\n       (ResourceInteractiveLoader :< cls, Object :< cls) => cls -> IO Int\nwait cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceInteractiveLoader_wait\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceInteractiveLoader \"wait\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ResourceInteractiveLoader.wait"
  },
  {
    "path": "src/Godot/Core/ResourceLoader.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ResourceLoader\n       (Godot.Core.ResourceLoader.exists,\n        Godot.Core.ResourceLoader.get_dependencies,\n        Godot.Core.ResourceLoader.get_recognized_extensions_for_type,\n        Godot.Core.ResourceLoader.has,\n        Godot.Core.ResourceLoader.has_cached,\n        Godot.Core.ResourceLoader.load,\n        Godot.Core.ResourceLoader.load_interactive,\n        Godot.Core.ResourceLoader.set_abort_on_missing_resources)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n{-# NOINLINE bindResourceLoader_exists #-}\n\n-- | Returns whether a recognized resource exists for the given @path@.\n--   \t\t\t\tAn optional @type_hint@ can be used to further specify the @Resource@ type that should be handled by the @ResourceFormatLoader@.\nbindResourceLoader_exists :: MethodBind\nbindResourceLoader_exists\n  = unsafePerformIO $\n      withCString \"_ResourceLoader\" $\n        \\ clsNamePtr ->\n          withCString \"exists\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether a recognized resource exists for the given @path@.\n--   \t\t\t\tAn optional @type_hint@ can be used to further specify the @Resource@ type that should be handled by the @ResourceFormatLoader@.\nexists ::\n         (ResourceLoader :< cls, Object :< cls) =>\n         cls -> GodotString -> Maybe GodotString -> IO Bool\nexists cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceLoader_exists (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceLoader \"exists\"\n           '[GodotString, Maybe GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ResourceLoader.exists\n\n{-# NOINLINE bindResourceLoader_get_dependencies #-}\n\n-- | Returns the dependencies for the resource at the given @path@.\nbindResourceLoader_get_dependencies :: MethodBind\nbindResourceLoader_get_dependencies\n  = unsafePerformIO $\n      withCString \"_ResourceLoader\" $\n        \\ clsNamePtr ->\n          withCString \"get_dependencies\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the dependencies for the resource at the given @path@.\nget_dependencies ::\n                   (ResourceLoader :< cls, Object :< cls) =>\n                   cls -> GodotString -> IO PoolStringArray\nget_dependencies cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceLoader_get_dependencies\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceLoader \"get_dependencies\"\n           '[GodotString]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.ResourceLoader.get_dependencies\n\n{-# NOINLINE bindResourceLoader_get_recognized_extensions_for_type\n             #-}\n\n-- | Returns the list of recognized extensions for a resource type.\nbindResourceLoader_get_recognized_extensions_for_type :: MethodBind\nbindResourceLoader_get_recognized_extensions_for_type\n  = unsafePerformIO $\n      withCString \"_ResourceLoader\" $\n        \\ clsNamePtr ->\n          withCString \"get_recognized_extensions_for_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the list of recognized extensions for a resource type.\nget_recognized_extensions_for_type ::\n                                     (ResourceLoader :< cls, Object :< cls) =>\n                                     cls -> GodotString -> IO PoolStringArray\nget_recognized_extensions_for_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindResourceLoader_get_recognized_extensions_for_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceLoader\n           \"get_recognized_extensions_for_type\"\n           '[GodotString]\n           (IO PoolStringArray)\n         where\n        nodeMethod\n          = Godot.Core.ResourceLoader.get_recognized_extensions_for_type\n\n{-# NOINLINE bindResourceLoader_has #-}\n\n-- | @i@Deprecated method.@/i@ Use @method has_cached@ or @method exists@ instead.\nbindResourceLoader_has :: MethodBind\nbindResourceLoader_has\n  = unsafePerformIO $\n      withCString \"_ResourceLoader\" $\n        \\ clsNamePtr ->\n          withCString \"has\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @i@Deprecated method.@/i@ Use @method has_cached@ or @method exists@ instead.\nhas ::\n      (ResourceLoader :< cls, Object :< cls) =>\n      cls -> GodotString -> IO Bool\nhas cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceLoader_has (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceLoader \"has\" '[GodotString] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ResourceLoader.has\n\n{-# NOINLINE bindResourceLoader_has_cached #-}\n\n-- | Returns whether a cached resource is available for the given @path@.\n--   \t\t\t\tOnce a resource has been loaded by the engine, it is cached in memory for faster access, and future calls to the @method load@ or @method load_interactive@ methods will use the cached version. The cached resource can be overridden by using @method Resource.take_over_path@ on a new resource for that same path.\nbindResourceLoader_has_cached :: MethodBind\nbindResourceLoader_has_cached\n  = unsafePerformIO $\n      withCString \"_ResourceLoader\" $\n        \\ clsNamePtr ->\n          withCString \"has_cached\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether a cached resource is available for the given @path@.\n--   \t\t\t\tOnce a resource has been loaded by the engine, it is cached in memory for faster access, and future calls to the @method load@ or @method load_interactive@ methods will use the cached version. The cached resource can be overridden by using @method Resource.take_over_path@ on a new resource for that same path.\nhas_cached ::\n             (ResourceLoader :< cls, Object :< cls) =>\n             cls -> GodotString -> IO Bool\nhas_cached cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceLoader_has_cached (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceLoader \"has_cached\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ResourceLoader.has_cached\n\n{-# NOINLINE bindResourceLoader_load #-}\n\n-- | Loads a resource at the given @path@, caching the result for further access.\n--   \t\t\t\tThe registered @ResourceFormatLoader@s are queried sequentially to find the first one which can handle the file's extension, and then attempt loading. If loading fails, the remaining ResourceFormatLoaders are also attempted.\n--   \t\t\t\tAn optional @type_hint@ can be used to further specify the @Resource@ type that should be handled by the @ResourceFormatLoader@.\n--   \t\t\t\tIf @no_cache@ is @true@, the resource cache will be bypassed and the resource will be loaded anew. Otherwise, the cached resource will be returned if it exists.\n--   \t\t\t\tReturns an empty resource if no ResourceFormatLoader could handle the file.\nbindResourceLoader_load :: MethodBind\nbindResourceLoader_load\n  = unsafePerformIO $\n      withCString \"_ResourceLoader\" $\n        \\ clsNamePtr ->\n          withCString \"load\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Loads a resource at the given @path@, caching the result for further access.\n--   \t\t\t\tThe registered @ResourceFormatLoader@s are queried sequentially to find the first one which can handle the file's extension, and then attempt loading. If loading fails, the remaining ResourceFormatLoaders are also attempted.\n--   \t\t\t\tAn optional @type_hint@ can be used to further specify the @Resource@ type that should be handled by the @ResourceFormatLoader@.\n--   \t\t\t\tIf @no_cache@ is @true@, the resource cache will be bypassed and the resource will be loaded anew. Otherwise, the cached resource will be returned if it exists.\n--   \t\t\t\tReturns an empty resource if no ResourceFormatLoader could handle the file.\nload ::\n       (ResourceLoader :< cls, Object :< cls) =>\n       cls ->\n         GodotString -> Maybe GodotString -> Maybe Bool -> IO Resource\nload cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2,\n       maybe (VariantBool False) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceLoader_load (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceLoader \"load\"\n           '[GodotString, Maybe GodotString, Maybe Bool]\n           (IO Resource)\n         where\n        nodeMethod = Godot.Core.ResourceLoader.load\n\n{-# NOINLINE bindResourceLoader_load_interactive #-}\n\n-- | Starts loading a resource interactively. The returned @ResourceInteractiveLoader@ object allows to load with high granularity, calling its @method ResourceInteractiveLoader.poll@ method successively to load chunks.\n--   \t\t\t\tAn optional @type_hint@ can be used to further specify the @Resource@ type that should be handled by the @ResourceFormatLoader@.\nbindResourceLoader_load_interactive :: MethodBind\nbindResourceLoader_load_interactive\n  = unsafePerformIO $\n      withCString \"_ResourceLoader\" $\n        \\ clsNamePtr ->\n          withCString \"load_interactive\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Starts loading a resource interactively. The returned @ResourceInteractiveLoader@ object allows to load with high granularity, calling its @method ResourceInteractiveLoader.poll@ method successively to load chunks.\n--   \t\t\t\tAn optional @type_hint@ can be used to further specify the @Resource@ type that should be handled by the @ResourceFormatLoader@.\nload_interactive ::\n                   (ResourceLoader :< cls, Object :< cls) =>\n                   cls ->\n                     GodotString -> Maybe GodotString -> IO ResourceInteractiveLoader\nload_interactive cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceLoader_load_interactive\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceLoader \"load_interactive\"\n           '[GodotString, Maybe GodotString]\n           (IO ResourceInteractiveLoader)\n         where\n        nodeMethod = Godot.Core.ResourceLoader.load_interactive\n\n{-# NOINLINE bindResourceLoader_set_abort_on_missing_resources #-}\n\n-- | Changes the behavior on missing sub-resources. The default behavior is to abort loading.\nbindResourceLoader_set_abort_on_missing_resources :: MethodBind\nbindResourceLoader_set_abort_on_missing_resources\n  = unsafePerformIO $\n      withCString \"_ResourceLoader\" $\n        \\ clsNamePtr ->\n          withCString \"set_abort_on_missing_resources\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes the behavior on missing sub-resources. The default behavior is to abort loading.\nset_abort_on_missing_resources ::\n                                 (ResourceLoader :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_abort_on_missing_resources cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindResourceLoader_set_abort_on_missing_resources\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceLoader \"set_abort_on_missing_resources\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.ResourceLoader.set_abort_on_missing_resources"
  },
  {
    "path": "src/Godot/Core/ResourcePreloader.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ResourcePreloader\n       (Godot.Core.ResourcePreloader._get_resources,\n        Godot.Core.ResourcePreloader._set_resources,\n        Godot.Core.ResourcePreloader.add_resource,\n        Godot.Core.ResourcePreloader.get_resource,\n        Godot.Core.ResourcePreloader.get_resource_list,\n        Godot.Core.ResourcePreloader.has_resource,\n        Godot.Core.ResourcePreloader.remove_resource,\n        Godot.Core.ResourcePreloader.rename_resource)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\ninstance NodeProperty ResourcePreloader \"resources\" Array 'False\n         where\n        nodeProperty\n          = (_get_resources, wrapDroppingSetter _set_resources, Nothing)\n\n{-# NOINLINE bindResourcePreloader__get_resources #-}\n\nbindResourcePreloader__get_resources :: MethodBind\nbindResourcePreloader__get_resources\n  = unsafePerformIO $\n      withCString \"ResourcePreloader\" $\n        \\ clsNamePtr ->\n          withCString \"_get_resources\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_resources ::\n                 (ResourcePreloader :< cls, Object :< cls) => cls -> IO Array\n_get_resources cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourcePreloader__get_resources\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourcePreloader \"_get_resources\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.ResourcePreloader._get_resources\n\n{-# NOINLINE bindResourcePreloader__set_resources #-}\n\nbindResourcePreloader__set_resources :: MethodBind\nbindResourcePreloader__set_resources\n  = unsafePerformIO $\n      withCString \"ResourcePreloader\" $\n        \\ clsNamePtr ->\n          withCString \"_set_resources\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_resources ::\n                 (ResourcePreloader :< cls, Object :< cls) => cls -> Array -> IO ()\n_set_resources cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourcePreloader__set_resources\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourcePreloader \"_set_resources\" '[Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ResourcePreloader._set_resources\n\n{-# NOINLINE bindResourcePreloader_add_resource #-}\n\n-- | Adds a resource to the preloader with the given @name@. If a resource with the given @name@ already exists, the new resource will be renamed to \"@name@ N\" where N is an incrementing number starting from 2.\nbindResourcePreloader_add_resource :: MethodBind\nbindResourcePreloader_add_resource\n  = unsafePerformIO $\n      withCString \"ResourcePreloader\" $\n        \\ clsNamePtr ->\n          withCString \"add_resource\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a resource to the preloader with the given @name@. If a resource with the given @name@ already exists, the new resource will be renamed to \"@name@ N\" where N is an incrementing number starting from 2.\nadd_resource ::\n               (ResourcePreloader :< cls, Object :< cls) =>\n               cls -> GodotString -> Resource -> IO ()\nadd_resource cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourcePreloader_add_resource\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourcePreloader \"add_resource\"\n           '[GodotString, Resource]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ResourcePreloader.add_resource\n\n{-# NOINLINE bindResourcePreloader_get_resource #-}\n\n-- | Returns the resource associated to @name@.\nbindResourcePreloader_get_resource :: MethodBind\nbindResourcePreloader_get_resource\n  = unsafePerformIO $\n      withCString \"ResourcePreloader\" $\n        \\ clsNamePtr ->\n          withCString \"get_resource\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the resource associated to @name@.\nget_resource ::\n               (ResourcePreloader :< cls, Object :< cls) =>\n               cls -> GodotString -> IO Resource\nget_resource cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourcePreloader_get_resource\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourcePreloader \"get_resource\" '[GodotString]\n           (IO Resource)\n         where\n        nodeMethod = Godot.Core.ResourcePreloader.get_resource\n\n{-# NOINLINE bindResourcePreloader_get_resource_list #-}\n\n-- | Returns the list of resources inside the preloader.\nbindResourcePreloader_get_resource_list :: MethodBind\nbindResourcePreloader_get_resource_list\n  = unsafePerformIO $\n      withCString \"ResourcePreloader\" $\n        \\ clsNamePtr ->\n          withCString \"get_resource_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the list of resources inside the preloader.\nget_resource_list ::\n                    (ResourcePreloader :< cls, Object :< cls) =>\n                    cls -> IO PoolStringArray\nget_resource_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourcePreloader_get_resource_list\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourcePreloader \"get_resource_list\" '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.ResourcePreloader.get_resource_list\n\n{-# NOINLINE bindResourcePreloader_has_resource #-}\n\n-- | Returns @true@ if the preloader contains a resource associated to @name@.\nbindResourcePreloader_has_resource :: MethodBind\nbindResourcePreloader_has_resource\n  = unsafePerformIO $\n      withCString \"ResourcePreloader\" $\n        \\ clsNamePtr ->\n          withCString \"has_resource\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the preloader contains a resource associated to @name@.\nhas_resource ::\n               (ResourcePreloader :< cls, Object :< cls) =>\n               cls -> GodotString -> IO Bool\nhas_resource cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourcePreloader_has_resource\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourcePreloader \"has_resource\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ResourcePreloader.has_resource\n\n{-# NOINLINE bindResourcePreloader_remove_resource #-}\n\n-- | Removes the resource associated to @name@ from the preloader.\nbindResourcePreloader_remove_resource :: MethodBind\nbindResourcePreloader_remove_resource\n  = unsafePerformIO $\n      withCString \"ResourcePreloader\" $\n        \\ clsNamePtr ->\n          withCString \"remove_resource\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the resource associated to @name@ from the preloader.\nremove_resource ::\n                  (ResourcePreloader :< cls, Object :< cls) =>\n                  cls -> GodotString -> IO ()\nremove_resource cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourcePreloader_remove_resource\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourcePreloader \"remove_resource\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ResourcePreloader.remove_resource\n\n{-# NOINLINE bindResourcePreloader_rename_resource #-}\n\n-- | Renames a resource inside the preloader from @name@ to @newname@.\nbindResourcePreloader_rename_resource :: MethodBind\nbindResourcePreloader_rename_resource\n  = unsafePerformIO $\n      withCString \"ResourcePreloader\" $\n        \\ clsNamePtr ->\n          withCString \"rename_resource\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Renames a resource inside the preloader from @name@ to @newname@.\nrename_resource ::\n                  (ResourcePreloader :< cls, Object :< cls) =>\n                  cls -> GodotString -> GodotString -> IO ()\nrename_resource cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourcePreloader_rename_resource\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourcePreloader \"rename_resource\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ResourcePreloader.rename_resource"
  },
  {
    "path": "src/Godot/Core/ResourceSaver.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ResourceSaver\n       (Godot.Core.ResourceSaver._FLAG_REPLACE_SUBRESOURCE_PATHS,\n        Godot.Core.ResourceSaver._FLAG_RELATIVE_PATHS,\n        Godot.Core.ResourceSaver._FLAG_OMIT_EDITOR_PROPERTIES,\n        Godot.Core.ResourceSaver._FLAG_SAVE_BIG_ENDIAN,\n        Godot.Core.ResourceSaver._FLAG_CHANGE_PATH,\n        Godot.Core.ResourceSaver._FLAG_COMPRESS,\n        Godot.Core.ResourceSaver._FLAG_BUNDLE_RESOURCES,\n        Godot.Core.ResourceSaver.get_recognized_extensions,\n        Godot.Core.ResourceSaver.save)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n_FLAG_REPLACE_SUBRESOURCE_PATHS :: Int\n_FLAG_REPLACE_SUBRESOURCE_PATHS = 64\n\n_FLAG_RELATIVE_PATHS :: Int\n_FLAG_RELATIVE_PATHS = 1\n\n_FLAG_OMIT_EDITOR_PROPERTIES :: Int\n_FLAG_OMIT_EDITOR_PROPERTIES = 8\n\n_FLAG_SAVE_BIG_ENDIAN :: Int\n_FLAG_SAVE_BIG_ENDIAN = 16\n\n_FLAG_CHANGE_PATH :: Int\n_FLAG_CHANGE_PATH = 4\n\n_FLAG_COMPRESS :: Int\n_FLAG_COMPRESS = 32\n\n_FLAG_BUNDLE_RESOURCES :: Int\n_FLAG_BUNDLE_RESOURCES = 2\n\n{-# NOINLINE bindResourceSaver_get_recognized_extensions #-}\n\n-- | Returns the list of extensions available for saving a resource of a given type.\nbindResourceSaver_get_recognized_extensions :: MethodBind\nbindResourceSaver_get_recognized_extensions\n  = unsafePerformIO $\n      withCString \"_ResourceSaver\" $\n        \\ clsNamePtr ->\n          withCString \"get_recognized_extensions\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the list of extensions available for saving a resource of a given type.\nget_recognized_extensions ::\n                            (ResourceSaver :< cls, Object :< cls) =>\n                            cls -> Resource -> IO PoolStringArray\nget_recognized_extensions cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceSaver_get_recognized_extensions\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceSaver \"get_recognized_extensions\"\n           '[Resource]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.ResourceSaver.get_recognized_extensions\n\n{-# NOINLINE bindResourceSaver_save #-}\n\n-- | Saves a resource to disk to the given path, using a @ResourceFormatSaver@ that recognizes the resource object.\n--   \t\t\t\tThe @flags@ bitmask can be specified to customize the save behavior.\n--   \t\t\t\tReturns @OK@ on success.\nbindResourceSaver_save :: MethodBind\nbindResourceSaver_save\n  = unsafePerformIO $\n      withCString \"_ResourceSaver\" $\n        \\ clsNamePtr ->\n          withCString \"save\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Saves a resource to disk to the given path, using a @ResourceFormatSaver@ that recognizes the resource object.\n--   \t\t\t\tThe @flags@ bitmask can be specified to customize the save behavior.\n--   \t\t\t\tReturns @OK@ on success.\nsave ::\n       (ResourceSaver :< cls, Object :< cls) =>\n       cls -> GodotString -> Resource -> Maybe Int -> IO Int\nsave cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (0)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindResourceSaver_save (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ResourceSaver \"save\"\n           '[GodotString, Resource, Maybe Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ResourceSaver.save"
  },
  {
    "path": "src/Godot/Core/RichTextEffect.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.RichTextEffect\n       (Godot.Core.RichTextEffect._process_custom_fx) where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n{-# NOINLINE bindRichTextEffect__process_custom_fx #-}\n\n-- | Override this method to modify properties in @char_fx@. The method must return @true@ if the character could be transformed successfully. If the method returns @false@, it will skip transformation to avoid displaying broken text.\nbindRichTextEffect__process_custom_fx :: MethodBind\nbindRichTextEffect__process_custom_fx\n  = unsafePerformIO $\n      withCString \"RichTextEffect\" $\n        \\ clsNamePtr ->\n          withCString \"_process_custom_fx\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to modify properties in @char_fx@. The method must return @true@ if the character could be transformed successfully. If the method returns @false@, it will skip transformation to avoid displaying broken text.\n_process_custom_fx ::\n                     (RichTextEffect :< cls, Object :< cls) =>\n                     cls -> CharFXTransform -> IO Bool\n_process_custom_fx cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextEffect__process_custom_fx\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextEffect \"_process_custom_fx\"\n           '[CharFXTransform]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RichTextEffect._process_custom_fx"
  },
  {
    "path": "src/Godot/Core/RichTextLabel.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.RichTextLabel\n       (Godot.Core.RichTextLabel._ITEM_UNDERLINE,\n        Godot.Core.RichTextLabel._ITEM_RAINBOW,\n        Godot.Core.RichTextLabel._ITEM_CUSTOMFX,\n        Godot.Core.RichTextLabel._ITEM_META,\n        Godot.Core.RichTextLabel._ITEM_ALIGN,\n        Godot.Core.RichTextLabel._ITEM_TORNADO,\n        Godot.Core.RichTextLabel._ITEM_FRAME,\n        Godot.Core.RichTextLabel._ALIGN_RIGHT,\n        Godot.Core.RichTextLabel._ALIGN_FILL,\n        Godot.Core.RichTextLabel._ITEM_STRIKETHROUGH,\n        Godot.Core.RichTextLabel._ITEM_SHAKE,\n        Godot.Core.RichTextLabel._ITEM_FONT,\n        Godot.Core.RichTextLabel._ITEM_FADE,\n        Godot.Core.RichTextLabel._ITEM_TABLE,\n        Godot.Core.RichTextLabel._ITEM_WAVE,\n        Godot.Core.RichTextLabel._ITEM_COLOR,\n        Godot.Core.RichTextLabel._ITEM_TEXT,\n        Godot.Core.RichTextLabel._ITEM_IMAGE,\n        Godot.Core.RichTextLabel._LIST_NUMBERS,\n        Godot.Core.RichTextLabel._LIST_LETTERS,\n        Godot.Core.RichTextLabel._ITEM_LIST,\n        Godot.Core.RichTextLabel._ITEM_NEWLINE,\n        Godot.Core.RichTextLabel._ITEM_INDENT,\n        Godot.Core.RichTextLabel._LIST_DOTS,\n        Godot.Core.RichTextLabel._ALIGN_LEFT,\n        Godot.Core.RichTextLabel._ALIGN_CENTER,\n        Godot.Core.RichTextLabel.sig_meta_clicked,\n        Godot.Core.RichTextLabel.sig_meta_hover_ended,\n        Godot.Core.RichTextLabel.sig_meta_hover_started,\n        Godot.Core.RichTextLabel._gui_input,\n        Godot.Core.RichTextLabel._scroll_changed,\n        Godot.Core.RichTextLabel.add_image,\n        Godot.Core.RichTextLabel.add_text,\n        Godot.Core.RichTextLabel.append_bbcode,\n        Godot.Core.RichTextLabel.clear,\n        Godot.Core.RichTextLabel.get_bbcode,\n        Godot.Core.RichTextLabel.get_content_height,\n        Godot.Core.RichTextLabel.get_effects,\n        Godot.Core.RichTextLabel.get_line_count,\n        Godot.Core.RichTextLabel.get_percent_visible,\n        Godot.Core.RichTextLabel.get_tab_size,\n        Godot.Core.RichTextLabel.get_text,\n        Godot.Core.RichTextLabel.get_total_character_count,\n        Godot.Core.RichTextLabel.get_v_scroll,\n        Godot.Core.RichTextLabel.get_visible_characters,\n        Godot.Core.RichTextLabel.get_visible_line_count,\n        Godot.Core.RichTextLabel.install_effect,\n        Godot.Core.RichTextLabel.is_meta_underlined,\n        Godot.Core.RichTextLabel.is_overriding_selected_font_color,\n        Godot.Core.RichTextLabel.is_scroll_active,\n        Godot.Core.RichTextLabel.is_scroll_following,\n        Godot.Core.RichTextLabel.is_selection_enabled,\n        Godot.Core.RichTextLabel.is_using_bbcode,\n        Godot.Core.RichTextLabel.newline,\n        Godot.Core.RichTextLabel.parse_bbcode,\n        Godot.Core.RichTextLabel.parse_expressions_for_values,\n        Godot.Core.RichTextLabel.pop, Godot.Core.RichTextLabel.push_align,\n        Godot.Core.RichTextLabel.push_bold,\n        Godot.Core.RichTextLabel.push_bold_italics,\n        Godot.Core.RichTextLabel.push_cell,\n        Godot.Core.RichTextLabel.push_color,\n        Godot.Core.RichTextLabel.push_font,\n        Godot.Core.RichTextLabel.push_indent,\n        Godot.Core.RichTextLabel.push_italics,\n        Godot.Core.RichTextLabel.push_list,\n        Godot.Core.RichTextLabel.push_meta,\n        Godot.Core.RichTextLabel.push_mono,\n        Godot.Core.RichTextLabel.push_normal,\n        Godot.Core.RichTextLabel.push_strikethrough,\n        Godot.Core.RichTextLabel.push_table,\n        Godot.Core.RichTextLabel.push_underline,\n        Godot.Core.RichTextLabel.remove_line,\n        Godot.Core.RichTextLabel.scroll_to_line,\n        Godot.Core.RichTextLabel.set_bbcode,\n        Godot.Core.RichTextLabel.set_effects,\n        Godot.Core.RichTextLabel.set_meta_underline,\n        Godot.Core.RichTextLabel.set_override_selected_font_color,\n        Godot.Core.RichTextLabel.set_percent_visible,\n        Godot.Core.RichTextLabel.set_scroll_active,\n        Godot.Core.RichTextLabel.set_scroll_follow,\n        Godot.Core.RichTextLabel.set_selection_enabled,\n        Godot.Core.RichTextLabel.set_tab_size,\n        Godot.Core.RichTextLabel.set_table_column_expand,\n        Godot.Core.RichTextLabel.set_text,\n        Godot.Core.RichTextLabel.set_use_bbcode,\n        Godot.Core.RichTextLabel.set_visible_characters)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()\n\n_ITEM_UNDERLINE :: Int\n_ITEM_UNDERLINE = 6\n\n_ITEM_RAINBOW :: Int\n_ITEM_RAINBOW = 16\n\n_ITEM_CUSTOMFX :: Int\n_ITEM_CUSTOMFX = 18\n\n_ITEM_META :: Int\n_ITEM_META = 17\n\n_ITEM_ALIGN :: Int\n_ITEM_ALIGN = 8\n\n_ITEM_TORNADO :: Int\n_ITEM_TORNADO = 15\n\n_ITEM_FRAME :: Int\n_ITEM_FRAME = 0\n\n_ALIGN_RIGHT :: Int\n_ALIGN_RIGHT = 2\n\n_ALIGN_FILL :: Int\n_ALIGN_FILL = 3\n\n_ITEM_STRIKETHROUGH :: Int\n_ITEM_STRIKETHROUGH = 7\n\n_ITEM_SHAKE :: Int\n_ITEM_SHAKE = 13\n\n_ITEM_FONT :: Int\n_ITEM_FONT = 4\n\n_ITEM_FADE :: Int\n_ITEM_FADE = 12\n\n_ITEM_TABLE :: Int\n_ITEM_TABLE = 11\n\n_ITEM_WAVE :: Int\n_ITEM_WAVE = 14\n\n_ITEM_COLOR :: Int\n_ITEM_COLOR = 5\n\n_ITEM_TEXT :: Int\n_ITEM_TEXT = 1\n\n_ITEM_IMAGE :: Int\n_ITEM_IMAGE = 2\n\n_LIST_NUMBERS :: Int\n_LIST_NUMBERS = 0\n\n_LIST_LETTERS :: Int\n_LIST_LETTERS = 1\n\n_ITEM_LIST :: Int\n_ITEM_LIST = 10\n\n_ITEM_NEWLINE :: Int\n_ITEM_NEWLINE = 3\n\n_ITEM_INDENT :: Int\n_ITEM_INDENT = 9\n\n_LIST_DOTS :: Int\n_LIST_DOTS = 2\n\n_ALIGN_LEFT :: Int\n_ALIGN_LEFT = 0\n\n_ALIGN_CENTER :: Int\n_ALIGN_CENTER = 1\n\n-- | Triggered when the user clicks on content between meta tags. If the meta is defined in text, e.g. @@url={\"data\"=\"hi\"}@hi@/url@@, then the parameter for this signal will be a @String@ type. If a particular type or an object is desired, the @method push_meta@ method must be used to manually insert the data into the tag stack.\nsig_meta_clicked :: Godot.Internal.Dispatch.Signal RichTextLabel\nsig_meta_clicked = Godot.Internal.Dispatch.Signal \"meta_clicked\"\n\ninstance NodeSignal RichTextLabel \"meta_clicked\" '[GodotVariant]\n\n-- | Triggers when the mouse exits a meta tag.\nsig_meta_hover_ended ::\n                     Godot.Internal.Dispatch.Signal RichTextLabel\nsig_meta_hover_ended\n  = Godot.Internal.Dispatch.Signal \"meta_hover_ended\"\n\ninstance NodeSignal RichTextLabel \"meta_hover_ended\"\n           '[GodotVariant]\n\n-- | Triggers when the mouse enters a meta tag.\nsig_meta_hover_started ::\n                       Godot.Internal.Dispatch.Signal RichTextLabel\nsig_meta_hover_started\n  = Godot.Internal.Dispatch.Signal \"meta_hover_started\"\n\ninstance NodeSignal RichTextLabel \"meta_hover_started\"\n           '[GodotVariant]\n\ninstance NodeProperty RichTextLabel \"bbcode_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_using_bbcode, wrapDroppingSetter set_use_bbcode, Nothing)\n\ninstance NodeProperty RichTextLabel \"bbcode_text\" GodotString\n           'False\n         where\n        nodeProperty = (get_bbcode, wrapDroppingSetter set_bbcode, Nothing)\n\ninstance NodeProperty RichTextLabel \"custom_effects\" Array 'False\n         where\n        nodeProperty\n          = (get_effects, wrapDroppingSetter set_effects, Nothing)\n\ninstance NodeProperty RichTextLabel \"meta_underlined\" Bool 'False\n         where\n        nodeProperty\n          = (is_meta_underlined, wrapDroppingSetter set_meta_underline,\n             Nothing)\n\ninstance NodeProperty RichTextLabel \"override_selected_font_color\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (is_overriding_selected_font_color,\n             wrapDroppingSetter set_override_selected_font_color, Nothing)\n\ninstance NodeProperty RichTextLabel \"percent_visible\" Float 'False\n         where\n        nodeProperty\n          = (get_percent_visible, wrapDroppingSetter set_percent_visible,\n             Nothing)\n\ninstance NodeProperty RichTextLabel \"scroll_active\" Bool 'False\n         where\n        nodeProperty\n          = (is_scroll_active, wrapDroppingSetter set_scroll_active, Nothing)\n\ninstance NodeProperty RichTextLabel \"scroll_following\" Bool 'False\n         where\n        nodeProperty\n          = (is_scroll_following, wrapDroppingSetter set_scroll_follow,\n             Nothing)\n\ninstance NodeProperty RichTextLabel \"selection_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_selection_enabled, wrapDroppingSetter set_selection_enabled,\n             Nothing)\n\ninstance NodeProperty RichTextLabel \"tab_size\" Int 'False where\n        nodeProperty\n          = (get_tab_size, wrapDroppingSetter set_tab_size, Nothing)\n\ninstance NodeProperty RichTextLabel \"text\" GodotString 'False where\n        nodeProperty = (get_text, wrapDroppingSetter set_text, Nothing)\n\ninstance NodeProperty RichTextLabel \"visible_characters\" Int 'False\n         where\n        nodeProperty\n          = (get_visible_characters,\n             wrapDroppingSetter set_visible_characters, Nothing)\n\n{-# NOINLINE bindRichTextLabel__gui_input #-}\n\nbindRichTextLabel__gui_input :: MethodBind\nbindRichTextLabel__gui_input\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (RichTextLabel :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel__gui_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"_gui_input\" '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel._gui_input\n\n{-# NOINLINE bindRichTextLabel__scroll_changed #-}\n\nbindRichTextLabel__scroll_changed :: MethodBind\nbindRichTextLabel__scroll_changed\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"_scroll_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_scroll_changed ::\n                  (RichTextLabel :< cls, Object :< cls) => cls -> Float -> IO ()\n_scroll_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel__scroll_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"_scroll_changed\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel._scroll_changed\n\n{-# NOINLINE bindRichTextLabel_add_image #-}\n\n-- | Adds an image's opening and closing tags to the tag stack, optionally providing a @width@ and @height@ to resize the image.\n--   \t\t\t\tIf @width@ or @height@ is set to 0, the image size will be adjusted in order to keep the original aspect ratio.\nbindRichTextLabel_add_image :: MethodBind\nbindRichTextLabel_add_image\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"add_image\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an image's opening and closing tags to the tag stack, optionally providing a @width@ and @height@ to resize the image.\n--   \t\t\t\tIf @width@ or @height@ is set to 0, the image size will be adjusted in order to keep the original aspect ratio.\nadd_image ::\n            (RichTextLabel :< cls, Object :< cls) =>\n            cls -> Texture -> Maybe Int -> Maybe Int -> IO ()\nadd_image cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (0)) toVariant arg2,\n       maybe (VariantInt (0)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_add_image (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"add_image\"\n           '[Texture, Maybe Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.add_image\n\n{-# NOINLINE bindRichTextLabel_add_text #-}\n\n-- | Adds raw non-BBCode-parsed text to the tag stack.\nbindRichTextLabel_add_text :: MethodBind\nbindRichTextLabel_add_text\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"add_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds raw non-BBCode-parsed text to the tag stack.\nadd_text ::\n           (RichTextLabel :< cls, Object :< cls) =>\n           cls -> GodotString -> IO ()\nadd_text cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_add_text (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"add_text\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.add_text\n\n{-# NOINLINE bindRichTextLabel_append_bbcode #-}\n\n-- | Parses @bbcode@ and adds tags to the tag stack as needed. Returns the result of the parsing, @OK@ if successful.\nbindRichTextLabel_append_bbcode :: MethodBind\nbindRichTextLabel_append_bbcode\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"append_bbcode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Parses @bbcode@ and adds tags to the tag stack as needed. Returns the result of the parsing, @OK@ if successful.\nappend_bbcode ::\n                (RichTextLabel :< cls, Object :< cls) =>\n                cls -> GodotString -> IO Int\nappend_bbcode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_append_bbcode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"append_bbcode\" '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.append_bbcode\n\n{-# NOINLINE bindRichTextLabel_clear #-}\n\n-- | Clears the tag stack and sets @bbcode_text@ to an empty string.\nbindRichTextLabel_clear :: MethodBind\nbindRichTextLabel_clear\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears the tag stack and sets @bbcode_text@ to an empty string.\nclear :: (RichTextLabel :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_clear (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.RichTextLabel.clear\n\n{-# NOINLINE bindRichTextLabel_get_bbcode #-}\n\n-- | The label's text in BBCode format. Is not representative of manual modifications to the internal tag stack. Erases changes made by other methods when edited.\n--   \t\t\t__Note:__ It is unadvised to use @+=@ operator with @bbcode_text@ (e.g. @bbcode_text += \"some string\"@) as it replaces the whole text and can cause slowdowns. Use @method append_bbcode@ for adding text instead.\nbindRichTextLabel_get_bbcode :: MethodBind\nbindRichTextLabel_get_bbcode\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"get_bbcode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The label's text in BBCode format. Is not representative of manual modifications to the internal tag stack. Erases changes made by other methods when edited.\n--   \t\t\t__Note:__ It is unadvised to use @+=@ operator with @bbcode_text@ (e.g. @bbcode_text += \"some string\"@) as it replaces the whole text and can cause slowdowns. Use @method append_bbcode@ for adding text instead.\nget_bbcode ::\n             (RichTextLabel :< cls, Object :< cls) => cls -> IO GodotString\nget_bbcode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_get_bbcode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"get_bbcode\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.get_bbcode\n\n{-# NOINLINE bindRichTextLabel_get_content_height #-}\n\n-- | Returns the height of the content.\nbindRichTextLabel_get_content_height :: MethodBind\nbindRichTextLabel_get_content_height\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"get_content_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the height of the content.\nget_content_height ::\n                     (RichTextLabel :< cls, Object :< cls) => cls -> IO Int\nget_content_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_get_content_height\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"get_content_height\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.get_content_height\n\n{-# NOINLINE bindRichTextLabel_get_effects #-}\n\n-- | The currently installed custom effects. This is an array of @RichTextEffect@s.\n--   \t\t\tTo add a custom effect, it's more convenient to use @method install_effect@.\nbindRichTextLabel_get_effects :: MethodBind\nbindRichTextLabel_get_effects\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"get_effects\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The currently installed custom effects. This is an array of @RichTextEffect@s.\n--   \t\t\tTo add a custom effect, it's more convenient to use @method install_effect@.\nget_effects ::\n              (RichTextLabel :< cls, Object :< cls) => cls -> IO Array\nget_effects cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_get_effects (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"get_effects\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.get_effects\n\n{-# NOINLINE bindRichTextLabel_get_line_count #-}\n\n-- | Returns the total number of newlines in the tag stack's text tags. Considers wrapped text as one line.\nbindRichTextLabel_get_line_count :: MethodBind\nbindRichTextLabel_get_line_count\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"get_line_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the total number of newlines in the tag stack's text tags. Considers wrapped text as one line.\nget_line_count ::\n                 (RichTextLabel :< cls, Object :< cls) => cls -> IO Int\nget_line_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_get_line_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"get_line_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.get_line_count\n\n{-# NOINLINE bindRichTextLabel_get_percent_visible #-}\n\n-- | The range of characters to display, as a @float@ between 0.0 and 1.0. When assigned an out of range value, it's the same as assigning 1.0.\n--   \t\t\t__Note:__ Setting this property updates @visible_characters@ based on current @method get_total_character_count@.\nbindRichTextLabel_get_percent_visible :: MethodBind\nbindRichTextLabel_get_percent_visible\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"get_percent_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The range of characters to display, as a @float@ between 0.0 and 1.0. When assigned an out of range value, it's the same as assigning 1.0.\n--   \t\t\t__Note:__ Setting this property updates @visible_characters@ based on current @method get_total_character_count@.\nget_percent_visible ::\n                      (RichTextLabel :< cls, Object :< cls) => cls -> IO Float\nget_percent_visible cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_get_percent_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"get_percent_visible\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.get_percent_visible\n\n{-# NOINLINE bindRichTextLabel_get_tab_size #-}\n\n-- | The number of spaces associated with a single tab length. Does not affect @\\t@ in text tags, only indent tags.\nbindRichTextLabel_get_tab_size :: MethodBind\nbindRichTextLabel_get_tab_size\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"get_tab_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of spaces associated with a single tab length. Does not affect @\\t@ in text tags, only indent tags.\nget_tab_size ::\n               (RichTextLabel :< cls, Object :< cls) => cls -> IO Int\nget_tab_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_get_tab_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"get_tab_size\" '[] (IO Int) where\n        nodeMethod = Godot.Core.RichTextLabel.get_tab_size\n\n{-# NOINLINE bindRichTextLabel_get_text #-}\n\n-- | The raw text of the label.\n--   \t\t\tWhen set, clears the tag stack and adds a raw text tag to the top of it. Does not parse BBCodes. Does not modify @bbcode_text@.\nbindRichTextLabel_get_text :: MethodBind\nbindRichTextLabel_get_text\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"get_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The raw text of the label.\n--   \t\t\tWhen set, clears the tag stack and adds a raw text tag to the top of it. Does not parse BBCodes. Does not modify @bbcode_text@.\nget_text ::\n           (RichTextLabel :< cls, Object :< cls) => cls -> IO GodotString\nget_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_get_text (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"get_text\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.get_text\n\n{-# NOINLINE bindRichTextLabel_get_total_character_count #-}\n\n-- | Returns the total number of characters from text tags. Does not include BBCodes.\nbindRichTextLabel_get_total_character_count :: MethodBind\nbindRichTextLabel_get_total_character_count\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"get_total_character_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the total number of characters from text tags. Does not include BBCodes.\nget_total_character_count ::\n                            (RichTextLabel :< cls, Object :< cls) => cls -> IO Int\nget_total_character_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_get_total_character_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"get_total_character_count\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.get_total_character_count\n\n{-# NOINLINE bindRichTextLabel_get_v_scroll #-}\n\n-- | Returns the vertical scrollbar.\nbindRichTextLabel_get_v_scroll :: MethodBind\nbindRichTextLabel_get_v_scroll\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"get_v_scroll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the vertical scrollbar.\nget_v_scroll ::\n               (RichTextLabel :< cls, Object :< cls) => cls -> IO VScrollBar\nget_v_scroll cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_get_v_scroll (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"get_v_scroll\" '[]\n           (IO VScrollBar)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.get_v_scroll\n\n{-# NOINLINE bindRichTextLabel_get_visible_characters #-}\n\n-- | The restricted number of characters to display in the label. If @-1@, all characters will be displayed.\nbindRichTextLabel_get_visible_characters :: MethodBind\nbindRichTextLabel_get_visible_characters\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"get_visible_characters\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The restricted number of characters to display in the label. If @-1@, all characters will be displayed.\nget_visible_characters ::\n                         (RichTextLabel :< cls, Object :< cls) => cls -> IO Int\nget_visible_characters cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_get_visible_characters\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"get_visible_characters\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.get_visible_characters\n\n{-# NOINLINE bindRichTextLabel_get_visible_line_count #-}\n\n-- | Returns the number of visible lines.\nbindRichTextLabel_get_visible_line_count :: MethodBind\nbindRichTextLabel_get_visible_line_count\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"get_visible_line_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of visible lines.\nget_visible_line_count ::\n                         (RichTextLabel :< cls, Object :< cls) => cls -> IO Int\nget_visible_line_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_get_visible_line_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"get_visible_line_count\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.get_visible_line_count\n\n{-# NOINLINE bindRichTextLabel_install_effect #-}\n\n-- | Installs a custom effect. @effect@ should be a valid @RichTextEffect@.\nbindRichTextLabel_install_effect :: MethodBind\nbindRichTextLabel_install_effect\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"install_effect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Installs a custom effect. @effect@ should be a valid @RichTextEffect@.\ninstall_effect ::\n                 (RichTextLabel :< cls, Object :< cls) =>\n                 cls -> GodotVariant -> IO ()\ninstall_effect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_install_effect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"install_effect\" '[GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.install_effect\n\n{-# NOINLINE bindRichTextLabel_is_meta_underlined #-}\n\n-- | If @true@, the label underlines meta tags such as @@url@{text}@/url@@.\nbindRichTextLabel_is_meta_underlined :: MethodBind\nbindRichTextLabel_is_meta_underlined\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"is_meta_underlined\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the label underlines meta tags such as @@url@{text}@/url@@.\nis_meta_underlined ::\n                     (RichTextLabel :< cls, Object :< cls) => cls -> IO Bool\nis_meta_underlined cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_is_meta_underlined\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"is_meta_underlined\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.is_meta_underlined\n\n{-# NOINLINE bindRichTextLabel_is_overriding_selected_font_color\n             #-}\n\n-- | If @true@, the label uses the custom font color.\nbindRichTextLabel_is_overriding_selected_font_color :: MethodBind\nbindRichTextLabel_is_overriding_selected_font_color\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"is_overriding_selected_font_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the label uses the custom font color.\nis_overriding_selected_font_color ::\n                                    (RichTextLabel :< cls, Object :< cls) => cls -> IO Bool\nis_overriding_selected_font_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindRichTextLabel_is_overriding_selected_font_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel\n           \"is_overriding_selected_font_color\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.RichTextLabel.is_overriding_selected_font_color\n\n{-# NOINLINE bindRichTextLabel_is_scroll_active #-}\n\n-- | If @true@, the scrollbar is visible. Setting this to @false@ does not block scrolling completely. See @method scroll_to_line@.\nbindRichTextLabel_is_scroll_active :: MethodBind\nbindRichTextLabel_is_scroll_active\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"is_scroll_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the scrollbar is visible. Setting this to @false@ does not block scrolling completely. See @method scroll_to_line@.\nis_scroll_active ::\n                   (RichTextLabel :< cls, Object :< cls) => cls -> IO Bool\nis_scroll_active cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_is_scroll_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"is_scroll_active\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.is_scroll_active\n\n{-# NOINLINE bindRichTextLabel_is_scroll_following #-}\n\n-- | If @true@, the window scrolls down to display new content automatically.\nbindRichTextLabel_is_scroll_following :: MethodBind\nbindRichTextLabel_is_scroll_following\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"is_scroll_following\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the window scrolls down to display new content automatically.\nis_scroll_following ::\n                      (RichTextLabel :< cls, Object :< cls) => cls -> IO Bool\nis_scroll_following cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_is_scroll_following\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"is_scroll_following\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.is_scroll_following\n\n{-# NOINLINE bindRichTextLabel_is_selection_enabled #-}\n\n-- | If @true@, the label allows text selection.\nbindRichTextLabel_is_selection_enabled :: MethodBind\nbindRichTextLabel_is_selection_enabled\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"is_selection_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the label allows text selection.\nis_selection_enabled ::\n                       (RichTextLabel :< cls, Object :< cls) => cls -> IO Bool\nis_selection_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_is_selection_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"is_selection_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.is_selection_enabled\n\n{-# NOINLINE bindRichTextLabel_is_using_bbcode #-}\n\n-- | If @true@, the label uses BBCode formatting.\nbindRichTextLabel_is_using_bbcode :: MethodBind\nbindRichTextLabel_is_using_bbcode\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_bbcode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the label uses BBCode formatting.\nis_using_bbcode ::\n                  (RichTextLabel :< cls, Object :< cls) => cls -> IO Bool\nis_using_bbcode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_is_using_bbcode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"is_using_bbcode\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.is_using_bbcode\n\n{-# NOINLINE bindRichTextLabel_newline #-}\n\n-- | Adds a newline tag to the tag stack.\nbindRichTextLabel_newline :: MethodBind\nbindRichTextLabel_newline\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"newline\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a newline tag to the tag stack.\nnewline :: (RichTextLabel :< cls, Object :< cls) => cls -> IO ()\nnewline cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_newline (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"newline\" '[] (IO ()) where\n        nodeMethod = Godot.Core.RichTextLabel.newline\n\n{-# NOINLINE bindRichTextLabel_parse_bbcode #-}\n\n-- | The assignment version of @method append_bbcode@. Clears the tag stack and inserts the new content. Returns @OK@ if parses @bbcode@ successfully.\nbindRichTextLabel_parse_bbcode :: MethodBind\nbindRichTextLabel_parse_bbcode\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"parse_bbcode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The assignment version of @method append_bbcode@. Clears the tag stack and inserts the new content. Returns @OK@ if parses @bbcode@ successfully.\nparse_bbcode ::\n               (RichTextLabel :< cls, Object :< cls) =>\n               cls -> GodotString -> IO Int\nparse_bbcode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_parse_bbcode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"parse_bbcode\" '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.parse_bbcode\n\n{-# NOINLINE bindRichTextLabel_parse_expressions_for_values #-}\n\n-- | Parses BBCode parameter @expressions@ into a dictionary.\nbindRichTextLabel_parse_expressions_for_values :: MethodBind\nbindRichTextLabel_parse_expressions_for_values\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"parse_expressions_for_values\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Parses BBCode parameter @expressions@ into a dictionary.\nparse_expressions_for_values ::\n                               (RichTextLabel :< cls, Object :< cls) =>\n                               cls -> PoolStringArray -> IO Dictionary\nparse_expressions_for_values cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindRichTextLabel_parse_expressions_for_values\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"parse_expressions_for_values\"\n           '[PoolStringArray]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.parse_expressions_for_values\n\n{-# NOINLINE bindRichTextLabel_pop #-}\n\n-- | Terminates the current tag. Use after @push_*@ methods to close BBCodes manually. Does not need to follow @add_*@ methods.\nbindRichTextLabel_pop :: MethodBind\nbindRichTextLabel_pop\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"pop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Terminates the current tag. Use after @push_*@ methods to close BBCodes manually. Does not need to follow @add_*@ methods.\npop :: (RichTextLabel :< cls, Object :< cls) => cls -> IO ()\npop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_pop (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"pop\" '[] (IO ()) where\n        nodeMethod = Godot.Core.RichTextLabel.pop\n\n{-# NOINLINE bindRichTextLabel_push_align #-}\n\n-- | Adds an @@align@@ tag based on the given @align@ value. See @enum Align@ for possible values.\nbindRichTextLabel_push_align :: MethodBind\nbindRichTextLabel_push_align\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"push_align\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an @@align@@ tag based on the given @align@ value. See @enum Align@ for possible values.\npush_align ::\n             (RichTextLabel :< cls, Object :< cls) => cls -> Int -> IO ()\npush_align cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_push_align (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"push_align\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.RichTextLabel.push_align\n\n{-# NOINLINE bindRichTextLabel_push_bold #-}\n\n-- | Adds a @@font@@ tag with a bold font to the tag stack. This is the same as adding a @__@ tag if not currently in a @@i@@ tag.\nbindRichTextLabel_push_bold :: MethodBind\nbindRichTextLabel_push_bold\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"push_bold\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @@font@@ tag with a bold font to the tag stack. This is the same as adding a @__@ tag if not currently in a @@i@@ tag.\npush_bold :: (RichTextLabel :< cls, Object :< cls) => cls -> IO ()\npush_bold cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_push_bold (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"push_bold\" '[] (IO ()) where\n        nodeMethod = Godot.Core.RichTextLabel.push_bold\n\n{-# NOINLINE bindRichTextLabel_push_bold_italics #-}\n\n-- | Adds a @@font@@ tag with a bold italics font to the tag stack.\nbindRichTextLabel_push_bold_italics :: MethodBind\nbindRichTextLabel_push_bold_italics\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"push_bold_italics\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @@font@@ tag with a bold italics font to the tag stack.\npush_bold_italics ::\n                    (RichTextLabel :< cls, Object :< cls) => cls -> IO ()\npush_bold_italics cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_push_bold_italics\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"push_bold_italics\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.push_bold_italics\n\n{-# NOINLINE bindRichTextLabel_push_cell #-}\n\n-- | Adds a @@cell@@ tag to the tag stack. Must be inside a @@table@@ tag. See @method push_table@ for details.\nbindRichTextLabel_push_cell :: MethodBind\nbindRichTextLabel_push_cell\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"push_cell\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @@cell@@ tag to the tag stack. Must be inside a @@table@@ tag. See @method push_table@ for details.\npush_cell :: (RichTextLabel :< cls, Object :< cls) => cls -> IO ()\npush_cell cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_push_cell (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"push_cell\" '[] (IO ()) where\n        nodeMethod = Godot.Core.RichTextLabel.push_cell\n\n{-# NOINLINE bindRichTextLabel_push_color #-}\n\n-- | Adds a @@color@@ tag to the tag stack.\nbindRichTextLabel_push_color :: MethodBind\nbindRichTextLabel_push_color\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"push_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @@color@@ tag to the tag stack.\npush_color ::\n             (RichTextLabel :< cls, Object :< cls) => cls -> Color -> IO ()\npush_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_push_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"push_color\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.push_color\n\n{-# NOINLINE bindRichTextLabel_push_font #-}\n\n-- | Adds a @@font@@ tag to the tag stack. Overrides default fonts for its duration.\nbindRichTextLabel_push_font :: MethodBind\nbindRichTextLabel_push_font\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"push_font\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @@font@@ tag to the tag stack. Overrides default fonts for its duration.\npush_font ::\n            (RichTextLabel :< cls, Object :< cls) => cls -> Font -> IO ()\npush_font cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_push_font (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"push_font\" '[Font] (IO ()) where\n        nodeMethod = Godot.Core.RichTextLabel.push_font\n\n{-# NOINLINE bindRichTextLabel_push_indent #-}\n\n-- | Adds an @@indent@@ tag to the tag stack. Multiplies @level@ by current @tab_size@ to determine new margin length.\nbindRichTextLabel_push_indent :: MethodBind\nbindRichTextLabel_push_indent\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"push_indent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an @@indent@@ tag to the tag stack. Multiplies @level@ by current @tab_size@ to determine new margin length.\npush_indent ::\n              (RichTextLabel :< cls, Object :< cls) => cls -> Int -> IO ()\npush_indent cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_push_indent (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"push_indent\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.push_indent\n\n{-# NOINLINE bindRichTextLabel_push_italics #-}\n\n-- | Adds a @@font@@ tag with a italics font to the tag stack. This is the same as adding a @@i@@ tag if not currently in a @__@ tag.\nbindRichTextLabel_push_italics :: MethodBind\nbindRichTextLabel_push_italics\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"push_italics\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @@font@@ tag with a italics font to the tag stack. This is the same as adding a @@i@@ tag if not currently in a @__@ tag.\npush_italics ::\n               (RichTextLabel :< cls, Object :< cls) => cls -> IO ()\npush_italics cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_push_italics (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"push_italics\" '[] (IO ()) where\n        nodeMethod = Godot.Core.RichTextLabel.push_italics\n\n{-# NOINLINE bindRichTextLabel_push_list #-}\n\n-- | Adds a @@list@@ tag to the tag stack. Similar to the BBCodes @@ol@@ or @@ul@@, but supports more list types. Not fully implemented!\nbindRichTextLabel_push_list :: MethodBind\nbindRichTextLabel_push_list\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"push_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @@list@@ tag to the tag stack. Similar to the BBCodes @@ol@@ or @@ul@@, but supports more list types. Not fully implemented!\npush_list ::\n            (RichTextLabel :< cls, Object :< cls) => cls -> Int -> IO ()\npush_list cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_push_list (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"push_list\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.RichTextLabel.push_list\n\n{-# NOINLINE bindRichTextLabel_push_meta #-}\n\n-- | Adds a @@meta@@ tag to the tag stack. Similar to the BBCode @@url=something@{text}@/url@@, but supports non-@String@ metadata types.\nbindRichTextLabel_push_meta :: MethodBind\nbindRichTextLabel_push_meta\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"push_meta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @@meta@@ tag to the tag stack. Similar to the BBCode @@url=something@{text}@/url@@, but supports non-@String@ metadata types.\npush_meta ::\n            (RichTextLabel :< cls, Object :< cls) =>\n            cls -> GodotVariant -> IO ()\npush_meta cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_push_meta (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"push_meta\" '[GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.push_meta\n\n{-# NOINLINE bindRichTextLabel_push_mono #-}\n\n-- | Adds a @@font@@ tag with a monospace font to the tag stack.\nbindRichTextLabel_push_mono :: MethodBind\nbindRichTextLabel_push_mono\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"push_mono\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @@font@@ tag with a monospace font to the tag stack.\npush_mono :: (RichTextLabel :< cls, Object :< cls) => cls -> IO ()\npush_mono cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_push_mono (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"push_mono\" '[] (IO ()) where\n        nodeMethod = Godot.Core.RichTextLabel.push_mono\n\n{-# NOINLINE bindRichTextLabel_push_normal #-}\n\n-- | Adds a @@font@@ tag with a normal font to the tag stack.\nbindRichTextLabel_push_normal :: MethodBind\nbindRichTextLabel_push_normal\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"push_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @@font@@ tag with a normal font to the tag stack.\npush_normal ::\n              (RichTextLabel :< cls, Object :< cls) => cls -> IO ()\npush_normal cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_push_normal (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"push_normal\" '[] (IO ()) where\n        nodeMethod = Godot.Core.RichTextLabel.push_normal\n\n{-# NOINLINE bindRichTextLabel_push_strikethrough #-}\n\n-- | Adds a @@s@@ tag to the tag stack.\nbindRichTextLabel_push_strikethrough :: MethodBind\nbindRichTextLabel_push_strikethrough\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"push_strikethrough\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @@s@@ tag to the tag stack.\npush_strikethrough ::\n                     (RichTextLabel :< cls, Object :< cls) => cls -> IO ()\npush_strikethrough cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_push_strikethrough\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"push_strikethrough\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.push_strikethrough\n\n{-# NOINLINE bindRichTextLabel_push_table #-}\n\n-- | Adds a @@table=columns@@ tag to the tag stack.\nbindRichTextLabel_push_table :: MethodBind\nbindRichTextLabel_push_table\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"push_table\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @@table=columns@@ tag to the tag stack.\npush_table ::\n             (RichTextLabel :< cls, Object :< cls) => cls -> Int -> IO ()\npush_table cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_push_table (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"push_table\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.RichTextLabel.push_table\n\n{-# NOINLINE bindRichTextLabel_push_underline #-}\n\n-- | Adds a @@u@@ tag to the tag stack.\nbindRichTextLabel_push_underline :: MethodBind\nbindRichTextLabel_push_underline\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"push_underline\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @@u@@ tag to the tag stack.\npush_underline ::\n                 (RichTextLabel :< cls, Object :< cls) => cls -> IO ()\npush_underline cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_push_underline\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"push_underline\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.push_underline\n\n{-# NOINLINE bindRichTextLabel_remove_line #-}\n\n-- | Removes a line of content from the label. Returns @true@ if the line exists.\n--   \t\t\t\tThe @line@ argument is the index of the line to remove, it can take values in the interval @@0, get_line_count() - 1@@.\nbindRichTextLabel_remove_line :: MethodBind\nbindRichTextLabel_remove_line\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"remove_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a line of content from the label. Returns @true@ if the line exists.\n--   \t\t\t\tThe @line@ argument is the index of the line to remove, it can take values in the interval @@0, get_line_count() - 1@@.\nremove_line ::\n              (RichTextLabel :< cls, Object :< cls) => cls -> Int -> IO Bool\nremove_line cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_remove_line (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"remove_line\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.RichTextLabel.remove_line\n\n{-# NOINLINE bindRichTextLabel_scroll_to_line #-}\n\n-- | Scrolls the window's top line to match @line@.\nbindRichTextLabel_scroll_to_line :: MethodBind\nbindRichTextLabel_scroll_to_line\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"scroll_to_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Scrolls the window's top line to match @line@.\nscroll_to_line ::\n                 (RichTextLabel :< cls, Object :< cls) => cls -> Int -> IO ()\nscroll_to_line cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_scroll_to_line\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"scroll_to_line\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.scroll_to_line\n\n{-# NOINLINE bindRichTextLabel_set_bbcode #-}\n\n-- | The label's text in BBCode format. Is not representative of manual modifications to the internal tag stack. Erases changes made by other methods when edited.\n--   \t\t\t__Note:__ It is unadvised to use @+=@ operator with @bbcode_text@ (e.g. @bbcode_text += \"some string\"@) as it replaces the whole text and can cause slowdowns. Use @method append_bbcode@ for adding text instead.\nbindRichTextLabel_set_bbcode :: MethodBind\nbindRichTextLabel_set_bbcode\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"set_bbcode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The label's text in BBCode format. Is not representative of manual modifications to the internal tag stack. Erases changes made by other methods when edited.\n--   \t\t\t__Note:__ It is unadvised to use @+=@ operator with @bbcode_text@ (e.g. @bbcode_text += \"some string\"@) as it replaces the whole text and can cause slowdowns. Use @method append_bbcode@ for adding text instead.\nset_bbcode ::\n             (RichTextLabel :< cls, Object :< cls) =>\n             cls -> GodotString -> IO ()\nset_bbcode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_set_bbcode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"set_bbcode\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.set_bbcode\n\n{-# NOINLINE bindRichTextLabel_set_effects #-}\n\n-- | The currently installed custom effects. This is an array of @RichTextEffect@s.\n--   \t\t\tTo add a custom effect, it's more convenient to use @method install_effect@.\nbindRichTextLabel_set_effects :: MethodBind\nbindRichTextLabel_set_effects\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"set_effects\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The currently installed custom effects. This is an array of @RichTextEffect@s.\n--   \t\t\tTo add a custom effect, it's more convenient to use @method install_effect@.\nset_effects ::\n              (RichTextLabel :< cls, Object :< cls) => cls -> Array -> IO ()\nset_effects cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_set_effects (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"set_effects\" '[Array] (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.set_effects\n\n{-# NOINLINE bindRichTextLabel_set_meta_underline #-}\n\n-- | If @true@, the label underlines meta tags such as @@url@{text}@/url@@.\nbindRichTextLabel_set_meta_underline :: MethodBind\nbindRichTextLabel_set_meta_underline\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"set_meta_underline\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the label underlines meta tags such as @@url@{text}@/url@@.\nset_meta_underline ::\n                     (RichTextLabel :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_meta_underline cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_set_meta_underline\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"set_meta_underline\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.set_meta_underline\n\n{-# NOINLINE bindRichTextLabel_set_override_selected_font_color #-}\n\n-- | If @true@, the label uses the custom font color.\nbindRichTextLabel_set_override_selected_font_color :: MethodBind\nbindRichTextLabel_set_override_selected_font_color\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"set_override_selected_font_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the label uses the custom font color.\nset_override_selected_font_color ::\n                                   (RichTextLabel :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_override_selected_font_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindRichTextLabel_set_override_selected_font_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel\n           \"set_override_selected_font_color\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.RichTextLabel.set_override_selected_font_color\n\n{-# NOINLINE bindRichTextLabel_set_percent_visible #-}\n\n-- | The range of characters to display, as a @float@ between 0.0 and 1.0. When assigned an out of range value, it's the same as assigning 1.0.\n--   \t\t\t__Note:__ Setting this property updates @visible_characters@ based on current @method get_total_character_count@.\nbindRichTextLabel_set_percent_visible :: MethodBind\nbindRichTextLabel_set_percent_visible\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"set_percent_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The range of characters to display, as a @float@ between 0.0 and 1.0. When assigned an out of range value, it's the same as assigning 1.0.\n--   \t\t\t__Note:__ Setting this property updates @visible_characters@ based on current @method get_total_character_count@.\nset_percent_visible ::\n                      (RichTextLabel :< cls, Object :< cls) => cls -> Float -> IO ()\nset_percent_visible cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_set_percent_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"set_percent_visible\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.set_percent_visible\n\n{-# NOINLINE bindRichTextLabel_set_scroll_active #-}\n\n-- | If @true@, the scrollbar is visible. Setting this to @false@ does not block scrolling completely. See @method scroll_to_line@.\nbindRichTextLabel_set_scroll_active :: MethodBind\nbindRichTextLabel_set_scroll_active\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"set_scroll_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the scrollbar is visible. Setting this to @false@ does not block scrolling completely. See @method scroll_to_line@.\nset_scroll_active ::\n                    (RichTextLabel :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_scroll_active cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_set_scroll_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"set_scroll_active\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.set_scroll_active\n\n{-# NOINLINE bindRichTextLabel_set_scroll_follow #-}\n\n-- | If @true@, the window scrolls down to display new content automatically.\nbindRichTextLabel_set_scroll_follow :: MethodBind\nbindRichTextLabel_set_scroll_follow\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"set_scroll_follow\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the window scrolls down to display new content automatically.\nset_scroll_follow ::\n                    (RichTextLabel :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_scroll_follow cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_set_scroll_follow\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"set_scroll_follow\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.set_scroll_follow\n\n{-# NOINLINE bindRichTextLabel_set_selection_enabled #-}\n\n-- | If @true@, the label allows text selection.\nbindRichTextLabel_set_selection_enabled :: MethodBind\nbindRichTextLabel_set_selection_enabled\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"set_selection_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the label allows text selection.\nset_selection_enabled ::\n                        (RichTextLabel :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_selection_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_set_selection_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"set_selection_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.set_selection_enabled\n\n{-# NOINLINE bindRichTextLabel_set_tab_size #-}\n\n-- | The number of spaces associated with a single tab length. Does not affect @\\t@ in text tags, only indent tags.\nbindRichTextLabel_set_tab_size :: MethodBind\nbindRichTextLabel_set_tab_size\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"set_tab_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of spaces associated with a single tab length. Does not affect @\\t@ in text tags, only indent tags.\nset_tab_size ::\n               (RichTextLabel :< cls, Object :< cls) => cls -> Int -> IO ()\nset_tab_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_set_tab_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"set_tab_size\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.set_tab_size\n\n{-# NOINLINE bindRichTextLabel_set_table_column_expand #-}\n\n-- | Edits the selected column's expansion options. If @expand@ is @true@, the column expands in proportion to its expansion ratio versus the other columns' ratios.\n--   \t\t\t\tFor example, 2 columns with ratios 3 and 4 plus 70 pixels in available width would expand 30 and 40 pixels, respectively.\n--   \t\t\t\tIf @expand@ is @false@, the column will not contribute to the total ratio.\nbindRichTextLabel_set_table_column_expand :: MethodBind\nbindRichTextLabel_set_table_column_expand\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"set_table_column_expand\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Edits the selected column's expansion options. If @expand@ is @true@, the column expands in proportion to its expansion ratio versus the other columns' ratios.\n--   \t\t\t\tFor example, 2 columns with ratios 3 and 4 plus 70 pixels in available width would expand 30 and 40 pixels, respectively.\n--   \t\t\t\tIf @expand@ is @false@, the column will not contribute to the total ratio.\nset_table_column_expand ::\n                          (RichTextLabel :< cls, Object :< cls) =>\n                          cls -> Int -> Bool -> Int -> IO ()\nset_table_column_expand cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_set_table_column_expand\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"set_table_column_expand\"\n           '[Int, Bool, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.set_table_column_expand\n\n{-# NOINLINE bindRichTextLabel_set_text #-}\n\n-- | The raw text of the label.\n--   \t\t\tWhen set, clears the tag stack and adds a raw text tag to the top of it. Does not parse BBCodes. Does not modify @bbcode_text@.\nbindRichTextLabel_set_text :: MethodBind\nbindRichTextLabel_set_text\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"set_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The raw text of the label.\n--   \t\t\tWhen set, clears the tag stack and adds a raw text tag to the top of it. Does not parse BBCodes. Does not modify @bbcode_text@.\nset_text ::\n           (RichTextLabel :< cls, Object :< cls) =>\n           cls -> GodotString -> IO ()\nset_text cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_set_text (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"set_text\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.set_text\n\n{-# NOINLINE bindRichTextLabel_set_use_bbcode #-}\n\n-- | If @true@, the label uses BBCode formatting.\nbindRichTextLabel_set_use_bbcode :: MethodBind\nbindRichTextLabel_set_use_bbcode\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_bbcode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the label uses BBCode formatting.\nset_use_bbcode ::\n                 (RichTextLabel :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_bbcode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_set_use_bbcode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"set_use_bbcode\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.set_use_bbcode\n\n{-# NOINLINE bindRichTextLabel_set_visible_characters #-}\n\n-- | The restricted number of characters to display in the label. If @-1@, all characters will be displayed.\nbindRichTextLabel_set_visible_characters :: MethodBind\nbindRichTextLabel_set_visible_characters\n  = unsafePerformIO $\n      withCString \"RichTextLabel\" $\n        \\ clsNamePtr ->\n          withCString \"set_visible_characters\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The restricted number of characters to display in the label. If @-1@, all characters will be displayed.\nset_visible_characters ::\n                         (RichTextLabel :< cls, Object :< cls) => cls -> Int -> IO ()\nset_visible_characters cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRichTextLabel_set_visible_characters\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RichTextLabel \"set_visible_characters\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RichTextLabel.set_visible_characters"
  },
  {
    "path": "src/Godot/Core/RigidBody.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.RigidBody\n       (Godot.Core.RigidBody._MODE_STATIC,\n        Godot.Core.RigidBody._MODE_KINEMATIC,\n        Godot.Core.RigidBody._MODE_RIGID,\n        Godot.Core.RigidBody._MODE_CHARACTER,\n        Godot.Core.RigidBody.sig_body_entered,\n        Godot.Core.RigidBody.sig_body_exited,\n        Godot.Core.RigidBody.sig_body_shape_entered,\n        Godot.Core.RigidBody.sig_body_shape_exited,\n        Godot.Core.RigidBody.sig_sleeping_state_changed,\n        Godot.Core.RigidBody._body_enter_tree,\n        Godot.Core.RigidBody._body_exit_tree,\n        Godot.Core.RigidBody._direct_state_changed,\n        Godot.Core.RigidBody._integrate_forces,\n        Godot.Core.RigidBody._reload_physics_characteristics,\n        Godot.Core.RigidBody.add_central_force,\n        Godot.Core.RigidBody.add_force, Godot.Core.RigidBody.add_torque,\n        Godot.Core.RigidBody.apply_central_impulse,\n        Godot.Core.RigidBody.apply_impulse,\n        Godot.Core.RigidBody.apply_torque_impulse,\n        Godot.Core.RigidBody.get_angular_damp,\n        Godot.Core.RigidBody.get_angular_velocity,\n        Godot.Core.RigidBody.get_axis_lock,\n        Godot.Core.RigidBody.get_bounce,\n        Godot.Core.RigidBody.get_colliding_bodies,\n        Godot.Core.RigidBody.get_friction,\n        Godot.Core.RigidBody.get_gravity_scale,\n        Godot.Core.RigidBody.get_linear_damp,\n        Godot.Core.RigidBody.get_linear_velocity,\n        Godot.Core.RigidBody.get_mass,\n        Godot.Core.RigidBody.get_max_contacts_reported,\n        Godot.Core.RigidBody.get_mode,\n        Godot.Core.RigidBody.get_physics_material_override,\n        Godot.Core.RigidBody.get_weight,\n        Godot.Core.RigidBody.is_able_to_sleep,\n        Godot.Core.RigidBody.is_contact_monitor_enabled,\n        Godot.Core.RigidBody.is_sleeping,\n        Godot.Core.RigidBody.is_using_continuous_collision_detection,\n        Godot.Core.RigidBody.is_using_custom_integrator,\n        Godot.Core.RigidBody.set_angular_damp,\n        Godot.Core.RigidBody.set_angular_velocity,\n        Godot.Core.RigidBody.set_axis_lock,\n        Godot.Core.RigidBody.set_axis_velocity,\n        Godot.Core.RigidBody.set_bounce,\n        Godot.Core.RigidBody.set_can_sleep,\n        Godot.Core.RigidBody.set_contact_monitor,\n        Godot.Core.RigidBody.set_friction,\n        Godot.Core.RigidBody.set_gravity_scale,\n        Godot.Core.RigidBody.set_linear_damp,\n        Godot.Core.RigidBody.set_linear_velocity,\n        Godot.Core.RigidBody.set_mass,\n        Godot.Core.RigidBody.set_max_contacts_reported,\n        Godot.Core.RigidBody.set_mode,\n        Godot.Core.RigidBody.set_physics_material_override,\n        Godot.Core.RigidBody.set_sleeping,\n        Godot.Core.RigidBody.set_use_continuous_collision_detection,\n        Godot.Core.RigidBody.set_use_custom_integrator,\n        Godot.Core.RigidBody.set_weight)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PhysicsBody()\n\n_MODE_STATIC :: Int\n_MODE_STATIC = 1\n\n_MODE_KINEMATIC :: Int\n_MODE_KINEMATIC = 3\n\n_MODE_RIGID :: Int\n_MODE_RIGID = 0\n\n_MODE_CHARACTER :: Int\n_MODE_CHARACTER = 2\n\n-- | Emitted when a body enters into contact with this one. Requires @contact_monitor@ to be set to @true@ and @contacts_reported@ to be set high enough to detect all the collisions.\nsig_body_entered :: Godot.Internal.Dispatch.Signal RigidBody\nsig_body_entered = Godot.Internal.Dispatch.Signal \"body_entered\"\n\ninstance NodeSignal RigidBody \"body_entered\" '[Node]\n\n-- | Emitted when a body shape exits contact with this one. Requires @contact_monitor@ to be set to @true@ and @contacts_reported@ to be set high enough to detect all the collisions.\nsig_body_exited :: Godot.Internal.Dispatch.Signal RigidBody\nsig_body_exited = Godot.Internal.Dispatch.Signal \"body_exited\"\n\ninstance NodeSignal RigidBody \"body_exited\" '[Node]\n\n-- | Emitted when a body enters into contact with this one. Requires @contact_monitor@ to be set to @true@ and @contacts_reported@ to be set high enough to detect all the collisions.\n--   \t\t\t\tThis signal not only receives the body that collided with this one, but also its @RID@ (@body_id@), the shape index from the colliding body (@body_shape@), and the shape index from this body (@local_shape@) the other body collided with.\nsig_body_shape_entered :: Godot.Internal.Dispatch.Signal RigidBody\nsig_body_shape_entered\n  = Godot.Internal.Dispatch.Signal \"body_shape_entered\"\n\ninstance NodeSignal RigidBody \"body_shape_entered\"\n           '[Int, Node, Int, Int]\n\n-- | Emitted when a body shape exits contact with this one. Requires @contact_monitor@ to be set to @true@ and @contacts_reported@ to be set high enough to detect all the collisions.\n--   \t\t\t\tThis signal not only receives the body that stopped colliding with this one, but also its @RID@ (@body_id@), the shape index from the colliding body (@body_shape@), and the shape index from this body (@local_shape@) the other body stopped colliding with.\nsig_body_shape_exited :: Godot.Internal.Dispatch.Signal RigidBody\nsig_body_shape_exited\n  = Godot.Internal.Dispatch.Signal \"body_shape_exited\"\n\ninstance NodeSignal RigidBody \"body_shape_exited\"\n           '[Int, Node, Int, Int]\n\n-- | Emitted when the physics engine changes the body's sleeping state.\n--   \t\t\t\t__Note:__ Changing the value @sleeping@ will not trigger this signal. It is only emitted if the sleeping state is changed by the physics engine or @emit_signal(\"sleeping_state_changed\")@ is used.\nsig_sleeping_state_changed ::\n                           Godot.Internal.Dispatch.Signal RigidBody\nsig_sleeping_state_changed\n  = Godot.Internal.Dispatch.Signal \"sleeping_state_changed\"\n\ninstance NodeSignal RigidBody \"sleeping_state_changed\" '[]\n\ninstance NodeProperty RigidBody \"angular_damp\" Float 'False where\n        nodeProperty\n          = (get_angular_damp, wrapDroppingSetter set_angular_damp, Nothing)\n\ninstance NodeProperty RigidBody \"angular_velocity\" Vector3 'False\n         where\n        nodeProperty\n          = (get_angular_velocity, wrapDroppingSetter set_angular_velocity,\n             Nothing)\n\ninstance NodeProperty RigidBody \"axis_lock_angular_x\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_axis_lock,\n             wrapIndexedSetter 8 set_axis_lock, Nothing)\n\ninstance NodeProperty RigidBody \"axis_lock_angular_y\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 16 get_axis_lock,\n             wrapIndexedSetter 16 set_axis_lock, Nothing)\n\ninstance NodeProperty RigidBody \"axis_lock_angular_z\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 32 get_axis_lock,\n             wrapIndexedSetter 32 set_axis_lock, Nothing)\n\ninstance NodeProperty RigidBody \"axis_lock_linear_x\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_axis_lock,\n             wrapIndexedSetter 1 set_axis_lock, Nothing)\n\ninstance NodeProperty RigidBody \"axis_lock_linear_y\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_axis_lock,\n             wrapIndexedSetter 2 set_axis_lock, Nothing)\n\ninstance NodeProperty RigidBody \"axis_lock_linear_z\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_axis_lock,\n             wrapIndexedSetter 4 set_axis_lock, Nothing)\n\ninstance NodeProperty RigidBody \"bounce\" Float 'False where\n        nodeProperty = (get_bounce, wrapDroppingSetter set_bounce, Nothing)\n\ninstance NodeProperty RigidBody \"can_sleep\" Bool 'False where\n        nodeProperty\n          = (is_able_to_sleep, wrapDroppingSetter set_can_sleep, Nothing)\n\ninstance NodeProperty RigidBody \"contact_monitor\" Bool 'False where\n        nodeProperty\n          = (is_contact_monitor_enabled,\n             wrapDroppingSetter set_contact_monitor, Nothing)\n\ninstance NodeProperty RigidBody \"contacts_reported\" Int 'False\n         where\n        nodeProperty\n          = (get_max_contacts_reported,\n             wrapDroppingSetter set_max_contacts_reported, Nothing)\n\ninstance NodeProperty RigidBody \"continuous_cd\" Bool 'False where\n        nodeProperty\n          = (is_using_continuous_collision_detection,\n             wrapDroppingSetter set_use_continuous_collision_detection, Nothing)\n\ninstance NodeProperty RigidBody \"custom_integrator\" Bool 'False\n         where\n        nodeProperty\n          = (is_using_custom_integrator,\n             wrapDroppingSetter set_use_custom_integrator, Nothing)\n\ninstance NodeProperty RigidBody \"friction\" Float 'False where\n        nodeProperty\n          = (get_friction, wrapDroppingSetter set_friction, Nothing)\n\ninstance NodeProperty RigidBody \"gravity_scale\" Float 'False where\n        nodeProperty\n          = (get_gravity_scale, wrapDroppingSetter set_gravity_scale,\n             Nothing)\n\ninstance NodeProperty RigidBody \"linear_damp\" Float 'False where\n        nodeProperty\n          = (get_linear_damp, wrapDroppingSetter set_linear_damp, Nothing)\n\ninstance NodeProperty RigidBody \"linear_velocity\" Vector3 'False\n         where\n        nodeProperty\n          = (get_linear_velocity, wrapDroppingSetter set_linear_velocity,\n             Nothing)\n\ninstance NodeProperty RigidBody \"mass\" Float 'False where\n        nodeProperty = (get_mass, wrapDroppingSetter set_mass, Nothing)\n\ninstance NodeProperty RigidBody \"mode\" Int 'False where\n        nodeProperty = (get_mode, wrapDroppingSetter set_mode, Nothing)\n\ninstance NodeProperty RigidBody \"physics_material_override\"\n           PhysicsMaterial\n           'False\n         where\n        nodeProperty\n          = (get_physics_material_override,\n             wrapDroppingSetter set_physics_material_override, Nothing)\n\ninstance NodeProperty RigidBody \"sleeping\" Bool 'False where\n        nodeProperty\n          = (is_sleeping, wrapDroppingSetter set_sleeping, Nothing)\n\ninstance NodeProperty RigidBody \"weight\" Float 'False where\n        nodeProperty = (get_weight, wrapDroppingSetter set_weight, Nothing)\n\n{-# NOINLINE bindRigidBody__body_enter_tree #-}\n\nbindRigidBody__body_enter_tree :: MethodBind\nbindRigidBody__body_enter_tree\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"_body_enter_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_body_enter_tree ::\n                   (RigidBody :< cls, Object :< cls) => cls -> Int -> IO ()\n_body_enter_tree cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody__body_enter_tree (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"_body_enter_tree\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody._body_enter_tree\n\n{-# NOINLINE bindRigidBody__body_exit_tree #-}\n\nbindRigidBody__body_exit_tree :: MethodBind\nbindRigidBody__body_exit_tree\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"_body_exit_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_body_exit_tree ::\n                  (RigidBody :< cls, Object :< cls) => cls -> Int -> IO ()\n_body_exit_tree cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody__body_exit_tree (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"_body_exit_tree\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody._body_exit_tree\n\n{-# NOINLINE bindRigidBody__direct_state_changed #-}\n\nbindRigidBody__direct_state_changed :: MethodBind\nbindRigidBody__direct_state_changed\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"_direct_state_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_direct_state_changed ::\n                        (RigidBody :< cls, Object :< cls) => cls -> Object -> IO ()\n_direct_state_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody__direct_state_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"_direct_state_changed\" '[Object]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody._direct_state_changed\n\n{-# NOINLINE bindRigidBody__integrate_forces #-}\n\n-- | Called during physics processing, allowing you to read and safely modify the simulation state for the object. By default, it works in addition to the usual physics behavior, but the @custom_integrator@ property allows you to disable the default behavior and do fully custom force integration for a body.\nbindRigidBody__integrate_forces :: MethodBind\nbindRigidBody__integrate_forces\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"_integrate_forces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called during physics processing, allowing you to read and safely modify the simulation state for the object. By default, it works in addition to the usual physics behavior, but the @custom_integrator@ property allows you to disable the default behavior and do fully custom force integration for a body.\n_integrate_forces ::\n                    (RigidBody :< cls, Object :< cls) =>\n                    cls -> PhysicsDirectBodyState -> IO ()\n_integrate_forces cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody__integrate_forces (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"_integrate_forces\"\n           '[PhysicsDirectBodyState]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody._integrate_forces\n\n{-# NOINLINE bindRigidBody__reload_physics_characteristics #-}\n\nbindRigidBody__reload_physics_characteristics :: MethodBind\nbindRigidBody__reload_physics_characteristics\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"_reload_physics_characteristics\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_reload_physics_characteristics ::\n                                  (RigidBody :< cls, Object :< cls) => cls -> IO ()\n_reload_physics_characteristics cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindRigidBody__reload_physics_characteristics\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"_reload_physics_characteristics\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody._reload_physics_characteristics\n\n{-# NOINLINE bindRigidBody_add_central_force #-}\n\n-- | Adds a constant directional force (i.e. acceleration) without affecting rotation.\n--   \t\t\t\tThis is equivalent to @add_force(force, Vector3(0,0,0))@.\nbindRigidBody_add_central_force :: MethodBind\nbindRigidBody_add_central_force\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"add_central_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a constant directional force (i.e. acceleration) without affecting rotation.\n--   \t\t\t\tThis is equivalent to @add_force(force, Vector3(0,0,0))@.\nadd_central_force ::\n                    (RigidBody :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nadd_central_force cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_add_central_force (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"add_central_force\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody.add_central_force\n\n{-# NOINLINE bindRigidBody_add_force #-}\n\n-- | Adds a constant directional force (i.e. acceleration).\n--   \t\t\t\tThe position uses the rotation of the global coordinate system, but is centered at the object's origin.\nbindRigidBody_add_force :: MethodBind\nbindRigidBody_add_force\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"add_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a constant directional force (i.e. acceleration).\n--   \t\t\t\tThe position uses the rotation of the global coordinate system, but is centered at the object's origin.\nadd_force ::\n            (RigidBody :< cls, Object :< cls) =>\n            cls -> Vector3 -> Vector3 -> IO ()\nadd_force cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_add_force (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"add_force\" '[Vector3, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody.add_force\n\n{-# NOINLINE bindRigidBody_add_torque #-}\n\n-- | Adds a constant rotational force (i.e. a motor) without affecting position.\nbindRigidBody_add_torque :: MethodBind\nbindRigidBody_add_torque\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"add_torque\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a constant rotational force (i.e. a motor) without affecting position.\nadd_torque ::\n             (RigidBody :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nadd_torque cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_add_torque (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"add_torque\" '[Vector3] (IO ()) where\n        nodeMethod = Godot.Core.RigidBody.add_torque\n\n{-# NOINLINE bindRigidBody_apply_central_impulse #-}\n\n-- | Applies a directional impulse without affecting rotation.\n--   \t\t\t\tThis is equivalent to @apply_impulse(Vector3(0,0,0), impulse)@.\nbindRigidBody_apply_central_impulse :: MethodBind\nbindRigidBody_apply_central_impulse\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"apply_central_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies a directional impulse without affecting rotation.\n--   \t\t\t\tThis is equivalent to @apply_impulse(Vector3(0,0,0), impulse)@.\napply_central_impulse ::\n                        (RigidBody :< cls, Object :< cls) => cls -> Vector3 -> IO ()\napply_central_impulse cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_apply_central_impulse\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"apply_central_impulse\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody.apply_central_impulse\n\n{-# NOINLINE bindRigidBody_apply_impulse #-}\n\n-- | Applies a positioned impulse to the body. An impulse is time independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason it should only be used when simulating one-time impacts. The position uses the rotation of the global coordinate system, but is centered at the object's origin.\nbindRigidBody_apply_impulse :: MethodBind\nbindRigidBody_apply_impulse\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"apply_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies a positioned impulse to the body. An impulse is time independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason it should only be used when simulating one-time impacts. The position uses the rotation of the global coordinate system, but is centered at the object's origin.\napply_impulse ::\n                (RigidBody :< cls, Object :< cls) =>\n                cls -> Vector3 -> Vector3 -> IO ()\napply_impulse cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_apply_impulse (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"apply_impulse\" '[Vector3, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody.apply_impulse\n\n{-# NOINLINE bindRigidBody_apply_torque_impulse #-}\n\n-- | Applies a torque impulse which will be affected by the body mass and shape. This will rotate the body around the @impulse@ vector passed.\nbindRigidBody_apply_torque_impulse :: MethodBind\nbindRigidBody_apply_torque_impulse\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"apply_torque_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies a torque impulse which will be affected by the body mass and shape. This will rotate the body around the @impulse@ vector passed.\napply_torque_impulse ::\n                       (RigidBody :< cls, Object :< cls) => cls -> Vector3 -> IO ()\napply_torque_impulse cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_apply_torque_impulse\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"apply_torque_impulse\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody.apply_torque_impulse\n\n{-# NOINLINE bindRigidBody_get_angular_damp #-}\n\n-- | Damps RigidBody's rotational forces.\nbindRigidBody_get_angular_damp :: MethodBind\nbindRigidBody_get_angular_damp\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_angular_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Damps RigidBody's rotational forces.\nget_angular_damp ::\n                   (RigidBody :< cls, Object :< cls) => cls -> IO Float\nget_angular_damp cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_get_angular_damp (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"get_angular_damp\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.RigidBody.get_angular_damp\n\n{-# NOINLINE bindRigidBody_get_angular_velocity #-}\n\n-- | RigidBody's rotational velocity.\nbindRigidBody_get_angular_velocity :: MethodBind\nbindRigidBody_get_angular_velocity\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_angular_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | RigidBody's rotational velocity.\nget_angular_velocity ::\n                       (RigidBody :< cls, Object :< cls) => cls -> IO Vector3\nget_angular_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_get_angular_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"get_angular_velocity\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.RigidBody.get_angular_velocity\n\n{-# NOINLINE bindRigidBody_get_axis_lock #-}\n\n-- | Returns @true@ if the specified linear or rotational axis is locked.\nbindRigidBody_get_axis_lock :: MethodBind\nbindRigidBody_get_axis_lock\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_axis_lock\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the specified linear or rotational axis is locked.\nget_axis_lock ::\n                (RigidBody :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_axis_lock cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_get_axis_lock (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"get_axis_lock\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.RigidBody.get_axis_lock\n\n{-# NOINLINE bindRigidBody_get_bounce #-}\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\n--   \t\t\tDeprecated, use @PhysicsMaterial.bounce@ instead via @physics_material_override@.\nbindRigidBody_get_bounce :: MethodBind\nbindRigidBody_get_bounce\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_bounce\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\n--   \t\t\tDeprecated, use @PhysicsMaterial.bounce@ instead via @physics_material_override@.\nget_bounce :: (RigidBody :< cls, Object :< cls) => cls -> IO Float\nget_bounce cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_get_bounce (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"get_bounce\" '[] (IO Float) where\n        nodeMethod = Godot.Core.RigidBody.get_bounce\n\n{-# NOINLINE bindRigidBody_get_colliding_bodies #-}\n\n-- | Returns a list of the bodies colliding with this one. Requires @contact_monitor@ to be set to @true@ and @contacts_reported@ to be set high enough to detect all the collisions.\n--   \t\t\t\t__Note:__ The result of this test is not immediate after moving objects. For performance, list of collisions is updated once per frame and before the physics step. Consider using signals instead.\nbindRigidBody_get_colliding_bodies :: MethodBind\nbindRigidBody_get_colliding_bodies\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_colliding_bodies\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a list of the bodies colliding with this one. Requires @contact_monitor@ to be set to @true@ and @contacts_reported@ to be set high enough to detect all the collisions.\n--   \t\t\t\t__Note:__ The result of this test is not immediate after moving objects. For performance, list of collisions is updated once per frame and before the physics step. Consider using signals instead.\nget_colliding_bodies ::\n                       (RigidBody :< cls, Object :< cls) => cls -> IO Array\nget_colliding_bodies cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_get_colliding_bodies\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"get_colliding_bodies\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.RigidBody.get_colliding_bodies\n\n{-# NOINLINE bindRigidBody_get_friction #-}\n\n-- | The body's friction, from 0 (frictionless) to 1 (max friction).\n--   \t\t\tDeprecated, use @PhysicsMaterial.friction@ instead via @physics_material_override@.\nbindRigidBody_get_friction :: MethodBind\nbindRigidBody_get_friction\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_friction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's friction, from 0 (frictionless) to 1 (max friction).\n--   \t\t\tDeprecated, use @PhysicsMaterial.friction@ instead via @physics_material_override@.\nget_friction ::\n               (RigidBody :< cls, Object :< cls) => cls -> IO Float\nget_friction cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_get_friction (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"get_friction\" '[] (IO Float) where\n        nodeMethod = Godot.Core.RigidBody.get_friction\n\n{-# NOINLINE bindRigidBody_get_gravity_scale #-}\n\n-- | This is multiplied by the global 3D gravity setting found in __Project > Project Settings > Physics > 3d__ to produce RigidBody's gravity. For example, a value of 1 will be normal gravity, 2 will apply double gravity, and 0.5 will apply half gravity to this object.\nbindRigidBody_get_gravity_scale :: MethodBind\nbindRigidBody_get_gravity_scale\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_gravity_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This is multiplied by the global 3D gravity setting found in __Project > Project Settings > Physics > 3d__ to produce RigidBody's gravity. For example, a value of 1 will be normal gravity, 2 will apply double gravity, and 0.5 will apply half gravity to this object.\nget_gravity_scale ::\n                    (RigidBody :< cls, Object :< cls) => cls -> IO Float\nget_gravity_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_get_gravity_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"get_gravity_scale\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.RigidBody.get_gravity_scale\n\n{-# NOINLINE bindRigidBody_get_linear_damp #-}\n\n-- | The body's linear damp. Cannot be less than -1.0. If this value is different from -1.0, any linear damp derived from the world or areas will be overridden.\nbindRigidBody_get_linear_damp :: MethodBind\nbindRigidBody_get_linear_damp\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_linear_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's linear damp. Cannot be less than -1.0. If this value is different from -1.0, any linear damp derived from the world or areas will be overridden.\nget_linear_damp ::\n                  (RigidBody :< cls, Object :< cls) => cls -> IO Float\nget_linear_damp cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_get_linear_damp (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"get_linear_damp\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.RigidBody.get_linear_damp\n\n{-# NOINLINE bindRigidBody_get_linear_velocity #-}\n\n-- | The body's linear velocity. Can be used sporadically, but __don't set this every frame__, because physics may run in another thread and runs at a different granularity. Use @method _integrate_forces@ as your process loop for precise control of the body state.\nbindRigidBody_get_linear_velocity :: MethodBind\nbindRigidBody_get_linear_velocity\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_linear_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's linear velocity. Can be used sporadically, but __don't set this every frame__, because physics may run in another thread and runs at a different granularity. Use @method _integrate_forces@ as your process loop for precise control of the body state.\nget_linear_velocity ::\n                      (RigidBody :< cls, Object :< cls) => cls -> IO Vector3\nget_linear_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_get_linear_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"get_linear_velocity\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.RigidBody.get_linear_velocity\n\n{-# NOINLINE bindRigidBody_get_mass #-}\n\n-- | The body's mass.\nbindRigidBody_get_mass :: MethodBind\nbindRigidBody_get_mass\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_mass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's mass.\nget_mass :: (RigidBody :< cls, Object :< cls) => cls -> IO Float\nget_mass cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_get_mass (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"get_mass\" '[] (IO Float) where\n        nodeMethod = Godot.Core.RigidBody.get_mass\n\n{-# NOINLINE bindRigidBody_get_max_contacts_reported #-}\n\n-- | The maximum number of contacts that will be recorded. Requires @contact_monitor@ to be set to @true@.\n--   \t\t\t__Note:__ The number of contacts is different from the number of collisions. Collisions between parallel edges will result in two contacts (one at each end), and collisions between parallel faces will result in four contacts (one at each corner).\nbindRigidBody_get_max_contacts_reported :: MethodBind\nbindRigidBody_get_max_contacts_reported\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_max_contacts_reported\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum number of contacts that will be recorded. Requires @contact_monitor@ to be set to @true@.\n--   \t\t\t__Note:__ The number of contacts is different from the number of collisions. Collisions between parallel edges will result in two contacts (one at each end), and collisions between parallel faces will result in four contacts (one at each corner).\nget_max_contacts_reported ::\n                            (RigidBody :< cls, Object :< cls) => cls -> IO Int\nget_max_contacts_reported cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_get_max_contacts_reported\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"get_max_contacts_reported\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.RigidBody.get_max_contacts_reported\n\n{-# NOINLINE bindRigidBody_get_mode #-}\n\n-- | The body mode. See @enum Mode@ for possible values.\nbindRigidBody_get_mode :: MethodBind\nbindRigidBody_get_mode\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body mode. See @enum Mode@ for possible values.\nget_mode :: (RigidBody :< cls, Object :< cls) => cls -> IO Int\nget_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_get_mode (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"get_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.RigidBody.get_mode\n\n{-# NOINLINE bindRigidBody_get_physics_material_override #-}\n\n-- | The physics material override for the body.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.\nbindRigidBody_get_physics_material_override :: MethodBind\nbindRigidBody_get_physics_material_override\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_physics_material_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics material override for the body.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.\nget_physics_material_override ::\n                                (RigidBody :< cls, Object :< cls) => cls -> IO PhysicsMaterial\nget_physics_material_override cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_get_physics_material_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"get_physics_material_override\" '[]\n           (IO PhysicsMaterial)\n         where\n        nodeMethod = Godot.Core.RigidBody.get_physics_material_override\n\n{-# NOINLINE bindRigidBody_get_weight #-}\n\n-- | The body's weight based on its mass and the global 3D gravity. Global values are set in __Project > Project Settings > Physics > 3d__.\nbindRigidBody_get_weight :: MethodBind\nbindRigidBody_get_weight\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_weight\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's weight based on its mass and the global 3D gravity. Global values are set in __Project > Project Settings > Physics > 3d__.\nget_weight :: (RigidBody :< cls, Object :< cls) => cls -> IO Float\nget_weight cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_get_weight (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"get_weight\" '[] (IO Float) where\n        nodeMethod = Godot.Core.RigidBody.get_weight\n\n{-# NOINLINE bindRigidBody_is_able_to_sleep #-}\n\n-- | If @true@, the body can enter sleep mode when there is no movement. See @sleeping@.\n--   \t\t\t__Note:__ A RigidBody3D will never enter sleep mode automatically if its @mode@ is @MODE_CHARACTER@. It can still be put to sleep manually by setting its @sleeping@ property to @true@.\nbindRigidBody_is_able_to_sleep :: MethodBind\nbindRigidBody_is_able_to_sleep\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"is_able_to_sleep\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the body can enter sleep mode when there is no movement. See @sleeping@.\n--   \t\t\t__Note:__ A RigidBody3D will never enter sleep mode automatically if its @mode@ is @MODE_CHARACTER@. It can still be put to sleep manually by setting its @sleeping@ property to @true@.\nis_able_to_sleep ::\n                   (RigidBody :< cls, Object :< cls) => cls -> IO Bool\nis_able_to_sleep cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_is_able_to_sleep (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"is_able_to_sleep\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.RigidBody.is_able_to_sleep\n\n{-# NOINLINE bindRigidBody_is_contact_monitor_enabled #-}\n\n-- | If @true@, the RigidBody will emit signals when it collides with another RigidBody. See also @contacts_reported@.\nbindRigidBody_is_contact_monitor_enabled :: MethodBind\nbindRigidBody_is_contact_monitor_enabled\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"is_contact_monitor_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the RigidBody will emit signals when it collides with another RigidBody. See also @contacts_reported@.\nis_contact_monitor_enabled ::\n                             (RigidBody :< cls, Object :< cls) => cls -> IO Bool\nis_contact_monitor_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_is_contact_monitor_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"is_contact_monitor_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RigidBody.is_contact_monitor_enabled\n\n{-# NOINLINE bindRigidBody_is_sleeping #-}\n\n-- | If @true@, the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the @method apply_impulse@ or @method add_force@ methods.\nbindRigidBody_is_sleeping :: MethodBind\nbindRigidBody_is_sleeping\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"is_sleeping\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the @method apply_impulse@ or @method add_force@ methods.\nis_sleeping :: (RigidBody :< cls, Object :< cls) => cls -> IO Bool\nis_sleeping cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_is_sleeping (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"is_sleeping\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.RigidBody.is_sleeping\n\n{-# NOINLINE bindRigidBody_is_using_continuous_collision_detection\n             #-}\n\n-- | If @true@, continuous collision detection is used.\n--   \t\t\tContinuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided. Continuous collision detection is more precise, and misses fewer impacts by small, fast-moving objects. Not using continuous collision detection is faster to compute, but can miss small, fast-moving objects.\nbindRigidBody_is_using_continuous_collision_detection :: MethodBind\nbindRigidBody_is_using_continuous_collision_detection\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_continuous_collision_detection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, continuous collision detection is used.\n--   \t\t\tContinuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided. Continuous collision detection is more precise, and misses fewer impacts by small, fast-moving objects. Not using continuous collision detection is faster to compute, but can miss small, fast-moving objects.\nis_using_continuous_collision_detection ::\n                                          (RigidBody :< cls, Object :< cls) => cls -> IO Bool\nis_using_continuous_collision_detection cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindRigidBody_is_using_continuous_collision_detection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody\n           \"is_using_continuous_collision_detection\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.RigidBody.is_using_continuous_collision_detection\n\n{-# NOINLINE bindRigidBody_is_using_custom_integrator #-}\n\n-- | If @true@, internal force integration will be disabled (like gravity or air friction) for this body. Other than collision response, the body will only move as determined by the @method _integrate_forces@ function, if defined.\nbindRigidBody_is_using_custom_integrator :: MethodBind\nbindRigidBody_is_using_custom_integrator\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_custom_integrator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, internal force integration will be disabled (like gravity or air friction) for this body. Other than collision response, the body will only move as determined by the @method _integrate_forces@ function, if defined.\nis_using_custom_integrator ::\n                             (RigidBody :< cls, Object :< cls) => cls -> IO Bool\nis_using_custom_integrator cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_is_using_custom_integrator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"is_using_custom_integrator\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RigidBody.is_using_custom_integrator\n\n{-# NOINLINE bindRigidBody_set_angular_damp #-}\n\n-- | Damps RigidBody's rotational forces.\nbindRigidBody_set_angular_damp :: MethodBind\nbindRigidBody_set_angular_damp\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_angular_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Damps RigidBody's rotational forces.\nset_angular_damp ::\n                   (RigidBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_angular_damp cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_set_angular_damp (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"set_angular_damp\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody.set_angular_damp\n\n{-# NOINLINE bindRigidBody_set_angular_velocity #-}\n\n-- | RigidBody's rotational velocity.\nbindRigidBody_set_angular_velocity :: MethodBind\nbindRigidBody_set_angular_velocity\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_angular_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | RigidBody's rotational velocity.\nset_angular_velocity ::\n                       (RigidBody :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_angular_velocity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_set_angular_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"set_angular_velocity\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody.set_angular_velocity\n\n{-# NOINLINE bindRigidBody_set_axis_lock #-}\n\n-- | Locks the specified linear or rotational axis.\nbindRigidBody_set_axis_lock :: MethodBind\nbindRigidBody_set_axis_lock\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_axis_lock\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Locks the specified linear or rotational axis.\nset_axis_lock ::\n                (RigidBody :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_axis_lock cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_set_axis_lock (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"set_axis_lock\" '[Int, Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody.set_axis_lock\n\n{-# NOINLINE bindRigidBody_set_axis_velocity #-}\n\n-- | Sets an axis velocity. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior.\nbindRigidBody_set_axis_velocity :: MethodBind\nbindRigidBody_set_axis_velocity\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_axis_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets an axis velocity. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior.\nset_axis_velocity ::\n                    (RigidBody :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_axis_velocity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_set_axis_velocity (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"set_axis_velocity\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody.set_axis_velocity\n\n{-# NOINLINE bindRigidBody_set_bounce #-}\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\n--   \t\t\tDeprecated, use @PhysicsMaterial.bounce@ instead via @physics_material_override@.\nbindRigidBody_set_bounce :: MethodBind\nbindRigidBody_set_bounce\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_bounce\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\n--   \t\t\tDeprecated, use @PhysicsMaterial.bounce@ instead via @physics_material_override@.\nset_bounce ::\n             (RigidBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_bounce cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_set_bounce (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"set_bounce\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.RigidBody.set_bounce\n\n{-# NOINLINE bindRigidBody_set_can_sleep #-}\n\n-- | If @true@, the body can enter sleep mode when there is no movement. See @sleeping@.\n--   \t\t\t__Note:__ A RigidBody3D will never enter sleep mode automatically if its @mode@ is @MODE_CHARACTER@. It can still be put to sleep manually by setting its @sleeping@ property to @true@.\nbindRigidBody_set_can_sleep :: MethodBind\nbindRigidBody_set_can_sleep\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_can_sleep\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the body can enter sleep mode when there is no movement. See @sleeping@.\n--   \t\t\t__Note:__ A RigidBody3D will never enter sleep mode automatically if its @mode@ is @MODE_CHARACTER@. It can still be put to sleep manually by setting its @sleeping@ property to @true@.\nset_can_sleep ::\n                (RigidBody :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_can_sleep cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_set_can_sleep (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"set_can_sleep\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.RigidBody.set_can_sleep\n\n{-# NOINLINE bindRigidBody_set_contact_monitor #-}\n\n-- | If @true@, the RigidBody will emit signals when it collides with another RigidBody. See also @contacts_reported@.\nbindRigidBody_set_contact_monitor :: MethodBind\nbindRigidBody_set_contact_monitor\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_contact_monitor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the RigidBody will emit signals when it collides with another RigidBody. See also @contacts_reported@.\nset_contact_monitor ::\n                      (RigidBody :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_contact_monitor cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_set_contact_monitor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"set_contact_monitor\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody.set_contact_monitor\n\n{-# NOINLINE bindRigidBody_set_friction #-}\n\n-- | The body's friction, from 0 (frictionless) to 1 (max friction).\n--   \t\t\tDeprecated, use @PhysicsMaterial.friction@ instead via @physics_material_override@.\nbindRigidBody_set_friction :: MethodBind\nbindRigidBody_set_friction\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_friction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's friction, from 0 (frictionless) to 1 (max friction).\n--   \t\t\tDeprecated, use @PhysicsMaterial.friction@ instead via @physics_material_override@.\nset_friction ::\n               (RigidBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_friction cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_set_friction (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"set_friction\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.RigidBody.set_friction\n\n{-# NOINLINE bindRigidBody_set_gravity_scale #-}\n\n-- | This is multiplied by the global 3D gravity setting found in __Project > Project Settings > Physics > 3d__ to produce RigidBody's gravity. For example, a value of 1 will be normal gravity, 2 will apply double gravity, and 0.5 will apply half gravity to this object.\nbindRigidBody_set_gravity_scale :: MethodBind\nbindRigidBody_set_gravity_scale\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_gravity_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This is multiplied by the global 3D gravity setting found in __Project > Project Settings > Physics > 3d__ to produce RigidBody's gravity. For example, a value of 1 will be normal gravity, 2 will apply double gravity, and 0.5 will apply half gravity to this object.\nset_gravity_scale ::\n                    (RigidBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_gravity_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_set_gravity_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"set_gravity_scale\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody.set_gravity_scale\n\n{-# NOINLINE bindRigidBody_set_linear_damp #-}\n\n-- | The body's linear damp. Cannot be less than -1.0. If this value is different from -1.0, any linear damp derived from the world or areas will be overridden.\nbindRigidBody_set_linear_damp :: MethodBind\nbindRigidBody_set_linear_damp\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_linear_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's linear damp. Cannot be less than -1.0. If this value is different from -1.0, any linear damp derived from the world or areas will be overridden.\nset_linear_damp ::\n                  (RigidBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_linear_damp cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_set_linear_damp (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"set_linear_damp\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody.set_linear_damp\n\n{-# NOINLINE bindRigidBody_set_linear_velocity #-}\n\n-- | The body's linear velocity. Can be used sporadically, but __don't set this every frame__, because physics may run in another thread and runs at a different granularity. Use @method _integrate_forces@ as your process loop for precise control of the body state.\nbindRigidBody_set_linear_velocity :: MethodBind\nbindRigidBody_set_linear_velocity\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_linear_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's linear velocity. Can be used sporadically, but __don't set this every frame__, because physics may run in another thread and runs at a different granularity. Use @method _integrate_forces@ as your process loop for precise control of the body state.\nset_linear_velocity ::\n                      (RigidBody :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_linear_velocity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_set_linear_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"set_linear_velocity\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody.set_linear_velocity\n\n{-# NOINLINE bindRigidBody_set_mass #-}\n\n-- | The body's mass.\nbindRigidBody_set_mass :: MethodBind\nbindRigidBody_set_mass\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_mass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's mass.\nset_mass ::\n           (RigidBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_mass cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_set_mass (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"set_mass\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.RigidBody.set_mass\n\n{-# NOINLINE bindRigidBody_set_max_contacts_reported #-}\n\n-- | The maximum number of contacts that will be recorded. Requires @contact_monitor@ to be set to @true@.\n--   \t\t\t__Note:__ The number of contacts is different from the number of collisions. Collisions between parallel edges will result in two contacts (one at each end), and collisions between parallel faces will result in four contacts (one at each corner).\nbindRigidBody_set_max_contacts_reported :: MethodBind\nbindRigidBody_set_max_contacts_reported\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_max_contacts_reported\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum number of contacts that will be recorded. Requires @contact_monitor@ to be set to @true@.\n--   \t\t\t__Note:__ The number of contacts is different from the number of collisions. Collisions between parallel edges will result in two contacts (one at each end), and collisions between parallel faces will result in four contacts (one at each corner).\nset_max_contacts_reported ::\n                            (RigidBody :< cls, Object :< cls) => cls -> Int -> IO ()\nset_max_contacts_reported cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_set_max_contacts_reported\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"set_max_contacts_reported\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody.set_max_contacts_reported\n\n{-# NOINLINE bindRigidBody_set_mode #-}\n\n-- | The body mode. See @enum Mode@ for possible values.\nbindRigidBody_set_mode :: MethodBind\nbindRigidBody_set_mode\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body mode. See @enum Mode@ for possible values.\nset_mode ::\n           (RigidBody :< cls, Object :< cls) => cls -> Int -> IO ()\nset_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_set_mode (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"set_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.RigidBody.set_mode\n\n{-# NOINLINE bindRigidBody_set_physics_material_override #-}\n\n-- | The physics material override for the body.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.\nbindRigidBody_set_physics_material_override :: MethodBind\nbindRigidBody_set_physics_material_override\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_physics_material_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics material override for the body.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.\nset_physics_material_override ::\n                                (RigidBody :< cls, Object :< cls) =>\n                                cls -> PhysicsMaterial -> IO ()\nset_physics_material_override cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_set_physics_material_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"set_physics_material_override\"\n           '[PhysicsMaterial]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody.set_physics_material_override\n\n{-# NOINLINE bindRigidBody_set_sleeping #-}\n\n-- | If @true@, the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the @method apply_impulse@ or @method add_force@ methods.\nbindRigidBody_set_sleeping :: MethodBind\nbindRigidBody_set_sleeping\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_sleeping\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the @method apply_impulse@ or @method add_force@ methods.\nset_sleeping ::\n               (RigidBody :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_sleeping cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_set_sleeping (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"set_sleeping\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.RigidBody.set_sleeping\n\n{-# NOINLINE bindRigidBody_set_use_continuous_collision_detection\n             #-}\n\n-- | If @true@, continuous collision detection is used.\n--   \t\t\tContinuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided. Continuous collision detection is more precise, and misses fewer impacts by small, fast-moving objects. Not using continuous collision detection is faster to compute, but can miss small, fast-moving objects.\nbindRigidBody_set_use_continuous_collision_detection :: MethodBind\nbindRigidBody_set_use_continuous_collision_detection\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_continuous_collision_detection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, continuous collision detection is used.\n--   \t\t\tContinuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided. Continuous collision detection is more precise, and misses fewer impacts by small, fast-moving objects. Not using continuous collision detection is faster to compute, but can miss small, fast-moving objects.\nset_use_continuous_collision_detection ::\n                                         (RigidBody :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_continuous_collision_detection cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindRigidBody_set_use_continuous_collision_detection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody\n           \"set_use_continuous_collision_detection\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.RigidBody.set_use_continuous_collision_detection\n\n{-# NOINLINE bindRigidBody_set_use_custom_integrator #-}\n\n-- | If @true@, internal force integration will be disabled (like gravity or air friction) for this body. Other than collision response, the body will only move as determined by the @method _integrate_forces@ function, if defined.\nbindRigidBody_set_use_custom_integrator :: MethodBind\nbindRigidBody_set_use_custom_integrator\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_custom_integrator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, internal force integration will be disabled (like gravity or air friction) for this body. Other than collision response, the body will only move as determined by the @method _integrate_forces@ function, if defined.\nset_use_custom_integrator ::\n                            (RigidBody :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_custom_integrator cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_set_use_custom_integrator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"set_use_custom_integrator\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody.set_use_custom_integrator\n\n{-# NOINLINE bindRigidBody_set_weight #-}\n\n-- | The body's weight based on its mass and the global 3D gravity. Global values are set in __Project > Project Settings > Physics > 3d__.\nbindRigidBody_set_weight :: MethodBind\nbindRigidBody_set_weight\n  = unsafePerformIO $\n      withCString \"RigidBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_weight\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's weight based on its mass and the global 3D gravity. Global values are set in __Project > Project Settings > Physics > 3d__.\nset_weight ::\n             (RigidBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_weight cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody_set_weight (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody \"set_weight\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.RigidBody.set_weight"
  },
  {
    "path": "src/Godot/Core/RigidBody2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.RigidBody2D\n       (Godot.Core.RigidBody2D._MODE_STATIC,\n        Godot.Core.RigidBody2D._CCD_MODE_DISABLED,\n        Godot.Core.RigidBody2D._CCD_MODE_CAST_RAY,\n        Godot.Core.RigidBody2D._MODE_KINEMATIC,\n        Godot.Core.RigidBody2D._CCD_MODE_CAST_SHAPE,\n        Godot.Core.RigidBody2D._MODE_RIGID,\n        Godot.Core.RigidBody2D._MODE_CHARACTER,\n        Godot.Core.RigidBody2D.sig_body_entered,\n        Godot.Core.RigidBody2D.sig_body_exited,\n        Godot.Core.RigidBody2D.sig_body_shape_entered,\n        Godot.Core.RigidBody2D.sig_body_shape_exited,\n        Godot.Core.RigidBody2D.sig_sleeping_state_changed,\n        Godot.Core.RigidBody2D._body_enter_tree,\n        Godot.Core.RigidBody2D._body_exit_tree,\n        Godot.Core.RigidBody2D._direct_state_changed,\n        Godot.Core.RigidBody2D._integrate_forces,\n        Godot.Core.RigidBody2D._reload_physics_characteristics,\n        Godot.Core.RigidBody2D.add_central_force,\n        Godot.Core.RigidBody2D.add_force,\n        Godot.Core.RigidBody2D.add_torque,\n        Godot.Core.RigidBody2D.apply_central_impulse,\n        Godot.Core.RigidBody2D.apply_impulse,\n        Godot.Core.RigidBody2D.apply_torque_impulse,\n        Godot.Core.RigidBody2D.get_angular_damp,\n        Godot.Core.RigidBody2D.get_angular_velocity,\n        Godot.Core.RigidBody2D.get_applied_force,\n        Godot.Core.RigidBody2D.get_applied_torque,\n        Godot.Core.RigidBody2D.get_bounce,\n        Godot.Core.RigidBody2D.get_colliding_bodies,\n        Godot.Core.RigidBody2D.get_continuous_collision_detection_mode,\n        Godot.Core.RigidBody2D.get_friction,\n        Godot.Core.RigidBody2D.get_gravity_scale,\n        Godot.Core.RigidBody2D.get_inertia,\n        Godot.Core.RigidBody2D.get_linear_damp,\n        Godot.Core.RigidBody2D.get_linear_velocity,\n        Godot.Core.RigidBody2D.get_mass,\n        Godot.Core.RigidBody2D.get_max_contacts_reported,\n        Godot.Core.RigidBody2D.get_mode,\n        Godot.Core.RigidBody2D.get_physics_material_override,\n        Godot.Core.RigidBody2D.get_weight,\n        Godot.Core.RigidBody2D.is_able_to_sleep,\n        Godot.Core.RigidBody2D.is_contact_monitor_enabled,\n        Godot.Core.RigidBody2D.is_sleeping,\n        Godot.Core.RigidBody2D.is_using_custom_integrator,\n        Godot.Core.RigidBody2D.set_angular_damp,\n        Godot.Core.RigidBody2D.set_angular_velocity,\n        Godot.Core.RigidBody2D.set_applied_force,\n        Godot.Core.RigidBody2D.set_applied_torque,\n        Godot.Core.RigidBody2D.set_axis_velocity,\n        Godot.Core.RigidBody2D.set_bounce,\n        Godot.Core.RigidBody2D.set_can_sleep,\n        Godot.Core.RigidBody2D.set_contact_monitor,\n        Godot.Core.RigidBody2D.set_continuous_collision_detection_mode,\n        Godot.Core.RigidBody2D.set_friction,\n        Godot.Core.RigidBody2D.set_gravity_scale,\n        Godot.Core.RigidBody2D.set_inertia,\n        Godot.Core.RigidBody2D.set_linear_damp,\n        Godot.Core.RigidBody2D.set_linear_velocity,\n        Godot.Core.RigidBody2D.set_mass,\n        Godot.Core.RigidBody2D.set_max_contacts_reported,\n        Godot.Core.RigidBody2D.set_mode,\n        Godot.Core.RigidBody2D.set_physics_material_override,\n        Godot.Core.RigidBody2D.set_sleeping,\n        Godot.Core.RigidBody2D.set_use_custom_integrator,\n        Godot.Core.RigidBody2D.set_weight,\n        Godot.Core.RigidBody2D.test_motion)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PhysicsBody2D()\n\n_MODE_STATIC :: Int\n_MODE_STATIC = 1\n\n_CCD_MODE_DISABLED :: Int\n_CCD_MODE_DISABLED = 0\n\n_CCD_MODE_CAST_RAY :: Int\n_CCD_MODE_CAST_RAY = 1\n\n_MODE_KINEMATIC :: Int\n_MODE_KINEMATIC = 3\n\n_CCD_MODE_CAST_SHAPE :: Int\n_CCD_MODE_CAST_SHAPE = 2\n\n_MODE_RIGID :: Int\n_MODE_RIGID = 0\n\n_MODE_CHARACTER :: Int\n_MODE_CHARACTER = 2\n\n-- | Emitted when a body enters into contact with this one. Requires @contact_monitor@ to be set to @true@ and @contacts_reported@ to be set high enough to detect all the collisions.\nsig_body_entered :: Godot.Internal.Dispatch.Signal RigidBody2D\nsig_body_entered = Godot.Internal.Dispatch.Signal \"body_entered\"\n\ninstance NodeSignal RigidBody2D \"body_entered\" '[Node]\n\n-- | Emitted when a body exits contact with this one. Requires @contact_monitor@ to be set to @true@ and @contacts_reported@ to be set high enough to detect all the collisions.\nsig_body_exited :: Godot.Internal.Dispatch.Signal RigidBody2D\nsig_body_exited = Godot.Internal.Dispatch.Signal \"body_exited\"\n\ninstance NodeSignal RigidBody2D \"body_exited\" '[Node]\n\n-- | Emitted when a body enters into contact with this one. Reports colliding shape information. See @CollisionObject2D@ for shape index information. Requires @contact_monitor@ to be set to @true@ and @contacts_reported@ to be set high enough to detect all the collisions.\nsig_body_shape_entered ::\n                       Godot.Internal.Dispatch.Signal RigidBody2D\nsig_body_shape_entered\n  = Godot.Internal.Dispatch.Signal \"body_shape_entered\"\n\ninstance NodeSignal RigidBody2D \"body_shape_entered\"\n           '[Int, Node, Int, Int]\n\n-- | Emitted when a body shape exits contact with this one. Reports colliding shape information. See @CollisionObject2D@ for shape index information. Requires @contact_monitor@ to be set to @true@ and @contacts_reported@ to be set high enough to detect all the collisions.\nsig_body_shape_exited :: Godot.Internal.Dispatch.Signal RigidBody2D\nsig_body_shape_exited\n  = Godot.Internal.Dispatch.Signal \"body_shape_exited\"\n\ninstance NodeSignal RigidBody2D \"body_shape_exited\"\n           '[Int, Node, Int, Int]\n\n-- | Emitted when the physics engine changes the body's sleeping state.\n--   \t\t\t\t__Note:__ Changing the value @sleeping@ will not trigger this signal. It is only emitted if the sleeping state is changed by the physics engine or @emit_signal(\"sleeping_state_changed\")@ is used.\nsig_sleeping_state_changed ::\n                           Godot.Internal.Dispatch.Signal RigidBody2D\nsig_sleeping_state_changed\n  = Godot.Internal.Dispatch.Signal \"sleeping_state_changed\"\n\ninstance NodeSignal RigidBody2D \"sleeping_state_changed\" '[]\n\ninstance NodeProperty RigidBody2D \"angular_damp\" Float 'False where\n        nodeProperty\n          = (get_angular_damp, wrapDroppingSetter set_angular_damp, Nothing)\n\ninstance NodeProperty RigidBody2D \"angular_velocity\" Float 'False\n         where\n        nodeProperty\n          = (get_angular_velocity, wrapDroppingSetter set_angular_velocity,\n             Nothing)\n\ninstance NodeProperty RigidBody2D \"applied_force\" Vector2 'False\n         where\n        nodeProperty\n          = (get_applied_force, wrapDroppingSetter set_applied_force,\n             Nothing)\n\ninstance NodeProperty RigidBody2D \"applied_torque\" Float 'False\n         where\n        nodeProperty\n          = (get_applied_torque, wrapDroppingSetter set_applied_torque,\n             Nothing)\n\ninstance NodeProperty RigidBody2D \"bounce\" Float 'False where\n        nodeProperty = (get_bounce, wrapDroppingSetter set_bounce, Nothing)\n\ninstance NodeProperty RigidBody2D \"can_sleep\" Bool 'False where\n        nodeProperty\n          = (is_able_to_sleep, wrapDroppingSetter set_can_sleep, Nothing)\n\ninstance NodeProperty RigidBody2D \"contact_monitor\" Bool 'False\n         where\n        nodeProperty\n          = (is_contact_monitor_enabled,\n             wrapDroppingSetter set_contact_monitor, Nothing)\n\ninstance NodeProperty RigidBody2D \"contacts_reported\" Int 'False\n         where\n        nodeProperty\n          = (get_max_contacts_reported,\n             wrapDroppingSetter set_max_contacts_reported, Nothing)\n\ninstance NodeProperty RigidBody2D \"continuous_cd\" Int 'False where\n        nodeProperty\n          = (get_continuous_collision_detection_mode,\n             wrapDroppingSetter set_continuous_collision_detection_mode,\n             Nothing)\n\ninstance NodeProperty RigidBody2D \"custom_integrator\" Bool 'False\n         where\n        nodeProperty\n          = (is_using_custom_integrator,\n             wrapDroppingSetter set_use_custom_integrator, Nothing)\n\ninstance NodeProperty RigidBody2D \"friction\" Float 'False where\n        nodeProperty\n          = (get_friction, wrapDroppingSetter set_friction, Nothing)\n\ninstance NodeProperty RigidBody2D \"gravity_scale\" Float 'False\n         where\n        nodeProperty\n          = (get_gravity_scale, wrapDroppingSetter set_gravity_scale,\n             Nothing)\n\ninstance NodeProperty RigidBody2D \"inertia\" Float 'False where\n        nodeProperty\n          = (get_inertia, wrapDroppingSetter set_inertia, Nothing)\n\ninstance NodeProperty RigidBody2D \"linear_damp\" Float 'False where\n        nodeProperty\n          = (get_linear_damp, wrapDroppingSetter set_linear_damp, Nothing)\n\ninstance NodeProperty RigidBody2D \"linear_velocity\" Vector2 'False\n         where\n        nodeProperty\n          = (get_linear_velocity, wrapDroppingSetter set_linear_velocity,\n             Nothing)\n\ninstance NodeProperty RigidBody2D \"mass\" Float 'False where\n        nodeProperty = (get_mass, wrapDroppingSetter set_mass, Nothing)\n\ninstance NodeProperty RigidBody2D \"mode\" Int 'False where\n        nodeProperty = (get_mode, wrapDroppingSetter set_mode, Nothing)\n\ninstance NodeProperty RigidBody2D \"physics_material_override\"\n           PhysicsMaterial\n           'False\n         where\n        nodeProperty\n          = (get_physics_material_override,\n             wrapDroppingSetter set_physics_material_override, Nothing)\n\ninstance NodeProperty RigidBody2D \"sleeping\" Bool 'False where\n        nodeProperty\n          = (is_sleeping, wrapDroppingSetter set_sleeping, Nothing)\n\ninstance NodeProperty RigidBody2D \"weight\" Float 'False where\n        nodeProperty = (get_weight, wrapDroppingSetter set_weight, Nothing)\n\n{-# NOINLINE bindRigidBody2D__body_enter_tree #-}\n\nbindRigidBody2D__body_enter_tree :: MethodBind\nbindRigidBody2D__body_enter_tree\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"_body_enter_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_body_enter_tree ::\n                   (RigidBody2D :< cls, Object :< cls) => cls -> Int -> IO ()\n_body_enter_tree cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D__body_enter_tree\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"_body_enter_tree\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D._body_enter_tree\n\n{-# NOINLINE bindRigidBody2D__body_exit_tree #-}\n\nbindRigidBody2D__body_exit_tree :: MethodBind\nbindRigidBody2D__body_exit_tree\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"_body_exit_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_body_exit_tree ::\n                  (RigidBody2D :< cls, Object :< cls) => cls -> Int -> IO ()\n_body_exit_tree cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D__body_exit_tree (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"_body_exit_tree\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D._body_exit_tree\n\n{-# NOINLINE bindRigidBody2D__direct_state_changed #-}\n\nbindRigidBody2D__direct_state_changed :: MethodBind\nbindRigidBody2D__direct_state_changed\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"_direct_state_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_direct_state_changed ::\n                        (RigidBody2D :< cls, Object :< cls) => cls -> Object -> IO ()\n_direct_state_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D__direct_state_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"_direct_state_changed\" '[Object]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D._direct_state_changed\n\n{-# NOINLINE bindRigidBody2D__integrate_forces #-}\n\n-- | Allows you to read and safely modify the simulation state for the object. Use this instead of @method Node._physics_process@ if you need to directly change the body's @position@ or other physics properties. By default, it works in addition to the usual physics behavior, but @custom_integrator@ allows you to disable the default behavior and write custom force integration for a body.\nbindRigidBody2D__integrate_forces :: MethodBind\nbindRigidBody2D__integrate_forces\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"_integrate_forces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Allows you to read and safely modify the simulation state for the object. Use this instead of @method Node._physics_process@ if you need to directly change the body's @position@ or other physics properties. By default, it works in addition to the usual physics behavior, but @custom_integrator@ allows you to disable the default behavior and write custom force integration for a body.\n_integrate_forces ::\n                    (RigidBody2D :< cls, Object :< cls) =>\n                    cls -> Physics2DDirectBodyState -> IO ()\n_integrate_forces cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D__integrate_forces\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"_integrate_forces\"\n           '[Physics2DDirectBodyState]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D._integrate_forces\n\n{-# NOINLINE bindRigidBody2D__reload_physics_characteristics #-}\n\nbindRigidBody2D__reload_physics_characteristics :: MethodBind\nbindRigidBody2D__reload_physics_characteristics\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"_reload_physics_characteristics\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_reload_physics_characteristics ::\n                                  (RigidBody2D :< cls, Object :< cls) => cls -> IO ()\n_reload_physics_characteristics cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindRigidBody2D__reload_physics_characteristics\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"_reload_physics_characteristics\"\n           '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D._reload_physics_characteristics\n\n{-# NOINLINE bindRigidBody2D_add_central_force #-}\n\n-- | Adds a constant directional force without affecting rotation.\nbindRigidBody2D_add_central_force :: MethodBind\nbindRigidBody2D_add_central_force\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"add_central_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a constant directional force without affecting rotation.\nadd_central_force ::\n                    (RigidBody2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nadd_central_force cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_add_central_force\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"add_central_force\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.add_central_force\n\n{-# NOINLINE bindRigidBody2D_add_force #-}\n\n-- | Adds a positioned force to the body. Both the force and the offset from the body origin are in global coordinates.\nbindRigidBody2D_add_force :: MethodBind\nbindRigidBody2D_add_force\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"add_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a positioned force to the body. Both the force and the offset from the body origin are in global coordinates.\nadd_force ::\n            (RigidBody2D :< cls, Object :< cls) =>\n            cls -> Vector2 -> Vector2 -> IO ()\nadd_force cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_add_force (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"add_force\" '[Vector2, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.add_force\n\n{-# NOINLINE bindRigidBody2D_add_torque #-}\n\n-- | Adds a constant rotational force.\nbindRigidBody2D_add_torque :: MethodBind\nbindRigidBody2D_add_torque\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"add_torque\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a constant rotational force.\nadd_torque ::\n             (RigidBody2D :< cls, Object :< cls) => cls -> Float -> IO ()\nadd_torque cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_add_torque (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"add_torque\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.RigidBody2D.add_torque\n\n{-# NOINLINE bindRigidBody2D_apply_central_impulse #-}\n\n-- | Applies a directional impulse without affecting rotation.\nbindRigidBody2D_apply_central_impulse :: MethodBind\nbindRigidBody2D_apply_central_impulse\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"apply_central_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies a directional impulse without affecting rotation.\napply_central_impulse ::\n                        (RigidBody2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\napply_central_impulse cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_apply_central_impulse\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"apply_central_impulse\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.apply_central_impulse\n\n{-# NOINLINE bindRigidBody2D_apply_impulse #-}\n\n-- | Applies a positioned impulse to the body. An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason it should only be used when simulating one-time impacts (use the \"_force\" functions otherwise). The position uses the rotation of the global coordinate system, but is centered at the object's origin.\nbindRigidBody2D_apply_impulse :: MethodBind\nbindRigidBody2D_apply_impulse\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"apply_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies a positioned impulse to the body. An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason it should only be used when simulating one-time impacts (use the \"_force\" functions otherwise). The position uses the rotation of the global coordinate system, but is centered at the object's origin.\napply_impulse ::\n                (RigidBody2D :< cls, Object :< cls) =>\n                cls -> Vector2 -> Vector2 -> IO ()\napply_impulse cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_apply_impulse (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"apply_impulse\" '[Vector2, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.apply_impulse\n\n{-# NOINLINE bindRigidBody2D_apply_torque_impulse #-}\n\n-- | Applies a rotational impulse to the body.\nbindRigidBody2D_apply_torque_impulse :: MethodBind\nbindRigidBody2D_apply_torque_impulse\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"apply_torque_impulse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies a rotational impulse to the body.\napply_torque_impulse ::\n                       (RigidBody2D :< cls, Object :< cls) => cls -> Float -> IO ()\napply_torque_impulse cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_apply_torque_impulse\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"apply_torque_impulse\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.apply_torque_impulse\n\n{-# NOINLINE bindRigidBody2D_get_angular_damp #-}\n\n-- | Damps the body's @angular_velocity@. If @-1@, the body will use the __Default Angular Damp__ defined in __Project > Project Settings > Physics > 2d__.\nbindRigidBody2D_get_angular_damp :: MethodBind\nbindRigidBody2D_get_angular_damp\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_angular_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Damps the body's @angular_velocity@. If @-1@, the body will use the __Default Angular Damp__ defined in __Project > Project Settings > Physics > 2d__.\nget_angular_damp ::\n                   (RigidBody2D :< cls, Object :< cls) => cls -> IO Float\nget_angular_damp cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_get_angular_damp\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"get_angular_damp\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.RigidBody2D.get_angular_damp\n\n{-# NOINLINE bindRigidBody2D_get_angular_velocity #-}\n\n-- | The body's rotational velocity.\nbindRigidBody2D_get_angular_velocity :: MethodBind\nbindRigidBody2D_get_angular_velocity\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_angular_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's rotational velocity.\nget_angular_velocity ::\n                       (RigidBody2D :< cls, Object :< cls) => cls -> IO Float\nget_angular_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_get_angular_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"get_angular_velocity\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.RigidBody2D.get_angular_velocity\n\n{-# NOINLINE bindRigidBody2D_get_applied_force #-}\n\n-- | The body's total applied force.\nbindRigidBody2D_get_applied_force :: MethodBind\nbindRigidBody2D_get_applied_force\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_applied_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's total applied force.\nget_applied_force ::\n                    (RigidBody2D :< cls, Object :< cls) => cls -> IO Vector2\nget_applied_force cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_get_applied_force\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"get_applied_force\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.RigidBody2D.get_applied_force\n\n{-# NOINLINE bindRigidBody2D_get_applied_torque #-}\n\n-- | The body's total applied torque.\nbindRigidBody2D_get_applied_torque :: MethodBind\nbindRigidBody2D_get_applied_torque\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_applied_torque\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's total applied torque.\nget_applied_torque ::\n                     (RigidBody2D :< cls, Object :< cls) => cls -> IO Float\nget_applied_torque cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_get_applied_torque\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"get_applied_torque\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.RigidBody2D.get_applied_torque\n\n{-# NOINLINE bindRigidBody2D_get_bounce #-}\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\n--   \t\t\tDeprecated, use @PhysicsMaterial.bounce@ instead via @physics_material_override@.\nbindRigidBody2D_get_bounce :: MethodBind\nbindRigidBody2D_get_bounce\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_bounce\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\n--   \t\t\tDeprecated, use @PhysicsMaterial.bounce@ instead via @physics_material_override@.\nget_bounce ::\n             (RigidBody2D :< cls, Object :< cls) => cls -> IO Float\nget_bounce cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_get_bounce (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"get_bounce\" '[] (IO Float) where\n        nodeMethod = Godot.Core.RigidBody2D.get_bounce\n\n{-# NOINLINE bindRigidBody2D_get_colliding_bodies #-}\n\n-- | Returns a list of the bodies colliding with this one. Requires @contact_monitor@ to be set to @true@ and @contacts_reported@ to be set high enough to detect all the collisions.\n--   \t\t\t\t__Note:__ The result of this test is not immediate after moving objects. For performance, list of collisions is updated once per frame and before the physics step. Consider using signals instead.\nbindRigidBody2D_get_colliding_bodies :: MethodBind\nbindRigidBody2D_get_colliding_bodies\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_colliding_bodies\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a list of the bodies colliding with this one. Requires @contact_monitor@ to be set to @true@ and @contacts_reported@ to be set high enough to detect all the collisions.\n--   \t\t\t\t__Note:__ The result of this test is not immediate after moving objects. For performance, list of collisions is updated once per frame and before the physics step. Consider using signals instead.\nget_colliding_bodies ::\n                       (RigidBody2D :< cls, Object :< cls) => cls -> IO Array\nget_colliding_bodies cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_get_colliding_bodies\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"get_colliding_bodies\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.RigidBody2D.get_colliding_bodies\n\n{-# NOINLINE bindRigidBody2D_get_continuous_collision_detection_mode\n             #-}\n\n-- | Continuous collision detection mode.\n--   \t\t\tContinuous collision detection tries to predict where a moving body will collide instead of moving it and correcting its movement after collision. Continuous collision detection is slower, but more precise and misses fewer collisions with small, fast-moving objects. Raycasting and shapecasting methods are available. See @enum CCDMode@ for details.\nbindRigidBody2D_get_continuous_collision_detection_mode ::\n                                                        MethodBind\nbindRigidBody2D_get_continuous_collision_detection_mode\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_continuous_collision_detection_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Continuous collision detection mode.\n--   \t\t\tContinuous collision detection tries to predict where a moving body will collide instead of moving it and correcting its movement after collision. Continuous collision detection is slower, but more precise and misses fewer collisions with small, fast-moving objects. Raycasting and shapecasting methods are available. See @enum CCDMode@ for details.\nget_continuous_collision_detection_mode ::\n                                          (RigidBody2D :< cls, Object :< cls) => cls -> IO Int\nget_continuous_collision_detection_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindRigidBody2D_get_continuous_collision_detection_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D\n           \"get_continuous_collision_detection_mode\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.RigidBody2D.get_continuous_collision_detection_mode\n\n{-# NOINLINE bindRigidBody2D_get_friction #-}\n\n-- | The body's friction. Values range from @0@ (frictionless) to @1@ (maximum friction).\n--   \t\t\tDeprecated, use @PhysicsMaterial.friction@ instead via @physics_material_override@.\nbindRigidBody2D_get_friction :: MethodBind\nbindRigidBody2D_get_friction\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_friction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's friction. Values range from @0@ (frictionless) to @1@ (maximum friction).\n--   \t\t\tDeprecated, use @PhysicsMaterial.friction@ instead via @physics_material_override@.\nget_friction ::\n               (RigidBody2D :< cls, Object :< cls) => cls -> IO Float\nget_friction cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_get_friction (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"get_friction\" '[] (IO Float) where\n        nodeMethod = Godot.Core.RigidBody2D.get_friction\n\n{-# NOINLINE bindRigidBody2D_get_gravity_scale #-}\n\n-- | Multiplies the gravity applied to the body. The body's gravity is calculated from the __Default Gravity__ value in __Project > Project Settings > Physics > 2d__ and/or any additional gravity vector applied by @Area2D@s.\nbindRigidBody2D_get_gravity_scale :: MethodBind\nbindRigidBody2D_get_gravity_scale\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_gravity_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Multiplies the gravity applied to the body. The body's gravity is calculated from the __Default Gravity__ value in __Project > Project Settings > Physics > 2d__ and/or any additional gravity vector applied by @Area2D@s.\nget_gravity_scale ::\n                    (RigidBody2D :< cls, Object :< cls) => cls -> IO Float\nget_gravity_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_get_gravity_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"get_gravity_scale\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.RigidBody2D.get_gravity_scale\n\n{-# NOINLINE bindRigidBody2D_get_inertia #-}\n\n-- | The body's moment of inertia. This is like mass, but for rotation: it determines how much torque it takes to rotate the body. The moment of inertia is usually computed automatically from the mass and the shapes, but this function allows you to set a custom value. Set 0 inertia to return to automatically computing it.\nbindRigidBody2D_get_inertia :: MethodBind\nbindRigidBody2D_get_inertia\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_inertia\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's moment of inertia. This is like mass, but for rotation: it determines how much torque it takes to rotate the body. The moment of inertia is usually computed automatically from the mass and the shapes, but this function allows you to set a custom value. Set 0 inertia to return to automatically computing it.\nget_inertia ::\n              (RigidBody2D :< cls, Object :< cls) => cls -> IO Float\nget_inertia cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_get_inertia (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"get_inertia\" '[] (IO Float) where\n        nodeMethod = Godot.Core.RigidBody2D.get_inertia\n\n{-# NOINLINE bindRigidBody2D_get_linear_damp #-}\n\n-- | Damps the body's @linear_velocity@. If @-1@, the body will use the __Default Linear Damp__ in __Project > Project Settings > Physics > 2d__.\nbindRigidBody2D_get_linear_damp :: MethodBind\nbindRigidBody2D_get_linear_damp\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_linear_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Damps the body's @linear_velocity@. If @-1@, the body will use the __Default Linear Damp__ in __Project > Project Settings > Physics > 2d__.\nget_linear_damp ::\n                  (RigidBody2D :< cls, Object :< cls) => cls -> IO Float\nget_linear_damp cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_get_linear_damp (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"get_linear_damp\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.RigidBody2D.get_linear_damp\n\n{-# NOINLINE bindRigidBody2D_get_linear_velocity #-}\n\n-- | The body's linear velocity.\nbindRigidBody2D_get_linear_velocity :: MethodBind\nbindRigidBody2D_get_linear_velocity\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_linear_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's linear velocity.\nget_linear_velocity ::\n                      (RigidBody2D :< cls, Object :< cls) => cls -> IO Vector2\nget_linear_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_get_linear_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"get_linear_velocity\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.RigidBody2D.get_linear_velocity\n\n{-# NOINLINE bindRigidBody2D_get_mass #-}\n\n-- | The body's mass.\nbindRigidBody2D_get_mass :: MethodBind\nbindRigidBody2D_get_mass\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_mass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's mass.\nget_mass :: (RigidBody2D :< cls, Object :< cls) => cls -> IO Float\nget_mass cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_get_mass (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"get_mass\" '[] (IO Float) where\n        nodeMethod = Godot.Core.RigidBody2D.get_mass\n\n{-# NOINLINE bindRigidBody2D_get_max_contacts_reported #-}\n\n-- | The maximum number of contacts that will be recorded. Requires @contact_monitor@ to be set to @true@.\n--   \t\t\t__Note:__ The number of contacts is different from the number of collisions. Collisions between parallel edges will result in two contacts (one at each end), and collisions between parallel faces will result in four contacts (one at each corner).\nbindRigidBody2D_get_max_contacts_reported :: MethodBind\nbindRigidBody2D_get_max_contacts_reported\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_max_contacts_reported\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum number of contacts that will be recorded. Requires @contact_monitor@ to be set to @true@.\n--   \t\t\t__Note:__ The number of contacts is different from the number of collisions. Collisions between parallel edges will result in two contacts (one at each end), and collisions between parallel faces will result in four contacts (one at each corner).\nget_max_contacts_reported ::\n                            (RigidBody2D :< cls, Object :< cls) => cls -> IO Int\nget_max_contacts_reported cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_get_max_contacts_reported\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"get_max_contacts_reported\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.RigidBody2D.get_max_contacts_reported\n\n{-# NOINLINE bindRigidBody2D_get_mode #-}\n\n-- | The body's mode. See @enum Mode@ for possible values.\nbindRigidBody2D_get_mode :: MethodBind\nbindRigidBody2D_get_mode\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's mode. See @enum Mode@ for possible values.\nget_mode :: (RigidBody2D :< cls, Object :< cls) => cls -> IO Int\nget_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_get_mode (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"get_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.RigidBody2D.get_mode\n\n{-# NOINLINE bindRigidBody2D_get_physics_material_override #-}\n\n-- | The physics material override for the body.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.\nbindRigidBody2D_get_physics_material_override :: MethodBind\nbindRigidBody2D_get_physics_material_override\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_physics_material_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics material override for the body.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.\nget_physics_material_override ::\n                                (RigidBody2D :< cls, Object :< cls) => cls -> IO PhysicsMaterial\nget_physics_material_override cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindRigidBody2D_get_physics_material_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"get_physics_material_override\" '[]\n           (IO PhysicsMaterial)\n         where\n        nodeMethod = Godot.Core.RigidBody2D.get_physics_material_override\n\n{-# NOINLINE bindRigidBody2D_get_weight #-}\n\n-- | The body's weight based on its mass and the __Default Gravity__ value in __Project > Project Settings > Physics > 2d__.\nbindRigidBody2D_get_weight :: MethodBind\nbindRigidBody2D_get_weight\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_weight\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's weight based on its mass and the __Default Gravity__ value in __Project > Project Settings > Physics > 2d__.\nget_weight ::\n             (RigidBody2D :< cls, Object :< cls) => cls -> IO Float\nget_weight cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_get_weight (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"get_weight\" '[] (IO Float) where\n        nodeMethod = Godot.Core.RigidBody2D.get_weight\n\n{-# NOINLINE bindRigidBody2D_is_able_to_sleep #-}\n\n-- | If @true@, the body can enter sleep mode when there is no movement. See @sleeping@.\n--   \t\t\t__Note:__ A RigidBody2D will never enter sleep mode automatically if its @mode@ is @MODE_CHARACTER@. It can still be put to sleep manually by setting its @sleeping@ property to @true@.\nbindRigidBody2D_is_able_to_sleep :: MethodBind\nbindRigidBody2D_is_able_to_sleep\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_able_to_sleep\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the body can enter sleep mode when there is no movement. See @sleeping@.\n--   \t\t\t__Note:__ A RigidBody2D will never enter sleep mode automatically if its @mode@ is @MODE_CHARACTER@. It can still be put to sleep manually by setting its @sleeping@ property to @true@.\nis_able_to_sleep ::\n                   (RigidBody2D :< cls, Object :< cls) => cls -> IO Bool\nis_able_to_sleep cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_is_able_to_sleep\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"is_able_to_sleep\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.RigidBody2D.is_able_to_sleep\n\n{-# NOINLINE bindRigidBody2D_is_contact_monitor_enabled #-}\n\n-- | If @true@, the body will emit signals when it collides with another RigidBody2D. See also @contacts_reported@.\nbindRigidBody2D_is_contact_monitor_enabled :: MethodBind\nbindRigidBody2D_is_contact_monitor_enabled\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_contact_monitor_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the body will emit signals when it collides with another RigidBody2D. See also @contacts_reported@.\nis_contact_monitor_enabled ::\n                             (RigidBody2D :< cls, Object :< cls) => cls -> IO Bool\nis_contact_monitor_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_is_contact_monitor_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"is_contact_monitor_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RigidBody2D.is_contact_monitor_enabled\n\n{-# NOINLINE bindRigidBody2D_is_sleeping #-}\n\n-- | If @true@, the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the @method apply_impulse@ or @method add_force@ methods.\nbindRigidBody2D_is_sleeping :: MethodBind\nbindRigidBody2D_is_sleeping\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_sleeping\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the @method apply_impulse@ or @method add_force@ methods.\nis_sleeping ::\n              (RigidBody2D :< cls, Object :< cls) => cls -> IO Bool\nis_sleeping cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_is_sleeping (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"is_sleeping\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.RigidBody2D.is_sleeping\n\n{-# NOINLINE bindRigidBody2D_is_using_custom_integrator #-}\n\n-- | If @true@, internal force integration is disabled for this body. Aside from collision response, the body will only move as determined by the @method _integrate_forces@ function.\nbindRigidBody2D_is_using_custom_integrator :: MethodBind\nbindRigidBody2D_is_using_custom_integrator\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_custom_integrator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, internal force integration is disabled for this body. Aside from collision response, the body will only move as determined by the @method _integrate_forces@ function.\nis_using_custom_integrator ::\n                             (RigidBody2D :< cls, Object :< cls) => cls -> IO Bool\nis_using_custom_integrator cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_is_using_custom_integrator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"is_using_custom_integrator\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RigidBody2D.is_using_custom_integrator\n\n{-# NOINLINE bindRigidBody2D_set_angular_damp #-}\n\n-- | Damps the body's @angular_velocity@. If @-1@, the body will use the __Default Angular Damp__ defined in __Project > Project Settings > Physics > 2d__.\nbindRigidBody2D_set_angular_damp :: MethodBind\nbindRigidBody2D_set_angular_damp\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_angular_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Damps the body's @angular_velocity@. If @-1@, the body will use the __Default Angular Damp__ defined in __Project > Project Settings > Physics > 2d__.\nset_angular_damp ::\n                   (RigidBody2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_angular_damp cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_angular_damp\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_angular_damp\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.set_angular_damp\n\n{-# NOINLINE bindRigidBody2D_set_angular_velocity #-}\n\n-- | The body's rotational velocity.\nbindRigidBody2D_set_angular_velocity :: MethodBind\nbindRigidBody2D_set_angular_velocity\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_angular_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's rotational velocity.\nset_angular_velocity ::\n                       (RigidBody2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_angular_velocity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_angular_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_angular_velocity\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.set_angular_velocity\n\n{-# NOINLINE bindRigidBody2D_set_applied_force #-}\n\n-- | The body's total applied force.\nbindRigidBody2D_set_applied_force :: MethodBind\nbindRigidBody2D_set_applied_force\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_applied_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's total applied force.\nset_applied_force ::\n                    (RigidBody2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_applied_force cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_applied_force\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_applied_force\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.set_applied_force\n\n{-# NOINLINE bindRigidBody2D_set_applied_torque #-}\n\n-- | The body's total applied torque.\nbindRigidBody2D_set_applied_torque :: MethodBind\nbindRigidBody2D_set_applied_torque\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_applied_torque\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's total applied torque.\nset_applied_torque ::\n                     (RigidBody2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_applied_torque cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_applied_torque\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_applied_torque\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.set_applied_torque\n\n{-# NOINLINE bindRigidBody2D_set_axis_velocity #-}\n\n-- | Sets the body's velocity on the given axis. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior.\nbindRigidBody2D_set_axis_velocity :: MethodBind\nbindRigidBody2D_set_axis_velocity\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_axis_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the body's velocity on the given axis. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior.\nset_axis_velocity ::\n                    (RigidBody2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_axis_velocity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_axis_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_axis_velocity\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.set_axis_velocity\n\n{-# NOINLINE bindRigidBody2D_set_bounce #-}\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\n--   \t\t\tDeprecated, use @PhysicsMaterial.bounce@ instead via @physics_material_override@.\nbindRigidBody2D_set_bounce :: MethodBind\nbindRigidBody2D_set_bounce\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_bounce\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\n--   \t\t\tDeprecated, use @PhysicsMaterial.bounce@ instead via @physics_material_override@.\nset_bounce ::\n             (RigidBody2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_bounce cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_bounce (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_bounce\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.RigidBody2D.set_bounce\n\n{-# NOINLINE bindRigidBody2D_set_can_sleep #-}\n\n-- | If @true@, the body can enter sleep mode when there is no movement. See @sleeping@.\n--   \t\t\t__Note:__ A RigidBody2D will never enter sleep mode automatically if its @mode@ is @MODE_CHARACTER@. It can still be put to sleep manually by setting its @sleeping@ property to @true@.\nbindRigidBody2D_set_can_sleep :: MethodBind\nbindRigidBody2D_set_can_sleep\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_can_sleep\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the body can enter sleep mode when there is no movement. See @sleeping@.\n--   \t\t\t__Note:__ A RigidBody2D will never enter sleep mode automatically if its @mode@ is @MODE_CHARACTER@. It can still be put to sleep manually by setting its @sleeping@ property to @true@.\nset_can_sleep ::\n                (RigidBody2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_can_sleep cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_can_sleep (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_can_sleep\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.set_can_sleep\n\n{-# NOINLINE bindRigidBody2D_set_contact_monitor #-}\n\n-- | If @true@, the body will emit signals when it collides with another RigidBody2D. See also @contacts_reported@.\nbindRigidBody2D_set_contact_monitor :: MethodBind\nbindRigidBody2D_set_contact_monitor\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_contact_monitor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the body will emit signals when it collides with another RigidBody2D. See also @contacts_reported@.\nset_contact_monitor ::\n                      (RigidBody2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_contact_monitor cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_contact_monitor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_contact_monitor\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.set_contact_monitor\n\n{-# NOINLINE bindRigidBody2D_set_continuous_collision_detection_mode\n             #-}\n\n-- | Continuous collision detection mode.\n--   \t\t\tContinuous collision detection tries to predict where a moving body will collide instead of moving it and correcting its movement after collision. Continuous collision detection is slower, but more precise and misses fewer collisions with small, fast-moving objects. Raycasting and shapecasting methods are available. See @enum CCDMode@ for details.\nbindRigidBody2D_set_continuous_collision_detection_mode ::\n                                                        MethodBind\nbindRigidBody2D_set_continuous_collision_detection_mode\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_continuous_collision_detection_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Continuous collision detection mode.\n--   \t\t\tContinuous collision detection tries to predict where a moving body will collide instead of moving it and correcting its movement after collision. Continuous collision detection is slower, but more precise and misses fewer collisions with small, fast-moving objects. Raycasting and shapecasting methods are available. See @enum CCDMode@ for details.\nset_continuous_collision_detection_mode ::\n                                          (RigidBody2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_continuous_collision_detection_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindRigidBody2D_set_continuous_collision_detection_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D\n           \"set_continuous_collision_detection_mode\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.RigidBody2D.set_continuous_collision_detection_mode\n\n{-# NOINLINE bindRigidBody2D_set_friction #-}\n\n-- | The body's friction. Values range from @0@ (frictionless) to @1@ (maximum friction).\n--   \t\t\tDeprecated, use @PhysicsMaterial.friction@ instead via @physics_material_override@.\nbindRigidBody2D_set_friction :: MethodBind\nbindRigidBody2D_set_friction\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_friction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's friction. Values range from @0@ (frictionless) to @1@ (maximum friction).\n--   \t\t\tDeprecated, use @PhysicsMaterial.friction@ instead via @physics_material_override@.\nset_friction ::\n               (RigidBody2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_friction cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_friction (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_friction\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.set_friction\n\n{-# NOINLINE bindRigidBody2D_set_gravity_scale #-}\n\n-- | Multiplies the gravity applied to the body. The body's gravity is calculated from the __Default Gravity__ value in __Project > Project Settings > Physics > 2d__ and/or any additional gravity vector applied by @Area2D@s.\nbindRigidBody2D_set_gravity_scale :: MethodBind\nbindRigidBody2D_set_gravity_scale\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_gravity_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Multiplies the gravity applied to the body. The body's gravity is calculated from the __Default Gravity__ value in __Project > Project Settings > Physics > 2d__ and/or any additional gravity vector applied by @Area2D@s.\nset_gravity_scale ::\n                    (RigidBody2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_gravity_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_gravity_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_gravity_scale\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.set_gravity_scale\n\n{-# NOINLINE bindRigidBody2D_set_inertia #-}\n\n-- | The body's moment of inertia. This is like mass, but for rotation: it determines how much torque it takes to rotate the body. The moment of inertia is usually computed automatically from the mass and the shapes, but this function allows you to set a custom value. Set 0 inertia to return to automatically computing it.\nbindRigidBody2D_set_inertia :: MethodBind\nbindRigidBody2D_set_inertia\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_inertia\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's moment of inertia. This is like mass, but for rotation: it determines how much torque it takes to rotate the body. The moment of inertia is usually computed automatically from the mass and the shapes, but this function allows you to set a custom value. Set 0 inertia to return to automatically computing it.\nset_inertia ::\n              (RigidBody2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_inertia cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_inertia (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_inertia\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.set_inertia\n\n{-# NOINLINE bindRigidBody2D_set_linear_damp #-}\n\n-- | Damps the body's @linear_velocity@. If @-1@, the body will use the __Default Linear Damp__ in __Project > Project Settings > Physics > 2d__.\nbindRigidBody2D_set_linear_damp :: MethodBind\nbindRigidBody2D_set_linear_damp\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_linear_damp\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Damps the body's @linear_velocity@. If @-1@, the body will use the __Default Linear Damp__ in __Project > Project Settings > Physics > 2d__.\nset_linear_damp ::\n                  (RigidBody2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_linear_damp cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_linear_damp (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_linear_damp\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.set_linear_damp\n\n{-# NOINLINE bindRigidBody2D_set_linear_velocity #-}\n\n-- | The body's linear velocity.\nbindRigidBody2D_set_linear_velocity :: MethodBind\nbindRigidBody2D_set_linear_velocity\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_linear_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's linear velocity.\nset_linear_velocity ::\n                      (RigidBody2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_linear_velocity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_linear_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_linear_velocity\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.set_linear_velocity\n\n{-# NOINLINE bindRigidBody2D_set_mass #-}\n\n-- | The body's mass.\nbindRigidBody2D_set_mass :: MethodBind\nbindRigidBody2D_set_mass\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_mass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's mass.\nset_mass ::\n           (RigidBody2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_mass cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_mass (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_mass\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.RigidBody2D.set_mass\n\n{-# NOINLINE bindRigidBody2D_set_max_contacts_reported #-}\n\n-- | The maximum number of contacts that will be recorded. Requires @contact_monitor@ to be set to @true@.\n--   \t\t\t__Note:__ The number of contacts is different from the number of collisions. Collisions between parallel edges will result in two contacts (one at each end), and collisions between parallel faces will result in four contacts (one at each corner).\nbindRigidBody2D_set_max_contacts_reported :: MethodBind\nbindRigidBody2D_set_max_contacts_reported\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_max_contacts_reported\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum number of contacts that will be recorded. Requires @contact_monitor@ to be set to @true@.\n--   \t\t\t__Note:__ The number of contacts is different from the number of collisions. Collisions between parallel edges will result in two contacts (one at each end), and collisions between parallel faces will result in four contacts (one at each corner).\nset_max_contacts_reported ::\n                            (RigidBody2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_max_contacts_reported cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_max_contacts_reported\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_max_contacts_reported\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.set_max_contacts_reported\n\n{-# NOINLINE bindRigidBody2D_set_mode #-}\n\n-- | The body's mode. See @enum Mode@ for possible values.\nbindRigidBody2D_set_mode :: MethodBind\nbindRigidBody2D_set_mode\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's mode. See @enum Mode@ for possible values.\nset_mode ::\n           (RigidBody2D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_mode (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.RigidBody2D.set_mode\n\n{-# NOINLINE bindRigidBody2D_set_physics_material_override #-}\n\n-- | The physics material override for the body.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.\nbindRigidBody2D_set_physics_material_override :: MethodBind\nbindRigidBody2D_set_physics_material_override\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_physics_material_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics material override for the body.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.\nset_physics_material_override ::\n                                (RigidBody2D :< cls, Object :< cls) =>\n                                cls -> PhysicsMaterial -> IO ()\nset_physics_material_override cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindRigidBody2D_set_physics_material_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_physics_material_override\"\n           '[PhysicsMaterial]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.set_physics_material_override\n\n{-# NOINLINE bindRigidBody2D_set_sleeping #-}\n\n-- | If @true@, the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the @method apply_impulse@ or @method add_force@ methods.\nbindRigidBody2D_set_sleeping :: MethodBind\nbindRigidBody2D_set_sleeping\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_sleeping\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the @method apply_impulse@ or @method add_force@ methods.\nset_sleeping ::\n               (RigidBody2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_sleeping cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_sleeping (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_sleeping\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.set_sleeping\n\n{-# NOINLINE bindRigidBody2D_set_use_custom_integrator #-}\n\n-- | If @true@, internal force integration is disabled for this body. Aside from collision response, the body will only move as determined by the @method _integrate_forces@ function.\nbindRigidBody2D_set_use_custom_integrator :: MethodBind\nbindRigidBody2D_set_use_custom_integrator\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_custom_integrator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, internal force integration is disabled for this body. Aside from collision response, the body will only move as determined by the @method _integrate_forces@ function.\nset_use_custom_integrator ::\n                            (RigidBody2D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_custom_integrator cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_use_custom_integrator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_use_custom_integrator\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RigidBody2D.set_use_custom_integrator\n\n{-# NOINLINE bindRigidBody2D_set_weight #-}\n\n-- | The body's weight based on its mass and the __Default Gravity__ value in __Project > Project Settings > Physics > 2d__.\nbindRigidBody2D_set_weight :: MethodBind\nbindRigidBody2D_set_weight\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_weight\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's weight based on its mass and the __Default Gravity__ value in __Project > Project Settings > Physics > 2d__.\nset_weight ::\n             (RigidBody2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_weight cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_set_weight (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"set_weight\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.RigidBody2D.set_weight\n\n{-# NOINLINE bindRigidBody2D_test_motion #-}\n\n-- | Returns @true@ if a collision would result from moving in the given vector. @margin@ increases the size of the shapes involved in the collision detection, and @result@ is an object of type @Physics2DTestMotionResult@, which contains additional information about the collision (should there be one).\nbindRigidBody2D_test_motion :: MethodBind\nbindRigidBody2D_test_motion\n  = unsafePerformIO $\n      withCString \"RigidBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"test_motion\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if a collision would result from moving in the given vector. @margin@ increases the size of the shapes involved in the collision detection, and @result@ is an object of type @Physics2DTestMotionResult@, which contains additional information about the collision (should there be one).\ntest_motion ::\n              (RigidBody2D :< cls, Object :< cls) =>\n              cls ->\n                Vector2 ->\n                  Maybe Bool ->\n                    Maybe Float -> Maybe Physics2DTestMotionResult -> IO Bool\ntest_motion cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool True) toVariant arg2,\n       maybe (VariantReal (0.08)) toVariant arg3,\n       maybe VariantNil toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRigidBody2D_test_motion (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RigidBody2D \"test_motion\"\n           '[Vector2, Maybe Bool, Maybe Float,\n             Maybe Physics2DTestMotionResult]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.RigidBody2D.test_motion"
  },
  {
    "path": "src/Godot/Core/RootMotionView.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.RootMotionView\n       (Godot.Core.RootMotionView.get_animation_path,\n        Godot.Core.RootMotionView.set_animation_path,\n        Godot.Core.RootMotionView.get_cell_size,\n        Godot.Core.RootMotionView.set_cell_size,\n        Godot.Core.RootMotionView.get_color,\n        Godot.Core.RootMotionView.set_color,\n        Godot.Core.RootMotionView.get_radius,\n        Godot.Core.RootMotionView.set_radius,\n        Godot.Core.RootMotionView.get_zero_y,\n        Godot.Core.RootMotionView.set_zero_y)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualInstance()\n\n{-# NOINLINE bindRootMotionView_get_animation_path #-}\n\nbindRootMotionView_get_animation_path :: MethodBind\nbindRootMotionView_get_animation_path\n  = unsafePerformIO $\n      withCString \"RootMotionView\" $\n        \\ clsNamePtr ->\n          withCString \"get_animation_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_animation_path ::\n                     (RootMotionView :< cls, Object :< cls) => cls -> IO NodePath\nget_animation_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRootMotionView_get_animation_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RootMotionView \"get_animation_path\" '[]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.RootMotionView.get_animation_path\n\n{-# NOINLINE bindRootMotionView_set_animation_path #-}\n\nbindRootMotionView_set_animation_path :: MethodBind\nbindRootMotionView_set_animation_path\n  = unsafePerformIO $\n      withCString \"RootMotionView\" $\n        \\ clsNamePtr ->\n          withCString \"set_animation_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_animation_path ::\n                     (RootMotionView :< cls, Object :< cls) => cls -> NodePath -> IO ()\nset_animation_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRootMotionView_set_animation_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RootMotionView \"set_animation_path\" '[NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.RootMotionView.set_animation_path\n\ninstance NodeProperty RootMotionView \"animation_path\" NodePath\n           'False\n         where\n        nodeProperty\n          = (get_animation_path, wrapDroppingSetter set_animation_path,\n             Nothing)\n\n{-# NOINLINE bindRootMotionView_get_cell_size #-}\n\nbindRootMotionView_get_cell_size :: MethodBind\nbindRootMotionView_get_cell_size\n  = unsafePerformIO $\n      withCString \"RootMotionView\" $\n        \\ clsNamePtr ->\n          withCString \"get_cell_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_cell_size ::\n                (RootMotionView :< cls, Object :< cls) => cls -> IO Float\nget_cell_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRootMotionView_get_cell_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RootMotionView \"get_cell_size\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.RootMotionView.get_cell_size\n\n{-# NOINLINE bindRootMotionView_set_cell_size #-}\n\nbindRootMotionView_set_cell_size :: MethodBind\nbindRootMotionView_set_cell_size\n  = unsafePerformIO $\n      withCString \"RootMotionView\" $\n        \\ clsNamePtr ->\n          withCString \"set_cell_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_cell_size ::\n                (RootMotionView :< cls, Object :< cls) => cls -> Float -> IO ()\nset_cell_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRootMotionView_set_cell_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RootMotionView \"set_cell_size\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.RootMotionView.set_cell_size\n\ninstance NodeProperty RootMotionView \"cell_size\" Float 'False where\n        nodeProperty\n          = (get_cell_size, wrapDroppingSetter set_cell_size, Nothing)\n\n{-# NOINLINE bindRootMotionView_get_color #-}\n\nbindRootMotionView_get_color :: MethodBind\nbindRootMotionView_get_color\n  = unsafePerformIO $\n      withCString \"RootMotionView\" $\n        \\ clsNamePtr ->\n          withCString \"get_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_color ::\n            (RootMotionView :< cls, Object :< cls) => cls -> IO Color\nget_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRootMotionView_get_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RootMotionView \"get_color\" '[] (IO Color) where\n        nodeMethod = Godot.Core.RootMotionView.get_color\n\n{-# NOINLINE bindRootMotionView_set_color #-}\n\nbindRootMotionView_set_color :: MethodBind\nbindRootMotionView_set_color\n  = unsafePerformIO $\n      withCString \"RootMotionView\" $\n        \\ clsNamePtr ->\n          withCString \"set_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_color ::\n            (RootMotionView :< cls, Object :< cls) => cls -> Color -> IO ()\nset_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRootMotionView_set_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RootMotionView \"set_color\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.RootMotionView.set_color\n\ninstance NodeProperty RootMotionView \"color\" Color 'False where\n        nodeProperty = (get_color, wrapDroppingSetter set_color, Nothing)\n\n{-# NOINLINE bindRootMotionView_get_radius #-}\n\nbindRootMotionView_get_radius :: MethodBind\nbindRootMotionView_get_radius\n  = unsafePerformIO $\n      withCString \"RootMotionView\" $\n        \\ clsNamePtr ->\n          withCString \"get_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_radius ::\n             (RootMotionView :< cls, Object :< cls) => cls -> IO Float\nget_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRootMotionView_get_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RootMotionView \"get_radius\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.RootMotionView.get_radius\n\n{-# NOINLINE bindRootMotionView_set_radius #-}\n\nbindRootMotionView_set_radius :: MethodBind\nbindRootMotionView_set_radius\n  = unsafePerformIO $\n      withCString \"RootMotionView\" $\n        \\ clsNamePtr ->\n          withCString \"set_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_radius ::\n             (RootMotionView :< cls, Object :< cls) => cls -> Float -> IO ()\nset_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRootMotionView_set_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RootMotionView \"set_radius\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.RootMotionView.set_radius\n\ninstance NodeProperty RootMotionView \"radius\" Float 'False where\n        nodeProperty = (get_radius, wrapDroppingSetter set_radius, Nothing)\n\n{-# NOINLINE bindRootMotionView_get_zero_y #-}\n\nbindRootMotionView_get_zero_y :: MethodBind\nbindRootMotionView_get_zero_y\n  = unsafePerformIO $\n      withCString \"RootMotionView\" $\n        \\ clsNamePtr ->\n          withCString \"get_zero_y\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_zero_y ::\n             (RootMotionView :< cls, Object :< cls) => cls -> IO Bool\nget_zero_y cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRootMotionView_get_zero_y (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RootMotionView \"get_zero_y\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.RootMotionView.get_zero_y\n\n{-# NOINLINE bindRootMotionView_set_zero_y #-}\n\nbindRootMotionView_set_zero_y :: MethodBind\nbindRootMotionView_set_zero_y\n  = unsafePerformIO $\n      withCString \"RootMotionView\" $\n        \\ clsNamePtr ->\n          withCString \"set_zero_y\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_zero_y ::\n             (RootMotionView :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_zero_y cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindRootMotionView_set_zero_y (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod RootMotionView \"set_zero_y\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.RootMotionView.set_zero_y\n\ninstance NodeProperty RootMotionView \"zero_y\" Bool 'False where\n        nodeProperty = (get_zero_y, wrapDroppingSetter set_zero_y, Nothing)"
  },
  {
    "path": "src/Godot/Core/SceneState.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SceneState\n       (Godot.Core.SceneState._GEN_EDIT_STATE_DISABLED,\n        Godot.Core.SceneState._GEN_EDIT_STATE_MAIN,\n        Godot.Core.SceneState._GEN_EDIT_STATE_INSTANCE,\n        Godot.Core.SceneState.get_connection_binds,\n        Godot.Core.SceneState.get_connection_count,\n        Godot.Core.SceneState.get_connection_flags,\n        Godot.Core.SceneState.get_connection_method,\n        Godot.Core.SceneState.get_connection_signal,\n        Godot.Core.SceneState.get_connection_source,\n        Godot.Core.SceneState.get_connection_target,\n        Godot.Core.SceneState.get_node_count,\n        Godot.Core.SceneState.get_node_groups,\n        Godot.Core.SceneState.get_node_index,\n        Godot.Core.SceneState.get_node_instance,\n        Godot.Core.SceneState.get_node_instance_placeholder,\n        Godot.Core.SceneState.get_node_name,\n        Godot.Core.SceneState.get_node_owner_path,\n        Godot.Core.SceneState.get_node_path,\n        Godot.Core.SceneState.get_node_property_count,\n        Godot.Core.SceneState.get_node_property_name,\n        Godot.Core.SceneState.get_node_property_value,\n        Godot.Core.SceneState.get_node_type,\n        Godot.Core.SceneState.is_node_instance_placeholder)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n_GEN_EDIT_STATE_DISABLED :: Int\n_GEN_EDIT_STATE_DISABLED = 0\n\n_GEN_EDIT_STATE_MAIN :: Int\n_GEN_EDIT_STATE_MAIN = 2\n\n_GEN_EDIT_STATE_INSTANCE :: Int\n_GEN_EDIT_STATE_INSTANCE = 1\n\n{-# NOINLINE bindSceneState_get_connection_binds #-}\n\n-- | Returns the list of bound parameters for the signal at @idx@.\nbindSceneState_get_connection_binds :: MethodBind\nbindSceneState_get_connection_binds\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection_binds\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the list of bound parameters for the signal at @idx@.\nget_connection_binds ::\n                       (SceneState :< cls, Object :< cls) => cls -> Int -> IO Array\nget_connection_binds cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_connection_binds\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_connection_binds\" '[Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.SceneState.get_connection_binds\n\n{-# NOINLINE bindSceneState_get_connection_count #-}\n\n-- | Returns the number of signal connections in the scene.\n--   \t\t\t\tThe @idx@ argument used to query connection metadata in other @get_connection_*@ methods in the interval @@0, get_connection_count() - 1@@.\nbindSceneState_get_connection_count :: MethodBind\nbindSceneState_get_connection_count\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of signal connections in the scene.\n--   \t\t\t\tThe @idx@ argument used to query connection metadata in other @get_connection_*@ methods in the interval @@0, get_connection_count() - 1@@.\nget_connection_count ::\n                       (SceneState :< cls, Object :< cls) => cls -> IO Int\nget_connection_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_connection_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_connection_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.SceneState.get_connection_count\n\n{-# NOINLINE bindSceneState_get_connection_flags #-}\n\n-- | Returns the connection flags for the signal at @idx@. See @enum Object.ConnectFlags@ constants.\nbindSceneState_get_connection_flags :: MethodBind\nbindSceneState_get_connection_flags\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the connection flags for the signal at @idx@. See @enum Object.ConnectFlags@ constants.\nget_connection_flags ::\n                       (SceneState :< cls, Object :< cls) => cls -> Int -> IO Int\nget_connection_flags cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_connection_flags\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_connection_flags\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.SceneState.get_connection_flags\n\n{-# NOINLINE bindSceneState_get_connection_method #-}\n\n-- | Returns the method connected to the signal at @idx@.\nbindSceneState_get_connection_method :: MethodBind\nbindSceneState_get_connection_method\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection_method\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the method connected to the signal at @idx@.\nget_connection_method ::\n                        (SceneState :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_connection_method cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_connection_method\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_connection_method\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.SceneState.get_connection_method\n\n{-# NOINLINE bindSceneState_get_connection_signal #-}\n\n-- | Returns the name of the signal at @idx@.\nbindSceneState_get_connection_signal :: MethodBind\nbindSceneState_get_connection_signal\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection_signal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of the signal at @idx@.\nget_connection_signal ::\n                        (SceneState :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_connection_signal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_connection_signal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_connection_signal\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.SceneState.get_connection_signal\n\n{-# NOINLINE bindSceneState_get_connection_source #-}\n\n-- | Returns the path to the node that owns the signal at @idx@, relative to the root node.\nbindSceneState_get_connection_source :: MethodBind\nbindSceneState_get_connection_source\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection_source\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the path to the node that owns the signal at @idx@, relative to the root node.\nget_connection_source ::\n                        (SceneState :< cls, Object :< cls) => cls -> Int -> IO NodePath\nget_connection_source cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_connection_source\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_connection_source\" '[Int]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.SceneState.get_connection_source\n\n{-# NOINLINE bindSceneState_get_connection_target #-}\n\n-- | Returns the path to the node that owns the method connected to the signal at @idx@, relative to the root node.\nbindSceneState_get_connection_target :: MethodBind\nbindSceneState_get_connection_target\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection_target\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the path to the node that owns the method connected to the signal at @idx@, relative to the root node.\nget_connection_target ::\n                        (SceneState :< cls, Object :< cls) => cls -> Int -> IO NodePath\nget_connection_target cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_connection_target\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_connection_target\" '[Int]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.SceneState.get_connection_target\n\n{-# NOINLINE bindSceneState_get_node_count #-}\n\n-- | Returns the number of nodes in the scene.\n--   \t\t\t\tThe @idx@ argument used to query node data in other @get_node_*@ methods in the interval @@0, get_node_count() - 1@@.\nbindSceneState_get_node_count :: MethodBind\nbindSceneState_get_node_count\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of nodes in the scene.\n--   \t\t\t\tThe @idx@ argument used to query node data in other @get_node_*@ methods in the interval @@0, get_node_count() - 1@@.\nget_node_count ::\n                 (SceneState :< cls, Object :< cls) => cls -> IO Int\nget_node_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_node_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_node_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.SceneState.get_node_count\n\n{-# NOINLINE bindSceneState_get_node_groups #-}\n\n-- | Returns the list of group names associated with the node at @idx@.\nbindSceneState_get_node_groups :: MethodBind\nbindSceneState_get_node_groups\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_groups\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the list of group names associated with the node at @idx@.\nget_node_groups ::\n                  (SceneState :< cls, Object :< cls) =>\n                  cls -> Int -> IO PoolStringArray\nget_node_groups cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_node_groups (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_node_groups\" '[Int]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.SceneState.get_node_groups\n\n{-# NOINLINE bindSceneState_get_node_index #-}\n\n-- | Returns the node's index, which is its position relative to its siblings. This is only relevant and saved in scenes for cases where new nodes are added to an instanced or inherited scene among siblings from the base scene. Despite the name, this index is not related to the @idx@ argument used here and in other methods.\nbindSceneState_get_node_index :: MethodBind\nbindSceneState_get_node_index\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the node's index, which is its position relative to its siblings. This is only relevant and saved in scenes for cases where new nodes are added to an instanced or inherited scene among siblings from the base scene. Despite the name, this index is not related to the @idx@ argument used here and in other methods.\nget_node_index ::\n                 (SceneState :< cls, Object :< cls) => cls -> Int -> IO Int\nget_node_index cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_node_index (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_node_index\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.SceneState.get_node_index\n\n{-# NOINLINE bindSceneState_get_node_instance #-}\n\n-- | Returns a @PackedScene@ for the node at @idx@ (i.e. the whole branch starting at this node, with its child nodes and resources), or @null@ if the node is not an instance.\nbindSceneState_get_node_instance :: MethodBind\nbindSceneState_get_node_instance\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_instance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @PackedScene@ for the node at @idx@ (i.e. the whole branch starting at this node, with its child nodes and resources), or @null@ if the node is not an instance.\nget_node_instance ::\n                    (SceneState :< cls, Object :< cls) => cls -> Int -> IO PackedScene\nget_node_instance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_node_instance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_node_instance\" '[Int]\n           (IO PackedScene)\n         where\n        nodeMethod = Godot.Core.SceneState.get_node_instance\n\n{-# NOINLINE bindSceneState_get_node_instance_placeholder #-}\n\n-- | Returns the path to the represented scene file if the node at @idx@ is an @InstancePlaceholder@.\nbindSceneState_get_node_instance_placeholder :: MethodBind\nbindSceneState_get_node_instance_placeholder\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_instance_placeholder\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the path to the represented scene file if the node at @idx@ is an @InstancePlaceholder@.\nget_node_instance_placeholder ::\n                                (SceneState :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_node_instance_placeholder cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_node_instance_placeholder\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_node_instance_placeholder\"\n           '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.SceneState.get_node_instance_placeholder\n\n{-# NOINLINE bindSceneState_get_node_name #-}\n\n-- | Returns the name of the node at @idx@.\nbindSceneState_get_node_name :: MethodBind\nbindSceneState_get_node_name\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of the node at @idx@.\nget_node_name ::\n                (SceneState :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_node_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_node_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_node_name\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.SceneState.get_node_name\n\n{-# NOINLINE bindSceneState_get_node_owner_path #-}\n\n-- | Returns the path to the owner of the node at @idx@, relative to the root node.\nbindSceneState_get_node_owner_path :: MethodBind\nbindSceneState_get_node_owner_path\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_owner_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the path to the owner of the node at @idx@, relative to the root node.\nget_node_owner_path ::\n                      (SceneState :< cls, Object :< cls) => cls -> Int -> IO NodePath\nget_node_owner_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_node_owner_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_node_owner_path\" '[Int]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.SceneState.get_node_owner_path\n\n{-# NOINLINE bindSceneState_get_node_path #-}\n\n-- | Returns the path to the node at @idx@.\n--   \t\t\t\tIf @for_parent@ is @true@, returns the path of the @idx@ node's parent instead.\nbindSceneState_get_node_path :: MethodBind\nbindSceneState_get_node_path\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the path to the node at @idx@.\n--   \t\t\t\tIf @for_parent@ is @true@, returns the path of the @idx@ node's parent instead.\nget_node_path ::\n                (SceneState :< cls, Object :< cls) =>\n                cls -> Int -> Maybe Bool -> IO NodePath\nget_node_path cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_node_path (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_node_path\" '[Int, Maybe Bool]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.SceneState.get_node_path\n\n{-# NOINLINE bindSceneState_get_node_property_count #-}\n\n-- | Returns the number of exported or overridden properties for the node at @idx@.\n--   \t\t\t\tThe @prop_idx@ argument used to query node property data in other @get_node_property_*@ methods in the interval @@0, get_node_property_count() - 1@@.\nbindSceneState_get_node_property_count :: MethodBind\nbindSceneState_get_node_property_count\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_property_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of exported or overridden properties for the node at @idx@.\n--   \t\t\t\tThe @prop_idx@ argument used to query node property data in other @get_node_property_*@ methods in the interval @@0, get_node_property_count() - 1@@.\nget_node_property_count ::\n                          (SceneState :< cls, Object :< cls) => cls -> Int -> IO Int\nget_node_property_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_node_property_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_node_property_count\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.SceneState.get_node_property_count\n\n{-# NOINLINE bindSceneState_get_node_property_name #-}\n\n-- | Returns the name of the property at @prop_idx@ for the node at @idx@.\nbindSceneState_get_node_property_name :: MethodBind\nbindSceneState_get_node_property_name\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_property_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of the property at @prop_idx@ for the node at @idx@.\nget_node_property_name ::\n                         (SceneState :< cls, Object :< cls) =>\n                         cls -> Int -> Int -> IO GodotString\nget_node_property_name cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_node_property_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_node_property_name\" '[Int, Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.SceneState.get_node_property_name\n\n{-# NOINLINE bindSceneState_get_node_property_value #-}\n\n-- | Returns the value of the property at @prop_idx@ for the node at @idx@.\nbindSceneState_get_node_property_value :: MethodBind\nbindSceneState_get_node_property_value\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_property_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of the property at @prop_idx@ for the node at @idx@.\nget_node_property_value ::\n                          (SceneState :< cls, Object :< cls) =>\n                          cls -> Int -> Int -> IO GodotVariant\nget_node_property_value cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_node_property_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_node_property_value\"\n           '[Int, Int]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.SceneState.get_node_property_value\n\n{-# NOINLINE bindSceneState_get_node_type #-}\n\n-- | Returns the type of the node at @idx@.\nbindSceneState_get_node_type :: MethodBind\nbindSceneState_get_node_type\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the type of the node at @idx@.\nget_node_type ::\n                (SceneState :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_node_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_get_node_type (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"get_node_type\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.SceneState.get_node_type\n\n{-# NOINLINE bindSceneState_is_node_instance_placeholder #-}\n\n-- | Returns @true@ if the node at @idx@ is an @InstancePlaceholder@.\nbindSceneState_is_node_instance_placeholder :: MethodBind\nbindSceneState_is_node_instance_placeholder\n  = unsafePerformIO $\n      withCString \"SceneState\" $\n        \\ clsNamePtr ->\n          withCString \"is_node_instance_placeholder\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the node at @idx@ is an @InstancePlaceholder@.\nis_node_instance_placeholder ::\n                               (SceneState :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_node_instance_placeholder cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneState_is_node_instance_placeholder\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneState \"is_node_instance_placeholder\"\n           '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.SceneState.is_node_instance_placeholder"
  },
  {
    "path": "src/Godot/Core/SceneTree.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SceneTree\n       (Godot.Core.SceneTree._STRETCH_ASPECT_KEEP,\n        Godot.Core.SceneTree._STRETCH_ASPECT_IGNORE,\n        Godot.Core.SceneTree._GROUP_CALL_REALTIME,\n        Godot.Core.SceneTree._GROUP_CALL_UNIQUE,\n        Godot.Core.SceneTree._STRETCH_MODE_DISABLED,\n        Godot.Core.SceneTree._STRETCH_ASPECT_KEEP_HEIGHT,\n        Godot.Core.SceneTree._STRETCH_MODE_2D,\n        Godot.Core.SceneTree._GROUP_CALL_REVERSE,\n        Godot.Core.SceneTree._STRETCH_ASPECT_KEEP_WIDTH,\n        Godot.Core.SceneTree._STRETCH_MODE_VIEWPORT,\n        Godot.Core.SceneTree._GROUP_CALL_DEFAULT,\n        Godot.Core.SceneTree._STRETCH_ASPECT_EXPAND,\n        Godot.Core.SceneTree.sig_connected_to_server,\n        Godot.Core.SceneTree.sig_connection_failed,\n        Godot.Core.SceneTree.sig_files_dropped,\n        Godot.Core.SceneTree.sig_global_menu_action,\n        Godot.Core.SceneTree.sig_idle_frame,\n        Godot.Core.SceneTree.sig_network_peer_connected,\n        Godot.Core.SceneTree.sig_network_peer_disconnected,\n        Godot.Core.SceneTree.sig_node_added,\n        Godot.Core.SceneTree.sig_node_configuration_warning_changed,\n        Godot.Core.SceneTree.sig_node_removed,\n        Godot.Core.SceneTree.sig_node_renamed,\n        Godot.Core.SceneTree.sig_physics_frame,\n        Godot.Core.SceneTree.sig_screen_resized,\n        Godot.Core.SceneTree.sig_server_disconnected,\n        Godot.Core.SceneTree.sig_tree_changed,\n        Godot.Core.SceneTree._change_scene,\n        Godot.Core.SceneTree._connected_to_server,\n        Godot.Core.SceneTree._connection_failed,\n        Godot.Core.SceneTree._network_peer_connected,\n        Godot.Core.SceneTree._network_peer_disconnected,\n        Godot.Core.SceneTree._server_disconnected,\n        Godot.Core.SceneTree.call_group,\n        Godot.Core.SceneTree.call_group_flags,\n        Godot.Core.SceneTree.change_scene,\n        Godot.Core.SceneTree.change_scene_to,\n        Godot.Core.SceneTree.create_timer,\n        Godot.Core.SceneTree.get_current_scene,\n        Godot.Core.SceneTree.get_edited_scene_root,\n        Godot.Core.SceneTree.get_frame,\n        Godot.Core.SceneTree.get_multiplayer,\n        Godot.Core.SceneTree.get_network_connected_peers,\n        Godot.Core.SceneTree.get_network_peer,\n        Godot.Core.SceneTree.get_network_unique_id,\n        Godot.Core.SceneTree.get_node_count,\n        Godot.Core.SceneTree.get_nodes_in_group,\n        Godot.Core.SceneTree.get_root,\n        Godot.Core.SceneTree.get_rpc_sender_id,\n        Godot.Core.SceneTree.has_group,\n        Godot.Core.SceneTree.has_network_peer,\n        Godot.Core.SceneTree.is_debugging_collisions_hint,\n        Godot.Core.SceneTree.is_debugging_navigation_hint,\n        Godot.Core.SceneTree.is_input_handled,\n        Godot.Core.SceneTree.is_multiplayer_poll_enabled,\n        Godot.Core.SceneTree.is_network_server,\n        Godot.Core.SceneTree.is_paused,\n        Godot.Core.SceneTree.is_refusing_new_network_connections,\n        Godot.Core.SceneTree.is_using_font_oversampling,\n        Godot.Core.SceneTree.notify_group,\n        Godot.Core.SceneTree.notify_group_flags,\n        Godot.Core.SceneTree.queue_delete, Godot.Core.SceneTree.quit,\n        Godot.Core.SceneTree.reload_current_scene,\n        Godot.Core.SceneTree.set_auto_accept_quit,\n        Godot.Core.SceneTree.set_current_scene,\n        Godot.Core.SceneTree.set_debug_collisions_hint,\n        Godot.Core.SceneTree.set_debug_navigation_hint,\n        Godot.Core.SceneTree.set_edited_scene_root,\n        Godot.Core.SceneTree.set_group,\n        Godot.Core.SceneTree.set_group_flags,\n        Godot.Core.SceneTree.set_input_as_handled,\n        Godot.Core.SceneTree.set_multiplayer,\n        Godot.Core.SceneTree.set_multiplayer_poll_enabled,\n        Godot.Core.SceneTree.set_network_peer,\n        Godot.Core.SceneTree.set_pause,\n        Godot.Core.SceneTree.set_quit_on_go_back,\n        Godot.Core.SceneTree.set_refuse_new_network_connections,\n        Godot.Core.SceneTree.set_screen_stretch,\n        Godot.Core.SceneTree.set_use_font_oversampling)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.MainLoop()\n\n_STRETCH_ASPECT_KEEP :: Int\n_STRETCH_ASPECT_KEEP = 1\n\n_STRETCH_ASPECT_IGNORE :: Int\n_STRETCH_ASPECT_IGNORE = 0\n\n_GROUP_CALL_REALTIME :: Int\n_GROUP_CALL_REALTIME = 2\n\n_GROUP_CALL_UNIQUE :: Int\n_GROUP_CALL_UNIQUE = 4\n\n_STRETCH_MODE_DISABLED :: Int\n_STRETCH_MODE_DISABLED = 0\n\n_STRETCH_ASPECT_KEEP_HEIGHT :: Int\n_STRETCH_ASPECT_KEEP_HEIGHT = 3\n\n_STRETCH_MODE_2D :: Int\n_STRETCH_MODE_2D = 1\n\n_GROUP_CALL_REVERSE :: Int\n_GROUP_CALL_REVERSE = 1\n\n_STRETCH_ASPECT_KEEP_WIDTH :: Int\n_STRETCH_ASPECT_KEEP_WIDTH = 2\n\n_STRETCH_MODE_VIEWPORT :: Int\n_STRETCH_MODE_VIEWPORT = 2\n\n_GROUP_CALL_DEFAULT :: Int\n_GROUP_CALL_DEFAULT = 0\n\n_STRETCH_ASPECT_EXPAND :: Int\n_STRETCH_ASPECT_EXPAND = 4\n\n-- | Emitted whenever this @SceneTree@'s @network_peer@ successfully connected to a server. Only emitted on clients.\nsig_connected_to_server :: Godot.Internal.Dispatch.Signal SceneTree\nsig_connected_to_server\n  = Godot.Internal.Dispatch.Signal \"connected_to_server\"\n\ninstance NodeSignal SceneTree \"connected_to_server\" '[]\n\n-- | Emitted whenever this @SceneTree@'s @network_peer@ fails to establish a connection to a server. Only emitted on clients.\nsig_connection_failed :: Godot.Internal.Dispatch.Signal SceneTree\nsig_connection_failed\n  = Godot.Internal.Dispatch.Signal \"connection_failed\"\n\ninstance NodeSignal SceneTree \"connection_failed\" '[]\n\n-- | Emitted when files are dragged from the OS file manager and dropped in the game window. The arguments are a list of file paths and the identifier of the screen where the drag originated.\nsig_files_dropped :: Godot.Internal.Dispatch.Signal SceneTree\nsig_files_dropped = Godot.Internal.Dispatch.Signal \"files_dropped\"\n\ninstance NodeSignal SceneTree \"files_dropped\"\n           '[PoolStringArray, Int]\n\n-- | Emitted whenever global menu item is clicked.\nsig_global_menu_action :: Godot.Internal.Dispatch.Signal SceneTree\nsig_global_menu_action\n  = Godot.Internal.Dispatch.Signal \"global_menu_action\"\n\ninstance NodeSignal SceneTree \"global_menu_action\" '[(), ()]\n\n-- | Emitted immediately before @method Node._process@ is called on every node in the @SceneTree@.\nsig_idle_frame :: Godot.Internal.Dispatch.Signal SceneTree\nsig_idle_frame = Godot.Internal.Dispatch.Signal \"idle_frame\"\n\ninstance NodeSignal SceneTree \"idle_frame\" '[]\n\n-- | Emitted whenever this @SceneTree@'s @network_peer@ connects with a new peer. ID is the peer ID of the new peer. Clients get notified when other clients connect to the same server. Upon connecting to a server, a client also receives this signal for the server (with ID being 1).\nsig_network_peer_connected ::\n                           Godot.Internal.Dispatch.Signal SceneTree\nsig_network_peer_connected\n  = Godot.Internal.Dispatch.Signal \"network_peer_connected\"\n\ninstance NodeSignal SceneTree \"network_peer_connected\" '[Int]\n\n-- | Emitted whenever this @SceneTree@'s @network_peer@ disconnects from a peer. Clients get notified when other clients disconnect from the same server.\nsig_network_peer_disconnected ::\n                              Godot.Internal.Dispatch.Signal SceneTree\nsig_network_peer_disconnected\n  = Godot.Internal.Dispatch.Signal \"network_peer_disconnected\"\n\ninstance NodeSignal SceneTree \"network_peer_disconnected\" '[Int]\n\n-- | Emitted whenever a node is added to the @SceneTree@.\nsig_node_added :: Godot.Internal.Dispatch.Signal SceneTree\nsig_node_added = Godot.Internal.Dispatch.Signal \"node_added\"\n\ninstance NodeSignal SceneTree \"node_added\" '[Node]\n\n-- | Emitted when a node's configuration changed. Only emitted in @tool@ mode.\nsig_node_configuration_warning_changed ::\n                                       Godot.Internal.Dispatch.Signal SceneTree\nsig_node_configuration_warning_changed\n  = Godot.Internal.Dispatch.Signal\n      \"node_configuration_warning_changed\"\n\ninstance NodeSignal SceneTree \"node_configuration_warning_changed\"\n           '[Node]\n\n-- | Emitted whenever a node is removed from the @SceneTree@.\nsig_node_removed :: Godot.Internal.Dispatch.Signal SceneTree\nsig_node_removed = Godot.Internal.Dispatch.Signal \"node_removed\"\n\ninstance NodeSignal SceneTree \"node_removed\" '[Node]\n\n-- | Emitted whenever a node is renamed.\nsig_node_renamed :: Godot.Internal.Dispatch.Signal SceneTree\nsig_node_renamed = Godot.Internal.Dispatch.Signal \"node_renamed\"\n\ninstance NodeSignal SceneTree \"node_renamed\" '[Node]\n\n-- | Emitted immediately before @method Node._physics_process@ is called on every node in the @SceneTree@.\nsig_physics_frame :: Godot.Internal.Dispatch.Signal SceneTree\nsig_physics_frame = Godot.Internal.Dispatch.Signal \"physics_frame\"\n\ninstance NodeSignal SceneTree \"physics_frame\" '[]\n\n-- | Emitted when the screen resolution (fullscreen) or window size (windowed) changes.\nsig_screen_resized :: Godot.Internal.Dispatch.Signal SceneTree\nsig_screen_resized\n  = Godot.Internal.Dispatch.Signal \"screen_resized\"\n\ninstance NodeSignal SceneTree \"screen_resized\" '[]\n\n-- | Emitted whenever this @SceneTree@'s @network_peer@ disconnected from server. Only emitted on clients.\nsig_server_disconnected :: Godot.Internal.Dispatch.Signal SceneTree\nsig_server_disconnected\n  = Godot.Internal.Dispatch.Signal \"server_disconnected\"\n\ninstance NodeSignal SceneTree \"server_disconnected\" '[]\n\n-- | Emitted whenever the @SceneTree@ hierarchy changed (children being moved or renamed, etc.).\nsig_tree_changed :: Godot.Internal.Dispatch.Signal SceneTree\nsig_tree_changed = Godot.Internal.Dispatch.Signal \"tree_changed\"\n\ninstance NodeSignal SceneTree \"tree_changed\" '[]\n\ninstance NodeProperty SceneTree \"current_scene\" Node 'False where\n        nodeProperty\n          = (get_current_scene, wrapDroppingSetter set_current_scene,\n             Nothing)\n\ninstance NodeProperty SceneTree \"debug_collisions_hint\" Bool 'False\n         where\n        nodeProperty\n          = (is_debugging_collisions_hint,\n             wrapDroppingSetter set_debug_collisions_hint, Nothing)\n\ninstance NodeProperty SceneTree \"debug_navigation_hint\" Bool 'False\n         where\n        nodeProperty\n          = (is_debugging_navigation_hint,\n             wrapDroppingSetter set_debug_navigation_hint, Nothing)\n\ninstance NodeProperty SceneTree \"edited_scene_root\" Node 'False\n         where\n        nodeProperty\n          = (get_edited_scene_root, wrapDroppingSetter set_edited_scene_root,\n             Nothing)\n\ninstance NodeProperty SceneTree \"multiplayer\" MultiplayerAPI 'False\n         where\n        nodeProperty\n          = (get_multiplayer, wrapDroppingSetter set_multiplayer, Nothing)\n\ninstance NodeProperty SceneTree \"multiplayer_poll\" Bool 'False\n         where\n        nodeProperty\n          = (is_multiplayer_poll_enabled,\n             wrapDroppingSetter set_multiplayer_poll_enabled, Nothing)\n\ninstance NodeProperty SceneTree \"network_peer\"\n           NetworkedMultiplayerPeer\n           'False\n         where\n        nodeProperty\n          = (get_network_peer, wrapDroppingSetter set_network_peer, Nothing)\n\ninstance NodeProperty SceneTree \"paused\" Bool 'False where\n        nodeProperty = (is_paused, wrapDroppingSetter set_pause, Nothing)\n\ninstance NodeProperty SceneTree \"refuse_new_network_connections\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (is_refusing_new_network_connections,\n             wrapDroppingSetter set_refuse_new_network_connections, Nothing)\n\ninstance NodeProperty SceneTree \"root\" Viewport 'True where\n        nodeProperty = (get_root, (), Nothing)\n\ninstance NodeProperty SceneTree \"use_font_oversampling\" Bool 'False\n         where\n        nodeProperty\n          = (is_using_font_oversampling,\n             wrapDroppingSetter set_use_font_oversampling, Nothing)\n\n{-# NOINLINE bindSceneTree__change_scene #-}\n\nbindSceneTree__change_scene :: MethodBind\nbindSceneTree__change_scene\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"_change_scene\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_change_scene ::\n                (SceneTree :< cls, Object :< cls) => cls -> Node -> IO ()\n_change_scene cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree__change_scene (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"_change_scene\" '[Node] (IO ()) where\n        nodeMethod = Godot.Core.SceneTree._change_scene\n\n{-# NOINLINE bindSceneTree__connected_to_server #-}\n\nbindSceneTree__connected_to_server :: MethodBind\nbindSceneTree__connected_to_server\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"_connected_to_server\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_connected_to_server ::\n                       (SceneTree :< cls, Object :< cls) => cls -> IO ()\n_connected_to_server cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree__connected_to_server\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"_connected_to_server\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree._connected_to_server\n\n{-# NOINLINE bindSceneTree__connection_failed #-}\n\nbindSceneTree__connection_failed :: MethodBind\nbindSceneTree__connection_failed\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"_connection_failed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_connection_failed ::\n                     (SceneTree :< cls, Object :< cls) => cls -> IO ()\n_connection_failed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree__connection_failed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"_connection_failed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree._connection_failed\n\n{-# NOINLINE bindSceneTree__network_peer_connected #-}\n\nbindSceneTree__network_peer_connected :: MethodBind\nbindSceneTree__network_peer_connected\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"_network_peer_connected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_network_peer_connected ::\n                          (SceneTree :< cls, Object :< cls) => cls -> Int -> IO ()\n_network_peer_connected cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree__network_peer_connected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"_network_peer_connected\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree._network_peer_connected\n\n{-# NOINLINE bindSceneTree__network_peer_disconnected #-}\n\nbindSceneTree__network_peer_disconnected :: MethodBind\nbindSceneTree__network_peer_disconnected\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"_network_peer_disconnected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_network_peer_disconnected ::\n                             (SceneTree :< cls, Object :< cls) => cls -> Int -> IO ()\n_network_peer_disconnected cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree__network_peer_disconnected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"_network_peer_disconnected\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree._network_peer_disconnected\n\n{-# NOINLINE bindSceneTree__server_disconnected #-}\n\nbindSceneTree__server_disconnected :: MethodBind\nbindSceneTree__server_disconnected\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"_server_disconnected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_server_disconnected ::\n                       (SceneTree :< cls, Object :< cls) => cls -> IO ()\n_server_disconnected cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree__server_disconnected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"_server_disconnected\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree._server_disconnected\n\n{-# NOINLINE bindSceneTree_call_group #-}\n\n-- | Calls @method@ on each member of the given group.\nbindSceneTree_call_group :: MethodBind\nbindSceneTree_call_group\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"call_group\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calls @method@ on each member of the given group.\ncall_group ::\n             (SceneTree :< cls, Object :< cls) =>\n             cls ->\n               GodotString -> GodotString -> [Variant 'GodotTy] -> IO GodotVariant\ncall_group cls arg1 arg2 varargs\n  = withVariantArray ([toVariant arg1, toVariant arg2] ++ varargs)\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_call_group (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"call_group\"\n           '[GodotString, GodotString, [Variant 'GodotTy]]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.SceneTree.call_group\n\n{-# NOINLINE bindSceneTree_call_group_flags #-}\n\n-- | Calls @method@ on each member of the given group, respecting the given @enum GroupCallFlags@.\nbindSceneTree_call_group_flags :: MethodBind\nbindSceneTree_call_group_flags\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"call_group_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calls @method@ on each member of the given group, respecting the given @enum GroupCallFlags@.\ncall_group_flags ::\n                   (SceneTree :< cls, Object :< cls) =>\n                   cls ->\n                     Int ->\n                       GodotString -> GodotString -> [Variant 'GodotTy] -> IO GodotVariant\ncall_group_flags cls arg1 arg2 arg3 varargs\n  = withVariantArray\n      ([toVariant arg1, toVariant arg2, toVariant arg3] ++ varargs)\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_call_group_flags (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"call_group_flags\"\n           '[Int, GodotString, GodotString, [Variant 'GodotTy]]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.SceneTree.call_group_flags\n\n{-# NOINLINE bindSceneTree_change_scene #-}\n\n-- | Changes the running scene to the one at the given @path@, after loading it into a @PackedScene@ and creating a new instance.\n--   \t\t\t\tReturns @OK@ on success, @ERR_CANT_OPEN@ if the @path@ cannot be loaded into a @PackedScene@, or @ERR_CANT_CREATE@ if that scene cannot be instantiated.\nbindSceneTree_change_scene :: MethodBind\nbindSceneTree_change_scene\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"change_scene\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes the running scene to the one at the given @path@, after loading it into a @PackedScene@ and creating a new instance.\n--   \t\t\t\tReturns @OK@ on success, @ERR_CANT_OPEN@ if the @path@ cannot be loaded into a @PackedScene@, or @ERR_CANT_CREATE@ if that scene cannot be instantiated.\nchange_scene ::\n               (SceneTree :< cls, Object :< cls) => cls -> GodotString -> IO Int\nchange_scene cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_change_scene (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"change_scene\" '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.SceneTree.change_scene\n\n{-# NOINLINE bindSceneTree_change_scene_to #-}\n\n-- | Changes the running scene to a new instance of the given @PackedScene@.\n--   \t\t\t\tReturns @OK@ on success or @ERR_CANT_CREATE@ if the scene cannot be instantiated.\nbindSceneTree_change_scene_to :: MethodBind\nbindSceneTree_change_scene_to\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"change_scene_to\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes the running scene to a new instance of the given @PackedScene@.\n--   \t\t\t\tReturns @OK@ on success or @ERR_CANT_CREATE@ if the scene cannot be instantiated.\nchange_scene_to ::\n                  (SceneTree :< cls, Object :< cls) => cls -> PackedScene -> IO Int\nchange_scene_to cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_change_scene_to (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"change_scene_to\" '[PackedScene]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.SceneTree.change_scene_to\n\n{-# NOINLINE bindSceneTree_create_timer #-}\n\n-- | Returns a @SceneTreeTimer@ which will @signal SceneTreeTimer.timeout@ after the given time in seconds elapsed in this @SceneTree@. If @pause_mode_process@ is set to @false@, pausing the @SceneTree@ will also pause the timer.\n--   \t\t\t\tCommonly used to create a one-shot delay timer as in the following example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc some_function():\n--   \t\t\t\t    print(\"start\")\n--   \t\t\t\t    yield(get_tree().create_timer(1.0), \"timeout\")\n--   \t\t\t\t    print(\"end\")\n--   \t\t\t\t\n--   @\nbindSceneTree_create_timer :: MethodBind\nbindSceneTree_create_timer\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"create_timer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @SceneTreeTimer@ which will @signal SceneTreeTimer.timeout@ after the given time in seconds elapsed in this @SceneTree@. If @pause_mode_process@ is set to @false@, pausing the @SceneTree@ will also pause the timer.\n--   \t\t\t\tCommonly used to create a one-shot delay timer as in the following example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc some_function():\n--   \t\t\t\t    print(\"start\")\n--   \t\t\t\t    yield(get_tree().create_timer(1.0), \"timeout\")\n--   \t\t\t\t    print(\"end\")\n--   \t\t\t\t\n--   @\ncreate_timer ::\n               (SceneTree :< cls, Object :< cls) =>\n               cls -> Float -> Maybe Bool -> IO SceneTreeTimer\ncreate_timer cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool True) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_create_timer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"create_timer\" '[Float, Maybe Bool]\n           (IO SceneTreeTimer)\n         where\n        nodeMethod = Godot.Core.SceneTree.create_timer\n\n{-# NOINLINE bindSceneTree_get_current_scene #-}\n\n-- | The current scene.\nbindSceneTree_get_current_scene :: MethodBind\nbindSceneTree_get_current_scene\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_scene\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current scene.\nget_current_scene ::\n                    (SceneTree :< cls, Object :< cls) => cls -> IO Node\nget_current_scene cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_get_current_scene (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"get_current_scene\" '[] (IO Node)\n         where\n        nodeMethod = Godot.Core.SceneTree.get_current_scene\n\n{-# NOINLINE bindSceneTree_get_edited_scene_root #-}\n\n-- | The root of the edited scene.\nbindSceneTree_get_edited_scene_root :: MethodBind\nbindSceneTree_get_edited_scene_root\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_edited_scene_root\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The root of the edited scene.\nget_edited_scene_root ::\n                        (SceneTree :< cls, Object :< cls) => cls -> IO Node\nget_edited_scene_root cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_get_edited_scene_root\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"get_edited_scene_root\" '[] (IO Node)\n         where\n        nodeMethod = Godot.Core.SceneTree.get_edited_scene_root\n\n{-# NOINLINE bindSceneTree_get_frame #-}\n\n-- | Returns the current frame number, i.e. the total frame count since the application started.\nbindSceneTree_get_frame :: MethodBind\nbindSceneTree_get_frame\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_frame\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current frame number, i.e. the total frame count since the application started.\nget_frame :: (SceneTree :< cls, Object :< cls) => cls -> IO Int\nget_frame cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_get_frame (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"get_frame\" '[] (IO Int) where\n        nodeMethod = Godot.Core.SceneTree.get_frame\n\n{-# NOINLINE bindSceneTree_get_multiplayer #-}\n\n-- | The default @MultiplayerAPI@ instance for this @SceneTree@.\nbindSceneTree_get_multiplayer :: MethodBind\nbindSceneTree_get_multiplayer\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_multiplayer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The default @MultiplayerAPI@ instance for this @SceneTree@.\nget_multiplayer ::\n                  (SceneTree :< cls, Object :< cls) => cls -> IO MultiplayerAPI\nget_multiplayer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_get_multiplayer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"get_multiplayer\" '[]\n           (IO MultiplayerAPI)\n         where\n        nodeMethod = Godot.Core.SceneTree.get_multiplayer\n\n{-# NOINLINE bindSceneTree_get_network_connected_peers #-}\n\n-- | Returns the peer IDs of all connected peers of this @SceneTree@'s @network_peer@.\nbindSceneTree_get_network_connected_peers :: MethodBind\nbindSceneTree_get_network_connected_peers\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_network_connected_peers\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the peer IDs of all connected peers of this @SceneTree@'s @network_peer@.\nget_network_connected_peers ::\n                              (SceneTree :< cls, Object :< cls) => cls -> IO PoolIntArray\nget_network_connected_peers cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_get_network_connected_peers\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"get_network_connected_peers\" '[]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.SceneTree.get_network_connected_peers\n\n{-# NOINLINE bindSceneTree_get_network_peer #-}\n\n-- | The peer object to handle the RPC system (effectively enabling networking when set). Depending on the peer itself, the @SceneTree@ will become a network server (check with @method is_network_server@) and will set the root node's network mode to master, or it will become a regular peer with the root node set to puppet. All child nodes are set to inherit the network mode by default. Handling of networking-related events (connection, disconnection, new clients) is done by connecting to @SceneTree@'s signals.\nbindSceneTree_get_network_peer :: MethodBind\nbindSceneTree_get_network_peer\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_network_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The peer object to handle the RPC system (effectively enabling networking when set). Depending on the peer itself, the @SceneTree@ will become a network server (check with @method is_network_server@) and will set the root node's network mode to master, or it will become a regular peer with the root node set to puppet. All child nodes are set to inherit the network mode by default. Handling of networking-related events (connection, disconnection, new clients) is done by connecting to @SceneTree@'s signals.\nget_network_peer ::\n                   (SceneTree :< cls, Object :< cls) =>\n                   cls -> IO NetworkedMultiplayerPeer\nget_network_peer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_get_network_peer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"get_network_peer\" '[]\n           (IO NetworkedMultiplayerPeer)\n         where\n        nodeMethod = Godot.Core.SceneTree.get_network_peer\n\n{-# NOINLINE bindSceneTree_get_network_unique_id #-}\n\n-- | Returns the unique peer ID of this @SceneTree@'s @network_peer@.\nbindSceneTree_get_network_unique_id :: MethodBind\nbindSceneTree_get_network_unique_id\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_network_unique_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the unique peer ID of this @SceneTree@'s @network_peer@.\nget_network_unique_id ::\n                        (SceneTree :< cls, Object :< cls) => cls -> IO Int\nget_network_unique_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_get_network_unique_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"get_network_unique_id\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.SceneTree.get_network_unique_id\n\n{-# NOINLINE bindSceneTree_get_node_count #-}\n\n-- | Returns the number of nodes in this @SceneTree@.\nbindSceneTree_get_node_count :: MethodBind\nbindSceneTree_get_node_count\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of nodes in this @SceneTree@.\nget_node_count ::\n                 (SceneTree :< cls, Object :< cls) => cls -> IO Int\nget_node_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_get_node_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"get_node_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.SceneTree.get_node_count\n\n{-# NOINLINE bindSceneTree_get_nodes_in_group #-}\n\n-- | Returns a list of all nodes assigned to the given group.\nbindSceneTree_get_nodes_in_group :: MethodBind\nbindSceneTree_get_nodes_in_group\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_nodes_in_group\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a list of all nodes assigned to the given group.\nget_nodes_in_group ::\n                     (SceneTree :< cls, Object :< cls) => cls -> GodotString -> IO Array\nget_nodes_in_group cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_get_nodes_in_group\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"get_nodes_in_group\" '[GodotString]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.SceneTree.get_nodes_in_group\n\n{-# NOINLINE bindSceneTree_get_root #-}\n\n-- | The @SceneTree@'s root @Viewport@.\nbindSceneTree_get_root :: MethodBind\nbindSceneTree_get_root\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_root\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @SceneTree@'s root @Viewport@.\nget_root :: (SceneTree :< cls, Object :< cls) => cls -> IO Viewport\nget_root cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_get_root (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"get_root\" '[] (IO Viewport) where\n        nodeMethod = Godot.Core.SceneTree.get_root\n\n{-# NOINLINE bindSceneTree_get_rpc_sender_id #-}\n\n-- | Returns the sender's peer ID for the most recently received RPC call.\nbindSceneTree_get_rpc_sender_id :: MethodBind\nbindSceneTree_get_rpc_sender_id\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"get_rpc_sender_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the sender's peer ID for the most recently received RPC call.\nget_rpc_sender_id ::\n                    (SceneTree :< cls, Object :< cls) => cls -> IO Int\nget_rpc_sender_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_get_rpc_sender_id (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"get_rpc_sender_id\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.SceneTree.get_rpc_sender_id\n\n{-# NOINLINE bindSceneTree_has_group #-}\n\n-- | Returns @true@ if the given group exists.\nbindSceneTree_has_group :: MethodBind\nbindSceneTree_has_group\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"has_group\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the given group exists.\nhas_group ::\n            (SceneTree :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_group cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_has_group (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"has_group\" '[GodotString] (IO Bool)\n         where\n        nodeMethod = Godot.Core.SceneTree.has_group\n\n{-# NOINLINE bindSceneTree_has_network_peer #-}\n\n-- | Returns @true@ if there is a @network_peer@ set.\nbindSceneTree_has_network_peer :: MethodBind\nbindSceneTree_has_network_peer\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"has_network_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if there is a @network_peer@ set.\nhas_network_peer ::\n                   (SceneTree :< cls, Object :< cls) => cls -> IO Bool\nhas_network_peer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_has_network_peer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"has_network_peer\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.SceneTree.has_network_peer\n\n{-# NOINLINE bindSceneTree_is_debugging_collisions_hint #-}\n\n-- | If @true@, collision shapes will be visible when running the game from the editor for debugging purposes.\nbindSceneTree_is_debugging_collisions_hint :: MethodBind\nbindSceneTree_is_debugging_collisions_hint\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"is_debugging_collisions_hint\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, collision shapes will be visible when running the game from the editor for debugging purposes.\nis_debugging_collisions_hint ::\n                               (SceneTree :< cls, Object :< cls) => cls -> IO Bool\nis_debugging_collisions_hint cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_is_debugging_collisions_hint\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"is_debugging_collisions_hint\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.SceneTree.is_debugging_collisions_hint\n\n{-# NOINLINE bindSceneTree_is_debugging_navigation_hint #-}\n\n-- | If @true@, navigation polygons will be visible when running the game from the editor for debugging purposes.\nbindSceneTree_is_debugging_navigation_hint :: MethodBind\nbindSceneTree_is_debugging_navigation_hint\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"is_debugging_navigation_hint\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, navigation polygons will be visible when running the game from the editor for debugging purposes.\nis_debugging_navigation_hint ::\n                               (SceneTree :< cls, Object :< cls) => cls -> IO Bool\nis_debugging_navigation_hint cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_is_debugging_navigation_hint\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"is_debugging_navigation_hint\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.SceneTree.is_debugging_navigation_hint\n\n{-# NOINLINE bindSceneTree_is_input_handled #-}\n\n-- | Returns @true@ if the most recent @InputEvent@ was marked as handled with @method set_input_as_handled@.\nbindSceneTree_is_input_handled :: MethodBind\nbindSceneTree_is_input_handled\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"is_input_handled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the most recent @InputEvent@ was marked as handled with @method set_input_as_handled@.\nis_input_handled ::\n                   (SceneTree :< cls, Object :< cls) => cls -> IO Bool\nis_input_handled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_is_input_handled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"is_input_handled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.SceneTree.is_input_handled\n\n{-# NOINLINE bindSceneTree_is_multiplayer_poll_enabled #-}\n\n-- | If @true@ (default value), enables automatic polling of the @MultiplayerAPI@ for this SceneTree during @signal idle_frame@.\n--   \t\t\tIf @false@, you need to manually call @method MultiplayerAPI.poll@ to process network packets and deliver RPCs/RSETs. This allows running RPCs/RSETs in a different loop (e.g. physics, thread, specific time step) and for manual @Mutex@ protection when accessing the @MultiplayerAPI@ from threads.\nbindSceneTree_is_multiplayer_poll_enabled :: MethodBind\nbindSceneTree_is_multiplayer_poll_enabled\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"is_multiplayer_poll_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@ (default value), enables automatic polling of the @MultiplayerAPI@ for this SceneTree during @signal idle_frame@.\n--   \t\t\tIf @false@, you need to manually call @method MultiplayerAPI.poll@ to process network packets and deliver RPCs/RSETs. This allows running RPCs/RSETs in a different loop (e.g. physics, thread, specific time step) and for manual @Mutex@ protection when accessing the @MultiplayerAPI@ from threads.\nis_multiplayer_poll_enabled ::\n                              (SceneTree :< cls, Object :< cls) => cls -> IO Bool\nis_multiplayer_poll_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_is_multiplayer_poll_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"is_multiplayer_poll_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.SceneTree.is_multiplayer_poll_enabled\n\n{-# NOINLINE bindSceneTree_is_network_server #-}\n\n-- | Returns @true@ if this @SceneTree@'s @network_peer@ is in server mode (listening for connections).\nbindSceneTree_is_network_server :: MethodBind\nbindSceneTree_is_network_server\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"is_network_server\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this @SceneTree@'s @network_peer@ is in server mode (listening for connections).\nis_network_server ::\n                    (SceneTree :< cls, Object :< cls) => cls -> IO Bool\nis_network_server cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_is_network_server (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"is_network_server\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.SceneTree.is_network_server\n\n{-# NOINLINE bindSceneTree_is_paused #-}\n\n-- | If @true@, the @SceneTree@ is paused. Doing so will have the following behavior:\n--   \t\t\t- 2D and 3D physics will be stopped.\n--   \t\t\t- @method Node._process@, @method Node._physics_process@ and @method Node._input@ will not be called anymore in nodes.\nbindSceneTree_is_paused :: MethodBind\nbindSceneTree_is_paused\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"is_paused\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @SceneTree@ is paused. Doing so will have the following behavior:\n--   \t\t\t- 2D and 3D physics will be stopped.\n--   \t\t\t- @method Node._process@, @method Node._physics_process@ and @method Node._input@ will not be called anymore in nodes.\nis_paused :: (SceneTree :< cls, Object :< cls) => cls -> IO Bool\nis_paused cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_is_paused (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"is_paused\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.SceneTree.is_paused\n\n{-# NOINLINE bindSceneTree_is_refusing_new_network_connections #-}\n\n-- | If @true@, the @SceneTree@'s @network_peer@ refuses new incoming connections.\nbindSceneTree_is_refusing_new_network_connections :: MethodBind\nbindSceneTree_is_refusing_new_network_connections\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"is_refusing_new_network_connections\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @SceneTree@'s @network_peer@ refuses new incoming connections.\nis_refusing_new_network_connections ::\n                                      (SceneTree :< cls, Object :< cls) => cls -> IO Bool\nis_refusing_new_network_connections cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSceneTree_is_refusing_new_network_connections\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"is_refusing_new_network_connections\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.SceneTree.is_refusing_new_network_connections\n\n{-# NOINLINE bindSceneTree_is_using_font_oversampling #-}\n\n-- | If @true@, font oversampling is used.\nbindSceneTree_is_using_font_oversampling :: MethodBind\nbindSceneTree_is_using_font_oversampling\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_font_oversampling\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, font oversampling is used.\nis_using_font_oversampling ::\n                             (SceneTree :< cls, Object :< cls) => cls -> IO Bool\nis_using_font_oversampling cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_is_using_font_oversampling\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"is_using_font_oversampling\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.SceneTree.is_using_font_oversampling\n\n{-# NOINLINE bindSceneTree_notify_group #-}\n\n-- | Sends the given notification to all members of the @group@.\nbindSceneTree_notify_group :: MethodBind\nbindSceneTree_notify_group\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"notify_group\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sends the given notification to all members of the @group@.\nnotify_group ::\n               (SceneTree :< cls, Object :< cls) =>\n               cls -> GodotString -> Int -> IO ()\nnotify_group cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_notify_group (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"notify_group\" '[GodotString, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree.notify_group\n\n{-# NOINLINE bindSceneTree_notify_group_flags #-}\n\n-- | Sends the given notification to all members of the @group@, respecting the given @enum GroupCallFlags@.\nbindSceneTree_notify_group_flags :: MethodBind\nbindSceneTree_notify_group_flags\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"notify_group_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sends the given notification to all members of the @group@, respecting the given @enum GroupCallFlags@.\nnotify_group_flags ::\n                     (SceneTree :< cls, Object :< cls) =>\n                     cls -> Int -> GodotString -> Int -> IO ()\nnotify_group_flags cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_notify_group_flags\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"notify_group_flags\"\n           '[Int, GodotString, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree.notify_group_flags\n\n{-# NOINLINE bindSceneTree_queue_delete #-}\n\n-- | Queues the given object for deletion, delaying the call to @method Object.free@ to after the current frame.\nbindSceneTree_queue_delete :: MethodBind\nbindSceneTree_queue_delete\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"queue_delete\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Queues the given object for deletion, delaying the call to @method Object.free@ to after the current frame.\nqueue_delete ::\n               (SceneTree :< cls, Object :< cls) => cls -> Object -> IO ()\nqueue_delete cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_queue_delete (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"queue_delete\" '[Object] (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree.queue_delete\n\n{-# NOINLINE bindSceneTree_quit #-}\n\n-- | Quits the application. A process @exit_code@ can optionally be passed as an argument. If this argument is @0@ or greater, it will override the @OS.exit_code@ defined before quitting the application.\nbindSceneTree_quit :: MethodBind\nbindSceneTree_quit\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"quit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Quits the application. A process @exit_code@ can optionally be passed as an argument. If this argument is @0@ or greater, it will override the @OS.exit_code@ defined before quitting the application.\nquit ::\n       (SceneTree :< cls, Object :< cls) => cls -> Maybe Int -> IO ()\nquit cls arg1\n  = withVariantArray [maybe (VariantInt (-1)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_quit (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"quit\" '[Maybe Int] (IO ()) where\n        nodeMethod = Godot.Core.SceneTree.quit\n\n{-# NOINLINE bindSceneTree_reload_current_scene #-}\n\n-- | Reloads the currently active scene.\n--   \t\t\t\tReturns @OK@ on success, @ERR_UNCONFIGURED@ if no @current_scene@ was defined yet, @ERR_CANT_OPEN@ if @current_scene@ cannot be loaded into a @PackedScene@, or @ERR_CANT_CREATE@ if the scene cannot be instantiated.\nbindSceneTree_reload_current_scene :: MethodBind\nbindSceneTree_reload_current_scene\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"reload_current_scene\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Reloads the currently active scene.\n--   \t\t\t\tReturns @OK@ on success, @ERR_UNCONFIGURED@ if no @current_scene@ was defined yet, @ERR_CANT_OPEN@ if @current_scene@ cannot be loaded into a @PackedScene@, or @ERR_CANT_CREATE@ if the scene cannot be instantiated.\nreload_current_scene ::\n                       (SceneTree :< cls, Object :< cls) => cls -> IO Int\nreload_current_scene cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_reload_current_scene\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"reload_current_scene\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.SceneTree.reload_current_scene\n\n{-# NOINLINE bindSceneTree_set_auto_accept_quit #-}\n\n-- | If @true@, the application automatically accepts quitting. Enabled by default.\n--   \t\t\t\tFor mobile platforms, see @method set_quit_on_go_back@.\nbindSceneTree_set_auto_accept_quit :: MethodBind\nbindSceneTree_set_auto_accept_quit\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_auto_accept_quit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the application automatically accepts quitting. Enabled by default.\n--   \t\t\t\tFor mobile platforms, see @method set_quit_on_go_back@.\nset_auto_accept_quit ::\n                       (SceneTree :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_auto_accept_quit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_set_auto_accept_quit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"set_auto_accept_quit\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree.set_auto_accept_quit\n\n{-# NOINLINE bindSceneTree_set_current_scene #-}\n\n-- | The current scene.\nbindSceneTree_set_current_scene :: MethodBind\nbindSceneTree_set_current_scene\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_current_scene\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current scene.\nset_current_scene ::\n                    (SceneTree :< cls, Object :< cls) => cls -> Node -> IO ()\nset_current_scene cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_set_current_scene (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"set_current_scene\" '[Node] (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree.set_current_scene\n\n{-# NOINLINE bindSceneTree_set_debug_collisions_hint #-}\n\n-- | If @true@, collision shapes will be visible when running the game from the editor for debugging purposes.\nbindSceneTree_set_debug_collisions_hint :: MethodBind\nbindSceneTree_set_debug_collisions_hint\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_debug_collisions_hint\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, collision shapes will be visible when running the game from the editor for debugging purposes.\nset_debug_collisions_hint ::\n                            (SceneTree :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_debug_collisions_hint cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_set_debug_collisions_hint\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"set_debug_collisions_hint\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree.set_debug_collisions_hint\n\n{-# NOINLINE bindSceneTree_set_debug_navigation_hint #-}\n\n-- | If @true@, navigation polygons will be visible when running the game from the editor for debugging purposes.\nbindSceneTree_set_debug_navigation_hint :: MethodBind\nbindSceneTree_set_debug_navigation_hint\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_debug_navigation_hint\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, navigation polygons will be visible when running the game from the editor for debugging purposes.\nset_debug_navigation_hint ::\n                            (SceneTree :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_debug_navigation_hint cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_set_debug_navigation_hint\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"set_debug_navigation_hint\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree.set_debug_navigation_hint\n\n{-# NOINLINE bindSceneTree_set_edited_scene_root #-}\n\n-- | The root of the edited scene.\nbindSceneTree_set_edited_scene_root :: MethodBind\nbindSceneTree_set_edited_scene_root\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_edited_scene_root\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The root of the edited scene.\nset_edited_scene_root ::\n                        (SceneTree :< cls, Object :< cls) => cls -> Node -> IO ()\nset_edited_scene_root cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_set_edited_scene_root\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"set_edited_scene_root\" '[Node]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree.set_edited_scene_root\n\n{-# NOINLINE bindSceneTree_set_group #-}\n\n-- | Sets the given @property@ to @value@ on all members of the given group.\nbindSceneTree_set_group :: MethodBind\nbindSceneTree_set_group\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_group\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the given @property@ to @value@ on all members of the given group.\nset_group ::\n            (SceneTree :< cls, Object :< cls) =>\n            cls -> GodotString -> GodotString -> GodotVariant -> IO ()\nset_group cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_set_group (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"set_group\"\n           '[GodotString, GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree.set_group\n\n{-# NOINLINE bindSceneTree_set_group_flags #-}\n\n-- | Sets the given @property@ to @value@ on all members of the given group, respecting the given @enum GroupCallFlags@.\nbindSceneTree_set_group_flags :: MethodBind\nbindSceneTree_set_group_flags\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_group_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the given @property@ to @value@ on all members of the given group, respecting the given @enum GroupCallFlags@.\nset_group_flags ::\n                  (SceneTree :< cls, Object :< cls) =>\n                  cls -> Int -> GodotString -> GodotString -> GodotVariant -> IO ()\nset_group_flags cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_set_group_flags (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"set_group_flags\"\n           '[Int, GodotString, GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree.set_group_flags\n\n{-# NOINLINE bindSceneTree_set_input_as_handled #-}\n\n-- | Marks the most recent @InputEvent@ as handled.\nbindSceneTree_set_input_as_handled :: MethodBind\nbindSceneTree_set_input_as_handled\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_input_as_handled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Marks the most recent @InputEvent@ as handled.\nset_input_as_handled ::\n                       (SceneTree :< cls, Object :< cls) => cls -> IO ()\nset_input_as_handled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_set_input_as_handled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"set_input_as_handled\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree.set_input_as_handled\n\n{-# NOINLINE bindSceneTree_set_multiplayer #-}\n\n-- | The default @MultiplayerAPI@ instance for this @SceneTree@.\nbindSceneTree_set_multiplayer :: MethodBind\nbindSceneTree_set_multiplayer\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_multiplayer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The default @MultiplayerAPI@ instance for this @SceneTree@.\nset_multiplayer ::\n                  (SceneTree :< cls, Object :< cls) => cls -> MultiplayerAPI -> IO ()\nset_multiplayer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_set_multiplayer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"set_multiplayer\" '[MultiplayerAPI]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree.set_multiplayer\n\n{-# NOINLINE bindSceneTree_set_multiplayer_poll_enabled #-}\n\n-- | If @true@ (default value), enables automatic polling of the @MultiplayerAPI@ for this SceneTree during @signal idle_frame@.\n--   \t\t\tIf @false@, you need to manually call @method MultiplayerAPI.poll@ to process network packets and deliver RPCs/RSETs. This allows running RPCs/RSETs in a different loop (e.g. physics, thread, specific time step) and for manual @Mutex@ protection when accessing the @MultiplayerAPI@ from threads.\nbindSceneTree_set_multiplayer_poll_enabled :: MethodBind\nbindSceneTree_set_multiplayer_poll_enabled\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_multiplayer_poll_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@ (default value), enables automatic polling of the @MultiplayerAPI@ for this SceneTree during @signal idle_frame@.\n--   \t\t\tIf @false@, you need to manually call @method MultiplayerAPI.poll@ to process network packets and deliver RPCs/RSETs. This allows running RPCs/RSETs in a different loop (e.g. physics, thread, specific time step) and for manual @Mutex@ protection when accessing the @MultiplayerAPI@ from threads.\nset_multiplayer_poll_enabled ::\n                               (SceneTree :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_multiplayer_poll_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_set_multiplayer_poll_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"set_multiplayer_poll_enabled\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree.set_multiplayer_poll_enabled\n\n{-# NOINLINE bindSceneTree_set_network_peer #-}\n\n-- | The peer object to handle the RPC system (effectively enabling networking when set). Depending on the peer itself, the @SceneTree@ will become a network server (check with @method is_network_server@) and will set the root node's network mode to master, or it will become a regular peer with the root node set to puppet. All child nodes are set to inherit the network mode by default. Handling of networking-related events (connection, disconnection, new clients) is done by connecting to @SceneTree@'s signals.\nbindSceneTree_set_network_peer :: MethodBind\nbindSceneTree_set_network_peer\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_network_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The peer object to handle the RPC system (effectively enabling networking when set). Depending on the peer itself, the @SceneTree@ will become a network server (check with @method is_network_server@) and will set the root node's network mode to master, or it will become a regular peer with the root node set to puppet. All child nodes are set to inherit the network mode by default. Handling of networking-related events (connection, disconnection, new clients) is done by connecting to @SceneTree@'s signals.\nset_network_peer ::\n                   (SceneTree :< cls, Object :< cls) =>\n                   cls -> NetworkedMultiplayerPeer -> IO ()\nset_network_peer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_set_network_peer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"set_network_peer\"\n           '[NetworkedMultiplayerPeer]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree.set_network_peer\n\n{-# NOINLINE bindSceneTree_set_pause #-}\n\n-- | If @true@, the @SceneTree@ is paused. Doing so will have the following behavior:\n--   \t\t\t- 2D and 3D physics will be stopped.\n--   \t\t\t- @method Node._process@, @method Node._physics_process@ and @method Node._input@ will not be called anymore in nodes.\nbindSceneTree_set_pause :: MethodBind\nbindSceneTree_set_pause\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_pause\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @SceneTree@ is paused. Doing so will have the following behavior:\n--   \t\t\t- 2D and 3D physics will be stopped.\n--   \t\t\t- @method Node._process@, @method Node._physics_process@ and @method Node._input@ will not be called anymore in nodes.\nset_pause ::\n            (SceneTree :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_pause cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_set_pause (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"set_pause\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.SceneTree.set_pause\n\n{-# NOINLINE bindSceneTree_set_quit_on_go_back #-}\n\n-- | If @true@, the application quits automatically on going back (e.g. on Android). Enabled by default.\n--   \t\t\t\tTo handle 'Go Back' button when this option is disabled, use @MainLoop.NOTIFICATION_WM_GO_BACK_REQUEST@.\nbindSceneTree_set_quit_on_go_back :: MethodBind\nbindSceneTree_set_quit_on_go_back\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_quit_on_go_back\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the application quits automatically on going back (e.g. on Android). Enabled by default.\n--   \t\t\t\tTo handle 'Go Back' button when this option is disabled, use @MainLoop.NOTIFICATION_WM_GO_BACK_REQUEST@.\nset_quit_on_go_back ::\n                      (SceneTree :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_quit_on_go_back cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_set_quit_on_go_back\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"set_quit_on_go_back\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree.set_quit_on_go_back\n\n{-# NOINLINE bindSceneTree_set_refuse_new_network_connections #-}\n\n-- | If @true@, the @SceneTree@'s @network_peer@ refuses new incoming connections.\nbindSceneTree_set_refuse_new_network_connections :: MethodBind\nbindSceneTree_set_refuse_new_network_connections\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_refuse_new_network_connections\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @SceneTree@'s @network_peer@ refuses new incoming connections.\nset_refuse_new_network_connections ::\n                                     (SceneTree :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_refuse_new_network_connections cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSceneTree_set_refuse_new_network_connections\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"set_refuse_new_network_connections\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.SceneTree.set_refuse_new_network_connections\n\n{-# NOINLINE bindSceneTree_set_screen_stretch #-}\n\n-- | Configures screen stretching to the given @enum StretchMode@, @enum StretchAspect@, minimum size and @shrink@ ratio.\nbindSceneTree_set_screen_stretch :: MethodBind\nbindSceneTree_set_screen_stretch\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_screen_stretch\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Configures screen stretching to the given @enum StretchMode@, @enum StretchAspect@, minimum size and @shrink@ ratio.\nset_screen_stretch ::\n                     (SceneTree :< cls, Object :< cls) =>\n                     cls -> Int -> Int -> Vector2 -> Maybe Float -> IO ()\nset_screen_stretch cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantReal (1)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_set_screen_stretch\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"set_screen_stretch\"\n           '[Int, Int, Vector2, Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree.set_screen_stretch\n\n{-# NOINLINE bindSceneTree_set_use_font_oversampling #-}\n\n-- | If @true@, font oversampling is used.\nbindSceneTree_set_use_font_oversampling :: MethodBind\nbindSceneTree_set_use_font_oversampling\n  = unsafePerformIO $\n      withCString \"SceneTree\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_font_oversampling\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, font oversampling is used.\nset_use_font_oversampling ::\n                            (SceneTree :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_font_oversampling cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTree_set_use_font_oversampling\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTree \"set_use_font_oversampling\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTree.set_use_font_oversampling"
  },
  {
    "path": "src/Godot/Core/SceneTreeTimer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SceneTreeTimer\n       (Godot.Core.SceneTreeTimer.sig_timeout,\n        Godot.Core.SceneTreeTimer.get_time_left,\n        Godot.Core.SceneTreeTimer.set_time_left)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n-- | Emitted when the timer reaches 0.\nsig_timeout :: Godot.Internal.Dispatch.Signal SceneTreeTimer\nsig_timeout = Godot.Internal.Dispatch.Signal \"timeout\"\n\ninstance NodeSignal SceneTreeTimer \"timeout\" '[]\n\ninstance NodeProperty SceneTreeTimer \"time_left\" Float 'False where\n        nodeProperty\n          = (get_time_left, wrapDroppingSetter set_time_left, Nothing)\n\n{-# NOINLINE bindSceneTreeTimer_get_time_left #-}\n\n-- | The time remaining.\nbindSceneTreeTimer_get_time_left :: MethodBind\nbindSceneTreeTimer_get_time_left\n  = unsafePerformIO $\n      withCString \"SceneTreeTimer\" $\n        \\ clsNamePtr ->\n          withCString \"get_time_left\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The time remaining.\nget_time_left ::\n                (SceneTreeTimer :< cls, Object :< cls) => cls -> IO Float\nget_time_left cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTreeTimer_get_time_left\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTreeTimer \"get_time_left\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.SceneTreeTimer.get_time_left\n\n{-# NOINLINE bindSceneTreeTimer_set_time_left #-}\n\n-- | The time remaining.\nbindSceneTreeTimer_set_time_left :: MethodBind\nbindSceneTreeTimer_set_time_left\n  = unsafePerformIO $\n      withCString \"SceneTreeTimer\" $\n        \\ clsNamePtr ->\n          withCString \"set_time_left\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The time remaining.\nset_time_left ::\n                (SceneTreeTimer :< cls, Object :< cls) => cls -> Float -> IO ()\nset_time_left cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSceneTreeTimer_set_time_left\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SceneTreeTimer \"set_time_left\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.SceneTreeTimer.set_time_left"
  },
  {
    "path": "src/Godot/Core/Script.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Script\n       (Godot.Core.Script.can_instance, Godot.Core.Script.get_base_script,\n        Godot.Core.Script.get_instance_base_type,\n        Godot.Core.Script.get_property_default_value,\n        Godot.Core.Script.get_script_constant_map,\n        Godot.Core.Script.get_script_method_list,\n        Godot.Core.Script.get_script_property_list,\n        Godot.Core.Script.get_script_signal_list,\n        Godot.Core.Script.get_source_code,\n        Godot.Core.Script.has_script_signal,\n        Godot.Core.Script.has_source_code, Godot.Core.Script.instance_has,\n        Godot.Core.Script.is_tool, Godot.Core.Script.reload,\n        Godot.Core.Script.set_source_code)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty Script \"source_code\" GodotString 'False where\n        nodeProperty\n          = (get_source_code, wrapDroppingSetter set_source_code, Nothing)\n\n{-# NOINLINE bindScript_can_instance #-}\n\n-- | Returns @true@ if the script can be instanced.\nbindScript_can_instance :: MethodBind\nbindScript_can_instance\n  = unsafePerformIO $\n      withCString \"Script\" $\n        \\ clsNamePtr ->\n          withCString \"can_instance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the script can be instanced.\ncan_instance :: (Script :< cls, Object :< cls) => cls -> IO Bool\ncan_instance cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScript_can_instance (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Script \"can_instance\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Script.can_instance\n\n{-# NOINLINE bindScript_get_base_script #-}\n\n-- | Returns the script directly inherited by this script.\nbindScript_get_base_script :: MethodBind\nbindScript_get_base_script\n  = unsafePerformIO $\n      withCString \"Script\" $\n        \\ clsNamePtr ->\n          withCString \"get_base_script\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the script directly inherited by this script.\nget_base_script ::\n                  (Script :< cls, Object :< cls) => cls -> IO Script\nget_base_script cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScript_get_base_script (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Script \"get_base_script\" '[] (IO Script) where\n        nodeMethod = Godot.Core.Script.get_base_script\n\n{-# NOINLINE bindScript_get_instance_base_type #-}\n\n-- | Returns the script's base type.\nbindScript_get_instance_base_type :: MethodBind\nbindScript_get_instance_base_type\n  = unsafePerformIO $\n      withCString \"Script\" $\n        \\ clsNamePtr ->\n          withCString \"get_instance_base_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the script's base type.\nget_instance_base_type ::\n                         (Script :< cls, Object :< cls) => cls -> IO GodotString\nget_instance_base_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScript_get_instance_base_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Script \"get_instance_base_type\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Script.get_instance_base_type\n\n{-# NOINLINE bindScript_get_property_default_value #-}\n\n-- | Returns the default value of the specified property.\nbindScript_get_property_default_value :: MethodBind\nbindScript_get_property_default_value\n  = unsafePerformIO $\n      withCString \"Script\" $\n        \\ clsNamePtr ->\n          withCString \"get_property_default_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the default value of the specified property.\nget_property_default_value ::\n                             (Script :< cls, Object :< cls) =>\n                             cls -> GodotString -> IO GodotVariant\nget_property_default_value cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScript_get_property_default_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Script \"get_property_default_value\"\n           '[GodotString]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Script.get_property_default_value\n\n{-# NOINLINE bindScript_get_script_constant_map #-}\n\n-- | Returns a dictionary containing constant names and their values.\nbindScript_get_script_constant_map :: MethodBind\nbindScript_get_script_constant_map\n  = unsafePerformIO $\n      withCString \"Script\" $\n        \\ clsNamePtr ->\n          withCString \"get_script_constant_map\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a dictionary containing constant names and their values.\nget_script_constant_map ::\n                          (Script :< cls, Object :< cls) => cls -> IO Dictionary\nget_script_constant_map cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScript_get_script_constant_map\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Script \"get_script_constant_map\" '[]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.Script.get_script_constant_map\n\n{-# NOINLINE bindScript_get_script_method_list #-}\n\n-- | Returns the list of methods in this @Script@.\nbindScript_get_script_method_list :: MethodBind\nbindScript_get_script_method_list\n  = unsafePerformIO $\n      withCString \"Script\" $\n        \\ clsNamePtr ->\n          withCString \"get_script_method_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the list of methods in this @Script@.\nget_script_method_list ::\n                         (Script :< cls, Object :< cls) => cls -> IO Array\nget_script_method_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScript_get_script_method_list\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Script \"get_script_method_list\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.Script.get_script_method_list\n\n{-# NOINLINE bindScript_get_script_property_list #-}\n\n-- | Returns the list of properties in this @Script@.\nbindScript_get_script_property_list :: MethodBind\nbindScript_get_script_property_list\n  = unsafePerformIO $\n      withCString \"Script\" $\n        \\ clsNamePtr ->\n          withCString \"get_script_property_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the list of properties in this @Script@.\nget_script_property_list ::\n                           (Script :< cls, Object :< cls) => cls -> IO Array\nget_script_property_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScript_get_script_property_list\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Script \"get_script_property_list\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Script.get_script_property_list\n\n{-# NOINLINE bindScript_get_script_signal_list #-}\n\n-- | Returns the list of user signals defined in this @Script@.\nbindScript_get_script_signal_list :: MethodBind\nbindScript_get_script_signal_list\n  = unsafePerformIO $\n      withCString \"Script\" $\n        \\ clsNamePtr ->\n          withCString \"get_script_signal_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the list of user signals defined in this @Script@.\nget_script_signal_list ::\n                         (Script :< cls, Object :< cls) => cls -> IO Array\nget_script_signal_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScript_get_script_signal_list\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Script \"get_script_signal_list\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.Script.get_script_signal_list\n\n{-# NOINLINE bindScript_get_source_code #-}\n\n-- | The script source code or an empty string if source code is not available. When set, does not reload the class implementation automatically.\nbindScript_get_source_code :: MethodBind\nbindScript_get_source_code\n  = unsafePerformIO $\n      withCString \"Script\" $\n        \\ clsNamePtr ->\n          withCString \"get_source_code\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The script source code or an empty string if source code is not available. When set, does not reload the class implementation automatically.\nget_source_code ::\n                  (Script :< cls, Object :< cls) => cls -> IO GodotString\nget_source_code cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScript_get_source_code (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Script \"get_source_code\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Script.get_source_code\n\n{-# NOINLINE bindScript_has_script_signal #-}\n\n-- | Returns @true@ if the script, or a base class, defines a signal with the given name.\nbindScript_has_script_signal :: MethodBind\nbindScript_has_script_signal\n  = unsafePerformIO $\n      withCString \"Script\" $\n        \\ clsNamePtr ->\n          withCString \"has_script_signal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the script, or a base class, defines a signal with the given name.\nhas_script_signal ::\n                    (Script :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_script_signal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScript_has_script_signal (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Script \"has_script_signal\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Script.has_script_signal\n\n{-# NOINLINE bindScript_has_source_code #-}\n\n-- | Returns @true@ if the script contains non-empty source code.\nbindScript_has_source_code :: MethodBind\nbindScript_has_source_code\n  = unsafePerformIO $\n      withCString \"Script\" $\n        \\ clsNamePtr ->\n          withCString \"has_source_code\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the script contains non-empty source code.\nhas_source_code :: (Script :< cls, Object :< cls) => cls -> IO Bool\nhas_source_code cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScript_has_source_code (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Script \"has_source_code\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Script.has_source_code\n\n{-# NOINLINE bindScript_instance_has #-}\n\n-- | Returns @true@ if @base_object@ is an instance of this script.\nbindScript_instance_has :: MethodBind\nbindScript_instance_has\n  = unsafePerformIO $\n      withCString \"Script\" $\n        \\ clsNamePtr ->\n          withCString \"instance_has\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if @base_object@ is an instance of this script.\ninstance_has ::\n               (Script :< cls, Object :< cls) => cls -> Object -> IO Bool\ninstance_has cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScript_instance_has (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Script \"instance_has\" '[Object] (IO Bool) where\n        nodeMethod = Godot.Core.Script.instance_has\n\n{-# NOINLINE bindScript_is_tool #-}\n\n-- | Returns @true@ if the script is a tool script. A tool script can run in the editor.\nbindScript_is_tool :: MethodBind\nbindScript_is_tool\n  = unsafePerformIO $\n      withCString \"Script\" $\n        \\ clsNamePtr ->\n          withCString \"is_tool\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the script is a tool script. A tool script can run in the editor.\nis_tool :: (Script :< cls, Object :< cls) => cls -> IO Bool\nis_tool cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScript_is_tool (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Script \"is_tool\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Script.is_tool\n\n{-# NOINLINE bindScript_reload #-}\n\n-- | Reloads the script's class implementation. Returns an error code.\nbindScript_reload :: MethodBind\nbindScript_reload\n  = unsafePerformIO $\n      withCString \"Script\" $\n        \\ clsNamePtr ->\n          withCString \"reload\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Reloads the script's class implementation. Returns an error code.\nreload ::\n         (Script :< cls, Object :< cls) => cls -> Maybe Bool -> IO Int\nreload cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScript_reload (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Script \"reload\" '[Maybe Bool] (IO Int) where\n        nodeMethod = Godot.Core.Script.reload\n\n{-# NOINLINE bindScript_set_source_code #-}\n\n-- | The script source code or an empty string if source code is not available. When set, does not reload the class implementation automatically.\nbindScript_set_source_code :: MethodBind\nbindScript_set_source_code\n  = unsafePerformIO $\n      withCString \"Script\" $\n        \\ clsNamePtr ->\n          withCString \"set_source_code\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The script source code or an empty string if source code is not available. When set, does not reload the class implementation automatically.\nset_source_code ::\n                  (Script :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_source_code cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScript_set_source_code (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Script \"set_source_code\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.Script.set_source_code"
  },
  {
    "path": "src/Godot/Core/ScrollBar.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ScrollBar\n       (Godot.Core.ScrollBar.sig_scrolling,\n        Godot.Core.ScrollBar._drag_node_exit,\n        Godot.Core.ScrollBar._drag_node_input,\n        Godot.Core.ScrollBar._gui_input,\n        Godot.Core.ScrollBar.get_custom_step,\n        Godot.Core.ScrollBar.set_custom_step)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Range()\n\n-- | Emitted when the scrollbar is being scrolled.\nsig_scrolling :: Godot.Internal.Dispatch.Signal ScrollBar\nsig_scrolling = Godot.Internal.Dispatch.Signal \"scrolling\"\n\ninstance NodeSignal ScrollBar \"scrolling\" '[]\n\ninstance NodeProperty ScrollBar \"custom_step\" Float 'False where\n        nodeProperty\n          = (get_custom_step, wrapDroppingSetter set_custom_step, Nothing)\n\n{-# NOINLINE bindScrollBar__drag_node_exit #-}\n\nbindScrollBar__drag_node_exit :: MethodBind\nbindScrollBar__drag_node_exit\n  = unsafePerformIO $\n      withCString \"ScrollBar\" $\n        \\ clsNamePtr ->\n          withCString \"_drag_node_exit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_drag_node_exit ::\n                  (ScrollBar :< cls, Object :< cls) => cls -> IO ()\n_drag_node_exit cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollBar__drag_node_exit (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollBar \"_drag_node_exit\" '[] (IO ()) where\n        nodeMethod = Godot.Core.ScrollBar._drag_node_exit\n\n{-# NOINLINE bindScrollBar__drag_node_input #-}\n\nbindScrollBar__drag_node_input :: MethodBind\nbindScrollBar__drag_node_input\n  = unsafePerformIO $\n      withCString \"ScrollBar\" $\n        \\ clsNamePtr ->\n          withCString \"_drag_node_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_drag_node_input ::\n                   (ScrollBar :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_drag_node_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollBar__drag_node_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollBar \"_drag_node_input\" '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ScrollBar._drag_node_input\n\n{-# NOINLINE bindScrollBar__gui_input #-}\n\nbindScrollBar__gui_input :: MethodBind\nbindScrollBar__gui_input\n  = unsafePerformIO $\n      withCString \"ScrollBar\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (ScrollBar :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollBar__gui_input (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollBar \"_gui_input\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.ScrollBar._gui_input\n\n{-# NOINLINE bindScrollBar_get_custom_step #-}\n\n-- | Overrides the step used when clicking increment and decrement buttons or when using arrow keys when the @ScrollBar@ is focused.\nbindScrollBar_get_custom_step :: MethodBind\nbindScrollBar_get_custom_step\n  = unsafePerformIO $\n      withCString \"ScrollBar\" $\n        \\ clsNamePtr ->\n          withCString \"get_custom_step\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Overrides the step used when clicking increment and decrement buttons or when using arrow keys when the @ScrollBar@ is focused.\nget_custom_step ::\n                  (ScrollBar :< cls, Object :< cls) => cls -> IO Float\nget_custom_step cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollBar_get_custom_step (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollBar \"get_custom_step\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.ScrollBar.get_custom_step\n\n{-# NOINLINE bindScrollBar_set_custom_step #-}\n\n-- | Overrides the step used when clicking increment and decrement buttons or when using arrow keys when the @ScrollBar@ is focused.\nbindScrollBar_set_custom_step :: MethodBind\nbindScrollBar_set_custom_step\n  = unsafePerformIO $\n      withCString \"ScrollBar\" $\n        \\ clsNamePtr ->\n          withCString \"set_custom_step\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Overrides the step used when clicking increment and decrement buttons or when using arrow keys when the @ScrollBar@ is focused.\nset_custom_step ::\n                  (ScrollBar :< cls, Object :< cls) => cls -> Float -> IO ()\nset_custom_step cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollBar_set_custom_step (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollBar \"set_custom_step\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.ScrollBar.set_custom_step"
  },
  {
    "path": "src/Godot/Core/ScrollContainer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ScrollContainer\n       (Godot.Core.ScrollContainer.sig_scroll_ended,\n        Godot.Core.ScrollContainer.sig_scroll_started,\n        Godot.Core.ScrollContainer._ensure_focused_visible,\n        Godot.Core.ScrollContainer._gui_input,\n        Godot.Core.ScrollContainer._scroll_moved,\n        Godot.Core.ScrollContainer._update_scrollbar_position,\n        Godot.Core.ScrollContainer.get_deadzone,\n        Godot.Core.ScrollContainer.get_h_scroll,\n        Godot.Core.ScrollContainer.get_h_scrollbar,\n        Godot.Core.ScrollContainer.get_v_scroll,\n        Godot.Core.ScrollContainer.get_v_scrollbar,\n        Godot.Core.ScrollContainer.is_following_focus,\n        Godot.Core.ScrollContainer.is_h_scroll_enabled,\n        Godot.Core.ScrollContainer.is_v_scroll_enabled,\n        Godot.Core.ScrollContainer.set_deadzone,\n        Godot.Core.ScrollContainer.set_enable_h_scroll,\n        Godot.Core.ScrollContainer.set_enable_v_scroll,\n        Godot.Core.ScrollContainer.set_follow_focus,\n        Godot.Core.ScrollContainer.set_h_scroll,\n        Godot.Core.ScrollContainer.set_v_scroll)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Container()\n\n-- | Emitted when scrolling stops.\nsig_scroll_ended :: Godot.Internal.Dispatch.Signal ScrollContainer\nsig_scroll_ended = Godot.Internal.Dispatch.Signal \"scroll_ended\"\n\ninstance NodeSignal ScrollContainer \"scroll_ended\" '[]\n\n-- | Emitted when scrolling is started.\nsig_scroll_started ::\n                   Godot.Internal.Dispatch.Signal ScrollContainer\nsig_scroll_started\n  = Godot.Internal.Dispatch.Signal \"scroll_started\"\n\ninstance NodeSignal ScrollContainer \"scroll_started\" '[]\n\ninstance NodeProperty ScrollContainer \"follow_focus\" Bool 'False\n         where\n        nodeProperty\n          = (is_following_focus, wrapDroppingSetter set_follow_focus,\n             Nothing)\n\ninstance NodeProperty ScrollContainer \"scroll_deadzone\" Int 'False\n         where\n        nodeProperty\n          = (get_deadzone, wrapDroppingSetter set_deadzone, Nothing)\n\ninstance NodeProperty ScrollContainer \"scroll_horizontal\" Int\n           'False\n         where\n        nodeProperty\n          = (get_h_scroll, wrapDroppingSetter set_h_scroll, Nothing)\n\ninstance NodeProperty ScrollContainer \"scroll_horizontal_enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (is_h_scroll_enabled, wrapDroppingSetter set_enable_h_scroll,\n             Nothing)\n\ninstance NodeProperty ScrollContainer \"scroll_vertical\" Int 'False\n         where\n        nodeProperty\n          = (get_v_scroll, wrapDroppingSetter set_v_scroll, Nothing)\n\ninstance NodeProperty ScrollContainer \"scroll_vertical_enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (is_v_scroll_enabled, wrapDroppingSetter set_enable_v_scroll,\n             Nothing)\n\n{-# NOINLINE bindScrollContainer__ensure_focused_visible #-}\n\nbindScrollContainer__ensure_focused_visible :: MethodBind\nbindScrollContainer__ensure_focused_visible\n  = unsafePerformIO $\n      withCString \"ScrollContainer\" $\n        \\ clsNamePtr ->\n          withCString \"_ensure_focused_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_ensure_focused_visible ::\n                          (ScrollContainer :< cls, Object :< cls) => cls -> Control -> IO ()\n_ensure_focused_visible cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollContainer__ensure_focused_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollContainer \"_ensure_focused_visible\"\n           '[Control]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ScrollContainer._ensure_focused_visible\n\n{-# NOINLINE bindScrollContainer__gui_input #-}\n\nbindScrollContainer__gui_input :: MethodBind\nbindScrollContainer__gui_input\n  = unsafePerformIO $\n      withCString \"ScrollContainer\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (ScrollContainer :< cls, Object :< cls) =>\n             cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollContainer__gui_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollContainer \"_gui_input\" '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ScrollContainer._gui_input\n\n{-# NOINLINE bindScrollContainer__scroll_moved #-}\n\nbindScrollContainer__scroll_moved :: MethodBind\nbindScrollContainer__scroll_moved\n  = unsafePerformIO $\n      withCString \"ScrollContainer\" $\n        \\ clsNamePtr ->\n          withCString \"_scroll_moved\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_scroll_moved ::\n                (ScrollContainer :< cls, Object :< cls) => cls -> Float -> IO ()\n_scroll_moved cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollContainer__scroll_moved\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollContainer \"_scroll_moved\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ScrollContainer._scroll_moved\n\n{-# NOINLINE bindScrollContainer__update_scrollbar_position #-}\n\nbindScrollContainer__update_scrollbar_position :: MethodBind\nbindScrollContainer__update_scrollbar_position\n  = unsafePerformIO $\n      withCString \"ScrollContainer\" $\n        \\ clsNamePtr ->\n          withCString \"_update_scrollbar_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_scrollbar_position ::\n                             (ScrollContainer :< cls, Object :< cls) => cls -> IO ()\n_update_scrollbar_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindScrollContainer__update_scrollbar_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollContainer \"_update_scrollbar_position\"\n           '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ScrollContainer._update_scrollbar_position\n\n{-# NOINLINE bindScrollContainer_get_deadzone #-}\n\nbindScrollContainer_get_deadzone :: MethodBind\nbindScrollContainer_get_deadzone\n  = unsafePerformIO $\n      withCString \"ScrollContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_deadzone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_deadzone ::\n               (ScrollContainer :< cls, Object :< cls) => cls -> IO Int\nget_deadzone cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollContainer_get_deadzone\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollContainer \"get_deadzone\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ScrollContainer.get_deadzone\n\n{-# NOINLINE bindScrollContainer_get_h_scroll #-}\n\n-- | The current horizontal scroll value.\nbindScrollContainer_get_h_scroll :: MethodBind\nbindScrollContainer_get_h_scroll\n  = unsafePerformIO $\n      withCString \"ScrollContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_h_scroll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current horizontal scroll value.\nget_h_scroll ::\n               (ScrollContainer :< cls, Object :< cls) => cls -> IO Int\nget_h_scroll cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollContainer_get_h_scroll\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollContainer \"get_h_scroll\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ScrollContainer.get_h_scroll\n\n{-# NOINLINE bindScrollContainer_get_h_scrollbar #-}\n\n-- | Returns the horizontal scrollbar @HScrollBar@ of this @ScrollContainer@.\nbindScrollContainer_get_h_scrollbar :: MethodBind\nbindScrollContainer_get_h_scrollbar\n  = unsafePerformIO $\n      withCString \"ScrollContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_h_scrollbar\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the horizontal scrollbar @HScrollBar@ of this @ScrollContainer@.\nget_h_scrollbar ::\n                  (ScrollContainer :< cls, Object :< cls) => cls -> IO HScrollBar\nget_h_scrollbar cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollContainer_get_h_scrollbar\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollContainer \"get_h_scrollbar\" '[]\n           (IO HScrollBar)\n         where\n        nodeMethod = Godot.Core.ScrollContainer.get_h_scrollbar\n\n{-# NOINLINE bindScrollContainer_get_v_scroll #-}\n\n-- | The current vertical scroll value.\nbindScrollContainer_get_v_scroll :: MethodBind\nbindScrollContainer_get_v_scroll\n  = unsafePerformIO $\n      withCString \"ScrollContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_v_scroll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current vertical scroll value.\nget_v_scroll ::\n               (ScrollContainer :< cls, Object :< cls) => cls -> IO Int\nget_v_scroll cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollContainer_get_v_scroll\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollContainer \"get_v_scroll\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.ScrollContainer.get_v_scroll\n\n{-# NOINLINE bindScrollContainer_get_v_scrollbar #-}\n\n-- | Returns the vertical scrollbar @VScrollBar@ of this @ScrollContainer@.\nbindScrollContainer_get_v_scrollbar :: MethodBind\nbindScrollContainer_get_v_scrollbar\n  = unsafePerformIO $\n      withCString \"ScrollContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_v_scrollbar\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the vertical scrollbar @VScrollBar@ of this @ScrollContainer@.\nget_v_scrollbar ::\n                  (ScrollContainer :< cls, Object :< cls) => cls -> IO VScrollBar\nget_v_scrollbar cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollContainer_get_v_scrollbar\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollContainer \"get_v_scrollbar\" '[]\n           (IO VScrollBar)\n         where\n        nodeMethod = Godot.Core.ScrollContainer.get_v_scrollbar\n\n{-# NOINLINE bindScrollContainer_is_following_focus #-}\n\n-- | If @true@, the ScrollContainer will automatically scroll to focused children (including indirect children) to make sure they are fully visible.\nbindScrollContainer_is_following_focus :: MethodBind\nbindScrollContainer_is_following_focus\n  = unsafePerformIO $\n      withCString \"ScrollContainer\" $\n        \\ clsNamePtr ->\n          withCString \"is_following_focus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the ScrollContainer will automatically scroll to focused children (including indirect children) to make sure they are fully visible.\nis_following_focus ::\n                     (ScrollContainer :< cls, Object :< cls) => cls -> IO Bool\nis_following_focus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollContainer_is_following_focus\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollContainer \"is_following_focus\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ScrollContainer.is_following_focus\n\n{-# NOINLINE bindScrollContainer_is_h_scroll_enabled #-}\n\n-- | If @true@, enables horizontal scrolling.\nbindScrollContainer_is_h_scroll_enabled :: MethodBind\nbindScrollContainer_is_h_scroll_enabled\n  = unsafePerformIO $\n      withCString \"ScrollContainer\" $\n        \\ clsNamePtr ->\n          withCString \"is_h_scroll_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables horizontal scrolling.\nis_h_scroll_enabled ::\n                      (ScrollContainer :< cls, Object :< cls) => cls -> IO Bool\nis_h_scroll_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollContainer_is_h_scroll_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollContainer \"is_h_scroll_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ScrollContainer.is_h_scroll_enabled\n\n{-# NOINLINE bindScrollContainer_is_v_scroll_enabled #-}\n\n-- | If @true@, enables vertical scrolling.\nbindScrollContainer_is_v_scroll_enabled :: MethodBind\nbindScrollContainer_is_v_scroll_enabled\n  = unsafePerformIO $\n      withCString \"ScrollContainer\" $\n        \\ clsNamePtr ->\n          withCString \"is_v_scroll_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables vertical scrolling.\nis_v_scroll_enabled ::\n                      (ScrollContainer :< cls, Object :< cls) => cls -> IO Bool\nis_v_scroll_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollContainer_is_v_scroll_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollContainer \"is_v_scroll_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ScrollContainer.is_v_scroll_enabled\n\n{-# NOINLINE bindScrollContainer_set_deadzone #-}\n\nbindScrollContainer_set_deadzone :: MethodBind\nbindScrollContainer_set_deadzone\n  = unsafePerformIO $\n      withCString \"ScrollContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_deadzone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_deadzone ::\n               (ScrollContainer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_deadzone cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollContainer_set_deadzone\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollContainer \"set_deadzone\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.ScrollContainer.set_deadzone\n\n{-# NOINLINE bindScrollContainer_set_enable_h_scroll #-}\n\n-- | If @true@, enables horizontal scrolling.\nbindScrollContainer_set_enable_h_scroll :: MethodBind\nbindScrollContainer_set_enable_h_scroll\n  = unsafePerformIO $\n      withCString \"ScrollContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_enable_h_scroll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables horizontal scrolling.\nset_enable_h_scroll ::\n                      (ScrollContainer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_enable_h_scroll cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollContainer_set_enable_h_scroll\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollContainer \"set_enable_h_scroll\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ScrollContainer.set_enable_h_scroll\n\n{-# NOINLINE bindScrollContainer_set_enable_v_scroll #-}\n\n-- | If @true@, enables vertical scrolling.\nbindScrollContainer_set_enable_v_scroll :: MethodBind\nbindScrollContainer_set_enable_v_scroll\n  = unsafePerformIO $\n      withCString \"ScrollContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_enable_v_scroll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables vertical scrolling.\nset_enable_v_scroll ::\n                      (ScrollContainer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_enable_v_scroll cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollContainer_set_enable_v_scroll\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollContainer \"set_enable_v_scroll\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ScrollContainer.set_enable_v_scroll\n\n{-# NOINLINE bindScrollContainer_set_follow_focus #-}\n\n-- | If @true@, the ScrollContainer will automatically scroll to focused children (including indirect children) to make sure they are fully visible.\nbindScrollContainer_set_follow_focus :: MethodBind\nbindScrollContainer_set_follow_focus\n  = unsafePerformIO $\n      withCString \"ScrollContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_follow_focus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the ScrollContainer will automatically scroll to focused children (including indirect children) to make sure they are fully visible.\nset_follow_focus ::\n                   (ScrollContainer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_follow_focus cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollContainer_set_follow_focus\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollContainer \"set_follow_focus\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ScrollContainer.set_follow_focus\n\n{-# NOINLINE bindScrollContainer_set_h_scroll #-}\n\n-- | The current horizontal scroll value.\nbindScrollContainer_set_h_scroll :: MethodBind\nbindScrollContainer_set_h_scroll\n  = unsafePerformIO $\n      withCString \"ScrollContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_h_scroll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current horizontal scroll value.\nset_h_scroll ::\n               (ScrollContainer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_h_scroll cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollContainer_set_h_scroll\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollContainer \"set_h_scroll\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.ScrollContainer.set_h_scroll\n\n{-# NOINLINE bindScrollContainer_set_v_scroll #-}\n\n-- | The current vertical scroll value.\nbindScrollContainer_set_v_scroll :: MethodBind\nbindScrollContainer_set_v_scroll\n  = unsafePerformIO $\n      withCString \"ScrollContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_v_scroll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current vertical scroll value.\nset_v_scroll ::\n               (ScrollContainer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_v_scroll cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScrollContainer_set_v_scroll\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScrollContainer \"set_v_scroll\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.ScrollContainer.set_v_scroll"
  },
  {
    "path": "src/Godot/Core/SegmentShape2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SegmentShape2D\n       (Godot.Core.SegmentShape2D.get_a, Godot.Core.SegmentShape2D.get_b,\n        Godot.Core.SegmentShape2D.set_a, Godot.Core.SegmentShape2D.set_b)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Shape2D()\n\ninstance NodeProperty SegmentShape2D \"a\" Vector2 'False where\n        nodeProperty = (get_a, wrapDroppingSetter set_a, Nothing)\n\ninstance NodeProperty SegmentShape2D \"b\" Vector2 'False where\n        nodeProperty = (get_b, wrapDroppingSetter set_b, Nothing)\n\n{-# NOINLINE bindSegmentShape2D_get_a #-}\n\n-- | The segment's first point position.\nbindSegmentShape2D_get_a :: MethodBind\nbindSegmentShape2D_get_a\n  = unsafePerformIO $\n      withCString \"SegmentShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_a\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The segment's first point position.\nget_a ::\n        (SegmentShape2D :< cls, Object :< cls) => cls -> IO Vector2\nget_a cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSegmentShape2D_get_a (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SegmentShape2D \"get_a\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.SegmentShape2D.get_a\n\n{-# NOINLINE bindSegmentShape2D_get_b #-}\n\n-- | The segment's second point position.\nbindSegmentShape2D_get_b :: MethodBind\nbindSegmentShape2D_get_b\n  = unsafePerformIO $\n      withCString \"SegmentShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_b\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The segment's second point position.\nget_b ::\n        (SegmentShape2D :< cls, Object :< cls) => cls -> IO Vector2\nget_b cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSegmentShape2D_get_b (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SegmentShape2D \"get_b\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.SegmentShape2D.get_b\n\n{-# NOINLINE bindSegmentShape2D_set_a #-}\n\n-- | The segment's first point position.\nbindSegmentShape2D_set_a :: MethodBind\nbindSegmentShape2D_set_a\n  = unsafePerformIO $\n      withCString \"SegmentShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_a\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The segment's first point position.\nset_a ::\n        (SegmentShape2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_a cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSegmentShape2D_set_a (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SegmentShape2D \"set_a\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.SegmentShape2D.set_a\n\n{-# NOINLINE bindSegmentShape2D_set_b #-}\n\n-- | The segment's second point position.\nbindSegmentShape2D_set_b :: MethodBind\nbindSegmentShape2D_set_b\n  = unsafePerformIO $\n      withCString \"SegmentShape2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_b\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The segment's second point position.\nset_b ::\n        (SegmentShape2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_b cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSegmentShape2D_set_b (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SegmentShape2D \"set_b\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.SegmentShape2D.set_b"
  },
  {
    "path": "src/Godot/Core/Semaphore.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Semaphore\n       (Godot.Core.Semaphore.post, Godot.Core.Semaphore.wait) where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindSemaphore_post #-}\n\n-- | Lowers the @Semaphore@, allowing one more thread in. Returns @OK@ on success, @ERR_BUSY@ otherwise.\nbindSemaphore_post :: MethodBind\nbindSemaphore_post\n  = unsafePerformIO $\n      withCString \"_Semaphore\" $\n        \\ clsNamePtr ->\n          withCString \"post\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Lowers the @Semaphore@, allowing one more thread in. Returns @OK@ on success, @ERR_BUSY@ otherwise.\npost :: (Semaphore :< cls, Object :< cls) => cls -> IO Int\npost cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSemaphore_post (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Semaphore \"post\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Semaphore.post\n\n{-# NOINLINE bindSemaphore_wait #-}\n\n-- | Tries to wait for the @Semaphore@, if its value is zero, blocks until non-zero. Returns @OK@ on success, @ERR_BUSY@ otherwise.\nbindSemaphore_wait :: MethodBind\nbindSemaphore_wait\n  = unsafePerformIO $\n      withCString \"_Semaphore\" $\n        \\ clsNamePtr ->\n          withCString \"wait\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Tries to wait for the @Semaphore@, if its value is zero, blocks until non-zero. Returns @OK@ on success, @ERR_BUSY@ otherwise.\nwait :: (Semaphore :< cls, Object :< cls) => cls -> IO Int\nwait cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSemaphore_wait (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Semaphore \"wait\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Semaphore.wait"
  },
  {
    "path": "src/Godot/Core/Separator.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Separator () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()"
  },
  {
    "path": "src/Godot/Core/Shader.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Shader\n       (Godot.Core.Shader._MODE_CANVAS_ITEM,\n        Godot.Core.Shader._MODE_PARTICLES, Godot.Core.Shader._MODE_SPATIAL,\n        Godot.Core.Shader.get_code,\n        Godot.Core.Shader.get_default_texture_param,\n        Godot.Core.Shader.get_mode, Godot.Core.Shader.has_param,\n        Godot.Core.Shader.set_code,\n        Godot.Core.Shader.set_default_texture_param)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_MODE_CANVAS_ITEM :: Int\n_MODE_CANVAS_ITEM = 1\n\n_MODE_PARTICLES :: Int\n_MODE_PARTICLES = 2\n\n_MODE_SPATIAL :: Int\n_MODE_SPATIAL = 0\n\ninstance NodeProperty Shader \"code\" GodotString 'False where\n        nodeProperty = (get_code, wrapDroppingSetter set_code, Nothing)\n\n{-# NOINLINE bindShader_get_code #-}\n\n-- | Returns the shader's code as the user has written it, not the full generated code used internally.\nbindShader_get_code :: MethodBind\nbindShader_get_code\n  = unsafePerformIO $\n      withCString \"Shader\" $\n        \\ clsNamePtr ->\n          withCString \"get_code\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the shader's code as the user has written it, not the full generated code used internally.\nget_code :: (Shader :< cls, Object :< cls) => cls -> IO GodotString\nget_code cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShader_get_code (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Shader \"get_code\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.Shader.get_code\n\n{-# NOINLINE bindShader_get_default_texture_param #-}\n\n-- | Returns the texture that is set as default for the specified parameter.\n--   \t\t\t\t__Note:__ @param@ must match the name of the uniform in the code exactly.\nbindShader_get_default_texture_param :: MethodBind\nbindShader_get_default_texture_param\n  = unsafePerformIO $\n      withCString \"Shader\" $\n        \\ clsNamePtr ->\n          withCString \"get_default_texture_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the texture that is set as default for the specified parameter.\n--   \t\t\t\t__Note:__ @param@ must match the name of the uniform in the code exactly.\nget_default_texture_param ::\n                            (Shader :< cls, Object :< cls) => cls -> GodotString -> IO Texture\nget_default_texture_param cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShader_get_default_texture_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Shader \"get_default_texture_param\"\n           '[GodotString]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.Shader.get_default_texture_param\n\n{-# NOINLINE bindShader_get_mode #-}\n\n-- | Returns the shader mode for the shader, either @MODE_CANVAS_ITEM@, @MODE_SPATIAL@ or @MODE_PARTICLES@.\nbindShader_get_mode :: MethodBind\nbindShader_get_mode\n  = unsafePerformIO $\n      withCString \"Shader\" $\n        \\ clsNamePtr ->\n          withCString \"get_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the shader mode for the shader, either @MODE_CANVAS_ITEM@, @MODE_SPATIAL@ or @MODE_PARTICLES@.\nget_mode :: (Shader :< cls, Object :< cls) => cls -> IO Int\nget_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShader_get_mode (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Shader \"get_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Shader.get_mode\n\n{-# NOINLINE bindShader_has_param #-}\n\n-- | Returns @true@ if the shader has this param defined as a uniform in its code.\n--   \t\t\t\t__Note:__ @param@ must match the name of the uniform in the code exactly.\nbindShader_has_param :: MethodBind\nbindShader_has_param\n  = unsafePerformIO $\n      withCString \"Shader\" $\n        \\ clsNamePtr ->\n          withCString \"has_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the shader has this param defined as a uniform in its code.\n--   \t\t\t\t__Note:__ @param@ must match the name of the uniform in the code exactly.\nhas_param ::\n            (Shader :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_param cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShader_has_param (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Shader \"has_param\" '[GodotString] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Shader.has_param\n\n{-# NOINLINE bindShader_set_code #-}\n\n-- | Returns the shader's code as the user has written it, not the full generated code used internally.\nbindShader_set_code :: MethodBind\nbindShader_set_code\n  = unsafePerformIO $\n      withCString \"Shader\" $\n        \\ clsNamePtr ->\n          withCString \"set_code\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the shader's code as the user has written it, not the full generated code used internally.\nset_code ::\n           (Shader :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_code cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShader_set_code (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Shader \"set_code\" '[GodotString] (IO ()) where\n        nodeMethod = Godot.Core.Shader.set_code\n\n{-# NOINLINE bindShader_set_default_texture_param #-}\n\n-- | Sets the default texture to be used with a texture uniform. The default is used if a texture is not set in the @ShaderMaterial@.\n--   \t\t\t\t__Note:__ @param@ must match the name of the uniform in the code exactly.\nbindShader_set_default_texture_param :: MethodBind\nbindShader_set_default_texture_param\n  = unsafePerformIO $\n      withCString \"Shader\" $\n        \\ clsNamePtr ->\n          withCString \"set_default_texture_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the default texture to be used with a texture uniform. The default is used if a texture is not set in the @ShaderMaterial@.\n--   \t\t\t\t__Note:__ @param@ must match the name of the uniform in the code exactly.\nset_default_texture_param ::\n                            (Shader :< cls, Object :< cls) =>\n                            cls -> GodotString -> Texture -> IO ()\nset_default_texture_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShader_set_default_texture_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Shader \"set_default_texture_param\"\n           '[GodotString, Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Shader.set_default_texture_param"
  },
  {
    "path": "src/Godot/Core/ShaderMaterial.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ShaderMaterial\n       (Godot.Core.ShaderMaterial._shader_changed,\n        Godot.Core.ShaderMaterial.get_shader,\n        Godot.Core.ShaderMaterial.get_shader_param,\n        Godot.Core.ShaderMaterial.property_can_revert,\n        Godot.Core.ShaderMaterial.property_get_revert,\n        Godot.Core.ShaderMaterial.set_shader,\n        Godot.Core.ShaderMaterial.set_shader_param)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Material()\n\ninstance NodeProperty ShaderMaterial \"shader\" Shader 'False where\n        nodeProperty = (get_shader, wrapDroppingSetter set_shader, Nothing)\n\n{-# NOINLINE bindShaderMaterial__shader_changed #-}\n\nbindShaderMaterial__shader_changed :: MethodBind\nbindShaderMaterial__shader_changed\n  = unsafePerformIO $\n      withCString \"ShaderMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"_shader_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_shader_changed ::\n                  (ShaderMaterial :< cls, Object :< cls) => cls -> IO ()\n_shader_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShaderMaterial__shader_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ShaderMaterial \"_shader_changed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.ShaderMaterial._shader_changed\n\n{-# NOINLINE bindShaderMaterial_get_shader #-}\n\n-- | The @Shader@ program used to render this material.\nbindShaderMaterial_get_shader :: MethodBind\nbindShaderMaterial_get_shader\n  = unsafePerformIO $\n      withCString \"ShaderMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_shader\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Shader@ program used to render this material.\nget_shader ::\n             (ShaderMaterial :< cls, Object :< cls) => cls -> IO Shader\nget_shader cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShaderMaterial_get_shader (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ShaderMaterial \"get_shader\" '[] (IO Shader)\n         where\n        nodeMethod = Godot.Core.ShaderMaterial.get_shader\n\n{-# NOINLINE bindShaderMaterial_get_shader_param #-}\n\n-- | Returns the current value set for this material of a uniform in the shader.\nbindShaderMaterial_get_shader_param :: MethodBind\nbindShaderMaterial_get_shader_param\n  = unsafePerformIO $\n      withCString \"ShaderMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_shader_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current value set for this material of a uniform in the shader.\nget_shader_param ::\n                   (ShaderMaterial :< cls, Object :< cls) =>\n                   cls -> GodotString -> IO GodotVariant\nget_shader_param cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShaderMaterial_get_shader_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ShaderMaterial \"get_shader_param\"\n           '[GodotString]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.ShaderMaterial.get_shader_param\n\n{-# NOINLINE bindShaderMaterial_property_can_revert #-}\n\n-- | Returns @true@ if the property identified by @name@ can be reverted to a default value.\nbindShaderMaterial_property_can_revert :: MethodBind\nbindShaderMaterial_property_can_revert\n  = unsafePerformIO $\n      withCString \"ShaderMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"property_can_revert\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the property identified by @name@ can be reverted to a default value.\nproperty_can_revert ::\n                      (ShaderMaterial :< cls, Object :< cls) =>\n                      cls -> GodotString -> IO Bool\nproperty_can_revert cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShaderMaterial_property_can_revert\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ShaderMaterial \"property_can_revert\"\n           '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ShaderMaterial.property_can_revert\n\n{-# NOINLINE bindShaderMaterial_property_get_revert #-}\n\n-- | Returns the default value of the material property with given @name@.\nbindShaderMaterial_property_get_revert :: MethodBind\nbindShaderMaterial_property_get_revert\n  = unsafePerformIO $\n      withCString \"ShaderMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"property_get_revert\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the default value of the material property with given @name@.\nproperty_get_revert ::\n                      (ShaderMaterial :< cls, Object :< cls) =>\n                      cls -> GodotString -> IO GodotVariant\nproperty_get_revert cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShaderMaterial_property_get_revert\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ShaderMaterial \"property_get_revert\"\n           '[GodotString]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.ShaderMaterial.property_get_revert\n\n{-# NOINLINE bindShaderMaterial_set_shader #-}\n\n-- | The @Shader@ program used to render this material.\nbindShaderMaterial_set_shader :: MethodBind\nbindShaderMaterial_set_shader\n  = unsafePerformIO $\n      withCString \"ShaderMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_shader\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Shader@ program used to render this material.\nset_shader ::\n             (ShaderMaterial :< cls, Object :< cls) => cls -> Shader -> IO ()\nset_shader cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShaderMaterial_set_shader (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ShaderMaterial \"set_shader\" '[Shader] (IO ())\n         where\n        nodeMethod = Godot.Core.ShaderMaterial.set_shader\n\n{-# NOINLINE bindShaderMaterial_set_shader_param #-}\n\n-- | Changes the value set for this material of a uniform in the shader. __Note:__ @param@ must match the name of the uniform in the code exactly.\nbindShaderMaterial_set_shader_param :: MethodBind\nbindShaderMaterial_set_shader_param\n  = unsafePerformIO $\n      withCString \"ShaderMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_shader_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes the value set for this material of a uniform in the shader. __Note:__ @param@ must match the name of the uniform in the code exactly.\nset_shader_param ::\n                   (ShaderMaterial :< cls, Object :< cls) =>\n                   cls -> GodotString -> GodotVariant -> IO ()\nset_shader_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShaderMaterial_set_shader_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ShaderMaterial \"set_shader_param\"\n           '[GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ShaderMaterial.set_shader_param"
  },
  {
    "path": "src/Godot/Core/Shape.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Shape\n       (Godot.Core.Shape.get_margin, Godot.Core.Shape.set_margin) where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty Shape \"margin\" Float 'False where\n        nodeProperty = (get_margin, wrapDroppingSetter set_margin, Nothing)\n\n{-# NOINLINE bindShape_get_margin #-}\n\n-- | The collision margin for the shape.\nbindShape_get_margin :: MethodBind\nbindShape_get_margin\n  = unsafePerformIO $\n      withCString \"Shape\" $\n        \\ clsNamePtr ->\n          withCString \"get_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The collision margin for the shape.\nget_margin :: (Shape :< cls, Object :< cls) => cls -> IO Float\nget_margin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShape_get_margin (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Shape \"get_margin\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Shape.get_margin\n\n{-# NOINLINE bindShape_set_margin #-}\n\n-- | The collision margin for the shape.\nbindShape_set_margin :: MethodBind\nbindShape_set_margin\n  = unsafePerformIO $\n      withCString \"Shape\" $\n        \\ clsNamePtr ->\n          withCString \"set_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The collision margin for the shape.\nset_margin ::\n             (Shape :< cls, Object :< cls) => cls -> Float -> IO ()\nset_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShape_set_margin (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Shape \"set_margin\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Shape.set_margin"
  },
  {
    "path": "src/Godot/Core/Shape2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Shape2D\n       (Godot.Core.Shape2D.collide,\n        Godot.Core.Shape2D.collide_and_get_contacts,\n        Godot.Core.Shape2D.collide_with_motion,\n        Godot.Core.Shape2D.collide_with_motion_and_get_contacts,\n        Godot.Core.Shape2D.get_custom_solver_bias,\n        Godot.Core.Shape2D.set_custom_solver_bias)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty Shape2D \"custom_solver_bias\" Float 'False\n         where\n        nodeProperty\n          = (get_custom_solver_bias,\n             wrapDroppingSetter set_custom_solver_bias, Nothing)\n\n{-# NOINLINE bindShape2D_collide #-}\n\n-- | Returns @true@ if this shape is colliding with another.\n--   \t\t\t\tThis method needs the transformation matrix for this shape (@local_xform@), the shape to check collisions with (@with_shape@), and the transformation matrix of that shape (@shape_xform@).\nbindShape2D_collide :: MethodBind\nbindShape2D_collide\n  = unsafePerformIO $\n      withCString \"Shape2D\" $\n        \\ clsNamePtr ->\n          withCString \"collide\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this shape is colliding with another.\n--   \t\t\t\tThis method needs the transformation matrix for this shape (@local_xform@), the shape to check collisions with (@with_shape@), and the transformation matrix of that shape (@shape_xform@).\ncollide ::\n          (Shape2D :< cls, Object :< cls) =>\n          cls -> Transform2d -> Shape2D -> Transform2d -> IO Bool\ncollide cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShape2D_collide (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Shape2D \"collide\"\n           '[Transform2d, Shape2D, Transform2d]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Shape2D.collide\n\n{-# NOINLINE bindShape2D_collide_and_get_contacts #-}\n\n-- | Returns a list of the points where this shape touches another. If there are no collisions the list is empty.\n--   \t\t\t\tThis method needs the transformation matrix for this shape (@local_xform@), the shape to check collisions with (@with_shape@), and the transformation matrix of that shape (@shape_xform@).\nbindShape2D_collide_and_get_contacts :: MethodBind\nbindShape2D_collide_and_get_contacts\n  = unsafePerformIO $\n      withCString \"Shape2D\" $\n        \\ clsNamePtr ->\n          withCString \"collide_and_get_contacts\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a list of the points where this shape touches another. If there are no collisions the list is empty.\n--   \t\t\t\tThis method needs the transformation matrix for this shape (@local_xform@), the shape to check collisions with (@with_shape@), and the transformation matrix of that shape (@shape_xform@).\ncollide_and_get_contacts ::\n                           (Shape2D :< cls, Object :< cls) =>\n                           cls -> Transform2d -> Shape2D -> Transform2d -> IO Array\ncollide_and_get_contacts cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShape2D_collide_and_get_contacts\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Shape2D \"collide_and_get_contacts\"\n           '[Transform2d, Shape2D, Transform2d]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Shape2D.collide_and_get_contacts\n\n{-# NOINLINE bindShape2D_collide_with_motion #-}\n\n-- | Returns whether this shape would collide with another, if a given movement was applied.\n--   \t\t\t\tThis method needs the transformation matrix for this shape (@local_xform@), the movement to test on this shape (@local_motion@), the shape to check collisions with (@with_shape@), the transformation matrix of that shape (@shape_xform@), and the movement to test onto the other object (@shape_motion@).\nbindShape2D_collide_with_motion :: MethodBind\nbindShape2D_collide_with_motion\n  = unsafePerformIO $\n      withCString \"Shape2D\" $\n        \\ clsNamePtr ->\n          withCString \"collide_with_motion\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether this shape would collide with another, if a given movement was applied.\n--   \t\t\t\tThis method needs the transformation matrix for this shape (@local_xform@), the movement to test on this shape (@local_motion@), the shape to check collisions with (@with_shape@), the transformation matrix of that shape (@shape_xform@), and the movement to test onto the other object (@shape_motion@).\ncollide_with_motion ::\n                      (Shape2D :< cls, Object :< cls) =>\n                      cls ->\n                        Transform2d ->\n                          Vector2 -> Shape2D -> Transform2d -> Vector2 -> IO Bool\ncollide_with_motion cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShape2D_collide_with_motion (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Shape2D \"collide_with_motion\"\n           '[Transform2d, Vector2, Shape2D, Transform2d, Vector2]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Shape2D.collide_with_motion\n\n{-# NOINLINE bindShape2D_collide_with_motion_and_get_contacts #-}\n\n-- | Returns a list of the points where this shape would touch another, if a given movement was applied. If there are no collisions the list is empty.\n--   \t\t\t\tThis method needs the transformation matrix for this shape (@local_xform@), the movement to test on this shape (@local_motion@), the shape to check collisions with (@with_shape@), the transformation matrix of that shape (@shape_xform@), and the movement to test onto the other object (@shape_motion@).\nbindShape2D_collide_with_motion_and_get_contacts :: MethodBind\nbindShape2D_collide_with_motion_and_get_contacts\n  = unsafePerformIO $\n      withCString \"Shape2D\" $\n        \\ clsNamePtr ->\n          withCString \"collide_with_motion_and_get_contacts\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a list of the points where this shape would touch another, if a given movement was applied. If there are no collisions the list is empty.\n--   \t\t\t\tThis method needs the transformation matrix for this shape (@local_xform@), the movement to test on this shape (@local_motion@), the shape to check collisions with (@with_shape@), the transformation matrix of that shape (@shape_xform@), and the movement to test onto the other object (@shape_motion@).\ncollide_with_motion_and_get_contacts ::\n                                       (Shape2D :< cls, Object :< cls) =>\n                                       cls ->\n                                         Transform2d ->\n                                           Vector2 -> Shape2D -> Transform2d -> Vector2 -> IO Array\ncollide_with_motion_and_get_contacts cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindShape2D_collide_with_motion_and_get_contacts\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Shape2D \"collide_with_motion_and_get_contacts\"\n           '[Transform2d, Vector2, Shape2D, Transform2d, Vector2]\n           (IO Array)\n         where\n        nodeMethod\n          = Godot.Core.Shape2D.collide_with_motion_and_get_contacts\n\n{-# NOINLINE bindShape2D_get_custom_solver_bias #-}\n\n-- | The shape's custom solver bias.\nbindShape2D_get_custom_solver_bias :: MethodBind\nbindShape2D_get_custom_solver_bias\n  = unsafePerformIO $\n      withCString \"Shape2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_custom_solver_bias\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The shape's custom solver bias.\nget_custom_solver_bias ::\n                         (Shape2D :< cls, Object :< cls) => cls -> IO Float\nget_custom_solver_bias cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShape2D_get_custom_solver_bias\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Shape2D \"get_custom_solver_bias\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.Shape2D.get_custom_solver_bias\n\n{-# NOINLINE bindShape2D_set_custom_solver_bias #-}\n\n-- | The shape's custom solver bias.\nbindShape2D_set_custom_solver_bias :: MethodBind\nbindShape2D_set_custom_solver_bias\n  = unsafePerformIO $\n      withCString \"Shape2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_custom_solver_bias\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The shape's custom solver bias.\nset_custom_solver_bias ::\n                         (Shape2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_custom_solver_bias cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShape2D_set_custom_solver_bias\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Shape2D \"set_custom_solver_bias\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Shape2D.set_custom_solver_bias"
  },
  {
    "path": "src/Godot/Core/ShortCut.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ShortCut\n       (Godot.Core.ShortCut.get_as_text, Godot.Core.ShortCut.get_shortcut,\n        Godot.Core.ShortCut.is_shortcut, Godot.Core.ShortCut.is_valid,\n        Godot.Core.ShortCut.set_shortcut)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty ShortCut \"shortcut\" InputEvent 'False where\n        nodeProperty\n          = (get_shortcut, wrapDroppingSetter set_shortcut, Nothing)\n\n{-# NOINLINE bindShortCut_get_as_text #-}\n\n-- | Returns the shortcut's @InputEvent@ as a @String@.\nbindShortCut_get_as_text :: MethodBind\nbindShortCut_get_as_text\n  = unsafePerformIO $\n      withCString \"ShortCut\" $\n        \\ clsNamePtr ->\n          withCString \"get_as_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the shortcut's @InputEvent@ as a @String@.\nget_as_text ::\n              (ShortCut :< cls, Object :< cls) => cls -> IO GodotString\nget_as_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShortCut_get_as_text (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ShortCut \"get_as_text\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.ShortCut.get_as_text\n\n{-# NOINLINE bindShortCut_get_shortcut #-}\n\n-- | The shortcut's @InputEvent@.\n--   \t\t\tGenerally the @InputEvent@ is a keyboard key, though it can be any @InputEvent@.\nbindShortCut_get_shortcut :: MethodBind\nbindShortCut_get_shortcut\n  = unsafePerformIO $\n      withCString \"ShortCut\" $\n        \\ clsNamePtr ->\n          withCString \"get_shortcut\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The shortcut's @InputEvent@.\n--   \t\t\tGenerally the @InputEvent@ is a keyboard key, though it can be any @InputEvent@.\nget_shortcut ::\n               (ShortCut :< cls, Object :< cls) => cls -> IO InputEvent\nget_shortcut cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShortCut_get_shortcut (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ShortCut \"get_shortcut\" '[] (IO InputEvent)\n         where\n        nodeMethod = Godot.Core.ShortCut.get_shortcut\n\n{-# NOINLINE bindShortCut_is_shortcut #-}\n\n-- | Returns @true@ if the shortcut's @InputEvent@ equals @event@.\nbindShortCut_is_shortcut :: MethodBind\nbindShortCut_is_shortcut\n  = unsafePerformIO $\n      withCString \"ShortCut\" $\n        \\ clsNamePtr ->\n          withCString \"is_shortcut\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the shortcut's @InputEvent@ equals @event@.\nis_shortcut ::\n              (ShortCut :< cls, Object :< cls) => cls -> InputEvent -> IO Bool\nis_shortcut cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShortCut_is_shortcut (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ShortCut \"is_shortcut\" '[InputEvent] (IO Bool)\n         where\n        nodeMethod = Godot.Core.ShortCut.is_shortcut\n\n{-# NOINLINE bindShortCut_is_valid #-}\n\n-- | If @true@, this shortcut is valid.\nbindShortCut_is_valid :: MethodBind\nbindShortCut_is_valid\n  = unsafePerformIO $\n      withCString \"ShortCut\" $\n        \\ clsNamePtr ->\n          withCString \"is_valid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this shortcut is valid.\nis_valid :: (ShortCut :< cls, Object :< cls) => cls -> IO Bool\nis_valid cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShortCut_is_valid (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ShortCut \"is_valid\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.ShortCut.is_valid\n\n{-# NOINLINE bindShortCut_set_shortcut #-}\n\n-- | The shortcut's @InputEvent@.\n--   \t\t\tGenerally the @InputEvent@ is a keyboard key, though it can be any @InputEvent@.\nbindShortCut_set_shortcut :: MethodBind\nbindShortCut_set_shortcut\n  = unsafePerformIO $\n      withCString \"ShortCut\" $\n        \\ clsNamePtr ->\n          withCString \"set_shortcut\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The shortcut's @InputEvent@.\n--   \t\t\tGenerally the @InputEvent@ is a keyboard key, though it can be any @InputEvent@.\nset_shortcut ::\n               (ShortCut :< cls, Object :< cls) => cls -> InputEvent -> IO ()\nset_shortcut cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindShortCut_set_shortcut (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ShortCut \"set_shortcut\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.ShortCut.set_shortcut"
  },
  {
    "path": "src/Godot/Core/Skeleton.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Skeleton\n       (Godot.Core.Skeleton._NOTIFICATION_UPDATE_SKELETON,\n        Godot.Core.Skeleton.add_bone,\n        Godot.Core.Skeleton.bind_child_node_to_bone,\n        Godot.Core.Skeleton.clear_bones, Godot.Core.Skeleton.find_bone,\n        Godot.Core.Skeleton.get_bone_count,\n        Godot.Core.Skeleton.get_bone_custom_pose,\n        Godot.Core.Skeleton.get_bone_global_pose,\n        Godot.Core.Skeleton.get_bone_name,\n        Godot.Core.Skeleton.get_bone_parent,\n        Godot.Core.Skeleton.get_bone_pose,\n        Godot.Core.Skeleton.get_bone_rest,\n        Godot.Core.Skeleton.get_bound_child_nodes_to_bone,\n        Godot.Core.Skeleton.is_bone_rest_disabled,\n        Godot.Core.Skeleton.localize_rests,\n        Godot.Core.Skeleton.physical_bones_add_collision_exception,\n        Godot.Core.Skeleton.physical_bones_remove_collision_exception,\n        Godot.Core.Skeleton.physical_bones_start_simulation,\n        Godot.Core.Skeleton.physical_bones_stop_simulation,\n        Godot.Core.Skeleton.register_skin,\n        Godot.Core.Skeleton.set_bone_custom_pose,\n        Godot.Core.Skeleton.set_bone_disable_rest,\n        Godot.Core.Skeleton.set_bone_global_pose_override,\n        Godot.Core.Skeleton.set_bone_parent,\n        Godot.Core.Skeleton.set_bone_pose,\n        Godot.Core.Skeleton.set_bone_rest,\n        Godot.Core.Skeleton.unbind_child_node_from_bone,\n        Godot.Core.Skeleton.unparent_bone_and_rest)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\n_NOTIFICATION_UPDATE_SKELETON :: Int\n_NOTIFICATION_UPDATE_SKELETON = 50\n\n{-# NOINLINE bindSkeleton_add_bone #-}\n\n-- | Adds a bone, with name @name@. @method get_bone_count@ will become the bone index.\nbindSkeleton_add_bone :: MethodBind\nbindSkeleton_add_bone\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"add_bone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a bone, with name @name@. @method get_bone_count@ will become the bone index.\nadd_bone ::\n           (Skeleton :< cls, Object :< cls) => cls -> GodotString -> IO ()\nadd_bone cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_add_bone (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"add_bone\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.Skeleton.add_bone\n\n{-# NOINLINE bindSkeleton_bind_child_node_to_bone #-}\n\n-- | @i@Deprecated soon.@/i@\nbindSkeleton_bind_child_node_to_bone :: MethodBind\nbindSkeleton_bind_child_node_to_bone\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"bind_child_node_to_bone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @i@Deprecated soon.@/i@\nbind_child_node_to_bone ::\n                          (Skeleton :< cls, Object :< cls) => cls -> Int -> Node -> IO ()\nbind_child_node_to_bone cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_bind_child_node_to_bone\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"bind_child_node_to_bone\" '[Int, Node]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Skeleton.bind_child_node_to_bone\n\n{-# NOINLINE bindSkeleton_clear_bones #-}\n\n-- | Clear all the bones in this skeleton.\nbindSkeleton_clear_bones :: MethodBind\nbindSkeleton_clear_bones\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"clear_bones\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clear all the bones in this skeleton.\nclear_bones :: (Skeleton :< cls, Object :< cls) => cls -> IO ()\nclear_bones cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_clear_bones (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"clear_bones\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Skeleton.clear_bones\n\n{-# NOINLINE bindSkeleton_find_bone #-}\n\n-- | Returns the bone index that matches @name@ as its name.\nbindSkeleton_find_bone :: MethodBind\nbindSkeleton_find_bone\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"find_bone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the bone index that matches @name@ as its name.\nfind_bone ::\n            (Skeleton :< cls, Object :< cls) => cls -> GodotString -> IO Int\nfind_bone cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_find_bone (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"find_bone\" '[GodotString] (IO Int)\n         where\n        nodeMethod = Godot.Core.Skeleton.find_bone\n\n{-# NOINLINE bindSkeleton_get_bone_count #-}\n\n-- | Returns the amount of bones in the skeleton.\nbindSkeleton_get_bone_count :: MethodBind\nbindSkeleton_get_bone_count\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"get_bone_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the amount of bones in the skeleton.\nget_bone_count :: (Skeleton :< cls, Object :< cls) => cls -> IO Int\nget_bone_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_get_bone_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"get_bone_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Skeleton.get_bone_count\n\n{-# NOINLINE bindSkeleton_get_bone_custom_pose #-}\n\n-- | Returns the custom pose of the specified bone. Custom pose is applied on top of the rest pose.\nbindSkeleton_get_bone_custom_pose :: MethodBind\nbindSkeleton_get_bone_custom_pose\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"get_bone_custom_pose\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the custom pose of the specified bone. Custom pose is applied on top of the rest pose.\nget_bone_custom_pose ::\n                       (Skeleton :< cls, Object :< cls) => cls -> Int -> IO Transform\nget_bone_custom_pose cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_get_bone_custom_pose\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"get_bone_custom_pose\" '[Int]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.Skeleton.get_bone_custom_pose\n\n{-# NOINLINE bindSkeleton_get_bone_global_pose #-}\n\n-- | Returns the overall transform of the specified bone, with respect to the skeleton. Being relative to the skeleton frame, this is not the actual \"global\" transform of the bone.\nbindSkeleton_get_bone_global_pose :: MethodBind\nbindSkeleton_get_bone_global_pose\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"get_bone_global_pose\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the overall transform of the specified bone, with respect to the skeleton. Being relative to the skeleton frame, this is not the actual \"global\" transform of the bone.\nget_bone_global_pose ::\n                       (Skeleton :< cls, Object :< cls) => cls -> Int -> IO Transform\nget_bone_global_pose cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_get_bone_global_pose\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"get_bone_global_pose\" '[Int]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.Skeleton.get_bone_global_pose\n\n{-# NOINLINE bindSkeleton_get_bone_name #-}\n\n-- | Returns the name of the bone at index @index@.\nbindSkeleton_get_bone_name :: MethodBind\nbindSkeleton_get_bone_name\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"get_bone_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of the bone at index @index@.\nget_bone_name ::\n                (Skeleton :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_bone_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_get_bone_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"get_bone_name\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Skeleton.get_bone_name\n\n{-# NOINLINE bindSkeleton_get_bone_parent #-}\n\n-- | Returns the bone index which is the parent of the bone at @bone_idx@. If -1, then bone has no parent.\n--   \t\t\t\t__Note:__ The parent bone returned will always be less than @bone_idx@.\nbindSkeleton_get_bone_parent :: MethodBind\nbindSkeleton_get_bone_parent\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"get_bone_parent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the bone index which is the parent of the bone at @bone_idx@. If -1, then bone has no parent.\n--   \t\t\t\t__Note:__ The parent bone returned will always be less than @bone_idx@.\nget_bone_parent ::\n                  (Skeleton :< cls, Object :< cls) => cls -> Int -> IO Int\nget_bone_parent cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_get_bone_parent (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"get_bone_parent\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.Skeleton.get_bone_parent\n\n{-# NOINLINE bindSkeleton_get_bone_pose #-}\n\n-- | Returns the pose transform of the specified bone. Pose is applied on top of the custom pose, which is applied on top the rest pose.\nbindSkeleton_get_bone_pose :: MethodBind\nbindSkeleton_get_bone_pose\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"get_bone_pose\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the pose transform of the specified bone. Pose is applied on top of the custom pose, which is applied on top the rest pose.\nget_bone_pose ::\n                (Skeleton :< cls, Object :< cls) => cls -> Int -> IO Transform\nget_bone_pose cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_get_bone_pose (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"get_bone_pose\" '[Int] (IO Transform)\n         where\n        nodeMethod = Godot.Core.Skeleton.get_bone_pose\n\n{-# NOINLINE bindSkeleton_get_bone_rest #-}\n\n-- | Returns the rest transform for a bone @bone_idx@.\nbindSkeleton_get_bone_rest :: MethodBind\nbindSkeleton_get_bone_rest\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"get_bone_rest\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the rest transform for a bone @bone_idx@.\nget_bone_rest ::\n                (Skeleton :< cls, Object :< cls) => cls -> Int -> IO Transform\nget_bone_rest cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_get_bone_rest (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"get_bone_rest\" '[Int] (IO Transform)\n         where\n        nodeMethod = Godot.Core.Skeleton.get_bone_rest\n\n{-# NOINLINE bindSkeleton_get_bound_child_nodes_to_bone #-}\n\n-- | @i@Deprecated soon.@/i@\nbindSkeleton_get_bound_child_nodes_to_bone :: MethodBind\nbindSkeleton_get_bound_child_nodes_to_bone\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"get_bound_child_nodes_to_bone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @i@Deprecated soon.@/i@\nget_bound_child_nodes_to_bone ::\n                                (Skeleton :< cls, Object :< cls) => cls -> Int -> IO Array\nget_bound_child_nodes_to_bone cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_get_bound_child_nodes_to_bone\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"get_bound_child_nodes_to_bone\" '[Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.Skeleton.get_bound_child_nodes_to_bone\n\n{-# NOINLINE bindSkeleton_is_bone_rest_disabled #-}\n\nbindSkeleton_is_bone_rest_disabled :: MethodBind\nbindSkeleton_is_bone_rest_disabled\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"is_bone_rest_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_bone_rest_disabled ::\n                        (Skeleton :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_bone_rest_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_is_bone_rest_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"is_bone_rest_disabled\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Skeleton.is_bone_rest_disabled\n\n{-# NOINLINE bindSkeleton_localize_rests #-}\n\nbindSkeleton_localize_rests :: MethodBind\nbindSkeleton_localize_rests\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"localize_rests\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nlocalize_rests :: (Skeleton :< cls, Object :< cls) => cls -> IO ()\nlocalize_rests cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_localize_rests (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"localize_rests\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Skeleton.localize_rests\n\n{-# NOINLINE bindSkeleton_physical_bones_add_collision_exception\n             #-}\n\nbindSkeleton_physical_bones_add_collision_exception :: MethodBind\nbindSkeleton_physical_bones_add_collision_exception\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"physical_bones_add_collision_exception\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nphysical_bones_add_collision_exception ::\n                                         (Skeleton :< cls, Object :< cls) => cls -> Rid -> IO ()\nphysical_bones_add_collision_exception cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSkeleton_physical_bones_add_collision_exception\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton\n           \"physical_bones_add_collision_exception\"\n           '[Rid]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Skeleton.physical_bones_add_collision_exception\n\n{-# NOINLINE bindSkeleton_physical_bones_remove_collision_exception\n             #-}\n\nbindSkeleton_physical_bones_remove_collision_exception ::\n                                                       MethodBind\nbindSkeleton_physical_bones_remove_collision_exception\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"physical_bones_remove_collision_exception\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nphysical_bones_remove_collision_exception ::\n                                            (Skeleton :< cls, Object :< cls) => cls -> Rid -> IO ()\nphysical_bones_remove_collision_exception cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSkeleton_physical_bones_remove_collision_exception\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton\n           \"physical_bones_remove_collision_exception\"\n           '[Rid]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.Skeleton.physical_bones_remove_collision_exception\n\n{-# NOINLINE bindSkeleton_physical_bones_start_simulation #-}\n\nbindSkeleton_physical_bones_start_simulation :: MethodBind\nbindSkeleton_physical_bones_start_simulation\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"physical_bones_start_simulation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nphysical_bones_start_simulation ::\n                                  (Skeleton :< cls, Object :< cls) => cls -> Maybe Array -> IO ()\nphysical_bones_start_simulation cls arg1\n  = withVariantArray [defaultedVariant VariantArray V.empty arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_physical_bones_start_simulation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"physical_bones_start_simulation\"\n           '[Maybe Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Skeleton.physical_bones_start_simulation\n\n{-# NOINLINE bindSkeleton_physical_bones_stop_simulation #-}\n\nbindSkeleton_physical_bones_stop_simulation :: MethodBind\nbindSkeleton_physical_bones_stop_simulation\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"physical_bones_stop_simulation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nphysical_bones_stop_simulation ::\n                                 (Skeleton :< cls, Object :< cls) => cls -> IO ()\nphysical_bones_stop_simulation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_physical_bones_stop_simulation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"physical_bones_stop_simulation\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Skeleton.physical_bones_stop_simulation\n\n{-# NOINLINE bindSkeleton_register_skin #-}\n\nbindSkeleton_register_skin :: MethodBind\nbindSkeleton_register_skin\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"register_skin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nregister_skin ::\n                (Skeleton :< cls, Object :< cls) => cls -> Skin -> IO SkinReference\nregister_skin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_register_skin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"register_skin\" '[Skin]\n           (IO SkinReference)\n         where\n        nodeMethod = Godot.Core.Skeleton.register_skin\n\n{-# NOINLINE bindSkeleton_set_bone_custom_pose #-}\n\nbindSkeleton_set_bone_custom_pose :: MethodBind\nbindSkeleton_set_bone_custom_pose\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"set_bone_custom_pose\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_bone_custom_pose ::\n                       (Skeleton :< cls, Object :< cls) =>\n                       cls -> Int -> Transform -> IO ()\nset_bone_custom_pose cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_set_bone_custom_pose\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"set_bone_custom_pose\"\n           '[Int, Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Skeleton.set_bone_custom_pose\n\n{-# NOINLINE bindSkeleton_set_bone_disable_rest #-}\n\nbindSkeleton_set_bone_disable_rest :: MethodBind\nbindSkeleton_set_bone_disable_rest\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"set_bone_disable_rest\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_bone_disable_rest ::\n                        (Skeleton :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_bone_disable_rest cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_set_bone_disable_rest\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"set_bone_disable_rest\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Skeleton.set_bone_disable_rest\n\n{-# NOINLINE bindSkeleton_set_bone_global_pose_override #-}\n\nbindSkeleton_set_bone_global_pose_override :: MethodBind\nbindSkeleton_set_bone_global_pose_override\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"set_bone_global_pose_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_bone_global_pose_override ::\n                                (Skeleton :< cls, Object :< cls) =>\n                                cls -> Int -> Transform -> Float -> Maybe Bool -> IO ()\nset_bone_global_pose_override cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_set_bone_global_pose_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"set_bone_global_pose_override\"\n           '[Int, Transform, Float, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Skeleton.set_bone_global_pose_override\n\n{-# NOINLINE bindSkeleton_set_bone_parent #-}\n\n-- | Sets the bone index @parent_idx@ as the parent of the bone at @bone_idx@. If -1, then bone has no parent.\n--   \t\t\t\t__Note:__ @parent_idx@ must be less than @bone_idx@.\nbindSkeleton_set_bone_parent :: MethodBind\nbindSkeleton_set_bone_parent\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"set_bone_parent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the bone index @parent_idx@ as the parent of the bone at @bone_idx@. If -1, then bone has no parent.\n--   \t\t\t\t__Note:__ @parent_idx@ must be less than @bone_idx@.\nset_bone_parent ::\n                  (Skeleton :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nset_bone_parent cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_set_bone_parent (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"set_bone_parent\" '[Int, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Skeleton.set_bone_parent\n\n{-# NOINLINE bindSkeleton_set_bone_pose #-}\n\n-- | Sets the pose transform for bone @bone_idx@.\nbindSkeleton_set_bone_pose :: MethodBind\nbindSkeleton_set_bone_pose\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"set_bone_pose\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the pose transform for bone @bone_idx@.\nset_bone_pose ::\n                (Skeleton :< cls, Object :< cls) =>\n                cls -> Int -> Transform -> IO ()\nset_bone_pose cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_set_bone_pose (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"set_bone_pose\" '[Int, Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Skeleton.set_bone_pose\n\n{-# NOINLINE bindSkeleton_set_bone_rest #-}\n\n-- | Sets the rest transform for bone @bone_idx@.\nbindSkeleton_set_bone_rest :: MethodBind\nbindSkeleton_set_bone_rest\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"set_bone_rest\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the rest transform for bone @bone_idx@.\nset_bone_rest ::\n                (Skeleton :< cls, Object :< cls) =>\n                cls -> Int -> Transform -> IO ()\nset_bone_rest cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_set_bone_rest (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"set_bone_rest\" '[Int, Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Skeleton.set_bone_rest\n\n{-# NOINLINE bindSkeleton_unbind_child_node_from_bone #-}\n\n-- | @i@Deprecated soon.@/i@\nbindSkeleton_unbind_child_node_from_bone :: MethodBind\nbindSkeleton_unbind_child_node_from_bone\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"unbind_child_node_from_bone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @i@Deprecated soon.@/i@\nunbind_child_node_from_bone ::\n                              (Skeleton :< cls, Object :< cls) => cls -> Int -> Node -> IO ()\nunbind_child_node_from_bone cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_unbind_child_node_from_bone\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"unbind_child_node_from_bone\"\n           '[Int, Node]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Skeleton.unbind_child_node_from_bone\n\n{-# NOINLINE bindSkeleton_unparent_bone_and_rest #-}\n\nbindSkeleton_unparent_bone_and_rest :: MethodBind\nbindSkeleton_unparent_bone_and_rest\n  = unsafePerformIO $\n      withCString \"Skeleton\" $\n        \\ clsNamePtr ->\n          withCString \"unparent_bone_and_rest\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nunparent_bone_and_rest ::\n                         (Skeleton :< cls, Object :< cls) => cls -> Int -> IO ()\nunparent_bone_and_rest cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton_unparent_bone_and_rest\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton \"unparent_bone_and_rest\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Skeleton.unparent_bone_and_rest"
  },
  {
    "path": "src/Godot/Core/Skeleton2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Skeleton2D\n       (Godot.Core.Skeleton2D.sig_bone_setup_changed,\n        Godot.Core.Skeleton2D._update_bone_setup,\n        Godot.Core.Skeleton2D._update_transform,\n        Godot.Core.Skeleton2D.get_bone,\n        Godot.Core.Skeleton2D.get_bone_count,\n        Godot.Core.Skeleton2D.get_skeleton)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\nsig_bone_setup_changed :: Godot.Internal.Dispatch.Signal Skeleton2D\nsig_bone_setup_changed\n  = Godot.Internal.Dispatch.Signal \"bone_setup_changed\"\n\ninstance NodeSignal Skeleton2D \"bone_setup_changed\" '[]\n\n{-# NOINLINE bindSkeleton2D__update_bone_setup #-}\n\nbindSkeleton2D__update_bone_setup :: MethodBind\nbindSkeleton2D__update_bone_setup\n  = unsafePerformIO $\n      withCString \"Skeleton2D\" $\n        \\ clsNamePtr ->\n          withCString \"_update_bone_setup\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_bone_setup ::\n                     (Skeleton2D :< cls, Object :< cls) => cls -> IO ()\n_update_bone_setup cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton2D__update_bone_setup\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton2D \"_update_bone_setup\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.Skeleton2D._update_bone_setup\n\n{-# NOINLINE bindSkeleton2D__update_transform #-}\n\nbindSkeleton2D__update_transform :: MethodBind\nbindSkeleton2D__update_transform\n  = unsafePerformIO $\n      withCString \"Skeleton2D\" $\n        \\ clsNamePtr ->\n          withCString \"_update_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_transform ::\n                    (Skeleton2D :< cls, Object :< cls) => cls -> IO ()\n_update_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton2D__update_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton2D \"_update_transform\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.Skeleton2D._update_transform\n\n{-# NOINLINE bindSkeleton2D_get_bone #-}\n\n-- | Returns a @Bone2D@ from the node hierarchy parented by Skeleton2D. The object to return is identified by the parameter @idx@. Bones are indexed by descending the node hierarchy from top to bottom, adding the children of each branch before moving to the next sibling.\nbindSkeleton2D_get_bone :: MethodBind\nbindSkeleton2D_get_bone\n  = unsafePerformIO $\n      withCString \"Skeleton2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_bone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @Bone2D@ from the node hierarchy parented by Skeleton2D. The object to return is identified by the parameter @idx@. Bones are indexed by descending the node hierarchy from top to bottom, adding the children of each branch before moving to the next sibling.\nget_bone ::\n           (Skeleton2D :< cls, Object :< cls) => cls -> Int -> IO Bone2D\nget_bone cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton2D_get_bone (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton2D \"get_bone\" '[Int] (IO Bone2D) where\n        nodeMethod = Godot.Core.Skeleton2D.get_bone\n\n{-# NOINLINE bindSkeleton2D_get_bone_count #-}\n\n-- | Returns the number of @Bone2D@ nodes in the node hierarchy parented by Skeleton2D.\nbindSkeleton2D_get_bone_count :: MethodBind\nbindSkeleton2D_get_bone_count\n  = unsafePerformIO $\n      withCString \"Skeleton2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_bone_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of @Bone2D@ nodes in the node hierarchy parented by Skeleton2D.\nget_bone_count ::\n                 (Skeleton2D :< cls, Object :< cls) => cls -> IO Int\nget_bone_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton2D_get_bone_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton2D \"get_bone_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Skeleton2D.get_bone_count\n\n{-# NOINLINE bindSkeleton2D_get_skeleton #-}\n\n-- | Returns the @RID@ of a Skeleton2D instance.\nbindSkeleton2D_get_skeleton :: MethodBind\nbindSkeleton2D_get_skeleton\n  = unsafePerformIO $\n      withCString \"Skeleton2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_skeleton\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @RID@ of a Skeleton2D instance.\nget_skeleton :: (Skeleton2D :< cls, Object :< cls) => cls -> IO Rid\nget_skeleton cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeleton2D_get_skeleton (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skeleton2D \"get_skeleton\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.Skeleton2D.get_skeleton"
  },
  {
    "path": "src/Godot/Core/SkeletonIK.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SkeletonIK\n       (Godot.Core.SkeletonIK.get_interpolation,\n        Godot.Core.SkeletonIK.get_magnet_position,\n        Godot.Core.SkeletonIK.get_max_iterations,\n        Godot.Core.SkeletonIK.get_min_distance,\n        Godot.Core.SkeletonIK.get_parent_skeleton,\n        Godot.Core.SkeletonIK.get_root_bone,\n        Godot.Core.SkeletonIK.get_target_node,\n        Godot.Core.SkeletonIK.get_target_transform,\n        Godot.Core.SkeletonIK.get_tip_bone,\n        Godot.Core.SkeletonIK.is_override_tip_basis,\n        Godot.Core.SkeletonIK.is_running,\n        Godot.Core.SkeletonIK.is_using_magnet,\n        Godot.Core.SkeletonIK.set_interpolation,\n        Godot.Core.SkeletonIK.set_magnet_position,\n        Godot.Core.SkeletonIK.set_max_iterations,\n        Godot.Core.SkeletonIK.set_min_distance,\n        Godot.Core.SkeletonIK.set_override_tip_basis,\n        Godot.Core.SkeletonIK.set_root_bone,\n        Godot.Core.SkeletonIK.set_target_node,\n        Godot.Core.SkeletonIK.set_target_transform,\n        Godot.Core.SkeletonIK.set_tip_bone,\n        Godot.Core.SkeletonIK.set_use_magnet, Godot.Core.SkeletonIK.start,\n        Godot.Core.SkeletonIK.stop)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\ninstance NodeProperty SkeletonIK \"interpolation\" Float 'False where\n        nodeProperty\n          = (get_interpolation, wrapDroppingSetter set_interpolation,\n             Nothing)\n\ninstance NodeProperty SkeletonIK \"magnet\" Vector3 'False where\n        nodeProperty\n          = (get_magnet_position, wrapDroppingSetter set_magnet_position,\n             Nothing)\n\ninstance NodeProperty SkeletonIK \"max_iterations\" Int 'False where\n        nodeProperty\n          = (get_max_iterations, wrapDroppingSetter set_max_iterations,\n             Nothing)\n\ninstance NodeProperty SkeletonIK \"min_distance\" Float 'False where\n        nodeProperty\n          = (get_min_distance, wrapDroppingSetter set_min_distance, Nothing)\n\ninstance NodeProperty SkeletonIK \"override_tip_basis\" Bool 'False\n         where\n        nodeProperty\n          = (is_override_tip_basis,\n             wrapDroppingSetter set_override_tip_basis, Nothing)\n\ninstance NodeProperty SkeletonIK \"root_bone\" GodotString 'False\n         where\n        nodeProperty\n          = (get_root_bone, wrapDroppingSetter set_root_bone, Nothing)\n\ninstance NodeProperty SkeletonIK \"target\" Transform 'False where\n        nodeProperty\n          = (get_target_transform, wrapDroppingSetter set_target_transform,\n             Nothing)\n\ninstance NodeProperty SkeletonIK \"target_node\" NodePath 'False\n         where\n        nodeProperty\n          = (get_target_node, wrapDroppingSetter set_target_node, Nothing)\n\ninstance NodeProperty SkeletonIK \"tip_bone\" GodotString 'False\n         where\n        nodeProperty\n          = (get_tip_bone, wrapDroppingSetter set_tip_bone, Nothing)\n\ninstance NodeProperty SkeletonIK \"use_magnet\" Bool 'False where\n        nodeProperty\n          = (is_using_magnet, wrapDroppingSetter set_use_magnet, Nothing)\n\n{-# NOINLINE bindSkeletonIK_get_interpolation #-}\n\nbindSkeletonIK_get_interpolation :: MethodBind\nbindSkeletonIK_get_interpolation\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"get_interpolation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_interpolation ::\n                    (SkeletonIK :< cls, Object :< cls) => cls -> IO Float\nget_interpolation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_get_interpolation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"get_interpolation\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.SkeletonIK.get_interpolation\n\n{-# NOINLINE bindSkeletonIK_get_magnet_position #-}\n\nbindSkeletonIK_get_magnet_position :: MethodBind\nbindSkeletonIK_get_magnet_position\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"get_magnet_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_magnet_position ::\n                      (SkeletonIK :< cls, Object :< cls) => cls -> IO Vector3\nget_magnet_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_get_magnet_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"get_magnet_position\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.SkeletonIK.get_magnet_position\n\n{-# NOINLINE bindSkeletonIK_get_max_iterations #-}\n\nbindSkeletonIK_get_max_iterations :: MethodBind\nbindSkeletonIK_get_max_iterations\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"get_max_iterations\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_max_iterations ::\n                     (SkeletonIK :< cls, Object :< cls) => cls -> IO Int\nget_max_iterations cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_get_max_iterations\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"get_max_iterations\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.SkeletonIK.get_max_iterations\n\n{-# NOINLINE bindSkeletonIK_get_min_distance #-}\n\nbindSkeletonIK_get_min_distance :: MethodBind\nbindSkeletonIK_get_min_distance\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"get_min_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_min_distance ::\n                   (SkeletonIK :< cls, Object :< cls) => cls -> IO Float\nget_min_distance cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_get_min_distance (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"get_min_distance\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.SkeletonIK.get_min_distance\n\n{-# NOINLINE bindSkeletonIK_get_parent_skeleton #-}\n\nbindSkeletonIK_get_parent_skeleton :: MethodBind\nbindSkeletonIK_get_parent_skeleton\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"get_parent_skeleton\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_parent_skeleton ::\n                      (SkeletonIK :< cls, Object :< cls) => cls -> IO Skeleton\nget_parent_skeleton cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_get_parent_skeleton\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"get_parent_skeleton\" '[]\n           (IO Skeleton)\n         where\n        nodeMethod = Godot.Core.SkeletonIK.get_parent_skeleton\n\n{-# NOINLINE bindSkeletonIK_get_root_bone #-}\n\nbindSkeletonIK_get_root_bone :: MethodBind\nbindSkeletonIK_get_root_bone\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"get_root_bone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_root_bone ::\n                (SkeletonIK :< cls, Object :< cls) => cls -> IO GodotString\nget_root_bone cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_get_root_bone (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"get_root_bone\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.SkeletonIK.get_root_bone\n\n{-# NOINLINE bindSkeletonIK_get_target_node #-}\n\nbindSkeletonIK_get_target_node :: MethodBind\nbindSkeletonIK_get_target_node\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"get_target_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_target_node ::\n                  (SkeletonIK :< cls, Object :< cls) => cls -> IO NodePath\nget_target_node cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_get_target_node (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"get_target_node\" '[] (IO NodePath)\n         where\n        nodeMethod = Godot.Core.SkeletonIK.get_target_node\n\n{-# NOINLINE bindSkeletonIK_get_target_transform #-}\n\nbindSkeletonIK_get_target_transform :: MethodBind\nbindSkeletonIK_get_target_transform\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"get_target_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_target_transform ::\n                       (SkeletonIK :< cls, Object :< cls) => cls -> IO Transform\nget_target_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_get_target_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"get_target_transform\" '[]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.SkeletonIK.get_target_transform\n\n{-# NOINLINE bindSkeletonIK_get_tip_bone #-}\n\nbindSkeletonIK_get_tip_bone :: MethodBind\nbindSkeletonIK_get_tip_bone\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"get_tip_bone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_tip_bone ::\n               (SkeletonIK :< cls, Object :< cls) => cls -> IO GodotString\nget_tip_bone cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_get_tip_bone (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"get_tip_bone\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.SkeletonIK.get_tip_bone\n\n{-# NOINLINE bindSkeletonIK_is_override_tip_basis #-}\n\nbindSkeletonIK_is_override_tip_basis :: MethodBind\nbindSkeletonIK_is_override_tip_basis\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"is_override_tip_basis\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_override_tip_basis ::\n                        (SkeletonIK :< cls, Object :< cls) => cls -> IO Bool\nis_override_tip_basis cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_is_override_tip_basis\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"is_override_tip_basis\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.SkeletonIK.is_override_tip_basis\n\n{-# NOINLINE bindSkeletonIK_is_running #-}\n\nbindSkeletonIK_is_running :: MethodBind\nbindSkeletonIK_is_running\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"is_running\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_running :: (SkeletonIK :< cls, Object :< cls) => cls -> IO Bool\nis_running cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_is_running (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"is_running\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.SkeletonIK.is_running\n\n{-# NOINLINE bindSkeletonIK_is_using_magnet #-}\n\nbindSkeletonIK_is_using_magnet :: MethodBind\nbindSkeletonIK_is_using_magnet\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_magnet\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_using_magnet ::\n                  (SkeletonIK :< cls, Object :< cls) => cls -> IO Bool\nis_using_magnet cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_is_using_magnet (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"is_using_magnet\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.SkeletonIK.is_using_magnet\n\n{-# NOINLINE bindSkeletonIK_set_interpolation #-}\n\nbindSkeletonIK_set_interpolation :: MethodBind\nbindSkeletonIK_set_interpolation\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"set_interpolation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_interpolation ::\n                    (SkeletonIK :< cls, Object :< cls) => cls -> Float -> IO ()\nset_interpolation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_set_interpolation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"set_interpolation\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.SkeletonIK.set_interpolation\n\n{-# NOINLINE bindSkeletonIK_set_magnet_position #-}\n\nbindSkeletonIK_set_magnet_position :: MethodBind\nbindSkeletonIK_set_magnet_position\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"set_magnet_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_magnet_position ::\n                      (SkeletonIK :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_magnet_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_set_magnet_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"set_magnet_position\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SkeletonIK.set_magnet_position\n\n{-# NOINLINE bindSkeletonIK_set_max_iterations #-}\n\nbindSkeletonIK_set_max_iterations :: MethodBind\nbindSkeletonIK_set_max_iterations\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"set_max_iterations\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_max_iterations ::\n                     (SkeletonIK :< cls, Object :< cls) => cls -> Int -> IO ()\nset_max_iterations cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_set_max_iterations\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"set_max_iterations\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.SkeletonIK.set_max_iterations\n\n{-# NOINLINE bindSkeletonIK_set_min_distance #-}\n\nbindSkeletonIK_set_min_distance :: MethodBind\nbindSkeletonIK_set_min_distance\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"set_min_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_min_distance ::\n                   (SkeletonIK :< cls, Object :< cls) => cls -> Float -> IO ()\nset_min_distance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_set_min_distance (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"set_min_distance\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.SkeletonIK.set_min_distance\n\n{-# NOINLINE bindSkeletonIK_set_override_tip_basis #-}\n\nbindSkeletonIK_set_override_tip_basis :: MethodBind\nbindSkeletonIK_set_override_tip_basis\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"set_override_tip_basis\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_override_tip_basis ::\n                         (SkeletonIK :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_override_tip_basis cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_set_override_tip_basis\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"set_override_tip_basis\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SkeletonIK.set_override_tip_basis\n\n{-# NOINLINE bindSkeletonIK_set_root_bone #-}\n\nbindSkeletonIK_set_root_bone :: MethodBind\nbindSkeletonIK_set_root_bone\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"set_root_bone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_root_bone ::\n                (SkeletonIK :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_root_bone cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_set_root_bone (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"set_root_bone\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SkeletonIK.set_root_bone\n\n{-# NOINLINE bindSkeletonIK_set_target_node #-}\n\nbindSkeletonIK_set_target_node :: MethodBind\nbindSkeletonIK_set_target_node\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"set_target_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_target_node ::\n                  (SkeletonIK :< cls, Object :< cls) => cls -> NodePath -> IO ()\nset_target_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_set_target_node (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"set_target_node\" '[NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SkeletonIK.set_target_node\n\n{-# NOINLINE bindSkeletonIK_set_target_transform #-}\n\nbindSkeletonIK_set_target_transform :: MethodBind\nbindSkeletonIK_set_target_transform\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"set_target_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_target_transform ::\n                       (SkeletonIK :< cls, Object :< cls) => cls -> Transform -> IO ()\nset_target_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_set_target_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"set_target_transform\" '[Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SkeletonIK.set_target_transform\n\n{-# NOINLINE bindSkeletonIK_set_tip_bone #-}\n\nbindSkeletonIK_set_tip_bone :: MethodBind\nbindSkeletonIK_set_tip_bone\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"set_tip_bone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_tip_bone ::\n               (SkeletonIK :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_tip_bone cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_set_tip_bone (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"set_tip_bone\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SkeletonIK.set_tip_bone\n\n{-# NOINLINE bindSkeletonIK_set_use_magnet #-}\n\nbindSkeletonIK_set_use_magnet :: MethodBind\nbindSkeletonIK_set_use_magnet\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_magnet\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_use_magnet ::\n                 (SkeletonIK :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_magnet cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_set_use_magnet (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"set_use_magnet\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.SkeletonIK.set_use_magnet\n\n{-# NOINLINE bindSkeletonIK_start #-}\n\nbindSkeletonIK_start :: MethodBind\nbindSkeletonIK_start\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"start\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nstart ::\n        (SkeletonIK :< cls, Object :< cls) => cls -> Maybe Bool -> IO ()\nstart cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_start (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"start\" '[Maybe Bool] (IO ()) where\n        nodeMethod = Godot.Core.SkeletonIK.start\n\n{-# NOINLINE bindSkeletonIK_stop #-}\n\nbindSkeletonIK_stop :: MethodBind\nbindSkeletonIK_stop\n  = unsafePerformIO $\n      withCString \"SkeletonIK\" $\n        \\ clsNamePtr ->\n          withCString \"stop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nstop :: (SkeletonIK :< cls, Object :< cls) => cls -> IO ()\nstop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkeletonIK_stop (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkeletonIK \"stop\" '[] (IO ()) where\n        nodeMethod = Godot.Core.SkeletonIK.stop"
  },
  {
    "path": "src/Godot/Core/Skin.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Skin\n       (Godot.Core.Skin.add_bind, Godot.Core.Skin.clear_binds,\n        Godot.Core.Skin.get_bind_bone, Godot.Core.Skin.get_bind_count,\n        Godot.Core.Skin.get_bind_pose, Godot.Core.Skin.set_bind_bone,\n        Godot.Core.Skin.set_bind_count, Godot.Core.Skin.set_bind_pose)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n{-# NOINLINE bindSkin_add_bind #-}\n\nbindSkin_add_bind :: MethodBind\nbindSkin_add_bind\n  = unsafePerformIO $\n      withCString \"Skin\" $\n        \\ clsNamePtr ->\n          withCString \"add_bind\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_bind ::\n           (Skin :< cls, Object :< cls) => cls -> Int -> Transform -> IO ()\nadd_bind cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkin_add_bind (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skin \"add_bind\" '[Int, Transform] (IO ()) where\n        nodeMethod = Godot.Core.Skin.add_bind\n\n{-# NOINLINE bindSkin_clear_binds #-}\n\nbindSkin_clear_binds :: MethodBind\nbindSkin_clear_binds\n  = unsafePerformIO $\n      withCString \"Skin\" $\n        \\ clsNamePtr ->\n          withCString \"clear_binds\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nclear_binds :: (Skin :< cls, Object :< cls) => cls -> IO ()\nclear_binds cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkin_clear_binds (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skin \"clear_binds\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Skin.clear_binds\n\n{-# NOINLINE bindSkin_get_bind_bone #-}\n\nbindSkin_get_bind_bone :: MethodBind\nbindSkin_get_bind_bone\n  = unsafePerformIO $\n      withCString \"Skin\" $\n        \\ clsNamePtr ->\n          withCString \"get_bind_bone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_bind_bone ::\n                (Skin :< cls, Object :< cls) => cls -> Int -> IO Int\nget_bind_bone cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkin_get_bind_bone (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skin \"get_bind_bone\" '[Int] (IO Int) where\n        nodeMethod = Godot.Core.Skin.get_bind_bone\n\n{-# NOINLINE bindSkin_get_bind_count #-}\n\nbindSkin_get_bind_count :: MethodBind\nbindSkin_get_bind_count\n  = unsafePerformIO $\n      withCString \"Skin\" $\n        \\ clsNamePtr ->\n          withCString \"get_bind_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_bind_count :: (Skin :< cls, Object :< cls) => cls -> IO Int\nget_bind_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkin_get_bind_count (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skin \"get_bind_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Skin.get_bind_count\n\n{-# NOINLINE bindSkin_get_bind_pose #-}\n\nbindSkin_get_bind_pose :: MethodBind\nbindSkin_get_bind_pose\n  = unsafePerformIO $\n      withCString \"Skin\" $\n        \\ clsNamePtr ->\n          withCString \"get_bind_pose\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_bind_pose ::\n                (Skin :< cls, Object :< cls) => cls -> Int -> IO Transform\nget_bind_pose cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkin_get_bind_pose (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skin \"get_bind_pose\" '[Int] (IO Transform)\n         where\n        nodeMethod = Godot.Core.Skin.get_bind_pose\n\n{-# NOINLINE bindSkin_set_bind_bone #-}\n\nbindSkin_set_bind_bone :: MethodBind\nbindSkin_set_bind_bone\n  = unsafePerformIO $\n      withCString \"Skin\" $\n        \\ clsNamePtr ->\n          withCString \"set_bind_bone\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_bind_bone ::\n                (Skin :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nset_bind_bone cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkin_set_bind_bone (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skin \"set_bind_bone\" '[Int, Int] (IO ()) where\n        nodeMethod = Godot.Core.Skin.set_bind_bone\n\n{-# NOINLINE bindSkin_set_bind_count #-}\n\nbindSkin_set_bind_count :: MethodBind\nbindSkin_set_bind_count\n  = unsafePerformIO $\n      withCString \"Skin\" $\n        \\ clsNamePtr ->\n          withCString \"set_bind_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_bind_count ::\n                 (Skin :< cls, Object :< cls) => cls -> Int -> IO ()\nset_bind_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkin_set_bind_count (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skin \"set_bind_count\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Skin.set_bind_count\n\n{-# NOINLINE bindSkin_set_bind_pose #-}\n\nbindSkin_set_bind_pose :: MethodBind\nbindSkin_set_bind_pose\n  = unsafePerformIO $\n      withCString \"Skin\" $\n        \\ clsNamePtr ->\n          withCString \"set_bind_pose\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_bind_pose ::\n                (Skin :< cls, Object :< cls) => cls -> Int -> Transform -> IO ()\nset_bind_pose cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkin_set_bind_pose (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Skin \"set_bind_pose\" '[Int, Transform] (IO ())\n         where\n        nodeMethod = Godot.Core.Skin.set_bind_pose"
  },
  {
    "path": "src/Godot/Core/SkinReference.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SkinReference\n       (Godot.Core.SkinReference._skin_changed,\n        Godot.Core.SkinReference.get_skeleton,\n        Godot.Core.SkinReference.get_skin)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindSkinReference__skin_changed #-}\n\nbindSkinReference__skin_changed :: MethodBind\nbindSkinReference__skin_changed\n  = unsafePerformIO $\n      withCString \"SkinReference\" $\n        \\ clsNamePtr ->\n          withCString \"_skin_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_skin_changed ::\n                (SkinReference :< cls, Object :< cls) => cls -> IO ()\n_skin_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkinReference__skin_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkinReference \"_skin_changed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.SkinReference._skin_changed\n\n{-# NOINLINE bindSkinReference_get_skeleton #-}\n\nbindSkinReference_get_skeleton :: MethodBind\nbindSkinReference_get_skeleton\n  = unsafePerformIO $\n      withCString \"SkinReference\" $\n        \\ clsNamePtr ->\n          withCString \"get_skeleton\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_skeleton ::\n               (SkinReference :< cls, Object :< cls) => cls -> IO Rid\nget_skeleton cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkinReference_get_skeleton (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkinReference \"get_skeleton\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.SkinReference.get_skeleton\n\n{-# NOINLINE bindSkinReference_get_skin #-}\n\nbindSkinReference_get_skin :: MethodBind\nbindSkinReference_get_skin\n  = unsafePerformIO $\n      withCString \"SkinReference\" $\n        \\ clsNamePtr ->\n          withCString \"get_skin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_skin :: (SkinReference :< cls, Object :< cls) => cls -> IO Skin\nget_skin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSkinReference_get_skin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SkinReference \"get_skin\" '[] (IO Skin) where\n        nodeMethod = Godot.Core.SkinReference.get_skin"
  },
  {
    "path": "src/Godot/Core/Sky.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Sky\n       (Godot.Core.Sky._RADIANCE_SIZE_128,\n        Godot.Core.Sky._RADIANCE_SIZE_2048,\n        Godot.Core.Sky._RADIANCE_SIZE_512,\n        Godot.Core.Sky._RADIANCE_SIZE_1024,\n        Godot.Core.Sky._RADIANCE_SIZE_64, Godot.Core.Sky._RADIANCE_SIZE_32,\n        Godot.Core.Sky._RADIANCE_SIZE_256,\n        Godot.Core.Sky._RADIANCE_SIZE_MAX,\n        Godot.Core.Sky.get_radiance_size, Godot.Core.Sky.set_radiance_size)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_RADIANCE_SIZE_128 :: Int\n_RADIANCE_SIZE_128 = 2\n\n_RADIANCE_SIZE_2048 :: Int\n_RADIANCE_SIZE_2048 = 6\n\n_RADIANCE_SIZE_512 :: Int\n_RADIANCE_SIZE_512 = 4\n\n_RADIANCE_SIZE_1024 :: Int\n_RADIANCE_SIZE_1024 = 5\n\n_RADIANCE_SIZE_64 :: Int\n_RADIANCE_SIZE_64 = 1\n\n_RADIANCE_SIZE_32 :: Int\n_RADIANCE_SIZE_32 = 0\n\n_RADIANCE_SIZE_256 :: Int\n_RADIANCE_SIZE_256 = 3\n\n_RADIANCE_SIZE_MAX :: Int\n_RADIANCE_SIZE_MAX = 7\n\ninstance NodeProperty Sky \"radiance_size\" Int 'False where\n        nodeProperty\n          = (get_radiance_size, wrapDroppingSetter set_radiance_size,\n             Nothing)\n\n{-# NOINLINE bindSky_get_radiance_size #-}\n\n-- | The @Sky@'s radiance map size. The higher the radiance map size, the more detailed the lighting from the @Sky@ will be.\n--   \t\t\tSee @enum RadianceSize@ constants for values.\n--   \t\t\t__Note:__ Some hardware will have trouble with higher radiance sizes, especially @RADIANCE_SIZE_512@ and above. Only use such high values on high-end hardware.\nbindSky_get_radiance_size :: MethodBind\nbindSky_get_radiance_size\n  = unsafePerformIO $\n      withCString \"Sky\" $\n        \\ clsNamePtr ->\n          withCString \"get_radiance_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Sky@'s radiance map size. The higher the radiance map size, the more detailed the lighting from the @Sky@ will be.\n--   \t\t\tSee @enum RadianceSize@ constants for values.\n--   \t\t\t__Note:__ Some hardware will have trouble with higher radiance sizes, especially @RADIANCE_SIZE_512@ and above. Only use such high values on high-end hardware.\nget_radiance_size :: (Sky :< cls, Object :< cls) => cls -> IO Int\nget_radiance_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSky_get_radiance_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sky \"get_radiance_size\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Sky.get_radiance_size\n\n{-# NOINLINE bindSky_set_radiance_size #-}\n\n-- | The @Sky@'s radiance map size. The higher the radiance map size, the more detailed the lighting from the @Sky@ will be.\n--   \t\t\tSee @enum RadianceSize@ constants for values.\n--   \t\t\t__Note:__ Some hardware will have trouble with higher radiance sizes, especially @RADIANCE_SIZE_512@ and above. Only use such high values on high-end hardware.\nbindSky_set_radiance_size :: MethodBind\nbindSky_set_radiance_size\n  = unsafePerformIO $\n      withCString \"Sky\" $\n        \\ clsNamePtr ->\n          withCString \"set_radiance_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Sky@'s radiance map size. The higher the radiance map size, the more detailed the lighting from the @Sky@ will be.\n--   \t\t\tSee @enum RadianceSize@ constants for values.\n--   \t\t\t__Note:__ Some hardware will have trouble with higher radiance sizes, especially @RADIANCE_SIZE_512@ and above. Only use such high values on high-end hardware.\nset_radiance_size ::\n                    (Sky :< cls, Object :< cls) => cls -> Int -> IO ()\nset_radiance_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSky_set_radiance_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sky \"set_radiance_size\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Sky.set_radiance_size"
  },
  {
    "path": "src/Godot/Core/Slider.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Slider\n       (Godot.Core.Slider._gui_input, Godot.Core.Slider.get_ticks,\n        Godot.Core.Slider.get_ticks_on_borders,\n        Godot.Core.Slider.is_editable, Godot.Core.Slider.is_scrollable,\n        Godot.Core.Slider.set_editable, Godot.Core.Slider.set_scrollable,\n        Godot.Core.Slider.set_ticks,\n        Godot.Core.Slider.set_ticks_on_borders)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Range()\n\ninstance NodeProperty Slider \"editable\" Bool 'False where\n        nodeProperty\n          = (is_editable, wrapDroppingSetter set_editable, Nothing)\n\ninstance NodeProperty Slider \"scrollable\" Bool 'False where\n        nodeProperty\n          = (is_scrollable, wrapDroppingSetter set_scrollable, Nothing)\n\ninstance NodeProperty Slider \"tick_count\" Int 'False where\n        nodeProperty = (get_ticks, wrapDroppingSetter set_ticks, Nothing)\n\ninstance NodeProperty Slider \"ticks_on_borders\" Bool 'False where\n        nodeProperty\n          = (get_ticks_on_borders, wrapDroppingSetter set_ticks_on_borders,\n             Nothing)\n\n{-# NOINLINE bindSlider__gui_input #-}\n\nbindSlider__gui_input :: MethodBind\nbindSlider__gui_input\n  = unsafePerformIO $\n      withCString \"Slider\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (Slider :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSlider__gui_input (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Slider \"_gui_input\" '[InputEvent] (IO ()) where\n        nodeMethod = Godot.Core.Slider._gui_input\n\n{-# NOINLINE bindSlider_get_ticks #-}\n\n-- | Number of ticks displayed on the slider, including border ticks. Ticks are uniformly-distributed value markers.\nbindSlider_get_ticks :: MethodBind\nbindSlider_get_ticks\n  = unsafePerformIO $\n      withCString \"Slider\" $\n        \\ clsNamePtr ->\n          withCString \"get_ticks\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of ticks displayed on the slider, including border ticks. Ticks are uniformly-distributed value markers.\nget_ticks :: (Slider :< cls, Object :< cls) => cls -> IO Int\nget_ticks cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSlider_get_ticks (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Slider \"get_ticks\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Slider.get_ticks\n\n{-# NOINLINE bindSlider_get_ticks_on_borders #-}\n\n-- | If @true@, the slider will display ticks for minimum and maximum values.\nbindSlider_get_ticks_on_borders :: MethodBind\nbindSlider_get_ticks_on_borders\n  = unsafePerformIO $\n      withCString \"Slider\" $\n        \\ clsNamePtr ->\n          withCString \"get_ticks_on_borders\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the slider will display ticks for minimum and maximum values.\nget_ticks_on_borders ::\n                       (Slider :< cls, Object :< cls) => cls -> IO Bool\nget_ticks_on_borders cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSlider_get_ticks_on_borders (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Slider \"get_ticks_on_borders\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Slider.get_ticks_on_borders\n\n{-# NOINLINE bindSlider_is_editable #-}\n\n-- | If @true@, the slider can be interacted with. If @false@, the value can be changed only by code.\nbindSlider_is_editable :: MethodBind\nbindSlider_is_editable\n  = unsafePerformIO $\n      withCString \"Slider\" $\n        \\ clsNamePtr ->\n          withCString \"is_editable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the slider can be interacted with. If @false@, the value can be changed only by code.\nis_editable :: (Slider :< cls, Object :< cls) => cls -> IO Bool\nis_editable cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSlider_is_editable (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Slider \"is_editable\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Slider.is_editable\n\n{-# NOINLINE bindSlider_is_scrollable #-}\n\n-- | If @true@, the value can be changed using the mouse wheel.\nbindSlider_is_scrollable :: MethodBind\nbindSlider_is_scrollable\n  = unsafePerformIO $\n      withCString \"Slider\" $\n        \\ clsNamePtr ->\n          withCString \"is_scrollable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the value can be changed using the mouse wheel.\nis_scrollable :: (Slider :< cls, Object :< cls) => cls -> IO Bool\nis_scrollable cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSlider_is_scrollable (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Slider \"is_scrollable\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Slider.is_scrollable\n\n{-# NOINLINE bindSlider_set_editable #-}\n\n-- | If @true@, the slider can be interacted with. If @false@, the value can be changed only by code.\nbindSlider_set_editable :: MethodBind\nbindSlider_set_editable\n  = unsafePerformIO $\n      withCString \"Slider\" $\n        \\ clsNamePtr ->\n          withCString \"set_editable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the slider can be interacted with. If @false@, the value can be changed only by code.\nset_editable ::\n               (Slider :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_editable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSlider_set_editable (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Slider \"set_editable\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Slider.set_editable\n\n{-# NOINLINE bindSlider_set_scrollable #-}\n\n-- | If @true@, the value can be changed using the mouse wheel.\nbindSlider_set_scrollable :: MethodBind\nbindSlider_set_scrollable\n  = unsafePerformIO $\n      withCString \"Slider\" $\n        \\ clsNamePtr ->\n          withCString \"set_scrollable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the value can be changed using the mouse wheel.\nset_scrollable ::\n                 (Slider :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_scrollable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSlider_set_scrollable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Slider \"set_scrollable\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Slider.set_scrollable\n\n{-# NOINLINE bindSlider_set_ticks #-}\n\n-- | Number of ticks displayed on the slider, including border ticks. Ticks are uniformly-distributed value markers.\nbindSlider_set_ticks :: MethodBind\nbindSlider_set_ticks\n  = unsafePerformIO $\n      withCString \"Slider\" $\n        \\ clsNamePtr ->\n          withCString \"set_ticks\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of ticks displayed on the slider, including border ticks. Ticks are uniformly-distributed value markers.\nset_ticks :: (Slider :< cls, Object :< cls) => cls -> Int -> IO ()\nset_ticks cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSlider_set_ticks (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Slider \"set_ticks\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Slider.set_ticks\n\n{-# NOINLINE bindSlider_set_ticks_on_borders #-}\n\n-- | If @true@, the slider will display ticks for minimum and maximum values.\nbindSlider_set_ticks_on_borders :: MethodBind\nbindSlider_set_ticks_on_borders\n  = unsafePerformIO $\n      withCString \"Slider\" $\n        \\ clsNamePtr ->\n          withCString \"set_ticks_on_borders\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the slider will display ticks for minimum and maximum values.\nset_ticks_on_borders ::\n                       (Slider :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_ticks_on_borders cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSlider_set_ticks_on_borders (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Slider \"set_ticks_on_borders\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Slider.set_ticks_on_borders"
  },
  {
    "path": "src/Godot/Core/SliderJoint.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SliderJoint\n       (Godot.Core.SliderJoint._PARAM_ANGULAR_LIMIT_LOWER,\n        Godot.Core.SliderJoint._PARAM_LINEAR_ORTHOGONAL_RESTITUTION,\n        Godot.Core.SliderJoint._PARAM_ANGULAR_MOTION_DAMPING,\n        Godot.Core.SliderJoint._PARAM_LINEAR_LIMIT_RESTITUTION,\n        Godot.Core.SliderJoint._PARAM_LINEAR_MOTION_RESTITUTION,\n        Godot.Core.SliderJoint._PARAM_ANGULAR_ORTHOGONAL_DAMPING,\n        Godot.Core.SliderJoint._PARAM_ANGULAR_ORTHOGONAL_SOFTNESS,\n        Godot.Core.SliderJoint._PARAM_LINEAR_ORTHOGONAL_SOFTNESS,\n        Godot.Core.SliderJoint._PARAM_LINEAR_LIMIT_SOFTNESS,\n        Godot.Core.SliderJoint._PARAM_ANGULAR_LIMIT_RESTITUTION,\n        Godot.Core.SliderJoint._PARAM_LINEAR_LIMIT_LOWER,\n        Godot.Core.SliderJoint._PARAM_LINEAR_MOTION_SOFTNESS,\n        Godot.Core.SliderJoint._PARAM_MAX,\n        Godot.Core.SliderJoint._PARAM_ANGULAR_LIMIT_DAMPING,\n        Godot.Core.SliderJoint._PARAM_ANGULAR_LIMIT_SOFTNESS,\n        Godot.Core.SliderJoint._PARAM_LINEAR_LIMIT_UPPER,\n        Godot.Core.SliderJoint._PARAM_ANGULAR_LIMIT_UPPER,\n        Godot.Core.SliderJoint._PARAM_LINEAR_LIMIT_DAMPING,\n        Godot.Core.SliderJoint._PARAM_ANGULAR_MOTION_RESTITUTION,\n        Godot.Core.SliderJoint._PARAM_LINEAR_ORTHOGONAL_DAMPING,\n        Godot.Core.SliderJoint._PARAM_ANGULAR_ORTHOGONAL_RESTITUTION,\n        Godot.Core.SliderJoint._PARAM_LINEAR_MOTION_DAMPING,\n        Godot.Core.SliderJoint._PARAM_ANGULAR_MOTION_SOFTNESS,\n        Godot.Core.SliderJoint._get_lower_limit_angular,\n        Godot.Core.SliderJoint._get_upper_limit_angular,\n        Godot.Core.SliderJoint._set_lower_limit_angular,\n        Godot.Core.SliderJoint._set_upper_limit_angular,\n        Godot.Core.SliderJoint.get_param, Godot.Core.SliderJoint.set_param)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Joint()\n\n_PARAM_ANGULAR_LIMIT_LOWER :: Int\n_PARAM_ANGULAR_LIMIT_LOWER = 12\n\n_PARAM_LINEAR_ORTHOGONAL_RESTITUTION :: Int\n_PARAM_LINEAR_ORTHOGONAL_RESTITUTION = 9\n\n_PARAM_ANGULAR_MOTION_DAMPING :: Int\n_PARAM_ANGULAR_MOTION_DAMPING = 18\n\n_PARAM_LINEAR_LIMIT_RESTITUTION :: Int\n_PARAM_LINEAR_LIMIT_RESTITUTION = 3\n\n_PARAM_LINEAR_MOTION_RESTITUTION :: Int\n_PARAM_LINEAR_MOTION_RESTITUTION = 6\n\n_PARAM_ANGULAR_ORTHOGONAL_DAMPING :: Int\n_PARAM_ANGULAR_ORTHOGONAL_DAMPING = 21\n\n_PARAM_ANGULAR_ORTHOGONAL_SOFTNESS :: Int\n_PARAM_ANGULAR_ORTHOGONAL_SOFTNESS = 19\n\n_PARAM_LINEAR_ORTHOGONAL_SOFTNESS :: Int\n_PARAM_LINEAR_ORTHOGONAL_SOFTNESS = 8\n\n_PARAM_LINEAR_LIMIT_SOFTNESS :: Int\n_PARAM_LINEAR_LIMIT_SOFTNESS = 2\n\n_PARAM_ANGULAR_LIMIT_RESTITUTION :: Int\n_PARAM_ANGULAR_LIMIT_RESTITUTION = 14\n\n_PARAM_LINEAR_LIMIT_LOWER :: Int\n_PARAM_LINEAR_LIMIT_LOWER = 1\n\n_PARAM_LINEAR_MOTION_SOFTNESS :: Int\n_PARAM_LINEAR_MOTION_SOFTNESS = 5\n\n_PARAM_MAX :: Int\n_PARAM_MAX = 22\n\n_PARAM_ANGULAR_LIMIT_DAMPING :: Int\n_PARAM_ANGULAR_LIMIT_DAMPING = 15\n\n_PARAM_ANGULAR_LIMIT_SOFTNESS :: Int\n_PARAM_ANGULAR_LIMIT_SOFTNESS = 13\n\n_PARAM_LINEAR_LIMIT_UPPER :: Int\n_PARAM_LINEAR_LIMIT_UPPER = 0\n\n_PARAM_ANGULAR_LIMIT_UPPER :: Int\n_PARAM_ANGULAR_LIMIT_UPPER = 11\n\n_PARAM_LINEAR_LIMIT_DAMPING :: Int\n_PARAM_LINEAR_LIMIT_DAMPING = 4\n\n_PARAM_ANGULAR_MOTION_RESTITUTION :: Int\n_PARAM_ANGULAR_MOTION_RESTITUTION = 17\n\n_PARAM_LINEAR_ORTHOGONAL_DAMPING :: Int\n_PARAM_LINEAR_ORTHOGONAL_DAMPING = 10\n\n_PARAM_ANGULAR_ORTHOGONAL_RESTITUTION :: Int\n_PARAM_ANGULAR_ORTHOGONAL_RESTITUTION = 20\n\n_PARAM_LINEAR_MOTION_DAMPING :: Int\n_PARAM_LINEAR_MOTION_DAMPING = 7\n\n_PARAM_ANGULAR_MOTION_SOFTNESS :: Int\n_PARAM_ANGULAR_MOTION_SOFTNESS = 16\n\ninstance NodeProperty SliderJoint \"angular_limit/damping\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 15 get_param, wrapIndexedSetter 15 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"angular_limit/lower_angle\" Float\n           'False\n         where\n        nodeProperty\n          = (_get_lower_limit_angular,\n             wrapDroppingSetter _set_lower_limit_angular, Nothing)\n\ninstance NodeProperty SliderJoint \"angular_limit/restitution\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 14 get_param, wrapIndexedSetter 14 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"angular_limit/softness\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 13 get_param, wrapIndexedSetter 13 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"angular_limit/upper_angle\" Float\n           'False\n         where\n        nodeProperty\n          = (_get_upper_limit_angular,\n             wrapDroppingSetter _set_upper_limit_angular, Nothing)\n\ninstance NodeProperty SliderJoint \"angular_motion/damping\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 18 get_param, wrapIndexedSetter 18 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"angular_motion/restitution\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 17 get_param, wrapIndexedSetter 17 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"angular_motion/softness\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 16 get_param, wrapIndexedSetter 16 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"angular_ortho/damping\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 21 get_param, wrapIndexedSetter 21 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"angular_ortho/restitution\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 20 get_param, wrapIndexedSetter 20 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"angular_ortho/softness\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 19 get_param, wrapIndexedSetter 19 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"linear_limit/damping\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_param, wrapIndexedSetter 4 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"linear_limit/lower_distance\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_param, wrapIndexedSetter 1 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"linear_limit/restitution\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_param, wrapIndexedSetter 3 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"linear_limit/softness\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_param, wrapIndexedSetter 2 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"linear_limit/upper_distance\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_param, wrapIndexedSetter 0 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"linear_motion/damping\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_param, wrapIndexedSetter 7 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"linear_motion/restitution\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_param, wrapIndexedSetter 6 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"linear_motion/softness\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_param, wrapIndexedSetter 5 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"linear_ortho/damping\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_param, wrapIndexedSetter 10 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"linear_ortho/restitution\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_param, wrapIndexedSetter 9 set_param,\n             Nothing)\n\ninstance NodeProperty SliderJoint \"linear_ortho/softness\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_param, wrapIndexedSetter 8 set_param,\n             Nothing)\n\n{-# NOINLINE bindSliderJoint__get_lower_limit_angular #-}\n\n-- | The lower limit of rotation in the slider.\nbindSliderJoint__get_lower_limit_angular :: MethodBind\nbindSliderJoint__get_lower_limit_angular\n  = unsafePerformIO $\n      withCString \"SliderJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_get_lower_limit_angular\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The lower limit of rotation in the slider.\n_get_lower_limit_angular ::\n                           (SliderJoint :< cls, Object :< cls) => cls -> IO Float\n_get_lower_limit_angular cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSliderJoint__get_lower_limit_angular\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SliderJoint \"_get_lower_limit_angular\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.SliderJoint._get_lower_limit_angular\n\n{-# NOINLINE bindSliderJoint__get_upper_limit_angular #-}\n\n-- | The upper limit of rotation in the slider.\nbindSliderJoint__get_upper_limit_angular :: MethodBind\nbindSliderJoint__get_upper_limit_angular\n  = unsafePerformIO $\n      withCString \"SliderJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_get_upper_limit_angular\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The upper limit of rotation in the slider.\n_get_upper_limit_angular ::\n                           (SliderJoint :< cls, Object :< cls) => cls -> IO Float\n_get_upper_limit_angular cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSliderJoint__get_upper_limit_angular\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SliderJoint \"_get_upper_limit_angular\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.SliderJoint._get_upper_limit_angular\n\n{-# NOINLINE bindSliderJoint__set_lower_limit_angular #-}\n\n-- | The lower limit of rotation in the slider.\nbindSliderJoint__set_lower_limit_angular :: MethodBind\nbindSliderJoint__set_lower_limit_angular\n  = unsafePerformIO $\n      withCString \"SliderJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_set_lower_limit_angular\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The lower limit of rotation in the slider.\n_set_lower_limit_angular ::\n                           (SliderJoint :< cls, Object :< cls) => cls -> Float -> IO ()\n_set_lower_limit_angular cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSliderJoint__set_lower_limit_angular\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SliderJoint \"_set_lower_limit_angular\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SliderJoint._set_lower_limit_angular\n\n{-# NOINLINE bindSliderJoint__set_upper_limit_angular #-}\n\n-- | The upper limit of rotation in the slider.\nbindSliderJoint__set_upper_limit_angular :: MethodBind\nbindSliderJoint__set_upper_limit_angular\n  = unsafePerformIO $\n      withCString \"SliderJoint\" $\n        \\ clsNamePtr ->\n          withCString \"_set_upper_limit_angular\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The upper limit of rotation in the slider.\n_set_upper_limit_angular ::\n                           (SliderJoint :< cls, Object :< cls) => cls -> Float -> IO ()\n_set_upper_limit_angular cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSliderJoint__set_upper_limit_angular\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SliderJoint \"_set_upper_limit_angular\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SliderJoint._set_upper_limit_angular\n\n{-# NOINLINE bindSliderJoint_get_param #-}\n\n-- | The amount of damping of the rotation when the limit is surpassed.\n--   \t\t\tA lower damping value allows a rotation initiated by body A to travel to body B slower.\nbindSliderJoint_get_param :: MethodBind\nbindSliderJoint_get_param\n  = unsafePerformIO $\n      withCString \"SliderJoint\" $\n        \\ clsNamePtr ->\n          withCString \"get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount of damping of the rotation when the limit is surpassed.\n--   \t\t\tA lower damping value allows a rotation initiated by body A to travel to body B slower.\nget_param ::\n            (SliderJoint :< cls, Object :< cls) => cls -> Int -> IO Float\nget_param cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSliderJoint_get_param (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SliderJoint \"get_param\" '[Int] (IO Float) where\n        nodeMethod = Godot.Core.SliderJoint.get_param\n\n{-# NOINLINE bindSliderJoint_set_param #-}\n\n-- | The amount of damping of the rotation when the limit is surpassed.\n--   \t\t\tA lower damping value allows a rotation initiated by body A to travel to body B slower.\nbindSliderJoint_set_param :: MethodBind\nbindSliderJoint_set_param\n  = unsafePerformIO $\n      withCString \"SliderJoint\" $\n        \\ clsNamePtr ->\n          withCString \"set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount of damping of the rotation when the limit is surpassed.\n--   \t\t\tA lower damping value allows a rotation initiated by body A to travel to body B slower.\nset_param ::\n            (SliderJoint :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\nset_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSliderJoint_set_param (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SliderJoint \"set_param\" '[Int, Float] (IO ())\n         where\n        nodeMethod = Godot.Core.SliderJoint.set_param"
  },
  {
    "path": "src/Godot/Core/SoftBody.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SoftBody\n       (Godot.Core.SoftBody._draw_soft_mesh,\n        Godot.Core.SoftBody.add_collision_exception_with,\n        Godot.Core.SoftBody.get_areaAngular_stiffness,\n        Godot.Core.SoftBody.get_collision_exceptions,\n        Godot.Core.SoftBody.get_collision_layer,\n        Godot.Core.SoftBody.get_collision_layer_bit,\n        Godot.Core.SoftBody.get_collision_mask,\n        Godot.Core.SoftBody.get_collision_mask_bit,\n        Godot.Core.SoftBody.get_damping_coefficient,\n        Godot.Core.SoftBody.get_drag_coefficient,\n        Godot.Core.SoftBody.get_linear_stiffness,\n        Godot.Core.SoftBody.get_parent_collision_ignore,\n        Godot.Core.SoftBody.get_pose_matching_coefficient,\n        Godot.Core.SoftBody.get_pressure_coefficient,\n        Godot.Core.SoftBody.get_simulation_precision,\n        Godot.Core.SoftBody.get_total_mass,\n        Godot.Core.SoftBody.get_volume_stiffness,\n        Godot.Core.SoftBody.is_ray_pickable,\n        Godot.Core.SoftBody.remove_collision_exception_with,\n        Godot.Core.SoftBody.set_areaAngular_stiffness,\n        Godot.Core.SoftBody.set_collision_layer,\n        Godot.Core.SoftBody.set_collision_layer_bit,\n        Godot.Core.SoftBody.set_collision_mask,\n        Godot.Core.SoftBody.set_collision_mask_bit,\n        Godot.Core.SoftBody.set_damping_coefficient,\n        Godot.Core.SoftBody.set_drag_coefficient,\n        Godot.Core.SoftBody.set_linear_stiffness,\n        Godot.Core.SoftBody.set_parent_collision_ignore,\n        Godot.Core.SoftBody.set_pose_matching_coefficient,\n        Godot.Core.SoftBody.set_pressure_coefficient,\n        Godot.Core.SoftBody.set_ray_pickable,\n        Godot.Core.SoftBody.set_simulation_precision,\n        Godot.Core.SoftBody.set_total_mass,\n        Godot.Core.SoftBody.set_volume_stiffness)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.MeshInstance()\n\ninstance NodeProperty SoftBody \"areaAngular_stiffness\" Float 'False\n         where\n        nodeProperty\n          = (get_areaAngular_stiffness,\n             wrapDroppingSetter set_areaAngular_stiffness, Nothing)\n\ninstance NodeProperty SoftBody \"collision_layer\" Int 'False where\n        nodeProperty\n          = (get_collision_layer, wrapDroppingSetter set_collision_layer,\n             Nothing)\n\ninstance NodeProperty SoftBody \"collision_mask\" Int 'False where\n        nodeProperty\n          = (get_collision_mask, wrapDroppingSetter set_collision_mask,\n             Nothing)\n\ninstance NodeProperty SoftBody \"damping_coefficient\" Float 'False\n         where\n        nodeProperty\n          = (get_damping_coefficient,\n             wrapDroppingSetter set_damping_coefficient, Nothing)\n\ninstance NodeProperty SoftBody \"drag_coefficient\" Float 'False\n         where\n        nodeProperty\n          = (get_drag_coefficient, wrapDroppingSetter set_drag_coefficient,\n             Nothing)\n\ninstance NodeProperty SoftBody \"linear_stiffness\" Float 'False\n         where\n        nodeProperty\n          = (get_linear_stiffness, wrapDroppingSetter set_linear_stiffness,\n             Nothing)\n\ninstance NodeProperty SoftBody \"parent_collision_ignore\" NodePath\n           'False\n         where\n        nodeProperty\n          = (get_parent_collision_ignore,\n             wrapDroppingSetter set_parent_collision_ignore, Nothing)\n\ninstance NodeProperty SoftBody \"pose_matching_coefficient\" Float\n           'False\n         where\n        nodeProperty\n          = (get_pose_matching_coefficient,\n             wrapDroppingSetter set_pose_matching_coefficient, Nothing)\n\ninstance NodeProperty SoftBody \"pressure_coefficient\" Float 'False\n         where\n        nodeProperty\n          = (get_pressure_coefficient,\n             wrapDroppingSetter set_pressure_coefficient, Nothing)\n\ninstance NodeProperty SoftBody \"ray_pickable\" Bool 'False where\n        nodeProperty\n          = (is_ray_pickable, wrapDroppingSetter set_ray_pickable, Nothing)\n\ninstance NodeProperty SoftBody \"simulation_precision\" Int 'False\n         where\n        nodeProperty\n          = (get_simulation_precision,\n             wrapDroppingSetter set_simulation_precision, Nothing)\n\ninstance NodeProperty SoftBody \"total_mass\" Float 'False where\n        nodeProperty\n          = (get_total_mass, wrapDroppingSetter set_total_mass, Nothing)\n\ninstance NodeProperty SoftBody \"volume_stiffness\" Float 'False\n         where\n        nodeProperty\n          = (get_volume_stiffness, wrapDroppingSetter set_volume_stiffness,\n             Nothing)\n\n{-# NOINLINE bindSoftBody__draw_soft_mesh #-}\n\nbindSoftBody__draw_soft_mesh :: MethodBind\nbindSoftBody__draw_soft_mesh\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"_draw_soft_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_draw_soft_mesh :: (SoftBody :< cls, Object :< cls) => cls -> IO ()\n_draw_soft_mesh cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody__draw_soft_mesh (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"_draw_soft_mesh\" '[] (IO ()) where\n        nodeMethod = Godot.Core.SoftBody._draw_soft_mesh\n\n{-# NOINLINE bindSoftBody_add_collision_exception_with #-}\n\n-- | Adds a body to the list of bodies that this body can't collide with.\nbindSoftBody_add_collision_exception_with :: MethodBind\nbindSoftBody_add_collision_exception_with\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"add_collision_exception_with\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a body to the list of bodies that this body can't collide with.\nadd_collision_exception_with ::\n                               (SoftBody :< cls, Object :< cls) => cls -> Node -> IO ()\nadd_collision_exception_with cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_add_collision_exception_with\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"add_collision_exception_with\" '[Node]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SoftBody.add_collision_exception_with\n\n{-# NOINLINE bindSoftBody_get_areaAngular_stiffness #-}\n\nbindSoftBody_get_areaAngular_stiffness :: MethodBind\nbindSoftBody_get_areaAngular_stiffness\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_areaAngular_stiffness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_areaAngular_stiffness ::\n                            (SoftBody :< cls, Object :< cls) => cls -> IO Float\nget_areaAngular_stiffness cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_get_areaAngular_stiffness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"get_areaAngular_stiffness\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.SoftBody.get_areaAngular_stiffness\n\n{-# NOINLINE bindSoftBody_get_collision_exceptions #-}\n\n-- | Returns an array of nodes that were added as collision exceptions for this body.\nbindSoftBody_get_collision_exceptions :: MethodBind\nbindSoftBody_get_collision_exceptions\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_exceptions\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of nodes that were added as collision exceptions for this body.\nget_collision_exceptions ::\n                           (SoftBody :< cls, Object :< cls) => cls -> IO Array\nget_collision_exceptions cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_get_collision_exceptions\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"get_collision_exceptions\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.SoftBody.get_collision_exceptions\n\n{-# NOINLINE bindSoftBody_get_collision_layer #-}\n\n-- | The physics layers this SoftBody is in.\n--   \t\t\tCollidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the collision_mask property.\n--   \t\t\tA contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindSoftBody_get_collision_layer :: MethodBind\nbindSoftBody_get_collision_layer\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layers this SoftBody is in.\n--   \t\t\tCollidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the collision_mask property.\n--   \t\t\tA contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nget_collision_layer ::\n                      (SoftBody :< cls, Object :< cls) => cls -> IO Int\nget_collision_layer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_get_collision_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"get_collision_layer\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.SoftBody.get_collision_layer\n\n{-# NOINLINE bindSoftBody_get_collision_layer_bit #-}\n\n-- | Returns an individual bit on the collision mask.\nbindSoftBody_get_collision_layer_bit :: MethodBind\nbindSoftBody_get_collision_layer_bit\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_layer_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an individual bit on the collision mask.\nget_collision_layer_bit ::\n                          (SoftBody :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_layer_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_get_collision_layer_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"get_collision_layer_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.SoftBody.get_collision_layer_bit\n\n{-# NOINLINE bindSoftBody_get_collision_mask #-}\n\n-- | The physics layers this SoftBody scans for collisions. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindSoftBody_get_collision_mask :: MethodBind\nbindSoftBody_get_collision_mask\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layers this SoftBody scans for collisions. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nget_collision_mask ::\n                     (SoftBody :< cls, Object :< cls) => cls -> IO Int\nget_collision_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_get_collision_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"get_collision_mask\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.SoftBody.get_collision_mask\n\n{-# NOINLINE bindSoftBody_get_collision_mask_bit #-}\n\n-- | Returns an individual bit on the collision mask.\nbindSoftBody_get_collision_mask_bit :: MethodBind\nbindSoftBody_get_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an individual bit on the collision mask.\nget_collision_mask_bit ::\n                         (SoftBody :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_mask_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_get_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"get_collision_mask_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.SoftBody.get_collision_mask_bit\n\n{-# NOINLINE bindSoftBody_get_damping_coefficient #-}\n\nbindSoftBody_get_damping_coefficient :: MethodBind\nbindSoftBody_get_damping_coefficient\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_damping_coefficient\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_damping_coefficient ::\n                          (SoftBody :< cls, Object :< cls) => cls -> IO Float\nget_damping_coefficient cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_get_damping_coefficient\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"get_damping_coefficient\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.SoftBody.get_damping_coefficient\n\n{-# NOINLINE bindSoftBody_get_drag_coefficient #-}\n\nbindSoftBody_get_drag_coefficient :: MethodBind\nbindSoftBody_get_drag_coefficient\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_drag_coefficient\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_drag_coefficient ::\n                       (SoftBody :< cls, Object :< cls) => cls -> IO Float\nget_drag_coefficient cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_get_drag_coefficient\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"get_drag_coefficient\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.SoftBody.get_drag_coefficient\n\n{-# NOINLINE bindSoftBody_get_linear_stiffness #-}\n\nbindSoftBody_get_linear_stiffness :: MethodBind\nbindSoftBody_get_linear_stiffness\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_linear_stiffness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_linear_stiffness ::\n                       (SoftBody :< cls, Object :< cls) => cls -> IO Float\nget_linear_stiffness cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_get_linear_stiffness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"get_linear_stiffness\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.SoftBody.get_linear_stiffness\n\n{-# NOINLINE bindSoftBody_get_parent_collision_ignore #-}\n\n-- | @NodePath@ to a @CollisionObject@ this SoftBody should avoid clipping.\nbindSoftBody_get_parent_collision_ignore :: MethodBind\nbindSoftBody_get_parent_collision_ignore\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_parent_collision_ignore\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @NodePath@ to a @CollisionObject@ this SoftBody should avoid clipping.\nget_parent_collision_ignore ::\n                              (SoftBody :< cls, Object :< cls) => cls -> IO NodePath\nget_parent_collision_ignore cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_get_parent_collision_ignore\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"get_parent_collision_ignore\" '[]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.SoftBody.get_parent_collision_ignore\n\n{-# NOINLINE bindSoftBody_get_pose_matching_coefficient #-}\n\nbindSoftBody_get_pose_matching_coefficient :: MethodBind\nbindSoftBody_get_pose_matching_coefficient\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_pose_matching_coefficient\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_pose_matching_coefficient ::\n                                (SoftBody :< cls, Object :< cls) => cls -> IO Float\nget_pose_matching_coefficient cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_get_pose_matching_coefficient\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"get_pose_matching_coefficient\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.SoftBody.get_pose_matching_coefficient\n\n{-# NOINLINE bindSoftBody_get_pressure_coefficient #-}\n\nbindSoftBody_get_pressure_coefficient :: MethodBind\nbindSoftBody_get_pressure_coefficient\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_pressure_coefficient\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_pressure_coefficient ::\n                           (SoftBody :< cls, Object :< cls) => cls -> IO Float\nget_pressure_coefficient cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_get_pressure_coefficient\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"get_pressure_coefficient\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.SoftBody.get_pressure_coefficient\n\n{-# NOINLINE bindSoftBody_get_simulation_precision #-}\n\n-- | Increasing this value will improve the resulting simulation, but can affect performance. Use with care.\nbindSoftBody_get_simulation_precision :: MethodBind\nbindSoftBody_get_simulation_precision\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_simulation_precision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Increasing this value will improve the resulting simulation, but can affect performance. Use with care.\nget_simulation_precision ::\n                           (SoftBody :< cls, Object :< cls) => cls -> IO Int\nget_simulation_precision cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_get_simulation_precision\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"get_simulation_precision\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.SoftBody.get_simulation_precision\n\n{-# NOINLINE bindSoftBody_get_total_mass #-}\n\n-- | The SoftBody's mass.\nbindSoftBody_get_total_mass :: MethodBind\nbindSoftBody_get_total_mass\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_total_mass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The SoftBody's mass.\nget_total_mass ::\n                 (SoftBody :< cls, Object :< cls) => cls -> IO Float\nget_total_mass cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_get_total_mass (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"get_total_mass\" '[] (IO Float) where\n        nodeMethod = Godot.Core.SoftBody.get_total_mass\n\n{-# NOINLINE bindSoftBody_get_volume_stiffness #-}\n\nbindSoftBody_get_volume_stiffness :: MethodBind\nbindSoftBody_get_volume_stiffness\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_volume_stiffness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_volume_stiffness ::\n                       (SoftBody :< cls, Object :< cls) => cls -> IO Float\nget_volume_stiffness cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_get_volume_stiffness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"get_volume_stiffness\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.SoftBody.get_volume_stiffness\n\n{-# NOINLINE bindSoftBody_is_ray_pickable #-}\n\n-- | If @true@, the @SoftBody@ will respond to @RayCast@s.\nbindSoftBody_is_ray_pickable :: MethodBind\nbindSoftBody_is_ray_pickable\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"is_ray_pickable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @SoftBody@ will respond to @RayCast@s.\nis_ray_pickable ::\n                  (SoftBody :< cls, Object :< cls) => cls -> IO Bool\nis_ray_pickable cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_is_ray_pickable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"is_ray_pickable\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.SoftBody.is_ray_pickable\n\n{-# NOINLINE bindSoftBody_remove_collision_exception_with #-}\n\n-- | Removes a body from the list of bodies that this body can't collide with.\nbindSoftBody_remove_collision_exception_with :: MethodBind\nbindSoftBody_remove_collision_exception_with\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"remove_collision_exception_with\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a body from the list of bodies that this body can't collide with.\nremove_collision_exception_with ::\n                                  (SoftBody :< cls, Object :< cls) => cls -> Node -> IO ()\nremove_collision_exception_with cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_remove_collision_exception_with\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"remove_collision_exception_with\"\n           '[Node]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SoftBody.remove_collision_exception_with\n\n{-# NOINLINE bindSoftBody_set_areaAngular_stiffness #-}\n\nbindSoftBody_set_areaAngular_stiffness :: MethodBind\nbindSoftBody_set_areaAngular_stiffness\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_areaAngular_stiffness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_areaAngular_stiffness ::\n                            (SoftBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_areaAngular_stiffness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_set_areaAngular_stiffness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"set_areaAngular_stiffness\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SoftBody.set_areaAngular_stiffness\n\n{-# NOINLINE bindSoftBody_set_collision_layer #-}\n\n-- | The physics layers this SoftBody is in.\n--   \t\t\tCollidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the collision_mask property.\n--   \t\t\tA contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindSoftBody_set_collision_layer :: MethodBind\nbindSoftBody_set_collision_layer\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layers this SoftBody is in.\n--   \t\t\tCollidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the collision_mask property.\n--   \t\t\tA contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nset_collision_layer ::\n                      (SoftBody :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_layer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_set_collision_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"set_collision_layer\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.SoftBody.set_collision_layer\n\n{-# NOINLINE bindSoftBody_set_collision_layer_bit #-}\n\n-- | Sets individual bits on the layer mask. Use this if you only need to change one layer's value.\nbindSoftBody_set_collision_layer_bit :: MethodBind\nbindSoftBody_set_collision_layer_bit\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_layer_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets individual bits on the layer mask. Use this if you only need to change one layer's value.\nset_collision_layer_bit ::\n                          (SoftBody :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_collision_layer_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_set_collision_layer_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"set_collision_layer_bit\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SoftBody.set_collision_layer_bit\n\n{-# NOINLINE bindSoftBody_set_collision_mask #-}\n\n-- | The physics layers this SoftBody scans for collisions. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindSoftBody_set_collision_mask :: MethodBind\nbindSoftBody_set_collision_mask\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics layers this SoftBody scans for collisions. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nset_collision_mask ::\n                     (SoftBody :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_set_collision_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"set_collision_mask\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.SoftBody.set_collision_mask\n\n{-# NOINLINE bindSoftBody_set_collision_mask_bit #-}\n\n-- | Sets individual bits on the collision mask. Use this if you only need to change one layer's value.\nbindSoftBody_set_collision_mask_bit :: MethodBind\nbindSoftBody_set_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets individual bits on the collision mask. Use this if you only need to change one layer's value.\nset_collision_mask_bit ::\n                         (SoftBody :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_collision_mask_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_set_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"set_collision_mask_bit\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SoftBody.set_collision_mask_bit\n\n{-# NOINLINE bindSoftBody_set_damping_coefficient #-}\n\nbindSoftBody_set_damping_coefficient :: MethodBind\nbindSoftBody_set_damping_coefficient\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_damping_coefficient\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_damping_coefficient ::\n                          (SoftBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_damping_coefficient cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_set_damping_coefficient\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"set_damping_coefficient\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SoftBody.set_damping_coefficient\n\n{-# NOINLINE bindSoftBody_set_drag_coefficient #-}\n\nbindSoftBody_set_drag_coefficient :: MethodBind\nbindSoftBody_set_drag_coefficient\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_drag_coefficient\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_drag_coefficient ::\n                       (SoftBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_drag_coefficient cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_set_drag_coefficient\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"set_drag_coefficient\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SoftBody.set_drag_coefficient\n\n{-# NOINLINE bindSoftBody_set_linear_stiffness #-}\n\nbindSoftBody_set_linear_stiffness :: MethodBind\nbindSoftBody_set_linear_stiffness\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_linear_stiffness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_linear_stiffness ::\n                       (SoftBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_linear_stiffness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_set_linear_stiffness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"set_linear_stiffness\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SoftBody.set_linear_stiffness\n\n{-# NOINLINE bindSoftBody_set_parent_collision_ignore #-}\n\n-- | @NodePath@ to a @CollisionObject@ this SoftBody should avoid clipping.\nbindSoftBody_set_parent_collision_ignore :: MethodBind\nbindSoftBody_set_parent_collision_ignore\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_parent_collision_ignore\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @NodePath@ to a @CollisionObject@ this SoftBody should avoid clipping.\nset_parent_collision_ignore ::\n                              (SoftBody :< cls, Object :< cls) => cls -> NodePath -> IO ()\nset_parent_collision_ignore cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_set_parent_collision_ignore\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"set_parent_collision_ignore\"\n           '[NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SoftBody.set_parent_collision_ignore\n\n{-# NOINLINE bindSoftBody_set_pose_matching_coefficient #-}\n\nbindSoftBody_set_pose_matching_coefficient :: MethodBind\nbindSoftBody_set_pose_matching_coefficient\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_pose_matching_coefficient\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_pose_matching_coefficient ::\n                                (SoftBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_pose_matching_coefficient cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_set_pose_matching_coefficient\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"set_pose_matching_coefficient\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SoftBody.set_pose_matching_coefficient\n\n{-# NOINLINE bindSoftBody_set_pressure_coefficient #-}\n\nbindSoftBody_set_pressure_coefficient :: MethodBind\nbindSoftBody_set_pressure_coefficient\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_pressure_coefficient\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_pressure_coefficient ::\n                           (SoftBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_pressure_coefficient cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_set_pressure_coefficient\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"set_pressure_coefficient\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SoftBody.set_pressure_coefficient\n\n{-# NOINLINE bindSoftBody_set_ray_pickable #-}\n\n-- | If @true@, the @SoftBody@ will respond to @RayCast@s.\nbindSoftBody_set_ray_pickable :: MethodBind\nbindSoftBody_set_ray_pickable\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_ray_pickable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @SoftBody@ will respond to @RayCast@s.\nset_ray_pickable ::\n                   (SoftBody :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_ray_pickable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_set_ray_pickable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"set_ray_pickable\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.SoftBody.set_ray_pickable\n\n{-# NOINLINE bindSoftBody_set_simulation_precision #-}\n\n-- | Increasing this value will improve the resulting simulation, but can affect performance. Use with care.\nbindSoftBody_set_simulation_precision :: MethodBind\nbindSoftBody_set_simulation_precision\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_simulation_precision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Increasing this value will improve the resulting simulation, but can affect performance. Use with care.\nset_simulation_precision ::\n                           (SoftBody :< cls, Object :< cls) => cls -> Int -> IO ()\nset_simulation_precision cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_set_simulation_precision\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"set_simulation_precision\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SoftBody.set_simulation_precision\n\n{-# NOINLINE bindSoftBody_set_total_mass #-}\n\n-- | The SoftBody's mass.\nbindSoftBody_set_total_mass :: MethodBind\nbindSoftBody_set_total_mass\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_total_mass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The SoftBody's mass.\nset_total_mass ::\n                 (SoftBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_total_mass cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_set_total_mass (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"set_total_mass\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.SoftBody.set_total_mass\n\n{-# NOINLINE bindSoftBody_set_volume_stiffness #-}\n\nbindSoftBody_set_volume_stiffness :: MethodBind\nbindSoftBody_set_volume_stiffness\n  = unsafePerformIO $\n      withCString \"SoftBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_volume_stiffness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_volume_stiffness ::\n                       (SoftBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_volume_stiffness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSoftBody_set_volume_stiffness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SoftBody \"set_volume_stiffness\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SoftBody.set_volume_stiffness"
  },
  {
    "path": "src/Godot/Core/Spatial.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Spatial\n       (Godot.Core.Spatial._NOTIFICATION_ENTER_WORLD,\n        Godot.Core.Spatial._NOTIFICATION_EXIT_WORLD,\n        Godot.Core.Spatial._NOTIFICATION_TRANSFORM_CHANGED,\n        Godot.Core.Spatial._NOTIFICATION_VISIBILITY_CHANGED,\n        Godot.Core.Spatial.sig_visibility_changed,\n        Godot.Core.Spatial._update_gizmo,\n        Godot.Core.Spatial.force_update_transform,\n        Godot.Core.Spatial.get_gizmo,\n        Godot.Core.Spatial.get_global_transform,\n        Godot.Core.Spatial.get_parent_spatial,\n        Godot.Core.Spatial.get_rotation,\n        Godot.Core.Spatial.get_rotation_degrees,\n        Godot.Core.Spatial.get_scale, Godot.Core.Spatial.get_transform,\n        Godot.Core.Spatial.get_translation, Godot.Core.Spatial.get_world,\n        Godot.Core.Spatial.global_rotate, Godot.Core.Spatial.global_scale,\n        Godot.Core.Spatial.global_translate, Godot.Core.Spatial.hide,\n        Godot.Core.Spatial.is_local_transform_notification_enabled,\n        Godot.Core.Spatial.is_scale_disabled,\n        Godot.Core.Spatial.is_set_as_toplevel,\n        Godot.Core.Spatial.is_transform_notification_enabled,\n        Godot.Core.Spatial.is_visible,\n        Godot.Core.Spatial.is_visible_in_tree, Godot.Core.Spatial.look_at,\n        Godot.Core.Spatial.look_at_from_position,\n        Godot.Core.Spatial.orthonormalize, Godot.Core.Spatial.rotate,\n        Godot.Core.Spatial.rotate_object_local,\n        Godot.Core.Spatial.rotate_x, Godot.Core.Spatial.rotate_y,\n        Godot.Core.Spatial.rotate_z, Godot.Core.Spatial.scale_object_local,\n        Godot.Core.Spatial.set_as_toplevel,\n        Godot.Core.Spatial.set_disable_scale, Godot.Core.Spatial.set_gizmo,\n        Godot.Core.Spatial.set_global_transform,\n        Godot.Core.Spatial.set_identity,\n        Godot.Core.Spatial.set_ignore_transform_notification,\n        Godot.Core.Spatial.set_notify_local_transform,\n        Godot.Core.Spatial.set_notify_transform,\n        Godot.Core.Spatial.set_rotation,\n        Godot.Core.Spatial.set_rotation_degrees,\n        Godot.Core.Spatial.set_scale, Godot.Core.Spatial.set_transform,\n        Godot.Core.Spatial.set_translation, Godot.Core.Spatial.set_visible,\n        Godot.Core.Spatial.show, Godot.Core.Spatial.to_global,\n        Godot.Core.Spatial.to_local, Godot.Core.Spatial.translate,\n        Godot.Core.Spatial.translate_object_local,\n        Godot.Core.Spatial.update_gizmo)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\n_NOTIFICATION_ENTER_WORLD :: Int\n_NOTIFICATION_ENTER_WORLD = 41\n\n_NOTIFICATION_EXIT_WORLD :: Int\n_NOTIFICATION_EXIT_WORLD = 42\n\n_NOTIFICATION_TRANSFORM_CHANGED :: Int\n_NOTIFICATION_TRANSFORM_CHANGED = 2000\n\n_NOTIFICATION_VISIBILITY_CHANGED :: Int\n_NOTIFICATION_VISIBILITY_CHANGED = 43\n\n-- | Emitted when node visibility changes.\nsig_visibility_changed :: Godot.Internal.Dispatch.Signal Spatial\nsig_visibility_changed\n  = Godot.Internal.Dispatch.Signal \"visibility_changed\"\n\ninstance NodeSignal Spatial \"visibility_changed\" '[]\n\ninstance NodeProperty Spatial \"gizmo\" SpatialGizmo 'False where\n        nodeProperty = (get_gizmo, wrapDroppingSetter set_gizmo, Nothing)\n\ninstance NodeProperty Spatial \"global_transform\" Transform 'False\n         where\n        nodeProperty\n          = (get_global_transform, wrapDroppingSetter set_global_transform,\n             Nothing)\n\ninstance NodeProperty Spatial \"rotation\" Vector3 'False where\n        nodeProperty\n          = (get_rotation, wrapDroppingSetter set_rotation, Nothing)\n\ninstance NodeProperty Spatial \"rotation_degrees\" Vector3 'False\n         where\n        nodeProperty\n          = (get_rotation_degrees, wrapDroppingSetter set_rotation_degrees,\n             Nothing)\n\ninstance NodeProperty Spatial \"scale\" Vector3 'False where\n        nodeProperty = (get_scale, wrapDroppingSetter set_scale, Nothing)\n\ninstance NodeProperty Spatial \"transform\" Transform 'False where\n        nodeProperty\n          = (get_transform, wrapDroppingSetter set_transform, Nothing)\n\ninstance NodeProperty Spatial \"translation\" Vector3 'False where\n        nodeProperty\n          = (get_translation, wrapDroppingSetter set_translation, Nothing)\n\ninstance NodeProperty Spatial \"visible\" Bool 'False where\n        nodeProperty\n          = (is_visible, wrapDroppingSetter set_visible, Nothing)\n\n{-# NOINLINE bindSpatial__update_gizmo #-}\n\nbindSpatial__update_gizmo :: MethodBind\nbindSpatial__update_gizmo\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"_update_gizmo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_gizmo :: (Spatial :< cls, Object :< cls) => cls -> IO ()\n_update_gizmo cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial__update_gizmo (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"_update_gizmo\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Spatial._update_gizmo\n\n{-# NOINLINE bindSpatial_force_update_transform #-}\n\n-- | Forces the transform to update. Transform changes in physics are not instant for performance reasons. Transforms are accumulated and then set. Use this if you need an up-to-date transform when doing physics operations.\nbindSpatial_force_update_transform :: MethodBind\nbindSpatial_force_update_transform\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"force_update_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Forces the transform to update. Transform changes in physics are not instant for performance reasons. Transforms are accumulated and then set. Use this if you need an up-to-date transform when doing physics operations.\nforce_update_transform ::\n                         (Spatial :< cls, Object :< cls) => cls -> IO ()\nforce_update_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_force_update_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"force_update_transform\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.Spatial.force_update_transform\n\n{-# NOINLINE bindSpatial_get_gizmo #-}\n\n-- | The @SpatialGizmo@ for this node. Used for example in @EditorSpatialGizmo@ as custom visualization and editing handles in Editor.\nbindSpatial_get_gizmo :: MethodBind\nbindSpatial_get_gizmo\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"get_gizmo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @SpatialGizmo@ for this node. Used for example in @EditorSpatialGizmo@ as custom visualization and editing handles in Editor.\nget_gizmo ::\n            (Spatial :< cls, Object :< cls) => cls -> IO SpatialGizmo\nget_gizmo cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_get_gizmo (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"get_gizmo\" '[] (IO SpatialGizmo) where\n        nodeMethod = Godot.Core.Spatial.get_gizmo\n\n{-# NOINLINE bindSpatial_get_global_transform #-}\n\n-- | World space (global) @Transform@ of this node.\nbindSpatial_get_global_transform :: MethodBind\nbindSpatial_get_global_transform\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"get_global_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | World space (global) @Transform@ of this node.\nget_global_transform ::\n                       (Spatial :< cls, Object :< cls) => cls -> IO Transform\nget_global_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_get_global_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"get_global_transform\" '[]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.Spatial.get_global_transform\n\n{-# NOINLINE bindSpatial_get_parent_spatial #-}\n\n-- | Returns the parent @Spatial@, or an empty @Object@ if no parent exists or parent is not of type @Spatial@.\nbindSpatial_get_parent_spatial :: MethodBind\nbindSpatial_get_parent_spatial\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"get_parent_spatial\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the parent @Spatial@, or an empty @Object@ if no parent exists or parent is not of type @Spatial@.\nget_parent_spatial ::\n                     (Spatial :< cls, Object :< cls) => cls -> IO Spatial\nget_parent_spatial cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_get_parent_spatial (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"get_parent_spatial\" '[] (IO Spatial)\n         where\n        nodeMethod = Godot.Core.Spatial.get_parent_spatial\n\n{-# NOINLINE bindSpatial_get_rotation #-}\n\n-- | Rotation part of the local transformation in radians, specified in terms of YXZ-Euler angles in the format (X angle, Y angle, Z angle).\n--   \t\t\t__Note:__ In the mathematical sense, rotation is a matrix and not a vector. The three Euler angles, which are the three independent parameters of the Euler-angle parametrization of the rotation matrix, are stored in a @Vector3@ data structure not because the rotation is a vector, but only because @Vector3@ exists as a convenient data-structure to store 3 floating-point numbers. Therefore, applying affine operations on the rotation \"vector\" is not meaningful.\nbindSpatial_get_rotation :: MethodBind\nbindSpatial_get_rotation\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"get_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rotation part of the local transformation in radians, specified in terms of YXZ-Euler angles in the format (X angle, Y angle, Z angle).\n--   \t\t\t__Note:__ In the mathematical sense, rotation is a matrix and not a vector. The three Euler angles, which are the three independent parameters of the Euler-angle parametrization of the rotation matrix, are stored in a @Vector3@ data structure not because the rotation is a vector, but only because @Vector3@ exists as a convenient data-structure to store 3 floating-point numbers. Therefore, applying affine operations on the rotation \"vector\" is not meaningful.\nget_rotation ::\n               (Spatial :< cls, Object :< cls) => cls -> IO Vector3\nget_rotation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_get_rotation (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"get_rotation\" '[] (IO Vector3) where\n        nodeMethod = Godot.Core.Spatial.get_rotation\n\n{-# NOINLINE bindSpatial_get_rotation_degrees #-}\n\n-- | Rotation part of the local transformation in degrees, specified in terms of YXZ-Euler angles in the format (X angle, Y angle, Z angle).\nbindSpatial_get_rotation_degrees :: MethodBind\nbindSpatial_get_rotation_degrees\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"get_rotation_degrees\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rotation part of the local transformation in degrees, specified in terms of YXZ-Euler angles in the format (X angle, Y angle, Z angle).\nget_rotation_degrees ::\n                       (Spatial :< cls, Object :< cls) => cls -> IO Vector3\nget_rotation_degrees cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_get_rotation_degrees\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"get_rotation_degrees\" '[] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Spatial.get_rotation_degrees\n\n{-# NOINLINE bindSpatial_get_scale #-}\n\n-- | Scale part of the local transformation.\nbindSpatial_get_scale :: MethodBind\nbindSpatial_get_scale\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"get_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Scale part of the local transformation.\nget_scale :: (Spatial :< cls, Object :< cls) => cls -> IO Vector3\nget_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_get_scale (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"get_scale\" '[] (IO Vector3) where\n        nodeMethod = Godot.Core.Spatial.get_scale\n\n{-# NOINLINE bindSpatial_get_transform #-}\n\n-- | Local space @Transform@ of this node, with respect to the parent node.\nbindSpatial_get_transform :: MethodBind\nbindSpatial_get_transform\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"get_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Local space @Transform@ of this node, with respect to the parent node.\nget_transform ::\n                (Spatial :< cls, Object :< cls) => cls -> IO Transform\nget_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_get_transform (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"get_transform\" '[] (IO Transform)\n         where\n        nodeMethod = Godot.Core.Spatial.get_transform\n\n{-# NOINLINE bindSpatial_get_translation #-}\n\n-- | Local translation of this node.\nbindSpatial_get_translation :: MethodBind\nbindSpatial_get_translation\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"get_translation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Local translation of this node.\nget_translation ::\n                  (Spatial :< cls, Object :< cls) => cls -> IO Vector3\nget_translation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_get_translation (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"get_translation\" '[] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Spatial.get_translation\n\n{-# NOINLINE bindSpatial_get_world #-}\n\n-- | Returns the current @World@ resource this @Spatial@ node is registered to.\nbindSpatial_get_world :: MethodBind\nbindSpatial_get_world\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"get_world\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current @World@ resource this @Spatial@ node is registered to.\nget_world :: (Spatial :< cls, Object :< cls) => cls -> IO World\nget_world cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_get_world (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"get_world\" '[] (IO World) where\n        nodeMethod = Godot.Core.Spatial.get_world\n\n{-# NOINLINE bindSpatial_global_rotate #-}\n\n-- | Rotates the global (world) transformation around axis, a unit @Vector3@, by specified angle in radians. The rotation axis is in global coordinate system.\nbindSpatial_global_rotate :: MethodBind\nbindSpatial_global_rotate\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"global_rotate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rotates the global (world) transformation around axis, a unit @Vector3@, by specified angle in radians. The rotation axis is in global coordinate system.\nglobal_rotate ::\n                (Spatial :< cls, Object :< cls) => cls -> Vector3 -> Float -> IO ()\nglobal_rotate cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_global_rotate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"global_rotate\" '[Vector3, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Spatial.global_rotate\n\n{-# NOINLINE bindSpatial_global_scale #-}\n\n-- | Scales the global (world) transformation by the given @Vector3@ scale factors.\nbindSpatial_global_scale :: MethodBind\nbindSpatial_global_scale\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"global_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Scales the global (world) transformation by the given @Vector3@ scale factors.\nglobal_scale ::\n               (Spatial :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nglobal_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_global_scale (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"global_scale\" '[Vector3] (IO ()) where\n        nodeMethod = Godot.Core.Spatial.global_scale\n\n{-# NOINLINE bindSpatial_global_translate #-}\n\n-- | Moves the global (world) transformation by @Vector3@ offset. The offset is in global coordinate system.\nbindSpatial_global_translate :: MethodBind\nbindSpatial_global_translate\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"global_translate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves the global (world) transformation by @Vector3@ offset. The offset is in global coordinate system.\nglobal_translate ::\n                   (Spatial :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nglobal_translate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_global_translate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"global_translate\" '[Vector3] (IO ())\n         where\n        nodeMethod = Godot.Core.Spatial.global_translate\n\n{-# NOINLINE bindSpatial_hide #-}\n\n-- | Disables rendering of this node. Changes @visible@ to @false@.\nbindSpatial_hide :: MethodBind\nbindSpatial_hide\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"hide\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Disables rendering of this node. Changes @visible@ to @false@.\nhide :: (Spatial :< cls, Object :< cls) => cls -> IO ()\nhide cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_hide (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"hide\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Spatial.hide\n\n{-# NOINLINE bindSpatial_is_local_transform_notification_enabled\n             #-}\n\n-- | Returns whether node notifies about its local transformation changes. @Spatial@ will not propagate this by default.\nbindSpatial_is_local_transform_notification_enabled :: MethodBind\nbindSpatial_is_local_transform_notification_enabled\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"is_local_transform_notification_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether node notifies about its local transformation changes. @Spatial@ will not propagate this by default.\nis_local_transform_notification_enabled ::\n                                          (Spatial :< cls, Object :< cls) => cls -> IO Bool\nis_local_transform_notification_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatial_is_local_transform_notification_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial\n           \"is_local_transform_notification_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.Spatial.is_local_transform_notification_enabled\n\n{-# NOINLINE bindSpatial_is_scale_disabled #-}\n\n-- | Returns whether this node uses a scale of @(1, 1, 1)@ or its local transformation scale.\nbindSpatial_is_scale_disabled :: MethodBind\nbindSpatial_is_scale_disabled\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"is_scale_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether this node uses a scale of @(1, 1, 1)@ or its local transformation scale.\nis_scale_disabled ::\n                    (Spatial :< cls, Object :< cls) => cls -> IO Bool\nis_scale_disabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_is_scale_disabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"is_scale_disabled\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Spatial.is_scale_disabled\n\n{-# NOINLINE bindSpatial_is_set_as_toplevel #-}\n\n-- | Returns whether this node is set as Toplevel, that is whether it ignores its parent nodes transformations.\nbindSpatial_is_set_as_toplevel :: MethodBind\nbindSpatial_is_set_as_toplevel\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"is_set_as_toplevel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether this node is set as Toplevel, that is whether it ignores its parent nodes transformations.\nis_set_as_toplevel ::\n                     (Spatial :< cls, Object :< cls) => cls -> IO Bool\nis_set_as_toplevel cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_is_set_as_toplevel (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"is_set_as_toplevel\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Spatial.is_set_as_toplevel\n\n{-# NOINLINE bindSpatial_is_transform_notification_enabled #-}\n\n-- | Returns whether the node notifies about its global and local transformation changes. @Spatial@ will not propagate this by default.\nbindSpatial_is_transform_notification_enabled :: MethodBind\nbindSpatial_is_transform_notification_enabled\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"is_transform_notification_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether the node notifies about its global and local transformation changes. @Spatial@ will not propagate this by default.\nis_transform_notification_enabled ::\n                                    (Spatial :< cls, Object :< cls) => cls -> IO Bool\nis_transform_notification_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatial_is_transform_notification_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"is_transform_notification_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Spatial.is_transform_notification_enabled\n\n{-# NOINLINE bindSpatial_is_visible #-}\n\n-- | If @true@, this node is drawn. The node is only visible if all of its antecedents are visible as well (in other words, @method is_visible_in_tree@ must return @true@).\nbindSpatial_is_visible :: MethodBind\nbindSpatial_is_visible\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"is_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this node is drawn. The node is only visible if all of its antecedents are visible as well (in other words, @method is_visible_in_tree@ must return @true@).\nis_visible :: (Spatial :< cls, Object :< cls) => cls -> IO Bool\nis_visible cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_is_visible (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"is_visible\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Spatial.is_visible\n\n{-# NOINLINE bindSpatial_is_visible_in_tree #-}\n\n-- | Returns @true@ if the node is present in the @SceneTree@, its @visible@ property is @true@ and all its antecedents are also visible. If any antecedent is hidden, this node will not be visible in the scene tree.\nbindSpatial_is_visible_in_tree :: MethodBind\nbindSpatial_is_visible_in_tree\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"is_visible_in_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the node is present in the @SceneTree@, its @visible@ property is @true@ and all its antecedents are also visible. If any antecedent is hidden, this node will not be visible in the scene tree.\nis_visible_in_tree ::\n                     (Spatial :< cls, Object :< cls) => cls -> IO Bool\nis_visible_in_tree cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_is_visible_in_tree (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"is_visible_in_tree\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Spatial.is_visible_in_tree\n\n{-# NOINLINE bindSpatial_look_at #-}\n\n-- | Rotates itself so that the local -Z axis points towards the @target@ position.\n--   \t\t\t\tThe transform will first be rotated around the given @up@ vector, and then fully aligned to the target by a further rotation around an axis perpendicular to both the @target@ and @up@ vectors.\n--   \t\t\t\tOperations take place in global space.\nbindSpatial_look_at :: MethodBind\nbindSpatial_look_at\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"look_at\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rotates itself so that the local -Z axis points towards the @target@ position.\n--   \t\t\t\tThe transform will first be rotated around the given @up@ vector, and then fully aligned to the target by a further rotation around an axis perpendicular to both the @target@ and @up@ vectors.\n--   \t\t\t\tOperations take place in global space.\nlook_at ::\n          (Spatial :< cls, Object :< cls) =>\n          cls -> Vector3 -> Vector3 -> IO ()\nlook_at cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_look_at (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"look_at\" '[Vector3, Vector3] (IO ())\n         where\n        nodeMethod = Godot.Core.Spatial.look_at\n\n{-# NOINLINE bindSpatial_look_at_from_position #-}\n\n-- | Moves the node to the specified @position@, and then rotates itself to point toward the @target@ as per @method look_at@. Operations take place in global space.\nbindSpatial_look_at_from_position :: MethodBind\nbindSpatial_look_at_from_position\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"look_at_from_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves the node to the specified @position@, and then rotates itself to point toward the @target@ as per @method look_at@. Operations take place in global space.\nlook_at_from_position ::\n                        (Spatial :< cls, Object :< cls) =>\n                        cls -> Vector3 -> Vector3 -> Vector3 -> IO ()\nlook_at_from_position cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_look_at_from_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"look_at_from_position\"\n           '[Vector3, Vector3, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Spatial.look_at_from_position\n\n{-# NOINLINE bindSpatial_orthonormalize #-}\n\n-- | Resets this node's transformations (like scale, skew and taper) preserving its rotation and translation by performing Gram-Schmidt orthonormalization on this node's @Transform@.\nbindSpatial_orthonormalize :: MethodBind\nbindSpatial_orthonormalize\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"orthonormalize\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Resets this node's transformations (like scale, skew and taper) preserving its rotation and translation by performing Gram-Schmidt orthonormalization on this node's @Transform@.\northonormalize :: (Spatial :< cls, Object :< cls) => cls -> IO ()\northonormalize cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_orthonormalize (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"orthonormalize\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Spatial.orthonormalize\n\n{-# NOINLINE bindSpatial_rotate #-}\n\n-- | Rotates the local transformation around axis, a unit @Vector3@, by specified angle in radians.\nbindSpatial_rotate :: MethodBind\nbindSpatial_rotate\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"rotate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rotates the local transformation around axis, a unit @Vector3@, by specified angle in radians.\nrotate ::\n         (Spatial :< cls, Object :< cls) => cls -> Vector3 -> Float -> IO ()\nrotate cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_rotate (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"rotate\" '[Vector3, Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Spatial.rotate\n\n{-# NOINLINE bindSpatial_rotate_object_local #-}\n\n-- | Rotates the local transformation around axis, a unit @Vector3@, by specified angle in radians. The rotation axis is in object-local coordinate system.\nbindSpatial_rotate_object_local :: MethodBind\nbindSpatial_rotate_object_local\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"rotate_object_local\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rotates the local transformation around axis, a unit @Vector3@, by specified angle in radians. The rotation axis is in object-local coordinate system.\nrotate_object_local ::\n                      (Spatial :< cls, Object :< cls) => cls -> Vector3 -> Float -> IO ()\nrotate_object_local cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_rotate_object_local (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"rotate_object_local\" '[Vector3, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Spatial.rotate_object_local\n\n{-# NOINLINE bindSpatial_rotate_x #-}\n\n-- | Rotates the local transformation around the X axis by angle in radians.\nbindSpatial_rotate_x :: MethodBind\nbindSpatial_rotate_x\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"rotate_x\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rotates the local transformation around the X axis by angle in radians.\nrotate_x ::\n           (Spatial :< cls, Object :< cls) => cls -> Float -> IO ()\nrotate_x cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_rotate_x (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"rotate_x\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Spatial.rotate_x\n\n{-# NOINLINE bindSpatial_rotate_y #-}\n\n-- | Rotates the local transformation around the Y axis by angle in radians.\nbindSpatial_rotate_y :: MethodBind\nbindSpatial_rotate_y\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"rotate_y\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rotates the local transformation around the Y axis by angle in radians.\nrotate_y ::\n           (Spatial :< cls, Object :< cls) => cls -> Float -> IO ()\nrotate_y cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_rotate_y (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"rotate_y\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Spatial.rotate_y\n\n{-# NOINLINE bindSpatial_rotate_z #-}\n\n-- | Rotates the local transformation around the Z axis by angle in radians.\nbindSpatial_rotate_z :: MethodBind\nbindSpatial_rotate_z\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"rotate_z\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rotates the local transformation around the Z axis by angle in radians.\nrotate_z ::\n           (Spatial :< cls, Object :< cls) => cls -> Float -> IO ()\nrotate_z cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_rotate_z (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"rotate_z\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Spatial.rotate_z\n\n{-# NOINLINE bindSpatial_scale_object_local #-}\n\n-- | Scales the local transformation by given 3D scale factors in object-local coordinate system.\nbindSpatial_scale_object_local :: MethodBind\nbindSpatial_scale_object_local\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"scale_object_local\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Scales the local transformation by given 3D scale factors in object-local coordinate system.\nscale_object_local ::\n                     (Spatial :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nscale_object_local cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_scale_object_local (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"scale_object_local\" '[Vector3] (IO ())\n         where\n        nodeMethod = Godot.Core.Spatial.scale_object_local\n\n{-# NOINLINE bindSpatial_set_as_toplevel #-}\n\n-- | Makes the node ignore its parents transformations. Node transformations are only in global space.\nbindSpatial_set_as_toplevel :: MethodBind\nbindSpatial_set_as_toplevel\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"set_as_toplevel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Makes the node ignore its parents transformations. Node transformations are only in global space.\nset_as_toplevel ::\n                  (Spatial :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_as_toplevel cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_set_as_toplevel (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"set_as_toplevel\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Spatial.set_as_toplevel\n\n{-# NOINLINE bindSpatial_set_disable_scale #-}\n\n-- | Sets whether the node uses a scale of @(1, 1, 1)@ or its local transformation scale. Changes to the local transformation scale are preserved.\nbindSpatial_set_disable_scale :: MethodBind\nbindSpatial_set_disable_scale\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"set_disable_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether the node uses a scale of @(1, 1, 1)@ or its local transformation scale. Changes to the local transformation scale are preserved.\nset_disable_scale ::\n                    (Spatial :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_disable_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_set_disable_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"set_disable_scale\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Spatial.set_disable_scale\n\n{-# NOINLINE bindSpatial_set_gizmo #-}\n\n-- | The @SpatialGizmo@ for this node. Used for example in @EditorSpatialGizmo@ as custom visualization and editing handles in Editor.\nbindSpatial_set_gizmo :: MethodBind\nbindSpatial_set_gizmo\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"set_gizmo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @SpatialGizmo@ for this node. Used for example in @EditorSpatialGizmo@ as custom visualization and editing handles in Editor.\nset_gizmo ::\n            (Spatial :< cls, Object :< cls) => cls -> SpatialGizmo -> IO ()\nset_gizmo cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_set_gizmo (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"set_gizmo\" '[SpatialGizmo] (IO ())\n         where\n        nodeMethod = Godot.Core.Spatial.set_gizmo\n\n{-# NOINLINE bindSpatial_set_global_transform #-}\n\n-- | World space (global) @Transform@ of this node.\nbindSpatial_set_global_transform :: MethodBind\nbindSpatial_set_global_transform\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"set_global_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | World space (global) @Transform@ of this node.\nset_global_transform ::\n                       (Spatial :< cls, Object :< cls) => cls -> Transform -> IO ()\nset_global_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_set_global_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"set_global_transform\" '[Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Spatial.set_global_transform\n\n{-# NOINLINE bindSpatial_set_identity #-}\n\n-- | Reset all transformations for this node (sets its @Transform@ to the identity matrix).\nbindSpatial_set_identity :: MethodBind\nbindSpatial_set_identity\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"set_identity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Reset all transformations for this node (sets its @Transform@ to the identity matrix).\nset_identity :: (Spatial :< cls, Object :< cls) => cls -> IO ()\nset_identity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_set_identity (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"set_identity\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Spatial.set_identity\n\n{-# NOINLINE bindSpatial_set_ignore_transform_notification #-}\n\n-- | Sets whether the node ignores notification that its transformation (global or local) changed.\nbindSpatial_set_ignore_transform_notification :: MethodBind\nbindSpatial_set_ignore_transform_notification\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"set_ignore_transform_notification\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether the node ignores notification that its transformation (global or local) changed.\nset_ignore_transform_notification ::\n                                    (Spatial :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_ignore_transform_notification cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatial_set_ignore_transform_notification\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"set_ignore_transform_notification\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Spatial.set_ignore_transform_notification\n\n{-# NOINLINE bindSpatial_set_notify_local_transform #-}\n\n-- | Sets whether the node notifies about its local transformation changes. @Spatial@ will not propagate this by default.\nbindSpatial_set_notify_local_transform :: MethodBind\nbindSpatial_set_notify_local_transform\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"set_notify_local_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether the node notifies about its local transformation changes. @Spatial@ will not propagate this by default.\nset_notify_local_transform ::\n                             (Spatial :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_notify_local_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_set_notify_local_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"set_notify_local_transform\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Spatial.set_notify_local_transform\n\n{-# NOINLINE bindSpatial_set_notify_transform #-}\n\n-- | Sets whether the node notifies about its global and local transformation changes. @Spatial@ will not propagate this by default.\nbindSpatial_set_notify_transform :: MethodBind\nbindSpatial_set_notify_transform\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"set_notify_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether the node notifies about its global and local transformation changes. @Spatial@ will not propagate this by default.\nset_notify_transform ::\n                       (Spatial :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_notify_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_set_notify_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"set_notify_transform\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Spatial.set_notify_transform\n\n{-# NOINLINE bindSpatial_set_rotation #-}\n\n-- | Rotation part of the local transformation in radians, specified in terms of YXZ-Euler angles in the format (X angle, Y angle, Z angle).\n--   \t\t\t__Note:__ In the mathematical sense, rotation is a matrix and not a vector. The three Euler angles, which are the three independent parameters of the Euler-angle parametrization of the rotation matrix, are stored in a @Vector3@ data structure not because the rotation is a vector, but only because @Vector3@ exists as a convenient data-structure to store 3 floating-point numbers. Therefore, applying affine operations on the rotation \"vector\" is not meaningful.\nbindSpatial_set_rotation :: MethodBind\nbindSpatial_set_rotation\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"set_rotation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rotation part of the local transformation in radians, specified in terms of YXZ-Euler angles in the format (X angle, Y angle, Z angle).\n--   \t\t\t__Note:__ In the mathematical sense, rotation is a matrix and not a vector. The three Euler angles, which are the three independent parameters of the Euler-angle parametrization of the rotation matrix, are stored in a @Vector3@ data structure not because the rotation is a vector, but only because @Vector3@ exists as a convenient data-structure to store 3 floating-point numbers. Therefore, applying affine operations on the rotation \"vector\" is not meaningful.\nset_rotation ::\n               (Spatial :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_rotation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_set_rotation (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"set_rotation\" '[Vector3] (IO ()) where\n        nodeMethod = Godot.Core.Spatial.set_rotation\n\n{-# NOINLINE bindSpatial_set_rotation_degrees #-}\n\n-- | Rotation part of the local transformation in degrees, specified in terms of YXZ-Euler angles in the format (X angle, Y angle, Z angle).\nbindSpatial_set_rotation_degrees :: MethodBind\nbindSpatial_set_rotation_degrees\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"set_rotation_degrees\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Rotation part of the local transformation in degrees, specified in terms of YXZ-Euler angles in the format (X angle, Y angle, Z angle).\nset_rotation_degrees ::\n                       (Spatial :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_rotation_degrees cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_set_rotation_degrees\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"set_rotation_degrees\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Spatial.set_rotation_degrees\n\n{-# NOINLINE bindSpatial_set_scale #-}\n\n-- | Scale part of the local transformation.\nbindSpatial_set_scale :: MethodBind\nbindSpatial_set_scale\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"set_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Scale part of the local transformation.\nset_scale ::\n            (Spatial :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_set_scale (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"set_scale\" '[Vector3] (IO ()) where\n        nodeMethod = Godot.Core.Spatial.set_scale\n\n{-# NOINLINE bindSpatial_set_transform #-}\n\n-- | Local space @Transform@ of this node, with respect to the parent node.\nbindSpatial_set_transform :: MethodBind\nbindSpatial_set_transform\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Local space @Transform@ of this node, with respect to the parent node.\nset_transform ::\n                (Spatial :< cls, Object :< cls) => cls -> Transform -> IO ()\nset_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_set_transform (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"set_transform\" '[Transform] (IO ())\n         where\n        nodeMethod = Godot.Core.Spatial.set_transform\n\n{-# NOINLINE bindSpatial_set_translation #-}\n\n-- | Local translation of this node.\nbindSpatial_set_translation :: MethodBind\nbindSpatial_set_translation\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"set_translation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Local translation of this node.\nset_translation ::\n                  (Spatial :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_translation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_set_translation (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"set_translation\" '[Vector3] (IO ())\n         where\n        nodeMethod = Godot.Core.Spatial.set_translation\n\n{-# NOINLINE bindSpatial_set_visible #-}\n\n-- | If @true@, this node is drawn. The node is only visible if all of its antecedents are visible as well (in other words, @method is_visible_in_tree@ must return @true@).\nbindSpatial_set_visible :: MethodBind\nbindSpatial_set_visible\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"set_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this node is drawn. The node is only visible if all of its antecedents are visible as well (in other words, @method is_visible_in_tree@ must return @true@).\nset_visible ::\n              (Spatial :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_visible cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_set_visible (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"set_visible\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Spatial.set_visible\n\n{-# NOINLINE bindSpatial_show #-}\n\n-- | Enables rendering of this node. Changes @visible@ to @true@.\nbindSpatial_show :: MethodBind\nbindSpatial_show\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"show\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables rendering of this node. Changes @visible@ to @true@.\nshow :: (Spatial :< cls, Object :< cls) => cls -> IO ()\nshow cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_show (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"show\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Spatial.show\n\n{-# NOINLINE bindSpatial_to_global #-}\n\n-- | Transforms @local_point@ from this node's local space to world space.\nbindSpatial_to_global :: MethodBind\nbindSpatial_to_global\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"to_global\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Transforms @local_point@ from this node's local space to world space.\nto_global ::\n            (Spatial :< cls, Object :< cls) => cls -> Vector3 -> IO Vector3\nto_global cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_to_global (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"to_global\" '[Vector3] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Spatial.to_global\n\n{-# NOINLINE bindSpatial_to_local #-}\n\n-- | Transforms @global_point@ from world space to this node's local space.\nbindSpatial_to_local :: MethodBind\nbindSpatial_to_local\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"to_local\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Transforms @global_point@ from world space to this node's local space.\nto_local ::\n           (Spatial :< cls, Object :< cls) => cls -> Vector3 -> IO Vector3\nto_local cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_to_local (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"to_local\" '[Vector3] (IO Vector3)\n         where\n        nodeMethod = Godot.Core.Spatial.to_local\n\n{-# NOINLINE bindSpatial_translate #-}\n\n-- | Changes the node's position by the given offset @Vector3@.\n--   \t\t\t\tNote that the translation @offset@ is affected by the node's scale, so if scaled by e.g. @(10, 1, 1)@, a translation by an offset of @(2, 0, 0)@ would actually add 20 (@2 * 10@) to the X coordinate.\nbindSpatial_translate :: MethodBind\nbindSpatial_translate\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"translate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes the node's position by the given offset @Vector3@.\n--   \t\t\t\tNote that the translation @offset@ is affected by the node's scale, so if scaled by e.g. @(10, 1, 1)@, a translation by an offset of @(2, 0, 0)@ would actually add 20 (@2 * 10@) to the X coordinate.\ntranslate ::\n            (Spatial :< cls, Object :< cls) => cls -> Vector3 -> IO ()\ntranslate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_translate (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"translate\" '[Vector3] (IO ()) where\n        nodeMethod = Godot.Core.Spatial.translate\n\n{-# NOINLINE bindSpatial_translate_object_local #-}\n\n-- | Changes the node's position by the given offset @Vector3@ in local space.\nbindSpatial_translate_object_local :: MethodBind\nbindSpatial_translate_object_local\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"translate_object_local\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes the node's position by the given offset @Vector3@ in local space.\ntranslate_object_local ::\n                         (Spatial :< cls, Object :< cls) => cls -> Vector3 -> IO ()\ntranslate_object_local cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_translate_object_local\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"translate_object_local\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Spatial.translate_object_local\n\n{-# NOINLINE bindSpatial_update_gizmo #-}\n\n-- | Updates the @SpatialGizmo@ of this node.\nbindSpatial_update_gizmo :: MethodBind\nbindSpatial_update_gizmo\n  = unsafePerformIO $\n      withCString \"Spatial\" $\n        \\ clsNamePtr ->\n          withCString \"update_gizmo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Updates the @SpatialGizmo@ of this node.\nupdate_gizmo :: (Spatial :< cls, Object :< cls) => cls -> IO ()\nupdate_gizmo cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatial_update_gizmo (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Spatial \"update_gizmo\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Spatial.update_gizmo"
  },
  {
    "path": "src/Godot/Core/SpatialGizmo.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SpatialGizmo () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()"
  },
  {
    "path": "src/Godot/Core/SpatialMaterial.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SpatialMaterial\n       (Godot.Core.SpatialMaterial._DIFFUSE_BURLEY,\n        Godot.Core.SpatialMaterial._DEPTH_DRAW_ALWAYS,\n        Godot.Core.SpatialMaterial._FLAG_DISABLE_DEPTH_TEST,\n        Godot.Core.SpatialMaterial._TEXTURE_MAX,\n        Godot.Core.SpatialMaterial._DISTANCE_FADE_PIXEL_DITHER,\n        Godot.Core.SpatialMaterial._FLAG_DONT_RECEIVE_SHADOWS,\n        Godot.Core.SpatialMaterial._TEXTURE_METALLIC,\n        Godot.Core.SpatialMaterial._FEATURE_MAX,\n        Godot.Core.SpatialMaterial._TEXTURE_DETAIL_ALBEDO,\n        Godot.Core.SpatialMaterial._TEXTURE_CHANNEL_RED,\n        Godot.Core.SpatialMaterial._SPECULAR_TOON,\n        Godot.Core.SpatialMaterial._FEATURE_EMISSION,\n        Godot.Core.SpatialMaterial._TEXTURE_CHANNEL_BLUE,\n        Godot.Core.SpatialMaterial._TEXTURE_AMBIENT_OCCLUSION,\n        Godot.Core.SpatialMaterial._TEXTURE_DETAIL_MASK,\n        Godot.Core.SpatialMaterial._FEATURE_DETAIL,\n        Godot.Core.SpatialMaterial._SPECULAR_SCHLICK_GGX,\n        Godot.Core.SpatialMaterial._FEATURE_SUBSURACE_SCATTERING,\n        Godot.Core.SpatialMaterial._FEATURE_DEPTH_MAPPING,\n        Godot.Core.SpatialMaterial._TEXTURE_REFRACTION,\n        Godot.Core.SpatialMaterial._FEATURE_TRANSPARENT,\n        Godot.Core.SpatialMaterial._FEATURE_TRANSMISSION,\n        Godot.Core.SpatialMaterial._FLAG_TRIPLANAR_USE_WORLD,\n        Godot.Core.SpatialMaterial._DEPTH_DRAW_ALPHA_OPAQUE_PREPASS,\n        Godot.Core.SpatialMaterial._FLAG_USE_ALPHA_SCISSOR,\n        Godot.Core.SpatialMaterial._DIFFUSE_LAMBERT,\n        Godot.Core.SpatialMaterial._DETAIL_UV_2,\n        Godot.Core.SpatialMaterial._DIFFUSE_LAMBERT_WRAP,\n        Godot.Core.SpatialMaterial._BLEND_MODE_ADD,\n        Godot.Core.SpatialMaterial._BILLBOARD_ENABLED,\n        Godot.Core.SpatialMaterial._TEXTURE_NORMAL,\n        Godot.Core.SpatialMaterial._FEATURE_NORMAL_MAPPING,\n        Godot.Core.SpatialMaterial._TEXTURE_TRANSMISSION,\n        Godot.Core.SpatialMaterial._FLAG_ALBEDO_FROM_VERTEX_COLOR,\n        Godot.Core.SpatialMaterial._FEATURE_REFRACTION,\n        Godot.Core.SpatialMaterial._BLEND_MODE_MIX,\n        Godot.Core.SpatialMaterial._BILLBOARD_FIXED_Y,\n        Godot.Core.SpatialMaterial._TEXTURE_FLOWMAP,\n        Godot.Core.SpatialMaterial._TEXTURE_RIM,\n        Godot.Core.SpatialMaterial._FEATURE_AMBIENT_OCCLUSION,\n        Godot.Core.SpatialMaterial._DISTANCE_FADE_OBJECT_DITHER,\n        Godot.Core.SpatialMaterial._FLAG_BILLBOARD_KEEP_SCALE,\n        Godot.Core.SpatialMaterial._DEPTH_DRAW_OPAQUE_ONLY,\n        Godot.Core.SpatialMaterial._FLAG_USE_POINT_SIZE,\n        Godot.Core.SpatialMaterial._CULL_DISABLED,\n        Godot.Core.SpatialMaterial._FEATURE_ANISOTROPY,\n        Godot.Core.SpatialMaterial._TEXTURE_ROUGHNESS,\n        Godot.Core.SpatialMaterial._EMISSION_OP_ADD,\n        Godot.Core.SpatialMaterial._FLAG_MAX,\n        Godot.Core.SpatialMaterial._FLAG_FIXED_SIZE,\n        Godot.Core.SpatialMaterial._FLAG_UNSHADED,\n        Godot.Core.SpatialMaterial._FLAG_ENSURE_CORRECT_NORMALS,\n        Godot.Core.SpatialMaterial._TEXTURE_CHANNEL_GREEN,\n        Godot.Core.SpatialMaterial._SPECULAR_BLINN,\n        Godot.Core.SpatialMaterial._CULL_BACK,\n        Godot.Core.SpatialMaterial._EMISSION_OP_MULTIPLY,\n        Godot.Core.SpatialMaterial._FLAG_SRGB_VERTEX_COLOR,\n        Godot.Core.SpatialMaterial._FLAG_EMISSION_ON_UV2,\n        Godot.Core.SpatialMaterial._FLAG_AO_ON_UV2,\n        Godot.Core.SpatialMaterial._TEXTURE_DEPTH,\n        Godot.Core.SpatialMaterial._DIFFUSE_OREN_NAYAR,\n        Godot.Core.SpatialMaterial._FLAG_UV1_USE_TRIPLANAR,\n        Godot.Core.SpatialMaterial._DEPTH_DRAW_DISABLED,\n        Godot.Core.SpatialMaterial._TEXTURE_DETAIL_NORMAL,\n        Godot.Core.SpatialMaterial._FEATURE_RIM,\n        Godot.Core.SpatialMaterial._DISTANCE_FADE_DISABLED,\n        Godot.Core.SpatialMaterial._SPECULAR_DISABLED,\n        Godot.Core.SpatialMaterial._CULL_FRONT,\n        Godot.Core.SpatialMaterial._TEXTURE_SUBSURFACE_SCATTERING,\n        Godot.Core.SpatialMaterial._TEXTURE_CLEARCOAT,\n        Godot.Core.SpatialMaterial._TEXTURE_CHANNEL_ALPHA,\n        Godot.Core.SpatialMaterial._FEATURE_CLEARCOAT,\n        Godot.Core.SpatialMaterial._FLAG_ALBEDO_TEXTURE_FORCE_SRGB,\n        Godot.Core.SpatialMaterial._DIFFUSE_TOON,\n        Godot.Core.SpatialMaterial._DETAIL_UV_1,\n        Godot.Core.SpatialMaterial._FLAG_USE_SHADOW_TO_OPACITY,\n        Godot.Core.SpatialMaterial._BILLBOARD_DISABLED,\n        Godot.Core.SpatialMaterial._BLEND_MODE_MUL,\n        Godot.Core.SpatialMaterial._FLAG_USE_VERTEX_LIGHTING,\n        Godot.Core.SpatialMaterial._FLAG_UV2_USE_TRIPLANAR,\n        Godot.Core.SpatialMaterial._BLEND_MODE_SUB,\n        Godot.Core.SpatialMaterial._SPECULAR_PHONG,\n        Godot.Core.SpatialMaterial._DISTANCE_FADE_PIXEL_ALPHA,\n        Godot.Core.SpatialMaterial._FLAG_DISABLE_AMBIENT_LIGHT,\n        Godot.Core.SpatialMaterial._BILLBOARD_PARTICLES,\n        Godot.Core.SpatialMaterial._TEXTURE_EMISSION,\n        Godot.Core.SpatialMaterial._TEXTURE_CHANNEL_GRAYSCALE,\n        Godot.Core.SpatialMaterial._TEXTURE_ALBEDO,\n        Godot.Core.SpatialMaterial.get_albedo,\n        Godot.Core.SpatialMaterial.get_alpha_scissor_threshold,\n        Godot.Core.SpatialMaterial.get_anisotropy,\n        Godot.Core.SpatialMaterial.get_ao_light_affect,\n        Godot.Core.SpatialMaterial.get_ao_texture_channel,\n        Godot.Core.SpatialMaterial.get_billboard_mode,\n        Godot.Core.SpatialMaterial.get_blend_mode,\n        Godot.Core.SpatialMaterial.get_clearcoat,\n        Godot.Core.SpatialMaterial.get_clearcoat_gloss,\n        Godot.Core.SpatialMaterial.get_cull_mode,\n        Godot.Core.SpatialMaterial.get_depth_deep_parallax_flip_binormal,\n        Godot.Core.SpatialMaterial.get_depth_deep_parallax_flip_tangent,\n        Godot.Core.SpatialMaterial.get_depth_deep_parallax_max_layers,\n        Godot.Core.SpatialMaterial.get_depth_deep_parallax_min_layers,\n        Godot.Core.SpatialMaterial.get_depth_draw_mode,\n        Godot.Core.SpatialMaterial.get_depth_scale,\n        Godot.Core.SpatialMaterial.get_detail_blend_mode,\n        Godot.Core.SpatialMaterial.get_detail_uv,\n        Godot.Core.SpatialMaterial.get_diffuse_mode,\n        Godot.Core.SpatialMaterial.get_distance_fade,\n        Godot.Core.SpatialMaterial.get_distance_fade_max_distance,\n        Godot.Core.SpatialMaterial.get_distance_fade_min_distance,\n        Godot.Core.SpatialMaterial.get_emission,\n        Godot.Core.SpatialMaterial.get_emission_energy,\n        Godot.Core.SpatialMaterial.get_emission_operator,\n        Godot.Core.SpatialMaterial.get_feature,\n        Godot.Core.SpatialMaterial.get_flag,\n        Godot.Core.SpatialMaterial.get_grow,\n        Godot.Core.SpatialMaterial.get_line_width,\n        Godot.Core.SpatialMaterial.get_metallic,\n        Godot.Core.SpatialMaterial.get_metallic_texture_channel,\n        Godot.Core.SpatialMaterial.get_normal_scale,\n        Godot.Core.SpatialMaterial.get_particles_anim_h_frames,\n        Godot.Core.SpatialMaterial.get_particles_anim_loop,\n        Godot.Core.SpatialMaterial.get_particles_anim_v_frames,\n        Godot.Core.SpatialMaterial.get_point_size,\n        Godot.Core.SpatialMaterial.get_proximity_fade_distance,\n        Godot.Core.SpatialMaterial.get_refraction,\n        Godot.Core.SpatialMaterial.get_refraction_texture_channel,\n        Godot.Core.SpatialMaterial.get_rim,\n        Godot.Core.SpatialMaterial.get_rim_tint,\n        Godot.Core.SpatialMaterial.get_roughness,\n        Godot.Core.SpatialMaterial.get_roughness_texture_channel,\n        Godot.Core.SpatialMaterial.get_specular,\n        Godot.Core.SpatialMaterial.get_specular_mode,\n        Godot.Core.SpatialMaterial.get_subsurface_scattering_strength,\n        Godot.Core.SpatialMaterial.get_texture,\n        Godot.Core.SpatialMaterial.get_transmission,\n        Godot.Core.SpatialMaterial.get_uv1_offset,\n        Godot.Core.SpatialMaterial.get_uv1_scale,\n        Godot.Core.SpatialMaterial.get_uv1_triplanar_blend_sharpness,\n        Godot.Core.SpatialMaterial.get_uv2_offset,\n        Godot.Core.SpatialMaterial.get_uv2_scale,\n        Godot.Core.SpatialMaterial.get_uv2_triplanar_blend_sharpness,\n        Godot.Core.SpatialMaterial.is_depth_deep_parallax_enabled,\n        Godot.Core.SpatialMaterial.is_grow_enabled,\n        Godot.Core.SpatialMaterial.is_proximity_fade_enabled,\n        Godot.Core.SpatialMaterial.set_albedo,\n        Godot.Core.SpatialMaterial.set_alpha_scissor_threshold,\n        Godot.Core.SpatialMaterial.set_anisotropy,\n        Godot.Core.SpatialMaterial.set_ao_light_affect,\n        Godot.Core.SpatialMaterial.set_ao_texture_channel,\n        Godot.Core.SpatialMaterial.set_billboard_mode,\n        Godot.Core.SpatialMaterial.set_blend_mode,\n        Godot.Core.SpatialMaterial.set_clearcoat,\n        Godot.Core.SpatialMaterial.set_clearcoat_gloss,\n        Godot.Core.SpatialMaterial.set_cull_mode,\n        Godot.Core.SpatialMaterial.set_depth_deep_parallax,\n        Godot.Core.SpatialMaterial.set_depth_deep_parallax_flip_binormal,\n        Godot.Core.SpatialMaterial.set_depth_deep_parallax_flip_tangent,\n        Godot.Core.SpatialMaterial.set_depth_deep_parallax_max_layers,\n        Godot.Core.SpatialMaterial.set_depth_deep_parallax_min_layers,\n        Godot.Core.SpatialMaterial.set_depth_draw_mode,\n        Godot.Core.SpatialMaterial.set_depth_scale,\n        Godot.Core.SpatialMaterial.set_detail_blend_mode,\n        Godot.Core.SpatialMaterial.set_detail_uv,\n        Godot.Core.SpatialMaterial.set_diffuse_mode,\n        Godot.Core.SpatialMaterial.set_distance_fade,\n        Godot.Core.SpatialMaterial.set_distance_fade_max_distance,\n        Godot.Core.SpatialMaterial.set_distance_fade_min_distance,\n        Godot.Core.SpatialMaterial.set_emission,\n        Godot.Core.SpatialMaterial.set_emission_energy,\n        Godot.Core.SpatialMaterial.set_emission_operator,\n        Godot.Core.SpatialMaterial.set_feature,\n        Godot.Core.SpatialMaterial.set_flag,\n        Godot.Core.SpatialMaterial.set_grow,\n        Godot.Core.SpatialMaterial.set_grow_enabled,\n        Godot.Core.SpatialMaterial.set_line_width,\n        Godot.Core.SpatialMaterial.set_metallic,\n        Godot.Core.SpatialMaterial.set_metallic_texture_channel,\n        Godot.Core.SpatialMaterial.set_normal_scale,\n        Godot.Core.SpatialMaterial.set_particles_anim_h_frames,\n        Godot.Core.SpatialMaterial.set_particles_anim_loop,\n        Godot.Core.SpatialMaterial.set_particles_anim_v_frames,\n        Godot.Core.SpatialMaterial.set_point_size,\n        Godot.Core.SpatialMaterial.set_proximity_fade,\n        Godot.Core.SpatialMaterial.set_proximity_fade_distance,\n        Godot.Core.SpatialMaterial.set_refraction,\n        Godot.Core.SpatialMaterial.set_refraction_texture_channel,\n        Godot.Core.SpatialMaterial.set_rim,\n        Godot.Core.SpatialMaterial.set_rim_tint,\n        Godot.Core.SpatialMaterial.set_roughness,\n        Godot.Core.SpatialMaterial.set_roughness_texture_channel,\n        Godot.Core.SpatialMaterial.set_specular,\n        Godot.Core.SpatialMaterial.set_specular_mode,\n        Godot.Core.SpatialMaterial.set_subsurface_scattering_strength,\n        Godot.Core.SpatialMaterial.set_texture,\n        Godot.Core.SpatialMaterial.set_transmission,\n        Godot.Core.SpatialMaterial.set_uv1_offset,\n        Godot.Core.SpatialMaterial.set_uv1_scale,\n        Godot.Core.SpatialMaterial.set_uv1_triplanar_blend_sharpness,\n        Godot.Core.SpatialMaterial.set_uv2_offset,\n        Godot.Core.SpatialMaterial.set_uv2_scale,\n        Godot.Core.SpatialMaterial.set_uv2_triplanar_blend_sharpness)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Material()\n\n_DIFFUSE_BURLEY :: Int\n_DIFFUSE_BURLEY = 0\n\n_DEPTH_DRAW_ALWAYS :: Int\n_DEPTH_DRAW_ALWAYS = 1\n\n_FLAG_DISABLE_DEPTH_TEST :: Int\n_FLAG_DISABLE_DEPTH_TEST = 2\n\n_TEXTURE_MAX :: Int\n_TEXTURE_MAX = 16\n\n_DISTANCE_FADE_PIXEL_DITHER :: Int\n_DISTANCE_FADE_PIXEL_DITHER = 2\n\n_FLAG_DONT_RECEIVE_SHADOWS :: Int\n_FLAG_DONT_RECEIVE_SHADOWS = 15\n\n_TEXTURE_METALLIC :: Int\n_TEXTURE_METALLIC = 1\n\n_FEATURE_MAX :: Int\n_FEATURE_MAX = 12\n\n_TEXTURE_DETAIL_ALBEDO :: Int\n_TEXTURE_DETAIL_ALBEDO = 14\n\n_TEXTURE_CHANNEL_RED :: Int\n_TEXTURE_CHANNEL_RED = 0\n\n_SPECULAR_TOON :: Int\n_SPECULAR_TOON = 3\n\n_FEATURE_EMISSION :: Int\n_FEATURE_EMISSION = 1\n\n_TEXTURE_CHANNEL_BLUE :: Int\n_TEXTURE_CHANNEL_BLUE = 2\n\n_TEXTURE_AMBIENT_OCCLUSION :: Int\n_TEXTURE_AMBIENT_OCCLUSION = 8\n\n_TEXTURE_DETAIL_MASK :: Int\n_TEXTURE_DETAIL_MASK = 13\n\n_FEATURE_DETAIL :: Int\n_FEATURE_DETAIL = 11\n\n_SPECULAR_SCHLICK_GGX :: Int\n_SPECULAR_SCHLICK_GGX = 0\n\n_FEATURE_SUBSURACE_SCATTERING :: Int\n_FEATURE_SUBSURACE_SCATTERING = 8\n\n_FEATURE_DEPTH_MAPPING :: Int\n_FEATURE_DEPTH_MAPPING = 7\n\n_TEXTURE_REFRACTION :: Int\n_TEXTURE_REFRACTION = 12\n\n_FEATURE_TRANSPARENT :: Int\n_FEATURE_TRANSPARENT = 0\n\n_FEATURE_TRANSMISSION :: Int\n_FEATURE_TRANSMISSION = 9\n\n_FLAG_TRIPLANAR_USE_WORLD :: Int\n_FLAG_TRIPLANAR_USE_WORLD = 10\n\n_DEPTH_DRAW_ALPHA_OPAQUE_PREPASS :: Int\n_DEPTH_DRAW_ALPHA_OPAQUE_PREPASS = 3\n\n_FLAG_USE_ALPHA_SCISSOR :: Int\n_FLAG_USE_ALPHA_SCISSOR = 13\n\n_DIFFUSE_LAMBERT :: Int\n_DIFFUSE_LAMBERT = 1\n\n_DETAIL_UV_2 :: Int\n_DETAIL_UV_2 = 1\n\n_DIFFUSE_LAMBERT_WRAP :: Int\n_DIFFUSE_LAMBERT_WRAP = 2\n\n_BLEND_MODE_ADD :: Int\n_BLEND_MODE_ADD = 1\n\n_BILLBOARD_ENABLED :: Int\n_BILLBOARD_ENABLED = 1\n\n_TEXTURE_NORMAL :: Int\n_TEXTURE_NORMAL = 4\n\n_FEATURE_NORMAL_MAPPING :: Int\n_FEATURE_NORMAL_MAPPING = 2\n\n_TEXTURE_TRANSMISSION :: Int\n_TEXTURE_TRANSMISSION = 11\n\n_FLAG_ALBEDO_FROM_VERTEX_COLOR :: Int\n_FLAG_ALBEDO_FROM_VERTEX_COLOR = 3\n\n_FEATURE_REFRACTION :: Int\n_FEATURE_REFRACTION = 10\n\n_BLEND_MODE_MIX :: Int\n_BLEND_MODE_MIX = 0\n\n_BILLBOARD_FIXED_Y :: Int\n_BILLBOARD_FIXED_Y = 2\n\n_TEXTURE_FLOWMAP :: Int\n_TEXTURE_FLOWMAP = 7\n\n_TEXTURE_RIM :: Int\n_TEXTURE_RIM = 5\n\n_FEATURE_AMBIENT_OCCLUSION :: Int\n_FEATURE_AMBIENT_OCCLUSION = 6\n\n_DISTANCE_FADE_OBJECT_DITHER :: Int\n_DISTANCE_FADE_OBJECT_DITHER = 3\n\n_FLAG_BILLBOARD_KEEP_SCALE :: Int\n_FLAG_BILLBOARD_KEEP_SCALE = 7\n\n_DEPTH_DRAW_OPAQUE_ONLY :: Int\n_DEPTH_DRAW_OPAQUE_ONLY = 0\n\n_FLAG_USE_POINT_SIZE :: Int\n_FLAG_USE_POINT_SIZE = 5\n\n_CULL_DISABLED :: Int\n_CULL_DISABLED = 2\n\n_FEATURE_ANISOTROPY :: Int\n_FEATURE_ANISOTROPY = 5\n\n_TEXTURE_ROUGHNESS :: Int\n_TEXTURE_ROUGHNESS = 2\n\n_EMISSION_OP_ADD :: Int\n_EMISSION_OP_ADD = 0\n\n_FLAG_MAX :: Int\n_FLAG_MAX = 19\n\n_FLAG_FIXED_SIZE :: Int\n_FLAG_FIXED_SIZE = 6\n\n_FLAG_UNSHADED :: Int\n_FLAG_UNSHADED = 0\n\n_FLAG_ENSURE_CORRECT_NORMALS :: Int\n_FLAG_ENSURE_CORRECT_NORMALS = 16\n\n_TEXTURE_CHANNEL_GREEN :: Int\n_TEXTURE_CHANNEL_GREEN = 1\n\n_SPECULAR_BLINN :: Int\n_SPECULAR_BLINN = 1\n\n_CULL_BACK :: Int\n_CULL_BACK = 0\n\n_EMISSION_OP_MULTIPLY :: Int\n_EMISSION_OP_MULTIPLY = 1\n\n_FLAG_SRGB_VERTEX_COLOR :: Int\n_FLAG_SRGB_VERTEX_COLOR = 4\n\n_FLAG_EMISSION_ON_UV2 :: Int\n_FLAG_EMISSION_ON_UV2 = 12\n\n_FLAG_AO_ON_UV2 :: Int\n_FLAG_AO_ON_UV2 = 11\n\n_TEXTURE_DEPTH :: Int\n_TEXTURE_DEPTH = 9\n\n_DIFFUSE_OREN_NAYAR :: Int\n_DIFFUSE_OREN_NAYAR = 3\n\n_FLAG_UV1_USE_TRIPLANAR :: Int\n_FLAG_UV1_USE_TRIPLANAR = 8\n\n_DEPTH_DRAW_DISABLED :: Int\n_DEPTH_DRAW_DISABLED = 2\n\n_TEXTURE_DETAIL_NORMAL :: Int\n_TEXTURE_DETAIL_NORMAL = 15\n\n_FEATURE_RIM :: Int\n_FEATURE_RIM = 3\n\n_DISTANCE_FADE_DISABLED :: Int\n_DISTANCE_FADE_DISABLED = 0\n\n_SPECULAR_DISABLED :: Int\n_SPECULAR_DISABLED = 4\n\n_CULL_FRONT :: Int\n_CULL_FRONT = 1\n\n_TEXTURE_SUBSURFACE_SCATTERING :: Int\n_TEXTURE_SUBSURFACE_SCATTERING = 10\n\n_TEXTURE_CLEARCOAT :: Int\n_TEXTURE_CLEARCOAT = 6\n\n_TEXTURE_CHANNEL_ALPHA :: Int\n_TEXTURE_CHANNEL_ALPHA = 3\n\n_FEATURE_CLEARCOAT :: Int\n_FEATURE_CLEARCOAT = 4\n\n_FLAG_ALBEDO_TEXTURE_FORCE_SRGB :: Int\n_FLAG_ALBEDO_TEXTURE_FORCE_SRGB = 14\n\n_DIFFUSE_TOON :: Int\n_DIFFUSE_TOON = 4\n\n_DETAIL_UV_1 :: Int\n_DETAIL_UV_1 = 0\n\n_FLAG_USE_SHADOW_TO_OPACITY :: Int\n_FLAG_USE_SHADOW_TO_OPACITY = 18\n\n_BILLBOARD_DISABLED :: Int\n_BILLBOARD_DISABLED = 0\n\n_BLEND_MODE_MUL :: Int\n_BLEND_MODE_MUL = 3\n\n_FLAG_USE_VERTEX_LIGHTING :: Int\n_FLAG_USE_VERTEX_LIGHTING = 1\n\n_FLAG_UV2_USE_TRIPLANAR :: Int\n_FLAG_UV2_USE_TRIPLANAR = 9\n\n_BLEND_MODE_SUB :: Int\n_BLEND_MODE_SUB = 2\n\n_SPECULAR_PHONG :: Int\n_SPECULAR_PHONG = 2\n\n_DISTANCE_FADE_PIXEL_ALPHA :: Int\n_DISTANCE_FADE_PIXEL_ALPHA = 1\n\n_FLAG_DISABLE_AMBIENT_LIGHT :: Int\n_FLAG_DISABLE_AMBIENT_LIGHT = 17\n\n_BILLBOARD_PARTICLES :: Int\n_BILLBOARD_PARTICLES = 3\n\n_TEXTURE_EMISSION :: Int\n_TEXTURE_EMISSION = 3\n\n_TEXTURE_CHANNEL_GRAYSCALE :: Int\n_TEXTURE_CHANNEL_GRAYSCALE = 4\n\n_TEXTURE_ALBEDO :: Int\n_TEXTURE_ALBEDO = 0\n\ninstance NodeProperty SpatialMaterial \"albedo_color\" Color 'False\n         where\n        nodeProperty = (get_albedo, wrapDroppingSetter set_albedo, Nothing)\n\ninstance NodeProperty SpatialMaterial \"albedo_texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_texture,\n             wrapIndexedSetter 0 set_texture, Nothing)\n\ninstance NodeProperty SpatialMaterial \"anisotropy\" Float 'False\n         where\n        nodeProperty\n          = (get_anisotropy, wrapDroppingSetter set_anisotropy, Nothing)\n\ninstance NodeProperty SpatialMaterial \"anisotropy_enabled\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_feature,\n             wrapIndexedSetter 5 set_feature, Nothing)\n\ninstance NodeProperty SpatialMaterial \"anisotropy_flowmap\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_texture,\n             wrapIndexedSetter 7 set_texture, Nothing)\n\ninstance NodeProperty SpatialMaterial \"ao_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_feature,\n             wrapIndexedSetter 6 set_feature, Nothing)\n\ninstance NodeProperty SpatialMaterial \"ao_light_affect\" Float\n           'False\n         where\n        nodeProperty\n          = (get_ao_light_affect, wrapDroppingSetter set_ao_light_affect,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"ao_on_uv2\" Bool 'False where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_flag, wrapIndexedSetter 11 set_flag,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"ao_texture\" Texture 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_texture,\n             wrapIndexedSetter 8 set_texture, Nothing)\n\ninstance NodeProperty SpatialMaterial \"ao_texture_channel\" Int\n           'False\n         where\n        nodeProperty\n          = (get_ao_texture_channel,\n             wrapDroppingSetter set_ao_texture_channel, Nothing)\n\ninstance NodeProperty SpatialMaterial \"clearcoat\" Float 'False\n         where\n        nodeProperty\n          = (get_clearcoat, wrapDroppingSetter set_clearcoat, Nothing)\n\ninstance NodeProperty SpatialMaterial \"clearcoat_enabled\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_feature,\n             wrapIndexedSetter 4 set_feature, Nothing)\n\ninstance NodeProperty SpatialMaterial \"clearcoat_gloss\" Float\n           'False\n         where\n        nodeProperty\n          = (get_clearcoat_gloss, wrapDroppingSetter set_clearcoat_gloss,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"clearcoat_texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_texture,\n             wrapIndexedSetter 6 set_texture, Nothing)\n\ninstance NodeProperty SpatialMaterial \"depth_deep_parallax\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_depth_deep_parallax_enabled,\n             wrapDroppingSetter set_depth_deep_parallax, Nothing)\n\ninstance NodeProperty SpatialMaterial \"depth_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_feature,\n             wrapIndexedSetter 7 set_feature, Nothing)\n\ninstance NodeProperty SpatialMaterial \"depth_flip_binormal\" Bool\n           'False\n         where\n        nodeProperty\n          = (get_depth_deep_parallax_flip_binormal,\n             wrapDroppingSetter set_depth_deep_parallax_flip_binormal, Nothing)\n\ninstance NodeProperty SpatialMaterial \"depth_flip_tangent\" Bool\n           'False\n         where\n        nodeProperty\n          = (get_depth_deep_parallax_flip_tangent,\n             wrapDroppingSetter set_depth_deep_parallax_flip_tangent, Nothing)\n\ninstance NodeProperty SpatialMaterial \"depth_max_layers\" Int 'False\n         where\n        nodeProperty\n          = (get_depth_deep_parallax_max_layers,\n             wrapDroppingSetter set_depth_deep_parallax_max_layers, Nothing)\n\ninstance NodeProperty SpatialMaterial \"depth_min_layers\" Int 'False\n         where\n        nodeProperty\n          = (get_depth_deep_parallax_min_layers,\n             wrapDroppingSetter set_depth_deep_parallax_min_layers, Nothing)\n\ninstance NodeProperty SpatialMaterial \"depth_scale\" Float 'False\n         where\n        nodeProperty\n          = (get_depth_scale, wrapDroppingSetter set_depth_scale, Nothing)\n\ninstance NodeProperty SpatialMaterial \"depth_texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_texture,\n             wrapIndexedSetter 9 set_texture, Nothing)\n\ninstance NodeProperty SpatialMaterial \"detail_albedo\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 14 get_texture,\n             wrapIndexedSetter 14 set_texture, Nothing)\n\ninstance NodeProperty SpatialMaterial \"detail_blend_mode\" Int\n           'False\n         where\n        nodeProperty\n          = (get_detail_blend_mode, wrapDroppingSetter set_detail_blend_mode,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"detail_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_feature,\n             wrapIndexedSetter 11 set_feature, Nothing)\n\ninstance NodeProperty SpatialMaterial \"detail_mask\" Texture 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 13 get_texture,\n             wrapIndexedSetter 13 set_texture, Nothing)\n\ninstance NodeProperty SpatialMaterial \"detail_normal\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 15 get_texture,\n             wrapIndexedSetter 15 set_texture, Nothing)\n\ninstance NodeProperty SpatialMaterial \"detail_uv_layer\" Int 'False\n         where\n        nodeProperty\n          = (get_detail_uv, wrapDroppingSetter set_detail_uv, Nothing)\n\ninstance NodeProperty SpatialMaterial \"distance_fade_max_distance\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_distance_fade_max_distance,\n             wrapDroppingSetter set_distance_fade_max_distance, Nothing)\n\ninstance NodeProperty SpatialMaterial \"distance_fade_min_distance\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_distance_fade_min_distance,\n             wrapDroppingSetter set_distance_fade_min_distance, Nothing)\n\ninstance NodeProperty SpatialMaterial \"distance_fade_mode\" Int\n           'False\n         where\n        nodeProperty\n          = (get_distance_fade, wrapDroppingSetter set_distance_fade,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"emission\" Color 'False where\n        nodeProperty\n          = (get_emission, wrapDroppingSetter set_emission, Nothing)\n\ninstance NodeProperty SpatialMaterial \"emission_enabled\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_feature,\n             wrapIndexedSetter 1 set_feature, Nothing)\n\ninstance NodeProperty SpatialMaterial \"emission_energy\" Float\n           'False\n         where\n        nodeProperty\n          = (get_emission_energy, wrapDroppingSetter set_emission_energy,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"emission_on_uv2\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 12 get_flag, wrapIndexedSetter 12 set_flag,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"emission_operator\" Int\n           'False\n         where\n        nodeProperty\n          = (get_emission_operator, wrapDroppingSetter set_emission_operator,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"emission_texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_texture,\n             wrapIndexedSetter 3 set_texture, Nothing)\n\ninstance NodeProperty SpatialMaterial \"flags_albedo_tex_force_srgb\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 14 get_flag, wrapIndexedSetter 14 set_flag,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"flags_disable_ambient_light\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 17 get_flag, wrapIndexedSetter 17 set_flag,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial\n           \"flags_do_not_receive_shadows\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 15 get_flag, wrapIndexedSetter 15 set_flag,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial\n           \"flags_ensure_correct_normals\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 16 get_flag, wrapIndexedSetter 16 set_flag,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"flags_fixed_size\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_flag, wrapIndexedSetter 6 set_flag,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"flags_no_depth_test\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_flag, wrapIndexedSetter 2 set_flag,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"flags_transparent\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_feature,\n             wrapIndexedSetter 0 set_feature, Nothing)\n\ninstance NodeProperty SpatialMaterial \"flags_unshaded\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_flag, wrapIndexedSetter 0 set_flag,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"flags_use_point_size\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_flag, wrapIndexedSetter 5 set_flag,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"flags_use_shadow_to_opacity\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 18 get_flag, wrapIndexedSetter 18 set_flag,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"flags_vertex_lighting\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_flag, wrapIndexedSetter 1 set_flag,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"flags_world_triplanar\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_flag, wrapIndexedSetter 10 set_flag,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"metallic\" Float 'False where\n        nodeProperty\n          = (get_metallic, wrapDroppingSetter set_metallic, Nothing)\n\ninstance NodeProperty SpatialMaterial \"metallic_specular\" Float\n           'False\n         where\n        nodeProperty\n          = (get_specular, wrapDroppingSetter set_specular, Nothing)\n\ninstance NodeProperty SpatialMaterial \"metallic_texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_texture,\n             wrapIndexedSetter 1 set_texture, Nothing)\n\ninstance NodeProperty SpatialMaterial \"metallic_texture_channel\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_metallic_texture_channel,\n             wrapDroppingSetter set_metallic_texture_channel, Nothing)\n\ninstance NodeProperty SpatialMaterial \"normal_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_feature,\n             wrapIndexedSetter 2 set_feature, Nothing)\n\ninstance NodeProperty SpatialMaterial \"normal_scale\" Float 'False\n         where\n        nodeProperty\n          = (get_normal_scale, wrapDroppingSetter set_normal_scale, Nothing)\n\ninstance NodeProperty SpatialMaterial \"normal_texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_texture,\n             wrapIndexedSetter 4 set_texture, Nothing)\n\ninstance NodeProperty SpatialMaterial\n           \"params_alpha_scissor_threshold\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_alpha_scissor_threshold,\n             wrapDroppingSetter set_alpha_scissor_threshold, Nothing)\n\ninstance NodeProperty SpatialMaterial \"params_billboard_keep_scale\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 7 get_flag, wrapIndexedSetter 7 set_flag,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"params_billboard_mode\" Int\n           'False\n         where\n        nodeProperty\n          = (get_billboard_mode, wrapDroppingSetter set_billboard_mode,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"params_blend_mode\" Int\n           'False\n         where\n        nodeProperty\n          = (get_blend_mode, wrapDroppingSetter set_blend_mode, Nothing)\n\ninstance NodeProperty SpatialMaterial \"params_cull_mode\" Int 'False\n         where\n        nodeProperty\n          = (get_cull_mode, wrapDroppingSetter set_cull_mode, Nothing)\n\ninstance NodeProperty SpatialMaterial \"params_depth_draw_mode\" Int\n           'False\n         where\n        nodeProperty\n          = (get_depth_draw_mode, wrapDroppingSetter set_depth_draw_mode,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"params_diffuse_mode\" Int\n           'False\n         where\n        nodeProperty\n          = (get_diffuse_mode, wrapDroppingSetter set_diffuse_mode, Nothing)\n\ninstance NodeProperty SpatialMaterial \"params_grow\" Bool 'False\n         where\n        nodeProperty\n          = (is_grow_enabled, wrapDroppingSetter set_grow_enabled, Nothing)\n\ninstance NodeProperty SpatialMaterial \"params_grow_amount\" Float\n           'False\n         where\n        nodeProperty = (get_grow, wrapDroppingSetter set_grow, Nothing)\n\ninstance NodeProperty SpatialMaterial \"params_line_width\" Float\n           'False\n         where\n        nodeProperty\n          = (get_line_width, wrapDroppingSetter set_line_width, Nothing)\n\ninstance NodeProperty SpatialMaterial \"params_point_size\" Float\n           'False\n         where\n        nodeProperty\n          = (get_point_size, wrapDroppingSetter set_point_size, Nothing)\n\ninstance NodeProperty SpatialMaterial \"params_specular_mode\" Int\n           'False\n         where\n        nodeProperty\n          = (get_specular_mode, wrapDroppingSetter set_specular_mode,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"params_use_alpha_scissor\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 13 get_flag, wrapIndexedSetter 13 set_flag,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"particles_anim_h_frames\" Int\n           'False\n         where\n        nodeProperty\n          = (get_particles_anim_h_frames,\n             wrapDroppingSetter set_particles_anim_h_frames, Nothing)\n\ninstance NodeProperty SpatialMaterial \"particles_anim_loop\" Bool\n           'False\n         where\n        nodeProperty\n          = (get_particles_anim_loop,\n             wrapDroppingSetter set_particles_anim_loop, Nothing)\n\ninstance NodeProperty SpatialMaterial \"particles_anim_v_frames\" Int\n           'False\n         where\n        nodeProperty\n          = (get_particles_anim_v_frames,\n             wrapDroppingSetter set_particles_anim_v_frames, Nothing)\n\ninstance NodeProperty SpatialMaterial \"proximity_fade_distance\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_proximity_fade_distance,\n             wrapDroppingSetter set_proximity_fade_distance, Nothing)\n\ninstance NodeProperty SpatialMaterial \"proximity_fade_enable\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_proximity_fade_enabled,\n             wrapDroppingSetter set_proximity_fade, Nothing)\n\ninstance NodeProperty SpatialMaterial \"refraction_enabled\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_feature,\n             wrapIndexedSetter 10 set_feature, Nothing)\n\ninstance NodeProperty SpatialMaterial \"refraction_scale\" Float\n           'False\n         where\n        nodeProperty\n          = (get_refraction, wrapDroppingSetter set_refraction, Nothing)\n\ninstance NodeProperty SpatialMaterial \"refraction_texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 12 get_texture,\n             wrapIndexedSetter 12 set_texture, Nothing)\n\ninstance NodeProperty SpatialMaterial \"refraction_texture_channel\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_refraction_texture_channel,\n             wrapDroppingSetter set_refraction_texture_channel, Nothing)\n\ninstance NodeProperty SpatialMaterial \"rim\" Float 'False where\n        nodeProperty = (get_rim, wrapDroppingSetter set_rim, Nothing)\n\ninstance NodeProperty SpatialMaterial \"rim_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_feature,\n             wrapIndexedSetter 3 set_feature, Nothing)\n\ninstance NodeProperty SpatialMaterial \"rim_texture\" Texture 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_texture,\n             wrapIndexedSetter 5 set_texture, Nothing)\n\ninstance NodeProperty SpatialMaterial \"rim_tint\" Float 'False where\n        nodeProperty\n          = (get_rim_tint, wrapDroppingSetter set_rim_tint, Nothing)\n\ninstance NodeProperty SpatialMaterial \"roughness\" Float 'False\n         where\n        nodeProperty\n          = (get_roughness, wrapDroppingSetter set_roughness, Nothing)\n\ninstance NodeProperty SpatialMaterial \"roughness_texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_texture,\n             wrapIndexedSetter 2 set_texture, Nothing)\n\ninstance NodeProperty SpatialMaterial \"roughness_texture_channel\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_roughness_texture_channel,\n             wrapDroppingSetter set_roughness_texture_channel, Nothing)\n\ninstance NodeProperty SpatialMaterial \"subsurf_scatter_enabled\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_feature,\n             wrapIndexedSetter 8 set_feature, Nothing)\n\ninstance NodeProperty SpatialMaterial \"subsurf_scatter_strength\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_subsurface_scattering_strength,\n             wrapDroppingSetter set_subsurface_scattering_strength, Nothing)\n\ninstance NodeProperty SpatialMaterial \"subsurf_scatter_texture\"\n           Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 10 get_texture,\n             wrapIndexedSetter 10 set_texture, Nothing)\n\ninstance NodeProperty SpatialMaterial \"transmission\" Color 'False\n         where\n        nodeProperty\n          = (get_transmission, wrapDroppingSetter set_transmission, Nothing)\n\ninstance NodeProperty SpatialMaterial \"transmission_enabled\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_feature,\n             wrapIndexedSetter 9 set_feature, Nothing)\n\ninstance NodeProperty SpatialMaterial \"transmission_texture\"\n           Texture\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 11 get_texture,\n             wrapIndexedSetter 11 set_texture, Nothing)\n\ninstance NodeProperty SpatialMaterial \"uv1_offset\" Vector3 'False\n         where\n        nodeProperty\n          = (get_uv1_offset, wrapDroppingSetter set_uv1_offset, Nothing)\n\ninstance NodeProperty SpatialMaterial \"uv1_scale\" Vector3 'False\n         where\n        nodeProperty\n          = (get_uv1_scale, wrapDroppingSetter set_uv1_scale, Nothing)\n\ninstance NodeProperty SpatialMaterial \"uv1_triplanar\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 8 get_flag, wrapIndexedSetter 8 set_flag,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"uv1_triplanar_sharpness\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_uv1_triplanar_blend_sharpness,\n             wrapDroppingSetter set_uv1_triplanar_blend_sharpness, Nothing)\n\ninstance NodeProperty SpatialMaterial \"uv2_offset\" Vector3 'False\n         where\n        nodeProperty\n          = (get_uv2_offset, wrapDroppingSetter set_uv2_offset, Nothing)\n\ninstance NodeProperty SpatialMaterial \"uv2_scale\" Vector3 'False\n         where\n        nodeProperty\n          = (get_uv2_scale, wrapDroppingSetter set_uv2_scale, Nothing)\n\ninstance NodeProperty SpatialMaterial \"uv2_triplanar\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 9 get_flag, wrapIndexedSetter 9 set_flag,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"uv2_triplanar_sharpness\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_uv2_triplanar_blend_sharpness,\n             wrapDroppingSetter set_uv2_triplanar_blend_sharpness, Nothing)\n\ninstance NodeProperty SpatialMaterial \"vertex_color_is_srgb\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_flag, wrapIndexedSetter 4 set_flag,\n             Nothing)\n\ninstance NodeProperty SpatialMaterial \"vertex_color_use_as_albedo\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_flag, wrapIndexedSetter 3 set_flag,\n             Nothing)\n\n{-# NOINLINE bindSpatialMaterial_get_albedo #-}\n\n-- | The material's base color.\nbindSpatialMaterial_get_albedo :: MethodBind\nbindSpatialMaterial_get_albedo\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_albedo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The material's base color.\nget_albedo ::\n             (SpatialMaterial :< cls, Object :< cls) => cls -> IO Color\nget_albedo cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_albedo (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_albedo\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_albedo\n\n{-# NOINLINE bindSpatialMaterial_get_alpha_scissor_threshold #-}\n\n-- | Threshold at which the alpha scissor will discard values.\nbindSpatialMaterial_get_alpha_scissor_threshold :: MethodBind\nbindSpatialMaterial_get_alpha_scissor_threshold\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_alpha_scissor_threshold\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Threshold at which the alpha scissor will discard values.\nget_alpha_scissor_threshold ::\n                              (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_alpha_scissor_threshold cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_get_alpha_scissor_threshold\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_alpha_scissor_threshold\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_alpha_scissor_threshold\n\n{-# NOINLINE bindSpatialMaterial_get_anisotropy #-}\n\n-- | The strength of the anisotropy effect.\nbindSpatialMaterial_get_anisotropy :: MethodBind\nbindSpatialMaterial_get_anisotropy\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_anisotropy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The strength of the anisotropy effect.\nget_anisotropy ::\n                 (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_anisotropy cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_anisotropy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_anisotropy\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_anisotropy\n\n{-# NOINLINE bindSpatialMaterial_get_ao_light_affect #-}\n\n-- | Amount that ambient occlusion affects lighting from lights. If @0@, ambient occlusion only affects ambient light. If @1@, ambient occlusion affects lights just as much as it affects ambient light. This can be used to impact the strength of the ambient occlusion effect, but typically looks unrealistic.\nbindSpatialMaterial_get_ao_light_affect :: MethodBind\nbindSpatialMaterial_get_ao_light_affect\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_ao_light_affect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount that ambient occlusion affects lighting from lights. If @0@, ambient occlusion only affects ambient light. If @1@, ambient occlusion affects lights just as much as it affects ambient light. This can be used to impact the strength of the ambient occlusion effect, but typically looks unrealistic.\nget_ao_light_affect ::\n                      (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_ao_light_affect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_ao_light_affect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_ao_light_affect\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_ao_light_affect\n\n{-# NOINLINE bindSpatialMaterial_get_ao_texture_channel #-}\n\n-- | Specifies the channel of the @ao_texture@ in which the ambient occlusion information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use.\nbindSpatialMaterial_get_ao_texture_channel :: MethodBind\nbindSpatialMaterial_get_ao_texture_channel\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_ao_texture_channel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies the channel of the @ao_texture@ in which the ambient occlusion information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use.\nget_ao_texture_channel ::\n                         (SpatialMaterial :< cls, Object :< cls) => cls -> IO Int\nget_ao_texture_channel cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_ao_texture_channel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_ao_texture_channel\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_ao_texture_channel\n\n{-# NOINLINE bindSpatialMaterial_get_billboard_mode #-}\n\n-- | Controls how the object faces the camera. See @enum BillboardMode@.\nbindSpatialMaterial_get_billboard_mode :: MethodBind\nbindSpatialMaterial_get_billboard_mode\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_billboard_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls how the object faces the camera. See @enum BillboardMode@.\nget_billboard_mode ::\n                     (SpatialMaterial :< cls, Object :< cls) => cls -> IO Int\nget_billboard_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_billboard_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_billboard_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_billboard_mode\n\n{-# NOINLINE bindSpatialMaterial_get_blend_mode #-}\n\n-- | The material's blend mode.\n--   \t\t\t__Note:__ Values other than @Mix@ force the object into the transparent pipeline. See @enum BlendMode@.\nbindSpatialMaterial_get_blend_mode :: MethodBind\nbindSpatialMaterial_get_blend_mode\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_blend_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The material's blend mode.\n--   \t\t\t__Note:__ Values other than @Mix@ force the object into the transparent pipeline. See @enum BlendMode@.\nget_blend_mode ::\n                 (SpatialMaterial :< cls, Object :< cls) => cls -> IO Int\nget_blend_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_blend_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_blend_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_blend_mode\n\n{-# NOINLINE bindSpatialMaterial_get_clearcoat #-}\n\n-- | Sets the strength of the clearcoat effect. Setting to @0@ looks the same as disabling the clearcoat effect.\nbindSpatialMaterial_get_clearcoat :: MethodBind\nbindSpatialMaterial_get_clearcoat\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_clearcoat\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the strength of the clearcoat effect. Setting to @0@ looks the same as disabling the clearcoat effect.\nget_clearcoat ::\n                (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_clearcoat cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_clearcoat\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_clearcoat\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_clearcoat\n\n{-# NOINLINE bindSpatialMaterial_get_clearcoat_gloss #-}\n\n-- | Sets the roughness of the clearcoat pass. A higher value results in a smoother clearcoat while a lower value results in a rougher clearcoat.\nbindSpatialMaterial_get_clearcoat_gloss :: MethodBind\nbindSpatialMaterial_get_clearcoat_gloss\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_clearcoat_gloss\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the roughness of the clearcoat pass. A higher value results in a smoother clearcoat while a lower value results in a rougher clearcoat.\nget_clearcoat_gloss ::\n                      (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_clearcoat_gloss cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_clearcoat_gloss\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_clearcoat_gloss\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_clearcoat_gloss\n\n{-# NOINLINE bindSpatialMaterial_get_cull_mode #-}\n\n-- | Which side of the object is not drawn when backfaces are rendered. See @enum CullMode@.\nbindSpatialMaterial_get_cull_mode :: MethodBind\nbindSpatialMaterial_get_cull_mode\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_cull_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Which side of the object is not drawn when backfaces are rendered. See @enum CullMode@.\nget_cull_mode ::\n                (SpatialMaterial :< cls, Object :< cls) => cls -> IO Int\nget_cull_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_cull_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_cull_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_cull_mode\n\n{-# NOINLINE bindSpatialMaterial_get_depth_deep_parallax_flip_binormal\n             #-}\n\n-- | If @true@, direction of the binormal is flipped before using in the depth effect. This may be necessary if you have encoded your binormals in a way that is conflicting with the depth effect.\nbindSpatialMaterial_get_depth_deep_parallax_flip_binormal ::\n                                                          MethodBind\nbindSpatialMaterial_get_depth_deep_parallax_flip_binormal\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_depth_deep_parallax_flip_binormal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, direction of the binormal is flipped before using in the depth effect. This may be necessary if you have encoded your binormals in a way that is conflicting with the depth effect.\nget_depth_deep_parallax_flip_binormal ::\n                                        (SpatialMaterial :< cls, Object :< cls) => cls -> IO Bool\nget_depth_deep_parallax_flip_binormal cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_get_depth_deep_parallax_flip_binormal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"get_depth_deep_parallax_flip_binormal\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.get_depth_deep_parallax_flip_binormal\n\n{-# NOINLINE bindSpatialMaterial_get_depth_deep_parallax_flip_tangent\n             #-}\n\n-- | If @true@, direction of the tangent is flipped before using in the depth effect. This may be necessary if you have encoded your tangents in a way that is conflicting with the depth effect.\nbindSpatialMaterial_get_depth_deep_parallax_flip_tangent ::\n                                                         MethodBind\nbindSpatialMaterial_get_depth_deep_parallax_flip_tangent\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_depth_deep_parallax_flip_tangent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, direction of the tangent is flipped before using in the depth effect. This may be necessary if you have encoded your tangents in a way that is conflicting with the depth effect.\nget_depth_deep_parallax_flip_tangent ::\n                                       (SpatialMaterial :< cls, Object :< cls) => cls -> IO Bool\nget_depth_deep_parallax_flip_tangent cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_get_depth_deep_parallax_flip_tangent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"get_depth_deep_parallax_flip_tangent\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.get_depth_deep_parallax_flip_tangent\n\n{-# NOINLINE bindSpatialMaterial_get_depth_deep_parallax_max_layers\n             #-}\n\n-- | Number of layers to use when using @depth_deep_parallax@ and the view direction is perpendicular to the surface of the object. A higher number will be more performance demanding while a lower number may not look as crisp.\nbindSpatialMaterial_get_depth_deep_parallax_max_layers ::\n                                                       MethodBind\nbindSpatialMaterial_get_depth_deep_parallax_max_layers\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_depth_deep_parallax_max_layers\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of layers to use when using @depth_deep_parallax@ and the view direction is perpendicular to the surface of the object. A higher number will be more performance demanding while a lower number may not look as crisp.\nget_depth_deep_parallax_max_layers ::\n                                     (SpatialMaterial :< cls, Object :< cls) => cls -> IO Int\nget_depth_deep_parallax_max_layers cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_get_depth_deep_parallax_max_layers\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"get_depth_deep_parallax_max_layers\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.get_depth_deep_parallax_max_layers\n\n{-# NOINLINE bindSpatialMaterial_get_depth_deep_parallax_min_layers\n             #-}\n\n-- | Number of layers to use when using @depth_deep_parallax@ and the view direction is parallel to the surface of the object. A higher number will be more performance demanding while a lower number may not look as crisp.\nbindSpatialMaterial_get_depth_deep_parallax_min_layers ::\n                                                       MethodBind\nbindSpatialMaterial_get_depth_deep_parallax_min_layers\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_depth_deep_parallax_min_layers\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of layers to use when using @depth_deep_parallax@ and the view direction is parallel to the surface of the object. A higher number will be more performance demanding while a lower number may not look as crisp.\nget_depth_deep_parallax_min_layers ::\n                                     (SpatialMaterial :< cls, Object :< cls) => cls -> IO Int\nget_depth_deep_parallax_min_layers cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_get_depth_deep_parallax_min_layers\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"get_depth_deep_parallax_min_layers\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.get_depth_deep_parallax_min_layers\n\n{-# NOINLINE bindSpatialMaterial_get_depth_draw_mode #-}\n\n-- | Determines when depth rendering takes place. See @enum DepthDrawMode@. See also @flags_transparent@.\nbindSpatialMaterial_get_depth_draw_mode :: MethodBind\nbindSpatialMaterial_get_depth_draw_mode\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_depth_draw_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Determines when depth rendering takes place. See @enum DepthDrawMode@. See also @flags_transparent@.\nget_depth_draw_mode ::\n                      (SpatialMaterial :< cls, Object :< cls) => cls -> IO Int\nget_depth_draw_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_depth_draw_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_depth_draw_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_depth_draw_mode\n\n{-# NOINLINE bindSpatialMaterial_get_depth_scale #-}\n\n-- | Scales the depth offset effect. A higher number will create a larger depth.\nbindSpatialMaterial_get_depth_scale :: MethodBind\nbindSpatialMaterial_get_depth_scale\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_depth_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Scales the depth offset effect. A higher number will create a larger depth.\nget_depth_scale ::\n                  (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_depth_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_depth_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_depth_scale\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_depth_scale\n\n{-# NOINLINE bindSpatialMaterial_get_detail_blend_mode #-}\n\n-- | Specifies how the @detail_albedo@ should blend with the current @ALBEDO@. See @enum BlendMode@ for options.\nbindSpatialMaterial_get_detail_blend_mode :: MethodBind\nbindSpatialMaterial_get_detail_blend_mode\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_detail_blend_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies how the @detail_albedo@ should blend with the current @ALBEDO@. See @enum BlendMode@ for options.\nget_detail_blend_mode ::\n                        (SpatialMaterial :< cls, Object :< cls) => cls -> IO Int\nget_detail_blend_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_detail_blend_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_detail_blend_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_detail_blend_mode\n\n{-# NOINLINE bindSpatialMaterial_get_detail_uv #-}\n\n-- | Specifies whether to use @UV@ or @UV2@ for the detail layer. See @enum DetailUV@ for options.\nbindSpatialMaterial_get_detail_uv :: MethodBind\nbindSpatialMaterial_get_detail_uv\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_detail_uv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies whether to use @UV@ or @UV2@ for the detail layer. See @enum DetailUV@ for options.\nget_detail_uv ::\n                (SpatialMaterial :< cls, Object :< cls) => cls -> IO Int\nget_detail_uv cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_detail_uv\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_detail_uv\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_detail_uv\n\n{-# NOINLINE bindSpatialMaterial_get_diffuse_mode #-}\n\n-- | The algorithm used for diffuse light scattering. See @enum DiffuseMode@.\nbindSpatialMaterial_get_diffuse_mode :: MethodBind\nbindSpatialMaterial_get_diffuse_mode\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_diffuse_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The algorithm used for diffuse light scattering. See @enum DiffuseMode@.\nget_diffuse_mode ::\n                   (SpatialMaterial :< cls, Object :< cls) => cls -> IO Int\nget_diffuse_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_diffuse_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_diffuse_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_diffuse_mode\n\n{-# NOINLINE bindSpatialMaterial_get_distance_fade #-}\n\n-- | Specifies which type of fade to use. Can be any of the @enum DistanceFadeMode@s.\nbindSpatialMaterial_get_distance_fade :: MethodBind\nbindSpatialMaterial_get_distance_fade\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_distance_fade\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies which type of fade to use. Can be any of the @enum DistanceFadeMode@s.\nget_distance_fade ::\n                    (SpatialMaterial :< cls, Object :< cls) => cls -> IO Int\nget_distance_fade cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_distance_fade\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_distance_fade\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_distance_fade\n\n{-# NOINLINE bindSpatialMaterial_get_distance_fade_max_distance #-}\n\n-- | Distance at which the object fades fully and is no longer visible.\nbindSpatialMaterial_get_distance_fade_max_distance :: MethodBind\nbindSpatialMaterial_get_distance_fade_max_distance\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_distance_fade_max_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Distance at which the object fades fully and is no longer visible.\nget_distance_fade_max_distance ::\n                                 (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_distance_fade_max_distance cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_get_distance_fade_max_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"get_distance_fade_max_distance\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.get_distance_fade_max_distance\n\n{-# NOINLINE bindSpatialMaterial_get_distance_fade_min_distance #-}\n\n-- | Distance at which the object starts to fade. If the object is less than this distance away it will appear normal.\nbindSpatialMaterial_get_distance_fade_min_distance :: MethodBind\nbindSpatialMaterial_get_distance_fade_min_distance\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_distance_fade_min_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Distance at which the object starts to fade. If the object is less than this distance away it will appear normal.\nget_distance_fade_min_distance ::\n                                 (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_distance_fade_min_distance cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_get_distance_fade_min_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"get_distance_fade_min_distance\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.get_distance_fade_min_distance\n\n{-# NOINLINE bindSpatialMaterial_get_emission #-}\n\n-- | The emitted light's color. See @emission_enabled@.\nbindSpatialMaterial_get_emission :: MethodBind\nbindSpatialMaterial_get_emission\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The emitted light's color. See @emission_enabled@.\nget_emission ::\n               (SpatialMaterial :< cls, Object :< cls) => cls -> IO Color\nget_emission cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_emission\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_emission\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_emission\n\n{-# NOINLINE bindSpatialMaterial_get_emission_energy #-}\n\n-- | The emitted light's strength. See @emission_enabled@.\nbindSpatialMaterial_get_emission_energy :: MethodBind\nbindSpatialMaterial_get_emission_energy\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The emitted light's strength. See @emission_enabled@.\nget_emission_energy ::\n                      (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_emission_energy cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_emission_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_emission_energy\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_emission_energy\n\n{-# NOINLINE bindSpatialMaterial_get_emission_operator #-}\n\n-- | Sets how @emission@ interacts with @emission_texture@. Can either add or multiply. See @enum EmissionOperator@ for options.\nbindSpatialMaterial_get_emission_operator :: MethodBind\nbindSpatialMaterial_get_emission_operator\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_emission_operator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets how @emission@ interacts with @emission_texture@. Can either add or multiply. See @enum EmissionOperator@ for options.\nget_emission_operator ::\n                        (SpatialMaterial :< cls, Object :< cls) => cls -> IO Int\nget_emission_operator cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_emission_operator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_emission_operator\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_emission_operator\n\n{-# NOINLINE bindSpatialMaterial_get_feature #-}\n\n-- | Returns @true@, if the specified @enum Feature@ is enabled.\nbindSpatialMaterial_get_feature :: MethodBind\nbindSpatialMaterial_get_feature\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_feature\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@, if the specified @enum Feature@ is enabled.\nget_feature ::\n              (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_feature cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_feature (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_feature\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_feature\n\n{-# NOINLINE bindSpatialMaterial_get_flag #-}\n\n-- | Returns @true@, if the specified flag is enabled. See @enum Flags@ enumerator for options.\nbindSpatialMaterial_get_flag :: MethodBind\nbindSpatialMaterial_get_flag\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@, if the specified flag is enabled. See @enum Flags@ enumerator for options.\nget_flag ::\n           (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_flag cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_flag (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_flag\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_flag\n\n{-# NOINLINE bindSpatialMaterial_get_grow #-}\n\n-- | Grows object vertices in the direction of their normals.\nbindSpatialMaterial_get_grow :: MethodBind\nbindSpatialMaterial_get_grow\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_grow\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Grows object vertices in the direction of their normals.\nget_grow ::\n           (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_grow cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_grow (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_grow\" '[] (IO Float) where\n        nodeMethod = Godot.Core.SpatialMaterial.get_grow\n\n{-# NOINLINE bindSpatialMaterial_get_line_width #-}\n\n-- | Currently unimplemented in Godot.\nbindSpatialMaterial_get_line_width :: MethodBind\nbindSpatialMaterial_get_line_width\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_line_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Currently unimplemented in Godot.\nget_line_width ::\n                 (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_line_width cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_line_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_line_width\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_line_width\n\n{-# NOINLINE bindSpatialMaterial_get_metallic #-}\n\n-- | A high value makes the material appear more like a metal. Non-metals use their albedo as the diffuse color and add diffuse to the specular reflection. With non-metals, the reflection appears on top of the albedo color. Metals use their albedo as a multiplier to the specular reflection and set the diffuse color to black resulting in a tinted reflection. Materials work better when fully metal or fully non-metal, values between @0@ and @1@ should only be used for blending between metal and non-metal sections. To alter the amount of reflection use @roughness@.\nbindSpatialMaterial_get_metallic :: MethodBind\nbindSpatialMaterial_get_metallic\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_metallic\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A high value makes the material appear more like a metal. Non-metals use their albedo as the diffuse color and add diffuse to the specular reflection. With non-metals, the reflection appears on top of the albedo color. Metals use their albedo as a multiplier to the specular reflection and set the diffuse color to black resulting in a tinted reflection. Materials work better when fully metal or fully non-metal, values between @0@ and @1@ should only be used for blending between metal and non-metal sections. To alter the amount of reflection use @roughness@.\nget_metallic ::\n               (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_metallic cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_metallic\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_metallic\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_metallic\n\n{-# NOINLINE bindSpatialMaterial_get_metallic_texture_channel #-}\n\n-- | Specifies the channel of the @metallic_texture@ in which the metallic information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use.\nbindSpatialMaterial_get_metallic_texture_channel :: MethodBind\nbindSpatialMaterial_get_metallic_texture_channel\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_metallic_texture_channel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies the channel of the @metallic_texture@ in which the metallic information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use.\nget_metallic_texture_channel ::\n                               (SpatialMaterial :< cls, Object :< cls) => cls -> IO Int\nget_metallic_texture_channel cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_get_metallic_texture_channel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_metallic_texture_channel\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.get_metallic_texture_channel\n\n{-# NOINLINE bindSpatialMaterial_get_normal_scale #-}\n\n-- | The strength of the normal map's effect.\nbindSpatialMaterial_get_normal_scale :: MethodBind\nbindSpatialMaterial_get_normal_scale\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_normal_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The strength of the normal map's effect.\nget_normal_scale ::\n                   (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_normal_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_normal_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_normal_scale\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_normal_scale\n\n{-# NOINLINE bindSpatialMaterial_get_particles_anim_h_frames #-}\n\n-- | The number of horizontal frames in the particle sprite sheet. Only enabled when using @BILLBOARD_PARTICLES@. See @params_billboard_mode@.\nbindSpatialMaterial_get_particles_anim_h_frames :: MethodBind\nbindSpatialMaterial_get_particles_anim_h_frames\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_particles_anim_h_frames\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of horizontal frames in the particle sprite sheet. Only enabled when using @BILLBOARD_PARTICLES@. See @params_billboard_mode@.\nget_particles_anim_h_frames ::\n                              (SpatialMaterial :< cls, Object :< cls) => cls -> IO Int\nget_particles_anim_h_frames cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_get_particles_anim_h_frames\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_particles_anim_h_frames\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_particles_anim_h_frames\n\n{-# NOINLINE bindSpatialMaterial_get_particles_anim_loop #-}\n\n-- | If @true@, particle animations are looped. Only enabled when using @BILLBOARD_PARTICLES@. See @params_billboard_mode@.\nbindSpatialMaterial_get_particles_anim_loop :: MethodBind\nbindSpatialMaterial_get_particles_anim_loop\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_particles_anim_loop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particle animations are looped. Only enabled when using @BILLBOARD_PARTICLES@. See @params_billboard_mode@.\nget_particles_anim_loop ::\n                          (SpatialMaterial :< cls, Object :< cls) => cls -> IO Bool\nget_particles_anim_loop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_particles_anim_loop\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_particles_anim_loop\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_particles_anim_loop\n\n{-# NOINLINE bindSpatialMaterial_get_particles_anim_v_frames #-}\n\n-- | The number of vertical frames in the particle sprite sheet. Only enabled when using @BILLBOARD_PARTICLES@. See @params_billboard_mode@.\nbindSpatialMaterial_get_particles_anim_v_frames :: MethodBind\nbindSpatialMaterial_get_particles_anim_v_frames\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_particles_anim_v_frames\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of vertical frames in the particle sprite sheet. Only enabled when using @BILLBOARD_PARTICLES@. See @params_billboard_mode@.\nget_particles_anim_v_frames ::\n                              (SpatialMaterial :< cls, Object :< cls) => cls -> IO Int\nget_particles_anim_v_frames cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_get_particles_anim_v_frames\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_particles_anim_v_frames\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_particles_anim_v_frames\n\n{-# NOINLINE bindSpatialMaterial_get_point_size #-}\n\n-- | The point size in pixels. See @flags_use_point_size@.\nbindSpatialMaterial_get_point_size :: MethodBind\nbindSpatialMaterial_get_point_size\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_point_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The point size in pixels. See @flags_use_point_size@.\nget_point_size ::\n                 (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_point_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_point_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_point_size\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_point_size\n\n{-# NOINLINE bindSpatialMaterial_get_proximity_fade_distance #-}\n\n-- | Distance over which the fade effect takes place. The larger the distance the longer it takes for an object to fade.\nbindSpatialMaterial_get_proximity_fade_distance :: MethodBind\nbindSpatialMaterial_get_proximity_fade_distance\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_proximity_fade_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Distance over which the fade effect takes place. The larger the distance the longer it takes for an object to fade.\nget_proximity_fade_distance ::\n                              (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_proximity_fade_distance cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_get_proximity_fade_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_proximity_fade_distance\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_proximity_fade_distance\n\n{-# NOINLINE bindSpatialMaterial_get_refraction #-}\n\n-- | The strength of the refraction effect.\nbindSpatialMaterial_get_refraction :: MethodBind\nbindSpatialMaterial_get_refraction\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_refraction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The strength of the refraction effect.\nget_refraction ::\n                 (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_refraction cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_refraction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_refraction\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_refraction\n\n{-# NOINLINE bindSpatialMaterial_get_refraction_texture_channel #-}\n\n-- | Specifies the channel of the @ao_texture@ in which the ambient occlusion information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use.\nbindSpatialMaterial_get_refraction_texture_channel :: MethodBind\nbindSpatialMaterial_get_refraction_texture_channel\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_refraction_texture_channel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies the channel of the @ao_texture@ in which the ambient occlusion information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use.\nget_refraction_texture_channel ::\n                                 (SpatialMaterial :< cls, Object :< cls) => cls -> IO Int\nget_refraction_texture_channel cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_get_refraction_texture_channel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"get_refraction_texture_channel\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.get_refraction_texture_channel\n\n{-# NOINLINE bindSpatialMaterial_get_rim #-}\n\n-- | Sets the strength of the rim lighting effect.\nbindSpatialMaterial_get_rim :: MethodBind\nbindSpatialMaterial_get_rim\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_rim\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the strength of the rim lighting effect.\nget_rim ::\n          (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_rim cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_rim (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_rim\" '[] (IO Float) where\n        nodeMethod = Godot.Core.SpatialMaterial.get_rim\n\n{-# NOINLINE bindSpatialMaterial_get_rim_tint #-}\n\n-- | The amount of to blend light and albedo color when rendering rim effect. If @0@ the light color is used, while @1@ means albedo color is used. An intermediate value generally works best.\nbindSpatialMaterial_get_rim_tint :: MethodBind\nbindSpatialMaterial_get_rim_tint\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_rim_tint\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount of to blend light and albedo color when rendering rim effect. If @0@ the light color is used, while @1@ means albedo color is used. An intermediate value generally works best.\nget_rim_tint ::\n               (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_rim_tint cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_rim_tint\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_rim_tint\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_rim_tint\n\n{-# NOINLINE bindSpatialMaterial_get_roughness #-}\n\n-- | Surface reflection. A value of @0@ represents a perfect mirror while a value of @1@ completely blurs the reflection. See also @metallic@.\nbindSpatialMaterial_get_roughness :: MethodBind\nbindSpatialMaterial_get_roughness\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_roughness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Surface reflection. A value of @0@ represents a perfect mirror while a value of @1@ completely blurs the reflection. See also @metallic@.\nget_roughness ::\n                (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_roughness cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_roughness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_roughness\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_roughness\n\n{-# NOINLINE bindSpatialMaterial_get_roughness_texture_channel #-}\n\n-- | Specifies the channel of the @ao_texture@ in which the ambient occlusion information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use.\nbindSpatialMaterial_get_roughness_texture_channel :: MethodBind\nbindSpatialMaterial_get_roughness_texture_channel\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_roughness_texture_channel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies the channel of the @ao_texture@ in which the ambient occlusion information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use.\nget_roughness_texture_channel ::\n                                (SpatialMaterial :< cls, Object :< cls) => cls -> IO Int\nget_roughness_texture_channel cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_get_roughness_texture_channel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_roughness_texture_channel\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.get_roughness_texture_channel\n\n{-# NOINLINE bindSpatialMaterial_get_specular #-}\n\n-- | Sets the size of the specular lobe. The specular lobe is the bright spot that is reflected from light sources.\n--   \t\t\t__Note:__ unlike @metallic@, this is not energy-conserving, so it should be left at @0.5@ in most cases. See also @roughness@.\nbindSpatialMaterial_get_specular :: MethodBind\nbindSpatialMaterial_get_specular\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_specular\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the size of the specular lobe. The specular lobe is the bright spot that is reflected from light sources.\n--   \t\t\t__Note:__ unlike @metallic@, this is not energy-conserving, so it should be left at @0.5@ in most cases. See also @roughness@.\nget_specular ::\n               (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_specular cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_specular\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_specular\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_specular\n\n{-# NOINLINE bindSpatialMaterial_get_specular_mode #-}\n\n-- | The method for rendering the specular blob. See @enum SpecularMode@.\nbindSpatialMaterial_get_specular_mode :: MethodBind\nbindSpatialMaterial_get_specular_mode\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_specular_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The method for rendering the specular blob. See @enum SpecularMode@.\nget_specular_mode ::\n                    (SpatialMaterial :< cls, Object :< cls) => cls -> IO Int\nget_specular_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_specular_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_specular_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_specular_mode\n\n{-# NOINLINE bindSpatialMaterial_get_subsurface_scattering_strength\n             #-}\n\n-- | The strength of the subsurface scattering effect.\nbindSpatialMaterial_get_subsurface_scattering_strength ::\n                                                       MethodBind\nbindSpatialMaterial_get_subsurface_scattering_strength\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_subsurface_scattering_strength\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The strength of the subsurface scattering effect.\nget_subsurface_scattering_strength ::\n                                     (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_subsurface_scattering_strength cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_get_subsurface_scattering_strength\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"get_subsurface_scattering_strength\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.get_subsurface_scattering_strength\n\n{-# NOINLINE bindSpatialMaterial_get_texture #-}\n\n-- | Returns the @Texture@ associated with the specified @enum TextureParam@.\nbindSpatialMaterial_get_texture :: MethodBind\nbindSpatialMaterial_get_texture\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Texture@ associated with the specified @enum TextureParam@.\nget_texture ::\n              (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO Texture\nget_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_texture\" '[Int]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_texture\n\n{-# NOINLINE bindSpatialMaterial_get_transmission #-}\n\n-- | The color used by the transmission effect. Represents the light passing through an object.\nbindSpatialMaterial_get_transmission :: MethodBind\nbindSpatialMaterial_get_transmission\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_transmission\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The color used by the transmission effect. Represents the light passing through an object.\nget_transmission ::\n                   (SpatialMaterial :< cls, Object :< cls) => cls -> IO Color\nget_transmission cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_transmission\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_transmission\" '[]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_transmission\n\n{-# NOINLINE bindSpatialMaterial_get_uv1_offset #-}\n\n-- | How much to offset the @UV@ coordinates. This amount will be added to @UV@ in the vertex function. This can be used to offset a texture.\nbindSpatialMaterial_get_uv1_offset :: MethodBind\nbindSpatialMaterial_get_uv1_offset\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_uv1_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How much to offset the @UV@ coordinates. This amount will be added to @UV@ in the vertex function. This can be used to offset a texture.\nget_uv1_offset ::\n                 (SpatialMaterial :< cls, Object :< cls) => cls -> IO Vector3\nget_uv1_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_uv1_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_uv1_offset\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_uv1_offset\n\n{-# NOINLINE bindSpatialMaterial_get_uv1_scale #-}\n\n-- | How much to scale the @UV@ coordinates. This is multiplied by @UV@ in the vertex function.\nbindSpatialMaterial_get_uv1_scale :: MethodBind\nbindSpatialMaterial_get_uv1_scale\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_uv1_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How much to scale the @UV@ coordinates. This is multiplied by @UV@ in the vertex function.\nget_uv1_scale ::\n                (SpatialMaterial :< cls, Object :< cls) => cls -> IO Vector3\nget_uv1_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_uv1_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_uv1_scale\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_uv1_scale\n\n{-# NOINLINE bindSpatialMaterial_get_uv1_triplanar_blend_sharpness\n             #-}\n\n-- | A lower number blends the texture more softly while a higher number blends the texture more sharply.\nbindSpatialMaterial_get_uv1_triplanar_blend_sharpness :: MethodBind\nbindSpatialMaterial_get_uv1_triplanar_blend_sharpness\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_uv1_triplanar_blend_sharpness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A lower number blends the texture more softly while a higher number blends the texture more sharply.\nget_uv1_triplanar_blend_sharpness ::\n                                    (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_uv1_triplanar_blend_sharpness cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_get_uv1_triplanar_blend_sharpness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"get_uv1_triplanar_blend_sharpness\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.get_uv1_triplanar_blend_sharpness\n\n{-# NOINLINE bindSpatialMaterial_get_uv2_offset #-}\n\n-- | How much to offset the @UV2@ coordinates. This amount will be added to @UV2@ in the vertex function. This can be used to offset a texture.\nbindSpatialMaterial_get_uv2_offset :: MethodBind\nbindSpatialMaterial_get_uv2_offset\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_uv2_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How much to offset the @UV2@ coordinates. This amount will be added to @UV2@ in the vertex function. This can be used to offset a texture.\nget_uv2_offset ::\n                 (SpatialMaterial :< cls, Object :< cls) => cls -> IO Vector3\nget_uv2_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_uv2_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_uv2_offset\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_uv2_offset\n\n{-# NOINLINE bindSpatialMaterial_get_uv2_scale #-}\n\n-- | How much to scale the @UV2@ coordinates. This is multiplied by @UV2@ in the vertex function.\nbindSpatialMaterial_get_uv2_scale :: MethodBind\nbindSpatialMaterial_get_uv2_scale\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_uv2_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How much to scale the @UV2@ coordinates. This is multiplied by @UV2@ in the vertex function.\nget_uv2_scale ::\n                (SpatialMaterial :< cls, Object :< cls) => cls -> IO Vector3\nget_uv2_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_get_uv2_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"get_uv2_scale\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.get_uv2_scale\n\n{-# NOINLINE bindSpatialMaterial_get_uv2_triplanar_blend_sharpness\n             #-}\n\n-- | A lower number blends the texture more softly while a higher number blends the texture more sharply.\nbindSpatialMaterial_get_uv2_triplanar_blend_sharpness :: MethodBind\nbindSpatialMaterial_get_uv2_triplanar_blend_sharpness\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"get_uv2_triplanar_blend_sharpness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A lower number blends the texture more softly while a higher number blends the texture more sharply.\nget_uv2_triplanar_blend_sharpness ::\n                                    (SpatialMaterial :< cls, Object :< cls) => cls -> IO Float\nget_uv2_triplanar_blend_sharpness cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_get_uv2_triplanar_blend_sharpness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"get_uv2_triplanar_blend_sharpness\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.get_uv2_triplanar_blend_sharpness\n\n{-# NOINLINE bindSpatialMaterial_is_depth_deep_parallax_enabled #-}\n\n-- | If @true@, the shader will read depth texture at multiple points along the view ray to determine occlusion and parrallax. This can be very performance demanding, but results in more realistic looking depth mapping.\nbindSpatialMaterial_is_depth_deep_parallax_enabled :: MethodBind\nbindSpatialMaterial_is_depth_deep_parallax_enabled\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"is_depth_deep_parallax_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the shader will read depth texture at multiple points along the view ray to determine occlusion and parrallax. This can be very performance demanding, but results in more realistic looking depth mapping.\nis_depth_deep_parallax_enabled ::\n                                 (SpatialMaterial :< cls, Object :< cls) => cls -> IO Bool\nis_depth_deep_parallax_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_is_depth_deep_parallax_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"is_depth_deep_parallax_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.is_depth_deep_parallax_enabled\n\n{-# NOINLINE bindSpatialMaterial_is_grow_enabled #-}\n\n-- | If @true@, enables the vertex grow setting. See @params_grow_amount@.\nbindSpatialMaterial_is_grow_enabled :: MethodBind\nbindSpatialMaterial_is_grow_enabled\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"is_grow_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables the vertex grow setting. See @params_grow_amount@.\nis_grow_enabled ::\n                  (SpatialMaterial :< cls, Object :< cls) => cls -> IO Bool\nis_grow_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_is_grow_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"is_grow_enabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.is_grow_enabled\n\n{-# NOINLINE bindSpatialMaterial_is_proximity_fade_enabled #-}\n\n-- | If @true@, the proximity fade effect is enabled. The proximity fade effect fades out each pixel based on its distance to another object.\nbindSpatialMaterial_is_proximity_fade_enabled :: MethodBind\nbindSpatialMaterial_is_proximity_fade_enabled\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"is_proximity_fade_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the proximity fade effect is enabled. The proximity fade effect fades out each pixel based on its distance to another object.\nis_proximity_fade_enabled ::\n                            (SpatialMaterial :< cls, Object :< cls) => cls -> IO Bool\nis_proximity_fade_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_is_proximity_fade_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"is_proximity_fade_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.is_proximity_fade_enabled\n\n{-# NOINLINE bindSpatialMaterial_set_albedo #-}\n\n-- | The material's base color.\nbindSpatialMaterial_set_albedo :: MethodBind\nbindSpatialMaterial_set_albedo\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_albedo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The material's base color.\nset_albedo ::\n             (SpatialMaterial :< cls, Object :< cls) => cls -> Color -> IO ()\nset_albedo cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_albedo (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_albedo\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_albedo\n\n{-# NOINLINE bindSpatialMaterial_set_alpha_scissor_threshold #-}\n\n-- | Threshold at which the alpha scissor will discard values.\nbindSpatialMaterial_set_alpha_scissor_threshold :: MethodBind\nbindSpatialMaterial_set_alpha_scissor_threshold\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_alpha_scissor_threshold\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Threshold at which the alpha scissor will discard values.\nset_alpha_scissor_threshold ::\n                              (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_alpha_scissor_threshold cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_set_alpha_scissor_threshold\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_alpha_scissor_threshold\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_alpha_scissor_threshold\n\n{-# NOINLINE bindSpatialMaterial_set_anisotropy #-}\n\n-- | The strength of the anisotropy effect.\nbindSpatialMaterial_set_anisotropy :: MethodBind\nbindSpatialMaterial_set_anisotropy\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_anisotropy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The strength of the anisotropy effect.\nset_anisotropy ::\n                 (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_anisotropy cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_anisotropy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_anisotropy\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_anisotropy\n\n{-# NOINLINE bindSpatialMaterial_set_ao_light_affect #-}\n\n-- | Amount that ambient occlusion affects lighting from lights. If @0@, ambient occlusion only affects ambient light. If @1@, ambient occlusion affects lights just as much as it affects ambient light. This can be used to impact the strength of the ambient occlusion effect, but typically looks unrealistic.\nbindSpatialMaterial_set_ao_light_affect :: MethodBind\nbindSpatialMaterial_set_ao_light_affect\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_ao_light_affect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount that ambient occlusion affects lighting from lights. If @0@, ambient occlusion only affects ambient light. If @1@, ambient occlusion affects lights just as much as it affects ambient light. This can be used to impact the strength of the ambient occlusion effect, but typically looks unrealistic.\nset_ao_light_affect ::\n                      (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_ao_light_affect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_ao_light_affect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_ao_light_affect\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_ao_light_affect\n\n{-# NOINLINE bindSpatialMaterial_set_ao_texture_channel #-}\n\n-- | Specifies the channel of the @ao_texture@ in which the ambient occlusion information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use.\nbindSpatialMaterial_set_ao_texture_channel :: MethodBind\nbindSpatialMaterial_set_ao_texture_channel\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_ao_texture_channel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies the channel of the @ao_texture@ in which the ambient occlusion information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use.\nset_ao_texture_channel ::\n                         (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_ao_texture_channel cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_ao_texture_channel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_ao_texture_channel\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_ao_texture_channel\n\n{-# NOINLINE bindSpatialMaterial_set_billboard_mode #-}\n\n-- | Controls how the object faces the camera. See @enum BillboardMode@.\nbindSpatialMaterial_set_billboard_mode :: MethodBind\nbindSpatialMaterial_set_billboard_mode\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_billboard_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls how the object faces the camera. See @enum BillboardMode@.\nset_billboard_mode ::\n                     (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_billboard_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_billboard_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_billboard_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_billboard_mode\n\n{-# NOINLINE bindSpatialMaterial_set_blend_mode #-}\n\n-- | The material's blend mode.\n--   \t\t\t__Note:__ Values other than @Mix@ force the object into the transparent pipeline. See @enum BlendMode@.\nbindSpatialMaterial_set_blend_mode :: MethodBind\nbindSpatialMaterial_set_blend_mode\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_blend_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The material's blend mode.\n--   \t\t\t__Note:__ Values other than @Mix@ force the object into the transparent pipeline. See @enum BlendMode@.\nset_blend_mode ::\n                 (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_blend_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_blend_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_blend_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_blend_mode\n\n{-# NOINLINE bindSpatialMaterial_set_clearcoat #-}\n\n-- | Sets the strength of the clearcoat effect. Setting to @0@ looks the same as disabling the clearcoat effect.\nbindSpatialMaterial_set_clearcoat :: MethodBind\nbindSpatialMaterial_set_clearcoat\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_clearcoat\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the strength of the clearcoat effect. Setting to @0@ looks the same as disabling the clearcoat effect.\nset_clearcoat ::\n                (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_clearcoat cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_clearcoat\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_clearcoat\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_clearcoat\n\n{-# NOINLINE bindSpatialMaterial_set_clearcoat_gloss #-}\n\n-- | Sets the roughness of the clearcoat pass. A higher value results in a smoother clearcoat while a lower value results in a rougher clearcoat.\nbindSpatialMaterial_set_clearcoat_gloss :: MethodBind\nbindSpatialMaterial_set_clearcoat_gloss\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_clearcoat_gloss\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the roughness of the clearcoat pass. A higher value results in a smoother clearcoat while a lower value results in a rougher clearcoat.\nset_clearcoat_gloss ::\n                      (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_clearcoat_gloss cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_clearcoat_gloss\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_clearcoat_gloss\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_clearcoat_gloss\n\n{-# NOINLINE bindSpatialMaterial_set_cull_mode #-}\n\n-- | Which side of the object is not drawn when backfaces are rendered. See @enum CullMode@.\nbindSpatialMaterial_set_cull_mode :: MethodBind\nbindSpatialMaterial_set_cull_mode\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_cull_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Which side of the object is not drawn when backfaces are rendered. See @enum CullMode@.\nset_cull_mode ::\n                (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_cull_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_cull_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_cull_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_cull_mode\n\n{-# NOINLINE bindSpatialMaterial_set_depth_deep_parallax #-}\n\n-- | If @true@, the shader will read depth texture at multiple points along the view ray to determine occlusion and parrallax. This can be very performance demanding, but results in more realistic looking depth mapping.\nbindSpatialMaterial_set_depth_deep_parallax :: MethodBind\nbindSpatialMaterial_set_depth_deep_parallax\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_depth_deep_parallax\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the shader will read depth texture at multiple points along the view ray to determine occlusion and parrallax. This can be very performance demanding, but results in more realistic looking depth mapping.\nset_depth_deep_parallax ::\n                          (SpatialMaterial :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_depth_deep_parallax cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_depth_deep_parallax\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_depth_deep_parallax\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_depth_deep_parallax\n\n{-# NOINLINE bindSpatialMaterial_set_depth_deep_parallax_flip_binormal\n             #-}\n\n-- | If @true@, direction of the binormal is flipped before using in the depth effect. This may be necessary if you have encoded your binormals in a way that is conflicting with the depth effect.\nbindSpatialMaterial_set_depth_deep_parallax_flip_binormal ::\n                                                          MethodBind\nbindSpatialMaterial_set_depth_deep_parallax_flip_binormal\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_depth_deep_parallax_flip_binormal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, direction of the binormal is flipped before using in the depth effect. This may be necessary if you have encoded your binormals in a way that is conflicting with the depth effect.\nset_depth_deep_parallax_flip_binormal ::\n                                        (SpatialMaterial :< cls, Object :< cls) =>\n                                        cls -> Bool -> IO ()\nset_depth_deep_parallax_flip_binormal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_set_depth_deep_parallax_flip_binormal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"set_depth_deep_parallax_flip_binormal\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.set_depth_deep_parallax_flip_binormal\n\n{-# NOINLINE bindSpatialMaterial_set_depth_deep_parallax_flip_tangent\n             #-}\n\n-- | If @true@, direction of the tangent is flipped before using in the depth effect. This may be necessary if you have encoded your tangents in a way that is conflicting with the depth effect.\nbindSpatialMaterial_set_depth_deep_parallax_flip_tangent ::\n                                                         MethodBind\nbindSpatialMaterial_set_depth_deep_parallax_flip_tangent\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_depth_deep_parallax_flip_tangent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, direction of the tangent is flipped before using in the depth effect. This may be necessary if you have encoded your tangents in a way that is conflicting with the depth effect.\nset_depth_deep_parallax_flip_tangent ::\n                                       (SpatialMaterial :< cls, Object :< cls) =>\n                                       cls -> Bool -> IO ()\nset_depth_deep_parallax_flip_tangent cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_set_depth_deep_parallax_flip_tangent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"set_depth_deep_parallax_flip_tangent\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.set_depth_deep_parallax_flip_tangent\n\n{-# NOINLINE bindSpatialMaterial_set_depth_deep_parallax_max_layers\n             #-}\n\n-- | Number of layers to use when using @depth_deep_parallax@ and the view direction is perpendicular to the surface of the object. A higher number will be more performance demanding while a lower number may not look as crisp.\nbindSpatialMaterial_set_depth_deep_parallax_max_layers ::\n                                                       MethodBind\nbindSpatialMaterial_set_depth_deep_parallax_max_layers\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_depth_deep_parallax_max_layers\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of layers to use when using @depth_deep_parallax@ and the view direction is perpendicular to the surface of the object. A higher number will be more performance demanding while a lower number may not look as crisp.\nset_depth_deep_parallax_max_layers ::\n                                     (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_depth_deep_parallax_max_layers cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_set_depth_deep_parallax_max_layers\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"set_depth_deep_parallax_max_layers\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.set_depth_deep_parallax_max_layers\n\n{-# NOINLINE bindSpatialMaterial_set_depth_deep_parallax_min_layers\n             #-}\n\n-- | Number of layers to use when using @depth_deep_parallax@ and the view direction is parallel to the surface of the object. A higher number will be more performance demanding while a lower number may not look as crisp.\nbindSpatialMaterial_set_depth_deep_parallax_min_layers ::\n                                                       MethodBind\nbindSpatialMaterial_set_depth_deep_parallax_min_layers\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_depth_deep_parallax_min_layers\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of layers to use when using @depth_deep_parallax@ and the view direction is parallel to the surface of the object. A higher number will be more performance demanding while a lower number may not look as crisp.\nset_depth_deep_parallax_min_layers ::\n                                     (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_depth_deep_parallax_min_layers cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_set_depth_deep_parallax_min_layers\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"set_depth_deep_parallax_min_layers\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.set_depth_deep_parallax_min_layers\n\n{-# NOINLINE bindSpatialMaterial_set_depth_draw_mode #-}\n\n-- | Determines when depth rendering takes place. See @enum DepthDrawMode@. See also @flags_transparent@.\nbindSpatialMaterial_set_depth_draw_mode :: MethodBind\nbindSpatialMaterial_set_depth_draw_mode\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_depth_draw_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Determines when depth rendering takes place. See @enum DepthDrawMode@. See also @flags_transparent@.\nset_depth_draw_mode ::\n                      (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_depth_draw_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_depth_draw_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_depth_draw_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_depth_draw_mode\n\n{-# NOINLINE bindSpatialMaterial_set_depth_scale #-}\n\n-- | Scales the depth offset effect. A higher number will create a larger depth.\nbindSpatialMaterial_set_depth_scale :: MethodBind\nbindSpatialMaterial_set_depth_scale\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_depth_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Scales the depth offset effect. A higher number will create a larger depth.\nset_depth_scale ::\n                  (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_depth_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_depth_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_depth_scale\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_depth_scale\n\n{-# NOINLINE bindSpatialMaterial_set_detail_blend_mode #-}\n\n-- | Specifies how the @detail_albedo@ should blend with the current @ALBEDO@. See @enum BlendMode@ for options.\nbindSpatialMaterial_set_detail_blend_mode :: MethodBind\nbindSpatialMaterial_set_detail_blend_mode\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_detail_blend_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies how the @detail_albedo@ should blend with the current @ALBEDO@. See @enum BlendMode@ for options.\nset_detail_blend_mode ::\n                        (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_detail_blend_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_detail_blend_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_detail_blend_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_detail_blend_mode\n\n{-# NOINLINE bindSpatialMaterial_set_detail_uv #-}\n\n-- | Specifies whether to use @UV@ or @UV2@ for the detail layer. See @enum DetailUV@ for options.\nbindSpatialMaterial_set_detail_uv :: MethodBind\nbindSpatialMaterial_set_detail_uv\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_detail_uv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies whether to use @UV@ or @UV2@ for the detail layer. See @enum DetailUV@ for options.\nset_detail_uv ::\n                (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_detail_uv cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_detail_uv\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_detail_uv\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_detail_uv\n\n{-# NOINLINE bindSpatialMaterial_set_diffuse_mode #-}\n\n-- | The algorithm used for diffuse light scattering. See @enum DiffuseMode@.\nbindSpatialMaterial_set_diffuse_mode :: MethodBind\nbindSpatialMaterial_set_diffuse_mode\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_diffuse_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The algorithm used for diffuse light scattering. See @enum DiffuseMode@.\nset_diffuse_mode ::\n                   (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_diffuse_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_diffuse_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_diffuse_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_diffuse_mode\n\n{-# NOINLINE bindSpatialMaterial_set_distance_fade #-}\n\n-- | Specifies which type of fade to use. Can be any of the @enum DistanceFadeMode@s.\nbindSpatialMaterial_set_distance_fade :: MethodBind\nbindSpatialMaterial_set_distance_fade\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_distance_fade\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies which type of fade to use. Can be any of the @enum DistanceFadeMode@s.\nset_distance_fade ::\n                    (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_distance_fade cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_distance_fade\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_distance_fade\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_distance_fade\n\n{-# NOINLINE bindSpatialMaterial_set_distance_fade_max_distance #-}\n\n-- | Distance at which the object fades fully and is no longer visible.\nbindSpatialMaterial_set_distance_fade_max_distance :: MethodBind\nbindSpatialMaterial_set_distance_fade_max_distance\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_distance_fade_max_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Distance at which the object fades fully and is no longer visible.\nset_distance_fade_max_distance ::\n                                 (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_distance_fade_max_distance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_set_distance_fade_max_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"set_distance_fade_max_distance\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.set_distance_fade_max_distance\n\n{-# NOINLINE bindSpatialMaterial_set_distance_fade_min_distance #-}\n\n-- | Distance at which the object starts to fade. If the object is less than this distance away it will appear normal.\nbindSpatialMaterial_set_distance_fade_min_distance :: MethodBind\nbindSpatialMaterial_set_distance_fade_min_distance\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_distance_fade_min_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Distance at which the object starts to fade. If the object is less than this distance away it will appear normal.\nset_distance_fade_min_distance ::\n                                 (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_distance_fade_min_distance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_set_distance_fade_min_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"set_distance_fade_min_distance\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.set_distance_fade_min_distance\n\n{-# NOINLINE bindSpatialMaterial_set_emission #-}\n\n-- | The emitted light's color. See @emission_enabled@.\nbindSpatialMaterial_set_emission :: MethodBind\nbindSpatialMaterial_set_emission\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The emitted light's color. See @emission_enabled@.\nset_emission ::\n               (SpatialMaterial :< cls, Object :< cls) => cls -> Color -> IO ()\nset_emission cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_emission\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_emission\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_emission\n\n{-# NOINLINE bindSpatialMaterial_set_emission_energy #-}\n\n-- | The emitted light's strength. See @emission_enabled@.\nbindSpatialMaterial_set_emission_energy :: MethodBind\nbindSpatialMaterial_set_emission_energy\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The emitted light's strength. See @emission_enabled@.\nset_emission_energy ::\n                      (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_emission_energy cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_emission_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_emission_energy\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_emission_energy\n\n{-# NOINLINE bindSpatialMaterial_set_emission_operator #-}\n\n-- | Sets how @emission@ interacts with @emission_texture@. Can either add or multiply. See @enum EmissionOperator@ for options.\nbindSpatialMaterial_set_emission_operator :: MethodBind\nbindSpatialMaterial_set_emission_operator\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_emission_operator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets how @emission@ interacts with @emission_texture@. Can either add or multiply. See @enum EmissionOperator@ for options.\nset_emission_operator ::\n                        (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_emission_operator cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_emission_operator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_emission_operator\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_emission_operator\n\n{-# NOINLINE bindSpatialMaterial_set_feature #-}\n\n-- | If @true@, enables the specified @enum Feature@. Many features that are available in @SpatialMaterial@s need to be enabled before use. This way the cost for using the feature is only incurred when specified. Features can also be enabled by setting the corresponding member to @true@.\nbindSpatialMaterial_set_feature :: MethodBind\nbindSpatialMaterial_set_feature\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_feature\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables the specified @enum Feature@. Many features that are available in @SpatialMaterial@s need to be enabled before use. This way the cost for using the feature is only incurred when specified. Features can also be enabled by setting the corresponding member to @true@.\nset_feature ::\n              (SpatialMaterial :< cls, Object :< cls) =>\n              cls -> Int -> Bool -> IO ()\nset_feature cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_feature (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_feature\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_feature\n\n{-# NOINLINE bindSpatialMaterial_set_flag #-}\n\n-- | If @true@, enables the specified flag. Flags are optional behaviour that can be turned on and off. Only one flag can be enabled at a time with this function, the flag enumerators cannot be bit-masked together to enable or disable multiple flags at once. Flags can also be enabled by setting the corresponding member to @true@. See @enum Flags@ enumerator for options.\nbindSpatialMaterial_set_flag :: MethodBind\nbindSpatialMaterial_set_flag\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables the specified flag. Flags are optional behaviour that can be turned on and off. Only one flag can be enabled at a time with this function, the flag enumerators cannot be bit-masked together to enable or disable multiple flags at once. Flags can also be enabled by setting the corresponding member to @true@. See @enum Flags@ enumerator for options.\nset_flag ::\n           (SpatialMaterial :< cls, Object :< cls) =>\n           cls -> Int -> Bool -> IO ()\nset_flag cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_flag (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_flag\" '[Int, Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_flag\n\n{-# NOINLINE bindSpatialMaterial_set_grow #-}\n\n-- | Grows object vertices in the direction of their normals.\nbindSpatialMaterial_set_grow :: MethodBind\nbindSpatialMaterial_set_grow\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_grow\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Grows object vertices in the direction of their normals.\nset_grow ::\n           (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_grow cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_grow (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_grow\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_grow\n\n{-# NOINLINE bindSpatialMaterial_set_grow_enabled #-}\n\n-- | If @true@, enables the vertex grow setting. See @params_grow_amount@.\nbindSpatialMaterial_set_grow_enabled :: MethodBind\nbindSpatialMaterial_set_grow_enabled\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_grow_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables the vertex grow setting. See @params_grow_amount@.\nset_grow_enabled ::\n                   (SpatialMaterial :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_grow_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_grow_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_grow_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_grow_enabled\n\n{-# NOINLINE bindSpatialMaterial_set_line_width #-}\n\n-- | Currently unimplemented in Godot.\nbindSpatialMaterial_set_line_width :: MethodBind\nbindSpatialMaterial_set_line_width\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_line_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Currently unimplemented in Godot.\nset_line_width ::\n                 (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_line_width cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_line_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_line_width\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_line_width\n\n{-# NOINLINE bindSpatialMaterial_set_metallic #-}\n\n-- | A high value makes the material appear more like a metal. Non-metals use their albedo as the diffuse color and add diffuse to the specular reflection. With non-metals, the reflection appears on top of the albedo color. Metals use their albedo as a multiplier to the specular reflection and set the diffuse color to black resulting in a tinted reflection. Materials work better when fully metal or fully non-metal, values between @0@ and @1@ should only be used for blending between metal and non-metal sections. To alter the amount of reflection use @roughness@.\nbindSpatialMaterial_set_metallic :: MethodBind\nbindSpatialMaterial_set_metallic\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_metallic\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A high value makes the material appear more like a metal. Non-metals use their albedo as the diffuse color and add diffuse to the specular reflection. With non-metals, the reflection appears on top of the albedo color. Metals use their albedo as a multiplier to the specular reflection and set the diffuse color to black resulting in a tinted reflection. Materials work better when fully metal or fully non-metal, values between @0@ and @1@ should only be used for blending between metal and non-metal sections. To alter the amount of reflection use @roughness@.\nset_metallic ::\n               (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_metallic cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_metallic\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_metallic\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_metallic\n\n{-# NOINLINE bindSpatialMaterial_set_metallic_texture_channel #-}\n\n-- | Specifies the channel of the @metallic_texture@ in which the metallic information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use.\nbindSpatialMaterial_set_metallic_texture_channel :: MethodBind\nbindSpatialMaterial_set_metallic_texture_channel\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_metallic_texture_channel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies the channel of the @metallic_texture@ in which the metallic information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use.\nset_metallic_texture_channel ::\n                               (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_metallic_texture_channel cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_set_metallic_texture_channel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_metallic_texture_channel\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.set_metallic_texture_channel\n\n{-# NOINLINE bindSpatialMaterial_set_normal_scale #-}\n\n-- | The strength of the normal map's effect.\nbindSpatialMaterial_set_normal_scale :: MethodBind\nbindSpatialMaterial_set_normal_scale\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_normal_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The strength of the normal map's effect.\nset_normal_scale ::\n                   (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_normal_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_normal_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_normal_scale\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_normal_scale\n\n{-# NOINLINE bindSpatialMaterial_set_particles_anim_h_frames #-}\n\n-- | The number of horizontal frames in the particle sprite sheet. Only enabled when using @BILLBOARD_PARTICLES@. See @params_billboard_mode@.\nbindSpatialMaterial_set_particles_anim_h_frames :: MethodBind\nbindSpatialMaterial_set_particles_anim_h_frames\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_particles_anim_h_frames\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of horizontal frames in the particle sprite sheet. Only enabled when using @BILLBOARD_PARTICLES@. See @params_billboard_mode@.\nset_particles_anim_h_frames ::\n                              (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_particles_anim_h_frames cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_set_particles_anim_h_frames\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_particles_anim_h_frames\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_particles_anim_h_frames\n\n{-# NOINLINE bindSpatialMaterial_set_particles_anim_loop #-}\n\n-- | If @true@, particle animations are looped. Only enabled when using @BILLBOARD_PARTICLES@. See @params_billboard_mode@.\nbindSpatialMaterial_set_particles_anim_loop :: MethodBind\nbindSpatialMaterial_set_particles_anim_loop\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_particles_anim_loop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particle animations are looped. Only enabled when using @BILLBOARD_PARTICLES@. See @params_billboard_mode@.\nset_particles_anim_loop ::\n                          (SpatialMaterial :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_particles_anim_loop cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_particles_anim_loop\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_particles_anim_loop\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_particles_anim_loop\n\n{-# NOINLINE bindSpatialMaterial_set_particles_anim_v_frames #-}\n\n-- | The number of vertical frames in the particle sprite sheet. Only enabled when using @BILLBOARD_PARTICLES@. See @params_billboard_mode@.\nbindSpatialMaterial_set_particles_anim_v_frames :: MethodBind\nbindSpatialMaterial_set_particles_anim_v_frames\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_particles_anim_v_frames\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of vertical frames in the particle sprite sheet. Only enabled when using @BILLBOARD_PARTICLES@. See @params_billboard_mode@.\nset_particles_anim_v_frames ::\n                              (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_particles_anim_v_frames cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_set_particles_anim_v_frames\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_particles_anim_v_frames\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_particles_anim_v_frames\n\n{-# NOINLINE bindSpatialMaterial_set_point_size #-}\n\n-- | The point size in pixels. See @flags_use_point_size@.\nbindSpatialMaterial_set_point_size :: MethodBind\nbindSpatialMaterial_set_point_size\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_point_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The point size in pixels. See @flags_use_point_size@.\nset_point_size ::\n                 (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_point_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_point_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_point_size\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_point_size\n\n{-# NOINLINE bindSpatialMaterial_set_proximity_fade #-}\n\n-- | If @true@, the proximity fade effect is enabled. The proximity fade effect fades out each pixel based on its distance to another object.\nbindSpatialMaterial_set_proximity_fade :: MethodBind\nbindSpatialMaterial_set_proximity_fade\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_proximity_fade\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the proximity fade effect is enabled. The proximity fade effect fades out each pixel based on its distance to another object.\nset_proximity_fade ::\n                     (SpatialMaterial :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_proximity_fade cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_proximity_fade\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_proximity_fade\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_proximity_fade\n\n{-# NOINLINE bindSpatialMaterial_set_proximity_fade_distance #-}\n\n-- | Distance over which the fade effect takes place. The larger the distance the longer it takes for an object to fade.\nbindSpatialMaterial_set_proximity_fade_distance :: MethodBind\nbindSpatialMaterial_set_proximity_fade_distance\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_proximity_fade_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Distance over which the fade effect takes place. The larger the distance the longer it takes for an object to fade.\nset_proximity_fade_distance ::\n                              (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_proximity_fade_distance cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_set_proximity_fade_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_proximity_fade_distance\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_proximity_fade_distance\n\n{-# NOINLINE bindSpatialMaterial_set_refraction #-}\n\n-- | The strength of the refraction effect.\nbindSpatialMaterial_set_refraction :: MethodBind\nbindSpatialMaterial_set_refraction\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_refraction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The strength of the refraction effect.\nset_refraction ::\n                 (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_refraction cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_refraction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_refraction\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_refraction\n\n{-# NOINLINE bindSpatialMaterial_set_refraction_texture_channel #-}\n\n-- | Specifies the channel of the @ao_texture@ in which the ambient occlusion information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use.\nbindSpatialMaterial_set_refraction_texture_channel :: MethodBind\nbindSpatialMaterial_set_refraction_texture_channel\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_refraction_texture_channel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies the channel of the @ao_texture@ in which the ambient occlusion information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use.\nset_refraction_texture_channel ::\n                                 (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_refraction_texture_channel cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_set_refraction_texture_channel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"set_refraction_texture_channel\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.set_refraction_texture_channel\n\n{-# NOINLINE bindSpatialMaterial_set_rim #-}\n\n-- | Sets the strength of the rim lighting effect.\nbindSpatialMaterial_set_rim :: MethodBind\nbindSpatialMaterial_set_rim\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_rim\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the strength of the rim lighting effect.\nset_rim ::\n          (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_rim cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_rim (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_rim\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_rim\n\n{-# NOINLINE bindSpatialMaterial_set_rim_tint #-}\n\n-- | The amount of to blend light and albedo color when rendering rim effect. If @0@ the light color is used, while @1@ means albedo color is used. An intermediate value generally works best.\nbindSpatialMaterial_set_rim_tint :: MethodBind\nbindSpatialMaterial_set_rim_tint\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_rim_tint\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The amount of to blend light and albedo color when rendering rim effect. If @0@ the light color is used, while @1@ means albedo color is used. An intermediate value generally works best.\nset_rim_tint ::\n               (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_rim_tint cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_rim_tint\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_rim_tint\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_rim_tint\n\n{-# NOINLINE bindSpatialMaterial_set_roughness #-}\n\n-- | Surface reflection. A value of @0@ represents a perfect mirror while a value of @1@ completely blurs the reflection. See also @metallic@.\nbindSpatialMaterial_set_roughness :: MethodBind\nbindSpatialMaterial_set_roughness\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_roughness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Surface reflection. A value of @0@ represents a perfect mirror while a value of @1@ completely blurs the reflection. See also @metallic@.\nset_roughness ::\n                (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_roughness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_roughness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_roughness\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_roughness\n\n{-# NOINLINE bindSpatialMaterial_set_roughness_texture_channel #-}\n\n-- | Specifies the channel of the @ao_texture@ in which the ambient occlusion information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use.\nbindSpatialMaterial_set_roughness_texture_channel :: MethodBind\nbindSpatialMaterial_set_roughness_texture_channel\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_roughness_texture_channel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies the channel of the @ao_texture@ in which the ambient occlusion information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use.\nset_roughness_texture_channel ::\n                                (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_roughness_texture_channel cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_set_roughness_texture_channel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_roughness_texture_channel\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.set_roughness_texture_channel\n\n{-# NOINLINE bindSpatialMaterial_set_specular #-}\n\n-- | Sets the size of the specular lobe. The specular lobe is the bright spot that is reflected from light sources.\n--   \t\t\t__Note:__ unlike @metallic@, this is not energy-conserving, so it should be left at @0.5@ in most cases. See also @roughness@.\nbindSpatialMaterial_set_specular :: MethodBind\nbindSpatialMaterial_set_specular\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_specular\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the size of the specular lobe. The specular lobe is the bright spot that is reflected from light sources.\n--   \t\t\t__Note:__ unlike @metallic@, this is not energy-conserving, so it should be left at @0.5@ in most cases. See also @roughness@.\nset_specular ::\n               (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_specular cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_specular\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_specular\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_specular\n\n{-# NOINLINE bindSpatialMaterial_set_specular_mode #-}\n\n-- | The method for rendering the specular blob. See @enum SpecularMode@.\nbindSpatialMaterial_set_specular_mode :: MethodBind\nbindSpatialMaterial_set_specular_mode\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_specular_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The method for rendering the specular blob. See @enum SpecularMode@.\nset_specular_mode ::\n                    (SpatialMaterial :< cls, Object :< cls) => cls -> Int -> IO ()\nset_specular_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_specular_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_specular_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_specular_mode\n\n{-# NOINLINE bindSpatialMaterial_set_subsurface_scattering_strength\n             #-}\n\n-- | The strength of the subsurface scattering effect.\nbindSpatialMaterial_set_subsurface_scattering_strength ::\n                                                       MethodBind\nbindSpatialMaterial_set_subsurface_scattering_strength\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_subsurface_scattering_strength\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The strength of the subsurface scattering effect.\nset_subsurface_scattering_strength ::\n                                     (SpatialMaterial :< cls, Object :< cls) =>\n                                     cls -> Float -> IO ()\nset_subsurface_scattering_strength cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_set_subsurface_scattering_strength\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"set_subsurface_scattering_strength\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.set_subsurface_scattering_strength\n\n{-# NOINLINE bindSpatialMaterial_set_texture #-}\n\n-- | Sets the @Texture@ to be used by the specified @enum TextureParam@. This function is called when setting members ending in @*_texture@.\nbindSpatialMaterial_set_texture :: MethodBind\nbindSpatialMaterial_set_texture\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Texture@ to be used by the specified @enum TextureParam@. This function is called when setting members ending in @*_texture@.\nset_texture ::\n              (SpatialMaterial :< cls, Object :< cls) =>\n              cls -> Int -> Texture -> IO ()\nset_texture cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_texture\" '[Int, Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_texture\n\n{-# NOINLINE bindSpatialMaterial_set_transmission #-}\n\n-- | The color used by the transmission effect. Represents the light passing through an object.\nbindSpatialMaterial_set_transmission :: MethodBind\nbindSpatialMaterial_set_transmission\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_transmission\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The color used by the transmission effect. Represents the light passing through an object.\nset_transmission ::\n                   (SpatialMaterial :< cls, Object :< cls) => cls -> Color -> IO ()\nset_transmission cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_transmission\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_transmission\" '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_transmission\n\n{-# NOINLINE bindSpatialMaterial_set_uv1_offset #-}\n\n-- | How much to offset the @UV@ coordinates. This amount will be added to @UV@ in the vertex function. This can be used to offset a texture.\nbindSpatialMaterial_set_uv1_offset :: MethodBind\nbindSpatialMaterial_set_uv1_offset\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_uv1_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How much to offset the @UV@ coordinates. This amount will be added to @UV@ in the vertex function. This can be used to offset a texture.\nset_uv1_offset ::\n                 (SpatialMaterial :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_uv1_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_uv1_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_uv1_offset\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_uv1_offset\n\n{-# NOINLINE bindSpatialMaterial_set_uv1_scale #-}\n\n-- | How much to scale the @UV@ coordinates. This is multiplied by @UV@ in the vertex function.\nbindSpatialMaterial_set_uv1_scale :: MethodBind\nbindSpatialMaterial_set_uv1_scale\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_uv1_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How much to scale the @UV@ coordinates. This is multiplied by @UV@ in the vertex function.\nset_uv1_scale ::\n                (SpatialMaterial :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_uv1_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_uv1_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_uv1_scale\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_uv1_scale\n\n{-# NOINLINE bindSpatialMaterial_set_uv1_triplanar_blend_sharpness\n             #-}\n\n-- | A lower number blends the texture more softly while a higher number blends the texture more sharply.\nbindSpatialMaterial_set_uv1_triplanar_blend_sharpness :: MethodBind\nbindSpatialMaterial_set_uv1_triplanar_blend_sharpness\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_uv1_triplanar_blend_sharpness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A lower number blends the texture more softly while a higher number blends the texture more sharply.\nset_uv1_triplanar_blend_sharpness ::\n                                    (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_uv1_triplanar_blend_sharpness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_set_uv1_triplanar_blend_sharpness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"set_uv1_triplanar_blend_sharpness\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.set_uv1_triplanar_blend_sharpness\n\n{-# NOINLINE bindSpatialMaterial_set_uv2_offset #-}\n\n-- | How much to offset the @UV2@ coordinates. This amount will be added to @UV2@ in the vertex function. This can be used to offset a texture.\nbindSpatialMaterial_set_uv2_offset :: MethodBind\nbindSpatialMaterial_set_uv2_offset\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_uv2_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How much to offset the @UV2@ coordinates. This amount will be added to @UV2@ in the vertex function. This can be used to offset a texture.\nset_uv2_offset ::\n                 (SpatialMaterial :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_uv2_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_uv2_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_uv2_offset\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_uv2_offset\n\n{-# NOINLINE bindSpatialMaterial_set_uv2_scale #-}\n\n-- | How much to scale the @UV2@ coordinates. This is multiplied by @UV2@ in the vertex function.\nbindSpatialMaterial_set_uv2_scale :: MethodBind\nbindSpatialMaterial_set_uv2_scale\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_uv2_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | How much to scale the @UV2@ coordinates. This is multiplied by @UV2@ in the vertex function.\nset_uv2_scale ::\n                (SpatialMaterial :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_uv2_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialMaterial_set_uv2_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial \"set_uv2_scale\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialMaterial.set_uv2_scale\n\n{-# NOINLINE bindSpatialMaterial_set_uv2_triplanar_blend_sharpness\n             #-}\n\n-- | A lower number blends the texture more softly while a higher number blends the texture more sharply.\nbindSpatialMaterial_set_uv2_triplanar_blend_sharpness :: MethodBind\nbindSpatialMaterial_set_uv2_triplanar_blend_sharpness\n  = unsafePerformIO $\n      withCString \"SpatialMaterial\" $\n        \\ clsNamePtr ->\n          withCString \"set_uv2_triplanar_blend_sharpness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A lower number blends the texture more softly while a higher number blends the texture more sharply.\nset_uv2_triplanar_blend_sharpness ::\n                                    (SpatialMaterial :< cls, Object :< cls) => cls -> Float -> IO ()\nset_uv2_triplanar_blend_sharpness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialMaterial_set_uv2_triplanar_blend_sharpness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialMaterial\n           \"set_uv2_triplanar_blend_sharpness\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.SpatialMaterial.set_uv2_triplanar_blend_sharpness"
  },
  {
    "path": "src/Godot/Core/SpatialVelocityTracker.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SpatialVelocityTracker\n       (Godot.Core.SpatialVelocityTracker.get_tracked_linear_velocity,\n        Godot.Core.SpatialVelocityTracker.is_tracking_physics_step,\n        Godot.Core.SpatialVelocityTracker.reset,\n        Godot.Core.SpatialVelocityTracker.set_track_physics_step,\n        Godot.Core.SpatialVelocityTracker.update_position)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\ninstance NodeProperty SpatialVelocityTracker \"track_physics_step\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (is_tracking_physics_step,\n             wrapDroppingSetter set_track_physics_step, Nothing)\n\n{-# NOINLINE bindSpatialVelocityTracker_get_tracked_linear_velocity\n             #-}\n\nbindSpatialVelocityTracker_get_tracked_linear_velocity ::\n                                                       MethodBind\nbindSpatialVelocityTracker_get_tracked_linear_velocity\n  = unsafePerformIO $\n      withCString \"SpatialVelocityTracker\" $\n        \\ clsNamePtr ->\n          withCString \"get_tracked_linear_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_tracked_linear_velocity ::\n                              (SpatialVelocityTracker :< cls, Object :< cls) => cls -> IO Vector3\nget_tracked_linear_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialVelocityTracker_get_tracked_linear_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialVelocityTracker\n           \"get_tracked_linear_velocity\"\n           '[]\n           (IO Vector3)\n         where\n        nodeMethod\n          = Godot.Core.SpatialVelocityTracker.get_tracked_linear_velocity\n\n{-# NOINLINE bindSpatialVelocityTracker_is_tracking_physics_step\n             #-}\n\nbindSpatialVelocityTracker_is_tracking_physics_step :: MethodBind\nbindSpatialVelocityTracker_is_tracking_physics_step\n  = unsafePerformIO $\n      withCString \"SpatialVelocityTracker\" $\n        \\ clsNamePtr ->\n          withCString \"is_tracking_physics_step\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_tracking_physics_step ::\n                           (SpatialVelocityTracker :< cls, Object :< cls) => cls -> IO Bool\nis_tracking_physics_step cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialVelocityTracker_is_tracking_physics_step\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialVelocityTracker\n           \"is_tracking_physics_step\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.SpatialVelocityTracker.is_tracking_physics_step\n\n{-# NOINLINE bindSpatialVelocityTracker_reset #-}\n\nbindSpatialVelocityTracker_reset :: MethodBind\nbindSpatialVelocityTracker_reset\n  = unsafePerformIO $\n      withCString \"SpatialVelocityTracker\" $\n        \\ clsNamePtr ->\n          withCString \"reset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nreset ::\n        (SpatialVelocityTracker :< cls, Object :< cls) =>\n        cls -> Vector3 -> IO ()\nreset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialVelocityTracker_reset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialVelocityTracker \"reset\" '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialVelocityTracker.reset\n\n{-# NOINLINE bindSpatialVelocityTracker_set_track_physics_step #-}\n\nbindSpatialVelocityTracker_set_track_physics_step :: MethodBind\nbindSpatialVelocityTracker_set_track_physics_step\n  = unsafePerformIO $\n      withCString \"SpatialVelocityTracker\" $\n        \\ clsNamePtr ->\n          withCString \"set_track_physics_step\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_track_physics_step ::\n                         (SpatialVelocityTracker :< cls, Object :< cls) =>\n                         cls -> Bool -> IO ()\nset_track_physics_step cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindSpatialVelocityTracker_set_track_physics_step\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialVelocityTracker \"set_track_physics_step\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.SpatialVelocityTracker.set_track_physics_step\n\n{-# NOINLINE bindSpatialVelocityTracker_update_position #-}\n\nbindSpatialVelocityTracker_update_position :: MethodBind\nbindSpatialVelocityTracker_update_position\n  = unsafePerformIO $\n      withCString \"SpatialVelocityTracker\" $\n        \\ clsNamePtr ->\n          withCString \"update_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nupdate_position ::\n                  (SpatialVelocityTracker :< cls, Object :< cls) =>\n                  cls -> Vector3 -> IO ()\nupdate_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpatialVelocityTracker_update_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpatialVelocityTracker \"update_position\"\n           '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpatialVelocityTracker.update_position"
  },
  {
    "path": "src/Godot/Core/SphereMesh.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SphereMesh\n       (Godot.Core.SphereMesh.get_height,\n        Godot.Core.SphereMesh.get_is_hemisphere,\n        Godot.Core.SphereMesh.get_radial_segments,\n        Godot.Core.SphereMesh.get_radius, Godot.Core.SphereMesh.get_rings,\n        Godot.Core.SphereMesh.set_height,\n        Godot.Core.SphereMesh.set_is_hemisphere,\n        Godot.Core.SphereMesh.set_radial_segments,\n        Godot.Core.SphereMesh.set_radius, Godot.Core.SphereMesh.set_rings)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PrimitiveMesh()\n\ninstance NodeProperty SphereMesh \"height\" Float 'False where\n        nodeProperty = (get_height, wrapDroppingSetter set_height, Nothing)\n\ninstance NodeProperty SphereMesh \"is_hemisphere\" Bool 'False where\n        nodeProperty\n          = (get_is_hemisphere, wrapDroppingSetter set_is_hemisphere,\n             Nothing)\n\ninstance NodeProperty SphereMesh \"radial_segments\" Int 'False where\n        nodeProperty\n          = (get_radial_segments, wrapDroppingSetter set_radial_segments,\n             Nothing)\n\ninstance NodeProperty SphereMesh \"radius\" Float 'False where\n        nodeProperty = (get_radius, wrapDroppingSetter set_radius, Nothing)\n\ninstance NodeProperty SphereMesh \"rings\" Int 'False where\n        nodeProperty = (get_rings, wrapDroppingSetter set_rings, Nothing)\n\n{-# NOINLINE bindSphereMesh_get_height #-}\n\n-- | Full height of the sphere.\nbindSphereMesh_get_height :: MethodBind\nbindSphereMesh_get_height\n  = unsafePerformIO $\n      withCString \"SphereMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Full height of the sphere.\nget_height :: (SphereMesh :< cls, Object :< cls) => cls -> IO Float\nget_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSphereMesh_get_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SphereMesh \"get_height\" '[] (IO Float) where\n        nodeMethod = Godot.Core.SphereMesh.get_height\n\n{-# NOINLINE bindSphereMesh_get_is_hemisphere #-}\n\n-- | If @true@, a hemisphere is created rather than a full sphere.\n--   \t\t\t__Note:__ To get a regular hemisphere, the height and radius of the sphere must be equal.\nbindSphereMesh_get_is_hemisphere :: MethodBind\nbindSphereMesh_get_is_hemisphere\n  = unsafePerformIO $\n      withCString \"SphereMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_is_hemisphere\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, a hemisphere is created rather than a full sphere.\n--   \t\t\t__Note:__ To get a regular hemisphere, the height and radius of the sphere must be equal.\nget_is_hemisphere ::\n                    (SphereMesh :< cls, Object :< cls) => cls -> IO Bool\nget_is_hemisphere cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSphereMesh_get_is_hemisphere\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SphereMesh \"get_is_hemisphere\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.SphereMesh.get_is_hemisphere\n\n{-# NOINLINE bindSphereMesh_get_radial_segments #-}\n\n-- | Number of radial segments on the sphere.\nbindSphereMesh_get_radial_segments :: MethodBind\nbindSphereMesh_get_radial_segments\n  = unsafePerformIO $\n      withCString \"SphereMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_radial_segments\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of radial segments on the sphere.\nget_radial_segments ::\n                      (SphereMesh :< cls, Object :< cls) => cls -> IO Int\nget_radial_segments cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSphereMesh_get_radial_segments\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SphereMesh \"get_radial_segments\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.SphereMesh.get_radial_segments\n\n{-# NOINLINE bindSphereMesh_get_radius #-}\n\n-- | Radius of sphere.\nbindSphereMesh_get_radius :: MethodBind\nbindSphereMesh_get_radius\n  = unsafePerformIO $\n      withCString \"SphereMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Radius of sphere.\nget_radius :: (SphereMesh :< cls, Object :< cls) => cls -> IO Float\nget_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSphereMesh_get_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SphereMesh \"get_radius\" '[] (IO Float) where\n        nodeMethod = Godot.Core.SphereMesh.get_radius\n\n{-# NOINLINE bindSphereMesh_get_rings #-}\n\n-- | Number of segments along the height of the sphere.\nbindSphereMesh_get_rings :: MethodBind\nbindSphereMesh_get_rings\n  = unsafePerformIO $\n      withCString \"SphereMesh\" $\n        \\ clsNamePtr ->\n          withCString \"get_rings\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of segments along the height of the sphere.\nget_rings :: (SphereMesh :< cls, Object :< cls) => cls -> IO Int\nget_rings cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSphereMesh_get_rings (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SphereMesh \"get_rings\" '[] (IO Int) where\n        nodeMethod = Godot.Core.SphereMesh.get_rings\n\n{-# NOINLINE bindSphereMesh_set_height #-}\n\n-- | Full height of the sphere.\nbindSphereMesh_set_height :: MethodBind\nbindSphereMesh_set_height\n  = unsafePerformIO $\n      withCString \"SphereMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Full height of the sphere.\nset_height ::\n             (SphereMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSphereMesh_set_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SphereMesh \"set_height\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.SphereMesh.set_height\n\n{-# NOINLINE bindSphereMesh_set_is_hemisphere #-}\n\n-- | If @true@, a hemisphere is created rather than a full sphere.\n--   \t\t\t__Note:__ To get a regular hemisphere, the height and radius of the sphere must be equal.\nbindSphereMesh_set_is_hemisphere :: MethodBind\nbindSphereMesh_set_is_hemisphere\n  = unsafePerformIO $\n      withCString \"SphereMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_is_hemisphere\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, a hemisphere is created rather than a full sphere.\n--   \t\t\t__Note:__ To get a regular hemisphere, the height and radius of the sphere must be equal.\nset_is_hemisphere ::\n                    (SphereMesh :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_is_hemisphere cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSphereMesh_set_is_hemisphere\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SphereMesh \"set_is_hemisphere\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.SphereMesh.set_is_hemisphere\n\n{-# NOINLINE bindSphereMesh_set_radial_segments #-}\n\n-- | Number of radial segments on the sphere.\nbindSphereMesh_set_radial_segments :: MethodBind\nbindSphereMesh_set_radial_segments\n  = unsafePerformIO $\n      withCString \"SphereMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_radial_segments\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of radial segments on the sphere.\nset_radial_segments ::\n                      (SphereMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_radial_segments cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSphereMesh_set_radial_segments\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SphereMesh \"set_radial_segments\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.SphereMesh.set_radial_segments\n\n{-# NOINLINE bindSphereMesh_set_radius #-}\n\n-- | Radius of sphere.\nbindSphereMesh_set_radius :: MethodBind\nbindSphereMesh_set_radius\n  = unsafePerformIO $\n      withCString \"SphereMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Radius of sphere.\nset_radius ::\n             (SphereMesh :< cls, Object :< cls) => cls -> Float -> IO ()\nset_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSphereMesh_set_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SphereMesh \"set_radius\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.SphereMesh.set_radius\n\n{-# NOINLINE bindSphereMesh_set_rings #-}\n\n-- | Number of segments along the height of the sphere.\nbindSphereMesh_set_rings :: MethodBind\nbindSphereMesh_set_rings\n  = unsafePerformIO $\n      withCString \"SphereMesh\" $\n        \\ clsNamePtr ->\n          withCString \"set_rings\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Number of segments along the height of the sphere.\nset_rings ::\n            (SphereMesh :< cls, Object :< cls) => cls -> Int -> IO ()\nset_rings cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSphereMesh_set_rings (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SphereMesh \"set_rings\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.SphereMesh.set_rings"
  },
  {
    "path": "src/Godot/Core/SphereShape.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SphereShape\n       (Godot.Core.SphereShape.get_radius,\n        Godot.Core.SphereShape.set_radius)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Shape()\n\ninstance NodeProperty SphereShape \"radius\" Float 'False where\n        nodeProperty = (get_radius, wrapDroppingSetter set_radius, Nothing)\n\n{-# NOINLINE bindSphereShape_get_radius #-}\n\n-- | The sphere's radius. The shape's diameter is double the radius.\nbindSphereShape_get_radius :: MethodBind\nbindSphereShape_get_radius\n  = unsafePerformIO $\n      withCString \"SphereShape\" $\n        \\ clsNamePtr ->\n          withCString \"get_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The sphere's radius. The shape's diameter is double the radius.\nget_radius ::\n             (SphereShape :< cls, Object :< cls) => cls -> IO Float\nget_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSphereShape_get_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SphereShape \"get_radius\" '[] (IO Float) where\n        nodeMethod = Godot.Core.SphereShape.get_radius\n\n{-# NOINLINE bindSphereShape_set_radius #-}\n\n-- | The sphere's radius. The shape's diameter is double the radius.\nbindSphereShape_set_radius :: MethodBind\nbindSphereShape_set_radius\n  = unsafePerformIO $\n      withCString \"SphereShape\" $\n        \\ clsNamePtr ->\n          withCString \"set_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The sphere's radius. The shape's diameter is double the radius.\nset_radius ::\n             (SphereShape :< cls, Object :< cls) => cls -> Float -> IO ()\nset_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSphereShape_set_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SphereShape \"set_radius\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.SphereShape.set_radius"
  },
  {
    "path": "src/Godot/Core/SpinBox.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SpinBox\n       (Godot.Core.SpinBox._gui_input,\n        Godot.Core.SpinBox._line_edit_focus_exit,\n        Godot.Core.SpinBox._line_edit_input,\n        Godot.Core.SpinBox._range_click_timeout,\n        Godot.Core.SpinBox._text_entered, Godot.Core.SpinBox.apply,\n        Godot.Core.SpinBox.get_align, Godot.Core.SpinBox.get_line_edit,\n        Godot.Core.SpinBox.get_prefix, Godot.Core.SpinBox.get_suffix,\n        Godot.Core.SpinBox.is_editable, Godot.Core.SpinBox.set_align,\n        Godot.Core.SpinBox.set_editable, Godot.Core.SpinBox.set_prefix,\n        Godot.Core.SpinBox.set_suffix)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Range()\n\ninstance NodeProperty SpinBox \"align\" Int 'False where\n        nodeProperty = (get_align, wrapDroppingSetter set_align, Nothing)\n\ninstance NodeProperty SpinBox \"editable\" Bool 'False where\n        nodeProperty\n          = (is_editable, wrapDroppingSetter set_editable, Nothing)\n\ninstance NodeProperty SpinBox \"prefix\" GodotString 'False where\n        nodeProperty = (get_prefix, wrapDroppingSetter set_prefix, Nothing)\n\ninstance NodeProperty SpinBox \"suffix\" GodotString 'False where\n        nodeProperty = (get_suffix, wrapDroppingSetter set_suffix, Nothing)\n\n{-# NOINLINE bindSpinBox__gui_input #-}\n\nbindSpinBox__gui_input :: MethodBind\nbindSpinBox__gui_input\n  = unsafePerformIO $\n      withCString \"SpinBox\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (SpinBox :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpinBox__gui_input (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpinBox \"_gui_input\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.SpinBox._gui_input\n\n{-# NOINLINE bindSpinBox__line_edit_focus_exit #-}\n\nbindSpinBox__line_edit_focus_exit :: MethodBind\nbindSpinBox__line_edit_focus_exit\n  = unsafePerformIO $\n      withCString \"SpinBox\" $\n        \\ clsNamePtr ->\n          withCString \"_line_edit_focus_exit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_line_edit_focus_exit ::\n                        (SpinBox :< cls, Object :< cls) => cls -> IO ()\n_line_edit_focus_exit cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpinBox__line_edit_focus_exit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpinBox \"_line_edit_focus_exit\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.SpinBox._line_edit_focus_exit\n\n{-# NOINLINE bindSpinBox__line_edit_input #-}\n\nbindSpinBox__line_edit_input :: MethodBind\nbindSpinBox__line_edit_input\n  = unsafePerformIO $\n      withCString \"SpinBox\" $\n        \\ clsNamePtr ->\n          withCString \"_line_edit_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_line_edit_input ::\n                   (SpinBox :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_line_edit_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpinBox__line_edit_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpinBox \"_line_edit_input\" '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpinBox._line_edit_input\n\n{-# NOINLINE bindSpinBox__range_click_timeout #-}\n\nbindSpinBox__range_click_timeout :: MethodBind\nbindSpinBox__range_click_timeout\n  = unsafePerformIO $\n      withCString \"SpinBox\" $\n        \\ clsNamePtr ->\n          withCString \"_range_click_timeout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_range_click_timeout ::\n                       (SpinBox :< cls, Object :< cls) => cls -> IO ()\n_range_click_timeout cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpinBox__range_click_timeout\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpinBox \"_range_click_timeout\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.SpinBox._range_click_timeout\n\n{-# NOINLINE bindSpinBox__text_entered #-}\n\nbindSpinBox__text_entered :: MethodBind\nbindSpinBox__text_entered\n  = unsafePerformIO $\n      withCString \"SpinBox\" $\n        \\ clsNamePtr ->\n          withCString \"_text_entered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_text_entered ::\n                (SpinBox :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_text_entered cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpinBox__text_entered (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpinBox \"_text_entered\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.SpinBox._text_entered\n\n{-# NOINLINE bindSpinBox_apply #-}\n\n-- | Applies the current value of this @SpinBox@.\nbindSpinBox_apply :: MethodBind\nbindSpinBox_apply\n  = unsafePerformIO $\n      withCString \"SpinBox\" $\n        \\ clsNamePtr ->\n          withCString \"apply\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies the current value of this @SpinBox@.\napply :: (SpinBox :< cls, Object :< cls) => cls -> IO ()\napply cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpinBox_apply (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpinBox \"apply\" '[] (IO ()) where\n        nodeMethod = Godot.Core.SpinBox.apply\n\n{-# NOINLINE bindSpinBox_get_align #-}\n\n-- | Sets the text alignment of the @SpinBox@.\nbindSpinBox_get_align :: MethodBind\nbindSpinBox_get_align\n  = unsafePerformIO $\n      withCString \"SpinBox\" $\n        \\ clsNamePtr ->\n          withCString \"get_align\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the text alignment of the @SpinBox@.\nget_align :: (SpinBox :< cls, Object :< cls) => cls -> IO Int\nget_align cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpinBox_get_align (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpinBox \"get_align\" '[] (IO Int) where\n        nodeMethod = Godot.Core.SpinBox.get_align\n\n{-# NOINLINE bindSpinBox_get_line_edit #-}\n\n-- | Returns the @LineEdit@ instance from this @SpinBox@. You can use it to access properties and methods of @LineEdit@.\nbindSpinBox_get_line_edit :: MethodBind\nbindSpinBox_get_line_edit\n  = unsafePerformIO $\n      withCString \"SpinBox\" $\n        \\ clsNamePtr ->\n          withCString \"get_line_edit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @LineEdit@ instance from this @SpinBox@. You can use it to access properties and methods of @LineEdit@.\nget_line_edit ::\n                (SpinBox :< cls, Object :< cls) => cls -> IO LineEdit\nget_line_edit cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpinBox_get_line_edit (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpinBox \"get_line_edit\" '[] (IO LineEdit) where\n        nodeMethod = Godot.Core.SpinBox.get_line_edit\n\n{-# NOINLINE bindSpinBox_get_prefix #-}\n\n-- | Adds the specified @prefix@ string before the numerical value of the @SpinBox@.\nbindSpinBox_get_prefix :: MethodBind\nbindSpinBox_get_prefix\n  = unsafePerformIO $\n      withCString \"SpinBox\" $\n        \\ clsNamePtr ->\n          withCString \"get_prefix\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds the specified @prefix@ string before the numerical value of the @SpinBox@.\nget_prefix ::\n             (SpinBox :< cls, Object :< cls) => cls -> IO GodotString\nget_prefix cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpinBox_get_prefix (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpinBox \"get_prefix\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.SpinBox.get_prefix\n\n{-# NOINLINE bindSpinBox_get_suffix #-}\n\n-- | Adds the specified @suffix@ string after the numerical value of the @SpinBox@.\nbindSpinBox_get_suffix :: MethodBind\nbindSpinBox_get_suffix\n  = unsafePerformIO $\n      withCString \"SpinBox\" $\n        \\ clsNamePtr ->\n          withCString \"get_suffix\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds the specified @suffix@ string after the numerical value of the @SpinBox@.\nget_suffix ::\n             (SpinBox :< cls, Object :< cls) => cls -> IO GodotString\nget_suffix cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpinBox_get_suffix (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpinBox \"get_suffix\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.SpinBox.get_suffix\n\n{-# NOINLINE bindSpinBox_is_editable #-}\n\n-- | If @true@, the @SpinBox@ will be editable. Otherwise, it will be read only.\nbindSpinBox_is_editable :: MethodBind\nbindSpinBox_is_editable\n  = unsafePerformIO $\n      withCString \"SpinBox\" $\n        \\ clsNamePtr ->\n          withCString \"is_editable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @SpinBox@ will be editable. Otherwise, it will be read only.\nis_editable :: (SpinBox :< cls, Object :< cls) => cls -> IO Bool\nis_editable cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpinBox_is_editable (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpinBox \"is_editable\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.SpinBox.is_editable\n\n{-# NOINLINE bindSpinBox_set_align #-}\n\n-- | Sets the text alignment of the @SpinBox@.\nbindSpinBox_set_align :: MethodBind\nbindSpinBox_set_align\n  = unsafePerformIO $\n      withCString \"SpinBox\" $\n        \\ clsNamePtr ->\n          withCString \"set_align\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the text alignment of the @SpinBox@.\nset_align :: (SpinBox :< cls, Object :< cls) => cls -> Int -> IO ()\nset_align cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpinBox_set_align (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpinBox \"set_align\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.SpinBox.set_align\n\n{-# NOINLINE bindSpinBox_set_editable #-}\n\n-- | If @true@, the @SpinBox@ will be editable. Otherwise, it will be read only.\nbindSpinBox_set_editable :: MethodBind\nbindSpinBox_set_editable\n  = unsafePerformIO $\n      withCString \"SpinBox\" $\n        \\ clsNamePtr ->\n          withCString \"set_editable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @SpinBox@ will be editable. Otherwise, it will be read only.\nset_editable ::\n               (SpinBox :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_editable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpinBox_set_editable (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpinBox \"set_editable\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.SpinBox.set_editable\n\n{-# NOINLINE bindSpinBox_set_prefix #-}\n\n-- | Adds the specified @prefix@ string before the numerical value of the @SpinBox@.\nbindSpinBox_set_prefix :: MethodBind\nbindSpinBox_set_prefix\n  = unsafePerformIO $\n      withCString \"SpinBox\" $\n        \\ clsNamePtr ->\n          withCString \"set_prefix\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds the specified @prefix@ string before the numerical value of the @SpinBox@.\nset_prefix ::\n             (SpinBox :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_prefix cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpinBox_set_prefix (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpinBox \"set_prefix\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.SpinBox.set_prefix\n\n{-# NOINLINE bindSpinBox_set_suffix #-}\n\n-- | Adds the specified @suffix@ string after the numerical value of the @SpinBox@.\nbindSpinBox_set_suffix :: MethodBind\nbindSpinBox_set_suffix\n  = unsafePerformIO $\n      withCString \"SpinBox\" $\n        \\ clsNamePtr ->\n          withCString \"set_suffix\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds the specified @suffix@ string after the numerical value of the @SpinBox@.\nset_suffix ::\n             (SpinBox :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_suffix cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpinBox_set_suffix (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpinBox \"set_suffix\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.SpinBox.set_suffix"
  },
  {
    "path": "src/Godot/Core/SplitContainer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SplitContainer\n       (Godot.Core.SplitContainer._DRAGGER_HIDDEN,\n        Godot.Core.SplitContainer._DRAGGER_HIDDEN_COLLAPSED,\n        Godot.Core.SplitContainer._DRAGGER_VISIBLE,\n        Godot.Core.SplitContainer.sig_dragged,\n        Godot.Core.SplitContainer._gui_input,\n        Godot.Core.SplitContainer.clamp_split_offset,\n        Godot.Core.SplitContainer.get_dragger_visibility,\n        Godot.Core.SplitContainer.get_split_offset,\n        Godot.Core.SplitContainer.is_collapsed,\n        Godot.Core.SplitContainer.set_collapsed,\n        Godot.Core.SplitContainer.set_dragger_visibility,\n        Godot.Core.SplitContainer.set_split_offset)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Container()\n\n_DRAGGER_HIDDEN :: Int\n_DRAGGER_HIDDEN = 1\n\n_DRAGGER_HIDDEN_COLLAPSED :: Int\n_DRAGGER_HIDDEN_COLLAPSED = 2\n\n_DRAGGER_VISIBLE :: Int\n_DRAGGER_VISIBLE = 0\n\n-- | Emitted when the dragger is dragged by user.\nsig_dragged :: Godot.Internal.Dispatch.Signal SplitContainer\nsig_dragged = Godot.Internal.Dispatch.Signal \"dragged\"\n\ninstance NodeSignal SplitContainer \"dragged\" '[Int]\n\ninstance NodeProperty SplitContainer \"collapsed\" Bool 'False where\n        nodeProperty\n          = (is_collapsed, wrapDroppingSetter set_collapsed, Nothing)\n\ninstance NodeProperty SplitContainer \"dragger_visibility\" Int\n           'False\n         where\n        nodeProperty\n          = (get_dragger_visibility,\n             wrapDroppingSetter set_dragger_visibility, Nothing)\n\ninstance NodeProperty SplitContainer \"split_offset\" Int 'False\n         where\n        nodeProperty\n          = (get_split_offset, wrapDroppingSetter set_split_offset, Nothing)\n\n{-# NOINLINE bindSplitContainer__gui_input #-}\n\nbindSplitContainer__gui_input :: MethodBind\nbindSplitContainer__gui_input\n  = unsafePerformIO $\n      withCString \"SplitContainer\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (SplitContainer :< cls, Object :< cls) =>\n             cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSplitContainer__gui_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SplitContainer \"_gui_input\" '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SplitContainer._gui_input\n\n{-# NOINLINE bindSplitContainer_clamp_split_offset #-}\n\n-- | Clamps the @split_offset@ value to not go outside the currently possible minimal and maximum values.\nbindSplitContainer_clamp_split_offset :: MethodBind\nbindSplitContainer_clamp_split_offset\n  = unsafePerformIO $\n      withCString \"SplitContainer\" $\n        \\ clsNamePtr ->\n          withCString \"clamp_split_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clamps the @split_offset@ value to not go outside the currently possible minimal and maximum values.\nclamp_split_offset ::\n                     (SplitContainer :< cls, Object :< cls) => cls -> IO ()\nclamp_split_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSplitContainer_clamp_split_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SplitContainer \"clamp_split_offset\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.SplitContainer.clamp_split_offset\n\n{-# NOINLINE bindSplitContainer_get_dragger_visibility #-}\n\n-- | Determines the dragger's visibility. See @enum DraggerVisibility@ for details.\nbindSplitContainer_get_dragger_visibility :: MethodBind\nbindSplitContainer_get_dragger_visibility\n  = unsafePerformIO $\n      withCString \"SplitContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_dragger_visibility\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Determines the dragger's visibility. See @enum DraggerVisibility@ for details.\nget_dragger_visibility ::\n                         (SplitContainer :< cls, Object :< cls) => cls -> IO Int\nget_dragger_visibility cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSplitContainer_get_dragger_visibility\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SplitContainer \"get_dragger_visibility\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.SplitContainer.get_dragger_visibility\n\n{-# NOINLINE bindSplitContainer_get_split_offset #-}\n\n-- | The initial offset of the splitting between the two @Control@s, with @0@ being at the end of the first @Control@.\nbindSplitContainer_get_split_offset :: MethodBind\nbindSplitContainer_get_split_offset\n  = unsafePerformIO $\n      withCString \"SplitContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_split_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The initial offset of the splitting between the two @Control@s, with @0@ being at the end of the first @Control@.\nget_split_offset ::\n                   (SplitContainer :< cls, Object :< cls) => cls -> IO Int\nget_split_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSplitContainer_get_split_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SplitContainer \"get_split_offset\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.SplitContainer.get_split_offset\n\n{-# NOINLINE bindSplitContainer_is_collapsed #-}\n\n-- | If @true@, the area of the first @Control@ will be collapsed and the dragger will be disabled.\nbindSplitContainer_is_collapsed :: MethodBind\nbindSplitContainer_is_collapsed\n  = unsafePerformIO $\n      withCString \"SplitContainer\" $\n        \\ clsNamePtr ->\n          withCString \"is_collapsed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the area of the first @Control@ will be collapsed and the dragger will be disabled.\nis_collapsed ::\n               (SplitContainer :< cls, Object :< cls) => cls -> IO Bool\nis_collapsed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSplitContainer_is_collapsed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SplitContainer \"is_collapsed\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.SplitContainer.is_collapsed\n\n{-# NOINLINE bindSplitContainer_set_collapsed #-}\n\n-- | If @true@, the area of the first @Control@ will be collapsed and the dragger will be disabled.\nbindSplitContainer_set_collapsed :: MethodBind\nbindSplitContainer_set_collapsed\n  = unsafePerformIO $\n      withCString \"SplitContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_collapsed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the area of the first @Control@ will be collapsed and the dragger will be disabled.\nset_collapsed ::\n                (SplitContainer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_collapsed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSplitContainer_set_collapsed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SplitContainer \"set_collapsed\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.SplitContainer.set_collapsed\n\n{-# NOINLINE bindSplitContainer_set_dragger_visibility #-}\n\n-- | Determines the dragger's visibility. See @enum DraggerVisibility@ for details.\nbindSplitContainer_set_dragger_visibility :: MethodBind\nbindSplitContainer_set_dragger_visibility\n  = unsafePerformIO $\n      withCString \"SplitContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_dragger_visibility\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Determines the dragger's visibility. See @enum DraggerVisibility@ for details.\nset_dragger_visibility ::\n                         (SplitContainer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_dragger_visibility cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSplitContainer_set_dragger_visibility\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SplitContainer \"set_dragger_visibility\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SplitContainer.set_dragger_visibility\n\n{-# NOINLINE bindSplitContainer_set_split_offset #-}\n\n-- | The initial offset of the splitting between the two @Control@s, with @0@ being at the end of the first @Control@.\nbindSplitContainer_set_split_offset :: MethodBind\nbindSplitContainer_set_split_offset\n  = unsafePerformIO $\n      withCString \"SplitContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_split_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The initial offset of the splitting between the two @Control@s, with @0@ being at the end of the first @Control@.\nset_split_offset ::\n                   (SplitContainer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_split_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSplitContainer_set_split_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SplitContainer \"set_split_offset\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SplitContainer.set_split_offset"
  },
  {
    "path": "src/Godot/Core/SpotLight.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SpotLight\n       (Godot.Core.SpotLight.get_param, Godot.Core.SpotLight.set_param)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Light()\n\n{-# NOINLINE bindSpotLight_get_param #-}\n\n-- | The spotlight's angle in degrees.\nbindSpotLight_get_param :: MethodBind\nbindSpotLight_get_param\n  = unsafePerformIO $\n      withCString \"SpotLight\" $\n        \\ clsNamePtr ->\n          withCString \"get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The spotlight's angle in degrees.\nget_param ::\n            (SpotLight :< cls, Object :< cls) => cls -> Int -> IO Float\nget_param cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpotLight_get_param (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpotLight \"get_param\" '[Int] (IO Float) where\n        nodeMethod = Godot.Core.SpotLight.get_param\n\n{-# NOINLINE bindSpotLight_set_param #-}\n\n-- | The spotlight's angle in degrees.\nbindSpotLight_set_param :: MethodBind\nbindSpotLight_set_param\n  = unsafePerformIO $\n      withCString \"SpotLight\" $\n        \\ clsNamePtr ->\n          withCString \"set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The spotlight's angle in degrees.\nset_param ::\n            (SpotLight :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\nset_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpotLight_set_param (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpotLight \"set_param\" '[Int, Float] (IO ())\n         where\n        nodeMethod = Godot.Core.SpotLight.set_param\n\ninstance NodeProperty SpotLight \"spot_angle\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 5 get_param, wrapIndexedSetter 5 set_param,\n             Nothing)\n\ninstance NodeProperty SpotLight \"spot_angle_attenuation\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 6 get_param, wrapIndexedSetter 6 set_param,\n             Nothing)\n\ninstance NodeProperty SpotLight \"spot_attenuation\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 get_param, wrapIndexedSetter 4 set_param,\n             Nothing)\n\ninstance NodeProperty SpotLight \"spot_range\" Float 'False where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_param, wrapIndexedSetter 3 set_param,\n             Nothing)"
  },
  {
    "path": "src/Godot/Core/SpringArm.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SpringArm\n       (Godot.Core.SpringArm.add_excluded_object,\n        Godot.Core.SpringArm.clear_excluded_objects,\n        Godot.Core.SpringArm.get_collision_mask,\n        Godot.Core.SpringArm.get_hit_length,\n        Godot.Core.SpringArm.get_length, Godot.Core.SpringArm.get_margin,\n        Godot.Core.SpringArm.get_shape,\n        Godot.Core.SpringArm.remove_excluded_object,\n        Godot.Core.SpringArm.set_collision_mask,\n        Godot.Core.SpringArm.set_length, Godot.Core.SpringArm.set_margin,\n        Godot.Core.SpringArm.set_shape)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\ninstance NodeProperty SpringArm \"collision_mask\" Int 'False where\n        nodeProperty\n          = (get_collision_mask, wrapDroppingSetter set_collision_mask,\n             Nothing)\n\ninstance NodeProperty SpringArm \"margin\" Float 'False where\n        nodeProperty = (get_margin, wrapDroppingSetter set_margin, Nothing)\n\ninstance NodeProperty SpringArm \"shape\" Shape 'False where\n        nodeProperty = (get_shape, wrapDroppingSetter set_shape, Nothing)\n\ninstance NodeProperty SpringArm \"spring_length\" Float 'False where\n        nodeProperty = (get_length, wrapDroppingSetter set_length, Nothing)\n\n{-# NOINLINE bindSpringArm_add_excluded_object #-}\n\n-- | Adds the @PhysicsBody@ object with the given @RID@ to the list of @PhysicsBody@ objects excluded from the collision check.\nbindSpringArm_add_excluded_object :: MethodBind\nbindSpringArm_add_excluded_object\n  = unsafePerformIO $\n      withCString \"SpringArm\" $\n        \\ clsNamePtr ->\n          withCString \"add_excluded_object\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds the @PhysicsBody@ object with the given @RID@ to the list of @PhysicsBody@ objects excluded from the collision check.\nadd_excluded_object ::\n                      (SpringArm :< cls, Object :< cls) => cls -> Rid -> IO ()\nadd_excluded_object cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpringArm_add_excluded_object\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpringArm \"add_excluded_object\" '[Rid] (IO ())\n         where\n        nodeMethod = Godot.Core.SpringArm.add_excluded_object\n\n{-# NOINLINE bindSpringArm_clear_excluded_objects #-}\n\n-- | Clears the list of @PhysicsBody@ objects excluded from the collision check.\nbindSpringArm_clear_excluded_objects :: MethodBind\nbindSpringArm_clear_excluded_objects\n  = unsafePerformIO $\n      withCString \"SpringArm\" $\n        \\ clsNamePtr ->\n          withCString \"clear_excluded_objects\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears the list of @PhysicsBody@ objects excluded from the collision check.\nclear_excluded_objects ::\n                         (SpringArm :< cls, Object :< cls) => cls -> IO ()\nclear_excluded_objects cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpringArm_clear_excluded_objects\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpringArm \"clear_excluded_objects\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.SpringArm.clear_excluded_objects\n\n{-# NOINLINE bindSpringArm_get_collision_mask #-}\n\n-- | The layers against which the collision check shall be done. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindSpringArm_get_collision_mask :: MethodBind\nbindSpringArm_get_collision_mask\n  = unsafePerformIO $\n      withCString \"SpringArm\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The layers against which the collision check shall be done. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nget_collision_mask ::\n                     (SpringArm :< cls, Object :< cls) => cls -> IO Int\nget_collision_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpringArm_get_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpringArm \"get_collision_mask\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.SpringArm.get_collision_mask\n\n{-# NOINLINE bindSpringArm_get_hit_length #-}\n\n-- | Returns the spring arm's current length.\nbindSpringArm_get_hit_length :: MethodBind\nbindSpringArm_get_hit_length\n  = unsafePerformIO $\n      withCString \"SpringArm\" $\n        \\ clsNamePtr ->\n          withCString \"get_hit_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the spring arm's current length.\nget_hit_length ::\n                 (SpringArm :< cls, Object :< cls) => cls -> IO Float\nget_hit_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpringArm_get_hit_length (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpringArm \"get_hit_length\" '[] (IO Float) where\n        nodeMethod = Godot.Core.SpringArm.get_hit_length\n\n{-# NOINLINE bindSpringArm_get_length #-}\n\n-- | The maximum extent of the SpringArm. This is used as a length for both the ray and the shape cast used internally to calculate the desired position of the SpringArm's child nodes.\n--   \t\t\tTo know more about how to perform a shape cast or a ray cast, please consult the @PhysicsDirectSpaceState@ documentation.\nbindSpringArm_get_length :: MethodBind\nbindSpringArm_get_length\n  = unsafePerformIO $\n      withCString \"SpringArm\" $\n        \\ clsNamePtr ->\n          withCString \"get_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum extent of the SpringArm. This is used as a length for both the ray and the shape cast used internally to calculate the desired position of the SpringArm's child nodes.\n--   \t\t\tTo know more about how to perform a shape cast or a ray cast, please consult the @PhysicsDirectSpaceState@ documentation.\nget_length :: (SpringArm :< cls, Object :< cls) => cls -> IO Float\nget_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpringArm_get_length (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpringArm \"get_length\" '[] (IO Float) where\n        nodeMethod = Godot.Core.SpringArm.get_length\n\n{-# NOINLINE bindSpringArm_get_margin #-}\n\n-- | When the collision check is made, a candidate length for the SpringArm is given.\n--   \t\t\tThe margin is then subtracted to this length and the translation is applied to the child objects of the SpringArm.\n--   \t\t\tThis margin is useful for when the SpringArm has a @Camera@ as a child node: without the margin, the @Camera@ would be placed on the exact point of collision, while with the margin the @Camera@ would be placed close to the point of collision.\nbindSpringArm_get_margin :: MethodBind\nbindSpringArm_get_margin\n  = unsafePerformIO $\n      withCString \"SpringArm\" $\n        \\ clsNamePtr ->\n          withCString \"get_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | When the collision check is made, a candidate length for the SpringArm is given.\n--   \t\t\tThe margin is then subtracted to this length and the translation is applied to the child objects of the SpringArm.\n--   \t\t\tThis margin is useful for when the SpringArm has a @Camera@ as a child node: without the margin, the @Camera@ would be placed on the exact point of collision, while with the margin the @Camera@ would be placed close to the point of collision.\nget_margin :: (SpringArm :< cls, Object :< cls) => cls -> IO Float\nget_margin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpringArm_get_margin (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpringArm \"get_margin\" '[] (IO Float) where\n        nodeMethod = Godot.Core.SpringArm.get_margin\n\n{-# NOINLINE bindSpringArm_get_shape #-}\n\n-- | The @Shape@ to use for the SpringArm.\n--   \t\t\tWhen the shape is set, the SpringArm will cast the @Shape@ on its z axis instead of performing a ray cast.\nbindSpringArm_get_shape :: MethodBind\nbindSpringArm_get_shape\n  = unsafePerformIO $\n      withCString \"SpringArm\" $\n        \\ clsNamePtr ->\n          withCString \"get_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Shape@ to use for the SpringArm.\n--   \t\t\tWhen the shape is set, the SpringArm will cast the @Shape@ on its z axis instead of performing a ray cast.\nget_shape :: (SpringArm :< cls, Object :< cls) => cls -> IO Shape\nget_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpringArm_get_shape (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpringArm \"get_shape\" '[] (IO Shape) where\n        nodeMethod = Godot.Core.SpringArm.get_shape\n\n{-# NOINLINE bindSpringArm_remove_excluded_object #-}\n\n-- | Removes the given @RID@ from the list of @PhysicsBody@ objects excluded from the collision check.\nbindSpringArm_remove_excluded_object :: MethodBind\nbindSpringArm_remove_excluded_object\n  = unsafePerformIO $\n      withCString \"SpringArm\" $\n        \\ clsNamePtr ->\n          withCString \"remove_excluded_object\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the given @RID@ from the list of @PhysicsBody@ objects excluded from the collision check.\nremove_excluded_object ::\n                         (SpringArm :< cls, Object :< cls) => cls -> Rid -> IO Bool\nremove_excluded_object cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpringArm_remove_excluded_object\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpringArm \"remove_excluded_object\" '[Rid]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.SpringArm.remove_excluded_object\n\n{-# NOINLINE bindSpringArm_set_collision_mask #-}\n\n-- | The layers against which the collision check shall be done. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindSpringArm_set_collision_mask :: MethodBind\nbindSpringArm_set_collision_mask\n  = unsafePerformIO $\n      withCString \"SpringArm\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The layers against which the collision check shall be done. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nset_collision_mask ::\n                     (SpringArm :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpringArm_set_collision_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpringArm \"set_collision_mask\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.SpringArm.set_collision_mask\n\n{-# NOINLINE bindSpringArm_set_length #-}\n\n-- | The maximum extent of the SpringArm. This is used as a length for both the ray and the shape cast used internally to calculate the desired position of the SpringArm's child nodes.\n--   \t\t\tTo know more about how to perform a shape cast or a ray cast, please consult the @PhysicsDirectSpaceState@ documentation.\nbindSpringArm_set_length :: MethodBind\nbindSpringArm_set_length\n  = unsafePerformIO $\n      withCString \"SpringArm\" $\n        \\ clsNamePtr ->\n          withCString \"set_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum extent of the SpringArm. This is used as a length for both the ray and the shape cast used internally to calculate the desired position of the SpringArm's child nodes.\n--   \t\t\tTo know more about how to perform a shape cast or a ray cast, please consult the @PhysicsDirectSpaceState@ documentation.\nset_length ::\n             (SpringArm :< cls, Object :< cls) => cls -> Float -> IO ()\nset_length cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpringArm_set_length (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpringArm \"set_length\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.SpringArm.set_length\n\n{-# NOINLINE bindSpringArm_set_margin #-}\n\n-- | When the collision check is made, a candidate length for the SpringArm is given.\n--   \t\t\tThe margin is then subtracted to this length and the translation is applied to the child objects of the SpringArm.\n--   \t\t\tThis margin is useful for when the SpringArm has a @Camera@ as a child node: without the margin, the @Camera@ would be placed on the exact point of collision, while with the margin the @Camera@ would be placed close to the point of collision.\nbindSpringArm_set_margin :: MethodBind\nbindSpringArm_set_margin\n  = unsafePerformIO $\n      withCString \"SpringArm\" $\n        \\ clsNamePtr ->\n          withCString \"set_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | When the collision check is made, a candidate length for the SpringArm is given.\n--   \t\t\tThe margin is then subtracted to this length and the translation is applied to the child objects of the SpringArm.\n--   \t\t\tThis margin is useful for when the SpringArm has a @Camera@ as a child node: without the margin, the @Camera@ would be placed on the exact point of collision, while with the margin the @Camera@ would be placed close to the point of collision.\nset_margin ::\n             (SpringArm :< cls, Object :< cls) => cls -> Float -> IO ()\nset_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpringArm_set_margin (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpringArm \"set_margin\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.SpringArm.set_margin\n\n{-# NOINLINE bindSpringArm_set_shape #-}\n\n-- | The @Shape@ to use for the SpringArm.\n--   \t\t\tWhen the shape is set, the SpringArm will cast the @Shape@ on its z axis instead of performing a ray cast.\nbindSpringArm_set_shape :: MethodBind\nbindSpringArm_set_shape\n  = unsafePerformIO $\n      withCString \"SpringArm\" $\n        \\ clsNamePtr ->\n          withCString \"set_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Shape@ to use for the SpringArm.\n--   \t\t\tWhen the shape is set, the SpringArm will cast the @Shape@ on its z axis instead of performing a ray cast.\nset_shape ::\n            (SpringArm :< cls, Object :< cls) => cls -> Shape -> IO ()\nset_shape cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpringArm_set_shape (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpringArm \"set_shape\" '[Shape] (IO ()) where\n        nodeMethod = Godot.Core.SpringArm.set_shape"
  },
  {
    "path": "src/Godot/Core/Sprite.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Sprite\n       (Godot.Core.Sprite.sig_frame_changed,\n        Godot.Core.Sprite.sig_texture_changed,\n        Godot.Core.Sprite._texture_changed, Godot.Core.Sprite.get_frame,\n        Godot.Core.Sprite.get_frame_coords, Godot.Core.Sprite.get_hframes,\n        Godot.Core.Sprite.get_normal_map, Godot.Core.Sprite.get_offset,\n        Godot.Core.Sprite.get_rect, Godot.Core.Sprite.get_region_rect,\n        Godot.Core.Sprite.get_texture, Godot.Core.Sprite.get_vframes,\n        Godot.Core.Sprite.is_centered, Godot.Core.Sprite.is_flipped_h,\n        Godot.Core.Sprite.is_flipped_v, Godot.Core.Sprite.is_pixel_opaque,\n        Godot.Core.Sprite.is_region,\n        Godot.Core.Sprite.is_region_filter_clip_enabled,\n        Godot.Core.Sprite.set_centered, Godot.Core.Sprite.set_flip_h,\n        Godot.Core.Sprite.set_flip_v, Godot.Core.Sprite.set_frame,\n        Godot.Core.Sprite.set_frame_coords, Godot.Core.Sprite.set_hframes,\n        Godot.Core.Sprite.set_normal_map, Godot.Core.Sprite.set_offset,\n        Godot.Core.Sprite.set_region,\n        Godot.Core.Sprite.set_region_filter_clip,\n        Godot.Core.Sprite.set_region_rect, Godot.Core.Sprite.set_texture,\n        Godot.Core.Sprite.set_vframes)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\n-- | Emitted when the @frame@ changes.\nsig_frame_changed :: Godot.Internal.Dispatch.Signal Sprite\nsig_frame_changed = Godot.Internal.Dispatch.Signal \"frame_changed\"\n\ninstance NodeSignal Sprite \"frame_changed\" '[]\n\n-- | Emitted when the @texture@ changes.\nsig_texture_changed :: Godot.Internal.Dispatch.Signal Sprite\nsig_texture_changed\n  = Godot.Internal.Dispatch.Signal \"texture_changed\"\n\ninstance NodeSignal Sprite \"texture_changed\" '[]\n\ninstance NodeProperty Sprite \"centered\" Bool 'False where\n        nodeProperty\n          = (is_centered, wrapDroppingSetter set_centered, Nothing)\n\ninstance NodeProperty Sprite \"flip_h\" Bool 'False where\n        nodeProperty\n          = (is_flipped_h, wrapDroppingSetter set_flip_h, Nothing)\n\ninstance NodeProperty Sprite \"flip_v\" Bool 'False where\n        nodeProperty\n          = (is_flipped_v, wrapDroppingSetter set_flip_v, Nothing)\n\ninstance NodeProperty Sprite \"frame\" Int 'False where\n        nodeProperty = (get_frame, wrapDroppingSetter set_frame, Nothing)\n\ninstance NodeProperty Sprite \"frame_coords\" Vector2 'False where\n        nodeProperty\n          = (get_frame_coords, wrapDroppingSetter set_frame_coords, Nothing)\n\ninstance NodeProperty Sprite \"hframes\" Int 'False where\n        nodeProperty\n          = (get_hframes, wrapDroppingSetter set_hframes, Nothing)\n\ninstance NodeProperty Sprite \"normal_map\" Texture 'False where\n        nodeProperty\n          = (get_normal_map, wrapDroppingSetter set_normal_map, Nothing)\n\ninstance NodeProperty Sprite \"offset\" Vector2 'False where\n        nodeProperty = (get_offset, wrapDroppingSetter set_offset, Nothing)\n\ninstance NodeProperty Sprite \"region_enabled\" Bool 'False where\n        nodeProperty = (is_region, wrapDroppingSetter set_region, Nothing)\n\ninstance NodeProperty Sprite \"region_filter_clip\" Bool 'False where\n        nodeProperty\n          = (is_region_filter_clip_enabled,\n             wrapDroppingSetter set_region_filter_clip, Nothing)\n\ninstance NodeProperty Sprite \"region_rect\" Rect2 'False where\n        nodeProperty\n          = (get_region_rect, wrapDroppingSetter set_region_rect, Nothing)\n\ninstance NodeProperty Sprite \"texture\" Texture 'False where\n        nodeProperty\n          = (get_texture, wrapDroppingSetter set_texture, Nothing)\n\ninstance NodeProperty Sprite \"vframes\" Int 'False where\n        nodeProperty\n          = (get_vframes, wrapDroppingSetter set_vframes, Nothing)\n\n{-# NOINLINE bindSprite__texture_changed #-}\n\nbindSprite__texture_changed :: MethodBind\nbindSprite__texture_changed\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"_texture_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_texture_changed :: (Sprite :< cls, Object :< cls) => cls -> IO ()\n_texture_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite__texture_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"_texture_changed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Sprite._texture_changed\n\n{-# NOINLINE bindSprite_get_frame #-}\n\n-- | Current frame to display from sprite sheet. @vframes@ or @hframes@ must be greater than 1.\nbindSprite_get_frame :: MethodBind\nbindSprite_get_frame\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"get_frame\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Current frame to display from sprite sheet. @vframes@ or @hframes@ must be greater than 1.\nget_frame :: (Sprite :< cls, Object :< cls) => cls -> IO Int\nget_frame cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_get_frame (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"get_frame\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Sprite.get_frame\n\n{-# NOINLINE bindSprite_get_frame_coords #-}\n\n-- | Coordinates of the frame to display from sprite sheet. This is as an alias for the @frame@ property. @vframes@ or @hframes@ must be greater than 1.\nbindSprite_get_frame_coords :: MethodBind\nbindSprite_get_frame_coords\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"get_frame_coords\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Coordinates of the frame to display from sprite sheet. This is as an alias for the @frame@ property. @vframes@ or @hframes@ must be greater than 1.\nget_frame_coords ::\n                   (Sprite :< cls, Object :< cls) => cls -> IO Vector2\nget_frame_coords cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_get_frame_coords (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"get_frame_coords\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Sprite.get_frame_coords\n\n{-# NOINLINE bindSprite_get_hframes #-}\n\n-- | The number of columns in the sprite sheet.\nbindSprite_get_hframes :: MethodBind\nbindSprite_get_hframes\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"get_hframes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of columns in the sprite sheet.\nget_hframes :: (Sprite :< cls, Object :< cls) => cls -> IO Int\nget_hframes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_get_hframes (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"get_hframes\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Sprite.get_hframes\n\n{-# NOINLINE bindSprite_get_normal_map #-}\n\n-- | The normal map gives depth to the Sprite.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nbindSprite_get_normal_map :: MethodBind\nbindSprite_get_normal_map\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"get_normal_map\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The normal map gives depth to the Sprite.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nget_normal_map ::\n                 (Sprite :< cls, Object :< cls) => cls -> IO Texture\nget_normal_map cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_get_normal_map (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"get_normal_map\" '[] (IO Texture) where\n        nodeMethod = Godot.Core.Sprite.get_normal_map\n\n{-# NOINLINE bindSprite_get_offset #-}\n\n-- | The texture's drawing offset.\nbindSprite_get_offset :: MethodBind\nbindSprite_get_offset\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"get_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The texture's drawing offset.\nget_offset :: (Sprite :< cls, Object :< cls) => cls -> IO Vector2\nget_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_get_offset (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"get_offset\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.Sprite.get_offset\n\n{-# NOINLINE bindSprite_get_rect #-}\n\n-- | Returns a @Rect2@ representing the Sprite's boundary in local coordinates. Can be used to detect if the Sprite was clicked. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc _input(event):\n--   \t\t\t\t    if event is InputEventMouseButton and event.pressed and event.button_index == BUTTON_LEFT:\n--   \t\t\t\t        if get_rect().has_point(to_local(event.position)):\n--   \t\t\t\t            print(\"A click!\")\n--   \t\t\t\t\n--   @\nbindSprite_get_rect :: MethodBind\nbindSprite_get_rect\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"get_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @Rect2@ representing the Sprite's boundary in local coordinates. Can be used to detect if the Sprite was clicked. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc _input(event):\n--   \t\t\t\t    if event is InputEventMouseButton and event.pressed and event.button_index == BUTTON_LEFT:\n--   \t\t\t\t        if get_rect().has_point(to_local(event.position)):\n--   \t\t\t\t            print(\"A click!\")\n--   \t\t\t\t\n--   @\nget_rect :: (Sprite :< cls, Object :< cls) => cls -> IO Rect2\nget_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_get_rect (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"get_rect\" '[] (IO Rect2) where\n        nodeMethod = Godot.Core.Sprite.get_rect\n\n{-# NOINLINE bindSprite_get_region_rect #-}\n\n-- | The region of the atlas texture to display. @region_enabled@ must be @true@.\nbindSprite_get_region_rect :: MethodBind\nbindSprite_get_region_rect\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"get_region_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The region of the atlas texture to display. @region_enabled@ must be @true@.\nget_region_rect ::\n                  (Sprite :< cls, Object :< cls) => cls -> IO Rect2\nget_region_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_get_region_rect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"get_region_rect\" '[] (IO Rect2) where\n        nodeMethod = Godot.Core.Sprite.get_region_rect\n\n{-# NOINLINE bindSprite_get_texture #-}\n\n-- | @Texture@ object to draw.\nbindSprite_get_texture :: MethodBind\nbindSprite_get_texture\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Texture@ object to draw.\nget_texture :: (Sprite :< cls, Object :< cls) => cls -> IO Texture\nget_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_get_texture (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"get_texture\" '[] (IO Texture) where\n        nodeMethod = Godot.Core.Sprite.get_texture\n\n{-# NOINLINE bindSprite_get_vframes #-}\n\n-- | The number of rows in the sprite sheet.\nbindSprite_get_vframes :: MethodBind\nbindSprite_get_vframes\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"get_vframes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of rows in the sprite sheet.\nget_vframes :: (Sprite :< cls, Object :< cls) => cls -> IO Int\nget_vframes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_get_vframes (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"get_vframes\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Sprite.get_vframes\n\n{-# NOINLINE bindSprite_is_centered #-}\n\n-- | If @true@, texture is centered.\nbindSprite_is_centered :: MethodBind\nbindSprite_is_centered\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"is_centered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is centered.\nis_centered :: (Sprite :< cls, Object :< cls) => cls -> IO Bool\nis_centered cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_is_centered (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"is_centered\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Sprite.is_centered\n\n{-# NOINLINE bindSprite_is_flipped_h #-}\n\n-- | If @true@, texture is flipped horizontally.\nbindSprite_is_flipped_h :: MethodBind\nbindSprite_is_flipped_h\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"is_flipped_h\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is flipped horizontally.\nis_flipped_h :: (Sprite :< cls, Object :< cls) => cls -> IO Bool\nis_flipped_h cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_is_flipped_h (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"is_flipped_h\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Sprite.is_flipped_h\n\n{-# NOINLINE bindSprite_is_flipped_v #-}\n\n-- | If @true@, texture is flipped vertically.\nbindSprite_is_flipped_v :: MethodBind\nbindSprite_is_flipped_v\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"is_flipped_v\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is flipped vertically.\nis_flipped_v :: (Sprite :< cls, Object :< cls) => cls -> IO Bool\nis_flipped_v cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_is_flipped_v (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"is_flipped_v\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Sprite.is_flipped_v\n\n{-# NOINLINE bindSprite_is_pixel_opaque #-}\n\n-- | Returns @true@, if the pixel at the given position is opaque and @false@ in other case.\n--   \t\t\t\t__Note:__ It also returns @false@, if the sprite's texture is @null@ or if the given position is invalid.\nbindSprite_is_pixel_opaque :: MethodBind\nbindSprite_is_pixel_opaque\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"is_pixel_opaque\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@, if the pixel at the given position is opaque and @false@ in other case.\n--   \t\t\t\t__Note:__ It also returns @false@, if the sprite's texture is @null@ or if the given position is invalid.\nis_pixel_opaque ::\n                  (Sprite :< cls, Object :< cls) => cls -> Vector2 -> IO Bool\nis_pixel_opaque cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_is_pixel_opaque (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"is_pixel_opaque\" '[Vector2] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Sprite.is_pixel_opaque\n\n{-# NOINLINE bindSprite_is_region #-}\n\n-- | If @true@, texture is cut from a larger atlas texture. See @region_rect@.\nbindSprite_is_region :: MethodBind\nbindSprite_is_region\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"is_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is cut from a larger atlas texture. See @region_rect@.\nis_region :: (Sprite :< cls, Object :< cls) => cls -> IO Bool\nis_region cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_is_region (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"is_region\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Sprite.is_region\n\n{-# NOINLINE bindSprite_is_region_filter_clip_enabled #-}\n\n-- | If @true@, the outermost pixels get blurred out.\nbindSprite_is_region_filter_clip_enabled :: MethodBind\nbindSprite_is_region_filter_clip_enabled\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"is_region_filter_clip_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the outermost pixels get blurred out.\nis_region_filter_clip_enabled ::\n                                (Sprite :< cls, Object :< cls) => cls -> IO Bool\nis_region_filter_clip_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_is_region_filter_clip_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"is_region_filter_clip_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Sprite.is_region_filter_clip_enabled\n\n{-# NOINLINE bindSprite_set_centered #-}\n\n-- | If @true@, texture is centered.\nbindSprite_set_centered :: MethodBind\nbindSprite_set_centered\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_centered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is centered.\nset_centered ::\n               (Sprite :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_centered cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_set_centered (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"set_centered\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Sprite.set_centered\n\n{-# NOINLINE bindSprite_set_flip_h #-}\n\n-- | If @true@, texture is flipped horizontally.\nbindSprite_set_flip_h :: MethodBind\nbindSprite_set_flip_h\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_flip_h\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is flipped horizontally.\nset_flip_h ::\n             (Sprite :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_flip_h cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_set_flip_h (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"set_flip_h\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Sprite.set_flip_h\n\n{-# NOINLINE bindSprite_set_flip_v #-}\n\n-- | If @true@, texture is flipped vertically.\nbindSprite_set_flip_v :: MethodBind\nbindSprite_set_flip_v\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_flip_v\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is flipped vertically.\nset_flip_v ::\n             (Sprite :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_flip_v cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_set_flip_v (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"set_flip_v\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Sprite.set_flip_v\n\n{-# NOINLINE bindSprite_set_frame #-}\n\n-- | Current frame to display from sprite sheet. @vframes@ or @hframes@ must be greater than 1.\nbindSprite_set_frame :: MethodBind\nbindSprite_set_frame\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_frame\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Current frame to display from sprite sheet. @vframes@ or @hframes@ must be greater than 1.\nset_frame :: (Sprite :< cls, Object :< cls) => cls -> Int -> IO ()\nset_frame cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_set_frame (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"set_frame\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Sprite.set_frame\n\n{-# NOINLINE bindSprite_set_frame_coords #-}\n\n-- | Coordinates of the frame to display from sprite sheet. This is as an alias for the @frame@ property. @vframes@ or @hframes@ must be greater than 1.\nbindSprite_set_frame_coords :: MethodBind\nbindSprite_set_frame_coords\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_frame_coords\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Coordinates of the frame to display from sprite sheet. This is as an alias for the @frame@ property. @vframes@ or @hframes@ must be greater than 1.\nset_frame_coords ::\n                   (Sprite :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_frame_coords cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_set_frame_coords (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"set_frame_coords\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.Sprite.set_frame_coords\n\n{-# NOINLINE bindSprite_set_hframes #-}\n\n-- | The number of columns in the sprite sheet.\nbindSprite_set_hframes :: MethodBind\nbindSprite_set_hframes\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_hframes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of columns in the sprite sheet.\nset_hframes ::\n              (Sprite :< cls, Object :< cls) => cls -> Int -> IO ()\nset_hframes cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_set_hframes (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"set_hframes\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Sprite.set_hframes\n\n{-# NOINLINE bindSprite_set_normal_map #-}\n\n-- | The normal map gives depth to the Sprite.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nbindSprite_set_normal_map :: MethodBind\nbindSprite_set_normal_map\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_normal_map\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The normal map gives depth to the Sprite.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nset_normal_map ::\n                 (Sprite :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_normal_map cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_set_normal_map (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"set_normal_map\" '[Texture] (IO ())\n         where\n        nodeMethod = Godot.Core.Sprite.set_normal_map\n\n{-# NOINLINE bindSprite_set_offset #-}\n\n-- | The texture's drawing offset.\nbindSprite_set_offset :: MethodBind\nbindSprite_set_offset\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The texture's drawing offset.\nset_offset ::\n             (Sprite :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_set_offset (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"set_offset\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.Sprite.set_offset\n\n{-# NOINLINE bindSprite_set_region #-}\n\n-- | If @true@, texture is cut from a larger atlas texture. See @region_rect@.\nbindSprite_set_region :: MethodBind\nbindSprite_set_region\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is cut from a larger atlas texture. See @region_rect@.\nset_region ::\n             (Sprite :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_region cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_set_region (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"set_region\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Sprite.set_region\n\n{-# NOINLINE bindSprite_set_region_filter_clip #-}\n\n-- | If @true@, the outermost pixels get blurred out.\nbindSprite_set_region_filter_clip :: MethodBind\nbindSprite_set_region_filter_clip\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_region_filter_clip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the outermost pixels get blurred out.\nset_region_filter_clip ::\n                         (Sprite :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_region_filter_clip cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_set_region_filter_clip\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"set_region_filter_clip\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Sprite.set_region_filter_clip\n\n{-# NOINLINE bindSprite_set_region_rect #-}\n\n-- | The region of the atlas texture to display. @region_enabled@ must be @true@.\nbindSprite_set_region_rect :: MethodBind\nbindSprite_set_region_rect\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_region_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The region of the atlas texture to display. @region_enabled@ must be @true@.\nset_region_rect ::\n                  (Sprite :< cls, Object :< cls) => cls -> Rect2 -> IO ()\nset_region_rect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_set_region_rect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"set_region_rect\" '[Rect2] (IO ()) where\n        nodeMethod = Godot.Core.Sprite.set_region_rect\n\n{-# NOINLINE bindSprite_set_texture #-}\n\n-- | @Texture@ object to draw.\nbindSprite_set_texture :: MethodBind\nbindSprite_set_texture\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Texture@ object to draw.\nset_texture ::\n              (Sprite :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_set_texture (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"set_texture\" '[Texture] (IO ()) where\n        nodeMethod = Godot.Core.Sprite.set_texture\n\n{-# NOINLINE bindSprite_set_vframes #-}\n\n-- | The number of rows in the sprite sheet.\nbindSprite_set_vframes :: MethodBind\nbindSprite_set_vframes\n  = unsafePerformIO $\n      withCString \"Sprite\" $\n        \\ clsNamePtr ->\n          withCString \"set_vframes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of rows in the sprite sheet.\nset_vframes ::\n              (Sprite :< cls, Object :< cls) => cls -> Int -> IO ()\nset_vframes cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite_set_vframes (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite \"set_vframes\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Sprite.set_vframes"
  },
  {
    "path": "src/Godot/Core/Sprite3D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Sprite3D\n       (Godot.Core.Sprite3D.sig_frame_changed,\n        Godot.Core.Sprite3D.get_frame,\n        Godot.Core.Sprite3D.get_frame_coords,\n        Godot.Core.Sprite3D.get_hframes,\n        Godot.Core.Sprite3D.get_region_rect,\n        Godot.Core.Sprite3D.get_texture, Godot.Core.Sprite3D.get_vframes,\n        Godot.Core.Sprite3D.is_region, Godot.Core.Sprite3D.set_frame,\n        Godot.Core.Sprite3D.set_frame_coords,\n        Godot.Core.Sprite3D.set_hframes, Godot.Core.Sprite3D.set_region,\n        Godot.Core.Sprite3D.set_region_rect,\n        Godot.Core.Sprite3D.set_texture, Godot.Core.Sprite3D.set_vframes)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.SpriteBase3D()\n\n-- | Emitted when the @frame@ changes.\nsig_frame_changed :: Godot.Internal.Dispatch.Signal Sprite3D\nsig_frame_changed = Godot.Internal.Dispatch.Signal \"frame_changed\"\n\ninstance NodeSignal Sprite3D \"frame_changed\" '[]\n\ninstance NodeProperty Sprite3D \"frame\" Int 'False where\n        nodeProperty = (get_frame, wrapDroppingSetter set_frame, Nothing)\n\ninstance NodeProperty Sprite3D \"frame_coords\" Vector2 'False where\n        nodeProperty\n          = (get_frame_coords, wrapDroppingSetter set_frame_coords, Nothing)\n\ninstance NodeProperty Sprite3D \"hframes\" Int 'False where\n        nodeProperty\n          = (get_hframes, wrapDroppingSetter set_hframes, Nothing)\n\ninstance NodeProperty Sprite3D \"region_enabled\" Bool 'False where\n        nodeProperty = (is_region, wrapDroppingSetter set_region, Nothing)\n\ninstance NodeProperty Sprite3D \"region_rect\" Rect2 'False where\n        nodeProperty\n          = (get_region_rect, wrapDroppingSetter set_region_rect, Nothing)\n\ninstance NodeProperty Sprite3D \"texture\" Texture 'False where\n        nodeProperty\n          = (get_texture, wrapDroppingSetter set_texture, Nothing)\n\ninstance NodeProperty Sprite3D \"vframes\" Int 'False where\n        nodeProperty\n          = (get_vframes, wrapDroppingSetter set_vframes, Nothing)\n\n{-# NOINLINE bindSprite3D_get_frame #-}\n\n-- | Current frame to display from sprite sheet. @vframes@ or @hframes@ must be greater than 1.\nbindSprite3D_get_frame :: MethodBind\nbindSprite3D_get_frame\n  = unsafePerformIO $\n      withCString \"Sprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_frame\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Current frame to display from sprite sheet. @vframes@ or @hframes@ must be greater than 1.\nget_frame :: (Sprite3D :< cls, Object :< cls) => cls -> IO Int\nget_frame cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite3D_get_frame (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite3D \"get_frame\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Sprite3D.get_frame\n\n{-# NOINLINE bindSprite3D_get_frame_coords #-}\n\n-- | Coordinates of the frame to display from sprite sheet. This is as an alias for the @frame@ property. @vframes@ or @hframes@ must be greater than 1.\nbindSprite3D_get_frame_coords :: MethodBind\nbindSprite3D_get_frame_coords\n  = unsafePerformIO $\n      withCString \"Sprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_frame_coords\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Coordinates of the frame to display from sprite sheet. This is as an alias for the @frame@ property. @vframes@ or @hframes@ must be greater than 1.\nget_frame_coords ::\n                   (Sprite3D :< cls, Object :< cls) => cls -> IO Vector2\nget_frame_coords cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite3D_get_frame_coords (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite3D \"get_frame_coords\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Sprite3D.get_frame_coords\n\n{-# NOINLINE bindSprite3D_get_hframes #-}\n\n-- | The number of columns in the sprite sheet.\nbindSprite3D_get_hframes :: MethodBind\nbindSprite3D_get_hframes\n  = unsafePerformIO $\n      withCString \"Sprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_hframes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of columns in the sprite sheet.\nget_hframes :: (Sprite3D :< cls, Object :< cls) => cls -> IO Int\nget_hframes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite3D_get_hframes (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite3D \"get_hframes\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Sprite3D.get_hframes\n\n{-# NOINLINE bindSprite3D_get_region_rect #-}\n\n-- | The region of the atlas texture to display. @region_enabled@ must be @true@.\nbindSprite3D_get_region_rect :: MethodBind\nbindSprite3D_get_region_rect\n  = unsafePerformIO $\n      withCString \"Sprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_region_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The region of the atlas texture to display. @region_enabled@ must be @true@.\nget_region_rect ::\n                  (Sprite3D :< cls, Object :< cls) => cls -> IO Rect2\nget_region_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite3D_get_region_rect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite3D \"get_region_rect\" '[] (IO Rect2) where\n        nodeMethod = Godot.Core.Sprite3D.get_region_rect\n\n{-# NOINLINE bindSprite3D_get_texture #-}\n\n-- | @Texture@ object to draw. If @GeometryInstance.material_override@ is used, this will be overridden.\nbindSprite3D_get_texture :: MethodBind\nbindSprite3D_get_texture\n  = unsafePerformIO $\n      withCString \"Sprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Texture@ object to draw. If @GeometryInstance.material_override@ is used, this will be overridden.\nget_texture ::\n              (Sprite3D :< cls, Object :< cls) => cls -> IO Texture\nget_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite3D_get_texture (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite3D \"get_texture\" '[] (IO Texture) where\n        nodeMethod = Godot.Core.Sprite3D.get_texture\n\n{-# NOINLINE bindSprite3D_get_vframes #-}\n\n-- | The number of rows in the sprite sheet.\nbindSprite3D_get_vframes :: MethodBind\nbindSprite3D_get_vframes\n  = unsafePerformIO $\n      withCString \"Sprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_vframes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of rows in the sprite sheet.\nget_vframes :: (Sprite3D :< cls, Object :< cls) => cls -> IO Int\nget_vframes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite3D_get_vframes (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite3D \"get_vframes\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Sprite3D.get_vframes\n\n{-# NOINLINE bindSprite3D_is_region #-}\n\n-- | If @true@, texture will be cut from a larger atlas texture. See @region_rect@.\nbindSprite3D_is_region :: MethodBind\nbindSprite3D_is_region\n  = unsafePerformIO $\n      withCString \"Sprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"is_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture will be cut from a larger atlas texture. See @region_rect@.\nis_region :: (Sprite3D :< cls, Object :< cls) => cls -> IO Bool\nis_region cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite3D_is_region (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite3D \"is_region\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Sprite3D.is_region\n\n{-# NOINLINE bindSprite3D_set_frame #-}\n\n-- | Current frame to display from sprite sheet. @vframes@ or @hframes@ must be greater than 1.\nbindSprite3D_set_frame :: MethodBind\nbindSprite3D_set_frame\n  = unsafePerformIO $\n      withCString \"Sprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_frame\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Current frame to display from sprite sheet. @vframes@ or @hframes@ must be greater than 1.\nset_frame ::\n            (Sprite3D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_frame cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite3D_set_frame (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite3D \"set_frame\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Sprite3D.set_frame\n\n{-# NOINLINE bindSprite3D_set_frame_coords #-}\n\n-- | Coordinates of the frame to display from sprite sheet. This is as an alias for the @frame@ property. @vframes@ or @hframes@ must be greater than 1.\nbindSprite3D_set_frame_coords :: MethodBind\nbindSprite3D_set_frame_coords\n  = unsafePerformIO $\n      withCString \"Sprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_frame_coords\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Coordinates of the frame to display from sprite sheet. This is as an alias for the @frame@ property. @vframes@ or @hframes@ must be greater than 1.\nset_frame_coords ::\n                   (Sprite3D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_frame_coords cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite3D_set_frame_coords (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite3D \"set_frame_coords\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.Sprite3D.set_frame_coords\n\n{-# NOINLINE bindSprite3D_set_hframes #-}\n\n-- | The number of columns in the sprite sheet.\nbindSprite3D_set_hframes :: MethodBind\nbindSprite3D_set_hframes\n  = unsafePerformIO $\n      withCString \"Sprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_hframes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of columns in the sprite sheet.\nset_hframes ::\n              (Sprite3D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_hframes cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite3D_set_hframes (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite3D \"set_hframes\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Sprite3D.set_hframes\n\n{-# NOINLINE bindSprite3D_set_region #-}\n\n-- | If @true@, texture will be cut from a larger atlas texture. See @region_rect@.\nbindSprite3D_set_region :: MethodBind\nbindSprite3D_set_region\n  = unsafePerformIO $\n      withCString \"Sprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture will be cut from a larger atlas texture. See @region_rect@.\nset_region ::\n             (Sprite3D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_region cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite3D_set_region (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite3D \"set_region\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Sprite3D.set_region\n\n{-# NOINLINE bindSprite3D_set_region_rect #-}\n\n-- | The region of the atlas texture to display. @region_enabled@ must be @true@.\nbindSprite3D_set_region_rect :: MethodBind\nbindSprite3D_set_region_rect\n  = unsafePerformIO $\n      withCString \"Sprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_region_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The region of the atlas texture to display. @region_enabled@ must be @true@.\nset_region_rect ::\n                  (Sprite3D :< cls, Object :< cls) => cls -> Rect2 -> IO ()\nset_region_rect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite3D_set_region_rect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite3D \"set_region_rect\" '[Rect2] (IO ())\n         where\n        nodeMethod = Godot.Core.Sprite3D.set_region_rect\n\n{-# NOINLINE bindSprite3D_set_texture #-}\n\n-- | @Texture@ object to draw. If @GeometryInstance.material_override@ is used, this will be overridden.\nbindSprite3D_set_texture :: MethodBind\nbindSprite3D_set_texture\n  = unsafePerformIO $\n      withCString \"Sprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Texture@ object to draw. If @GeometryInstance.material_override@ is used, this will be overridden.\nset_texture ::\n              (Sprite3D :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite3D_set_texture (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite3D \"set_texture\" '[Texture] (IO ()) where\n        nodeMethod = Godot.Core.Sprite3D.set_texture\n\n{-# NOINLINE bindSprite3D_set_vframes #-}\n\n-- | The number of rows in the sprite sheet.\nbindSprite3D_set_vframes :: MethodBind\nbindSprite3D_set_vframes\n  = unsafePerformIO $\n      withCString \"Sprite3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_vframes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of rows in the sprite sheet.\nset_vframes ::\n              (Sprite3D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_vframes cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSprite3D_set_vframes (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Sprite3D \"set_vframes\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Sprite3D.set_vframes"
  },
  {
    "path": "src/Godot/Core/SpriteBase3D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SpriteBase3D\n       (Godot.Core.SpriteBase3D._FLAG_SHADED,\n        Godot.Core.SpriteBase3D._ALPHA_CUT_OPAQUE_PREPASS,\n        Godot.Core.SpriteBase3D._FLAG_DOUBLE_SIDED,\n        Godot.Core.SpriteBase3D._ALPHA_CUT_DISABLED,\n        Godot.Core.SpriteBase3D._ALPHA_CUT_DISCARD,\n        Godot.Core.SpriteBase3D._FLAG_MAX,\n        Godot.Core.SpriteBase3D._FLAG_TRANSPARENT,\n        Godot.Core.SpriteBase3D._im_update,\n        Godot.Core.SpriteBase3D._queue_update,\n        Godot.Core.SpriteBase3D.generate_triangle_mesh,\n        Godot.Core.SpriteBase3D.get_alpha_cut_mode,\n        Godot.Core.SpriteBase3D.get_axis,\n        Godot.Core.SpriteBase3D.get_billboard_mode,\n        Godot.Core.SpriteBase3D.get_draw_flag,\n        Godot.Core.SpriteBase3D.get_item_rect,\n        Godot.Core.SpriteBase3D.get_modulate,\n        Godot.Core.SpriteBase3D.get_offset,\n        Godot.Core.SpriteBase3D.get_opacity,\n        Godot.Core.SpriteBase3D.get_pixel_size,\n        Godot.Core.SpriteBase3D.is_centered,\n        Godot.Core.SpriteBase3D.is_flipped_h,\n        Godot.Core.SpriteBase3D.is_flipped_v,\n        Godot.Core.SpriteBase3D.set_alpha_cut_mode,\n        Godot.Core.SpriteBase3D.set_axis,\n        Godot.Core.SpriteBase3D.set_billboard_mode,\n        Godot.Core.SpriteBase3D.set_centered,\n        Godot.Core.SpriteBase3D.set_draw_flag,\n        Godot.Core.SpriteBase3D.set_flip_h,\n        Godot.Core.SpriteBase3D.set_flip_v,\n        Godot.Core.SpriteBase3D.set_modulate,\n        Godot.Core.SpriteBase3D.set_offset,\n        Godot.Core.SpriteBase3D.set_opacity,\n        Godot.Core.SpriteBase3D.set_pixel_size)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.GeometryInstance()\n\n_FLAG_SHADED :: Int\n_FLAG_SHADED = 1\n\n_ALPHA_CUT_OPAQUE_PREPASS :: Int\n_ALPHA_CUT_OPAQUE_PREPASS = 2\n\n_FLAG_DOUBLE_SIDED :: Int\n_FLAG_DOUBLE_SIDED = 2\n\n_ALPHA_CUT_DISABLED :: Int\n_ALPHA_CUT_DISABLED = 0\n\n_ALPHA_CUT_DISCARD :: Int\n_ALPHA_CUT_DISCARD = 1\n\n_FLAG_MAX :: Int\n_FLAG_MAX = 3\n\n_FLAG_TRANSPARENT :: Int\n_FLAG_TRANSPARENT = 0\n\ninstance NodeProperty SpriteBase3D \"alpha_cut\" Int 'False where\n        nodeProperty\n          = (get_alpha_cut_mode, wrapDroppingSetter set_alpha_cut_mode,\n             Nothing)\n\ninstance NodeProperty SpriteBase3D \"axis\" Int 'False where\n        nodeProperty = (get_axis, wrapDroppingSetter set_axis, Nothing)\n\ninstance NodeProperty SpriteBase3D \"billboard\" Int 'False where\n        nodeProperty\n          = (get_billboard_mode, wrapDroppingSetter set_billboard_mode,\n             Nothing)\n\ninstance NodeProperty SpriteBase3D \"centered\" Bool 'False where\n        nodeProperty\n          = (is_centered, wrapDroppingSetter set_centered, Nothing)\n\ninstance NodeProperty SpriteBase3D \"double_sided\" Bool 'False where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_draw_flag,\n             wrapIndexedSetter 2 set_draw_flag, Nothing)\n\ninstance NodeProperty SpriteBase3D \"flip_h\" Bool 'False where\n        nodeProperty\n          = (is_flipped_h, wrapDroppingSetter set_flip_h, Nothing)\n\ninstance NodeProperty SpriteBase3D \"flip_v\" Bool 'False where\n        nodeProperty\n          = (is_flipped_v, wrapDroppingSetter set_flip_v, Nothing)\n\ninstance NodeProperty SpriteBase3D \"modulate\" Color 'False where\n        nodeProperty\n          = (get_modulate, wrapDroppingSetter set_modulate, Nothing)\n\ninstance NodeProperty SpriteBase3D \"offset\" Vector2 'False where\n        nodeProperty = (get_offset, wrapDroppingSetter set_offset, Nothing)\n\ninstance NodeProperty SpriteBase3D \"opacity\" Float 'False where\n        nodeProperty\n          = (get_opacity, wrapDroppingSetter set_opacity, Nothing)\n\ninstance NodeProperty SpriteBase3D \"pixel_size\" Float 'False where\n        nodeProperty\n          = (get_pixel_size, wrapDroppingSetter set_pixel_size, Nothing)\n\ninstance NodeProperty SpriteBase3D \"shaded\" Bool 'False where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_draw_flag,\n             wrapIndexedSetter 1 set_draw_flag, Nothing)\n\ninstance NodeProperty SpriteBase3D \"transparent\" Bool 'False where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_draw_flag,\n             wrapIndexedSetter 0 set_draw_flag, Nothing)\n\n{-# NOINLINE bindSpriteBase3D__im_update #-}\n\nbindSpriteBase3D__im_update :: MethodBind\nbindSpriteBase3D__im_update\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"_im_update\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_im_update :: (SpriteBase3D :< cls, Object :< cls) => cls -> IO ()\n_im_update cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D__im_update (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"_im_update\" '[] (IO ()) where\n        nodeMethod = Godot.Core.SpriteBase3D._im_update\n\n{-# NOINLINE bindSpriteBase3D__queue_update #-}\n\nbindSpriteBase3D__queue_update :: MethodBind\nbindSpriteBase3D__queue_update\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"_queue_update\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_queue_update ::\n                (SpriteBase3D :< cls, Object :< cls) => cls -> IO ()\n_queue_update cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D__queue_update (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"_queue_update\" '[] (IO ()) where\n        nodeMethod = Godot.Core.SpriteBase3D._queue_update\n\n{-# NOINLINE bindSpriteBase3D_generate_triangle_mesh #-}\n\nbindSpriteBase3D_generate_triangle_mesh :: MethodBind\nbindSpriteBase3D_generate_triangle_mesh\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"generate_triangle_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ngenerate_triangle_mesh ::\n                         (SpriteBase3D :< cls, Object :< cls) => cls -> IO TriangleMesh\ngenerate_triangle_mesh cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_generate_triangle_mesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"generate_triangle_mesh\" '[]\n           (IO TriangleMesh)\n         where\n        nodeMethod = Godot.Core.SpriteBase3D.generate_triangle_mesh\n\n{-# NOINLINE bindSpriteBase3D_get_alpha_cut_mode #-}\n\nbindSpriteBase3D_get_alpha_cut_mode :: MethodBind\nbindSpriteBase3D_get_alpha_cut_mode\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_alpha_cut_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_alpha_cut_mode ::\n                     (SpriteBase3D :< cls, Object :< cls) => cls -> IO Int\nget_alpha_cut_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_get_alpha_cut_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"get_alpha_cut_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.SpriteBase3D.get_alpha_cut_mode\n\n{-# NOINLINE bindSpriteBase3D_get_axis #-}\n\n-- | The direction in which the front of the texture faces.\nbindSpriteBase3D_get_axis :: MethodBind\nbindSpriteBase3D_get_axis\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_axis\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The direction in which the front of the texture faces.\nget_axis :: (SpriteBase3D :< cls, Object :< cls) => cls -> IO Int\nget_axis cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_get_axis (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"get_axis\" '[] (IO Int) where\n        nodeMethod = Godot.Core.SpriteBase3D.get_axis\n\n{-# NOINLINE bindSpriteBase3D_get_billboard_mode #-}\n\nbindSpriteBase3D_get_billboard_mode :: MethodBind\nbindSpriteBase3D_get_billboard_mode\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_billboard_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_billboard_mode ::\n                     (SpriteBase3D :< cls, Object :< cls) => cls -> IO Int\nget_billboard_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_get_billboard_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"get_billboard_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.SpriteBase3D.get_billboard_mode\n\n{-# NOINLINE bindSpriteBase3D_get_draw_flag #-}\n\n-- | Returns the value of the specified flag.\nbindSpriteBase3D_get_draw_flag :: MethodBind\nbindSpriteBase3D_get_draw_flag\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_draw_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of the specified flag.\nget_draw_flag ::\n                (SpriteBase3D :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_draw_flag cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_get_draw_flag (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"get_draw_flag\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.SpriteBase3D.get_draw_flag\n\n{-# NOINLINE bindSpriteBase3D_get_item_rect #-}\n\n-- | Returns the rectangle representing this sprite.\nbindSpriteBase3D_get_item_rect :: MethodBind\nbindSpriteBase3D_get_item_rect\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the rectangle representing this sprite.\nget_item_rect ::\n                (SpriteBase3D :< cls, Object :< cls) => cls -> IO Rect2\nget_item_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_get_item_rect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"get_item_rect\" '[] (IO Rect2)\n         where\n        nodeMethod = Godot.Core.SpriteBase3D.get_item_rect\n\n{-# NOINLINE bindSpriteBase3D_get_modulate #-}\n\n-- | A color value that gets multiplied on, could be used for mood-coloring or to simulate the color of light.\nbindSpriteBase3D_get_modulate :: MethodBind\nbindSpriteBase3D_get_modulate\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_modulate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A color value that gets multiplied on, could be used for mood-coloring or to simulate the color of light.\nget_modulate ::\n               (SpriteBase3D :< cls, Object :< cls) => cls -> IO Color\nget_modulate cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_get_modulate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"get_modulate\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.SpriteBase3D.get_modulate\n\n{-# NOINLINE bindSpriteBase3D_get_offset #-}\n\n-- | The texture's drawing offset.\nbindSpriteBase3D_get_offset :: MethodBind\nbindSpriteBase3D_get_offset\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The texture's drawing offset.\nget_offset ::\n             (SpriteBase3D :< cls, Object :< cls) => cls -> IO Vector2\nget_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_get_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"get_offset\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.SpriteBase3D.get_offset\n\n{-# NOINLINE bindSpriteBase3D_get_opacity #-}\n\n-- | The objects visibility on a scale from @0@ fully invisible to @1@ fully visible.\nbindSpriteBase3D_get_opacity :: MethodBind\nbindSpriteBase3D_get_opacity\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_opacity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The objects visibility on a scale from @0@ fully invisible to @1@ fully visible.\nget_opacity ::\n              (SpriteBase3D :< cls, Object :< cls) => cls -> IO Float\nget_opacity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_get_opacity (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"get_opacity\" '[] (IO Float) where\n        nodeMethod = Godot.Core.SpriteBase3D.get_opacity\n\n{-# NOINLINE bindSpriteBase3D_get_pixel_size #-}\n\n-- | The size of one pixel's width on the sprite to scale it in 3D.\nbindSpriteBase3D_get_pixel_size :: MethodBind\nbindSpriteBase3D_get_pixel_size\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"get_pixel_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size of one pixel's width on the sprite to scale it in 3D.\nget_pixel_size ::\n                 (SpriteBase3D :< cls, Object :< cls) => cls -> IO Float\nget_pixel_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_get_pixel_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"get_pixel_size\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.SpriteBase3D.get_pixel_size\n\n{-# NOINLINE bindSpriteBase3D_is_centered #-}\n\n-- | If @true@, texture will be centered.\nbindSpriteBase3D_is_centered :: MethodBind\nbindSpriteBase3D_is_centered\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"is_centered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture will be centered.\nis_centered ::\n              (SpriteBase3D :< cls, Object :< cls) => cls -> IO Bool\nis_centered cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_is_centered (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"is_centered\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.SpriteBase3D.is_centered\n\n{-# NOINLINE bindSpriteBase3D_is_flipped_h #-}\n\n-- | If @true@, texture is flipped horizontally.\nbindSpriteBase3D_is_flipped_h :: MethodBind\nbindSpriteBase3D_is_flipped_h\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"is_flipped_h\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is flipped horizontally.\nis_flipped_h ::\n               (SpriteBase3D :< cls, Object :< cls) => cls -> IO Bool\nis_flipped_h cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_is_flipped_h (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"is_flipped_h\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.SpriteBase3D.is_flipped_h\n\n{-# NOINLINE bindSpriteBase3D_is_flipped_v #-}\n\n-- | If @true@, texture is flipped vertically.\nbindSpriteBase3D_is_flipped_v :: MethodBind\nbindSpriteBase3D_is_flipped_v\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"is_flipped_v\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is flipped vertically.\nis_flipped_v ::\n               (SpriteBase3D :< cls, Object :< cls) => cls -> IO Bool\nis_flipped_v cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_is_flipped_v (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"is_flipped_v\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.SpriteBase3D.is_flipped_v\n\n{-# NOINLINE bindSpriteBase3D_set_alpha_cut_mode #-}\n\nbindSpriteBase3D_set_alpha_cut_mode :: MethodBind\nbindSpriteBase3D_set_alpha_cut_mode\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_alpha_cut_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_alpha_cut_mode ::\n                     (SpriteBase3D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_alpha_cut_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_set_alpha_cut_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"set_alpha_cut_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteBase3D.set_alpha_cut_mode\n\n{-# NOINLINE bindSpriteBase3D_set_axis #-}\n\n-- | The direction in which the front of the texture faces.\nbindSpriteBase3D_set_axis :: MethodBind\nbindSpriteBase3D_set_axis\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_axis\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The direction in which the front of the texture faces.\nset_axis ::\n           (SpriteBase3D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_axis cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_set_axis (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"set_axis\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.SpriteBase3D.set_axis\n\n{-# NOINLINE bindSpriteBase3D_set_billboard_mode #-}\n\nbindSpriteBase3D_set_billboard_mode :: MethodBind\nbindSpriteBase3D_set_billboard_mode\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_billboard_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_billboard_mode ::\n                     (SpriteBase3D :< cls, Object :< cls) => cls -> Int -> IO ()\nset_billboard_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_set_billboard_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"set_billboard_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteBase3D.set_billboard_mode\n\n{-# NOINLINE bindSpriteBase3D_set_centered #-}\n\n-- | If @true@, texture will be centered.\nbindSpriteBase3D_set_centered :: MethodBind\nbindSpriteBase3D_set_centered\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_centered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture will be centered.\nset_centered ::\n               (SpriteBase3D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_centered cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_set_centered (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"set_centered\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteBase3D.set_centered\n\n{-# NOINLINE bindSpriteBase3D_set_draw_flag #-}\n\n-- | If @true@, the specified flag will be enabled.\nbindSpriteBase3D_set_draw_flag :: MethodBind\nbindSpriteBase3D_set_draw_flag\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_draw_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the specified flag will be enabled.\nset_draw_flag ::\n                (SpriteBase3D :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_draw_flag cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_set_draw_flag (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"set_draw_flag\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteBase3D.set_draw_flag\n\n{-# NOINLINE bindSpriteBase3D_set_flip_h #-}\n\n-- | If @true@, texture is flipped horizontally.\nbindSpriteBase3D_set_flip_h :: MethodBind\nbindSpriteBase3D_set_flip_h\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_flip_h\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is flipped horizontally.\nset_flip_h ::\n             (SpriteBase3D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_flip_h cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_set_flip_h (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"set_flip_h\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.SpriteBase3D.set_flip_h\n\n{-# NOINLINE bindSpriteBase3D_set_flip_v #-}\n\n-- | If @true@, texture is flipped vertically.\nbindSpriteBase3D_set_flip_v :: MethodBind\nbindSpriteBase3D_set_flip_v\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_flip_v\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is flipped vertically.\nset_flip_v ::\n             (SpriteBase3D :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_flip_v cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_set_flip_v (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"set_flip_v\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.SpriteBase3D.set_flip_v\n\n{-# NOINLINE bindSpriteBase3D_set_modulate #-}\n\n-- | A color value that gets multiplied on, could be used for mood-coloring or to simulate the color of light.\nbindSpriteBase3D_set_modulate :: MethodBind\nbindSpriteBase3D_set_modulate\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_modulate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A color value that gets multiplied on, could be used for mood-coloring or to simulate the color of light.\nset_modulate ::\n               (SpriteBase3D :< cls, Object :< cls) => cls -> Color -> IO ()\nset_modulate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_set_modulate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"set_modulate\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteBase3D.set_modulate\n\n{-# NOINLINE bindSpriteBase3D_set_offset #-}\n\n-- | The texture's drawing offset.\nbindSpriteBase3D_set_offset :: MethodBind\nbindSpriteBase3D_set_offset\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The texture's drawing offset.\nset_offset ::\n             (SpriteBase3D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_set_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"set_offset\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteBase3D.set_offset\n\n{-# NOINLINE bindSpriteBase3D_set_opacity #-}\n\n-- | The objects visibility on a scale from @0@ fully invisible to @1@ fully visible.\nbindSpriteBase3D_set_opacity :: MethodBind\nbindSpriteBase3D_set_opacity\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_opacity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The objects visibility on a scale from @0@ fully invisible to @1@ fully visible.\nset_opacity ::\n              (SpriteBase3D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_opacity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_set_opacity (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"set_opacity\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteBase3D.set_opacity\n\n{-# NOINLINE bindSpriteBase3D_set_pixel_size #-}\n\n-- | The size of one pixel's width on the sprite to scale it in 3D.\nbindSpriteBase3D_set_pixel_size :: MethodBind\nbindSpriteBase3D_set_pixel_size\n  = unsafePerformIO $\n      withCString \"SpriteBase3D\" $\n        \\ clsNamePtr ->\n          withCString \"set_pixel_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size of one pixel's width on the sprite to scale it in 3D.\nset_pixel_size ::\n                 (SpriteBase3D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_pixel_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteBase3D_set_pixel_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteBase3D \"set_pixel_size\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteBase3D.set_pixel_size"
  },
  {
    "path": "src/Godot/Core/SpriteFrames.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SpriteFrames\n       (Godot.Core.SpriteFrames._get_animations,\n        Godot.Core.SpriteFrames._get_frames,\n        Godot.Core.SpriteFrames._set_animations,\n        Godot.Core.SpriteFrames._set_frames,\n        Godot.Core.SpriteFrames.add_animation,\n        Godot.Core.SpriteFrames.add_frame, Godot.Core.SpriteFrames.clear,\n        Godot.Core.SpriteFrames.clear_all,\n        Godot.Core.SpriteFrames.get_animation_loop,\n        Godot.Core.SpriteFrames.get_animation_names,\n        Godot.Core.SpriteFrames.get_animation_speed,\n        Godot.Core.SpriteFrames.get_frame,\n        Godot.Core.SpriteFrames.get_frame_count,\n        Godot.Core.SpriteFrames.has_animation,\n        Godot.Core.SpriteFrames.remove_animation,\n        Godot.Core.SpriteFrames.remove_frame,\n        Godot.Core.SpriteFrames.rename_animation,\n        Godot.Core.SpriteFrames.set_animation_loop,\n        Godot.Core.SpriteFrames.set_animation_speed,\n        Godot.Core.SpriteFrames.set_frame)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty SpriteFrames \"animations\" Array 'False where\n        nodeProperty\n          = (_get_animations, wrapDroppingSetter _set_animations, Nothing)\n\ninstance NodeProperty SpriteFrames \"frames\" Array 'False where\n        nodeProperty\n          = (_get_frames, wrapDroppingSetter _set_frames, Nothing)\n\n{-# NOINLINE bindSpriteFrames__get_animations #-}\n\nbindSpriteFrames__get_animations :: MethodBind\nbindSpriteFrames__get_animations\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"_get_animations\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_animations ::\n                  (SpriteFrames :< cls, Object :< cls) => cls -> IO Array\n_get_animations cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames__get_animations\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"_get_animations\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.SpriteFrames._get_animations\n\n{-# NOINLINE bindSpriteFrames__get_frames #-}\n\n-- | Compatibility property, always equals to an empty array.\nbindSpriteFrames__get_frames :: MethodBind\nbindSpriteFrames__get_frames\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"_get_frames\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Compatibility property, always equals to an empty array.\n_get_frames ::\n              (SpriteFrames :< cls, Object :< cls) => cls -> IO Array\n_get_frames cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames__get_frames (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"_get_frames\" '[] (IO Array) where\n        nodeMethod = Godot.Core.SpriteFrames._get_frames\n\n{-# NOINLINE bindSpriteFrames__set_animations #-}\n\nbindSpriteFrames__set_animations :: MethodBind\nbindSpriteFrames__set_animations\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"_set_animations\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_animations ::\n                  (SpriteFrames :< cls, Object :< cls) => cls -> Array -> IO ()\n_set_animations cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames__set_animations\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"_set_animations\" '[Array] (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteFrames._set_animations\n\n{-# NOINLINE bindSpriteFrames__set_frames #-}\n\n-- | Compatibility property, always equals to an empty array.\nbindSpriteFrames__set_frames :: MethodBind\nbindSpriteFrames__set_frames\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"_set_frames\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Compatibility property, always equals to an empty array.\n_set_frames ::\n              (SpriteFrames :< cls, Object :< cls) => cls -> Array -> IO ()\n_set_frames cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames__set_frames (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"_set_frames\" '[Array] (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteFrames._set_frames\n\n{-# NOINLINE bindSpriteFrames_add_animation #-}\n\n-- | Adds a new animation to the library.\nbindSpriteFrames_add_animation :: MethodBind\nbindSpriteFrames_add_animation\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"add_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new animation to the library.\nadd_animation ::\n                (SpriteFrames :< cls, Object :< cls) => cls -> GodotString -> IO ()\nadd_animation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames_add_animation (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"add_animation\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteFrames.add_animation\n\n{-# NOINLINE bindSpriteFrames_add_frame #-}\n\n-- | Adds a frame to the given animation.\nbindSpriteFrames_add_frame :: MethodBind\nbindSpriteFrames_add_frame\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"add_frame\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a frame to the given animation.\nadd_frame ::\n            (SpriteFrames :< cls, Object :< cls) =>\n            cls -> GodotString -> Texture -> Maybe Int -> IO ()\nadd_frame cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (-1)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames_add_frame (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"add_frame\"\n           '[GodotString, Texture, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteFrames.add_frame\n\n{-# NOINLINE bindSpriteFrames_clear #-}\n\n-- | Removes all frames from the given animation.\nbindSpriteFrames_clear :: MethodBind\nbindSpriteFrames_clear\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all frames from the given animation.\nclear ::\n        (SpriteFrames :< cls, Object :< cls) => cls -> GodotString -> IO ()\nclear cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames_clear (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"clear\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteFrames.clear\n\n{-# NOINLINE bindSpriteFrames_clear_all #-}\n\n-- | Removes all animations. A \"default\" animation will be created.\nbindSpriteFrames_clear_all :: MethodBind\nbindSpriteFrames_clear_all\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"clear_all\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all animations. A \"default\" animation will be created.\nclear_all :: (SpriteFrames :< cls, Object :< cls) => cls -> IO ()\nclear_all cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames_clear_all (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"clear_all\" '[] (IO ()) where\n        nodeMethod = Godot.Core.SpriteFrames.clear_all\n\n{-# NOINLINE bindSpriteFrames_get_animation_loop #-}\n\n-- | If @true@, the given animation will loop.\nbindSpriteFrames_get_animation_loop :: MethodBind\nbindSpriteFrames_get_animation_loop\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"get_animation_loop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the given animation will loop.\nget_animation_loop ::\n                     (SpriteFrames :< cls, Object :< cls) =>\n                     cls -> GodotString -> IO Bool\nget_animation_loop cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames_get_animation_loop\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"get_animation_loop\"\n           '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.SpriteFrames.get_animation_loop\n\n{-# NOINLINE bindSpriteFrames_get_animation_names #-}\n\n-- | Returns an array containing the names associated to each animation. Values are placed in alphabetical order.\nbindSpriteFrames_get_animation_names :: MethodBind\nbindSpriteFrames_get_animation_names\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"get_animation_names\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array containing the names associated to each animation. Values are placed in alphabetical order.\nget_animation_names ::\n                      (SpriteFrames :< cls, Object :< cls) => cls -> IO PoolStringArray\nget_animation_names cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames_get_animation_names\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"get_animation_names\" '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.SpriteFrames.get_animation_names\n\n{-# NOINLINE bindSpriteFrames_get_animation_speed #-}\n\n-- | The animation's speed in frames per second.\nbindSpriteFrames_get_animation_speed :: MethodBind\nbindSpriteFrames_get_animation_speed\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"get_animation_speed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The animation's speed in frames per second.\nget_animation_speed ::\n                      (SpriteFrames :< cls, Object :< cls) =>\n                      cls -> GodotString -> IO Float\nget_animation_speed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames_get_animation_speed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"get_animation_speed\"\n           '[GodotString]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.SpriteFrames.get_animation_speed\n\n{-# NOINLINE bindSpriteFrames_get_frame #-}\n\n-- | Returns the animation's selected frame.\nbindSpriteFrames_get_frame :: MethodBind\nbindSpriteFrames_get_frame\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"get_frame\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the animation's selected frame.\nget_frame ::\n            (SpriteFrames :< cls, Object :< cls) =>\n            cls -> GodotString -> Int -> IO Texture\nget_frame cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames_get_frame (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"get_frame\" '[GodotString, Int]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.SpriteFrames.get_frame\n\n{-# NOINLINE bindSpriteFrames_get_frame_count #-}\n\n-- | Returns the number of frames in the animation.\nbindSpriteFrames_get_frame_count :: MethodBind\nbindSpriteFrames_get_frame_count\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"get_frame_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of frames in the animation.\nget_frame_count ::\n                  (SpriteFrames :< cls, Object :< cls) =>\n                  cls -> GodotString -> IO Int\nget_frame_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames_get_frame_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"get_frame_count\" '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.SpriteFrames.get_frame_count\n\n{-# NOINLINE bindSpriteFrames_has_animation #-}\n\n-- | If @true@, the named animation exists.\nbindSpriteFrames_has_animation :: MethodBind\nbindSpriteFrames_has_animation\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"has_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the named animation exists.\nhas_animation ::\n                (SpriteFrames :< cls, Object :< cls) =>\n                cls -> GodotString -> IO Bool\nhas_animation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames_has_animation (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"has_animation\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.SpriteFrames.has_animation\n\n{-# NOINLINE bindSpriteFrames_remove_animation #-}\n\n-- | Removes the given animation.\nbindSpriteFrames_remove_animation :: MethodBind\nbindSpriteFrames_remove_animation\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"remove_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the given animation.\nremove_animation ::\n                   (SpriteFrames :< cls, Object :< cls) => cls -> GodotString -> IO ()\nremove_animation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames_remove_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"remove_animation\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteFrames.remove_animation\n\n{-# NOINLINE bindSpriteFrames_remove_frame #-}\n\n-- | Removes the animation's selected frame.\nbindSpriteFrames_remove_frame :: MethodBind\nbindSpriteFrames_remove_frame\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"remove_frame\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the animation's selected frame.\nremove_frame ::\n               (SpriteFrames :< cls, Object :< cls) =>\n               cls -> GodotString -> Int -> IO ()\nremove_frame cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames_remove_frame (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"remove_frame\" '[GodotString, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteFrames.remove_frame\n\n{-# NOINLINE bindSpriteFrames_rename_animation #-}\n\n-- | Changes the animation's name to @newname@.\nbindSpriteFrames_rename_animation :: MethodBind\nbindSpriteFrames_rename_animation\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"rename_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Changes the animation's name to @newname@.\nrename_animation ::\n                   (SpriteFrames :< cls, Object :< cls) =>\n                   cls -> GodotString -> GodotString -> IO ()\nrename_animation cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames_rename_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"rename_animation\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteFrames.rename_animation\n\n{-# NOINLINE bindSpriteFrames_set_animation_loop #-}\n\n-- | If @true@, the animation will loop.\nbindSpriteFrames_set_animation_loop :: MethodBind\nbindSpriteFrames_set_animation_loop\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"set_animation_loop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the animation will loop.\nset_animation_loop ::\n                     (SpriteFrames :< cls, Object :< cls) =>\n                     cls -> GodotString -> Bool -> IO ()\nset_animation_loop cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames_set_animation_loop\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"set_animation_loop\"\n           '[GodotString, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteFrames.set_animation_loop\n\n{-# NOINLINE bindSpriteFrames_set_animation_speed #-}\n\n-- | The animation's speed in frames per second.\nbindSpriteFrames_set_animation_speed :: MethodBind\nbindSpriteFrames_set_animation_speed\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"set_animation_speed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The animation's speed in frames per second.\nset_animation_speed ::\n                      (SpriteFrames :< cls, Object :< cls) =>\n                      cls -> GodotString -> Float -> IO ()\nset_animation_speed cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames_set_animation_speed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"set_animation_speed\"\n           '[GodotString, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteFrames.set_animation_speed\n\n{-# NOINLINE bindSpriteFrames_set_frame #-}\n\n-- | Sets the texture of the given frame.\nbindSpriteFrames_set_frame :: MethodBind\nbindSpriteFrames_set_frame\n  = unsafePerformIO $\n      withCString \"SpriteFrames\" $\n        \\ clsNamePtr ->\n          withCString \"set_frame\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the texture of the given frame.\nset_frame ::\n            (SpriteFrames :< cls, Object :< cls) =>\n            cls -> GodotString -> Int -> Texture -> IO ()\nset_frame cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSpriteFrames_set_frame (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SpriteFrames \"set_frame\"\n           '[GodotString, Int, Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SpriteFrames.set_frame"
  },
  {
    "path": "src/Godot/Core/StaticBody.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.StaticBody\n       (Godot.Core.StaticBody._reload_physics_characteristics,\n        Godot.Core.StaticBody.get_bounce,\n        Godot.Core.StaticBody.get_constant_angular_velocity,\n        Godot.Core.StaticBody.get_constant_linear_velocity,\n        Godot.Core.StaticBody.get_friction,\n        Godot.Core.StaticBody.get_physics_material_override,\n        Godot.Core.StaticBody.set_bounce,\n        Godot.Core.StaticBody.set_constant_angular_velocity,\n        Godot.Core.StaticBody.set_constant_linear_velocity,\n        Godot.Core.StaticBody.set_friction,\n        Godot.Core.StaticBody.set_physics_material_override)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PhysicsBody()\n\ninstance NodeProperty StaticBody \"bounce\" Float 'False where\n        nodeProperty = (get_bounce, wrapDroppingSetter set_bounce, Nothing)\n\ninstance NodeProperty StaticBody \"constant_angular_velocity\"\n           Vector3\n           'False\n         where\n        nodeProperty\n          = (get_constant_angular_velocity,\n             wrapDroppingSetter set_constant_angular_velocity, Nothing)\n\ninstance NodeProperty StaticBody \"constant_linear_velocity\" Vector3\n           'False\n         where\n        nodeProperty\n          = (get_constant_linear_velocity,\n             wrapDroppingSetter set_constant_linear_velocity, Nothing)\n\ninstance NodeProperty StaticBody \"friction\" Float 'False where\n        nodeProperty\n          = (get_friction, wrapDroppingSetter set_friction, Nothing)\n\ninstance NodeProperty StaticBody \"physics_material_override\"\n           PhysicsMaterial\n           'False\n         where\n        nodeProperty\n          = (get_physics_material_override,\n             wrapDroppingSetter set_physics_material_override, Nothing)\n\n{-# NOINLINE bindStaticBody__reload_physics_characteristics #-}\n\nbindStaticBody__reload_physics_characteristics :: MethodBind\nbindStaticBody__reload_physics_characteristics\n  = unsafePerformIO $\n      withCString \"StaticBody\" $\n        \\ clsNamePtr ->\n          withCString \"_reload_physics_characteristics\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_reload_physics_characteristics ::\n                                  (StaticBody :< cls, Object :< cls) => cls -> IO ()\n_reload_physics_characteristics cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindStaticBody__reload_physics_characteristics\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody \"_reload_physics_characteristics\"\n           '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StaticBody._reload_physics_characteristics\n\n{-# NOINLINE bindStaticBody_get_bounce #-}\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\n--   \t\t\tDeprecated, use @PhysicsMaterial.bounce@ instead via @physics_material_override@.\nbindStaticBody_get_bounce :: MethodBind\nbindStaticBody_get_bounce\n  = unsafePerformIO $\n      withCString \"StaticBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_bounce\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\n--   \t\t\tDeprecated, use @PhysicsMaterial.bounce@ instead via @physics_material_override@.\nget_bounce :: (StaticBody :< cls, Object :< cls) => cls -> IO Float\nget_bounce cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStaticBody_get_bounce (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody \"get_bounce\" '[] (IO Float) where\n        nodeMethod = Godot.Core.StaticBody.get_bounce\n\n{-# NOINLINE bindStaticBody_get_constant_angular_velocity #-}\n\n-- | The body's constant angular velocity. This does not rotate the body, but affects other bodies that touch it, as if it was in a state of rotation.\nbindStaticBody_get_constant_angular_velocity :: MethodBind\nbindStaticBody_get_constant_angular_velocity\n  = unsafePerformIO $\n      withCString \"StaticBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_constant_angular_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's constant angular velocity. This does not rotate the body, but affects other bodies that touch it, as if it was in a state of rotation.\nget_constant_angular_velocity ::\n                                (StaticBody :< cls, Object :< cls) => cls -> IO Vector3\nget_constant_angular_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStaticBody_get_constant_angular_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody \"get_constant_angular_velocity\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.StaticBody.get_constant_angular_velocity\n\n{-# NOINLINE bindStaticBody_get_constant_linear_velocity #-}\n\n-- | The body's constant linear velocity. This does not move the body, but affects other bodies that touch it, as if it was in a state of movement.\nbindStaticBody_get_constant_linear_velocity :: MethodBind\nbindStaticBody_get_constant_linear_velocity\n  = unsafePerformIO $\n      withCString \"StaticBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_constant_linear_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's constant linear velocity. This does not move the body, but affects other bodies that touch it, as if it was in a state of movement.\nget_constant_linear_velocity ::\n                               (StaticBody :< cls, Object :< cls) => cls -> IO Vector3\nget_constant_linear_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStaticBody_get_constant_linear_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody \"get_constant_linear_velocity\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.StaticBody.get_constant_linear_velocity\n\n{-# NOINLINE bindStaticBody_get_friction #-}\n\n-- | The body's friction, from 0 (frictionless) to 1 (full friction).\n--   \t\t\tDeprecated, use @PhysicsMaterial.friction@ instead via @physics_material_override@.\nbindStaticBody_get_friction :: MethodBind\nbindStaticBody_get_friction\n  = unsafePerformIO $\n      withCString \"StaticBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_friction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's friction, from 0 (frictionless) to 1 (full friction).\n--   \t\t\tDeprecated, use @PhysicsMaterial.friction@ instead via @physics_material_override@.\nget_friction ::\n               (StaticBody :< cls, Object :< cls) => cls -> IO Float\nget_friction cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStaticBody_get_friction (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody \"get_friction\" '[] (IO Float) where\n        nodeMethod = Godot.Core.StaticBody.get_friction\n\n{-# NOINLINE bindStaticBody_get_physics_material_override #-}\n\n-- | The physics material override for the body.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.\nbindStaticBody_get_physics_material_override :: MethodBind\nbindStaticBody_get_physics_material_override\n  = unsafePerformIO $\n      withCString \"StaticBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_physics_material_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics material override for the body.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.\nget_physics_material_override ::\n                                (StaticBody :< cls, Object :< cls) => cls -> IO PhysicsMaterial\nget_physics_material_override cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStaticBody_get_physics_material_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody \"get_physics_material_override\" '[]\n           (IO PhysicsMaterial)\n         where\n        nodeMethod = Godot.Core.StaticBody.get_physics_material_override\n\n{-# NOINLINE bindStaticBody_set_bounce #-}\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\n--   \t\t\tDeprecated, use @PhysicsMaterial.bounce@ instead via @physics_material_override@.\nbindStaticBody_set_bounce :: MethodBind\nbindStaticBody_set_bounce\n  = unsafePerformIO $\n      withCString \"StaticBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_bounce\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\n--   \t\t\tDeprecated, use @PhysicsMaterial.bounce@ instead via @physics_material_override@.\nset_bounce ::\n             (StaticBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_bounce cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStaticBody_set_bounce (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody \"set_bounce\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.StaticBody.set_bounce\n\n{-# NOINLINE bindStaticBody_set_constant_angular_velocity #-}\n\n-- | The body's constant angular velocity. This does not rotate the body, but affects other bodies that touch it, as if it was in a state of rotation.\nbindStaticBody_set_constant_angular_velocity :: MethodBind\nbindStaticBody_set_constant_angular_velocity\n  = unsafePerformIO $\n      withCString \"StaticBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_constant_angular_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's constant angular velocity. This does not rotate the body, but affects other bodies that touch it, as if it was in a state of rotation.\nset_constant_angular_velocity ::\n                                (StaticBody :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_constant_angular_velocity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStaticBody_set_constant_angular_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody \"set_constant_angular_velocity\"\n           '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StaticBody.set_constant_angular_velocity\n\n{-# NOINLINE bindStaticBody_set_constant_linear_velocity #-}\n\n-- | The body's constant linear velocity. This does not move the body, but affects other bodies that touch it, as if it was in a state of movement.\nbindStaticBody_set_constant_linear_velocity :: MethodBind\nbindStaticBody_set_constant_linear_velocity\n  = unsafePerformIO $\n      withCString \"StaticBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_constant_linear_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's constant linear velocity. This does not move the body, but affects other bodies that touch it, as if it was in a state of movement.\nset_constant_linear_velocity ::\n                               (StaticBody :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nset_constant_linear_velocity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStaticBody_set_constant_linear_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody \"set_constant_linear_velocity\"\n           '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StaticBody.set_constant_linear_velocity\n\n{-# NOINLINE bindStaticBody_set_friction #-}\n\n-- | The body's friction, from 0 (frictionless) to 1 (full friction).\n--   \t\t\tDeprecated, use @PhysicsMaterial.friction@ instead via @physics_material_override@.\nbindStaticBody_set_friction :: MethodBind\nbindStaticBody_set_friction\n  = unsafePerformIO $\n      withCString \"StaticBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_friction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's friction, from 0 (frictionless) to 1 (full friction).\n--   \t\t\tDeprecated, use @PhysicsMaterial.friction@ instead via @physics_material_override@.\nset_friction ::\n               (StaticBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_friction cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStaticBody_set_friction (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody \"set_friction\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.StaticBody.set_friction\n\n{-# NOINLINE bindStaticBody_set_physics_material_override #-}\n\n-- | The physics material override for the body.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.\nbindStaticBody_set_physics_material_override :: MethodBind\nbindStaticBody_set_physics_material_override\n  = unsafePerformIO $\n      withCString \"StaticBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_physics_material_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics material override for the body.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.\nset_physics_material_override ::\n                                (StaticBody :< cls, Object :< cls) =>\n                                cls -> PhysicsMaterial -> IO ()\nset_physics_material_override cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStaticBody_set_physics_material_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody \"set_physics_material_override\"\n           '[PhysicsMaterial]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StaticBody.set_physics_material_override"
  },
  {
    "path": "src/Godot/Core/StaticBody2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.StaticBody2D\n       (Godot.Core.StaticBody2D._reload_physics_characteristics,\n        Godot.Core.StaticBody2D.get_bounce,\n        Godot.Core.StaticBody2D.get_constant_angular_velocity,\n        Godot.Core.StaticBody2D.get_constant_linear_velocity,\n        Godot.Core.StaticBody2D.get_friction,\n        Godot.Core.StaticBody2D.get_physics_material_override,\n        Godot.Core.StaticBody2D.set_bounce,\n        Godot.Core.StaticBody2D.set_constant_angular_velocity,\n        Godot.Core.StaticBody2D.set_constant_linear_velocity,\n        Godot.Core.StaticBody2D.set_friction,\n        Godot.Core.StaticBody2D.set_physics_material_override)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PhysicsBody2D()\n\ninstance NodeProperty StaticBody2D \"bounce\" Float 'False where\n        nodeProperty = (get_bounce, wrapDroppingSetter set_bounce, Nothing)\n\ninstance NodeProperty StaticBody2D \"constant_angular_velocity\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_constant_angular_velocity,\n             wrapDroppingSetter set_constant_angular_velocity, Nothing)\n\ninstance NodeProperty StaticBody2D \"constant_linear_velocity\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (get_constant_linear_velocity,\n             wrapDroppingSetter set_constant_linear_velocity, Nothing)\n\ninstance NodeProperty StaticBody2D \"friction\" Float 'False where\n        nodeProperty\n          = (get_friction, wrapDroppingSetter set_friction, Nothing)\n\ninstance NodeProperty StaticBody2D \"physics_material_override\"\n           PhysicsMaterial\n           'False\n         where\n        nodeProperty\n          = (get_physics_material_override,\n             wrapDroppingSetter set_physics_material_override, Nothing)\n\n{-# NOINLINE bindStaticBody2D__reload_physics_characteristics #-}\n\nbindStaticBody2D__reload_physics_characteristics :: MethodBind\nbindStaticBody2D__reload_physics_characteristics\n  = unsafePerformIO $\n      withCString \"StaticBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"_reload_physics_characteristics\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_reload_physics_characteristics ::\n                                  (StaticBody2D :< cls, Object :< cls) => cls -> IO ()\n_reload_physics_characteristics cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindStaticBody2D__reload_physics_characteristics\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody2D \"_reload_physics_characteristics\"\n           '[]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.StaticBody2D._reload_physics_characteristics\n\n{-# NOINLINE bindStaticBody2D_get_bounce #-}\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\n--   \t\t\tDeprecated, use @PhysicsMaterial.bounce@ instead via @physics_material_override@.\nbindStaticBody2D_get_bounce :: MethodBind\nbindStaticBody2D_get_bounce\n  = unsafePerformIO $\n      withCString \"StaticBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_bounce\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\n--   \t\t\tDeprecated, use @PhysicsMaterial.bounce@ instead via @physics_material_override@.\nget_bounce ::\n             (StaticBody2D :< cls, Object :< cls) => cls -> IO Float\nget_bounce cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStaticBody2D_get_bounce (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody2D \"get_bounce\" '[] (IO Float) where\n        nodeMethod = Godot.Core.StaticBody2D.get_bounce\n\n{-# NOINLINE bindStaticBody2D_get_constant_angular_velocity #-}\n\n-- | The body's constant angular velocity. This does not rotate the body, but affects colliding bodies, as if it were rotating.\nbindStaticBody2D_get_constant_angular_velocity :: MethodBind\nbindStaticBody2D_get_constant_angular_velocity\n  = unsafePerformIO $\n      withCString \"StaticBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_constant_angular_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's constant angular velocity. This does not rotate the body, but affects colliding bodies, as if it were rotating.\nget_constant_angular_velocity ::\n                                (StaticBody2D :< cls, Object :< cls) => cls -> IO Float\nget_constant_angular_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindStaticBody2D_get_constant_angular_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody2D \"get_constant_angular_velocity\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.StaticBody2D.get_constant_angular_velocity\n\n{-# NOINLINE bindStaticBody2D_get_constant_linear_velocity #-}\n\n-- | The body's constant linear velocity. This does not move the body, but affects colliding bodies, as if it were moving.\nbindStaticBody2D_get_constant_linear_velocity :: MethodBind\nbindStaticBody2D_get_constant_linear_velocity\n  = unsafePerformIO $\n      withCString \"StaticBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_constant_linear_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's constant linear velocity. This does not move the body, but affects colliding bodies, as if it were moving.\nget_constant_linear_velocity ::\n                               (StaticBody2D :< cls, Object :< cls) => cls -> IO Vector2\nget_constant_linear_velocity cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindStaticBody2D_get_constant_linear_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody2D \"get_constant_linear_velocity\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.StaticBody2D.get_constant_linear_velocity\n\n{-# NOINLINE bindStaticBody2D_get_friction #-}\n\n-- | The body's friction. Values range from @0@ (no friction) to @1@ (full friction).\n--   \t\t\tDeprecated, use @PhysicsMaterial.friction@ instead via @physics_material_override@.\nbindStaticBody2D_get_friction :: MethodBind\nbindStaticBody2D_get_friction\n  = unsafePerformIO $\n      withCString \"StaticBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_friction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's friction. Values range from @0@ (no friction) to @1@ (full friction).\n--   \t\t\tDeprecated, use @PhysicsMaterial.friction@ instead via @physics_material_override@.\nget_friction ::\n               (StaticBody2D :< cls, Object :< cls) => cls -> IO Float\nget_friction cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStaticBody2D_get_friction (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody2D \"get_friction\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.StaticBody2D.get_friction\n\n{-# NOINLINE bindStaticBody2D_get_physics_material_override #-}\n\n-- | The physics material override for the body.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.\nbindStaticBody2D_get_physics_material_override :: MethodBind\nbindStaticBody2D_get_physics_material_override\n  = unsafePerformIO $\n      withCString \"StaticBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_physics_material_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics material override for the body.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.\nget_physics_material_override ::\n                                (StaticBody2D :< cls, Object :< cls) => cls -> IO PhysicsMaterial\nget_physics_material_override cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindStaticBody2D_get_physics_material_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody2D \"get_physics_material_override\"\n           '[]\n           (IO PhysicsMaterial)\n         where\n        nodeMethod = Godot.Core.StaticBody2D.get_physics_material_override\n\n{-# NOINLINE bindStaticBody2D_set_bounce #-}\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\n--   \t\t\tDeprecated, use @PhysicsMaterial.bounce@ instead via @physics_material_override@.\nbindStaticBody2D_set_bounce :: MethodBind\nbindStaticBody2D_set_bounce\n  = unsafePerformIO $\n      withCString \"StaticBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_bounce\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's bounciness. Values range from @0@ (no bounce) to @1@ (full bounciness).\n--   \t\t\tDeprecated, use @PhysicsMaterial.bounce@ instead via @physics_material_override@.\nset_bounce ::\n             (StaticBody2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_bounce cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStaticBody2D_set_bounce (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody2D \"set_bounce\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.StaticBody2D.set_bounce\n\n{-# NOINLINE bindStaticBody2D_set_constant_angular_velocity #-}\n\n-- | The body's constant angular velocity. This does not rotate the body, but affects colliding bodies, as if it were rotating.\nbindStaticBody2D_set_constant_angular_velocity :: MethodBind\nbindStaticBody2D_set_constant_angular_velocity\n  = unsafePerformIO $\n      withCString \"StaticBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_constant_angular_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's constant angular velocity. This does not rotate the body, but affects colliding bodies, as if it were rotating.\nset_constant_angular_velocity ::\n                                (StaticBody2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_constant_angular_velocity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindStaticBody2D_set_constant_angular_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody2D \"set_constant_angular_velocity\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StaticBody2D.set_constant_angular_velocity\n\n{-# NOINLINE bindStaticBody2D_set_constant_linear_velocity #-}\n\n-- | The body's constant linear velocity. This does not move the body, but affects colliding bodies, as if it were moving.\nbindStaticBody2D_set_constant_linear_velocity :: MethodBind\nbindStaticBody2D_set_constant_linear_velocity\n  = unsafePerformIO $\n      withCString \"StaticBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_constant_linear_velocity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's constant linear velocity. This does not move the body, but affects colliding bodies, as if it were moving.\nset_constant_linear_velocity ::\n                               (StaticBody2D :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_constant_linear_velocity cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindStaticBody2D_set_constant_linear_velocity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody2D \"set_constant_linear_velocity\"\n           '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StaticBody2D.set_constant_linear_velocity\n\n{-# NOINLINE bindStaticBody2D_set_friction #-}\n\n-- | The body's friction. Values range from @0@ (no friction) to @1@ (full friction).\n--   \t\t\tDeprecated, use @PhysicsMaterial.friction@ instead via @physics_material_override@.\nbindStaticBody2D_set_friction :: MethodBind\nbindStaticBody2D_set_friction\n  = unsafePerformIO $\n      withCString \"StaticBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_friction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The body's friction. Values range from @0@ (no friction) to @1@ (full friction).\n--   \t\t\tDeprecated, use @PhysicsMaterial.friction@ instead via @physics_material_override@.\nset_friction ::\n               (StaticBody2D :< cls, Object :< cls) => cls -> Float -> IO ()\nset_friction cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStaticBody2D_set_friction (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody2D \"set_friction\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.StaticBody2D.set_friction\n\n{-# NOINLINE bindStaticBody2D_set_physics_material_override #-}\n\n-- | The physics material override for the body.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.\nbindStaticBody2D_set_physics_material_override :: MethodBind\nbindStaticBody2D_set_physics_material_override\n  = unsafePerformIO $\n      withCString \"StaticBody2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_physics_material_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The physics material override for the body.\n--   \t\t\tIf a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.\nset_physics_material_override ::\n                                (StaticBody2D :< cls, Object :< cls) =>\n                                cls -> PhysicsMaterial -> IO ()\nset_physics_material_override cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindStaticBody2D_set_physics_material_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StaticBody2D \"set_physics_material_override\"\n           '[PhysicsMaterial]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StaticBody2D.set_physics_material_override"
  },
  {
    "path": "src/Godot/Core/StreamPeer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.StreamPeer\n       (Godot.Core.StreamPeer.get_16, Godot.Core.StreamPeer.get_32,\n        Godot.Core.StreamPeer.get_64, Godot.Core.StreamPeer.get_8,\n        Godot.Core.StreamPeer.get_available_bytes,\n        Godot.Core.StreamPeer.get_data, Godot.Core.StreamPeer.get_double,\n        Godot.Core.StreamPeer.get_float,\n        Godot.Core.StreamPeer.get_partial_data,\n        Godot.Core.StreamPeer.get_string, Godot.Core.StreamPeer.get_u16,\n        Godot.Core.StreamPeer.get_u32, Godot.Core.StreamPeer.get_u64,\n        Godot.Core.StreamPeer.get_u8,\n        Godot.Core.StreamPeer.get_utf8_string,\n        Godot.Core.StreamPeer.get_var,\n        Godot.Core.StreamPeer.is_big_endian_enabled,\n        Godot.Core.StreamPeer.put_16, Godot.Core.StreamPeer.put_32,\n        Godot.Core.StreamPeer.put_64, Godot.Core.StreamPeer.put_8,\n        Godot.Core.StreamPeer.put_data, Godot.Core.StreamPeer.put_double,\n        Godot.Core.StreamPeer.put_float,\n        Godot.Core.StreamPeer.put_partial_data,\n        Godot.Core.StreamPeer.put_string, Godot.Core.StreamPeer.put_u16,\n        Godot.Core.StreamPeer.put_u32, Godot.Core.StreamPeer.put_u64,\n        Godot.Core.StreamPeer.put_u8,\n        Godot.Core.StreamPeer.put_utf8_string,\n        Godot.Core.StreamPeer.put_var,\n        Godot.Core.StreamPeer.set_big_endian)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\ninstance NodeProperty StreamPeer \"big_endian\" Bool 'False where\n        nodeProperty\n          = (is_big_endian_enabled, wrapDroppingSetter set_big_endian,\n             Nothing)\n\n{-# NOINLINE bindStreamPeer_get_16 #-}\n\n-- | Gets a signed 16-bit value from the stream.\nbindStreamPeer_get_16 :: MethodBind\nbindStreamPeer_get_16\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_16\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a signed 16-bit value from the stream.\nget_16 :: (StreamPeer :< cls, Object :< cls) => cls -> IO Int\nget_16 cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_get_16 (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"get_16\" '[] (IO Int) where\n        nodeMethod = Godot.Core.StreamPeer.get_16\n\n{-# NOINLINE bindStreamPeer_get_32 #-}\n\n-- | Gets a signed 32-bit value from the stream.\nbindStreamPeer_get_32 :: MethodBind\nbindStreamPeer_get_32\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_32\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a signed 32-bit value from the stream.\nget_32 :: (StreamPeer :< cls, Object :< cls) => cls -> IO Int\nget_32 cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_get_32 (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"get_32\" '[] (IO Int) where\n        nodeMethod = Godot.Core.StreamPeer.get_32\n\n{-# NOINLINE bindStreamPeer_get_64 #-}\n\n-- | Gets a signed 64-bit value from the stream.\nbindStreamPeer_get_64 :: MethodBind\nbindStreamPeer_get_64\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_64\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a signed 64-bit value from the stream.\nget_64 :: (StreamPeer :< cls, Object :< cls) => cls -> IO Int\nget_64 cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_get_64 (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"get_64\" '[] (IO Int) where\n        nodeMethod = Godot.Core.StreamPeer.get_64\n\n{-# NOINLINE bindStreamPeer_get_8 #-}\n\n-- | Gets a signed byte from the stream.\nbindStreamPeer_get_8 :: MethodBind\nbindStreamPeer_get_8\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_8\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a signed byte from the stream.\nget_8 :: (StreamPeer :< cls, Object :< cls) => cls -> IO Int\nget_8 cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_get_8 (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"get_8\" '[] (IO Int) where\n        nodeMethod = Godot.Core.StreamPeer.get_8\n\n{-# NOINLINE bindStreamPeer_get_available_bytes #-}\n\n-- | Returns the amount of bytes this @StreamPeer@ has available.\nbindStreamPeer_get_available_bytes :: MethodBind\nbindStreamPeer_get_available_bytes\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_available_bytes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the amount of bytes this @StreamPeer@ has available.\nget_available_bytes ::\n                      (StreamPeer :< cls, Object :< cls) => cls -> IO Int\nget_available_bytes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_get_available_bytes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"get_available_bytes\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.StreamPeer.get_available_bytes\n\n{-# NOINLINE bindStreamPeer_get_data #-}\n\n-- | Returns a chunk data with the received bytes. The amount of bytes to be received can be requested in the @bytes@ argument. If not enough bytes are available, the function will block until the desired amount is received. This function returns two values, an @enum @GlobalScope.Error@ code and a data array.\nbindStreamPeer_get_data :: MethodBind\nbindStreamPeer_get_data\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a chunk data with the received bytes. The amount of bytes to be received can be requested in the @bytes@ argument. If not enough bytes are available, the function will block until the desired amount is received. This function returns two values, an @enum @GlobalScope.Error@ code and a data array.\nget_data ::\n           (StreamPeer :< cls, Object :< cls) => cls -> Int -> IO Array\nget_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_get_data (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"get_data\" '[Int] (IO Array) where\n        nodeMethod = Godot.Core.StreamPeer.get_data\n\n{-# NOINLINE bindStreamPeer_get_double #-}\n\n-- | Gets a double-precision float from the stream.\nbindStreamPeer_get_double :: MethodBind\nbindStreamPeer_get_double\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_double\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a double-precision float from the stream.\nget_double :: (StreamPeer :< cls, Object :< cls) => cls -> IO Float\nget_double cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_get_double (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"get_double\" '[] (IO Float) where\n        nodeMethod = Godot.Core.StreamPeer.get_double\n\n{-# NOINLINE bindStreamPeer_get_float #-}\n\n-- | Gets a single-precision float from the stream.\nbindStreamPeer_get_float :: MethodBind\nbindStreamPeer_get_float\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_float\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a single-precision float from the stream.\nget_float :: (StreamPeer :< cls, Object :< cls) => cls -> IO Float\nget_float cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_get_float (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"get_float\" '[] (IO Float) where\n        nodeMethod = Godot.Core.StreamPeer.get_float\n\n{-# NOINLINE bindStreamPeer_get_partial_data #-}\n\n-- | Returns a chunk data with the received bytes. The amount of bytes to be received can be requested in the \"bytes\" argument. If not enough bytes are available, the function will return how many were actually received. This function returns two values, an @enum @GlobalScope.Error@ code, and a data array.\nbindStreamPeer_get_partial_data :: MethodBind\nbindStreamPeer_get_partial_data\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_partial_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a chunk data with the received bytes. The amount of bytes to be received can be requested in the \"bytes\" argument. If not enough bytes are available, the function will return how many were actually received. This function returns two values, an @enum @GlobalScope.Error@ code, and a data array.\nget_partial_data ::\n                   (StreamPeer :< cls, Object :< cls) => cls -> Int -> IO Array\nget_partial_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_get_partial_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"get_partial_data\" '[Int] (IO Array)\n         where\n        nodeMethod = Godot.Core.StreamPeer.get_partial_data\n\n{-# NOINLINE bindStreamPeer_get_string #-}\n\n-- | Gets a string with byte-length @bytes@ from the stream. If @bytes@ is negative (default) the length will be read from the stream using the reverse process of @method put_string@.\nbindStreamPeer_get_string :: MethodBind\nbindStreamPeer_get_string\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a string with byte-length @bytes@ from the stream. If @bytes@ is negative (default) the length will be read from the stream using the reverse process of @method put_string@.\nget_string ::\n             (StreamPeer :< cls, Object :< cls) =>\n             cls -> Maybe Int -> IO GodotString\nget_string cls arg1\n  = withVariantArray [maybe (VariantInt (-1)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_get_string (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"get_string\" '[Maybe Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.StreamPeer.get_string\n\n{-# NOINLINE bindStreamPeer_get_u16 #-}\n\n-- | Gets an unsigned 16-bit value from the stream.\nbindStreamPeer_get_u16 :: MethodBind\nbindStreamPeer_get_u16\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_u16\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets an unsigned 16-bit value from the stream.\nget_u16 :: (StreamPeer :< cls, Object :< cls) => cls -> IO Int\nget_u16 cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_get_u16 (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"get_u16\" '[] (IO Int) where\n        nodeMethod = Godot.Core.StreamPeer.get_u16\n\n{-# NOINLINE bindStreamPeer_get_u32 #-}\n\n-- | Gets an unsigned 32-bit value from the stream.\nbindStreamPeer_get_u32 :: MethodBind\nbindStreamPeer_get_u32\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_u32\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets an unsigned 32-bit value from the stream.\nget_u32 :: (StreamPeer :< cls, Object :< cls) => cls -> IO Int\nget_u32 cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_get_u32 (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"get_u32\" '[] (IO Int) where\n        nodeMethod = Godot.Core.StreamPeer.get_u32\n\n{-# NOINLINE bindStreamPeer_get_u64 #-}\n\n-- | Gets an unsigned 64-bit value from the stream.\nbindStreamPeer_get_u64 :: MethodBind\nbindStreamPeer_get_u64\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_u64\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets an unsigned 64-bit value from the stream.\nget_u64 :: (StreamPeer :< cls, Object :< cls) => cls -> IO Int\nget_u64 cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_get_u64 (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"get_u64\" '[] (IO Int) where\n        nodeMethod = Godot.Core.StreamPeer.get_u64\n\n{-# NOINLINE bindStreamPeer_get_u8 #-}\n\n-- | Gets an unsigned byte from the stream.\nbindStreamPeer_get_u8 :: MethodBind\nbindStreamPeer_get_u8\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_u8\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets an unsigned byte from the stream.\nget_u8 :: (StreamPeer :< cls, Object :< cls) => cls -> IO Int\nget_u8 cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_get_u8 (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"get_u8\" '[] (IO Int) where\n        nodeMethod = Godot.Core.StreamPeer.get_u8\n\n{-# NOINLINE bindStreamPeer_get_utf8_string #-}\n\n-- | Gets an UTF-8 string with byte-length @bytes@ from the stream (this decodes the string sent as UTF-8). If @bytes@ is negative (default) the length will be read from the stream using the reverse process of @method put_utf8_string@.\nbindStreamPeer_get_utf8_string :: MethodBind\nbindStreamPeer_get_utf8_string\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_utf8_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets an UTF-8 string with byte-length @bytes@ from the stream (this decodes the string sent as UTF-8). If @bytes@ is negative (default) the length will be read from the stream using the reverse process of @method put_utf8_string@.\nget_utf8_string ::\n                  (StreamPeer :< cls, Object :< cls) =>\n                  cls -> Maybe Int -> IO GodotString\nget_utf8_string cls arg1\n  = withVariantArray [maybe (VariantInt (-1)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_get_utf8_string (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"get_utf8_string\" '[Maybe Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.StreamPeer.get_utf8_string\n\n{-# NOINLINE bindStreamPeer_get_var #-}\n\n-- | Gets a Variant from the stream. If @allow_objects@ is @true@, decoding objects is allowed.\n--   \t\t\t\t__Warning:__ Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.\nbindStreamPeer_get_var :: MethodBind\nbindStreamPeer_get_var\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_var\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets a Variant from the stream. If @allow_objects@ is @true@, decoding objects is allowed.\n--   \t\t\t\t__Warning:__ Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.\nget_var ::\n          (StreamPeer :< cls, Object :< cls) =>\n          cls -> Maybe Bool -> IO GodotVariant\nget_var cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_get_var (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"get_var\" '[Maybe Bool]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.StreamPeer.get_var\n\n{-# NOINLINE bindStreamPeer_is_big_endian_enabled #-}\n\n-- | If @true@, this @StreamPeer@ will using big-endian format for encoding and decoding.\nbindStreamPeer_is_big_endian_enabled :: MethodBind\nbindStreamPeer_is_big_endian_enabled\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"is_big_endian_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this @StreamPeer@ will using big-endian format for encoding and decoding.\nis_big_endian_enabled ::\n                        (StreamPeer :< cls, Object :< cls) => cls -> IO Bool\nis_big_endian_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_is_big_endian_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"is_big_endian_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.StreamPeer.is_big_endian_enabled\n\n{-# NOINLINE bindStreamPeer_put_16 #-}\n\n-- | Puts a signed 16-bit value into the stream.\nbindStreamPeer_put_16 :: MethodBind\nbindStreamPeer_put_16\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"put_16\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Puts a signed 16-bit value into the stream.\nput_16 :: (StreamPeer :< cls, Object :< cls) => cls -> Int -> IO ()\nput_16 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_put_16 (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"put_16\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.StreamPeer.put_16\n\n{-# NOINLINE bindStreamPeer_put_32 #-}\n\n-- | Puts a signed 32-bit value into the stream.\nbindStreamPeer_put_32 :: MethodBind\nbindStreamPeer_put_32\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"put_32\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Puts a signed 32-bit value into the stream.\nput_32 :: (StreamPeer :< cls, Object :< cls) => cls -> Int -> IO ()\nput_32 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_put_32 (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"put_32\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.StreamPeer.put_32\n\n{-# NOINLINE bindStreamPeer_put_64 #-}\n\n-- | Puts a signed 64-bit value into the stream.\nbindStreamPeer_put_64 :: MethodBind\nbindStreamPeer_put_64\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"put_64\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Puts a signed 64-bit value into the stream.\nput_64 :: (StreamPeer :< cls, Object :< cls) => cls -> Int -> IO ()\nput_64 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_put_64 (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"put_64\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.StreamPeer.put_64\n\n{-# NOINLINE bindStreamPeer_put_8 #-}\n\n-- | Puts a signed byte into the stream.\nbindStreamPeer_put_8 :: MethodBind\nbindStreamPeer_put_8\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"put_8\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Puts a signed byte into the stream.\nput_8 :: (StreamPeer :< cls, Object :< cls) => cls -> Int -> IO ()\nput_8 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_put_8 (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"put_8\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.StreamPeer.put_8\n\n{-# NOINLINE bindStreamPeer_put_data #-}\n\n-- | Sends a chunk of data through the connection, blocking if necessary until the data is done sending. This function returns an @enum @GlobalScope.Error@ code.\nbindStreamPeer_put_data :: MethodBind\nbindStreamPeer_put_data\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"put_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sends a chunk of data through the connection, blocking if necessary until the data is done sending. This function returns an @enum @GlobalScope.Error@ code.\nput_data ::\n           (StreamPeer :< cls, Object :< cls) =>\n           cls -> PoolByteArray -> IO Int\nput_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_put_data (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"put_data\" '[PoolByteArray] (IO Int)\n         where\n        nodeMethod = Godot.Core.StreamPeer.put_data\n\n{-# NOINLINE bindStreamPeer_put_double #-}\n\n-- | Puts a double-precision float into the stream.\nbindStreamPeer_put_double :: MethodBind\nbindStreamPeer_put_double\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"put_double\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Puts a double-precision float into the stream.\nput_double ::\n             (StreamPeer :< cls, Object :< cls) => cls -> Float -> IO ()\nput_double cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_put_double (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"put_double\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.StreamPeer.put_double\n\n{-# NOINLINE bindStreamPeer_put_float #-}\n\n-- | Puts a single-precision float into the stream.\nbindStreamPeer_put_float :: MethodBind\nbindStreamPeer_put_float\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"put_float\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Puts a single-precision float into the stream.\nput_float ::\n            (StreamPeer :< cls, Object :< cls) => cls -> Float -> IO ()\nput_float cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_put_float (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"put_float\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.StreamPeer.put_float\n\n{-# NOINLINE bindStreamPeer_put_partial_data #-}\n\n-- | Sends a chunk of data through the connection. If all the data could not be sent at once, only part of it will. This function returns two values, an @enum @GlobalScope.Error@ code and an integer, describing how much data was actually sent.\nbindStreamPeer_put_partial_data :: MethodBind\nbindStreamPeer_put_partial_data\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"put_partial_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sends a chunk of data through the connection. If all the data could not be sent at once, only part of it will. This function returns two values, an @enum @GlobalScope.Error@ code and an integer, describing how much data was actually sent.\nput_partial_data ::\n                   (StreamPeer :< cls, Object :< cls) =>\n                   cls -> PoolByteArray -> IO Array\nput_partial_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_put_partial_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"put_partial_data\" '[PoolByteArray]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.StreamPeer.put_partial_data\n\n{-# NOINLINE bindStreamPeer_put_string #-}\n\n-- | Puts a zero-terminated ASCII string into the stream prepended by a 32-bit unsigned integer representing its size.\n--   \t\t\t\tNote: To put an ASCII string without prepending its size, you can use @method put_data@:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tput_data(\"Hello world\".to_ascii())\n--   \t\t\t\t\n--   @\nbindStreamPeer_put_string :: MethodBind\nbindStreamPeer_put_string\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"put_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Puts a zero-terminated ASCII string into the stream prepended by a 32-bit unsigned integer representing its size.\n--   \t\t\t\tNote: To put an ASCII string without prepending its size, you can use @method put_data@:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tput_data(\"Hello world\".to_ascii())\n--   \t\t\t\t\n--   @\nput_string ::\n             (StreamPeer :< cls, Object :< cls) => cls -> GodotString -> IO ()\nput_string cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_put_string (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"put_string\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.StreamPeer.put_string\n\n{-# NOINLINE bindStreamPeer_put_u16 #-}\n\n-- | Puts an unsigned 16-bit value into the stream.\nbindStreamPeer_put_u16 :: MethodBind\nbindStreamPeer_put_u16\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"put_u16\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Puts an unsigned 16-bit value into the stream.\nput_u16 ::\n          (StreamPeer :< cls, Object :< cls) => cls -> Int -> IO ()\nput_u16 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_put_u16 (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"put_u16\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.StreamPeer.put_u16\n\n{-# NOINLINE bindStreamPeer_put_u32 #-}\n\n-- | Puts an unsigned 32-bit value into the stream.\nbindStreamPeer_put_u32 :: MethodBind\nbindStreamPeer_put_u32\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"put_u32\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Puts an unsigned 32-bit value into the stream.\nput_u32 ::\n          (StreamPeer :< cls, Object :< cls) => cls -> Int -> IO ()\nput_u32 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_put_u32 (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"put_u32\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.StreamPeer.put_u32\n\n{-# NOINLINE bindStreamPeer_put_u64 #-}\n\n-- | Puts an unsigned 64-bit value into the stream.\nbindStreamPeer_put_u64 :: MethodBind\nbindStreamPeer_put_u64\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"put_u64\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Puts an unsigned 64-bit value into the stream.\nput_u64 ::\n          (StreamPeer :< cls, Object :< cls) => cls -> Int -> IO ()\nput_u64 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_put_u64 (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"put_u64\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.StreamPeer.put_u64\n\n{-# NOINLINE bindStreamPeer_put_u8 #-}\n\n-- | Puts an unsigned byte into the stream.\nbindStreamPeer_put_u8 :: MethodBind\nbindStreamPeer_put_u8\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"put_u8\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Puts an unsigned byte into the stream.\nput_u8 :: (StreamPeer :< cls, Object :< cls) => cls -> Int -> IO ()\nput_u8 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_put_u8 (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"put_u8\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.StreamPeer.put_u8\n\n{-# NOINLINE bindStreamPeer_put_utf8_string #-}\n\n-- | Puts a zero-terminated UTF-8 string into the stream prepended by a 32 bits unsigned integer representing its size.\n--   \t\t\t\tNote: To put an UTF-8 string without prepending its size, you can use @method put_data@:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tput_data(\"Hello world\".to_utf8())\n--   \t\t\t\t\n--   @\nbindStreamPeer_put_utf8_string :: MethodBind\nbindStreamPeer_put_utf8_string\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"put_utf8_string\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Puts a zero-terminated UTF-8 string into the stream prepended by a 32 bits unsigned integer representing its size.\n--   \t\t\t\tNote: To put an UTF-8 string without prepending its size, you can use @method put_data@:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tput_data(\"Hello world\".to_utf8())\n--   \t\t\t\t\n--   @\nput_utf8_string ::\n                  (StreamPeer :< cls, Object :< cls) => cls -> GodotString -> IO ()\nput_utf8_string cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_put_utf8_string (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"put_utf8_string\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StreamPeer.put_utf8_string\n\n{-# NOINLINE bindStreamPeer_put_var #-}\n\n-- | Puts a Variant into the stream. If @full_objects@ is @true@ encoding objects is allowed (and can potentially include code).\nbindStreamPeer_put_var :: MethodBind\nbindStreamPeer_put_var\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"put_var\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Puts a Variant into the stream. If @full_objects@ is @true@ encoding objects is allowed (and can potentially include code).\nput_var ::\n          (StreamPeer :< cls, Object :< cls) =>\n          cls -> GodotVariant -> Maybe Bool -> IO ()\nput_var cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_put_var (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"put_var\"\n           '[GodotVariant, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StreamPeer.put_var\n\n{-# NOINLINE bindStreamPeer_set_big_endian #-}\n\n-- | If @true@, this @StreamPeer@ will using big-endian format for encoding and decoding.\nbindStreamPeer_set_big_endian :: MethodBind\nbindStreamPeer_set_big_endian\n  = unsafePerformIO $\n      withCString \"StreamPeer\" $\n        \\ clsNamePtr ->\n          withCString \"set_big_endian\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this @StreamPeer@ will using big-endian format for encoding and decoding.\nset_big_endian ::\n                 (StreamPeer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_big_endian cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeer_set_big_endian (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeer \"set_big_endian\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.StreamPeer.set_big_endian"
  },
  {
    "path": "src/Godot/Core/StreamPeerBuffer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.StreamPeerBuffer\n       (Godot.Core.StreamPeerBuffer.clear,\n        Godot.Core.StreamPeerBuffer.duplicate,\n        Godot.Core.StreamPeerBuffer.get_data_array,\n        Godot.Core.StreamPeerBuffer.get_position,\n        Godot.Core.StreamPeerBuffer.get_size,\n        Godot.Core.StreamPeerBuffer.resize,\n        Godot.Core.StreamPeerBuffer.seek,\n        Godot.Core.StreamPeerBuffer.set_data_array)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.StreamPeer()\n\ninstance NodeProperty StreamPeerBuffer \"data_array\" PoolByteArray\n           'False\n         where\n        nodeProperty\n          = (get_data_array, wrapDroppingSetter set_data_array, Nothing)\n\n{-# NOINLINE bindStreamPeerBuffer_clear #-}\n\nbindStreamPeerBuffer_clear :: MethodBind\nbindStreamPeerBuffer_clear\n  = unsafePerformIO $\n      withCString \"StreamPeerBuffer\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nclear :: (StreamPeerBuffer :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerBuffer_clear (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerBuffer \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.StreamPeerBuffer.clear\n\n{-# NOINLINE bindStreamPeerBuffer_duplicate #-}\n\nbindStreamPeerBuffer_duplicate :: MethodBind\nbindStreamPeerBuffer_duplicate\n  = unsafePerformIO $\n      withCString \"StreamPeerBuffer\" $\n        \\ clsNamePtr ->\n          withCString \"duplicate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nduplicate ::\n            (StreamPeerBuffer :< cls, Object :< cls) =>\n            cls -> IO StreamPeerBuffer\nduplicate cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerBuffer_duplicate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerBuffer \"duplicate\" '[]\n           (IO StreamPeerBuffer)\n         where\n        nodeMethod = Godot.Core.StreamPeerBuffer.duplicate\n\n{-# NOINLINE bindStreamPeerBuffer_get_data_array #-}\n\nbindStreamPeerBuffer_get_data_array :: MethodBind\nbindStreamPeerBuffer_get_data_array\n  = unsafePerformIO $\n      withCString \"StreamPeerBuffer\" $\n        \\ clsNamePtr ->\n          withCString \"get_data_array\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_data_array ::\n                 (StreamPeerBuffer :< cls, Object :< cls) => cls -> IO PoolByteArray\nget_data_array cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerBuffer_get_data_array\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerBuffer \"get_data_array\" '[]\n           (IO PoolByteArray)\n         where\n        nodeMethod = Godot.Core.StreamPeerBuffer.get_data_array\n\n{-# NOINLINE bindStreamPeerBuffer_get_position #-}\n\nbindStreamPeerBuffer_get_position :: MethodBind\nbindStreamPeerBuffer_get_position\n  = unsafePerformIO $\n      withCString \"StreamPeerBuffer\" $\n        \\ clsNamePtr ->\n          withCString \"get_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_position ::\n               (StreamPeerBuffer :< cls, Object :< cls) => cls -> IO Int\nget_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerBuffer_get_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerBuffer \"get_position\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.StreamPeerBuffer.get_position\n\n{-# NOINLINE bindStreamPeerBuffer_get_size #-}\n\nbindStreamPeerBuffer_get_size :: MethodBind\nbindStreamPeerBuffer_get_size\n  = unsafePerformIO $\n      withCString \"StreamPeerBuffer\" $\n        \\ clsNamePtr ->\n          withCString \"get_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_size ::\n           (StreamPeerBuffer :< cls, Object :< cls) => cls -> IO Int\nget_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerBuffer_get_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerBuffer \"get_size\" '[] (IO Int) where\n        nodeMethod = Godot.Core.StreamPeerBuffer.get_size\n\n{-# NOINLINE bindStreamPeerBuffer_resize #-}\n\nbindStreamPeerBuffer_resize :: MethodBind\nbindStreamPeerBuffer_resize\n  = unsafePerformIO $\n      withCString \"StreamPeerBuffer\" $\n        \\ clsNamePtr ->\n          withCString \"resize\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nresize ::\n         (StreamPeerBuffer :< cls, Object :< cls) => cls -> Int -> IO ()\nresize cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerBuffer_resize (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerBuffer \"resize\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.StreamPeerBuffer.resize\n\n{-# NOINLINE bindStreamPeerBuffer_seek #-}\n\nbindStreamPeerBuffer_seek :: MethodBind\nbindStreamPeerBuffer_seek\n  = unsafePerformIO $\n      withCString \"StreamPeerBuffer\" $\n        \\ clsNamePtr ->\n          withCString \"seek\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nseek ::\n       (StreamPeerBuffer :< cls, Object :< cls) => cls -> Int -> IO ()\nseek cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerBuffer_seek (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerBuffer \"seek\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.StreamPeerBuffer.seek\n\n{-# NOINLINE bindStreamPeerBuffer_set_data_array #-}\n\nbindStreamPeerBuffer_set_data_array :: MethodBind\nbindStreamPeerBuffer_set_data_array\n  = unsafePerformIO $\n      withCString \"StreamPeerBuffer\" $\n        \\ clsNamePtr ->\n          withCString \"set_data_array\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_data_array ::\n                 (StreamPeerBuffer :< cls, Object :< cls) =>\n                 cls -> PoolByteArray -> IO ()\nset_data_array cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerBuffer_set_data_array\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerBuffer \"set_data_array\"\n           '[PoolByteArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StreamPeerBuffer.set_data_array"
  },
  {
    "path": "src/Godot/Core/StreamPeerGDNative.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.StreamPeerGDNative () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.StreamPeer()"
  },
  {
    "path": "src/Godot/Core/StreamPeerSSL.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.StreamPeerSSL\n       (Godot.Core.StreamPeerSSL._STATUS_CONNECTED,\n        Godot.Core.StreamPeerSSL._STATUS_ERROR,\n        Godot.Core.StreamPeerSSL._STATUS_DISCONNECTED,\n        Godot.Core.StreamPeerSSL._STATUS_ERROR_HOSTNAME_MISMATCH,\n        Godot.Core.StreamPeerSSL._STATUS_HANDSHAKING,\n        Godot.Core.StreamPeerSSL.accept_stream,\n        Godot.Core.StreamPeerSSL.connect_to_stream,\n        Godot.Core.StreamPeerSSL.disconnect_from_stream,\n        Godot.Core.StreamPeerSSL.get_status,\n        Godot.Core.StreamPeerSSL.is_blocking_handshake_enabled,\n        Godot.Core.StreamPeerSSL.poll,\n        Godot.Core.StreamPeerSSL.set_blocking_handshake_enabled)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.StreamPeer()\n\n_STATUS_CONNECTED :: Int\n_STATUS_CONNECTED = 2\n\n_STATUS_ERROR :: Int\n_STATUS_ERROR = 3\n\n_STATUS_DISCONNECTED :: Int\n_STATUS_DISCONNECTED = 0\n\n_STATUS_ERROR_HOSTNAME_MISMATCH :: Int\n_STATUS_ERROR_HOSTNAME_MISMATCH = 4\n\n_STATUS_HANDSHAKING :: Int\n_STATUS_HANDSHAKING = 1\n\ninstance NodeProperty StreamPeerSSL \"blocking_handshake\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_blocking_handshake_enabled,\n             wrapDroppingSetter set_blocking_handshake_enabled, Nothing)\n\n{-# NOINLINE bindStreamPeerSSL_accept_stream #-}\n\n-- | Accepts a peer connection as a server using the given @private_key@ and providing the given @certificate@ to the client. You can pass the optional @chain@ parameter to provide additional CA chain information along with the certificate.\nbindStreamPeerSSL_accept_stream :: MethodBind\nbindStreamPeerSSL_accept_stream\n  = unsafePerformIO $\n      withCString \"StreamPeerSSL\" $\n        \\ clsNamePtr ->\n          withCString \"accept_stream\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Accepts a peer connection as a server using the given @private_key@ and providing the given @certificate@ to the client. You can pass the optional @chain@ parameter to provide additional CA chain information along with the certificate.\naccept_stream ::\n                (StreamPeerSSL :< cls, Object :< cls) =>\n                cls ->\n                  StreamPeer ->\n                    CryptoKey -> X509Certificate -> Maybe X509Certificate -> IO Int\naccept_stream cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe VariantNil toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerSSL_accept_stream (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerSSL \"accept_stream\"\n           '[StreamPeer, CryptoKey, X509Certificate, Maybe X509Certificate]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.StreamPeerSSL.accept_stream\n\n{-# NOINLINE bindStreamPeerSSL_connect_to_stream #-}\n\n-- | Connects to a peer using an underlying @StreamPeer@ @stream@. If @validate_certs@ is @true@, @StreamPeerSSL@ will validate that the certificate presented by the peer matches the @for_hostname@.\n--   \t\t\t\t__Note:__ Specifying a custom @valid_certificate@ is not supported in HTML5 exports due to browsers restrictions.\nbindStreamPeerSSL_connect_to_stream :: MethodBind\nbindStreamPeerSSL_connect_to_stream\n  = unsafePerformIO $\n      withCString \"StreamPeerSSL\" $\n        \\ clsNamePtr ->\n          withCString \"connect_to_stream\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Connects to a peer using an underlying @StreamPeer@ @stream@. If @validate_certs@ is @true@, @StreamPeerSSL@ will validate that the certificate presented by the peer matches the @for_hostname@.\n--   \t\t\t\t__Note:__ Specifying a custom @valid_certificate@ is not supported in HTML5 exports due to browsers restrictions.\nconnect_to_stream ::\n                    (StreamPeerSSL :< cls, Object :< cls) =>\n                    cls ->\n                      StreamPeer ->\n                        Maybe Bool -> Maybe GodotString -> Maybe X509Certificate -> IO Int\nconnect_to_stream cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2,\n       defaultedVariant VariantString \"\" arg3,\n       maybe VariantNil toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerSSL_connect_to_stream\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerSSL \"connect_to_stream\"\n           '[StreamPeer, Maybe Bool, Maybe GodotString, Maybe X509Certificate]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.StreamPeerSSL.connect_to_stream\n\n{-# NOINLINE bindStreamPeerSSL_disconnect_from_stream #-}\n\n-- | Disconnects from host.\nbindStreamPeerSSL_disconnect_from_stream :: MethodBind\nbindStreamPeerSSL_disconnect_from_stream\n  = unsafePerformIO $\n      withCString \"StreamPeerSSL\" $\n        \\ clsNamePtr ->\n          withCString \"disconnect_from_stream\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Disconnects from host.\ndisconnect_from_stream ::\n                         (StreamPeerSSL :< cls, Object :< cls) => cls -> IO ()\ndisconnect_from_stream cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerSSL_disconnect_from_stream\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerSSL \"disconnect_from_stream\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StreamPeerSSL.disconnect_from_stream\n\n{-# NOINLINE bindStreamPeerSSL_get_status #-}\n\n-- | Returns the status of the connection. See @enum Status@ for values.\nbindStreamPeerSSL_get_status :: MethodBind\nbindStreamPeerSSL_get_status\n  = unsafePerformIO $\n      withCString \"StreamPeerSSL\" $\n        \\ clsNamePtr ->\n          withCString \"get_status\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the status of the connection. See @enum Status@ for values.\nget_status ::\n             (StreamPeerSSL :< cls, Object :< cls) => cls -> IO Int\nget_status cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerSSL_get_status (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerSSL \"get_status\" '[] (IO Int) where\n        nodeMethod = Godot.Core.StreamPeerSSL.get_status\n\n{-# NOINLINE bindStreamPeerSSL_is_blocking_handshake_enabled #-}\n\nbindStreamPeerSSL_is_blocking_handshake_enabled :: MethodBind\nbindStreamPeerSSL_is_blocking_handshake_enabled\n  = unsafePerformIO $\n      withCString \"StreamPeerSSL\" $\n        \\ clsNamePtr ->\n          withCString \"is_blocking_handshake_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_blocking_handshake_enabled ::\n                                (StreamPeerSSL :< cls, Object :< cls) => cls -> IO Bool\nis_blocking_handshake_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindStreamPeerSSL_is_blocking_handshake_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerSSL \"is_blocking_handshake_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.StreamPeerSSL.is_blocking_handshake_enabled\n\n{-# NOINLINE bindStreamPeerSSL_poll #-}\n\n-- | Poll the connection to check for incoming bytes. Call this right before @method StreamPeer.get_available_bytes@ for it to work properly.\nbindStreamPeerSSL_poll :: MethodBind\nbindStreamPeerSSL_poll\n  = unsafePerformIO $\n      withCString \"StreamPeerSSL\" $\n        \\ clsNamePtr ->\n          withCString \"poll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Poll the connection to check for incoming bytes. Call this right before @method StreamPeer.get_available_bytes@ for it to work properly.\npoll :: (StreamPeerSSL :< cls, Object :< cls) => cls -> IO ()\npoll cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerSSL_poll (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerSSL \"poll\" '[] (IO ()) where\n        nodeMethod = Godot.Core.StreamPeerSSL.poll\n\n{-# NOINLINE bindStreamPeerSSL_set_blocking_handshake_enabled #-}\n\nbindStreamPeerSSL_set_blocking_handshake_enabled :: MethodBind\nbindStreamPeerSSL_set_blocking_handshake_enabled\n  = unsafePerformIO $\n      withCString \"StreamPeerSSL\" $\n        \\ clsNamePtr ->\n          withCString \"set_blocking_handshake_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_blocking_handshake_enabled ::\n                                 (StreamPeerSSL :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_blocking_handshake_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindStreamPeerSSL_set_blocking_handshake_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerSSL \"set_blocking_handshake_enabled\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.StreamPeerSSL.set_blocking_handshake_enabled"
  },
  {
    "path": "src/Godot/Core/StreamPeerTCP.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.StreamPeerTCP\n       (Godot.Core.StreamPeerTCP._STATUS_CONNECTED,\n        Godot.Core.StreamPeerTCP._STATUS_CONNECTING,\n        Godot.Core.StreamPeerTCP._STATUS_ERROR,\n        Godot.Core.StreamPeerTCP._STATUS_NONE,\n        Godot.Core.StreamPeerTCP.connect_to_host,\n        Godot.Core.StreamPeerTCP.disconnect_from_host,\n        Godot.Core.StreamPeerTCP.get_connected_host,\n        Godot.Core.StreamPeerTCP.get_connected_port,\n        Godot.Core.StreamPeerTCP.get_status,\n        Godot.Core.StreamPeerTCP.is_connected_to_host,\n        Godot.Core.StreamPeerTCP.set_no_delay)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.StreamPeer()\n\n_STATUS_CONNECTED :: Int\n_STATUS_CONNECTED = 2\n\n_STATUS_CONNECTING :: Int\n_STATUS_CONNECTING = 1\n\n_STATUS_ERROR :: Int\n_STATUS_ERROR = 3\n\n_STATUS_NONE :: Int\n_STATUS_NONE = 0\n\n{-# NOINLINE bindStreamPeerTCP_connect_to_host #-}\n\n-- | Connects to the specified @host:port@ pair. A hostname will be resolved if valid. Returns @OK@ on success or @FAILED@ on failure.\nbindStreamPeerTCP_connect_to_host :: MethodBind\nbindStreamPeerTCP_connect_to_host\n  = unsafePerformIO $\n      withCString \"StreamPeerTCP\" $\n        \\ clsNamePtr ->\n          withCString \"connect_to_host\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Connects to the specified @host:port@ pair. A hostname will be resolved if valid. Returns @OK@ on success or @FAILED@ on failure.\nconnect_to_host ::\n                  (StreamPeerTCP :< cls, Object :< cls) =>\n                  cls -> GodotString -> Int -> IO Int\nconnect_to_host cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerTCP_connect_to_host\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerTCP \"connect_to_host\"\n           '[GodotString, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.StreamPeerTCP.connect_to_host\n\n{-# NOINLINE bindStreamPeerTCP_disconnect_from_host #-}\n\n-- | Disconnects from host.\nbindStreamPeerTCP_disconnect_from_host :: MethodBind\nbindStreamPeerTCP_disconnect_from_host\n  = unsafePerformIO $\n      withCString \"StreamPeerTCP\" $\n        \\ clsNamePtr ->\n          withCString \"disconnect_from_host\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Disconnects from host.\ndisconnect_from_host ::\n                       (StreamPeerTCP :< cls, Object :< cls) => cls -> IO ()\ndisconnect_from_host cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerTCP_disconnect_from_host\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerTCP \"disconnect_from_host\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StreamPeerTCP.disconnect_from_host\n\n{-# NOINLINE bindStreamPeerTCP_get_connected_host #-}\n\n-- | Returns the IP of this peer.\nbindStreamPeerTCP_get_connected_host :: MethodBind\nbindStreamPeerTCP_get_connected_host\n  = unsafePerformIO $\n      withCString \"StreamPeerTCP\" $\n        \\ clsNamePtr ->\n          withCString \"get_connected_host\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the IP of this peer.\nget_connected_host ::\n                     (StreamPeerTCP :< cls, Object :< cls) => cls -> IO GodotString\nget_connected_host cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerTCP_get_connected_host\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerTCP \"get_connected_host\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.StreamPeerTCP.get_connected_host\n\n{-# NOINLINE bindStreamPeerTCP_get_connected_port #-}\n\n-- | Returns the port of this peer.\nbindStreamPeerTCP_get_connected_port :: MethodBind\nbindStreamPeerTCP_get_connected_port\n  = unsafePerformIO $\n      withCString \"StreamPeerTCP\" $\n        \\ clsNamePtr ->\n          withCString \"get_connected_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the port of this peer.\nget_connected_port ::\n                     (StreamPeerTCP :< cls, Object :< cls) => cls -> IO Int\nget_connected_port cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerTCP_get_connected_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerTCP \"get_connected_port\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.StreamPeerTCP.get_connected_port\n\n{-# NOINLINE bindStreamPeerTCP_get_status #-}\n\n-- | Returns the status of the connection, see @enum Status@.\nbindStreamPeerTCP_get_status :: MethodBind\nbindStreamPeerTCP_get_status\n  = unsafePerformIO $\n      withCString \"StreamPeerTCP\" $\n        \\ clsNamePtr ->\n          withCString \"get_status\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the status of the connection, see @enum Status@.\nget_status ::\n             (StreamPeerTCP :< cls, Object :< cls) => cls -> IO Int\nget_status cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerTCP_get_status (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerTCP \"get_status\" '[] (IO Int) where\n        nodeMethod = Godot.Core.StreamPeerTCP.get_status\n\n{-# NOINLINE bindStreamPeerTCP_is_connected_to_host #-}\n\n-- | Returns @true@ if this peer is currently connected to a host, @false@ otherwise.\nbindStreamPeerTCP_is_connected_to_host :: MethodBind\nbindStreamPeerTCP_is_connected_to_host\n  = unsafePerformIO $\n      withCString \"StreamPeerTCP\" $\n        \\ clsNamePtr ->\n          withCString \"is_connected_to_host\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this peer is currently connected to a host, @false@ otherwise.\nis_connected_to_host ::\n                       (StreamPeerTCP :< cls, Object :< cls) => cls -> IO Bool\nis_connected_to_host cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerTCP_is_connected_to_host\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerTCP \"is_connected_to_host\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.StreamPeerTCP.is_connected_to_host\n\n{-# NOINLINE bindStreamPeerTCP_set_no_delay #-}\n\n-- | Disables Nagle's algorithm to improve latency for small packets.\n--   \t\t\t\t__Note:__ For applications that send large packets or need to transfer a lot of data, this can decrease the total available bandwidth.\nbindStreamPeerTCP_set_no_delay :: MethodBind\nbindStreamPeerTCP_set_no_delay\n  = unsafePerformIO $\n      withCString \"StreamPeerTCP\" $\n        \\ clsNamePtr ->\n          withCString \"set_no_delay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Disables Nagle's algorithm to improve latency for small packets.\n--   \t\t\t\t__Note:__ For applications that send large packets or need to transfer a lot of data, this can decrease the total available bandwidth.\nset_no_delay ::\n               (StreamPeerTCP :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_no_delay cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamPeerTCP_set_no_delay (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamPeerTCP \"set_no_delay\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.StreamPeerTCP.set_no_delay"
  },
  {
    "path": "src/Godot/Core/StreamTexture.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.StreamTexture\n       (Godot.Core.StreamTexture.get_load_path,\n        Godot.Core.StreamTexture.load)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Texture()\n\ninstance NodeProperty StreamTexture \"load_path\" GodotString 'False\n         where\n        nodeProperty = (get_load_path, wrapDroppingSetter load, Nothing)\n\n{-# NOINLINE bindStreamTexture_get_load_path #-}\n\n-- | The StreamTexture's file path to a @.stex@ file.\nbindStreamTexture_get_load_path :: MethodBind\nbindStreamTexture_get_load_path\n  = unsafePerformIO $\n      withCString \"StreamTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_load_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The StreamTexture's file path to a @.stex@ file.\nget_load_path ::\n                (StreamTexture :< cls, Object :< cls) => cls -> IO GodotString\nget_load_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamTexture_get_load_path (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamTexture \"get_load_path\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.StreamTexture.get_load_path\n\n{-# NOINLINE bindStreamTexture_load #-}\n\n-- | Loads the texture from the given path.\nbindStreamTexture_load :: MethodBind\nbindStreamTexture_load\n  = unsafePerformIO $\n      withCString \"StreamTexture\" $\n        \\ clsNamePtr ->\n          withCString \"load\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Loads the texture from the given path.\nload ::\n       (StreamTexture :< cls, Object :< cls) =>\n       cls -> GodotString -> IO Int\nload cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStreamTexture_load (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StreamTexture \"load\" '[GodotString] (IO Int)\n         where\n        nodeMethod = Godot.Core.StreamTexture.load"
  },
  {
    "path": "src/Godot/Core/StyleBox.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.StyleBox\n       (Godot.Core.StyleBox.draw, Godot.Core.StyleBox.get_center_size,\n        Godot.Core.StyleBox.get_current_item_drawn,\n        Godot.Core.StyleBox.get_default_margin,\n        Godot.Core.StyleBox.get_margin,\n        Godot.Core.StyleBox.get_minimum_size,\n        Godot.Core.StyleBox.get_offset,\n        Godot.Core.StyleBox.set_default_margin,\n        Godot.Core.StyleBox.test_mask)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty StyleBox \"content_margin_bottom\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_default_margin,\n             wrapIndexedSetter 3 set_default_margin, Nothing)\n\ninstance NodeProperty StyleBox \"content_margin_left\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_default_margin,\n             wrapIndexedSetter 0 set_default_margin, Nothing)\n\ninstance NodeProperty StyleBox \"content_margin_right\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_default_margin,\n             wrapIndexedSetter 2 set_default_margin, Nothing)\n\ninstance NodeProperty StyleBox \"content_margin_top\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_default_margin,\n             wrapIndexedSetter 1 set_default_margin, Nothing)\n\n{-# NOINLINE bindStyleBox_draw #-}\n\n-- | Draws this stylebox using a @CanvasItem@ with given @RID@.\n--   \t\t\t\tYou can get a @RID@ value using @method Object.get_instance_id@ on a @CanvasItem@-derived node.\nbindStyleBox_draw :: MethodBind\nbindStyleBox_draw\n  = unsafePerformIO $\n      withCString \"StyleBox\" $\n        \\ clsNamePtr ->\n          withCString \"draw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws this stylebox using a @CanvasItem@ with given @RID@.\n--   \t\t\t\tYou can get a @RID@ value using @method Object.get_instance_id@ on a @CanvasItem@-derived node.\ndraw ::\n       (StyleBox :< cls, Object :< cls) => cls -> Rid -> Rect2 -> IO ()\ndraw cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBox_draw (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBox \"draw\" '[Rid, Rect2] (IO ()) where\n        nodeMethod = Godot.Core.StyleBox.draw\n\n{-# NOINLINE bindStyleBox_get_center_size #-}\n\n-- | Returns the size of this @StyleBox@ without the margins.\nbindStyleBox_get_center_size :: MethodBind\nbindStyleBox_get_center_size\n  = unsafePerformIO $\n      withCString \"StyleBox\" $\n        \\ clsNamePtr ->\n          withCString \"get_center_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the size of this @StyleBox@ without the margins.\nget_center_size ::\n                  (StyleBox :< cls, Object :< cls) => cls -> IO Vector2\nget_center_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBox_get_center_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBox \"get_center_size\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.StyleBox.get_center_size\n\n{-# NOINLINE bindStyleBox_get_current_item_drawn #-}\n\n-- | Returns the @CanvasItem@ that handles its @CanvasItem.NOTIFICATION_DRAW@ or @method CanvasItem._draw@ callback at this moment.\nbindStyleBox_get_current_item_drawn :: MethodBind\nbindStyleBox_get_current_item_drawn\n  = unsafePerformIO $\n      withCString \"StyleBox\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_item_drawn\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @CanvasItem@ that handles its @CanvasItem.NOTIFICATION_DRAW@ or @method CanvasItem._draw@ callback at this moment.\nget_current_item_drawn ::\n                         (StyleBox :< cls, Object :< cls) => cls -> IO CanvasItem\nget_current_item_drawn cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBox_get_current_item_drawn\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBox \"get_current_item_drawn\" '[]\n           (IO CanvasItem)\n         where\n        nodeMethod = Godot.Core.StyleBox.get_current_item_drawn\n\n{-# NOINLINE bindStyleBox_get_default_margin #-}\n\n-- | Returns the default value of the specified @enum Margin@.\nbindStyleBox_get_default_margin :: MethodBind\nbindStyleBox_get_default_margin\n  = unsafePerformIO $\n      withCString \"StyleBox\" $\n        \\ clsNamePtr ->\n          withCString \"get_default_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the default value of the specified @enum Margin@.\nget_default_margin ::\n                     (StyleBox :< cls, Object :< cls) => cls -> Int -> IO Float\nget_default_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBox_get_default_margin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBox \"get_default_margin\" '[Int] (IO Float)\n         where\n        nodeMethod = Godot.Core.StyleBox.get_default_margin\n\n{-# NOINLINE bindStyleBox_get_margin #-}\n\n-- | Returns the content margin offset for the specified @enum Margin@.\n--   \t\t\t\tPositive values reduce size inwards, unlike @Control@'s margin values.\nbindStyleBox_get_margin :: MethodBind\nbindStyleBox_get_margin\n  = unsafePerformIO $\n      withCString \"StyleBox\" $\n        \\ clsNamePtr ->\n          withCString \"get_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the content margin offset for the specified @enum Margin@.\n--   \t\t\t\tPositive values reduce size inwards, unlike @Control@'s margin values.\nget_margin ::\n             (StyleBox :< cls, Object :< cls) => cls -> Int -> IO Float\nget_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBox_get_margin (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBox \"get_margin\" '[Int] (IO Float) where\n        nodeMethod = Godot.Core.StyleBox.get_margin\n\n{-# NOINLINE bindStyleBox_get_minimum_size #-}\n\n-- | Returns the minimum size that this stylebox can be shrunk to.\nbindStyleBox_get_minimum_size :: MethodBind\nbindStyleBox_get_minimum_size\n  = unsafePerformIO $\n      withCString \"StyleBox\" $\n        \\ clsNamePtr ->\n          withCString \"get_minimum_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the minimum size that this stylebox can be shrunk to.\nget_minimum_size ::\n                   (StyleBox :< cls, Object :< cls) => cls -> IO Vector2\nget_minimum_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBox_get_minimum_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBox \"get_minimum_size\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.StyleBox.get_minimum_size\n\n{-# NOINLINE bindStyleBox_get_offset #-}\n\n-- | Returns the \"offset\" of a stylebox. This helper function returns a value equivalent to @Vector2(style.get_margin(MARGIN_LEFT), style.get_margin(MARGIN_TOP))@.\nbindStyleBox_get_offset :: MethodBind\nbindStyleBox_get_offset\n  = unsafePerformIO $\n      withCString \"StyleBox\" $\n        \\ clsNamePtr ->\n          withCString \"get_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the \"offset\" of a stylebox. This helper function returns a value equivalent to @Vector2(style.get_margin(MARGIN_LEFT), style.get_margin(MARGIN_TOP))@.\nget_offset :: (StyleBox :< cls, Object :< cls) => cls -> IO Vector2\nget_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBox_get_offset (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBox \"get_offset\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.StyleBox.get_offset\n\n{-# NOINLINE bindStyleBox_set_default_margin #-}\n\n-- | Sets the default value of the specified @enum Margin@ to given @offset@ in pixels.\nbindStyleBox_set_default_margin :: MethodBind\nbindStyleBox_set_default_margin\n  = unsafePerformIO $\n      withCString \"StyleBox\" $\n        \\ clsNamePtr ->\n          withCString \"set_default_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the default value of the specified @enum Margin@ to given @offset@ in pixels.\nset_default_margin ::\n                     (StyleBox :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\nset_default_margin cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBox_set_default_margin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBox \"set_default_margin\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBox.set_default_margin\n\n{-# NOINLINE bindStyleBox_test_mask #-}\n\n-- | Test a position in a rectangle, return whether it passes the mask test.\nbindStyleBox_test_mask :: MethodBind\nbindStyleBox_test_mask\n  = unsafePerformIO $\n      withCString \"StyleBox\" $\n        \\ clsNamePtr ->\n          withCString \"test_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Test a position in a rectangle, return whether it passes the mask test.\ntest_mask ::\n            (StyleBox :< cls, Object :< cls) =>\n            cls -> Vector2 -> Rect2 -> IO Bool\ntest_mask cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBox_test_mask (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBox \"test_mask\" '[Vector2, Rect2]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.StyleBox.test_mask"
  },
  {
    "path": "src/Godot/Core/StyleBoxEmpty.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.StyleBoxEmpty () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.StyleBox()"
  },
  {
    "path": "src/Godot/Core/StyleBoxFlat.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.StyleBoxFlat\n       (Godot.Core.StyleBoxFlat.get_aa_size,\n        Godot.Core.StyleBoxFlat.get_bg_color,\n        Godot.Core.StyleBoxFlat.get_border_blend,\n        Godot.Core.StyleBoxFlat.get_border_color,\n        Godot.Core.StyleBoxFlat.get_border_width,\n        Godot.Core.StyleBoxFlat.get_border_width_min,\n        Godot.Core.StyleBoxFlat.get_corner_detail,\n        Godot.Core.StyleBoxFlat.get_corner_radius,\n        Godot.Core.StyleBoxFlat.get_expand_margin,\n        Godot.Core.StyleBoxFlat.get_shadow_color,\n        Godot.Core.StyleBoxFlat.get_shadow_offset,\n        Godot.Core.StyleBoxFlat.get_shadow_size,\n        Godot.Core.StyleBoxFlat.is_anti_aliased,\n        Godot.Core.StyleBoxFlat.is_draw_center_enabled,\n        Godot.Core.StyleBoxFlat.set_aa_size,\n        Godot.Core.StyleBoxFlat.set_anti_aliased,\n        Godot.Core.StyleBoxFlat.set_bg_color,\n        Godot.Core.StyleBoxFlat.set_border_blend,\n        Godot.Core.StyleBoxFlat.set_border_color,\n        Godot.Core.StyleBoxFlat.set_border_width,\n        Godot.Core.StyleBoxFlat.set_border_width_all,\n        Godot.Core.StyleBoxFlat.set_corner_detail,\n        Godot.Core.StyleBoxFlat.set_corner_radius,\n        Godot.Core.StyleBoxFlat.set_corner_radius_all,\n        Godot.Core.StyleBoxFlat.set_corner_radius_individual,\n        Godot.Core.StyleBoxFlat.set_draw_center,\n        Godot.Core.StyleBoxFlat.set_expand_margin,\n        Godot.Core.StyleBoxFlat.set_expand_margin_all,\n        Godot.Core.StyleBoxFlat.set_expand_margin_individual,\n        Godot.Core.StyleBoxFlat.set_shadow_color,\n        Godot.Core.StyleBoxFlat.set_shadow_offset,\n        Godot.Core.StyleBoxFlat.set_shadow_size)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.StyleBox()\n\ninstance NodeProperty StyleBoxFlat \"anti_aliasing\" Bool 'False\n         where\n        nodeProperty\n          = (is_anti_aliased, wrapDroppingSetter set_anti_aliased, Nothing)\n\ninstance NodeProperty StyleBoxFlat \"anti_aliasing_size\" Int 'False\n         where\n        nodeProperty\n          = (get_aa_size, wrapDroppingSetter set_aa_size, Nothing)\n\ninstance NodeProperty StyleBoxFlat \"bg_color\" Color 'False where\n        nodeProperty\n          = (get_bg_color, wrapDroppingSetter set_bg_color, Nothing)\n\ninstance NodeProperty StyleBoxFlat \"border_blend\" Bool 'False where\n        nodeProperty\n          = (get_border_blend, wrapDroppingSetter set_border_blend, Nothing)\n\ninstance NodeProperty StyleBoxFlat \"border_color\" Color 'False\n         where\n        nodeProperty\n          = (get_border_color, wrapDroppingSetter set_border_color, Nothing)\n\ninstance NodeProperty StyleBoxFlat \"border_width_bottom\" Int 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_border_width,\n             wrapIndexedSetter 3 set_border_width, Nothing)\n\ninstance NodeProperty StyleBoxFlat \"border_width_left\" Int 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_border_width,\n             wrapIndexedSetter 0 set_border_width, Nothing)\n\ninstance NodeProperty StyleBoxFlat \"border_width_right\" Int 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_border_width,\n             wrapIndexedSetter 2 set_border_width, Nothing)\n\ninstance NodeProperty StyleBoxFlat \"border_width_top\" Int 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_border_width,\n             wrapIndexedSetter 1 set_border_width, Nothing)\n\ninstance NodeProperty StyleBoxFlat \"corner_detail\" Int 'False where\n        nodeProperty\n          = (get_corner_detail, wrapDroppingSetter set_corner_detail,\n             Nothing)\n\ninstance NodeProperty StyleBoxFlat \"corner_radius_bottom_left\" Int\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_corner_radius,\n             wrapIndexedSetter 3 set_corner_radius, Nothing)\n\ninstance NodeProperty StyleBoxFlat \"corner_radius_bottom_right\" Int\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_corner_radius,\n             wrapIndexedSetter 2 set_corner_radius, Nothing)\n\ninstance NodeProperty StyleBoxFlat \"corner_radius_top_left\" Int\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_corner_radius,\n             wrapIndexedSetter 0 set_corner_radius, Nothing)\n\ninstance NodeProperty StyleBoxFlat \"corner_radius_top_right\" Int\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_corner_radius,\n             wrapIndexedSetter 1 set_corner_radius, Nothing)\n\ninstance NodeProperty StyleBoxFlat \"draw_center\" Bool 'False where\n        nodeProperty\n          = (is_draw_center_enabled, wrapDroppingSetter set_draw_center,\n             Nothing)\n\ninstance NodeProperty StyleBoxFlat \"expand_margin_bottom\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_expand_margin,\n             wrapIndexedSetter 3 set_expand_margin, Nothing)\n\ninstance NodeProperty StyleBoxFlat \"expand_margin_left\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_expand_margin,\n             wrapIndexedSetter 0 set_expand_margin, Nothing)\n\ninstance NodeProperty StyleBoxFlat \"expand_margin_right\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_expand_margin,\n             wrapIndexedSetter 2 set_expand_margin, Nothing)\n\ninstance NodeProperty StyleBoxFlat \"expand_margin_top\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_expand_margin,\n             wrapIndexedSetter 1 set_expand_margin, Nothing)\n\ninstance NodeProperty StyleBoxFlat \"shadow_color\" Color 'False\n         where\n        nodeProperty\n          = (get_shadow_color, wrapDroppingSetter set_shadow_color, Nothing)\n\ninstance NodeProperty StyleBoxFlat \"shadow_offset\" Vector2 'False\n         where\n        nodeProperty\n          = (get_shadow_offset, wrapDroppingSetter set_shadow_offset,\n             Nothing)\n\ninstance NodeProperty StyleBoxFlat \"shadow_size\" Int 'False where\n        nodeProperty\n          = (get_shadow_size, wrapDroppingSetter set_shadow_size, Nothing)\n\n{-# NOINLINE bindStyleBoxFlat_get_aa_size #-}\n\n-- | This changes the size of the faded ring. Higher values can be used to achieve a \"blurry\" effect.\nbindStyleBoxFlat_get_aa_size :: MethodBind\nbindStyleBoxFlat_get_aa_size\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"get_aa_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This changes the size of the faded ring. Higher values can be used to achieve a \"blurry\" effect.\nget_aa_size ::\n              (StyleBoxFlat :< cls, Object :< cls) => cls -> IO Int\nget_aa_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_get_aa_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"get_aa_size\" '[] (IO Int) where\n        nodeMethod = Godot.Core.StyleBoxFlat.get_aa_size\n\n{-# NOINLINE bindStyleBoxFlat_get_bg_color #-}\n\n-- | The background color of the stylebox.\nbindStyleBoxFlat_get_bg_color :: MethodBind\nbindStyleBoxFlat_get_bg_color\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"get_bg_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The background color of the stylebox.\nget_bg_color ::\n               (StyleBoxFlat :< cls, Object :< cls) => cls -> IO Color\nget_bg_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_get_bg_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"get_bg_color\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.get_bg_color\n\n{-# NOINLINE bindStyleBoxFlat_get_border_blend #-}\n\n-- | If @true@, the border will fade into the background color.\nbindStyleBoxFlat_get_border_blend :: MethodBind\nbindStyleBoxFlat_get_border_blend\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"get_border_blend\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the border will fade into the background color.\nget_border_blend ::\n                   (StyleBoxFlat :< cls, Object :< cls) => cls -> IO Bool\nget_border_blend cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_get_border_blend\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"get_border_blend\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.get_border_blend\n\n{-# NOINLINE bindStyleBoxFlat_get_border_color #-}\n\n-- | Sets the color of the border.\nbindStyleBoxFlat_get_border_color :: MethodBind\nbindStyleBoxFlat_get_border_color\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"get_border_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the color of the border.\nget_border_color ::\n                   (StyleBoxFlat :< cls, Object :< cls) => cls -> IO Color\nget_border_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_get_border_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"get_border_color\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.get_border_color\n\n{-# NOINLINE bindStyleBoxFlat_get_border_width #-}\n\n-- | Returns the given @margin@'s border width. See @enum Margin@ for possible values.\nbindStyleBoxFlat_get_border_width :: MethodBind\nbindStyleBoxFlat_get_border_width\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"get_border_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the given @margin@'s border width. See @enum Margin@ for possible values.\nget_border_width ::\n                   (StyleBoxFlat :< cls, Object :< cls) => cls -> Int -> IO Int\nget_border_width cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_get_border_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"get_border_width\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.get_border_width\n\n{-# NOINLINE bindStyleBoxFlat_get_border_width_min #-}\n\n-- | Returns the smallest border width out of all four borders.\nbindStyleBoxFlat_get_border_width_min :: MethodBind\nbindStyleBoxFlat_get_border_width_min\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"get_border_width_min\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the smallest border width out of all four borders.\nget_border_width_min ::\n                       (StyleBoxFlat :< cls, Object :< cls) => cls -> IO Int\nget_border_width_min cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_get_border_width_min\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"get_border_width_min\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.get_border_width_min\n\n{-# NOINLINE bindStyleBoxFlat_get_corner_detail #-}\n\n-- | This sets the amount of vertices used for each corner. Higher values result in rounder corners but take more processing power to compute. When choosing a value, you should take the corner radius (@method set_corner_radius_all@) into account.\n--   \t\t\tFor corner radii smaller than 10, @4@ or @5@ should be enough. For corner radii smaller than 30, values between @8@ and @12@ should be enough.\n--   \t\t\tA corner detail of @1@ will result in chamfered corners instead of rounded corners, which is useful for some artistic effects.\nbindStyleBoxFlat_get_corner_detail :: MethodBind\nbindStyleBoxFlat_get_corner_detail\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"get_corner_detail\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This sets the amount of vertices used for each corner. Higher values result in rounder corners but take more processing power to compute. When choosing a value, you should take the corner radius (@method set_corner_radius_all@) into account.\n--   \t\t\tFor corner radii smaller than 10, @4@ or @5@ should be enough. For corner radii smaller than 30, values between @8@ and @12@ should be enough.\n--   \t\t\tA corner detail of @1@ will result in chamfered corners instead of rounded corners, which is useful for some artistic effects.\nget_corner_detail ::\n                    (StyleBoxFlat :< cls, Object :< cls) => cls -> IO Int\nget_corner_detail cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_get_corner_detail\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"get_corner_detail\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.get_corner_detail\n\n{-# NOINLINE bindStyleBoxFlat_get_corner_radius #-}\n\n-- | Returns the given @corner@'s radius. See @enum Corner@ for possible values.\nbindStyleBoxFlat_get_corner_radius :: MethodBind\nbindStyleBoxFlat_get_corner_radius\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"get_corner_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the given @corner@'s radius. See @enum Corner@ for possible values.\nget_corner_radius ::\n                    (StyleBoxFlat :< cls, Object :< cls) => cls -> Int -> IO Int\nget_corner_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_get_corner_radius\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"get_corner_radius\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.get_corner_radius\n\n{-# NOINLINE bindStyleBoxFlat_get_expand_margin #-}\n\n-- | Returns the size of the given @margin@'s expand margin. See @enum Margin@ for possible values.\nbindStyleBoxFlat_get_expand_margin :: MethodBind\nbindStyleBoxFlat_get_expand_margin\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"get_expand_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the size of the given @margin@'s expand margin. See @enum Margin@ for possible values.\nget_expand_margin ::\n                    (StyleBoxFlat :< cls, Object :< cls) => cls -> Int -> IO Float\nget_expand_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_get_expand_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"get_expand_margin\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.get_expand_margin\n\n{-# NOINLINE bindStyleBoxFlat_get_shadow_color #-}\n\n-- | The color of the shadow. This has no effect if @shadow_size@ is lower than 1.\nbindStyleBoxFlat_get_shadow_color :: MethodBind\nbindStyleBoxFlat_get_shadow_color\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"get_shadow_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The color of the shadow. This has no effect if @shadow_size@ is lower than 1.\nget_shadow_color ::\n                   (StyleBoxFlat :< cls, Object :< cls) => cls -> IO Color\nget_shadow_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_get_shadow_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"get_shadow_color\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.get_shadow_color\n\n{-# NOINLINE bindStyleBoxFlat_get_shadow_offset #-}\n\n-- | The shadow offset in pixels. Adjusts the position of the shadow relatively to the stylebox.\nbindStyleBoxFlat_get_shadow_offset :: MethodBind\nbindStyleBoxFlat_get_shadow_offset\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"get_shadow_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The shadow offset in pixels. Adjusts the position of the shadow relatively to the stylebox.\nget_shadow_offset ::\n                    (StyleBoxFlat :< cls, Object :< cls) => cls -> IO Vector2\nget_shadow_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_get_shadow_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"get_shadow_offset\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.get_shadow_offset\n\n{-# NOINLINE bindStyleBoxFlat_get_shadow_size #-}\n\n-- | The shadow size in pixels.\nbindStyleBoxFlat_get_shadow_size :: MethodBind\nbindStyleBoxFlat_get_shadow_size\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"get_shadow_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The shadow size in pixels.\nget_shadow_size ::\n                  (StyleBoxFlat :< cls, Object :< cls) => cls -> IO Int\nget_shadow_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_get_shadow_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"get_shadow_size\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.get_shadow_size\n\n{-# NOINLINE bindStyleBoxFlat_is_anti_aliased #-}\n\n-- | Antialiasing draws a small ring around the edges, which fades to transparency. As a result, edges look much smoother. This is only noticeable when using rounded corners.\nbindStyleBoxFlat_is_anti_aliased :: MethodBind\nbindStyleBoxFlat_is_anti_aliased\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"is_anti_aliased\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Antialiasing draws a small ring around the edges, which fades to transparency. As a result, edges look much smoother. This is only noticeable when using rounded corners.\nis_anti_aliased ::\n                  (StyleBoxFlat :< cls, Object :< cls) => cls -> IO Bool\nis_anti_aliased cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_is_anti_aliased\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"is_anti_aliased\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.is_anti_aliased\n\n{-# NOINLINE bindStyleBoxFlat_is_draw_center_enabled #-}\n\n-- | Toggles drawing of the inner part of the stylebox.\nbindStyleBoxFlat_is_draw_center_enabled :: MethodBind\nbindStyleBoxFlat_is_draw_center_enabled\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"is_draw_center_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Toggles drawing of the inner part of the stylebox.\nis_draw_center_enabled ::\n                         (StyleBoxFlat :< cls, Object :< cls) => cls -> IO Bool\nis_draw_center_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_is_draw_center_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"is_draw_center_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.is_draw_center_enabled\n\n{-# NOINLINE bindStyleBoxFlat_set_aa_size #-}\n\n-- | This changes the size of the faded ring. Higher values can be used to achieve a \"blurry\" effect.\nbindStyleBoxFlat_set_aa_size :: MethodBind\nbindStyleBoxFlat_set_aa_size\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"set_aa_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This changes the size of the faded ring. Higher values can be used to achieve a \"blurry\" effect.\nset_aa_size ::\n              (StyleBoxFlat :< cls, Object :< cls) => cls -> Int -> IO ()\nset_aa_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_set_aa_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"set_aa_size\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.StyleBoxFlat.set_aa_size\n\n{-# NOINLINE bindStyleBoxFlat_set_anti_aliased #-}\n\n-- | Antialiasing draws a small ring around the edges, which fades to transparency. As a result, edges look much smoother. This is only noticeable when using rounded corners.\nbindStyleBoxFlat_set_anti_aliased :: MethodBind\nbindStyleBoxFlat_set_anti_aliased\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"set_anti_aliased\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Antialiasing draws a small ring around the edges, which fades to transparency. As a result, edges look much smoother. This is only noticeable when using rounded corners.\nset_anti_aliased ::\n                   (StyleBoxFlat :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_anti_aliased cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_set_anti_aliased\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"set_anti_aliased\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.set_anti_aliased\n\n{-# NOINLINE bindStyleBoxFlat_set_bg_color #-}\n\n-- | The background color of the stylebox.\nbindStyleBoxFlat_set_bg_color :: MethodBind\nbindStyleBoxFlat_set_bg_color\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"set_bg_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The background color of the stylebox.\nset_bg_color ::\n               (StyleBoxFlat :< cls, Object :< cls) => cls -> Color -> IO ()\nset_bg_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_set_bg_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"set_bg_color\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.set_bg_color\n\n{-# NOINLINE bindStyleBoxFlat_set_border_blend #-}\n\n-- | If @true@, the border will fade into the background color.\nbindStyleBoxFlat_set_border_blend :: MethodBind\nbindStyleBoxFlat_set_border_blend\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"set_border_blend\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the border will fade into the background color.\nset_border_blend ::\n                   (StyleBoxFlat :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_border_blend cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_set_border_blend\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"set_border_blend\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.set_border_blend\n\n{-# NOINLINE bindStyleBoxFlat_set_border_color #-}\n\n-- | Sets the color of the border.\nbindStyleBoxFlat_set_border_color :: MethodBind\nbindStyleBoxFlat_set_border_color\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"set_border_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the color of the border.\nset_border_color ::\n                   (StyleBoxFlat :< cls, Object :< cls) => cls -> Color -> IO ()\nset_border_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_set_border_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"set_border_color\" '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.set_border_color\n\n{-# NOINLINE bindStyleBoxFlat_set_border_width #-}\n\n-- | Sets the border width to @width@ pixels for the given @margin@. See @enum Margin@ for possible values.\nbindStyleBoxFlat_set_border_width :: MethodBind\nbindStyleBoxFlat_set_border_width\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"set_border_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the border width to @width@ pixels for the given @margin@. See @enum Margin@ for possible values.\nset_border_width ::\n                   (StyleBoxFlat :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nset_border_width cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_set_border_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"set_border_width\" '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.set_border_width\n\n{-# NOINLINE bindStyleBoxFlat_set_border_width_all #-}\n\n-- | Sets the border width to @width@ pixels for all margins.\nbindStyleBoxFlat_set_border_width_all :: MethodBind\nbindStyleBoxFlat_set_border_width_all\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"set_border_width_all\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the border width to @width@ pixels for all margins.\nset_border_width_all ::\n                       (StyleBoxFlat :< cls, Object :< cls) => cls -> Int -> IO ()\nset_border_width_all cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_set_border_width_all\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"set_border_width_all\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.set_border_width_all\n\n{-# NOINLINE bindStyleBoxFlat_set_corner_detail #-}\n\n-- | This sets the amount of vertices used for each corner. Higher values result in rounder corners but take more processing power to compute. When choosing a value, you should take the corner radius (@method set_corner_radius_all@) into account.\n--   \t\t\tFor corner radii smaller than 10, @4@ or @5@ should be enough. For corner radii smaller than 30, values between @8@ and @12@ should be enough.\n--   \t\t\tA corner detail of @1@ will result in chamfered corners instead of rounded corners, which is useful for some artistic effects.\nbindStyleBoxFlat_set_corner_detail :: MethodBind\nbindStyleBoxFlat_set_corner_detail\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"set_corner_detail\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This sets the amount of vertices used for each corner. Higher values result in rounder corners but take more processing power to compute. When choosing a value, you should take the corner radius (@method set_corner_radius_all@) into account.\n--   \t\t\tFor corner radii smaller than 10, @4@ or @5@ should be enough. For corner radii smaller than 30, values between @8@ and @12@ should be enough.\n--   \t\t\tA corner detail of @1@ will result in chamfered corners instead of rounded corners, which is useful for some artistic effects.\nset_corner_detail ::\n                    (StyleBoxFlat :< cls, Object :< cls) => cls -> Int -> IO ()\nset_corner_detail cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_set_corner_detail\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"set_corner_detail\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.set_corner_detail\n\n{-# NOINLINE bindStyleBoxFlat_set_corner_radius #-}\n\n-- | Sets the corner radius to @radius@ pixels for the given @corner@. See @enum Corner@ for possible values.\nbindStyleBoxFlat_set_corner_radius :: MethodBind\nbindStyleBoxFlat_set_corner_radius\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"set_corner_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the corner radius to @radius@ pixels for the given @corner@. See @enum Corner@ for possible values.\nset_corner_radius ::\n                    (StyleBoxFlat :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nset_corner_radius cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_set_corner_radius\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"set_corner_radius\" '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.set_corner_radius\n\n{-# NOINLINE bindStyleBoxFlat_set_corner_radius_all #-}\n\n-- | Sets the corner radius to @radius@ pixels for all corners.\nbindStyleBoxFlat_set_corner_radius_all :: MethodBind\nbindStyleBoxFlat_set_corner_radius_all\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"set_corner_radius_all\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the corner radius to @radius@ pixels for all corners.\nset_corner_radius_all ::\n                        (StyleBoxFlat :< cls, Object :< cls) => cls -> Int -> IO ()\nset_corner_radius_all cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_set_corner_radius_all\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"set_corner_radius_all\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.set_corner_radius_all\n\n{-# NOINLINE bindStyleBoxFlat_set_corner_radius_individual #-}\n\n-- | Sets the corner radius for each corner to @radius_top_left@, @radius_top_right@, @radius_bottom_right@, and @radius_bottom_left@ pixels.\nbindStyleBoxFlat_set_corner_radius_individual :: MethodBind\nbindStyleBoxFlat_set_corner_radius_individual\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"set_corner_radius_individual\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the corner radius for each corner to @radius_top_left@, @radius_top_right@, @radius_bottom_right@, and @radius_bottom_left@ pixels.\nset_corner_radius_individual ::\n                               (StyleBoxFlat :< cls, Object :< cls) =>\n                               cls -> Int -> Int -> Int -> Int -> IO ()\nset_corner_radius_individual cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindStyleBoxFlat_set_corner_radius_individual\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"set_corner_radius_individual\"\n           '[Int, Int, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.set_corner_radius_individual\n\n{-# NOINLINE bindStyleBoxFlat_set_draw_center #-}\n\n-- | Toggles drawing of the inner part of the stylebox.\nbindStyleBoxFlat_set_draw_center :: MethodBind\nbindStyleBoxFlat_set_draw_center\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"set_draw_center\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Toggles drawing of the inner part of the stylebox.\nset_draw_center ::\n                  (StyleBoxFlat :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_draw_center cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_set_draw_center\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"set_draw_center\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.set_draw_center\n\n{-# NOINLINE bindStyleBoxFlat_set_expand_margin #-}\n\n-- | Sets the expand margin to @size@ pixels for the given @margin@. See @enum Margin@ for possible values.\nbindStyleBoxFlat_set_expand_margin :: MethodBind\nbindStyleBoxFlat_set_expand_margin\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"set_expand_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the expand margin to @size@ pixels for the given @margin@. See @enum Margin@ for possible values.\nset_expand_margin ::\n                    (StyleBoxFlat :< cls, Object :< cls) =>\n                    cls -> Int -> Float -> IO ()\nset_expand_margin cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_set_expand_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"set_expand_margin\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.set_expand_margin\n\n{-# NOINLINE bindStyleBoxFlat_set_expand_margin_all #-}\n\n-- | Sets the expand margin to @size@ pixels for all margins.\nbindStyleBoxFlat_set_expand_margin_all :: MethodBind\nbindStyleBoxFlat_set_expand_margin_all\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"set_expand_margin_all\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the expand margin to @size@ pixels for all margins.\nset_expand_margin_all ::\n                        (StyleBoxFlat :< cls, Object :< cls) => cls -> Float -> IO ()\nset_expand_margin_all cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_set_expand_margin_all\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"set_expand_margin_all\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.set_expand_margin_all\n\n{-# NOINLINE bindStyleBoxFlat_set_expand_margin_individual #-}\n\n-- | Sets the expand margin for each margin to @size_left@, @size_top@, @size_right@, and @size_bottom@ pixels.\nbindStyleBoxFlat_set_expand_margin_individual :: MethodBind\nbindStyleBoxFlat_set_expand_margin_individual\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"set_expand_margin_individual\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the expand margin for each margin to @size_left@, @size_top@, @size_right@, and @size_bottom@ pixels.\nset_expand_margin_individual ::\n                               (StyleBoxFlat :< cls, Object :< cls) =>\n                               cls -> Float -> Float -> Float -> Float -> IO ()\nset_expand_margin_individual cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindStyleBoxFlat_set_expand_margin_individual\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"set_expand_margin_individual\"\n           '[Float, Float, Float, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.set_expand_margin_individual\n\n{-# NOINLINE bindStyleBoxFlat_set_shadow_color #-}\n\n-- | The color of the shadow. This has no effect if @shadow_size@ is lower than 1.\nbindStyleBoxFlat_set_shadow_color :: MethodBind\nbindStyleBoxFlat_set_shadow_color\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"set_shadow_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The color of the shadow. This has no effect if @shadow_size@ is lower than 1.\nset_shadow_color ::\n                   (StyleBoxFlat :< cls, Object :< cls) => cls -> Color -> IO ()\nset_shadow_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_set_shadow_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"set_shadow_color\" '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.set_shadow_color\n\n{-# NOINLINE bindStyleBoxFlat_set_shadow_offset #-}\n\n-- | The shadow offset in pixels. Adjusts the position of the shadow relatively to the stylebox.\nbindStyleBoxFlat_set_shadow_offset :: MethodBind\nbindStyleBoxFlat_set_shadow_offset\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"set_shadow_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The shadow offset in pixels. Adjusts the position of the shadow relatively to the stylebox.\nset_shadow_offset ::\n                    (StyleBoxFlat :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_shadow_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_set_shadow_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"set_shadow_offset\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.set_shadow_offset\n\n{-# NOINLINE bindStyleBoxFlat_set_shadow_size #-}\n\n-- | The shadow size in pixels.\nbindStyleBoxFlat_set_shadow_size :: MethodBind\nbindStyleBoxFlat_set_shadow_size\n  = unsafePerformIO $\n      withCString \"StyleBoxFlat\" $\n        \\ clsNamePtr ->\n          withCString \"set_shadow_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The shadow size in pixels.\nset_shadow_size ::\n                  (StyleBoxFlat :< cls, Object :< cls) => cls -> Int -> IO ()\nset_shadow_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxFlat_set_shadow_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxFlat \"set_shadow_size\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxFlat.set_shadow_size"
  },
  {
    "path": "src/Godot/Core/StyleBoxLine.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.StyleBoxLine\n       (Godot.Core.StyleBoxLine.get_color,\n        Godot.Core.StyleBoxLine.get_grow_begin,\n        Godot.Core.StyleBoxLine.get_grow_end,\n        Godot.Core.StyleBoxLine.get_thickness,\n        Godot.Core.StyleBoxLine.is_vertical,\n        Godot.Core.StyleBoxLine.set_color,\n        Godot.Core.StyleBoxLine.set_grow_begin,\n        Godot.Core.StyleBoxLine.set_grow_end,\n        Godot.Core.StyleBoxLine.set_thickness,\n        Godot.Core.StyleBoxLine.set_vertical)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.StyleBox()\n\ninstance NodeProperty StyleBoxLine \"color\" Color 'False where\n        nodeProperty = (get_color, wrapDroppingSetter set_color, Nothing)\n\ninstance NodeProperty StyleBoxLine \"grow_begin\" Float 'False where\n        nodeProperty\n          = (get_grow_begin, wrapDroppingSetter set_grow_begin, Nothing)\n\ninstance NodeProperty StyleBoxLine \"grow_end\" Float 'False where\n        nodeProperty\n          = (get_grow_end, wrapDroppingSetter set_grow_end, Nothing)\n\ninstance NodeProperty StyleBoxLine \"thickness\" Int 'False where\n        nodeProperty\n          = (get_thickness, wrapDroppingSetter set_thickness, Nothing)\n\ninstance NodeProperty StyleBoxLine \"vertical\" Bool 'False where\n        nodeProperty\n          = (is_vertical, wrapDroppingSetter set_vertical, Nothing)\n\n{-# NOINLINE bindStyleBoxLine_get_color #-}\n\n-- | The line's color.\nbindStyleBoxLine_get_color :: MethodBind\nbindStyleBoxLine_get_color\n  = unsafePerformIO $\n      withCString \"StyleBoxLine\" $\n        \\ clsNamePtr ->\n          withCString \"get_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The line's color.\nget_color ::\n            (StyleBoxLine :< cls, Object :< cls) => cls -> IO Color\nget_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxLine_get_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxLine \"get_color\" '[] (IO Color) where\n        nodeMethod = Godot.Core.StyleBoxLine.get_color\n\n{-# NOINLINE bindStyleBoxLine_get_grow_begin #-}\n\n-- | The number of pixels the line will extend before the @StyleBoxLine@'s bounds. If set to a negative value, the line will begin inside the @StyleBoxLine@'s bounds.\nbindStyleBoxLine_get_grow_begin :: MethodBind\nbindStyleBoxLine_get_grow_begin\n  = unsafePerformIO $\n      withCString \"StyleBoxLine\" $\n        \\ clsNamePtr ->\n          withCString \"get_grow_begin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of pixels the line will extend before the @StyleBoxLine@'s bounds. If set to a negative value, the line will begin inside the @StyleBoxLine@'s bounds.\nget_grow_begin ::\n                 (StyleBoxLine :< cls, Object :< cls) => cls -> IO Float\nget_grow_begin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxLine_get_grow_begin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxLine \"get_grow_begin\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.StyleBoxLine.get_grow_begin\n\n{-# NOINLINE bindStyleBoxLine_get_grow_end #-}\n\n-- | The number of pixels the line will extend past the @StyleBoxLine@'s bounds. If set to a negative value, the line will end inside the @StyleBoxLine@'s bounds.\nbindStyleBoxLine_get_grow_end :: MethodBind\nbindStyleBoxLine_get_grow_end\n  = unsafePerformIO $\n      withCString \"StyleBoxLine\" $\n        \\ clsNamePtr ->\n          withCString \"get_grow_end\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of pixels the line will extend past the @StyleBoxLine@'s bounds. If set to a negative value, the line will end inside the @StyleBoxLine@'s bounds.\nget_grow_end ::\n               (StyleBoxLine :< cls, Object :< cls) => cls -> IO Float\nget_grow_end cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxLine_get_grow_end (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxLine \"get_grow_end\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.StyleBoxLine.get_grow_end\n\n{-# NOINLINE bindStyleBoxLine_get_thickness #-}\n\n-- | The line's thickness in pixels.\nbindStyleBoxLine_get_thickness :: MethodBind\nbindStyleBoxLine_get_thickness\n  = unsafePerformIO $\n      withCString \"StyleBoxLine\" $\n        \\ clsNamePtr ->\n          withCString \"get_thickness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The line's thickness in pixels.\nget_thickness ::\n                (StyleBoxLine :< cls, Object :< cls) => cls -> IO Int\nget_thickness cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxLine_get_thickness (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxLine \"get_thickness\" '[] (IO Int) where\n        nodeMethod = Godot.Core.StyleBoxLine.get_thickness\n\n{-# NOINLINE bindStyleBoxLine_is_vertical #-}\n\n-- | If @true@, the line will be vertical. If @false@, the line will be horizontal.\nbindStyleBoxLine_is_vertical :: MethodBind\nbindStyleBoxLine_is_vertical\n  = unsafePerformIO $\n      withCString \"StyleBoxLine\" $\n        \\ clsNamePtr ->\n          withCString \"is_vertical\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the line will be vertical. If @false@, the line will be horizontal.\nis_vertical ::\n              (StyleBoxLine :< cls, Object :< cls) => cls -> IO Bool\nis_vertical cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxLine_is_vertical (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxLine \"is_vertical\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.StyleBoxLine.is_vertical\n\n{-# NOINLINE bindStyleBoxLine_set_color #-}\n\n-- | The line's color.\nbindStyleBoxLine_set_color :: MethodBind\nbindStyleBoxLine_set_color\n  = unsafePerformIO $\n      withCString \"StyleBoxLine\" $\n        \\ clsNamePtr ->\n          withCString \"set_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The line's color.\nset_color ::\n            (StyleBoxLine :< cls, Object :< cls) => cls -> Color -> IO ()\nset_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxLine_set_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxLine \"set_color\" '[Color] (IO ()) where\n        nodeMethod = Godot.Core.StyleBoxLine.set_color\n\n{-# NOINLINE bindStyleBoxLine_set_grow_begin #-}\n\n-- | The number of pixels the line will extend before the @StyleBoxLine@'s bounds. If set to a negative value, the line will begin inside the @StyleBoxLine@'s bounds.\nbindStyleBoxLine_set_grow_begin :: MethodBind\nbindStyleBoxLine_set_grow_begin\n  = unsafePerformIO $\n      withCString \"StyleBoxLine\" $\n        \\ clsNamePtr ->\n          withCString \"set_grow_begin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of pixels the line will extend before the @StyleBoxLine@'s bounds. If set to a negative value, the line will begin inside the @StyleBoxLine@'s bounds.\nset_grow_begin ::\n                 (StyleBoxLine :< cls, Object :< cls) => cls -> Float -> IO ()\nset_grow_begin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxLine_set_grow_begin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxLine \"set_grow_begin\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxLine.set_grow_begin\n\n{-# NOINLINE bindStyleBoxLine_set_grow_end #-}\n\n-- | The number of pixels the line will extend past the @StyleBoxLine@'s bounds. If set to a negative value, the line will end inside the @StyleBoxLine@'s bounds.\nbindStyleBoxLine_set_grow_end :: MethodBind\nbindStyleBoxLine_set_grow_end\n  = unsafePerformIO $\n      withCString \"StyleBoxLine\" $\n        \\ clsNamePtr ->\n          withCString \"set_grow_end\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of pixels the line will extend past the @StyleBoxLine@'s bounds. If set to a negative value, the line will end inside the @StyleBoxLine@'s bounds.\nset_grow_end ::\n               (StyleBoxLine :< cls, Object :< cls) => cls -> Float -> IO ()\nset_grow_end cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxLine_set_grow_end (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxLine \"set_grow_end\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxLine.set_grow_end\n\n{-# NOINLINE bindStyleBoxLine_set_thickness #-}\n\n-- | The line's thickness in pixels.\nbindStyleBoxLine_set_thickness :: MethodBind\nbindStyleBoxLine_set_thickness\n  = unsafePerformIO $\n      withCString \"StyleBoxLine\" $\n        \\ clsNamePtr ->\n          withCString \"set_thickness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The line's thickness in pixels.\nset_thickness ::\n                (StyleBoxLine :< cls, Object :< cls) => cls -> Int -> IO ()\nset_thickness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxLine_set_thickness (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxLine \"set_thickness\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxLine.set_thickness\n\n{-# NOINLINE bindStyleBoxLine_set_vertical #-}\n\n-- | If @true@, the line will be vertical. If @false@, the line will be horizontal.\nbindStyleBoxLine_set_vertical :: MethodBind\nbindStyleBoxLine_set_vertical\n  = unsafePerformIO $\n      withCString \"StyleBoxLine\" $\n        \\ clsNamePtr ->\n          withCString \"set_vertical\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the line will be vertical. If @false@, the line will be horizontal.\nset_vertical ::\n               (StyleBoxLine :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_vertical cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxLine_set_vertical (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxLine \"set_vertical\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxLine.set_vertical"
  },
  {
    "path": "src/Godot/Core/StyleBoxTexture.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.StyleBoxTexture\n       (Godot.Core.StyleBoxTexture._AXIS_STRETCH_MODE_TILE_FIT,\n        Godot.Core.StyleBoxTexture._AXIS_STRETCH_MODE_TILE,\n        Godot.Core.StyleBoxTexture._AXIS_STRETCH_MODE_STRETCH,\n        Godot.Core.StyleBoxTexture.sig_texture_changed,\n        Godot.Core.StyleBoxTexture.get_expand_margin_size,\n        Godot.Core.StyleBoxTexture.get_h_axis_stretch_mode,\n        Godot.Core.StyleBoxTexture.get_margin_size,\n        Godot.Core.StyleBoxTexture.get_modulate,\n        Godot.Core.StyleBoxTexture.get_normal_map,\n        Godot.Core.StyleBoxTexture.get_region_rect,\n        Godot.Core.StyleBoxTexture.get_texture,\n        Godot.Core.StyleBoxTexture.get_v_axis_stretch_mode,\n        Godot.Core.StyleBoxTexture.is_draw_center_enabled,\n        Godot.Core.StyleBoxTexture.set_draw_center,\n        Godot.Core.StyleBoxTexture.set_expand_margin_all,\n        Godot.Core.StyleBoxTexture.set_expand_margin_individual,\n        Godot.Core.StyleBoxTexture.set_expand_margin_size,\n        Godot.Core.StyleBoxTexture.set_h_axis_stretch_mode,\n        Godot.Core.StyleBoxTexture.set_margin_size,\n        Godot.Core.StyleBoxTexture.set_modulate,\n        Godot.Core.StyleBoxTexture.set_normal_map,\n        Godot.Core.StyleBoxTexture.set_region_rect,\n        Godot.Core.StyleBoxTexture.set_texture,\n        Godot.Core.StyleBoxTexture.set_v_axis_stretch_mode)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.StyleBox()\n\n_AXIS_STRETCH_MODE_TILE_FIT :: Int\n_AXIS_STRETCH_MODE_TILE_FIT = 2\n\n_AXIS_STRETCH_MODE_TILE :: Int\n_AXIS_STRETCH_MODE_TILE = 1\n\n_AXIS_STRETCH_MODE_STRETCH :: Int\n_AXIS_STRETCH_MODE_STRETCH = 0\n\n-- | Emitted when the stylebox's texture is changed.\nsig_texture_changed ::\n                    Godot.Internal.Dispatch.Signal StyleBoxTexture\nsig_texture_changed\n  = Godot.Internal.Dispatch.Signal \"texture_changed\"\n\ninstance NodeSignal StyleBoxTexture \"texture_changed\" '[]\n\ninstance NodeProperty StyleBoxTexture \"axis_stretch_horizontal\" Int\n           'False\n         where\n        nodeProperty\n          = (get_h_axis_stretch_mode,\n             wrapDroppingSetter set_h_axis_stretch_mode, Nothing)\n\ninstance NodeProperty StyleBoxTexture \"axis_stretch_vertical\" Int\n           'False\n         where\n        nodeProperty\n          = (get_v_axis_stretch_mode,\n             wrapDroppingSetter set_v_axis_stretch_mode, Nothing)\n\ninstance NodeProperty StyleBoxTexture \"draw_center\" Bool 'False\n         where\n        nodeProperty\n          = (is_draw_center_enabled, wrapDroppingSetter set_draw_center,\n             Nothing)\n\ninstance NodeProperty StyleBoxTexture \"expand_margin_bottom\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_expand_margin_size,\n             wrapIndexedSetter 3 set_expand_margin_size, Nothing)\n\ninstance NodeProperty StyleBoxTexture \"expand_margin_left\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_expand_margin_size,\n             wrapIndexedSetter 0 set_expand_margin_size, Nothing)\n\ninstance NodeProperty StyleBoxTexture \"expand_margin_right\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_expand_margin_size,\n             wrapIndexedSetter 2 set_expand_margin_size, Nothing)\n\ninstance NodeProperty StyleBoxTexture \"expand_margin_top\" Float\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_expand_margin_size,\n             wrapIndexedSetter 1 set_expand_margin_size, Nothing)\n\ninstance NodeProperty StyleBoxTexture \"margin_bottom\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_margin_size,\n             wrapIndexedSetter 3 set_margin_size, Nothing)\n\ninstance NodeProperty StyleBoxTexture \"margin_left\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_margin_size,\n             wrapIndexedSetter 0 set_margin_size, Nothing)\n\ninstance NodeProperty StyleBoxTexture \"margin_right\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_margin_size,\n             wrapIndexedSetter 2 set_margin_size, Nothing)\n\ninstance NodeProperty StyleBoxTexture \"margin_top\" Float 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_margin_size,\n             wrapIndexedSetter 1 set_margin_size, Nothing)\n\ninstance NodeProperty StyleBoxTexture \"modulate_color\" Color 'False\n         where\n        nodeProperty\n          = (get_modulate, wrapDroppingSetter set_modulate, Nothing)\n\ninstance NodeProperty StyleBoxTexture \"normal_map\" Texture 'False\n         where\n        nodeProperty\n          = (get_normal_map, wrapDroppingSetter set_normal_map, Nothing)\n\ninstance NodeProperty StyleBoxTexture \"region_rect\" Rect2 'False\n         where\n        nodeProperty\n          = (get_region_rect, wrapDroppingSetter set_region_rect, Nothing)\n\ninstance NodeProperty StyleBoxTexture \"texture\" Texture 'False\n         where\n        nodeProperty\n          = (get_texture, wrapDroppingSetter set_texture, Nothing)\n\n{-# NOINLINE bindStyleBoxTexture_get_expand_margin_size #-}\n\n-- | Returns the size of the given @margin@'s expand margin. See @enum Margin@ for possible values.\nbindStyleBoxTexture_get_expand_margin_size :: MethodBind\nbindStyleBoxTexture_get_expand_margin_size\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_expand_margin_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the size of the given @margin@'s expand margin. See @enum Margin@ for possible values.\nget_expand_margin_size ::\n                         (StyleBoxTexture :< cls, Object :< cls) => cls -> Int -> IO Float\nget_expand_margin_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_get_expand_margin_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"get_expand_margin_size\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.get_expand_margin_size\n\n{-# NOINLINE bindStyleBoxTexture_get_h_axis_stretch_mode #-}\n\n-- | Controls how the stylebox's texture will be stretched or tiled horizontally. See @enum AxisStretchMode@ for possible values.\nbindStyleBoxTexture_get_h_axis_stretch_mode :: MethodBind\nbindStyleBoxTexture_get_h_axis_stretch_mode\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_h_axis_stretch_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls how the stylebox's texture will be stretched or tiled horizontally. See @enum AxisStretchMode@ for possible values.\nget_h_axis_stretch_mode ::\n                          (StyleBoxTexture :< cls, Object :< cls) => cls -> IO Int\nget_h_axis_stretch_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_get_h_axis_stretch_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"get_h_axis_stretch_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.get_h_axis_stretch_mode\n\n{-# NOINLINE bindStyleBoxTexture_get_margin_size #-}\n\n-- | Returns the size of the given @margin@. See @enum Margin@ for possible values.\nbindStyleBoxTexture_get_margin_size :: MethodBind\nbindStyleBoxTexture_get_margin_size\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_margin_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the size of the given @margin@. See @enum Margin@ for possible values.\nget_margin_size ::\n                  (StyleBoxTexture :< cls, Object :< cls) => cls -> Int -> IO Float\nget_margin_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_get_margin_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"get_margin_size\" '[Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.get_margin_size\n\n{-# NOINLINE bindStyleBoxTexture_get_modulate #-}\n\n-- | Modulates the color of the texture when this style box is drawn.\nbindStyleBoxTexture_get_modulate :: MethodBind\nbindStyleBoxTexture_get_modulate\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_modulate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Modulates the color of the texture when this style box is drawn.\nget_modulate ::\n               (StyleBoxTexture :< cls, Object :< cls) => cls -> IO Color\nget_modulate cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_get_modulate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"get_modulate\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.get_modulate\n\n{-# NOINLINE bindStyleBoxTexture_get_normal_map #-}\n\n-- | The normal map to use when drawing this style box.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nbindStyleBoxTexture_get_normal_map :: MethodBind\nbindStyleBoxTexture_get_normal_map\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_normal_map\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The normal map to use when drawing this style box.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nget_normal_map ::\n                 (StyleBoxTexture :< cls, Object :< cls) => cls -> IO Texture\nget_normal_map cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_get_normal_map\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"get_normal_map\" '[]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.get_normal_map\n\n{-# NOINLINE bindStyleBoxTexture_get_region_rect #-}\n\n-- | Species a sub-region of the texture to use.\n--   \t\t\tThis is equivalent to first wrapping the texture in an @AtlasTexture@ with the same region.\nbindStyleBoxTexture_get_region_rect :: MethodBind\nbindStyleBoxTexture_get_region_rect\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_region_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Species a sub-region of the texture to use.\n--   \t\t\tThis is equivalent to first wrapping the texture in an @AtlasTexture@ with the same region.\nget_region_rect ::\n                  (StyleBoxTexture :< cls, Object :< cls) => cls -> IO Rect2\nget_region_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_get_region_rect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"get_region_rect\" '[]\n           (IO Rect2)\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.get_region_rect\n\n{-# NOINLINE bindStyleBoxTexture_get_texture #-}\n\n-- | The texture to use when drawing this style box.\nbindStyleBoxTexture_get_texture :: MethodBind\nbindStyleBoxTexture_get_texture\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The texture to use when drawing this style box.\nget_texture ::\n              (StyleBoxTexture :< cls, Object :< cls) => cls -> IO Texture\nget_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_get_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"get_texture\" '[] (IO Texture)\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.get_texture\n\n{-# NOINLINE bindStyleBoxTexture_get_v_axis_stretch_mode #-}\n\n-- | Controls how the stylebox's texture will be stretched or tiled vertically. See @enum AxisStretchMode@ for possible values.\nbindStyleBoxTexture_get_v_axis_stretch_mode :: MethodBind\nbindStyleBoxTexture_get_v_axis_stretch_mode\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_v_axis_stretch_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls how the stylebox's texture will be stretched or tiled vertically. See @enum AxisStretchMode@ for possible values.\nget_v_axis_stretch_mode ::\n                          (StyleBoxTexture :< cls, Object :< cls) => cls -> IO Int\nget_v_axis_stretch_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_get_v_axis_stretch_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"get_v_axis_stretch_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.get_v_axis_stretch_mode\n\n{-# NOINLINE bindStyleBoxTexture_is_draw_center_enabled #-}\n\n-- | If @true@, the nine-patch texture's center tile will be drawn.\nbindStyleBoxTexture_is_draw_center_enabled :: MethodBind\nbindStyleBoxTexture_is_draw_center_enabled\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"is_draw_center_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the nine-patch texture's center tile will be drawn.\nis_draw_center_enabled ::\n                         (StyleBoxTexture :< cls, Object :< cls) => cls -> IO Bool\nis_draw_center_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_is_draw_center_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"is_draw_center_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.is_draw_center_enabled\n\n{-# NOINLINE bindStyleBoxTexture_set_draw_center #-}\n\n-- | If @true@, the nine-patch texture's center tile will be drawn.\nbindStyleBoxTexture_set_draw_center :: MethodBind\nbindStyleBoxTexture_set_draw_center\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_draw_center\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the nine-patch texture's center tile will be drawn.\nset_draw_center ::\n                  (StyleBoxTexture :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_draw_center cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_set_draw_center\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"set_draw_center\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.set_draw_center\n\n{-# NOINLINE bindStyleBoxTexture_set_expand_margin_all #-}\n\n-- | Sets the expand margin to @size@ pixels for all margins.\nbindStyleBoxTexture_set_expand_margin_all :: MethodBind\nbindStyleBoxTexture_set_expand_margin_all\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_expand_margin_all\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the expand margin to @size@ pixels for all margins.\nset_expand_margin_all ::\n                        (StyleBoxTexture :< cls, Object :< cls) => cls -> Float -> IO ()\nset_expand_margin_all cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_set_expand_margin_all\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"set_expand_margin_all\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.set_expand_margin_all\n\n{-# NOINLINE bindStyleBoxTexture_set_expand_margin_individual #-}\n\n-- | Sets the expand margin for each margin to @size_left@, @size_top@, @size_right@, and @size_bottom@ pixels.\nbindStyleBoxTexture_set_expand_margin_individual :: MethodBind\nbindStyleBoxTexture_set_expand_margin_individual\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_expand_margin_individual\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the expand margin for each margin to @size_left@, @size_top@, @size_right@, and @size_bottom@ pixels.\nset_expand_margin_individual ::\n                               (StyleBoxTexture :< cls, Object :< cls) =>\n                               cls -> Float -> Float -> Float -> Float -> IO ()\nset_expand_margin_individual cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindStyleBoxTexture_set_expand_margin_individual\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"set_expand_margin_individual\"\n           '[Float, Float, Float, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.StyleBoxTexture.set_expand_margin_individual\n\n{-# NOINLINE bindStyleBoxTexture_set_expand_margin_size #-}\n\n-- | Sets the expand margin to @size@ pixels for the given @margin@. See @enum Margin@ for possible values.\nbindStyleBoxTexture_set_expand_margin_size :: MethodBind\nbindStyleBoxTexture_set_expand_margin_size\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_expand_margin_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the expand margin to @size@ pixels for the given @margin@. See @enum Margin@ for possible values.\nset_expand_margin_size ::\n                         (StyleBoxTexture :< cls, Object :< cls) =>\n                         cls -> Int -> Float -> IO ()\nset_expand_margin_size cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_set_expand_margin_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"set_expand_margin_size\"\n           '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.set_expand_margin_size\n\n{-# NOINLINE bindStyleBoxTexture_set_h_axis_stretch_mode #-}\n\n-- | Controls how the stylebox's texture will be stretched or tiled horizontally. See @enum AxisStretchMode@ for possible values.\nbindStyleBoxTexture_set_h_axis_stretch_mode :: MethodBind\nbindStyleBoxTexture_set_h_axis_stretch_mode\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_h_axis_stretch_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls how the stylebox's texture will be stretched or tiled horizontally. See @enum AxisStretchMode@ for possible values.\nset_h_axis_stretch_mode ::\n                          (StyleBoxTexture :< cls, Object :< cls) => cls -> Int -> IO ()\nset_h_axis_stretch_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_set_h_axis_stretch_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"set_h_axis_stretch_mode\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.set_h_axis_stretch_mode\n\n{-# NOINLINE bindStyleBoxTexture_set_margin_size #-}\n\n-- | Sets the margin to @size@ pixels for the given @margin@. See @enum Margin@ for possible values.\nbindStyleBoxTexture_set_margin_size :: MethodBind\nbindStyleBoxTexture_set_margin_size\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_margin_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the margin to @size@ pixels for the given @margin@. See @enum Margin@ for possible values.\nset_margin_size ::\n                  (StyleBoxTexture :< cls, Object :< cls) =>\n                  cls -> Int -> Float -> IO ()\nset_margin_size cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_set_margin_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"set_margin_size\" '[Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.set_margin_size\n\n{-# NOINLINE bindStyleBoxTexture_set_modulate #-}\n\n-- | Modulates the color of the texture when this style box is drawn.\nbindStyleBoxTexture_set_modulate :: MethodBind\nbindStyleBoxTexture_set_modulate\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_modulate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Modulates the color of the texture when this style box is drawn.\nset_modulate ::\n               (StyleBoxTexture :< cls, Object :< cls) => cls -> Color -> IO ()\nset_modulate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_set_modulate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"set_modulate\" '[Color] (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.set_modulate\n\n{-# NOINLINE bindStyleBoxTexture_set_normal_map #-}\n\n-- | The normal map to use when drawing this style box.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nbindStyleBoxTexture_set_normal_map :: MethodBind\nbindStyleBoxTexture_set_normal_map\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_normal_map\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The normal map to use when drawing this style box.\n--   \t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nset_normal_map ::\n                 (StyleBoxTexture :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_normal_map cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_set_normal_map\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"set_normal_map\" '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.set_normal_map\n\n{-# NOINLINE bindStyleBoxTexture_set_region_rect #-}\n\n-- | Species a sub-region of the texture to use.\n--   \t\t\tThis is equivalent to first wrapping the texture in an @AtlasTexture@ with the same region.\nbindStyleBoxTexture_set_region_rect :: MethodBind\nbindStyleBoxTexture_set_region_rect\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_region_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Species a sub-region of the texture to use.\n--   \t\t\tThis is equivalent to first wrapping the texture in an @AtlasTexture@ with the same region.\nset_region_rect ::\n                  (StyleBoxTexture :< cls, Object :< cls) => cls -> Rect2 -> IO ()\nset_region_rect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_set_region_rect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"set_region_rect\" '[Rect2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.set_region_rect\n\n{-# NOINLINE bindStyleBoxTexture_set_texture #-}\n\n-- | The texture to use when drawing this style box.\nbindStyleBoxTexture_set_texture :: MethodBind\nbindStyleBoxTexture_set_texture\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The texture to use when drawing this style box.\nset_texture ::\n              (StyleBoxTexture :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_set_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"set_texture\" '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.set_texture\n\n{-# NOINLINE bindStyleBoxTexture_set_v_axis_stretch_mode #-}\n\n-- | Controls how the stylebox's texture will be stretched or tiled vertically. See @enum AxisStretchMode@ for possible values.\nbindStyleBoxTexture_set_v_axis_stretch_mode :: MethodBind\nbindStyleBoxTexture_set_v_axis_stretch_mode\n  = unsafePerformIO $\n      withCString \"StyleBoxTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_v_axis_stretch_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls how the stylebox's texture will be stretched or tiled vertically. See @enum AxisStretchMode@ for possible values.\nset_v_axis_stretch_mode ::\n                          (StyleBoxTexture :< cls, Object :< cls) => cls -> Int -> IO ()\nset_v_axis_stretch_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindStyleBoxTexture_set_v_axis_stretch_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod StyleBoxTexture \"set_v_axis_stretch_mode\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.StyleBoxTexture.set_v_axis_stretch_mode"
  },
  {
    "path": "src/Godot/Core/SurfaceTool.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.SurfaceTool\n       (Godot.Core.SurfaceTool.add_bones,\n        Godot.Core.SurfaceTool.add_color, Godot.Core.SurfaceTool.add_index,\n        Godot.Core.SurfaceTool.add_normal,\n        Godot.Core.SurfaceTool.add_smooth_group,\n        Godot.Core.SurfaceTool.add_tangent,\n        Godot.Core.SurfaceTool.add_triangle_fan,\n        Godot.Core.SurfaceTool.add_uv, Godot.Core.SurfaceTool.add_uv2,\n        Godot.Core.SurfaceTool.add_vertex,\n        Godot.Core.SurfaceTool.add_weights,\n        Godot.Core.SurfaceTool.append_from, Godot.Core.SurfaceTool.begin,\n        Godot.Core.SurfaceTool.clear, Godot.Core.SurfaceTool.commit,\n        Godot.Core.SurfaceTool.commit_to_arrays,\n        Godot.Core.SurfaceTool.create_from,\n        Godot.Core.SurfaceTool.create_from_blend_shape,\n        Godot.Core.SurfaceTool.deindex,\n        Godot.Core.SurfaceTool.generate_normals,\n        Godot.Core.SurfaceTool.generate_tangents,\n        Godot.Core.SurfaceTool.index, Godot.Core.SurfaceTool.set_material)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindSurfaceTool_add_bones #-}\n\n-- | Adds an array of bones for the next vertex to use. @bones@ must contain 4 integers.\nbindSurfaceTool_add_bones :: MethodBind\nbindSurfaceTool_add_bones\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"add_bones\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an array of bones for the next vertex to use. @bones@ must contain 4 integers.\nadd_bones ::\n            (SurfaceTool :< cls, Object :< cls) => cls -> PoolIntArray -> IO ()\nadd_bones cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_add_bones (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"add_bones\" '[PoolIntArray] (IO ())\n         where\n        nodeMethod = Godot.Core.SurfaceTool.add_bones\n\n{-# NOINLINE bindSurfaceTool_add_color #-}\n\n-- | Specifies a @Color@ for the next vertex to use.\nbindSurfaceTool_add_color :: MethodBind\nbindSurfaceTool_add_color\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"add_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies a @Color@ for the next vertex to use.\nadd_color ::\n            (SurfaceTool :< cls, Object :< cls) => cls -> Color -> IO ()\nadd_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_add_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"add_color\" '[Color] (IO ()) where\n        nodeMethod = Godot.Core.SurfaceTool.add_color\n\n{-# NOINLINE bindSurfaceTool_add_index #-}\n\n-- | Adds an index to index array if you are using indexed vertices. Does not need to be called before adding vertices.\nbindSurfaceTool_add_index :: MethodBind\nbindSurfaceTool_add_index\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"add_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an index to index array if you are using indexed vertices. Does not need to be called before adding vertices.\nadd_index ::\n            (SurfaceTool :< cls, Object :< cls) => cls -> Int -> IO ()\nadd_index cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_add_index (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"add_index\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.SurfaceTool.add_index\n\n{-# NOINLINE bindSurfaceTool_add_normal #-}\n\n-- | Specifies a normal for the next vertex to use.\nbindSurfaceTool_add_normal :: MethodBind\nbindSurfaceTool_add_normal\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"add_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies a normal for the next vertex to use.\nadd_normal ::\n             (SurfaceTool :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nadd_normal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_add_normal (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"add_normal\" '[Vector3] (IO ())\n         where\n        nodeMethod = Godot.Core.SurfaceTool.add_normal\n\n{-# NOINLINE bindSurfaceTool_add_smooth_group #-}\n\n-- | Specifies whether the current vertex (if using only vertex arrays) or current index (if also using index arrays) should use smooth normals for normal calculation.\nbindSurfaceTool_add_smooth_group :: MethodBind\nbindSurfaceTool_add_smooth_group\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"add_smooth_group\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies whether the current vertex (if using only vertex arrays) or current index (if also using index arrays) should use smooth normals for normal calculation.\nadd_smooth_group ::\n                   (SurfaceTool :< cls, Object :< cls) => cls -> Bool -> IO ()\nadd_smooth_group cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_add_smooth_group\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"add_smooth_group\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.SurfaceTool.add_smooth_group\n\n{-# NOINLINE bindSurfaceTool_add_tangent #-}\n\n-- | Specifies a tangent for the next vertex to use.\nbindSurfaceTool_add_tangent :: MethodBind\nbindSurfaceTool_add_tangent\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"add_tangent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies a tangent for the next vertex to use.\nadd_tangent ::\n              (SurfaceTool :< cls, Object :< cls) => cls -> Plane -> IO ()\nadd_tangent cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_add_tangent (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"add_tangent\" '[Plane] (IO ())\n         where\n        nodeMethod = Godot.Core.SurfaceTool.add_tangent\n\n{-# NOINLINE bindSurfaceTool_add_triangle_fan #-}\n\n-- | Inserts a triangle fan made of array data into @Mesh@ being constructed.\n--   \t\t\t\tRequires the primitive type be set to @Mesh.PRIMITIVE_TRIANGLES@.\nbindSurfaceTool_add_triangle_fan :: MethodBind\nbindSurfaceTool_add_triangle_fan\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"add_triangle_fan\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Inserts a triangle fan made of array data into @Mesh@ being constructed.\n--   \t\t\t\tRequires the primitive type be set to @Mesh.PRIMITIVE_TRIANGLES@.\nadd_triangle_fan ::\n                   (SurfaceTool :< cls, Object :< cls) =>\n                   cls ->\n                     PoolVector3Array ->\n                       Maybe PoolVector2Array ->\n                         Maybe PoolColorArray ->\n                           Maybe PoolVector2Array ->\n                             Maybe PoolVector3Array -> Maybe Array -> IO ()\nadd_triangle_fan cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1,\n       defaultedVariant VariantPoolVector2Array V.empty arg2,\n       defaultedVariant VariantPoolColorArray V.empty arg3,\n       defaultedVariant VariantPoolVector2Array V.empty arg4,\n       defaultedVariant VariantPoolVector3Array V.empty arg5,\n       defaultedVariant VariantArray V.empty arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_add_triangle_fan\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"add_triangle_fan\"\n           '[PoolVector3Array, Maybe PoolVector2Array, Maybe PoolColorArray,\n             Maybe PoolVector2Array, Maybe PoolVector3Array, Maybe Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SurfaceTool.add_triangle_fan\n\n{-# NOINLINE bindSurfaceTool_add_uv #-}\n\n-- | Specifies a set of UV coordinates to use for the next vertex.\nbindSurfaceTool_add_uv :: MethodBind\nbindSurfaceTool_add_uv\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"add_uv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies a set of UV coordinates to use for the next vertex.\nadd_uv ::\n         (SurfaceTool :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nadd_uv cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_add_uv (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"add_uv\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.SurfaceTool.add_uv\n\n{-# NOINLINE bindSurfaceTool_add_uv2 #-}\n\n-- | Specifies an optional second set of UV coordinates to use for the next vertex.\nbindSurfaceTool_add_uv2 :: MethodBind\nbindSurfaceTool_add_uv2\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"add_uv2\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies an optional second set of UV coordinates to use for the next vertex.\nadd_uv2 ::\n          (SurfaceTool :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nadd_uv2 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_add_uv2 (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"add_uv2\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.SurfaceTool.add_uv2\n\n{-# NOINLINE bindSurfaceTool_add_vertex #-}\n\n-- | Specifies the position of current vertex. Should be called after specifying other vertex properties (e.g. Color, UV).\nbindSurfaceTool_add_vertex :: MethodBind\nbindSurfaceTool_add_vertex\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"add_vertex\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies the position of current vertex. Should be called after specifying other vertex properties (e.g. Color, UV).\nadd_vertex ::\n             (SurfaceTool :< cls, Object :< cls) => cls -> Vector3 -> IO ()\nadd_vertex cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_add_vertex (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"add_vertex\" '[Vector3] (IO ())\n         where\n        nodeMethod = Godot.Core.SurfaceTool.add_vertex\n\n{-# NOINLINE bindSurfaceTool_add_weights #-}\n\n-- | Specifies weight values for next vertex to use. @weights@ must contain 4 values.\nbindSurfaceTool_add_weights :: MethodBind\nbindSurfaceTool_add_weights\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"add_weights\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies weight values for next vertex to use. @weights@ must contain 4 values.\nadd_weights ::\n              (SurfaceTool :< cls, Object :< cls) =>\n              cls -> PoolRealArray -> IO ()\nadd_weights cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_add_weights (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"add_weights\" '[PoolRealArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SurfaceTool.add_weights\n\n{-# NOINLINE bindSurfaceTool_append_from #-}\n\n-- | Append vertices from a given @Mesh@ surface onto the current vertex array with specified @Transform@.\nbindSurfaceTool_append_from :: MethodBind\nbindSurfaceTool_append_from\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"append_from\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Append vertices from a given @Mesh@ surface onto the current vertex array with specified @Transform@.\nappend_from ::\n              (SurfaceTool :< cls, Object :< cls) =>\n              cls -> Mesh -> Int -> Transform -> IO ()\nappend_from cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_append_from (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"append_from\"\n           '[Mesh, Int, Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SurfaceTool.append_from\n\n{-# NOINLINE bindSurfaceTool_begin #-}\n\n-- | Called before adding any vertices. Takes the primitive type as an argument (e.g. @Mesh.PRIMITIVE_TRIANGLES@).\nbindSurfaceTool_begin :: MethodBind\nbindSurfaceTool_begin\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"begin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called before adding any vertices. Takes the primitive type as an argument (e.g. @Mesh.PRIMITIVE_TRIANGLES@).\nbegin :: (SurfaceTool :< cls, Object :< cls) => cls -> Int -> IO ()\nbegin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_begin (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"begin\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.SurfaceTool.begin\n\n{-# NOINLINE bindSurfaceTool_clear #-}\n\n-- | Clear all information passed into the surface tool so far.\nbindSurfaceTool_clear :: MethodBind\nbindSurfaceTool_clear\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clear all information passed into the surface tool so far.\nclear :: (SurfaceTool :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_clear (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.SurfaceTool.clear\n\n{-# NOINLINE bindSurfaceTool_commit #-}\n\n-- | Returns a constructed @ArrayMesh@ from current information passed in. If an existing @ArrayMesh@ is passed in as an argument, will add an extra surface to the existing @ArrayMesh@.\n--   \t\t\t\tDefault flag is @Mesh.ARRAY_COMPRESS_DEFAULT@. See @ARRAY_COMPRESS_*@ constants in @enum Mesh.ArrayFormat@ for other flags.\nbindSurfaceTool_commit :: MethodBind\nbindSurfaceTool_commit\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"commit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a constructed @ArrayMesh@ from current information passed in. If an existing @ArrayMesh@ is passed in as an argument, will add an extra surface to the existing @ArrayMesh@.\n--   \t\t\t\tDefault flag is @Mesh.ARRAY_COMPRESS_DEFAULT@. See @ARRAY_COMPRESS_*@ constants in @enum Mesh.ArrayFormat@ for other flags.\ncommit ::\n         (SurfaceTool :< cls, Object :< cls) =>\n         cls -> Maybe ArrayMesh -> Maybe Int -> IO ArrayMesh\ncommit cls arg1 arg2\n  = withVariantArray\n      [maybe VariantNil toVariant arg1,\n       maybe (VariantInt (97280)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_commit (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"commit\"\n           '[Maybe ArrayMesh, Maybe Int]\n           (IO ArrayMesh)\n         where\n        nodeMethod = Godot.Core.SurfaceTool.commit\n\n{-# NOINLINE bindSurfaceTool_commit_to_arrays #-}\n\n-- | Commits the data to the same format used by @method ArrayMesh.add_surface_from_arrays@. This way you can further process the mesh data using the @ArrayMesh@ API.\nbindSurfaceTool_commit_to_arrays :: MethodBind\nbindSurfaceTool_commit_to_arrays\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"commit_to_arrays\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Commits the data to the same format used by @method ArrayMesh.add_surface_from_arrays@. This way you can further process the mesh data using the @ArrayMesh@ API.\ncommit_to_arrays ::\n                   (SurfaceTool :< cls, Object :< cls) => cls -> IO Array\ncommit_to_arrays cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_commit_to_arrays\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"commit_to_arrays\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Core.SurfaceTool.commit_to_arrays\n\n{-# NOINLINE bindSurfaceTool_create_from #-}\n\n-- | Creates a vertex array from an existing @Mesh@.\nbindSurfaceTool_create_from :: MethodBind\nbindSurfaceTool_create_from\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"create_from\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a vertex array from an existing @Mesh@.\ncreate_from ::\n              (SurfaceTool :< cls, Object :< cls) => cls -> Mesh -> Int -> IO ()\ncreate_from cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_create_from (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"create_from\" '[Mesh, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.SurfaceTool.create_from\n\n{-# NOINLINE bindSurfaceTool_create_from_blend_shape #-}\n\n-- | Creates a vertex array from the specified blend shape of an existing @Mesh@. This can be used to extract a specific pose from a blend shape.\nbindSurfaceTool_create_from_blend_shape :: MethodBind\nbindSurfaceTool_create_from_blend_shape\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"create_from_blend_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a vertex array from the specified blend shape of an existing @Mesh@. This can be used to extract a specific pose from a blend shape.\ncreate_from_blend_shape ::\n                          (SurfaceTool :< cls, Object :< cls) =>\n                          cls -> Mesh -> Int -> GodotString -> IO ()\ncreate_from_blend_shape cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_create_from_blend_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"create_from_blend_shape\"\n           '[Mesh, Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SurfaceTool.create_from_blend_shape\n\n{-# NOINLINE bindSurfaceTool_deindex #-}\n\n-- | Removes the index array by expanding the vertex array.\nbindSurfaceTool_deindex :: MethodBind\nbindSurfaceTool_deindex\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"deindex\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the index array by expanding the vertex array.\ndeindex :: (SurfaceTool :< cls, Object :< cls) => cls -> IO ()\ndeindex cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_deindex (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"deindex\" '[] (IO ()) where\n        nodeMethod = Godot.Core.SurfaceTool.deindex\n\n{-# NOINLINE bindSurfaceTool_generate_normals #-}\n\n-- | Generates normals from vertices so you do not have to do it manually. If @flip@ is @true@, the resulting normals will be inverted.\n--   \t\t\t\tRequires the primitive type to be set to @Mesh.PRIMITIVE_TRIANGLES@.\nbindSurfaceTool_generate_normals :: MethodBind\nbindSurfaceTool_generate_normals\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"generate_normals\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Generates normals from vertices so you do not have to do it manually. If @flip@ is @true@, the resulting normals will be inverted.\n--   \t\t\t\tRequires the primitive type to be set to @Mesh.PRIMITIVE_TRIANGLES@.\ngenerate_normals ::\n                   (SurfaceTool :< cls, Object :< cls) => cls -> Maybe Bool -> IO ()\ngenerate_normals cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_generate_normals\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"generate_normals\" '[Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.SurfaceTool.generate_normals\n\n{-# NOINLINE bindSurfaceTool_generate_tangents #-}\n\n-- | Generates a tangent vector for each vertex. Requires that each vertex have UVs and normals set already.\nbindSurfaceTool_generate_tangents :: MethodBind\nbindSurfaceTool_generate_tangents\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"generate_tangents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Generates a tangent vector for each vertex. Requires that each vertex have UVs and normals set already.\ngenerate_tangents ::\n                    (SurfaceTool :< cls, Object :< cls) => cls -> IO ()\ngenerate_tangents cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_generate_tangents\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"generate_tangents\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.SurfaceTool.generate_tangents\n\n{-# NOINLINE bindSurfaceTool_index #-}\n\n-- | Shrinks the vertex array by creating an index array (avoids reusing vertices).\nbindSurfaceTool_index :: MethodBind\nbindSurfaceTool_index\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Shrinks the vertex array by creating an index array (avoids reusing vertices).\nindex :: (SurfaceTool :< cls, Object :< cls) => cls -> IO ()\nindex cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_index (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"index\" '[] (IO ()) where\n        nodeMethod = Godot.Core.SurfaceTool.index\n\n{-# NOINLINE bindSurfaceTool_set_material #-}\n\n-- | Sets @Material@ to be used by the @Mesh@ you are constructing.\nbindSurfaceTool_set_material :: MethodBind\nbindSurfaceTool_set_material\n  = unsafePerformIO $\n      withCString \"SurfaceTool\" $\n        \\ clsNamePtr ->\n          withCString \"set_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets @Material@ to be used by the @Mesh@ you are constructing.\nset_material ::\n               (SurfaceTool :< cls, Object :< cls) => cls -> Material -> IO ()\nset_material cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindSurfaceTool_set_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod SurfaceTool \"set_material\" '[Material] (IO ())\n         where\n        nodeMethod = Godot.Core.SurfaceTool.set_material"
  },
  {
    "path": "src/Godot/Core/TCP_Server.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.TCP_Server\n       (Godot.Core.TCP_Server.is_connection_available,\n        Godot.Core.TCP_Server.is_listening, Godot.Core.TCP_Server.listen,\n        Godot.Core.TCP_Server.stop, Godot.Core.TCP_Server.take_connection)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindTCP_Server_is_connection_available #-}\n\n-- | Returns @true@ if a connection is available for taking.\nbindTCP_Server_is_connection_available :: MethodBind\nbindTCP_Server_is_connection_available\n  = unsafePerformIO $\n      withCString \"TCP_Server\" $\n        \\ clsNamePtr ->\n          withCString \"is_connection_available\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if a connection is available for taking.\nis_connection_available ::\n                          (TCP_Server :< cls, Object :< cls) => cls -> IO Bool\nis_connection_available cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTCP_Server_is_connection_available\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TCP_Server \"is_connection_available\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TCP_Server.is_connection_available\n\n{-# NOINLINE bindTCP_Server_is_listening #-}\n\n-- | Returns @true@ if the server is currently listening for connections.\nbindTCP_Server_is_listening :: MethodBind\nbindTCP_Server_is_listening\n  = unsafePerformIO $\n      withCString \"TCP_Server\" $\n        \\ clsNamePtr ->\n          withCString \"is_listening\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the server is currently listening for connections.\nis_listening ::\n               (TCP_Server :< cls, Object :< cls) => cls -> IO Bool\nis_listening cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTCP_Server_is_listening (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TCP_Server \"is_listening\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.TCP_Server.is_listening\n\n{-# NOINLINE bindTCP_Server_listen #-}\n\n-- | Listen on the @port@ binding to @bind_address@.\n--   \t\t\t\tIf @bind_address@ is set as @\"*\"@ (default), the server will listen on all available addresses (both IPv4 and IPv6).\n--   \t\t\t\tIf @bind_address@ is set as @\"0.0.0.0\"@ (for IPv4) or @\"::\"@ (for IPv6), the server will listen on all available addresses matching that IP type.\n--   \t\t\t\tIf @bind_address@ is set to any valid address (e.g. @\"192.168.1.101\"@, @\"::1\"@, etc), the server will only listen on the interface with that addresses (or fail if no interface with the given address exists).\nbindTCP_Server_listen :: MethodBind\nbindTCP_Server_listen\n  = unsafePerformIO $\n      withCString \"TCP_Server\" $\n        \\ clsNamePtr ->\n          withCString \"listen\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Listen on the @port@ binding to @bind_address@.\n--   \t\t\t\tIf @bind_address@ is set as @\"*\"@ (default), the server will listen on all available addresses (both IPv4 and IPv6).\n--   \t\t\t\tIf @bind_address@ is set as @\"0.0.0.0\"@ (for IPv4) or @\"::\"@ (for IPv6), the server will listen on all available addresses matching that IP type.\n--   \t\t\t\tIf @bind_address@ is set to any valid address (e.g. @\"192.168.1.101\"@, @\"::1\"@, etc), the server will only listen on the interface with that addresses (or fail if no interface with the given address exists).\nlisten ::\n         (TCP_Server :< cls, Object :< cls) =>\n         cls -> Int -> Maybe GodotString -> IO Int\nlisten cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"*\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTCP_Server_listen (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TCP_Server \"listen\" '[Int, Maybe GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.TCP_Server.listen\n\n{-# NOINLINE bindTCP_Server_stop #-}\n\n-- | Stops listening.\nbindTCP_Server_stop :: MethodBind\nbindTCP_Server_stop\n  = unsafePerformIO $\n      withCString \"TCP_Server\" $\n        \\ clsNamePtr ->\n          withCString \"stop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops listening.\nstop :: (TCP_Server :< cls, Object :< cls) => cls -> IO ()\nstop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTCP_Server_stop (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TCP_Server \"stop\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TCP_Server.stop\n\n{-# NOINLINE bindTCP_Server_take_connection #-}\n\n-- | If a connection is available, returns a StreamPeerTCP with the connection.\nbindTCP_Server_take_connection :: MethodBind\nbindTCP_Server_take_connection\n  = unsafePerformIO $\n      withCString \"TCP_Server\" $\n        \\ clsNamePtr ->\n          withCString \"take_connection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If a connection is available, returns a StreamPeerTCP with the connection.\ntake_connection ::\n                  (TCP_Server :< cls, Object :< cls) => cls -> IO StreamPeerTCP\ntake_connection cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTCP_Server_take_connection (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TCP_Server \"take_connection\" '[]\n           (IO StreamPeerTCP)\n         where\n        nodeMethod = Godot.Core.TCP_Server.take_connection"
  },
  {
    "path": "src/Godot/Core/TabContainer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.TabContainer\n       (Godot.Core.TabContainer._ALIGN_RIGHT,\n        Godot.Core.TabContainer._ALIGN_LEFT,\n        Godot.Core.TabContainer._ALIGN_CENTER,\n        Godot.Core.TabContainer.sig_pre_popup_pressed,\n        Godot.Core.TabContainer.sig_tab_changed,\n        Godot.Core.TabContainer.sig_tab_selected,\n        Godot.Core.TabContainer._child_renamed_callback,\n        Godot.Core.TabContainer._gui_input,\n        Godot.Core.TabContainer._on_mouse_exited,\n        Godot.Core.TabContainer._on_theme_changed,\n        Godot.Core.TabContainer._update_current_tab,\n        Godot.Core.TabContainer.are_tabs_visible,\n        Godot.Core.TabContainer.get_current_tab,\n        Godot.Core.TabContainer.get_current_tab_control,\n        Godot.Core.TabContainer.get_drag_to_rearrange_enabled,\n        Godot.Core.TabContainer.get_popup,\n        Godot.Core.TabContainer.get_previous_tab,\n        Godot.Core.TabContainer.get_tab_align,\n        Godot.Core.TabContainer.get_tab_control,\n        Godot.Core.TabContainer.get_tab_count,\n        Godot.Core.TabContainer.get_tab_disabled,\n        Godot.Core.TabContainer.get_tab_icon,\n        Godot.Core.TabContainer.get_tab_title,\n        Godot.Core.TabContainer.get_tabs_rearrange_group,\n        Godot.Core.TabContainer.get_use_hidden_tabs_for_min_size,\n        Godot.Core.TabContainer.set_current_tab,\n        Godot.Core.TabContainer.set_drag_to_rearrange_enabled,\n        Godot.Core.TabContainer.set_popup,\n        Godot.Core.TabContainer.set_tab_align,\n        Godot.Core.TabContainer.set_tab_disabled,\n        Godot.Core.TabContainer.set_tab_icon,\n        Godot.Core.TabContainer.set_tab_title,\n        Godot.Core.TabContainer.set_tabs_rearrange_group,\n        Godot.Core.TabContainer.set_tabs_visible,\n        Godot.Core.TabContainer.set_use_hidden_tabs_for_min_size)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Container()\n\n_ALIGN_RIGHT :: Int\n_ALIGN_RIGHT = 2\n\n_ALIGN_LEFT :: Int\n_ALIGN_LEFT = 0\n\n_ALIGN_CENTER :: Int\n_ALIGN_CENTER = 1\n\n-- | Emitted when the @TabContainer@'s @Popup@ button is clicked. See @method set_popup@ for details.\nsig_pre_popup_pressed ::\n                      Godot.Internal.Dispatch.Signal TabContainer\nsig_pre_popup_pressed\n  = Godot.Internal.Dispatch.Signal \"pre_popup_pressed\"\n\ninstance NodeSignal TabContainer \"pre_popup_pressed\" '[]\n\n-- | Emitted when switching to another tab.\nsig_tab_changed :: Godot.Internal.Dispatch.Signal TabContainer\nsig_tab_changed = Godot.Internal.Dispatch.Signal \"tab_changed\"\n\ninstance NodeSignal TabContainer \"tab_changed\" '[Int]\n\n-- | Emitted when a tab is selected, even if it is the current tab.\nsig_tab_selected :: Godot.Internal.Dispatch.Signal TabContainer\nsig_tab_selected = Godot.Internal.Dispatch.Signal \"tab_selected\"\n\ninstance NodeSignal TabContainer \"tab_selected\" '[Int]\n\ninstance NodeProperty TabContainer \"current_tab\" Int 'False where\n        nodeProperty\n          = (get_current_tab, wrapDroppingSetter set_current_tab, Nothing)\n\ninstance NodeProperty TabContainer \"drag_to_rearrange_enabled\" Bool\n           'False\n         where\n        nodeProperty\n          = (get_drag_to_rearrange_enabled,\n             wrapDroppingSetter set_drag_to_rearrange_enabled, Nothing)\n\ninstance NodeProperty TabContainer \"tab_align\" Int 'False where\n        nodeProperty\n          = (get_tab_align, wrapDroppingSetter set_tab_align, Nothing)\n\ninstance NodeProperty TabContainer \"tabs_visible\" Bool 'False where\n        nodeProperty\n          = (are_tabs_visible, wrapDroppingSetter set_tabs_visible, Nothing)\n\ninstance NodeProperty TabContainer \"use_hidden_tabs_for_min_size\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (get_use_hidden_tabs_for_min_size,\n             wrapDroppingSetter set_use_hidden_tabs_for_min_size, Nothing)\n\n{-# NOINLINE bindTabContainer__child_renamed_callback #-}\n\nbindTabContainer__child_renamed_callback :: MethodBind\nbindTabContainer__child_renamed_callback\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"_child_renamed_callback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_child_renamed_callback ::\n                          (TabContainer :< cls, Object :< cls) => cls -> IO ()\n_child_renamed_callback cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer__child_renamed_callback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"_child_renamed_callback\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TabContainer._child_renamed_callback\n\n{-# NOINLINE bindTabContainer__gui_input #-}\n\nbindTabContainer__gui_input :: MethodBind\nbindTabContainer__gui_input\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (TabContainer :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer__gui_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"_gui_input\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.TabContainer._gui_input\n\n{-# NOINLINE bindTabContainer__on_mouse_exited #-}\n\nbindTabContainer__on_mouse_exited :: MethodBind\nbindTabContainer__on_mouse_exited\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"_on_mouse_exited\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_on_mouse_exited ::\n                   (TabContainer :< cls, Object :< cls) => cls -> IO ()\n_on_mouse_exited cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer__on_mouse_exited\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"_on_mouse_exited\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.TabContainer._on_mouse_exited\n\n{-# NOINLINE bindTabContainer__on_theme_changed #-}\n\nbindTabContainer__on_theme_changed :: MethodBind\nbindTabContainer__on_theme_changed\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"_on_theme_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_on_theme_changed ::\n                    (TabContainer :< cls, Object :< cls) => cls -> IO ()\n_on_theme_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer__on_theme_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"_on_theme_changed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.TabContainer._on_theme_changed\n\n{-# NOINLINE bindTabContainer__update_current_tab #-}\n\nbindTabContainer__update_current_tab :: MethodBind\nbindTabContainer__update_current_tab\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"_update_current_tab\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_current_tab ::\n                      (TabContainer :< cls, Object :< cls) => cls -> IO ()\n_update_current_tab cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer__update_current_tab\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"_update_current_tab\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.TabContainer._update_current_tab\n\n{-# NOINLINE bindTabContainer_are_tabs_visible #-}\n\n-- | If @true@, tabs are visible. If @false@, tabs' content and titles are hidden.\nbindTabContainer_are_tabs_visible :: MethodBind\nbindTabContainer_are_tabs_visible\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"are_tabs_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, tabs are visible. If @false@, tabs' content and titles are hidden.\nare_tabs_visible ::\n                   (TabContainer :< cls, Object :< cls) => cls -> IO Bool\nare_tabs_visible cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_are_tabs_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"are_tabs_visible\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.TabContainer.are_tabs_visible\n\n{-# NOINLINE bindTabContainer_get_current_tab #-}\n\n-- | The current tab index. When set, this index's @Control@ node's @visible@ property is set to @true@ and all others are set to @false@.\nbindTabContainer_get_current_tab :: MethodBind\nbindTabContainer_get_current_tab\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_tab\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current tab index. When set, this index's @Control@ node's @visible@ property is set to @true@ and all others are set to @false@.\nget_current_tab ::\n                  (TabContainer :< cls, Object :< cls) => cls -> IO Int\nget_current_tab cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_get_current_tab\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"get_current_tab\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.TabContainer.get_current_tab\n\n{-# NOINLINE bindTabContainer_get_current_tab_control #-}\n\n-- | Returns the child @Control@ node located at the active tab index.\nbindTabContainer_get_current_tab_control :: MethodBind\nbindTabContainer_get_current_tab_control\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_tab_control\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the child @Control@ node located at the active tab index.\nget_current_tab_control ::\n                          (TabContainer :< cls, Object :< cls) => cls -> IO Control\nget_current_tab_control cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_get_current_tab_control\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"get_current_tab_control\" '[]\n           (IO Control)\n         where\n        nodeMethod = Godot.Core.TabContainer.get_current_tab_control\n\n{-# NOINLINE bindTabContainer_get_drag_to_rearrange_enabled #-}\n\n-- | If @true@, tabs can be rearranged with mouse drag.\nbindTabContainer_get_drag_to_rearrange_enabled :: MethodBind\nbindTabContainer_get_drag_to_rearrange_enabled\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_drag_to_rearrange_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, tabs can be rearranged with mouse drag.\nget_drag_to_rearrange_enabled ::\n                                (TabContainer :< cls, Object :< cls) => cls -> IO Bool\nget_drag_to_rearrange_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindTabContainer_get_drag_to_rearrange_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"get_drag_to_rearrange_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TabContainer.get_drag_to_rearrange_enabled\n\n{-# NOINLINE bindTabContainer_get_popup #-}\n\n-- | Returns the @Popup@ node instance if one has been set already with @method set_popup@.\nbindTabContainer_get_popup :: MethodBind\nbindTabContainer_get_popup\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_popup\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Popup@ node instance if one has been set already with @method set_popup@.\nget_popup ::\n            (TabContainer :< cls, Object :< cls) => cls -> IO Popup\nget_popup cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_get_popup (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"get_popup\" '[] (IO Popup) where\n        nodeMethod = Godot.Core.TabContainer.get_popup\n\n{-# NOINLINE bindTabContainer_get_previous_tab #-}\n\n-- | Returns the previously active tab index.\nbindTabContainer_get_previous_tab :: MethodBind\nbindTabContainer_get_previous_tab\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_previous_tab\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the previously active tab index.\nget_previous_tab ::\n                   (TabContainer :< cls, Object :< cls) => cls -> IO Int\nget_previous_tab cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_get_previous_tab\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"get_previous_tab\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.TabContainer.get_previous_tab\n\n{-# NOINLINE bindTabContainer_get_tab_align #-}\n\n-- | The alignment of all tabs in the tab container. See the @enum TabAlign@ constants for details.\nbindTabContainer_get_tab_align :: MethodBind\nbindTabContainer_get_tab_align\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_tab_align\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The alignment of all tabs in the tab container. See the @enum TabAlign@ constants for details.\nget_tab_align ::\n                (TabContainer :< cls, Object :< cls) => cls -> IO Int\nget_tab_align cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_get_tab_align (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"get_tab_align\" '[] (IO Int) where\n        nodeMethod = Godot.Core.TabContainer.get_tab_align\n\n{-# NOINLINE bindTabContainer_get_tab_control #-}\n\n-- | Returns the @Control@ node from the tab at index @tab_idx@.\nbindTabContainer_get_tab_control :: MethodBind\nbindTabContainer_get_tab_control\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_tab_control\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Control@ node from the tab at index @tab_idx@.\nget_tab_control ::\n                  (TabContainer :< cls, Object :< cls) => cls -> Int -> IO Control\nget_tab_control cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_get_tab_control\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"get_tab_control\" '[Int]\n           (IO Control)\n         where\n        nodeMethod = Godot.Core.TabContainer.get_tab_control\n\n{-# NOINLINE bindTabContainer_get_tab_count #-}\n\n-- | Returns the number of tabs.\nbindTabContainer_get_tab_count :: MethodBind\nbindTabContainer_get_tab_count\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_tab_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of tabs.\nget_tab_count ::\n                (TabContainer :< cls, Object :< cls) => cls -> IO Int\nget_tab_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_get_tab_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"get_tab_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.TabContainer.get_tab_count\n\n{-# NOINLINE bindTabContainer_get_tab_disabled #-}\n\n-- | Returns @true@ if the tab at index @tab_idx@ is disabled.\nbindTabContainer_get_tab_disabled :: MethodBind\nbindTabContainer_get_tab_disabled\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_tab_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the tab at index @tab_idx@ is disabled.\nget_tab_disabled ::\n                   (TabContainer :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_tab_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_get_tab_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"get_tab_disabled\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TabContainer.get_tab_disabled\n\n{-# NOINLINE bindTabContainer_get_tab_icon #-}\n\n-- | Returns the @Texture@ for the tab at index @tab_idx@ or @null@ if the tab has no @Texture@.\nbindTabContainer_get_tab_icon :: MethodBind\nbindTabContainer_get_tab_icon\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_tab_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Texture@ for the tab at index @tab_idx@ or @null@ if the tab has no @Texture@.\nget_tab_icon ::\n               (TabContainer :< cls, Object :< cls) => cls -> Int -> IO Texture\nget_tab_icon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_get_tab_icon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"get_tab_icon\" '[Int] (IO Texture)\n         where\n        nodeMethod = Godot.Core.TabContainer.get_tab_icon\n\n{-# NOINLINE bindTabContainer_get_tab_title #-}\n\n-- | Returns the title of the tab at index @tab_idx@. Tab titles default to the name of the indexed child node, but this can be overridden with @method set_tab_title@.\nbindTabContainer_get_tab_title :: MethodBind\nbindTabContainer_get_tab_title\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_tab_title\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the title of the tab at index @tab_idx@. Tab titles default to the name of the indexed child node, but this can be overridden with @method set_tab_title@.\nget_tab_title ::\n                (TabContainer :< cls, Object :< cls) =>\n                cls -> Int -> IO GodotString\nget_tab_title cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_get_tab_title (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"get_tab_title\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.TabContainer.get_tab_title\n\n{-# NOINLINE bindTabContainer_get_tabs_rearrange_group #-}\n\n-- | Returns the @TabContainer@ rearrange group id.\nbindTabContainer_get_tabs_rearrange_group :: MethodBind\nbindTabContainer_get_tabs_rearrange_group\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_tabs_rearrange_group\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @TabContainer@ rearrange group id.\nget_tabs_rearrange_group ::\n                           (TabContainer :< cls, Object :< cls) => cls -> IO Int\nget_tabs_rearrange_group cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_get_tabs_rearrange_group\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"get_tabs_rearrange_group\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.TabContainer.get_tabs_rearrange_group\n\n{-# NOINLINE bindTabContainer_get_use_hidden_tabs_for_min_size #-}\n\n-- | If @true@, children @Control@ nodes that are hidden have their minimum size take into account in the total, instead of only the currently visible one.\nbindTabContainer_get_use_hidden_tabs_for_min_size :: MethodBind\nbindTabContainer_get_use_hidden_tabs_for_min_size\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_use_hidden_tabs_for_min_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, children @Control@ nodes that are hidden have their minimum size take into account in the total, instead of only the currently visible one.\nget_use_hidden_tabs_for_min_size ::\n                                   (TabContainer :< cls, Object :< cls) => cls -> IO Bool\nget_use_hidden_tabs_for_min_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindTabContainer_get_use_hidden_tabs_for_min_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"get_use_hidden_tabs_for_min_size\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.TabContainer.get_use_hidden_tabs_for_min_size\n\n{-# NOINLINE bindTabContainer_set_current_tab #-}\n\n-- | The current tab index. When set, this index's @Control@ node's @visible@ property is set to @true@ and all others are set to @false@.\nbindTabContainer_set_current_tab :: MethodBind\nbindTabContainer_set_current_tab\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_current_tab\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current tab index. When set, this index's @Control@ node's @visible@ property is set to @true@ and all others are set to @false@.\nset_current_tab ::\n                  (TabContainer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_current_tab cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_set_current_tab\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"set_current_tab\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.TabContainer.set_current_tab\n\n{-# NOINLINE bindTabContainer_set_drag_to_rearrange_enabled #-}\n\n-- | If @true@, tabs can be rearranged with mouse drag.\nbindTabContainer_set_drag_to_rearrange_enabled :: MethodBind\nbindTabContainer_set_drag_to_rearrange_enabled\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_drag_to_rearrange_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, tabs can be rearranged with mouse drag.\nset_drag_to_rearrange_enabled ::\n                                (TabContainer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_drag_to_rearrange_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindTabContainer_set_drag_to_rearrange_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"set_drag_to_rearrange_enabled\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TabContainer.set_drag_to_rearrange_enabled\n\n{-# NOINLINE bindTabContainer_set_popup #-}\n\n-- | If set on a @Popup@ node instance, a popup menu icon appears in the top-right corner of the @TabContainer@. Clicking it will expand the @Popup@ node.\nbindTabContainer_set_popup :: MethodBind\nbindTabContainer_set_popup\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_popup\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If set on a @Popup@ node instance, a popup menu icon appears in the top-right corner of the @TabContainer@. Clicking it will expand the @Popup@ node.\nset_popup ::\n            (TabContainer :< cls, Object :< cls) => cls -> Node -> IO ()\nset_popup cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_set_popup (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"set_popup\" '[Node] (IO ()) where\n        nodeMethod = Godot.Core.TabContainer.set_popup\n\n{-# NOINLINE bindTabContainer_set_tab_align #-}\n\n-- | The alignment of all tabs in the tab container. See the @enum TabAlign@ constants for details.\nbindTabContainer_set_tab_align :: MethodBind\nbindTabContainer_set_tab_align\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_tab_align\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The alignment of all tabs in the tab container. See the @enum TabAlign@ constants for details.\nset_tab_align ::\n                (TabContainer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_tab_align cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_set_tab_align (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"set_tab_align\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.TabContainer.set_tab_align\n\n{-# NOINLINE bindTabContainer_set_tab_disabled #-}\n\n-- | If @disabled@ is @false@, hides the tab at index @tab_idx@.\n--   \t\t\t\t__Note:__ Its title text will remain, unless also removed with @method set_tab_title@.\nbindTabContainer_set_tab_disabled :: MethodBind\nbindTabContainer_set_tab_disabled\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_tab_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @disabled@ is @false@, hides the tab at index @tab_idx@.\n--   \t\t\t\t__Note:__ Its title text will remain, unless also removed with @method set_tab_title@.\nset_tab_disabled ::\n                   (TabContainer :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_tab_disabled cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_set_tab_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"set_tab_disabled\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TabContainer.set_tab_disabled\n\n{-# NOINLINE bindTabContainer_set_tab_icon #-}\n\n-- | Sets an icon for the tab at index @tab_idx@.\nbindTabContainer_set_tab_icon :: MethodBind\nbindTabContainer_set_tab_icon\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_tab_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets an icon for the tab at index @tab_idx@.\nset_tab_icon ::\n               (TabContainer :< cls, Object :< cls) =>\n               cls -> Int -> Texture -> IO ()\nset_tab_icon cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_set_tab_icon (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"set_tab_icon\" '[Int, Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TabContainer.set_tab_icon\n\n{-# NOINLINE bindTabContainer_set_tab_title #-}\n\n-- | Sets a title for the tab at index @tab_idx@. Tab titles default to the name of the indexed child node, but this can be overridden with @method set_tab_title@.\nbindTabContainer_set_tab_title :: MethodBind\nbindTabContainer_set_tab_title\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_tab_title\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a title for the tab at index @tab_idx@. Tab titles default to the name of the indexed child node, but this can be overridden with @method set_tab_title@.\nset_tab_title ::\n                (TabContainer :< cls, Object :< cls) =>\n                cls -> Int -> GodotString -> IO ()\nset_tab_title cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_set_tab_title (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"set_tab_title\"\n           '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TabContainer.set_tab_title\n\n{-# NOINLINE bindTabContainer_set_tabs_rearrange_group #-}\n\n-- | Defines rearrange group id, choose for each @TabContainer@ the same value to enable tab drag between @TabContainer@. Enable drag with @set_drag_to_rearrange_enabled(true)@.\nbindTabContainer_set_tabs_rearrange_group :: MethodBind\nbindTabContainer_set_tabs_rearrange_group\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_tabs_rearrange_group\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines rearrange group id, choose for each @TabContainer@ the same value to enable tab drag between @TabContainer@. Enable drag with @set_drag_to_rearrange_enabled(true)@.\nset_tabs_rearrange_group ::\n                           (TabContainer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_tabs_rearrange_group cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_set_tabs_rearrange_group\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"set_tabs_rearrange_group\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TabContainer.set_tabs_rearrange_group\n\n{-# NOINLINE bindTabContainer_set_tabs_visible #-}\n\n-- | If @true@, tabs are visible. If @false@, tabs' content and titles are hidden.\nbindTabContainer_set_tabs_visible :: MethodBind\nbindTabContainer_set_tabs_visible\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_tabs_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, tabs are visible. If @false@, tabs' content and titles are hidden.\nset_tabs_visible ::\n                   (TabContainer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_tabs_visible cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabContainer_set_tabs_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"set_tabs_visible\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.TabContainer.set_tabs_visible\n\n{-# NOINLINE bindTabContainer_set_use_hidden_tabs_for_min_size #-}\n\n-- | If @true@, children @Control@ nodes that are hidden have their minimum size take into account in the total, instead of only the currently visible one.\nbindTabContainer_set_use_hidden_tabs_for_min_size :: MethodBind\nbindTabContainer_set_use_hidden_tabs_for_min_size\n  = unsafePerformIO $\n      withCString \"TabContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_hidden_tabs_for_min_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, children @Control@ nodes that are hidden have their minimum size take into account in the total, instead of only the currently visible one.\nset_use_hidden_tabs_for_min_size ::\n                                   (TabContainer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_hidden_tabs_for_min_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindTabContainer_set_use_hidden_tabs_for_min_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TabContainer \"set_use_hidden_tabs_for_min_size\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.TabContainer.set_use_hidden_tabs_for_min_size"
  },
  {
    "path": "src/Godot/Core/Tabs.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Tabs\n       (Godot.Core.Tabs._ALIGN_RIGHT,\n        Godot.Core.Tabs._CLOSE_BUTTON_SHOW_ACTIVE_ONLY,\n        Godot.Core.Tabs._ALIGN_MAX, Godot.Core.Tabs._CLOSE_BUTTON_MAX,\n        Godot.Core.Tabs._CLOSE_BUTTON_SHOW_ALWAYS,\n        Godot.Core.Tabs._CLOSE_BUTTON_SHOW_NEVER,\n        Godot.Core.Tabs._ALIGN_LEFT, Godot.Core.Tabs._ALIGN_CENTER,\n        Godot.Core.Tabs.sig_reposition_active_tab_request,\n        Godot.Core.Tabs.sig_right_button_pressed,\n        Godot.Core.Tabs.sig_tab_changed, Godot.Core.Tabs.sig_tab_clicked,\n        Godot.Core.Tabs.sig_tab_close, Godot.Core.Tabs.sig_tab_hover,\n        Godot.Core.Tabs._gui_input, Godot.Core.Tabs._on_mouse_exited,\n        Godot.Core.Tabs._update_hover, Godot.Core.Tabs.add_tab,\n        Godot.Core.Tabs.ensure_tab_visible,\n        Godot.Core.Tabs.get_current_tab,\n        Godot.Core.Tabs.get_drag_to_rearrange_enabled,\n        Godot.Core.Tabs.get_offset_buttons_visible,\n        Godot.Core.Tabs.get_scrolling_enabled,\n        Godot.Core.Tabs.get_select_with_rmb, Godot.Core.Tabs.get_tab_align,\n        Godot.Core.Tabs.get_tab_close_display_policy,\n        Godot.Core.Tabs.get_tab_count, Godot.Core.Tabs.get_tab_disabled,\n        Godot.Core.Tabs.get_tab_icon, Godot.Core.Tabs.get_tab_offset,\n        Godot.Core.Tabs.get_tab_rect, Godot.Core.Tabs.get_tab_title,\n        Godot.Core.Tabs.get_tabs_rearrange_group, Godot.Core.Tabs.move_tab,\n        Godot.Core.Tabs.remove_tab, Godot.Core.Tabs.set_current_tab,\n        Godot.Core.Tabs.set_drag_to_rearrange_enabled,\n        Godot.Core.Tabs.set_scrolling_enabled,\n        Godot.Core.Tabs.set_select_with_rmb, Godot.Core.Tabs.set_tab_align,\n        Godot.Core.Tabs.set_tab_close_display_policy,\n        Godot.Core.Tabs.set_tab_disabled, Godot.Core.Tabs.set_tab_icon,\n        Godot.Core.Tabs.set_tab_title,\n        Godot.Core.Tabs.set_tabs_rearrange_group)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()\n\n_ALIGN_RIGHT :: Int\n_ALIGN_RIGHT = 2\n\n_CLOSE_BUTTON_SHOW_ACTIVE_ONLY :: Int\n_CLOSE_BUTTON_SHOW_ACTIVE_ONLY = 1\n\n_ALIGN_MAX :: Int\n_ALIGN_MAX = 3\n\n_CLOSE_BUTTON_MAX :: Int\n_CLOSE_BUTTON_MAX = 3\n\n_CLOSE_BUTTON_SHOW_ALWAYS :: Int\n_CLOSE_BUTTON_SHOW_ALWAYS = 2\n\n_CLOSE_BUTTON_SHOW_NEVER :: Int\n_CLOSE_BUTTON_SHOW_NEVER = 0\n\n_ALIGN_LEFT :: Int\n_ALIGN_LEFT = 0\n\n_ALIGN_CENTER :: Int\n_ALIGN_CENTER = 1\n\n-- | Emitted when the active tab is rearranged via mouse drag. See @drag_to_rearrange_enabled@.\nsig_reposition_active_tab_request ::\n                                  Godot.Internal.Dispatch.Signal Tabs\nsig_reposition_active_tab_request\n  = Godot.Internal.Dispatch.Signal \"reposition_active_tab_request\"\n\ninstance NodeSignal Tabs \"reposition_active_tab_request\" '[Int]\n\n-- | Emitted when a tab is right-clicked.\nsig_right_button_pressed :: Godot.Internal.Dispatch.Signal Tabs\nsig_right_button_pressed\n  = Godot.Internal.Dispatch.Signal \"right_button_pressed\"\n\ninstance NodeSignal Tabs \"right_button_pressed\" '[Int]\n\n-- | Emitted when switching to another tab.\nsig_tab_changed :: Godot.Internal.Dispatch.Signal Tabs\nsig_tab_changed = Godot.Internal.Dispatch.Signal \"tab_changed\"\n\ninstance NodeSignal Tabs \"tab_changed\" '[Int]\n\n-- | Emitted when a tab is clicked, even if it is the current tab.\nsig_tab_clicked :: Godot.Internal.Dispatch.Signal Tabs\nsig_tab_clicked = Godot.Internal.Dispatch.Signal \"tab_clicked\"\n\ninstance NodeSignal Tabs \"tab_clicked\" '[Int]\n\n-- | Emitted when a tab is closed.\nsig_tab_close :: Godot.Internal.Dispatch.Signal Tabs\nsig_tab_close = Godot.Internal.Dispatch.Signal \"tab_close\"\n\ninstance NodeSignal Tabs \"tab_close\" '[Int]\n\n-- | Emitted when a tab is hovered by the mouse.\nsig_tab_hover :: Godot.Internal.Dispatch.Signal Tabs\nsig_tab_hover = Godot.Internal.Dispatch.Signal \"tab_hover\"\n\ninstance NodeSignal Tabs \"tab_hover\" '[Int]\n\ninstance NodeProperty Tabs \"current_tab\" Int 'False where\n        nodeProperty\n          = (get_current_tab, wrapDroppingSetter set_current_tab, Nothing)\n\ninstance NodeProperty Tabs \"drag_to_rearrange_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (get_drag_to_rearrange_enabled,\n             wrapDroppingSetter set_drag_to_rearrange_enabled, Nothing)\n\ninstance NodeProperty Tabs \"scrolling_enabled\" Bool 'False where\n        nodeProperty\n          = (get_scrolling_enabled, wrapDroppingSetter set_scrolling_enabled,\n             Nothing)\n\ninstance NodeProperty Tabs \"tab_align\" Int 'False where\n        nodeProperty\n          = (get_tab_align, wrapDroppingSetter set_tab_align, Nothing)\n\ninstance NodeProperty Tabs \"tab_close_display_policy\" Int 'False\n         where\n        nodeProperty\n          = (get_tab_close_display_policy,\n             wrapDroppingSetter set_tab_close_display_policy, Nothing)\n\n{-# NOINLINE bindTabs__gui_input #-}\n\nbindTabs__gui_input :: MethodBind\nbindTabs__gui_input\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (Tabs :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs__gui_input (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"_gui_input\" '[InputEvent] (IO ()) where\n        nodeMethod = Godot.Core.Tabs._gui_input\n\n{-# NOINLINE bindTabs__on_mouse_exited #-}\n\nbindTabs__on_mouse_exited :: MethodBind\nbindTabs__on_mouse_exited\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"_on_mouse_exited\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_on_mouse_exited :: (Tabs :< cls, Object :< cls) => cls -> IO ()\n_on_mouse_exited cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs__on_mouse_exited (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"_on_mouse_exited\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Tabs._on_mouse_exited\n\n{-# NOINLINE bindTabs__update_hover #-}\n\nbindTabs__update_hover :: MethodBind\nbindTabs__update_hover\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"_update_hover\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_hover :: (Tabs :< cls, Object :< cls) => cls -> IO ()\n_update_hover cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs__update_hover (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"_update_hover\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Tabs._update_hover\n\n{-# NOINLINE bindTabs_add_tab #-}\n\n-- | Adds a new tab.\nbindTabs_add_tab :: MethodBind\nbindTabs_add_tab\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"add_tab\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new tab.\nadd_tab ::\n          (Tabs :< cls, Object :< cls) =>\n          cls -> Maybe GodotString -> Maybe Texture -> IO ()\nadd_tab cls arg1 arg2\n  = withVariantArray\n      [defaultedVariant VariantString \"\" arg1,\n       maybe VariantNil toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_add_tab (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"add_tab\"\n           '[Maybe GodotString, Maybe Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Tabs.add_tab\n\n{-# NOINLINE bindTabs_ensure_tab_visible #-}\n\n-- | Moves the scroll view to make the tab visible.\nbindTabs_ensure_tab_visible :: MethodBind\nbindTabs_ensure_tab_visible\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"ensure_tab_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves the scroll view to make the tab visible.\nensure_tab_visible ::\n                     (Tabs :< cls, Object :< cls) => cls -> Int -> IO ()\nensure_tab_visible cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_ensure_tab_visible (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"ensure_tab_visible\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Tabs.ensure_tab_visible\n\n{-# NOINLINE bindTabs_get_current_tab #-}\n\n-- | Select tab at index @tab_idx@.\nbindTabs_get_current_tab :: MethodBind\nbindTabs_get_current_tab\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_tab\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Select tab at index @tab_idx@.\nget_current_tab :: (Tabs :< cls, Object :< cls) => cls -> IO Int\nget_current_tab cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_get_current_tab (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"get_current_tab\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Tabs.get_current_tab\n\n{-# NOINLINE bindTabs_get_drag_to_rearrange_enabled #-}\n\n-- | If @true@, tabs can be rearranged with mouse drag.\nbindTabs_get_drag_to_rearrange_enabled :: MethodBind\nbindTabs_get_drag_to_rearrange_enabled\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"get_drag_to_rearrange_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, tabs can be rearranged with mouse drag.\nget_drag_to_rearrange_enabled ::\n                                (Tabs :< cls, Object :< cls) => cls -> IO Bool\nget_drag_to_rearrange_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_get_drag_to_rearrange_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"get_drag_to_rearrange_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Tabs.get_drag_to_rearrange_enabled\n\n{-# NOINLINE bindTabs_get_offset_buttons_visible #-}\n\n-- | Returns @true@ if the offset buttons (the ones that appear when there's not enough space for all tabs) are visible.\nbindTabs_get_offset_buttons_visible :: MethodBind\nbindTabs_get_offset_buttons_visible\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"get_offset_buttons_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the offset buttons (the ones that appear when there's not enough space for all tabs) are visible.\nget_offset_buttons_visible ::\n                             (Tabs :< cls, Object :< cls) => cls -> IO Bool\nget_offset_buttons_visible cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_get_offset_buttons_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"get_offset_buttons_visible\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Tabs.get_offset_buttons_visible\n\n{-# NOINLINE bindTabs_get_scrolling_enabled #-}\n\n-- | if @true@, the mouse's scroll wheel cab be used to navigate the scroll view.\nbindTabs_get_scrolling_enabled :: MethodBind\nbindTabs_get_scrolling_enabled\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"get_scrolling_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | if @true@, the mouse's scroll wheel cab be used to navigate the scroll view.\nget_scrolling_enabled ::\n                        (Tabs :< cls, Object :< cls) => cls -> IO Bool\nget_scrolling_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_get_scrolling_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"get_scrolling_enabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Tabs.get_scrolling_enabled\n\n{-# NOINLINE bindTabs_get_select_with_rmb #-}\n\n-- | Returns @true@ if select with right mouse button is enabled.\nbindTabs_get_select_with_rmb :: MethodBind\nbindTabs_get_select_with_rmb\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"get_select_with_rmb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if select with right mouse button is enabled.\nget_select_with_rmb ::\n                      (Tabs :< cls, Object :< cls) => cls -> IO Bool\nget_select_with_rmb cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_get_select_with_rmb (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"get_select_with_rmb\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Tabs.get_select_with_rmb\n\n{-# NOINLINE bindTabs_get_tab_align #-}\n\n-- | The alignment of all tabs. See @enum TabAlign@ for details.\nbindTabs_get_tab_align :: MethodBind\nbindTabs_get_tab_align\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"get_tab_align\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The alignment of all tabs. See @enum TabAlign@ for details.\nget_tab_align :: (Tabs :< cls, Object :< cls) => cls -> IO Int\nget_tab_align cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_get_tab_align (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"get_tab_align\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Tabs.get_tab_align\n\n{-# NOINLINE bindTabs_get_tab_close_display_policy #-}\n\n-- | Sets when the close button will appear on the tabs. See @enum CloseButtonDisplayPolicy@ for details.\nbindTabs_get_tab_close_display_policy :: MethodBind\nbindTabs_get_tab_close_display_policy\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"get_tab_close_display_policy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets when the close button will appear on the tabs. See @enum CloseButtonDisplayPolicy@ for details.\nget_tab_close_display_policy ::\n                               (Tabs :< cls, Object :< cls) => cls -> IO Int\nget_tab_close_display_policy cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_get_tab_close_display_policy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"get_tab_close_display_policy\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Tabs.get_tab_close_display_policy\n\n{-# NOINLINE bindTabs_get_tab_count #-}\n\n-- | Returns the number of tabs.\nbindTabs_get_tab_count :: MethodBind\nbindTabs_get_tab_count\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"get_tab_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of tabs.\nget_tab_count :: (Tabs :< cls, Object :< cls) => cls -> IO Int\nget_tab_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_get_tab_count (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"get_tab_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Tabs.get_tab_count\n\n{-# NOINLINE bindTabs_get_tab_disabled #-}\n\n-- | Returns @true@ if the tab at index @tab_idx@ is disabled.\nbindTabs_get_tab_disabled :: MethodBind\nbindTabs_get_tab_disabled\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"get_tab_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the tab at index @tab_idx@ is disabled.\nget_tab_disabled ::\n                   (Tabs :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_tab_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_get_tab_disabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"get_tab_disabled\" '[Int] (IO Bool) where\n        nodeMethod = Godot.Core.Tabs.get_tab_disabled\n\n{-# NOINLINE bindTabs_get_tab_icon #-}\n\n-- | Returns the @Texture@ for the tab at index @tab_idx@ or @null@ if the tab has no @Texture@.\nbindTabs_get_tab_icon :: MethodBind\nbindTabs_get_tab_icon\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"get_tab_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Texture@ for the tab at index @tab_idx@ or @null@ if the tab has no @Texture@.\nget_tab_icon ::\n               (Tabs :< cls, Object :< cls) => cls -> Int -> IO Texture\nget_tab_icon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_get_tab_icon (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"get_tab_icon\" '[Int] (IO Texture) where\n        nodeMethod = Godot.Core.Tabs.get_tab_icon\n\n{-# NOINLINE bindTabs_get_tab_offset #-}\n\n-- | Returns the number of hidden tabs offsetted to the left.\nbindTabs_get_tab_offset :: MethodBind\nbindTabs_get_tab_offset\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"get_tab_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of hidden tabs offsetted to the left.\nget_tab_offset :: (Tabs :< cls, Object :< cls) => cls -> IO Int\nget_tab_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_get_tab_offset (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"get_tab_offset\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Tabs.get_tab_offset\n\n{-# NOINLINE bindTabs_get_tab_rect #-}\n\n-- | Returns tab @Rect2@ with local position and size.\nbindTabs_get_tab_rect :: MethodBind\nbindTabs_get_tab_rect\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"get_tab_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns tab @Rect2@ with local position and size.\nget_tab_rect ::\n               (Tabs :< cls, Object :< cls) => cls -> Int -> IO Rect2\nget_tab_rect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_get_tab_rect (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"get_tab_rect\" '[Int] (IO Rect2) where\n        nodeMethod = Godot.Core.Tabs.get_tab_rect\n\n{-# NOINLINE bindTabs_get_tab_title #-}\n\n-- | Returns the title of the tab at index @tab_idx@. Tab titles default to the name of the indexed child node, but this can be overridden with @method set_tab_title@.\nbindTabs_get_tab_title :: MethodBind\nbindTabs_get_tab_title\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"get_tab_title\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the title of the tab at index @tab_idx@. Tab titles default to the name of the indexed child node, but this can be overridden with @method set_tab_title@.\nget_tab_title ::\n                (Tabs :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_tab_title cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_get_tab_title (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"get_tab_title\" '[Int] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Tabs.get_tab_title\n\n{-# NOINLINE bindTabs_get_tabs_rearrange_group #-}\n\n-- | Returns the @Tabs@' rearrange group ID.\nbindTabs_get_tabs_rearrange_group :: MethodBind\nbindTabs_get_tabs_rearrange_group\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"get_tabs_rearrange_group\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Tabs@' rearrange group ID.\nget_tabs_rearrange_group ::\n                           (Tabs :< cls, Object :< cls) => cls -> IO Int\nget_tabs_rearrange_group cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_get_tabs_rearrange_group\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"get_tabs_rearrange_group\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Tabs.get_tabs_rearrange_group\n\n{-# NOINLINE bindTabs_move_tab #-}\n\n-- | Moves a tab from @from@ to @to@.\nbindTabs_move_tab :: MethodBind\nbindTabs_move_tab\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"move_tab\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves a tab from @from@ to @to@.\nmove_tab ::\n           (Tabs :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nmove_tab cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_move_tab (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"move_tab\" '[Int, Int] (IO ()) where\n        nodeMethod = Godot.Core.Tabs.move_tab\n\n{-# NOINLINE bindTabs_remove_tab #-}\n\n-- | Removes the tab at index @tab_idx@.\nbindTabs_remove_tab :: MethodBind\nbindTabs_remove_tab\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"remove_tab\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the tab at index @tab_idx@.\nremove_tab :: (Tabs :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_tab cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_remove_tab (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"remove_tab\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Tabs.remove_tab\n\n{-# NOINLINE bindTabs_set_current_tab #-}\n\n-- | Select tab at index @tab_idx@.\nbindTabs_set_current_tab :: MethodBind\nbindTabs_set_current_tab\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"set_current_tab\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Select tab at index @tab_idx@.\nset_current_tab ::\n                  (Tabs :< cls, Object :< cls) => cls -> Int -> IO ()\nset_current_tab cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_set_current_tab (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"set_current_tab\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Tabs.set_current_tab\n\n{-# NOINLINE bindTabs_set_drag_to_rearrange_enabled #-}\n\n-- | If @true@, tabs can be rearranged with mouse drag.\nbindTabs_set_drag_to_rearrange_enabled :: MethodBind\nbindTabs_set_drag_to_rearrange_enabled\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"set_drag_to_rearrange_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, tabs can be rearranged with mouse drag.\nset_drag_to_rearrange_enabled ::\n                                (Tabs :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_drag_to_rearrange_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_set_drag_to_rearrange_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"set_drag_to_rearrange_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Tabs.set_drag_to_rearrange_enabled\n\n{-# NOINLINE bindTabs_set_scrolling_enabled #-}\n\n-- | if @true@, the mouse's scroll wheel cab be used to navigate the scroll view.\nbindTabs_set_scrolling_enabled :: MethodBind\nbindTabs_set_scrolling_enabled\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"set_scrolling_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | if @true@, the mouse's scroll wheel cab be used to navigate the scroll view.\nset_scrolling_enabled ::\n                        (Tabs :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_scrolling_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_set_scrolling_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"set_scrolling_enabled\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Tabs.set_scrolling_enabled\n\n{-# NOINLINE bindTabs_set_select_with_rmb #-}\n\n-- | If @true@, enables selecting a tab with the right mouse button.\nbindTabs_set_select_with_rmb :: MethodBind\nbindTabs_set_select_with_rmb\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"set_select_with_rmb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables selecting a tab with the right mouse button.\nset_select_with_rmb ::\n                      (Tabs :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_select_with_rmb cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_set_select_with_rmb (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"set_select_with_rmb\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Tabs.set_select_with_rmb\n\n{-# NOINLINE bindTabs_set_tab_align #-}\n\n-- | The alignment of all tabs. See @enum TabAlign@ for details.\nbindTabs_set_tab_align :: MethodBind\nbindTabs_set_tab_align\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"set_tab_align\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The alignment of all tabs. See @enum TabAlign@ for details.\nset_tab_align ::\n                (Tabs :< cls, Object :< cls) => cls -> Int -> IO ()\nset_tab_align cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_set_tab_align (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"set_tab_align\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Tabs.set_tab_align\n\n{-# NOINLINE bindTabs_set_tab_close_display_policy #-}\n\n-- | Sets when the close button will appear on the tabs. See @enum CloseButtonDisplayPolicy@ for details.\nbindTabs_set_tab_close_display_policy :: MethodBind\nbindTabs_set_tab_close_display_policy\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"set_tab_close_display_policy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets when the close button will appear on the tabs. See @enum CloseButtonDisplayPolicy@ for details.\nset_tab_close_display_policy ::\n                               (Tabs :< cls, Object :< cls) => cls -> Int -> IO ()\nset_tab_close_display_policy cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_set_tab_close_display_policy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"set_tab_close_display_policy\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Tabs.set_tab_close_display_policy\n\n{-# NOINLINE bindTabs_set_tab_disabled #-}\n\n-- | If @disabled@ is @false@, hides the tab at index @tab_idx@.\n--   \t\t\t\t__Note:__ Its title text will remain unless it is also removed with @method set_tab_title@.\nbindTabs_set_tab_disabled :: MethodBind\nbindTabs_set_tab_disabled\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"set_tab_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @disabled@ is @false@, hides the tab at index @tab_idx@.\n--   \t\t\t\t__Note:__ Its title text will remain unless it is also removed with @method set_tab_title@.\nset_tab_disabled ::\n                   (Tabs :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_tab_disabled cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_set_tab_disabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"set_tab_disabled\" '[Int, Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Tabs.set_tab_disabled\n\n{-# NOINLINE bindTabs_set_tab_icon #-}\n\n-- | Sets an @icon@ for the tab at index @tab_idx@.\nbindTabs_set_tab_icon :: MethodBind\nbindTabs_set_tab_icon\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"set_tab_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets an @icon@ for the tab at index @tab_idx@.\nset_tab_icon ::\n               (Tabs :< cls, Object :< cls) => cls -> Int -> Texture -> IO ()\nset_tab_icon cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_set_tab_icon (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"set_tab_icon\" '[Int, Texture] (IO ())\n         where\n        nodeMethod = Godot.Core.Tabs.set_tab_icon\n\n{-# NOINLINE bindTabs_set_tab_title #-}\n\n-- | Sets a @title@ for the tab at index @tab_idx@.\nbindTabs_set_tab_title :: MethodBind\nbindTabs_set_tab_title\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"set_tab_title\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a @title@ for the tab at index @tab_idx@.\nset_tab_title ::\n                (Tabs :< cls, Object :< cls) => cls -> Int -> GodotString -> IO ()\nset_tab_title cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_set_tab_title (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"set_tab_title\" '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Tabs.set_tab_title\n\n{-# NOINLINE bindTabs_set_tabs_rearrange_group #-}\n\n-- | Defines the rearrange group ID. Choose for each @Tabs@ the same value to dragging tabs between @Tabs@. Enable drag with @set_drag_to_rearrange_enabled(true)@.\nbindTabs_set_tabs_rearrange_group :: MethodBind\nbindTabs_set_tabs_rearrange_group\n  = unsafePerformIO $\n      withCString \"Tabs\" $\n        \\ clsNamePtr ->\n          withCString \"set_tabs_rearrange_group\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines the rearrange group ID. Choose for each @Tabs@ the same value to dragging tabs between @Tabs@. Enable drag with @set_drag_to_rearrange_enabled(true)@.\nset_tabs_rearrange_group ::\n                           (Tabs :< cls, Object :< cls) => cls -> Int -> IO ()\nset_tabs_rearrange_group cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTabs_set_tabs_rearrange_group\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tabs \"set_tabs_rearrange_group\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Tabs.set_tabs_rearrange_group"
  },
  {
    "path": "src/Godot/Core/TextEdit.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.TextEdit\n       (Godot.Core.TextEdit._MENU_PASTE,\n        Godot.Core.TextEdit._SEARCH_WHOLE_WORDS,\n        Godot.Core.TextEdit._MENU_CLEAR, Godot.Core.TextEdit._MENU_MAX,\n        Godot.Core.TextEdit._MENU_REDO,\n        Godot.Core.TextEdit._SEARCH_BACKWARDS,\n        Godot.Core.TextEdit._MENU_COPY,\n        Godot.Core.TextEdit._SEARCH_RESULT_COLUMN,\n        Godot.Core.TextEdit._MENU_UNDO,\n        Godot.Core.TextEdit._MENU_SELECT_ALL,\n        Godot.Core.TextEdit._MENU_CUT,\n        Godot.Core.TextEdit._SEARCH_RESULT_LINE,\n        Godot.Core.TextEdit._SEARCH_MATCH_CASE,\n        Godot.Core.TextEdit.sig_breakpoint_toggled,\n        Godot.Core.TextEdit.sig_cursor_changed,\n        Godot.Core.TextEdit.sig_info_clicked,\n        Godot.Core.TextEdit.sig_request_completion,\n        Godot.Core.TextEdit.sig_symbol_lookup,\n        Godot.Core.TextEdit.sig_text_changed,\n        Godot.Core.TextEdit._click_selection_held,\n        Godot.Core.TextEdit._cursor_changed_emit,\n        Godot.Core.TextEdit._gui_input,\n        Godot.Core.TextEdit._push_current_op,\n        Godot.Core.TextEdit._scroll_moved,\n        Godot.Core.TextEdit._text_changed_emit,\n        Godot.Core.TextEdit._toggle_draw_caret,\n        Godot.Core.TextEdit._update_wrap_at,\n        Godot.Core.TextEdit._v_scroll_input,\n        Godot.Core.TextEdit.add_color_region,\n        Godot.Core.TextEdit.add_keyword_color,\n        Godot.Core.TextEdit.can_fold,\n        Godot.Core.TextEdit.center_viewport_to_cursor,\n        Godot.Core.TextEdit.clear_colors,\n        Godot.Core.TextEdit.clear_undo_history, Godot.Core.TextEdit.copy,\n        Godot.Core.TextEdit.cursor_get_blink_enabled,\n        Godot.Core.TextEdit.cursor_get_blink_speed,\n        Godot.Core.TextEdit.cursor_get_column,\n        Godot.Core.TextEdit.cursor_get_line,\n        Godot.Core.TextEdit.cursor_is_block_mode,\n        Godot.Core.TextEdit.cursor_set_blink_enabled,\n        Godot.Core.TextEdit.cursor_set_blink_speed,\n        Godot.Core.TextEdit.cursor_set_block_mode,\n        Godot.Core.TextEdit.cursor_set_column,\n        Godot.Core.TextEdit.cursor_set_line, Godot.Core.TextEdit.cut,\n        Godot.Core.TextEdit.deselect, Godot.Core.TextEdit.draw_minimap,\n        Godot.Core.TextEdit.fold_all_lines, Godot.Core.TextEdit.fold_line,\n        Godot.Core.TextEdit.get_breakpoints,\n        Godot.Core.TextEdit.get_h_scroll,\n        Godot.Core.TextEdit.get_keyword_color,\n        Godot.Core.TextEdit.get_line, Godot.Core.TextEdit.get_line_count,\n        Godot.Core.TextEdit.get_menu,\n        Godot.Core.TextEdit.get_minimap_width,\n        Godot.Core.TextEdit.get_selection_from_column,\n        Godot.Core.TextEdit.get_selection_from_line,\n        Godot.Core.TextEdit.get_selection_text,\n        Godot.Core.TextEdit.get_selection_to_column,\n        Godot.Core.TextEdit.get_selection_to_line,\n        Godot.Core.TextEdit.get_text, Godot.Core.TextEdit.get_v_scroll,\n        Godot.Core.TextEdit.get_v_scroll_speed,\n        Godot.Core.TextEdit.get_word_under_cursor,\n        Godot.Core.TextEdit.has_keyword_color,\n        Godot.Core.TextEdit.insert_text_at_cursor,\n        Godot.Core.TextEdit.is_breakpoint_gutter_enabled,\n        Godot.Core.TextEdit.is_context_menu_enabled,\n        Godot.Core.TextEdit.is_drawing_fold_gutter,\n        Godot.Core.TextEdit.is_drawing_minimap,\n        Godot.Core.TextEdit.is_drawing_spaces,\n        Godot.Core.TextEdit.is_drawing_tabs, Godot.Core.TextEdit.is_folded,\n        Godot.Core.TextEdit.is_hiding_enabled,\n        Godot.Core.TextEdit.is_highlight_all_occurrences_enabled,\n        Godot.Core.TextEdit.is_highlight_current_line_enabled,\n        Godot.Core.TextEdit.is_line_hidden,\n        Godot.Core.TextEdit.is_overriding_selected_font_color,\n        Godot.Core.TextEdit.is_readonly,\n        Godot.Core.TextEdit.is_right_click_moving_caret,\n        Godot.Core.TextEdit.is_selecting_enabled,\n        Godot.Core.TextEdit.is_selection_active,\n        Godot.Core.TextEdit.is_shortcut_keys_enabled,\n        Godot.Core.TextEdit.is_show_line_numbers_enabled,\n        Godot.Core.TextEdit.is_smooth_scroll_enabled,\n        Godot.Core.TextEdit.is_syntax_coloring_enabled,\n        Godot.Core.TextEdit.is_wrap_enabled,\n        Godot.Core.TextEdit.menu_option, Godot.Core.TextEdit.paste,\n        Godot.Core.TextEdit.redo, Godot.Core.TextEdit.remove_breakpoints,\n        Godot.Core.TextEdit.search, Godot.Core.TextEdit.select,\n        Godot.Core.TextEdit.select_all,\n        Godot.Core.TextEdit.set_breakpoint_gutter_enabled,\n        Godot.Core.TextEdit.set_context_menu_enabled,\n        Godot.Core.TextEdit.set_draw_fold_gutter,\n        Godot.Core.TextEdit.set_draw_spaces,\n        Godot.Core.TextEdit.set_draw_tabs,\n        Godot.Core.TextEdit.set_h_scroll,\n        Godot.Core.TextEdit.set_hiding_enabled,\n        Godot.Core.TextEdit.set_highlight_all_occurrences,\n        Godot.Core.TextEdit.set_highlight_current_line,\n        Godot.Core.TextEdit.set_line_as_hidden,\n        Godot.Core.TextEdit.set_minimap_width,\n        Godot.Core.TextEdit.set_override_selected_font_color,\n        Godot.Core.TextEdit.set_readonly,\n        Godot.Core.TextEdit.set_right_click_moves_caret,\n        Godot.Core.TextEdit.set_selecting_enabled,\n        Godot.Core.TextEdit.set_shortcut_keys_enabled,\n        Godot.Core.TextEdit.set_show_line_numbers,\n        Godot.Core.TextEdit.set_smooth_scroll_enable,\n        Godot.Core.TextEdit.set_syntax_coloring,\n        Godot.Core.TextEdit.set_text, Godot.Core.TextEdit.set_v_scroll,\n        Godot.Core.TextEdit.set_v_scroll_speed,\n        Godot.Core.TextEdit.set_wrap_enabled,\n        Godot.Core.TextEdit.toggle_fold_line, Godot.Core.TextEdit.undo,\n        Godot.Core.TextEdit.unfold_line,\n        Godot.Core.TextEdit.unhide_all_lines)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()\n\n_MENU_PASTE :: Int\n_MENU_PASTE = 2\n\n_SEARCH_WHOLE_WORDS :: Int\n_SEARCH_WHOLE_WORDS = 2\n\n_MENU_CLEAR :: Int\n_MENU_CLEAR = 3\n\n_MENU_MAX :: Int\n_MENU_MAX = 7\n\n_MENU_REDO :: Int\n_MENU_REDO = 6\n\n_SEARCH_BACKWARDS :: Int\n_SEARCH_BACKWARDS = 4\n\n_MENU_COPY :: Int\n_MENU_COPY = 1\n\n_SEARCH_RESULT_COLUMN :: Int\n_SEARCH_RESULT_COLUMN = 0\n\n_MENU_UNDO :: Int\n_MENU_UNDO = 5\n\n_MENU_SELECT_ALL :: Int\n_MENU_SELECT_ALL = 4\n\n_MENU_CUT :: Int\n_MENU_CUT = 0\n\n_SEARCH_RESULT_LINE :: Int\n_SEARCH_RESULT_LINE = 1\n\n_SEARCH_MATCH_CASE :: Int\n_SEARCH_MATCH_CASE = 1\n\n-- | Emitted when a breakpoint is placed via the breakpoint gutter.\nsig_breakpoint_toggled :: Godot.Internal.Dispatch.Signal TextEdit\nsig_breakpoint_toggled\n  = Godot.Internal.Dispatch.Signal \"breakpoint_toggled\"\n\ninstance NodeSignal TextEdit \"breakpoint_toggled\" '[Int]\n\n-- | Emitted when the cursor changes.\nsig_cursor_changed :: Godot.Internal.Dispatch.Signal TextEdit\nsig_cursor_changed\n  = Godot.Internal.Dispatch.Signal \"cursor_changed\"\n\ninstance NodeSignal TextEdit \"cursor_changed\" '[]\n\n-- | Emitted when the info icon is clicked.\nsig_info_clicked :: Godot.Internal.Dispatch.Signal TextEdit\nsig_info_clicked = Godot.Internal.Dispatch.Signal \"info_clicked\"\n\ninstance NodeSignal TextEdit \"info_clicked\" '[Int, GodotString]\n\nsig_request_completion :: Godot.Internal.Dispatch.Signal TextEdit\nsig_request_completion\n  = Godot.Internal.Dispatch.Signal \"request_completion\"\n\ninstance NodeSignal TextEdit \"request_completion\" '[]\n\nsig_symbol_lookup :: Godot.Internal.Dispatch.Signal TextEdit\nsig_symbol_lookup = Godot.Internal.Dispatch.Signal \"symbol_lookup\"\n\ninstance NodeSignal TextEdit \"symbol_lookup\"\n           '[GodotString, Int, Int]\n\n-- | Emitted when the text changes.\nsig_text_changed :: Godot.Internal.Dispatch.Signal TextEdit\nsig_text_changed = Godot.Internal.Dispatch.Signal \"text_changed\"\n\ninstance NodeSignal TextEdit \"text_changed\" '[]\n\ninstance NodeProperty TextEdit \"breakpoint_gutter\" Bool 'False\n         where\n        nodeProperty\n          = (is_breakpoint_gutter_enabled,\n             wrapDroppingSetter set_breakpoint_gutter_enabled, Nothing)\n\ninstance NodeProperty TextEdit \"caret_blink\" Bool 'False where\n        nodeProperty\n          = (cursor_get_blink_enabled,\n             wrapDroppingSetter cursor_set_blink_enabled, Nothing)\n\ninstance NodeProperty TextEdit \"caret_blink_speed\" Float 'False\n         where\n        nodeProperty\n          = (cursor_get_blink_speed,\n             wrapDroppingSetter cursor_set_blink_speed, Nothing)\n\ninstance NodeProperty TextEdit \"caret_block_mode\" Bool 'False where\n        nodeProperty\n          = (cursor_is_block_mode, wrapDroppingSetter cursor_set_block_mode,\n             Nothing)\n\ninstance NodeProperty TextEdit \"caret_moving_by_right_click\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_right_click_moving_caret,\n             wrapDroppingSetter set_right_click_moves_caret, Nothing)\n\ninstance NodeProperty TextEdit \"context_menu_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_context_menu_enabled,\n             wrapDroppingSetter set_context_menu_enabled, Nothing)\n\ninstance NodeProperty TextEdit \"draw_spaces\" Bool 'False where\n        nodeProperty\n          = (is_drawing_spaces, wrapDroppingSetter set_draw_spaces, Nothing)\n\ninstance NodeProperty TextEdit \"draw_tabs\" Bool 'False where\n        nodeProperty\n          = (is_drawing_tabs, wrapDroppingSetter set_draw_tabs, Nothing)\n\ninstance NodeProperty TextEdit \"fold_gutter\" Bool 'False where\n        nodeProperty\n          = (is_drawing_fold_gutter, wrapDroppingSetter set_draw_fold_gutter,\n             Nothing)\n\ninstance NodeProperty TextEdit \"hiding_enabled\" Bool 'False where\n        nodeProperty\n          = (is_hiding_enabled, wrapDroppingSetter set_hiding_enabled,\n             Nothing)\n\ninstance NodeProperty TextEdit \"highlight_all_occurrences\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_highlight_all_occurrences_enabled,\n             wrapDroppingSetter set_highlight_all_occurrences, Nothing)\n\ninstance NodeProperty TextEdit \"highlight_current_line\" Bool 'False\n         where\n        nodeProperty\n          = (is_highlight_current_line_enabled,\n             wrapDroppingSetter set_highlight_current_line, Nothing)\n\ninstance NodeProperty TextEdit \"minimap_draw\" Bool 'False where\n        nodeProperty\n          = (is_drawing_minimap, wrapDroppingSetter draw_minimap, Nothing)\n\ninstance NodeProperty TextEdit \"minimap_width\" Int 'False where\n        nodeProperty\n          = (get_minimap_width, wrapDroppingSetter set_minimap_width,\n             Nothing)\n\ninstance NodeProperty TextEdit \"override_selected_font_color\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_overriding_selected_font_color,\n             wrapDroppingSetter set_override_selected_font_color, Nothing)\n\ninstance NodeProperty TextEdit \"readonly\" Bool 'False where\n        nodeProperty\n          = (is_readonly, wrapDroppingSetter set_readonly, Nothing)\n\ninstance NodeProperty TextEdit \"scroll_horizontal\" Int 'False where\n        nodeProperty\n          = (get_h_scroll, wrapDroppingSetter set_h_scroll, Nothing)\n\ninstance NodeProperty TextEdit \"scroll_vertical\" Float 'False where\n        nodeProperty\n          = (get_v_scroll, wrapDroppingSetter set_v_scroll, Nothing)\n\ninstance NodeProperty TextEdit \"selecting_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_selecting_enabled, wrapDroppingSetter set_selecting_enabled,\n             Nothing)\n\ninstance NodeProperty TextEdit \"shortcut_keys_enabled\" Bool 'False\n         where\n        nodeProperty\n          = (is_shortcut_keys_enabled,\n             wrapDroppingSetter set_shortcut_keys_enabled, Nothing)\n\ninstance NodeProperty TextEdit \"show_line_numbers\" Bool 'False\n         where\n        nodeProperty\n          = (is_show_line_numbers_enabled,\n             wrapDroppingSetter set_show_line_numbers, Nothing)\n\ninstance NodeProperty TextEdit \"smooth_scrolling\" Bool 'False where\n        nodeProperty\n          = (is_smooth_scroll_enabled,\n             wrapDroppingSetter set_smooth_scroll_enable, Nothing)\n\ninstance NodeProperty TextEdit \"syntax_highlighting\" Bool 'False\n         where\n        nodeProperty\n          = (is_syntax_coloring_enabled,\n             wrapDroppingSetter set_syntax_coloring, Nothing)\n\ninstance NodeProperty TextEdit \"text\" GodotString 'False where\n        nodeProperty = (get_text, wrapDroppingSetter set_text, Nothing)\n\ninstance NodeProperty TextEdit \"v_scroll_speed\" Float 'False where\n        nodeProperty\n          = (get_v_scroll_speed, wrapDroppingSetter set_v_scroll_speed,\n             Nothing)\n\ninstance NodeProperty TextEdit \"wrap_enabled\" Bool 'False where\n        nodeProperty\n          = (is_wrap_enabled, wrapDroppingSetter set_wrap_enabled, Nothing)\n\n{-# NOINLINE bindTextEdit__click_selection_held #-}\n\nbindTextEdit__click_selection_held :: MethodBind\nbindTextEdit__click_selection_held\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_click_selection_held\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_click_selection_held ::\n                        (TextEdit :< cls, Object :< cls) => cls -> IO ()\n_click_selection_held cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit__click_selection_held\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"_click_selection_held\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit._click_selection_held\n\n{-# NOINLINE bindTextEdit__cursor_changed_emit #-}\n\nbindTextEdit__cursor_changed_emit :: MethodBind\nbindTextEdit__cursor_changed_emit\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_cursor_changed_emit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_cursor_changed_emit ::\n                       (TextEdit :< cls, Object :< cls) => cls -> IO ()\n_cursor_changed_emit cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit__cursor_changed_emit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"_cursor_changed_emit\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit._cursor_changed_emit\n\n{-# NOINLINE bindTextEdit__gui_input #-}\n\nbindTextEdit__gui_input :: MethodBind\nbindTextEdit__gui_input\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (TextEdit :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit__gui_input (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"_gui_input\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit._gui_input\n\n{-# NOINLINE bindTextEdit__push_current_op #-}\n\nbindTextEdit__push_current_op :: MethodBind\nbindTextEdit__push_current_op\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_push_current_op\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_push_current_op ::\n                   (TextEdit :< cls, Object :< cls) => cls -> IO ()\n_push_current_op cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit__push_current_op (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"_push_current_op\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit._push_current_op\n\n{-# NOINLINE bindTextEdit__scroll_moved #-}\n\nbindTextEdit__scroll_moved :: MethodBind\nbindTextEdit__scroll_moved\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_scroll_moved\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_scroll_moved ::\n                (TextEdit :< cls, Object :< cls) => cls -> Float -> IO ()\n_scroll_moved cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit__scroll_moved (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"_scroll_moved\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit._scroll_moved\n\n{-# NOINLINE bindTextEdit__text_changed_emit #-}\n\nbindTextEdit__text_changed_emit :: MethodBind\nbindTextEdit__text_changed_emit\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_text_changed_emit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_text_changed_emit ::\n                     (TextEdit :< cls, Object :< cls) => cls -> IO ()\n_text_changed_emit cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit__text_changed_emit (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"_text_changed_emit\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit._text_changed_emit\n\n{-# NOINLINE bindTextEdit__toggle_draw_caret #-}\n\nbindTextEdit__toggle_draw_caret :: MethodBind\nbindTextEdit__toggle_draw_caret\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_toggle_draw_caret\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_toggle_draw_caret ::\n                     (TextEdit :< cls, Object :< cls) => cls -> IO ()\n_toggle_draw_caret cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit__toggle_draw_caret (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"_toggle_draw_caret\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit._toggle_draw_caret\n\n{-# NOINLINE bindTextEdit__update_wrap_at #-}\n\nbindTextEdit__update_wrap_at :: MethodBind\nbindTextEdit__update_wrap_at\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_update_wrap_at\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_wrap_at :: (TextEdit :< cls, Object :< cls) => cls -> IO ()\n_update_wrap_at cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit__update_wrap_at (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"_update_wrap_at\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit._update_wrap_at\n\n{-# NOINLINE bindTextEdit__v_scroll_input #-}\n\nbindTextEdit__v_scroll_input :: MethodBind\nbindTextEdit__v_scroll_input\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"_v_scroll_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_v_scroll_input :: (TextEdit :< cls, Object :< cls) => cls -> IO ()\n_v_scroll_input cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit__v_scroll_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"_v_scroll_input\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit._v_scroll_input\n\n{-# NOINLINE bindTextEdit_add_color_region #-}\n\n-- | Adds color region (given the delimiters) and its colors.\nbindTextEdit_add_color_region :: MethodBind\nbindTextEdit_add_color_region\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"add_color_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds color region (given the delimiters) and its colors.\nadd_color_region ::\n                   (TextEdit :< cls, Object :< cls) =>\n                   cls -> GodotString -> GodotString -> Color -> Maybe Bool -> IO ()\nadd_color_region cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_add_color_region (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"add_color_region\"\n           '[GodotString, GodotString, Color, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.add_color_region\n\n{-# NOINLINE bindTextEdit_add_keyword_color #-}\n\n-- | Adds a @keyword@ and its @Color@.\nbindTextEdit_add_keyword_color :: MethodBind\nbindTextEdit_add_keyword_color\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"add_keyword_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @keyword@ and its @Color@.\nadd_keyword_color ::\n                    (TextEdit :< cls, Object :< cls) =>\n                    cls -> GodotString -> Color -> IO ()\nadd_keyword_color cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_add_keyword_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"add_keyword_color\"\n           '[GodotString, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.add_keyword_color\n\n{-# NOINLINE bindTextEdit_can_fold #-}\n\n-- | Returns if the given line is foldable, that is, it has indented lines right below it.\nbindTextEdit_can_fold :: MethodBind\nbindTextEdit_can_fold\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"can_fold\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns if the given line is foldable, that is, it has indented lines right below it.\ncan_fold ::\n           (TextEdit :< cls, Object :< cls) => cls -> Int -> IO Bool\ncan_fold cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_can_fold (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"can_fold\" '[Int] (IO Bool) where\n        nodeMethod = Godot.Core.TextEdit.can_fold\n\n{-# NOINLINE bindTextEdit_center_viewport_to_cursor #-}\n\n-- | Centers the viewport on the line the editing cursor is at. This also resets the @scroll_horizontal@ value to @0@.\nbindTextEdit_center_viewport_to_cursor :: MethodBind\nbindTextEdit_center_viewport_to_cursor\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"center_viewport_to_cursor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Centers the viewport on the line the editing cursor is at. This also resets the @scroll_horizontal@ value to @0@.\ncenter_viewport_to_cursor ::\n                            (TextEdit :< cls, Object :< cls) => cls -> IO ()\ncenter_viewport_to_cursor cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_center_viewport_to_cursor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"center_viewport_to_cursor\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.center_viewport_to_cursor\n\n{-# NOINLINE bindTextEdit_clear_colors #-}\n\n-- | Clears all custom syntax coloring information previously added with @method add_color_region@ or @method add_keyword_color@.\nbindTextEdit_clear_colors :: MethodBind\nbindTextEdit_clear_colors\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"clear_colors\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears all custom syntax coloring information previously added with @method add_color_region@ or @method add_keyword_color@.\nclear_colors :: (TextEdit :< cls, Object :< cls) => cls -> IO ()\nclear_colors cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_clear_colors (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"clear_colors\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.clear_colors\n\n{-# NOINLINE bindTextEdit_clear_undo_history #-}\n\n-- | Clears the undo history.\nbindTextEdit_clear_undo_history :: MethodBind\nbindTextEdit_clear_undo_history\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"clear_undo_history\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears the undo history.\nclear_undo_history ::\n                     (TextEdit :< cls, Object :< cls) => cls -> IO ()\nclear_undo_history cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_clear_undo_history (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"clear_undo_history\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.clear_undo_history\n\n{-# NOINLINE bindTextEdit_copy #-}\n\n-- | Copy's the current text selection.\nbindTextEdit_copy :: MethodBind\nbindTextEdit_copy\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"copy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Copy's the current text selection.\ncopy :: (TextEdit :< cls, Object :< cls) => cls -> IO ()\ncopy cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_copy (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"copy\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.copy\n\n{-# NOINLINE bindTextEdit_cursor_get_blink_enabled #-}\n\n-- | If @true@, the caret (visual cursor) blinks.\nbindTextEdit_cursor_get_blink_enabled :: MethodBind\nbindTextEdit_cursor_get_blink_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"cursor_get_blink_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the caret (visual cursor) blinks.\ncursor_get_blink_enabled ::\n                           (TextEdit :< cls, Object :< cls) => cls -> IO Bool\ncursor_get_blink_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_cursor_get_blink_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"cursor_get_blink_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.cursor_get_blink_enabled\n\n{-# NOINLINE bindTextEdit_cursor_get_blink_speed #-}\n\n-- | Duration (in seconds) of a caret's blinking cycle.\nbindTextEdit_cursor_get_blink_speed :: MethodBind\nbindTextEdit_cursor_get_blink_speed\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"cursor_get_blink_speed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Duration (in seconds) of a caret's blinking cycle.\ncursor_get_blink_speed ::\n                         (TextEdit :< cls, Object :< cls) => cls -> IO Float\ncursor_get_blink_speed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_cursor_get_blink_speed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"cursor_get_blink_speed\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.TextEdit.cursor_get_blink_speed\n\n{-# NOINLINE bindTextEdit_cursor_get_column #-}\n\n-- | Returns the column the editing cursor is at.\nbindTextEdit_cursor_get_column :: MethodBind\nbindTextEdit_cursor_get_column\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"cursor_get_column\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the column the editing cursor is at.\ncursor_get_column ::\n                    (TextEdit :< cls, Object :< cls) => cls -> IO Int\ncursor_get_column cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_cursor_get_column (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"cursor_get_column\" '[] (IO Int) where\n        nodeMethod = Godot.Core.TextEdit.cursor_get_column\n\n{-# NOINLINE bindTextEdit_cursor_get_line #-}\n\n-- | Returns the line the editing cursor is at.\nbindTextEdit_cursor_get_line :: MethodBind\nbindTextEdit_cursor_get_line\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"cursor_get_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the line the editing cursor is at.\ncursor_get_line ::\n                  (TextEdit :< cls, Object :< cls) => cls -> IO Int\ncursor_get_line cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_cursor_get_line (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"cursor_get_line\" '[] (IO Int) where\n        nodeMethod = Godot.Core.TextEdit.cursor_get_line\n\n{-# NOINLINE bindTextEdit_cursor_is_block_mode #-}\n\n-- | If @true@, the caret displays as a rectangle.\n--   \t\t\tIf @false@, the caret displays as a bar.\nbindTextEdit_cursor_is_block_mode :: MethodBind\nbindTextEdit_cursor_is_block_mode\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"cursor_is_block_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the caret displays as a rectangle.\n--   \t\t\tIf @false@, the caret displays as a bar.\ncursor_is_block_mode ::\n                       (TextEdit :< cls, Object :< cls) => cls -> IO Bool\ncursor_is_block_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_cursor_is_block_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"cursor_is_block_mode\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.cursor_is_block_mode\n\n{-# NOINLINE bindTextEdit_cursor_set_blink_enabled #-}\n\n-- | If @true@, the caret (visual cursor) blinks.\nbindTextEdit_cursor_set_blink_enabled :: MethodBind\nbindTextEdit_cursor_set_blink_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"cursor_set_blink_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the caret (visual cursor) blinks.\ncursor_set_blink_enabled ::\n                           (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\ncursor_set_blink_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_cursor_set_blink_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"cursor_set_blink_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.cursor_set_blink_enabled\n\n{-# NOINLINE bindTextEdit_cursor_set_blink_speed #-}\n\n-- | Duration (in seconds) of a caret's blinking cycle.\nbindTextEdit_cursor_set_blink_speed :: MethodBind\nbindTextEdit_cursor_set_blink_speed\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"cursor_set_blink_speed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Duration (in seconds) of a caret's blinking cycle.\ncursor_set_blink_speed ::\n                         (TextEdit :< cls, Object :< cls) => cls -> Float -> IO ()\ncursor_set_blink_speed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_cursor_set_blink_speed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"cursor_set_blink_speed\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.cursor_set_blink_speed\n\n{-# NOINLINE bindTextEdit_cursor_set_block_mode #-}\n\n-- | If @true@, the caret displays as a rectangle.\n--   \t\t\tIf @false@, the caret displays as a bar.\nbindTextEdit_cursor_set_block_mode :: MethodBind\nbindTextEdit_cursor_set_block_mode\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"cursor_set_block_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the caret displays as a rectangle.\n--   \t\t\tIf @false@, the caret displays as a bar.\ncursor_set_block_mode ::\n                        (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\ncursor_set_block_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_cursor_set_block_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"cursor_set_block_mode\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.cursor_set_block_mode\n\n{-# NOINLINE bindTextEdit_cursor_set_column #-}\n\n-- | Moves the cursor at the specified @column@ index.\n--   \t\t\t\tIf @adjust_viewport@ is set to @true@, the viewport will center at the cursor position after the move occurs.\nbindTextEdit_cursor_set_column :: MethodBind\nbindTextEdit_cursor_set_column\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"cursor_set_column\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves the cursor at the specified @column@ index.\n--   \t\t\t\tIf @adjust_viewport@ is set to @true@, the viewport will center at the cursor position after the move occurs.\ncursor_set_column ::\n                    (TextEdit :< cls, Object :< cls) =>\n                    cls -> Int -> Maybe Bool -> IO ()\ncursor_set_column cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool True) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_cursor_set_column (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"cursor_set_column\" '[Int, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.cursor_set_column\n\n{-# NOINLINE bindTextEdit_cursor_set_line #-}\n\n-- | Moves the cursor at the specified @line@ index.\n--   \t\t\t\tIf @adjust_viewport@ is set to @true@, the viewport will center at the cursor position after the move occurs.\n--   \t\t\t\tIf @can_be_hidden@ is set to @true@, the specified @line@ can be hidden using @method set_line_as_hidden@.\nbindTextEdit_cursor_set_line :: MethodBind\nbindTextEdit_cursor_set_line\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"cursor_set_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves the cursor at the specified @line@ index.\n--   \t\t\t\tIf @adjust_viewport@ is set to @true@, the viewport will center at the cursor position after the move occurs.\n--   \t\t\t\tIf @can_be_hidden@ is set to @true@, the specified @line@ can be hidden using @method set_line_as_hidden@.\ncursor_set_line ::\n                  (TextEdit :< cls, Object :< cls) =>\n                  cls -> Int -> Maybe Bool -> Maybe Bool -> Maybe Int -> IO ()\ncursor_set_line cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool True) toVariant arg2,\n       maybe (VariantBool True) toVariant arg3,\n       maybe (VariantInt (0)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_cursor_set_line (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"cursor_set_line\"\n           '[Int, Maybe Bool, Maybe Bool, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.cursor_set_line\n\n{-# NOINLINE bindTextEdit_cut #-}\n\n-- | Cut's the current selection.\nbindTextEdit_cut :: MethodBind\nbindTextEdit_cut\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"cut\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Cut's the current selection.\ncut :: (TextEdit :< cls, Object :< cls) => cls -> IO ()\ncut cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_cut (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"cut\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.cut\n\n{-# NOINLINE bindTextEdit_deselect #-}\n\n-- | Deselects the current selection.\nbindTextEdit_deselect :: MethodBind\nbindTextEdit_deselect\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"deselect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Deselects the current selection.\ndeselect :: (TextEdit :< cls, Object :< cls) => cls -> IO ()\ndeselect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_deselect (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"deselect\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.deselect\n\n{-# NOINLINE bindTextEdit_draw_minimap #-}\n\n-- | If @true@, a minimap is shown, providing an outline of your source code.\nbindTextEdit_draw_minimap :: MethodBind\nbindTextEdit_draw_minimap\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"draw_minimap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, a minimap is shown, providing an outline of your source code.\ndraw_minimap ::\n               (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\ndraw_minimap cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_draw_minimap (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"draw_minimap\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.draw_minimap\n\n{-# NOINLINE bindTextEdit_fold_all_lines #-}\n\n-- | Folds all lines that are possible to be folded (see @method can_fold@).\nbindTextEdit_fold_all_lines :: MethodBind\nbindTextEdit_fold_all_lines\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"fold_all_lines\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Folds all lines that are possible to be folded (see @method can_fold@).\nfold_all_lines :: (TextEdit :< cls, Object :< cls) => cls -> IO ()\nfold_all_lines cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_fold_all_lines (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"fold_all_lines\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.fold_all_lines\n\n{-# NOINLINE bindTextEdit_fold_line #-}\n\n-- | Folds the given line, if possible (see @method can_fold@).\nbindTextEdit_fold_line :: MethodBind\nbindTextEdit_fold_line\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"fold_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Folds the given line, if possible (see @method can_fold@).\nfold_line ::\n            (TextEdit :< cls, Object :< cls) => cls -> Int -> IO ()\nfold_line cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_fold_line (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"fold_line\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.fold_line\n\n{-# NOINLINE bindTextEdit_get_breakpoints #-}\n\n-- | Returns an array containing the line number of each breakpoint.\nbindTextEdit_get_breakpoints :: MethodBind\nbindTextEdit_get_breakpoints\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_breakpoints\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array containing the line number of each breakpoint.\nget_breakpoints ::\n                  (TextEdit :< cls, Object :< cls) => cls -> IO Array\nget_breakpoints cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_get_breakpoints (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"get_breakpoints\" '[] (IO Array) where\n        nodeMethod = Godot.Core.TextEdit.get_breakpoints\n\n{-# NOINLINE bindTextEdit_get_h_scroll #-}\n\n-- | The current horizontal scroll value.\nbindTextEdit_get_h_scroll :: MethodBind\nbindTextEdit_get_h_scroll\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_h_scroll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current horizontal scroll value.\nget_h_scroll :: (TextEdit :< cls, Object :< cls) => cls -> IO Int\nget_h_scroll cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_get_h_scroll (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"get_h_scroll\" '[] (IO Int) where\n        nodeMethod = Godot.Core.TextEdit.get_h_scroll\n\n{-# NOINLINE bindTextEdit_get_keyword_color #-}\n\n-- | Returns the @Color@ of the specified @keyword@.\nbindTextEdit_get_keyword_color :: MethodBind\nbindTextEdit_get_keyword_color\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_keyword_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Color@ of the specified @keyword@.\nget_keyword_color ::\n                    (TextEdit :< cls, Object :< cls) => cls -> GodotString -> IO Color\nget_keyword_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_get_keyword_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"get_keyword_color\" '[GodotString]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.TextEdit.get_keyword_color\n\n{-# NOINLINE bindTextEdit_get_line #-}\n\n-- | Returns the text of a specific line.\nbindTextEdit_get_line :: MethodBind\nbindTextEdit_get_line\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the text of a specific line.\nget_line ::\n           (TextEdit :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_line cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_get_line (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"get_line\" '[Int] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.TextEdit.get_line\n\n{-# NOINLINE bindTextEdit_get_line_count #-}\n\n-- | Returns the amount of total lines in the text.\nbindTextEdit_get_line_count :: MethodBind\nbindTextEdit_get_line_count\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_line_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the amount of total lines in the text.\nget_line_count :: (TextEdit :< cls, Object :< cls) => cls -> IO Int\nget_line_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_get_line_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"get_line_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.TextEdit.get_line_count\n\n{-# NOINLINE bindTextEdit_get_menu #-}\n\n-- | Returns the @PopupMenu@ of this @TextEdit@. By default, this menu is displayed when right-clicking on the @TextEdit@.\nbindTextEdit_get_menu :: MethodBind\nbindTextEdit_get_menu\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_menu\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @PopupMenu@ of this @TextEdit@. By default, this menu is displayed when right-clicking on the @TextEdit@.\nget_menu :: (TextEdit :< cls, Object :< cls) => cls -> IO PopupMenu\nget_menu cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_get_menu (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"get_menu\" '[] (IO PopupMenu) where\n        nodeMethod = Godot.Core.TextEdit.get_menu\n\n{-# NOINLINE bindTextEdit_get_minimap_width #-}\n\n-- | The width, in pixels, of the minimap.\nbindTextEdit_get_minimap_width :: MethodBind\nbindTextEdit_get_minimap_width\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_minimap_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The width, in pixels, of the minimap.\nget_minimap_width ::\n                    (TextEdit :< cls, Object :< cls) => cls -> IO Int\nget_minimap_width cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_get_minimap_width (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"get_minimap_width\" '[] (IO Int) where\n        nodeMethod = Godot.Core.TextEdit.get_minimap_width\n\n{-# NOINLINE bindTextEdit_get_selection_from_column #-}\n\n-- | Returns the selection begin column.\nbindTextEdit_get_selection_from_column :: MethodBind\nbindTextEdit_get_selection_from_column\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_selection_from_column\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the selection begin column.\nget_selection_from_column ::\n                            (TextEdit :< cls, Object :< cls) => cls -> IO Int\nget_selection_from_column cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_get_selection_from_column\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"get_selection_from_column\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.TextEdit.get_selection_from_column\n\n{-# NOINLINE bindTextEdit_get_selection_from_line #-}\n\n-- | Returns the selection begin line.\nbindTextEdit_get_selection_from_line :: MethodBind\nbindTextEdit_get_selection_from_line\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_selection_from_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the selection begin line.\nget_selection_from_line ::\n                          (TextEdit :< cls, Object :< cls) => cls -> IO Int\nget_selection_from_line cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_get_selection_from_line\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"get_selection_from_line\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.TextEdit.get_selection_from_line\n\n{-# NOINLINE bindTextEdit_get_selection_text #-}\n\n-- | Returns the text inside the selection.\nbindTextEdit_get_selection_text :: MethodBind\nbindTextEdit_get_selection_text\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_selection_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the text inside the selection.\nget_selection_text ::\n                     (TextEdit :< cls, Object :< cls) => cls -> IO GodotString\nget_selection_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_get_selection_text (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"get_selection_text\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.TextEdit.get_selection_text\n\n{-# NOINLINE bindTextEdit_get_selection_to_column #-}\n\n-- | Returns the selection end column.\nbindTextEdit_get_selection_to_column :: MethodBind\nbindTextEdit_get_selection_to_column\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_selection_to_column\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the selection end column.\nget_selection_to_column ::\n                          (TextEdit :< cls, Object :< cls) => cls -> IO Int\nget_selection_to_column cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_get_selection_to_column\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"get_selection_to_column\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.TextEdit.get_selection_to_column\n\n{-# NOINLINE bindTextEdit_get_selection_to_line #-}\n\n-- | Returns the selection end line.\nbindTextEdit_get_selection_to_line :: MethodBind\nbindTextEdit_get_selection_to_line\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_selection_to_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the selection end line.\nget_selection_to_line ::\n                        (TextEdit :< cls, Object :< cls) => cls -> IO Int\nget_selection_to_line cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_get_selection_to_line\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"get_selection_to_line\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.TextEdit.get_selection_to_line\n\n{-# NOINLINE bindTextEdit_get_text #-}\n\n-- | String value of the @TextEdit@.\nbindTextEdit_get_text :: MethodBind\nbindTextEdit_get_text\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | String value of the @TextEdit@.\nget_text ::\n           (TextEdit :< cls, Object :< cls) => cls -> IO GodotString\nget_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_get_text (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"get_text\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.TextEdit.get_text\n\n{-# NOINLINE bindTextEdit_get_v_scroll #-}\n\n-- | The current vertical scroll value.\nbindTextEdit_get_v_scroll :: MethodBind\nbindTextEdit_get_v_scroll\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_v_scroll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current vertical scroll value.\nget_v_scroll :: (TextEdit :< cls, Object :< cls) => cls -> IO Float\nget_v_scroll cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_get_v_scroll (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"get_v_scroll\" '[] (IO Float) where\n        nodeMethod = Godot.Core.TextEdit.get_v_scroll\n\n{-# NOINLINE bindTextEdit_get_v_scroll_speed #-}\n\n-- | Vertical scroll sensitivity.\nbindTextEdit_get_v_scroll_speed :: MethodBind\nbindTextEdit_get_v_scroll_speed\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_v_scroll_speed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Vertical scroll sensitivity.\nget_v_scroll_speed ::\n                     (TextEdit :< cls, Object :< cls) => cls -> IO Float\nget_v_scroll_speed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_get_v_scroll_speed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"get_v_scroll_speed\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.TextEdit.get_v_scroll_speed\n\n{-# NOINLINE bindTextEdit_get_word_under_cursor #-}\n\n-- | Returns a @String@ text with the word under the mouse cursor location.\nbindTextEdit_get_word_under_cursor :: MethodBind\nbindTextEdit_get_word_under_cursor\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"get_word_under_cursor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @String@ text with the word under the mouse cursor location.\nget_word_under_cursor ::\n                        (TextEdit :< cls, Object :< cls) => cls -> IO GodotString\nget_word_under_cursor cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_get_word_under_cursor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"get_word_under_cursor\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.TextEdit.get_word_under_cursor\n\n{-# NOINLINE bindTextEdit_has_keyword_color #-}\n\n-- | Returns whether the specified @keyword@ has a color set to it or not.\nbindTextEdit_has_keyword_color :: MethodBind\nbindTextEdit_has_keyword_color\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"has_keyword_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether the specified @keyword@ has a color set to it or not.\nhas_keyword_color ::\n                    (TextEdit :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_keyword_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_has_keyword_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"has_keyword_color\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.has_keyword_color\n\n{-# NOINLINE bindTextEdit_insert_text_at_cursor #-}\n\n-- | Insert the specified text at the cursor position.\nbindTextEdit_insert_text_at_cursor :: MethodBind\nbindTextEdit_insert_text_at_cursor\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"insert_text_at_cursor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Insert the specified text at the cursor position.\ninsert_text_at_cursor ::\n                        (TextEdit :< cls, Object :< cls) => cls -> GodotString -> IO ()\ninsert_text_at_cursor cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_insert_text_at_cursor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"insert_text_at_cursor\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.insert_text_at_cursor\n\n{-# NOINLINE bindTextEdit_is_breakpoint_gutter_enabled #-}\n\n-- | If @true@, the breakpoint gutter is visible.\nbindTextEdit_is_breakpoint_gutter_enabled :: MethodBind\nbindTextEdit_is_breakpoint_gutter_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_breakpoint_gutter_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the breakpoint gutter is visible.\nis_breakpoint_gutter_enabled ::\n                               (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_breakpoint_gutter_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_is_breakpoint_gutter_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_breakpoint_gutter_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.is_breakpoint_gutter_enabled\n\n{-# NOINLINE bindTextEdit_is_context_menu_enabled #-}\n\n-- | If @true@, a right-click displays the context menu.\nbindTextEdit_is_context_menu_enabled :: MethodBind\nbindTextEdit_is_context_menu_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_context_menu_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, a right-click displays the context menu.\nis_context_menu_enabled ::\n                          (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_context_menu_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_is_context_menu_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_context_menu_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.is_context_menu_enabled\n\n{-# NOINLINE bindTextEdit_is_drawing_fold_gutter #-}\n\n-- | If @true@, the fold gutter is visible. This enables folding groups of indented lines.\nbindTextEdit_is_drawing_fold_gutter :: MethodBind\nbindTextEdit_is_drawing_fold_gutter\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_drawing_fold_gutter\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the fold gutter is visible. This enables folding groups of indented lines.\nis_drawing_fold_gutter ::\n                         (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_drawing_fold_gutter cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_is_drawing_fold_gutter\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_drawing_fold_gutter\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.is_drawing_fold_gutter\n\n{-# NOINLINE bindTextEdit_is_drawing_minimap #-}\n\n-- | If @true@, a minimap is shown, providing an outline of your source code.\nbindTextEdit_is_drawing_minimap :: MethodBind\nbindTextEdit_is_drawing_minimap\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_drawing_minimap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, a minimap is shown, providing an outline of your source code.\nis_drawing_minimap ::\n                     (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_drawing_minimap cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_is_drawing_minimap (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_drawing_minimap\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.is_drawing_minimap\n\n{-# NOINLINE bindTextEdit_is_drawing_spaces #-}\n\n-- | If @true@, the \"space\" character will have a visible representation.\nbindTextEdit_is_drawing_spaces :: MethodBind\nbindTextEdit_is_drawing_spaces\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_drawing_spaces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the \"space\" character will have a visible representation.\nis_drawing_spaces ::\n                    (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_drawing_spaces cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_is_drawing_spaces (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_drawing_spaces\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.is_drawing_spaces\n\n{-# NOINLINE bindTextEdit_is_drawing_tabs #-}\n\n-- | If @true@, the \"tab\" character will have a visible representation.\nbindTextEdit_is_drawing_tabs :: MethodBind\nbindTextEdit_is_drawing_tabs\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_drawing_tabs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the \"tab\" character will have a visible representation.\nis_drawing_tabs ::\n                  (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_drawing_tabs cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_is_drawing_tabs (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_drawing_tabs\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.TextEdit.is_drawing_tabs\n\n{-# NOINLINE bindTextEdit_is_folded #-}\n\n-- | Returns whether the line at the specified index is folded or not.\nbindTextEdit_is_folded :: MethodBind\nbindTextEdit_is_folded\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_folded\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether the line at the specified index is folded or not.\nis_folded ::\n            (TextEdit :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_folded cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_is_folded (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_folded\" '[Int] (IO Bool) where\n        nodeMethod = Godot.Core.TextEdit.is_folded\n\n{-# NOINLINE bindTextEdit_is_hiding_enabled #-}\n\n-- | If @true@, all lines that have been set to hidden by @method set_line_as_hidden@, will not be visible.\nbindTextEdit_is_hiding_enabled :: MethodBind\nbindTextEdit_is_hiding_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_hiding_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, all lines that have been set to hidden by @method set_line_as_hidden@, will not be visible.\nis_hiding_enabled ::\n                    (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_hiding_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_is_hiding_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_hiding_enabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.is_hiding_enabled\n\n{-# NOINLINE bindTextEdit_is_highlight_all_occurrences_enabled #-}\n\n-- | If @true@, all occurrences of the selected text will be highlighted.\nbindTextEdit_is_highlight_all_occurrences_enabled :: MethodBind\nbindTextEdit_is_highlight_all_occurrences_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_highlight_all_occurrences_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, all occurrences of the selected text will be highlighted.\nis_highlight_all_occurrences_enabled ::\n                                       (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_highlight_all_occurrences_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindTextEdit_is_highlight_all_occurrences_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_highlight_all_occurrences_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.TextEdit.is_highlight_all_occurrences_enabled\n\n{-# NOINLINE bindTextEdit_is_highlight_current_line_enabled #-}\n\n-- | If @true@, the line containing the cursor is highlighted.\nbindTextEdit_is_highlight_current_line_enabled :: MethodBind\nbindTextEdit_is_highlight_current_line_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_highlight_current_line_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the line containing the cursor is highlighted.\nis_highlight_current_line_enabled ::\n                                    (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_highlight_current_line_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindTextEdit_is_highlight_current_line_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_highlight_current_line_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.is_highlight_current_line_enabled\n\n{-# NOINLINE bindTextEdit_is_line_hidden #-}\n\n-- | Returns whether the line at the specified index is hidden or not.\nbindTextEdit_is_line_hidden :: MethodBind\nbindTextEdit_is_line_hidden\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_line_hidden\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether the line at the specified index is hidden or not.\nis_line_hidden ::\n                 (TextEdit :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_line_hidden cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_is_line_hidden (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_line_hidden\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.is_line_hidden\n\n{-# NOINLINE bindTextEdit_is_overriding_selected_font_color #-}\n\n-- | If @true@, custom @font_color_selected@ will be used for selected text.\nbindTextEdit_is_overriding_selected_font_color :: MethodBind\nbindTextEdit_is_overriding_selected_font_color\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_overriding_selected_font_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, custom @font_color_selected@ will be used for selected text.\nis_overriding_selected_font_color ::\n                                    (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_overriding_selected_font_color cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindTextEdit_is_overriding_selected_font_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_overriding_selected_font_color\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.is_overriding_selected_font_color\n\n{-# NOINLINE bindTextEdit_is_readonly #-}\n\n-- | If @true@, read-only mode is enabled. Existing text cannot be modified and new text cannot be added.\nbindTextEdit_is_readonly :: MethodBind\nbindTextEdit_is_readonly\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_readonly\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, read-only mode is enabled. Existing text cannot be modified and new text cannot be added.\nis_readonly :: (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_readonly cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_is_readonly (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_readonly\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.TextEdit.is_readonly\n\n{-# NOINLINE bindTextEdit_is_right_click_moving_caret #-}\n\n-- | If @true@, a right-click moves the cursor at the mouse position before displaying the context menu.\n--   \t\t\tIf @false@, the context menu disregards mouse location.\nbindTextEdit_is_right_click_moving_caret :: MethodBind\nbindTextEdit_is_right_click_moving_caret\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_right_click_moving_caret\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, a right-click moves the cursor at the mouse position before displaying the context menu.\n--   \t\t\tIf @false@, the context menu disregards mouse location.\nis_right_click_moving_caret ::\n                              (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_right_click_moving_caret cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_is_right_click_moving_caret\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_right_click_moving_caret\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.is_right_click_moving_caret\n\n{-# NOINLINE bindTextEdit_is_selecting_enabled #-}\n\n-- | If @true@, text can be selected.\n--   \t\t\tIf @false@, text can not be selected by the user or by the @method select@ or @method select_all@ methods.\nbindTextEdit_is_selecting_enabled :: MethodBind\nbindTextEdit_is_selecting_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_selecting_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, text can be selected.\n--   \t\t\tIf @false@, text can not be selected by the user or by the @method select@ or @method select_all@ methods.\nis_selecting_enabled ::\n                       (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_selecting_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_is_selecting_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_selecting_enabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.is_selecting_enabled\n\n{-# NOINLINE bindTextEdit_is_selection_active #-}\n\n-- | Returns @true@ if the selection is active.\nbindTextEdit_is_selection_active :: MethodBind\nbindTextEdit_is_selection_active\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_selection_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the selection is active.\nis_selection_active ::\n                      (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_selection_active cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_is_selection_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_selection_active\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.is_selection_active\n\n{-# NOINLINE bindTextEdit_is_shortcut_keys_enabled #-}\n\n-- | If @true@, shortcut keys for context menu items are enabled, even if the context menu is disabled.\nbindTextEdit_is_shortcut_keys_enabled :: MethodBind\nbindTextEdit_is_shortcut_keys_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_shortcut_keys_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, shortcut keys for context menu items are enabled, even if the context menu is disabled.\nis_shortcut_keys_enabled ::\n                           (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_shortcut_keys_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_is_shortcut_keys_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_shortcut_keys_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.is_shortcut_keys_enabled\n\n{-# NOINLINE bindTextEdit_is_show_line_numbers_enabled #-}\n\n-- | If @true@, line numbers are displayed to the left of the text.\nbindTextEdit_is_show_line_numbers_enabled :: MethodBind\nbindTextEdit_is_show_line_numbers_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_show_line_numbers_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, line numbers are displayed to the left of the text.\nis_show_line_numbers_enabled ::\n                               (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_show_line_numbers_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_is_show_line_numbers_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_show_line_numbers_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.is_show_line_numbers_enabled\n\n{-# NOINLINE bindTextEdit_is_smooth_scroll_enabled #-}\n\n-- | If @true@, sets the @step@ of the scrollbars to @0.25@ which results in smoother scrolling.\nbindTextEdit_is_smooth_scroll_enabled :: MethodBind\nbindTextEdit_is_smooth_scroll_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_smooth_scroll_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, sets the @step@ of the scrollbars to @0.25@ which results in smoother scrolling.\nis_smooth_scroll_enabled ::\n                           (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_smooth_scroll_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_is_smooth_scroll_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_smooth_scroll_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.is_smooth_scroll_enabled\n\n{-# NOINLINE bindTextEdit_is_syntax_coloring_enabled #-}\n\n-- | If @true@, any custom color properties that have been set for this @TextEdit@ will be visible.\nbindTextEdit_is_syntax_coloring_enabled :: MethodBind\nbindTextEdit_is_syntax_coloring_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_syntax_coloring_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, any custom color properties that have been set for this @TextEdit@ will be visible.\nis_syntax_coloring_enabled ::\n                             (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_syntax_coloring_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_is_syntax_coloring_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_syntax_coloring_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextEdit.is_syntax_coloring_enabled\n\n{-# NOINLINE bindTextEdit_is_wrap_enabled #-}\n\n-- | If @true@, enables text wrapping when it goes beyond the edge of what is visible.\nbindTextEdit_is_wrap_enabled :: MethodBind\nbindTextEdit_is_wrap_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"is_wrap_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables text wrapping when it goes beyond the edge of what is visible.\nis_wrap_enabled ::\n                  (TextEdit :< cls, Object :< cls) => cls -> IO Bool\nis_wrap_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_is_wrap_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"is_wrap_enabled\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.TextEdit.is_wrap_enabled\n\n{-# NOINLINE bindTextEdit_menu_option #-}\n\n-- | Triggers a right-click menu action by the specified index. See @enum MenuItems@ for a list of available indexes.\nbindTextEdit_menu_option :: MethodBind\nbindTextEdit_menu_option\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"menu_option\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Triggers a right-click menu action by the specified index. See @enum MenuItems@ for a list of available indexes.\nmenu_option ::\n              (TextEdit :< cls, Object :< cls) => cls -> Int -> IO ()\nmenu_option cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_menu_option (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"menu_option\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.menu_option\n\n{-# NOINLINE bindTextEdit_paste #-}\n\n-- | Paste the current selection.\nbindTextEdit_paste :: MethodBind\nbindTextEdit_paste\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"paste\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Paste the current selection.\npaste :: (TextEdit :< cls, Object :< cls) => cls -> IO ()\npaste cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_paste (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"paste\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.paste\n\n{-# NOINLINE bindTextEdit_redo #-}\n\n-- | Perform redo operation.\nbindTextEdit_redo :: MethodBind\nbindTextEdit_redo\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"redo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Perform redo operation.\nredo :: (TextEdit :< cls, Object :< cls) => cls -> IO ()\nredo cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_redo (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"redo\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.redo\n\n{-# NOINLINE bindTextEdit_remove_breakpoints #-}\n\n-- | Removes all the breakpoints. This will not fire the @signal breakpoint_toggled@ signal.\nbindTextEdit_remove_breakpoints :: MethodBind\nbindTextEdit_remove_breakpoints\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"remove_breakpoints\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all the breakpoints. This will not fire the @signal breakpoint_toggled@ signal.\nremove_breakpoints ::\n                     (TextEdit :< cls, Object :< cls) => cls -> IO ()\nremove_breakpoints cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_remove_breakpoints (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"remove_breakpoints\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.remove_breakpoints\n\n{-# NOINLINE bindTextEdit_search #-}\n\n-- | Perform a search inside the text. Search flags can be specified in the @enum SearchFlags@ enum.\n--   \t\t\t\tReturns an empty @PoolIntArray@ if no result was found. Otherwise, the result line and column can be accessed at indices specified in the @enum SearchResult@ enum, e.g:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar result = search(key, flags, line, column)\n--   \t\t\t\tif result.size() > 0:\n--   \t\t\t\t    # Result found.\n--   \t\t\t\t    var res_line = result@TextEdit.SEARCH_RESULT_LINE@\n--   \t\t\t\t    var res_column = result@TextEdit.SEARCH_RESULT_COLUMN@\n--   \t\t\t\t\n--   @\nbindTextEdit_search :: MethodBind\nbindTextEdit_search\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"search\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Perform a search inside the text. Search flags can be specified in the @enum SearchFlags@ enum.\n--   \t\t\t\tReturns an empty @PoolIntArray@ if no result was found. Otherwise, the result line and column can be accessed at indices specified in the @enum SearchResult@ enum, e.g:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar result = search(key, flags, line, column)\n--   \t\t\t\tif result.size() > 0:\n--   \t\t\t\t    # Result found.\n--   \t\t\t\t    var res_line = result@TextEdit.SEARCH_RESULT_LINE@\n--   \t\t\t\t    var res_column = result@TextEdit.SEARCH_RESULT_COLUMN@\n--   \t\t\t\t\n--   @\nsearch ::\n         (TextEdit :< cls, Object :< cls) =>\n         cls -> GodotString -> Int -> Int -> Int -> IO PoolIntArray\nsearch cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_search (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"search\" '[GodotString, Int, Int, Int]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.TextEdit.search\n\n{-# NOINLINE bindTextEdit_select #-}\n\n-- | Perform selection, from line/column to line/column.\n--   \t\t\t\tIf @selecting_enabled@ is @false@, no selection will occur.\nbindTextEdit_select :: MethodBind\nbindTextEdit_select\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"select\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Perform selection, from line/column to line/column.\n--   \t\t\t\tIf @selecting_enabled@ is @false@, no selection will occur.\nselect ::\n         (TextEdit :< cls, Object :< cls) =>\n         cls -> Int -> Int -> Int -> Int -> IO ()\nselect cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_select (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"select\" '[Int, Int, Int, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.select\n\n{-# NOINLINE bindTextEdit_select_all #-}\n\n-- | Select all the text.\n--   \t\t\t\tIf @selecting_enabled@ is @false@, no selection will occur.\nbindTextEdit_select_all :: MethodBind\nbindTextEdit_select_all\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"select_all\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Select all the text.\n--   \t\t\t\tIf @selecting_enabled@ is @false@, no selection will occur.\nselect_all :: (TextEdit :< cls, Object :< cls) => cls -> IO ()\nselect_all cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_select_all (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"select_all\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.select_all\n\n{-# NOINLINE bindTextEdit_set_breakpoint_gutter_enabled #-}\n\n-- | If @true@, the breakpoint gutter is visible.\nbindTextEdit_set_breakpoint_gutter_enabled :: MethodBind\nbindTextEdit_set_breakpoint_gutter_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_breakpoint_gutter_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the breakpoint gutter is visible.\nset_breakpoint_gutter_enabled ::\n                                (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_breakpoint_gutter_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_breakpoint_gutter_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_breakpoint_gutter_enabled\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_breakpoint_gutter_enabled\n\n{-# NOINLINE bindTextEdit_set_context_menu_enabled #-}\n\n-- | If @true@, a right-click displays the context menu.\nbindTextEdit_set_context_menu_enabled :: MethodBind\nbindTextEdit_set_context_menu_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_context_menu_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, a right-click displays the context menu.\nset_context_menu_enabled ::\n                           (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_context_menu_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_context_menu_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_context_menu_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_context_menu_enabled\n\n{-# NOINLINE bindTextEdit_set_draw_fold_gutter #-}\n\n-- | If @true@, the fold gutter is visible. This enables folding groups of indented lines.\nbindTextEdit_set_draw_fold_gutter :: MethodBind\nbindTextEdit_set_draw_fold_gutter\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_draw_fold_gutter\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the fold gutter is visible. This enables folding groups of indented lines.\nset_draw_fold_gutter ::\n                       (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_draw_fold_gutter cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_draw_fold_gutter\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_draw_fold_gutter\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_draw_fold_gutter\n\n{-# NOINLINE bindTextEdit_set_draw_spaces #-}\n\n-- | If @true@, the \"space\" character will have a visible representation.\nbindTextEdit_set_draw_spaces :: MethodBind\nbindTextEdit_set_draw_spaces\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_draw_spaces\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the \"space\" character will have a visible representation.\nset_draw_spaces ::\n                  (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_draw_spaces cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_draw_spaces (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_draw_spaces\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_draw_spaces\n\n{-# NOINLINE bindTextEdit_set_draw_tabs #-}\n\n-- | If @true@, the \"tab\" character will have a visible representation.\nbindTextEdit_set_draw_tabs :: MethodBind\nbindTextEdit_set_draw_tabs\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_draw_tabs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the \"tab\" character will have a visible representation.\nset_draw_tabs ::\n                (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_draw_tabs cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_draw_tabs (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_draw_tabs\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.set_draw_tabs\n\n{-# NOINLINE bindTextEdit_set_h_scroll #-}\n\n-- | The current horizontal scroll value.\nbindTextEdit_set_h_scroll :: MethodBind\nbindTextEdit_set_h_scroll\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_h_scroll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current horizontal scroll value.\nset_h_scroll ::\n               (TextEdit :< cls, Object :< cls) => cls -> Int -> IO ()\nset_h_scroll cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_h_scroll (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_h_scroll\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.set_h_scroll\n\n{-# NOINLINE bindTextEdit_set_hiding_enabled #-}\n\n-- | If @true@, all lines that have been set to hidden by @method set_line_as_hidden@, will not be visible.\nbindTextEdit_set_hiding_enabled :: MethodBind\nbindTextEdit_set_hiding_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_hiding_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, all lines that have been set to hidden by @method set_line_as_hidden@, will not be visible.\nset_hiding_enabled ::\n                     (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_hiding_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_hiding_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_hiding_enabled\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_hiding_enabled\n\n{-# NOINLINE bindTextEdit_set_highlight_all_occurrences #-}\n\n-- | If @true@, all occurrences of the selected text will be highlighted.\nbindTextEdit_set_highlight_all_occurrences :: MethodBind\nbindTextEdit_set_highlight_all_occurrences\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_highlight_all_occurrences\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, all occurrences of the selected text will be highlighted.\nset_highlight_all_occurrences ::\n                                (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_highlight_all_occurrences cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_highlight_all_occurrences\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_highlight_all_occurrences\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_highlight_all_occurrences\n\n{-# NOINLINE bindTextEdit_set_highlight_current_line #-}\n\n-- | If @true@, the line containing the cursor is highlighted.\nbindTextEdit_set_highlight_current_line :: MethodBind\nbindTextEdit_set_highlight_current_line\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_highlight_current_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the line containing the cursor is highlighted.\nset_highlight_current_line ::\n                             (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_highlight_current_line cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_highlight_current_line\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_highlight_current_line\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_highlight_current_line\n\n{-# NOINLINE bindTextEdit_set_line_as_hidden #-}\n\n-- | If @true@, hides the line of the specified index.\nbindTextEdit_set_line_as_hidden :: MethodBind\nbindTextEdit_set_line_as_hidden\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_line_as_hidden\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, hides the line of the specified index.\nset_line_as_hidden ::\n                     (TextEdit :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_line_as_hidden cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_line_as_hidden (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_line_as_hidden\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_line_as_hidden\n\n{-# NOINLINE bindTextEdit_set_minimap_width #-}\n\n-- | The width, in pixels, of the minimap.\nbindTextEdit_set_minimap_width :: MethodBind\nbindTextEdit_set_minimap_width\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_minimap_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The width, in pixels, of the minimap.\nset_minimap_width ::\n                    (TextEdit :< cls, Object :< cls) => cls -> Int -> IO ()\nset_minimap_width cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_minimap_width (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_minimap_width\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_minimap_width\n\n{-# NOINLINE bindTextEdit_set_override_selected_font_color #-}\n\n-- | If @true@, custom @font_color_selected@ will be used for selected text.\nbindTextEdit_set_override_selected_font_color :: MethodBind\nbindTextEdit_set_override_selected_font_color\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_override_selected_font_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, custom @font_color_selected@ will be used for selected text.\nset_override_selected_font_color ::\n                                   (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_override_selected_font_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindTextEdit_set_override_selected_font_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_override_selected_font_color\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_override_selected_font_color\n\n{-# NOINLINE bindTextEdit_set_readonly #-}\n\n-- | If @true@, read-only mode is enabled. Existing text cannot be modified and new text cannot be added.\nbindTextEdit_set_readonly :: MethodBind\nbindTextEdit_set_readonly\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_readonly\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, read-only mode is enabled. Existing text cannot be modified and new text cannot be added.\nset_readonly ::\n               (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_readonly cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_readonly (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_readonly\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.set_readonly\n\n{-# NOINLINE bindTextEdit_set_right_click_moves_caret #-}\n\n-- | If @true@, a right-click moves the cursor at the mouse position before displaying the context menu.\n--   \t\t\tIf @false@, the context menu disregards mouse location.\nbindTextEdit_set_right_click_moves_caret :: MethodBind\nbindTextEdit_set_right_click_moves_caret\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_right_click_moves_caret\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, a right-click moves the cursor at the mouse position before displaying the context menu.\n--   \t\t\tIf @false@, the context menu disregards mouse location.\nset_right_click_moves_caret ::\n                              (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_right_click_moves_caret cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_right_click_moves_caret\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_right_click_moves_caret\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_right_click_moves_caret\n\n{-# NOINLINE bindTextEdit_set_selecting_enabled #-}\n\n-- | If @true@, text can be selected.\n--   \t\t\tIf @false@, text can not be selected by the user or by the @method select@ or @method select_all@ methods.\nbindTextEdit_set_selecting_enabled :: MethodBind\nbindTextEdit_set_selecting_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_selecting_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, text can be selected.\n--   \t\t\tIf @false@, text can not be selected by the user or by the @method select@ or @method select_all@ methods.\nset_selecting_enabled ::\n                        (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_selecting_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_selecting_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_selecting_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_selecting_enabled\n\n{-# NOINLINE bindTextEdit_set_shortcut_keys_enabled #-}\n\n-- | If @true@, shortcut keys for context menu items are enabled, even if the context menu is disabled.\nbindTextEdit_set_shortcut_keys_enabled :: MethodBind\nbindTextEdit_set_shortcut_keys_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_shortcut_keys_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, shortcut keys for context menu items are enabled, even if the context menu is disabled.\nset_shortcut_keys_enabled ::\n                            (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_shortcut_keys_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_shortcut_keys_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_shortcut_keys_enabled\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_shortcut_keys_enabled\n\n{-# NOINLINE bindTextEdit_set_show_line_numbers #-}\n\n-- | If @true@, line numbers are displayed to the left of the text.\nbindTextEdit_set_show_line_numbers :: MethodBind\nbindTextEdit_set_show_line_numbers\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_show_line_numbers\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, line numbers are displayed to the left of the text.\nset_show_line_numbers ::\n                        (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_show_line_numbers cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_show_line_numbers\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_show_line_numbers\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_show_line_numbers\n\n{-# NOINLINE bindTextEdit_set_smooth_scroll_enable #-}\n\n-- | If @true@, sets the @step@ of the scrollbars to @0.25@ which results in smoother scrolling.\nbindTextEdit_set_smooth_scroll_enable :: MethodBind\nbindTextEdit_set_smooth_scroll_enable\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_smooth_scroll_enable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, sets the @step@ of the scrollbars to @0.25@ which results in smoother scrolling.\nset_smooth_scroll_enable ::\n                           (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_smooth_scroll_enable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_smooth_scroll_enable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_smooth_scroll_enable\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_smooth_scroll_enable\n\n{-# NOINLINE bindTextEdit_set_syntax_coloring #-}\n\n-- | If @true@, any custom color properties that have been set for this @TextEdit@ will be visible.\nbindTextEdit_set_syntax_coloring :: MethodBind\nbindTextEdit_set_syntax_coloring\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_syntax_coloring\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, any custom color properties that have been set for this @TextEdit@ will be visible.\nset_syntax_coloring ::\n                      (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_syntax_coloring cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_syntax_coloring\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_syntax_coloring\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_syntax_coloring\n\n{-# NOINLINE bindTextEdit_set_text #-}\n\n-- | String value of the @TextEdit@.\nbindTextEdit_set_text :: MethodBind\nbindTextEdit_set_text\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | String value of the @TextEdit@.\nset_text ::\n           (TextEdit :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_text cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_text (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_text\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_text\n\n{-# NOINLINE bindTextEdit_set_v_scroll #-}\n\n-- | The current vertical scroll value.\nbindTextEdit_set_v_scroll :: MethodBind\nbindTextEdit_set_v_scroll\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_v_scroll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current vertical scroll value.\nset_v_scroll ::\n               (TextEdit :< cls, Object :< cls) => cls -> Float -> IO ()\nset_v_scroll cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_v_scroll (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_v_scroll\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.set_v_scroll\n\n{-# NOINLINE bindTextEdit_set_v_scroll_speed #-}\n\n-- | Vertical scroll sensitivity.\nbindTextEdit_set_v_scroll_speed :: MethodBind\nbindTextEdit_set_v_scroll_speed\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_v_scroll_speed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Vertical scroll sensitivity.\nset_v_scroll_speed ::\n                     (TextEdit :< cls, Object :< cls) => cls -> Float -> IO ()\nset_v_scroll_speed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_v_scroll_speed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_v_scroll_speed\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_v_scroll_speed\n\n{-# NOINLINE bindTextEdit_set_wrap_enabled #-}\n\n-- | If @true@, enables text wrapping when it goes beyond the edge of what is visible.\nbindTextEdit_set_wrap_enabled :: MethodBind\nbindTextEdit_set_wrap_enabled\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"set_wrap_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables text wrapping when it goes beyond the edge of what is visible.\nset_wrap_enabled ::\n                   (TextEdit :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_wrap_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_set_wrap_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"set_wrap_enabled\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.set_wrap_enabled\n\n{-# NOINLINE bindTextEdit_toggle_fold_line #-}\n\n-- | Toggle the folding of the code block at the given line.\nbindTextEdit_toggle_fold_line :: MethodBind\nbindTextEdit_toggle_fold_line\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"toggle_fold_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Toggle the folding of the code block at the given line.\ntoggle_fold_line ::\n                   (TextEdit :< cls, Object :< cls) => cls -> Int -> IO ()\ntoggle_fold_line cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_toggle_fold_line (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"toggle_fold_line\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.TextEdit.toggle_fold_line\n\n{-# NOINLINE bindTextEdit_undo #-}\n\n-- | Perform undo operation.\nbindTextEdit_undo :: MethodBind\nbindTextEdit_undo\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"undo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Perform undo operation.\nundo :: (TextEdit :< cls, Object :< cls) => cls -> IO ()\nundo cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_undo (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"undo\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.undo\n\n{-# NOINLINE bindTextEdit_unfold_line #-}\n\n-- | Unfolds the given line, if folded.\nbindTextEdit_unfold_line :: MethodBind\nbindTextEdit_unfold_line\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"unfold_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Unfolds the given line, if folded.\nunfold_line ::\n              (TextEdit :< cls, Object :< cls) => cls -> Int -> IO ()\nunfold_line cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_unfold_line (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"unfold_line\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.unfold_line\n\n{-# NOINLINE bindTextEdit_unhide_all_lines #-}\n\n-- | Unhide all lines that were previously set to hidden by @method set_line_as_hidden@.\nbindTextEdit_unhide_all_lines :: MethodBind\nbindTextEdit_unhide_all_lines\n  = unsafePerformIO $\n      withCString \"TextEdit\" $\n        \\ clsNamePtr ->\n          withCString \"unhide_all_lines\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Unhide all lines that were previously set to hidden by @method set_line_as_hidden@.\nunhide_all_lines ::\n                   (TextEdit :< cls, Object :< cls) => cls -> IO ()\nunhide_all_lines cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextEdit_unhide_all_lines (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextEdit \"unhide_all_lines\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TextEdit.unhide_all_lines"
  },
  {
    "path": "src/Godot/Core/TextFile.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.TextFile () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()"
  },
  {
    "path": "src/Godot/Core/Texture.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Texture\n       (Godot.Core.Texture._FLAG_VIDEO_SURFACE,\n        Godot.Core.Texture._FLAGS_DEFAULT, Godot.Core.Texture._FLAG_REPEAT,\n        Godot.Core.Texture._FLAG_CONVERT_TO_LINEAR,\n        Godot.Core.Texture._FLAG_ANISOTROPIC_FILTER,\n        Godot.Core.Texture._FLAG_MIPMAPS, Godot.Core.Texture._FLAG_FILTER,\n        Godot.Core.Texture._FLAG_MIRRORED_REPEAT, Godot.Core.Texture.draw,\n        Godot.Core.Texture.draw_rect, Godot.Core.Texture.draw_rect_region,\n        Godot.Core.Texture.get_data, Godot.Core.Texture.get_flags,\n        Godot.Core.Texture.get_height, Godot.Core.Texture.get_size,\n        Godot.Core.Texture.get_width, Godot.Core.Texture.has_alpha,\n        Godot.Core.Texture.set_flags)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_FLAG_VIDEO_SURFACE :: Int\n_FLAG_VIDEO_SURFACE = 2048\n\n_FLAGS_DEFAULT :: Int\n_FLAGS_DEFAULT = 7\n\n_FLAG_REPEAT :: Int\n_FLAG_REPEAT = 2\n\n_FLAG_CONVERT_TO_LINEAR :: Int\n_FLAG_CONVERT_TO_LINEAR = 16\n\n_FLAG_ANISOTROPIC_FILTER :: Int\n_FLAG_ANISOTROPIC_FILTER = 8\n\n_FLAG_MIPMAPS :: Int\n_FLAG_MIPMAPS = 1\n\n_FLAG_FILTER :: Int\n_FLAG_FILTER = 4\n\n_FLAG_MIRRORED_REPEAT :: Int\n_FLAG_MIRRORED_REPEAT = 32\n\ninstance NodeProperty Texture \"flags\" Int 'False where\n        nodeProperty = (get_flags, wrapDroppingSetter set_flags, Nothing)\n\n{-# NOINLINE bindTexture_draw #-}\n\n-- | Draws the texture using a @CanvasItem@ with the @VisualServer@ API at the specified @position@. Equivalent to @method VisualServer.canvas_item_add_texture_rect@ with a rect at @position@ and the size of this @Texture@.\nbindTexture_draw :: MethodBind\nbindTexture_draw\n  = unsafePerformIO $\n      withCString \"Texture\" $\n        \\ clsNamePtr ->\n          withCString \"draw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws the texture using a @CanvasItem@ with the @VisualServer@ API at the specified @position@. Equivalent to @method VisualServer.canvas_item_add_texture_rect@ with a rect at @position@ and the size of this @Texture@.\ndraw ::\n       (Texture :< cls, Object :< cls) =>\n       cls ->\n         Rid ->\n           Vector2 -> Maybe Color -> Maybe Bool -> Maybe Texture -> IO ()\ndraw cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg3,\n       maybe (VariantBool False) toVariant arg4,\n       maybe VariantNil toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTexture_draw (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Texture \"draw\"\n           '[Rid, Vector2, Maybe Color, Maybe Bool, Maybe Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Texture.draw\n\n{-# NOINLINE bindTexture_draw_rect #-}\n\n-- | Draws the texture using a @CanvasItem@ with the @VisualServer@ API. Equivalent to @method VisualServer.canvas_item_add_texture_rect@.\nbindTexture_draw_rect :: MethodBind\nbindTexture_draw_rect\n  = unsafePerformIO $\n      withCString \"Texture\" $\n        \\ clsNamePtr ->\n          withCString \"draw_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws the texture using a @CanvasItem@ with the @VisualServer@ API. Equivalent to @method VisualServer.canvas_item_add_texture_rect@.\ndraw_rect ::\n            (Texture :< cls, Object :< cls) =>\n            cls ->\n              Rid ->\n                Rect2 ->\n                  Bool -> Maybe Color -> Maybe Bool -> Maybe Texture -> IO ()\ndraw_rect cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg4,\n       maybe (VariantBool False) toVariant arg5,\n       maybe VariantNil toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTexture_draw_rect (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Texture \"draw_rect\"\n           '[Rid, Rect2, Bool, Maybe Color, Maybe Bool, Maybe Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Texture.draw_rect\n\n{-# NOINLINE bindTexture_draw_rect_region #-}\n\n-- | Draws a part of the texture using a @CanvasItem@ with the @VisualServer@ API. Equivalent to @method VisualServer.canvas_item_add_texture_rect_region@.\nbindTexture_draw_rect_region :: MethodBind\nbindTexture_draw_rect_region\n  = unsafePerformIO $\n      withCString \"Texture\" $\n        \\ clsNamePtr ->\n          withCString \"draw_rect_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws a part of the texture using a @CanvasItem@ with the @VisualServer@ API. Equivalent to @method VisualServer.canvas_item_add_texture_rect_region@.\ndraw_rect_region ::\n                   (Texture :< cls, Object :< cls) =>\n                   cls ->\n                     Rid ->\n                       Rect2 ->\n                         Rect2 ->\n                           Maybe Color -> Maybe Bool -> Maybe Texture -> Maybe Bool -> IO ()\ndraw_rect_region cls arg1 arg2 arg3 arg4 arg5 arg6 arg7\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg4,\n       maybe (VariantBool False) toVariant arg5,\n       maybe VariantNil toVariant arg6,\n       maybe (VariantBool True) toVariant arg7]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTexture_draw_rect_region (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Texture \"draw_rect_region\"\n           '[Rid, Rect2, Rect2, Maybe Color, Maybe Bool, Maybe Texture,\n             Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Texture.draw_rect_region\n\n{-# NOINLINE bindTexture_get_data #-}\n\n-- | Returns an @Image@ that is a copy of data from this @Texture@. @Image@s can be accessed and manipulated directly.\nbindTexture_get_data :: MethodBind\nbindTexture_get_data\n  = unsafePerformIO $\n      withCString \"Texture\" $\n        \\ clsNamePtr ->\n          withCString \"get_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an @Image@ that is a copy of data from this @Texture@. @Image@s can be accessed and manipulated directly.\nget_data :: (Texture :< cls, Object :< cls) => cls -> IO Image\nget_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTexture_get_data (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Texture \"get_data\" '[] (IO Image) where\n        nodeMethod = Godot.Core.Texture.get_data\n\n{-# NOINLINE bindTexture_get_flags #-}\n\n-- | The texture's @enum Flags@. @enum Flags@ are used to set various properties of the @Texture@.\nbindTexture_get_flags :: MethodBind\nbindTexture_get_flags\n  = unsafePerformIO $\n      withCString \"Texture\" $\n        \\ clsNamePtr ->\n          withCString \"get_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The texture's @enum Flags@. @enum Flags@ are used to set various properties of the @Texture@.\nget_flags :: (Texture :< cls, Object :< cls) => cls -> IO Int\nget_flags cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTexture_get_flags (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Texture \"get_flags\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Texture.get_flags\n\n{-# NOINLINE bindTexture_get_height #-}\n\n-- | Returns the texture height.\nbindTexture_get_height :: MethodBind\nbindTexture_get_height\n  = unsafePerformIO $\n      withCString \"Texture\" $\n        \\ clsNamePtr ->\n          withCString \"get_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the texture height.\nget_height :: (Texture :< cls, Object :< cls) => cls -> IO Int\nget_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTexture_get_height (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Texture \"get_height\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Texture.get_height\n\n{-# NOINLINE bindTexture_get_size #-}\n\n-- | Returns the texture size.\nbindTexture_get_size :: MethodBind\nbindTexture_get_size\n  = unsafePerformIO $\n      withCString \"Texture\" $\n        \\ clsNamePtr ->\n          withCString \"get_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the texture size.\nget_size :: (Texture :< cls, Object :< cls) => cls -> IO Vector2\nget_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTexture_get_size (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Texture \"get_size\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.Texture.get_size\n\n{-# NOINLINE bindTexture_get_width #-}\n\n-- | Returns the texture width.\nbindTexture_get_width :: MethodBind\nbindTexture_get_width\n  = unsafePerformIO $\n      withCString \"Texture\" $\n        \\ clsNamePtr ->\n          withCString \"get_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the texture width.\nget_width :: (Texture :< cls, Object :< cls) => cls -> IO Int\nget_width cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTexture_get_width (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Texture \"get_width\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Texture.get_width\n\n{-# NOINLINE bindTexture_has_alpha #-}\n\n-- | Returns @true@ if this @Texture@ has an alpha channel.\nbindTexture_has_alpha :: MethodBind\nbindTexture_has_alpha\n  = unsafePerformIO $\n      withCString \"Texture\" $\n        \\ clsNamePtr ->\n          withCString \"has_alpha\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this @Texture@ has an alpha channel.\nhas_alpha :: (Texture :< cls, Object :< cls) => cls -> IO Bool\nhas_alpha cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTexture_has_alpha (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Texture \"has_alpha\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Texture.has_alpha\n\n{-# NOINLINE bindTexture_set_flags #-}\n\n-- | The texture's @enum Flags@. @enum Flags@ are used to set various properties of the @Texture@.\nbindTexture_set_flags :: MethodBind\nbindTexture_set_flags\n  = unsafePerformIO $\n      withCString \"Texture\" $\n        \\ clsNamePtr ->\n          withCString \"set_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The texture's @enum Flags@. @enum Flags@ are used to set various properties of the @Texture@.\nset_flags :: (Texture :< cls, Object :< cls) => cls -> Int -> IO ()\nset_flags cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTexture_set_flags (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Texture \"set_flags\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Texture.set_flags"
  },
  {
    "path": "src/Godot/Core/Texture3D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Texture3D () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.TextureLayered()"
  },
  {
    "path": "src/Godot/Core/TextureArray.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.TextureArray () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.TextureLayered()"
  },
  {
    "path": "src/Godot/Core/TextureButton.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.TextureButton\n       (Godot.Core.TextureButton._STRETCH_TILE,\n        Godot.Core.TextureButton._STRETCH_KEEP_ASPECT_COVERED,\n        Godot.Core.TextureButton._STRETCH_KEEP_ASPECT,\n        Godot.Core.TextureButton._STRETCH_SCALE,\n        Godot.Core.TextureButton._STRETCH_KEEP,\n        Godot.Core.TextureButton._STRETCH_KEEP_CENTERED,\n        Godot.Core.TextureButton._STRETCH_KEEP_ASPECT_CENTERED,\n        Godot.Core.TextureButton.get_click_mask,\n        Godot.Core.TextureButton.get_disabled_texture,\n        Godot.Core.TextureButton.get_expand,\n        Godot.Core.TextureButton.get_focused_texture,\n        Godot.Core.TextureButton.get_hover_texture,\n        Godot.Core.TextureButton.get_normal_texture,\n        Godot.Core.TextureButton.get_pressed_texture,\n        Godot.Core.TextureButton.get_stretch_mode,\n        Godot.Core.TextureButton.set_click_mask,\n        Godot.Core.TextureButton.set_disabled_texture,\n        Godot.Core.TextureButton.set_expand,\n        Godot.Core.TextureButton.set_focused_texture,\n        Godot.Core.TextureButton.set_hover_texture,\n        Godot.Core.TextureButton.set_normal_texture,\n        Godot.Core.TextureButton.set_pressed_texture,\n        Godot.Core.TextureButton.set_stretch_mode)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.BaseButton()\n\n_STRETCH_TILE :: Int\n_STRETCH_TILE = 1\n\n_STRETCH_KEEP_ASPECT_COVERED :: Int\n_STRETCH_KEEP_ASPECT_COVERED = 6\n\n_STRETCH_KEEP_ASPECT :: Int\n_STRETCH_KEEP_ASPECT = 4\n\n_STRETCH_SCALE :: Int\n_STRETCH_SCALE = 0\n\n_STRETCH_KEEP :: Int\n_STRETCH_KEEP = 2\n\n_STRETCH_KEEP_CENTERED :: Int\n_STRETCH_KEEP_CENTERED = 3\n\n_STRETCH_KEEP_ASPECT_CENTERED :: Int\n_STRETCH_KEEP_ASPECT_CENTERED = 5\n\ninstance NodeProperty TextureButton \"expand\" Bool 'False where\n        nodeProperty = (get_expand, wrapDroppingSetter set_expand, Nothing)\n\ninstance NodeProperty TextureButton \"stretch_mode\" Int 'False where\n        nodeProperty\n          = (get_stretch_mode, wrapDroppingSetter set_stretch_mode, Nothing)\n\ninstance NodeProperty TextureButton \"texture_click_mask\" BitMap\n           'False\n         where\n        nodeProperty\n          = (get_click_mask, wrapDroppingSetter set_click_mask, Nothing)\n\ninstance NodeProperty TextureButton \"texture_disabled\" Texture\n           'False\n         where\n        nodeProperty\n          = (get_disabled_texture, wrapDroppingSetter set_disabled_texture,\n             Nothing)\n\ninstance NodeProperty TextureButton \"texture_focused\" Texture\n           'False\n         where\n        nodeProperty\n          = (get_focused_texture, wrapDroppingSetter set_focused_texture,\n             Nothing)\n\ninstance NodeProperty TextureButton \"texture_hover\" Texture 'False\n         where\n        nodeProperty\n          = (get_hover_texture, wrapDroppingSetter set_hover_texture,\n             Nothing)\n\ninstance NodeProperty TextureButton \"texture_normal\" Texture 'False\n         where\n        nodeProperty\n          = (get_normal_texture, wrapDroppingSetter set_normal_texture,\n             Nothing)\n\ninstance NodeProperty TextureButton \"texture_pressed\" Texture\n           'False\n         where\n        nodeProperty\n          = (get_pressed_texture, wrapDroppingSetter set_pressed_texture,\n             Nothing)\n\n{-# NOINLINE bindTextureButton_get_click_mask #-}\n\n-- | Pure black and white @BitMap@ image to use for click detection. On the mask, white pixels represent the button's clickable area. Use it to create buttons with curved shapes.\nbindTextureButton_get_click_mask :: MethodBind\nbindTextureButton_get_click_mask\n  = unsafePerformIO $\n      withCString \"TextureButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_click_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Pure black and white @BitMap@ image to use for click detection. On the mask, white pixels represent the button's clickable area. Use it to create buttons with curved shapes.\nget_click_mask ::\n                 (TextureButton :< cls, Object :< cls) => cls -> IO BitMap\nget_click_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureButton_get_click_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureButton \"get_click_mask\" '[] (IO BitMap)\n         where\n        nodeMethod = Godot.Core.TextureButton.get_click_mask\n\n{-# NOINLINE bindTextureButton_get_disabled_texture #-}\n\n-- | Texture to display when the node is disabled. See @BaseButton.disabled@.\nbindTextureButton_get_disabled_texture :: MethodBind\nbindTextureButton_get_disabled_texture\n  = unsafePerformIO $\n      withCString \"TextureButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_disabled_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Texture to display when the node is disabled. See @BaseButton.disabled@.\nget_disabled_texture ::\n                       (TextureButton :< cls, Object :< cls) => cls -> IO Texture\nget_disabled_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureButton_get_disabled_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureButton \"get_disabled_texture\" '[]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.TextureButton.get_disabled_texture\n\n{-# NOINLINE bindTextureButton_get_expand #-}\n\n-- | If @true@, the texture stretches to the edges of the node's bounding rectangle using the @stretch_mode@. If @false@, the texture will not scale with the node.\nbindTextureButton_get_expand :: MethodBind\nbindTextureButton_get_expand\n  = unsafePerformIO $\n      withCString \"TextureButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_expand\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the texture stretches to the edges of the node's bounding rectangle using the @stretch_mode@. If @false@, the texture will not scale with the node.\nget_expand ::\n             (TextureButton :< cls, Object :< cls) => cls -> IO Bool\nget_expand cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureButton_get_expand (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureButton \"get_expand\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.TextureButton.get_expand\n\n{-# NOINLINE bindTextureButton_get_focused_texture #-}\n\n-- | Texture to display when the node has mouse or keyboard focus.\nbindTextureButton_get_focused_texture :: MethodBind\nbindTextureButton_get_focused_texture\n  = unsafePerformIO $\n      withCString \"TextureButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_focused_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Texture to display when the node has mouse or keyboard focus.\nget_focused_texture ::\n                      (TextureButton :< cls, Object :< cls) => cls -> IO Texture\nget_focused_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureButton_get_focused_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureButton \"get_focused_texture\" '[]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.TextureButton.get_focused_texture\n\n{-# NOINLINE bindTextureButton_get_hover_texture #-}\n\n-- | Texture to display when the mouse hovers the node.\nbindTextureButton_get_hover_texture :: MethodBind\nbindTextureButton_get_hover_texture\n  = unsafePerformIO $\n      withCString \"TextureButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_hover_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Texture to display when the mouse hovers the node.\nget_hover_texture ::\n                    (TextureButton :< cls, Object :< cls) => cls -> IO Texture\nget_hover_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureButton_get_hover_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureButton \"get_hover_texture\" '[]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.TextureButton.get_hover_texture\n\n{-# NOINLINE bindTextureButton_get_normal_texture #-}\n\n-- | Texture to display by default, when the node is __not__ in the disabled, focused, hover or pressed state.\nbindTextureButton_get_normal_texture :: MethodBind\nbindTextureButton_get_normal_texture\n  = unsafePerformIO $\n      withCString \"TextureButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_normal_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Texture to display by default, when the node is __not__ in the disabled, focused, hover or pressed state.\nget_normal_texture ::\n                     (TextureButton :< cls, Object :< cls) => cls -> IO Texture\nget_normal_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureButton_get_normal_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureButton \"get_normal_texture\" '[]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.TextureButton.get_normal_texture\n\n{-# NOINLINE bindTextureButton_get_pressed_texture #-}\n\n-- | Texture to display on mouse down over the node, if the node has keyboard focus and the player presses the Enter key or if the player presses the @BaseButton.shortcut@ key.\nbindTextureButton_get_pressed_texture :: MethodBind\nbindTextureButton_get_pressed_texture\n  = unsafePerformIO $\n      withCString \"TextureButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_pressed_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Texture to display on mouse down over the node, if the node has keyboard focus and the player presses the Enter key or if the player presses the @BaseButton.shortcut@ key.\nget_pressed_texture ::\n                      (TextureButton :< cls, Object :< cls) => cls -> IO Texture\nget_pressed_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureButton_get_pressed_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureButton \"get_pressed_texture\" '[]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.TextureButton.get_pressed_texture\n\n{-# NOINLINE bindTextureButton_get_stretch_mode #-}\n\n-- | Controls the texture's behavior when you resize the node's bounding rectangle, __only if__ @expand@ is @true@. Set it to one of the @enum StretchMode@ constants. See the constants to learn more.\nbindTextureButton_get_stretch_mode :: MethodBind\nbindTextureButton_get_stretch_mode\n  = unsafePerformIO $\n      withCString \"TextureButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_stretch_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls the texture's behavior when you resize the node's bounding rectangle, __only if__ @expand@ is @true@. Set it to one of the @enum StretchMode@ constants. See the constants to learn more.\nget_stretch_mode ::\n                   (TextureButton :< cls, Object :< cls) => cls -> IO Int\nget_stretch_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureButton_get_stretch_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureButton \"get_stretch_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.TextureButton.get_stretch_mode\n\n{-# NOINLINE bindTextureButton_set_click_mask #-}\n\n-- | Pure black and white @BitMap@ image to use for click detection. On the mask, white pixels represent the button's clickable area. Use it to create buttons with curved shapes.\nbindTextureButton_set_click_mask :: MethodBind\nbindTextureButton_set_click_mask\n  = unsafePerformIO $\n      withCString \"TextureButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_click_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Pure black and white @BitMap@ image to use for click detection. On the mask, white pixels represent the button's clickable area. Use it to create buttons with curved shapes.\nset_click_mask ::\n                 (TextureButton :< cls, Object :< cls) => cls -> BitMap -> IO ()\nset_click_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureButton_set_click_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureButton \"set_click_mask\" '[BitMap]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureButton.set_click_mask\n\n{-# NOINLINE bindTextureButton_set_disabled_texture #-}\n\n-- | Texture to display when the node is disabled. See @BaseButton.disabled@.\nbindTextureButton_set_disabled_texture :: MethodBind\nbindTextureButton_set_disabled_texture\n  = unsafePerformIO $\n      withCString \"TextureButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_disabled_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Texture to display when the node is disabled. See @BaseButton.disabled@.\nset_disabled_texture ::\n                       (TextureButton :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_disabled_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureButton_set_disabled_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureButton \"set_disabled_texture\" '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureButton.set_disabled_texture\n\n{-# NOINLINE bindTextureButton_set_expand #-}\n\n-- | If @true@, the texture stretches to the edges of the node's bounding rectangle using the @stretch_mode@. If @false@, the texture will not scale with the node.\nbindTextureButton_set_expand :: MethodBind\nbindTextureButton_set_expand\n  = unsafePerformIO $\n      withCString \"TextureButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_expand\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the texture stretches to the edges of the node's bounding rectangle using the @stretch_mode@. If @false@, the texture will not scale with the node.\nset_expand ::\n             (TextureButton :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_expand cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureButton_set_expand (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureButton \"set_expand\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.TextureButton.set_expand\n\n{-# NOINLINE bindTextureButton_set_focused_texture #-}\n\n-- | Texture to display when the node has mouse or keyboard focus.\nbindTextureButton_set_focused_texture :: MethodBind\nbindTextureButton_set_focused_texture\n  = unsafePerformIO $\n      withCString \"TextureButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_focused_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Texture to display when the node has mouse or keyboard focus.\nset_focused_texture ::\n                      (TextureButton :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_focused_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureButton_set_focused_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureButton \"set_focused_texture\" '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureButton.set_focused_texture\n\n{-# NOINLINE bindTextureButton_set_hover_texture #-}\n\n-- | Texture to display when the mouse hovers the node.\nbindTextureButton_set_hover_texture :: MethodBind\nbindTextureButton_set_hover_texture\n  = unsafePerformIO $\n      withCString \"TextureButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_hover_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Texture to display when the mouse hovers the node.\nset_hover_texture ::\n                    (TextureButton :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_hover_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureButton_set_hover_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureButton \"set_hover_texture\" '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureButton.set_hover_texture\n\n{-# NOINLINE bindTextureButton_set_normal_texture #-}\n\n-- | Texture to display by default, when the node is __not__ in the disabled, focused, hover or pressed state.\nbindTextureButton_set_normal_texture :: MethodBind\nbindTextureButton_set_normal_texture\n  = unsafePerformIO $\n      withCString \"TextureButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_normal_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Texture to display by default, when the node is __not__ in the disabled, focused, hover or pressed state.\nset_normal_texture ::\n                     (TextureButton :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_normal_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureButton_set_normal_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureButton \"set_normal_texture\" '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureButton.set_normal_texture\n\n{-# NOINLINE bindTextureButton_set_pressed_texture #-}\n\n-- | Texture to display on mouse down over the node, if the node has keyboard focus and the player presses the Enter key or if the player presses the @BaseButton.shortcut@ key.\nbindTextureButton_set_pressed_texture :: MethodBind\nbindTextureButton_set_pressed_texture\n  = unsafePerformIO $\n      withCString \"TextureButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_pressed_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Texture to display on mouse down over the node, if the node has keyboard focus and the player presses the Enter key or if the player presses the @BaseButton.shortcut@ key.\nset_pressed_texture ::\n                      (TextureButton :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_pressed_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureButton_set_pressed_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureButton \"set_pressed_texture\" '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureButton.set_pressed_texture\n\n{-# NOINLINE bindTextureButton_set_stretch_mode #-}\n\n-- | Controls the texture's behavior when you resize the node's bounding rectangle, __only if__ @expand@ is @true@. Set it to one of the @enum StretchMode@ constants. See the constants to learn more.\nbindTextureButton_set_stretch_mode :: MethodBind\nbindTextureButton_set_stretch_mode\n  = unsafePerformIO $\n      withCString \"TextureButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_stretch_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls the texture's behavior when you resize the node's bounding rectangle, __only if__ @expand@ is @true@. Set it to one of the @enum StretchMode@ constants. See the constants to learn more.\nset_stretch_mode ::\n                   (TextureButton :< cls, Object :< cls) => cls -> Int -> IO ()\nset_stretch_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureButton_set_stretch_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureButton \"set_stretch_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.TextureButton.set_stretch_mode"
  },
  {
    "path": "src/Godot/Core/TextureLayered.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.TextureLayered\n       (Godot.Core.TextureLayered._FLAGS_DEFAULT,\n        Godot.Core.TextureLayered._FLAG_REPEAT,\n        Godot.Core.TextureLayered._FLAG_MIPMAPS,\n        Godot.Core.TextureLayered._FLAG_FILTER,\n        Godot.Core.TextureLayered._get_data,\n        Godot.Core.TextureLayered._set_data,\n        Godot.Core.TextureLayered.create,\n        Godot.Core.TextureLayered.get_depth,\n        Godot.Core.TextureLayered.get_flags,\n        Godot.Core.TextureLayered.get_format,\n        Godot.Core.TextureLayered.get_height,\n        Godot.Core.TextureLayered.get_layer_data,\n        Godot.Core.TextureLayered.get_width,\n        Godot.Core.TextureLayered.set_data_partial,\n        Godot.Core.TextureLayered.set_flags,\n        Godot.Core.TextureLayered.set_layer_data)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_FLAGS_DEFAULT :: Int\n_FLAGS_DEFAULT = 4\n\n_FLAG_REPEAT :: Int\n_FLAG_REPEAT = 2\n\n_FLAG_MIPMAPS :: Int\n_FLAG_MIPMAPS = 1\n\n_FLAG_FILTER :: Int\n_FLAG_FILTER = 4\n\ninstance NodeProperty TextureLayered \"data\" Dictionary 'False where\n        nodeProperty = (_get_data, wrapDroppingSetter _set_data, Nothing)\n\ninstance NodeProperty TextureLayered \"flags\" Int 'False where\n        nodeProperty = (get_flags, wrapDroppingSetter set_flags, Nothing)\n\n{-# NOINLINE bindTextureLayered__get_data #-}\n\n-- | Returns a dictionary with all the data used by this texture.\nbindTextureLayered__get_data :: MethodBind\nbindTextureLayered__get_data\n  = unsafePerformIO $\n      withCString \"TextureLayered\" $\n        \\ clsNamePtr ->\n          withCString \"_get_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a dictionary with all the data used by this texture.\n_get_data ::\n            (TextureLayered :< cls, Object :< cls) => cls -> IO Dictionary\n_get_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureLayered__get_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureLayered \"_get_data\" '[] (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.TextureLayered._get_data\n\n{-# NOINLINE bindTextureLayered__set_data #-}\n\n-- | Returns a dictionary with all the data used by this texture.\nbindTextureLayered__set_data :: MethodBind\nbindTextureLayered__set_data\n  = unsafePerformIO $\n      withCString \"TextureLayered\" $\n        \\ clsNamePtr ->\n          withCString \"_set_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a dictionary with all the data used by this texture.\n_set_data ::\n            (TextureLayered :< cls, Object :< cls) =>\n            cls -> Dictionary -> IO ()\n_set_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureLayered__set_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureLayered \"_set_data\" '[Dictionary]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureLayered._set_data\n\n{-# NOINLINE bindTextureLayered_create #-}\n\n-- | Creates the @Texture3D@ or @TextureArray@ with specified @width@, @height@, and @depth@. See @enum Image.Format@ for @format@ options. See @enum Flags@ enumerator for @flags@ options.\nbindTextureLayered_create :: MethodBind\nbindTextureLayered_create\n  = unsafePerformIO $\n      withCString \"TextureLayered\" $\n        \\ clsNamePtr ->\n          withCString \"create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates the @Texture3D@ or @TextureArray@ with specified @width@, @height@, and @depth@. See @enum Image.Format@ for @format@ options. See @enum Flags@ enumerator for @flags@ options.\ncreate ::\n         (TextureLayered :< cls, Object :< cls) =>\n         cls -> Int -> Int -> Int -> Int -> Maybe Int -> IO ()\ncreate cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       maybe (VariantInt (4)) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureLayered_create (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureLayered \"create\"\n           '[Int, Int, Int, Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureLayered.create\n\n{-# NOINLINE bindTextureLayered_get_depth #-}\n\n-- | Returns the depth of the texture. Depth is the 3rd dimension (typically Z-axis).\nbindTextureLayered_get_depth :: MethodBind\nbindTextureLayered_get_depth\n  = unsafePerformIO $\n      withCString \"TextureLayered\" $\n        \\ clsNamePtr ->\n          withCString \"get_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the depth of the texture. Depth is the 3rd dimension (typically Z-axis).\nget_depth ::\n            (TextureLayered :< cls, Object :< cls) => cls -> IO Int\nget_depth cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureLayered_get_depth (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureLayered \"get_depth\" '[] (IO Int) where\n        nodeMethod = Godot.Core.TextureLayered.get_depth\n\n{-# NOINLINE bindTextureLayered_get_flags #-}\n\n-- | Specifies which @enum Flags@ apply to this texture.\nbindTextureLayered_get_flags :: MethodBind\nbindTextureLayered_get_flags\n  = unsafePerformIO $\n      withCString \"TextureLayered\" $\n        \\ clsNamePtr ->\n          withCString \"get_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies which @enum Flags@ apply to this texture.\nget_flags ::\n            (TextureLayered :< cls, Object :< cls) => cls -> IO Int\nget_flags cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureLayered_get_flags (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureLayered \"get_flags\" '[] (IO Int) where\n        nodeMethod = Godot.Core.TextureLayered.get_flags\n\n{-# NOINLINE bindTextureLayered_get_format #-}\n\n-- | Returns the current format being used by this texture. See @enum Image.Format@ for details.\nbindTextureLayered_get_format :: MethodBind\nbindTextureLayered_get_format\n  = unsafePerformIO $\n      withCString \"TextureLayered\" $\n        \\ clsNamePtr ->\n          withCString \"get_format\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current format being used by this texture. See @enum Image.Format@ for details.\nget_format ::\n             (TextureLayered :< cls, Object :< cls) => cls -> IO Int\nget_format cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureLayered_get_format (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureLayered \"get_format\" '[] (IO Int) where\n        nodeMethod = Godot.Core.TextureLayered.get_format\n\n{-# NOINLINE bindTextureLayered_get_height #-}\n\n-- | Returns the height of the texture. Height is typically represented by the Y-axis.\nbindTextureLayered_get_height :: MethodBind\nbindTextureLayered_get_height\n  = unsafePerformIO $\n      withCString \"TextureLayered\" $\n        \\ clsNamePtr ->\n          withCString \"get_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the height of the texture. Height is typically represented by the Y-axis.\nget_height ::\n             (TextureLayered :< cls, Object :< cls) => cls -> IO Int\nget_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureLayered_get_height (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureLayered \"get_height\" '[] (IO Int) where\n        nodeMethod = Godot.Core.TextureLayered.get_height\n\n{-# NOINLINE bindTextureLayered_get_layer_data #-}\n\n-- | Returns an @Image@ resource with the data from specified @layer@.\nbindTextureLayered_get_layer_data :: MethodBind\nbindTextureLayered_get_layer_data\n  = unsafePerformIO $\n      withCString \"TextureLayered\" $\n        \\ clsNamePtr ->\n          withCString \"get_layer_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an @Image@ resource with the data from specified @layer@.\nget_layer_data ::\n                 (TextureLayered :< cls, Object :< cls) => cls -> Int -> IO Image\nget_layer_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureLayered_get_layer_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureLayered \"get_layer_data\" '[Int]\n           (IO Image)\n         where\n        nodeMethod = Godot.Core.TextureLayered.get_layer_data\n\n{-# NOINLINE bindTextureLayered_get_width #-}\n\n-- | Returns the width of the texture. Width is typically represented by the X-axis.\nbindTextureLayered_get_width :: MethodBind\nbindTextureLayered_get_width\n  = unsafePerformIO $\n      withCString \"TextureLayered\" $\n        \\ clsNamePtr ->\n          withCString \"get_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the width of the texture. Width is typically represented by the X-axis.\nget_width ::\n            (TextureLayered :< cls, Object :< cls) => cls -> IO Int\nget_width cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureLayered_get_width (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureLayered \"get_width\" '[] (IO Int) where\n        nodeMethod = Godot.Core.TextureLayered.get_width\n\n{-# NOINLINE bindTextureLayered_set_data_partial #-}\n\n-- | Partially sets the data for a specified @layer@ by overwriting using the data of the specified @image@. @x_offset@ and @y_offset@ determine where the @Image@ is \"stamped\" over the texture. The @image@ must fit within the texture.\nbindTextureLayered_set_data_partial :: MethodBind\nbindTextureLayered_set_data_partial\n  = unsafePerformIO $\n      withCString \"TextureLayered\" $\n        \\ clsNamePtr ->\n          withCString \"set_data_partial\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Partially sets the data for a specified @layer@ by overwriting using the data of the specified @image@. @x_offset@ and @y_offset@ determine where the @Image@ is \"stamped\" over the texture. The @image@ must fit within the texture.\nset_data_partial ::\n                   (TextureLayered :< cls, Object :< cls) =>\n                   cls -> Image -> Int -> Int -> Int -> Maybe Int -> IO ()\nset_data_partial cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       maybe (VariantInt (0)) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureLayered_set_data_partial\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureLayered \"set_data_partial\"\n           '[Image, Int, Int, Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureLayered.set_data_partial\n\n{-# NOINLINE bindTextureLayered_set_flags #-}\n\n-- | Specifies which @enum Flags@ apply to this texture.\nbindTextureLayered_set_flags :: MethodBind\nbindTextureLayered_set_flags\n  = unsafePerformIO $\n      withCString \"TextureLayered\" $\n        \\ clsNamePtr ->\n          withCString \"set_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies which @enum Flags@ apply to this texture.\nset_flags ::\n            (TextureLayered :< cls, Object :< cls) => cls -> Int -> IO ()\nset_flags cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureLayered_set_flags (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureLayered \"set_flags\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.TextureLayered.set_flags\n\n{-# NOINLINE bindTextureLayered_set_layer_data #-}\n\n-- | Sets the data for the specified layer. Data takes the form of a 2-dimensional @Image@ resource.\nbindTextureLayered_set_layer_data :: MethodBind\nbindTextureLayered_set_layer_data\n  = unsafePerformIO $\n      withCString \"TextureLayered\" $\n        \\ clsNamePtr ->\n          withCString \"set_layer_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the data for the specified layer. Data takes the form of a 2-dimensional @Image@ resource.\nset_layer_data ::\n                 (TextureLayered :< cls, Object :< cls) =>\n                 cls -> Image -> Int -> IO ()\nset_layer_data cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureLayered_set_layer_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureLayered \"set_layer_data\" '[Image, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureLayered.set_layer_data"
  },
  {
    "path": "src/Godot/Core/TextureProgress.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.TextureProgress\n       (Godot.Core.TextureProgress._FILL_BOTTOM_TO_TOP,\n        Godot.Core.TextureProgress._FILL_TOP_TO_BOTTOM,\n        Godot.Core.TextureProgress._FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE,\n        Godot.Core.TextureProgress._FILL_RIGHT_TO_LEFT,\n        Godot.Core.TextureProgress._FILL_CLOCKWISE,\n        Godot.Core.TextureProgress._FILL_LEFT_TO_RIGHT,\n        Godot.Core.TextureProgress._FILL_BILINEAR_LEFT_AND_RIGHT,\n        Godot.Core.TextureProgress._FILL_COUNTER_CLOCKWISE,\n        Godot.Core.TextureProgress._FILL_BILINEAR_TOP_AND_BOTTOM,\n        Godot.Core.TextureProgress.get_fill_degrees,\n        Godot.Core.TextureProgress.get_fill_mode,\n        Godot.Core.TextureProgress.get_nine_patch_stretch,\n        Godot.Core.TextureProgress.get_over_texture,\n        Godot.Core.TextureProgress.get_progress_texture,\n        Godot.Core.TextureProgress.get_radial_center_offset,\n        Godot.Core.TextureProgress.get_radial_initial_angle,\n        Godot.Core.TextureProgress.get_stretch_margin,\n        Godot.Core.TextureProgress.get_tint_over,\n        Godot.Core.TextureProgress.get_tint_progress,\n        Godot.Core.TextureProgress.get_tint_under,\n        Godot.Core.TextureProgress.get_under_texture,\n        Godot.Core.TextureProgress.set_fill_degrees,\n        Godot.Core.TextureProgress.set_fill_mode,\n        Godot.Core.TextureProgress.set_nine_patch_stretch,\n        Godot.Core.TextureProgress.set_over_texture,\n        Godot.Core.TextureProgress.set_progress_texture,\n        Godot.Core.TextureProgress.set_radial_center_offset,\n        Godot.Core.TextureProgress.set_radial_initial_angle,\n        Godot.Core.TextureProgress.set_stretch_margin,\n        Godot.Core.TextureProgress.set_tint_over,\n        Godot.Core.TextureProgress.set_tint_progress,\n        Godot.Core.TextureProgress.set_tint_under,\n        Godot.Core.TextureProgress.set_under_texture)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Range()\n\n_FILL_BOTTOM_TO_TOP :: Int\n_FILL_BOTTOM_TO_TOP = 3\n\n_FILL_TOP_TO_BOTTOM :: Int\n_FILL_TOP_TO_BOTTOM = 2\n\n_FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE :: Int\n_FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE = 8\n\n_FILL_RIGHT_TO_LEFT :: Int\n_FILL_RIGHT_TO_LEFT = 1\n\n_FILL_CLOCKWISE :: Int\n_FILL_CLOCKWISE = 4\n\n_FILL_LEFT_TO_RIGHT :: Int\n_FILL_LEFT_TO_RIGHT = 0\n\n_FILL_BILINEAR_LEFT_AND_RIGHT :: Int\n_FILL_BILINEAR_LEFT_AND_RIGHT = 6\n\n_FILL_COUNTER_CLOCKWISE :: Int\n_FILL_COUNTER_CLOCKWISE = 5\n\n_FILL_BILINEAR_TOP_AND_BOTTOM :: Int\n_FILL_BILINEAR_TOP_AND_BOTTOM = 7\n\ninstance NodeProperty TextureProgress \"fill_mode\" Int 'False where\n        nodeProperty\n          = (get_fill_mode, wrapDroppingSetter set_fill_mode, Nothing)\n\ninstance NodeProperty TextureProgress \"nine_patch_stretch\" Bool\n           'False\n         where\n        nodeProperty\n          = (get_nine_patch_stretch,\n             wrapDroppingSetter set_nine_patch_stretch, Nothing)\n\ninstance NodeProperty TextureProgress \"radial_center_offset\"\n           Vector2\n           'False\n         where\n        nodeProperty\n          = (get_radial_center_offset,\n             wrapDroppingSetter set_radial_center_offset, Nothing)\n\ninstance NodeProperty TextureProgress \"radial_fill_degrees\" Float\n           'False\n         where\n        nodeProperty\n          = (get_fill_degrees, wrapDroppingSetter set_fill_degrees, Nothing)\n\ninstance NodeProperty TextureProgress \"radial_initial_angle\" Float\n           'False\n         where\n        nodeProperty\n          = (get_radial_initial_angle,\n             wrapDroppingSetter set_radial_initial_angle, Nothing)\n\ninstance NodeProperty TextureProgress \"stretch_margin_bottom\" Int\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_stretch_margin,\n             wrapIndexedSetter 3 set_stretch_margin, Nothing)\n\ninstance NodeProperty TextureProgress \"stretch_margin_left\" Int\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_stretch_margin,\n             wrapIndexedSetter 0 set_stretch_margin, Nothing)\n\ninstance NodeProperty TextureProgress \"stretch_margin_right\" Int\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_stretch_margin,\n             wrapIndexedSetter 2 set_stretch_margin, Nothing)\n\ninstance NodeProperty TextureProgress \"stretch_margin_top\" Int\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_stretch_margin,\n             wrapIndexedSetter 1 set_stretch_margin, Nothing)\n\ninstance NodeProperty TextureProgress \"texture_over\" Texture 'False\n         where\n        nodeProperty\n          = (get_over_texture, wrapDroppingSetter set_over_texture, Nothing)\n\ninstance NodeProperty TextureProgress \"texture_progress\" Texture\n           'False\n         where\n        nodeProperty\n          = (get_progress_texture, wrapDroppingSetter set_progress_texture,\n             Nothing)\n\ninstance NodeProperty TextureProgress \"texture_under\" Texture\n           'False\n         where\n        nodeProperty\n          = (get_under_texture, wrapDroppingSetter set_under_texture,\n             Nothing)\n\ninstance NodeProperty TextureProgress \"tint_over\" Color 'False\n         where\n        nodeProperty\n          = (get_tint_over, wrapDroppingSetter set_tint_over, Nothing)\n\ninstance NodeProperty TextureProgress \"tint_progress\" Color 'False\n         where\n        nodeProperty\n          = (get_tint_progress, wrapDroppingSetter set_tint_progress,\n             Nothing)\n\ninstance NodeProperty TextureProgress \"tint_under\" Color 'False\n         where\n        nodeProperty\n          = (get_tint_under, wrapDroppingSetter set_tint_under, Nothing)\n\n{-# NOINLINE bindTextureProgress_get_fill_degrees #-}\n\n-- | Upper limit for the fill of @texture_progress@ if @fill_mode@ is @FILL_CLOCKWISE@ or @FILL_COUNTER_CLOCKWISE@. When the node's @value@ is equal to its @max_value@, the texture fills up to this angle.\n--   \t\t\tSee @Range.value@, @Range.max_value@.\nbindTextureProgress_get_fill_degrees :: MethodBind\nbindTextureProgress_get_fill_degrees\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"get_fill_degrees\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Upper limit for the fill of @texture_progress@ if @fill_mode@ is @FILL_CLOCKWISE@ or @FILL_COUNTER_CLOCKWISE@. When the node's @value@ is equal to its @max_value@, the texture fills up to this angle.\n--   \t\t\tSee @Range.value@, @Range.max_value@.\nget_fill_degrees ::\n                   (TextureProgress :< cls, Object :< cls) => cls -> IO Float\nget_fill_degrees cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_get_fill_degrees\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"get_fill_degrees\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.TextureProgress.get_fill_degrees\n\n{-# NOINLINE bindTextureProgress_get_fill_mode #-}\n\n-- | The fill direction. See @enum FillMode@ for possible values.\nbindTextureProgress_get_fill_mode :: MethodBind\nbindTextureProgress_get_fill_mode\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"get_fill_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The fill direction. See @enum FillMode@ for possible values.\nget_fill_mode ::\n                (TextureProgress :< cls, Object :< cls) => cls -> IO Int\nget_fill_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_get_fill_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"get_fill_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.TextureProgress.get_fill_mode\n\n{-# NOINLINE bindTextureProgress_get_nine_patch_stretch #-}\n\n-- | If @true@, Godot treats the bar's textures like in @NinePatchRect@. Use the @stretch_margin_*@ properties like @stretch_margin_bottom@ to set up the nine patch's 3×3 grid. When using a radial @fill_mode@, this setting will enable stretching.\nbindTextureProgress_get_nine_patch_stretch :: MethodBind\nbindTextureProgress_get_nine_patch_stretch\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"get_nine_patch_stretch\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, Godot treats the bar's textures like in @NinePatchRect@. Use the @stretch_margin_*@ properties like @stretch_margin_bottom@ to set up the nine patch's 3×3 grid. When using a radial @fill_mode@, this setting will enable stretching.\nget_nine_patch_stretch ::\n                         (TextureProgress :< cls, Object :< cls) => cls -> IO Bool\nget_nine_patch_stretch cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_get_nine_patch_stretch\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"get_nine_patch_stretch\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TextureProgress.get_nine_patch_stretch\n\n{-# NOINLINE bindTextureProgress_get_over_texture #-}\n\n-- | @Texture@ that draws over the progress bar. Use it to add highlights or an upper-frame that hides part of @texture_progress@.\nbindTextureProgress_get_over_texture :: MethodBind\nbindTextureProgress_get_over_texture\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"get_over_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Texture@ that draws over the progress bar. Use it to add highlights or an upper-frame that hides part of @texture_progress@.\nget_over_texture ::\n                   (TextureProgress :< cls, Object :< cls) => cls -> IO Texture\nget_over_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_get_over_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"get_over_texture\" '[]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.TextureProgress.get_over_texture\n\n{-# NOINLINE bindTextureProgress_get_progress_texture #-}\n\n-- | @Texture@ that clips based on the node's @value@ and @fill_mode@. As @value@ increased, the texture fills up. It shows entirely when @value@ reaches @max_value@. It doesn't show at all if @value@ is equal to @min_value@.\n--   \t\t\tThe @value@ property comes from @Range@. See @Range.value@, @Range.min_value@, @Range.max_value@.\nbindTextureProgress_get_progress_texture :: MethodBind\nbindTextureProgress_get_progress_texture\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"get_progress_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Texture@ that clips based on the node's @value@ and @fill_mode@. As @value@ increased, the texture fills up. It shows entirely when @value@ reaches @max_value@. It doesn't show at all if @value@ is equal to @min_value@.\n--   \t\t\tThe @value@ property comes from @Range@. See @Range.value@, @Range.min_value@, @Range.max_value@.\nget_progress_texture ::\n                       (TextureProgress :< cls, Object :< cls) => cls -> IO Texture\nget_progress_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_get_progress_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"get_progress_texture\" '[]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.TextureProgress.get_progress_texture\n\n{-# NOINLINE bindTextureProgress_get_radial_center_offset #-}\n\n-- | Offsets @texture_progress@ if @fill_mode@ is @FILL_CLOCKWISE@ or @FILL_COUNTER_CLOCKWISE@.\nbindTextureProgress_get_radial_center_offset :: MethodBind\nbindTextureProgress_get_radial_center_offset\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"get_radial_center_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Offsets @texture_progress@ if @fill_mode@ is @FILL_CLOCKWISE@ or @FILL_COUNTER_CLOCKWISE@.\nget_radial_center_offset ::\n                           (TextureProgress :< cls, Object :< cls) => cls -> IO Vector2\nget_radial_center_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_get_radial_center_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"get_radial_center_offset\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.TextureProgress.get_radial_center_offset\n\n{-# NOINLINE bindTextureProgress_get_radial_initial_angle #-}\n\n-- | Starting angle for the fill of @texture_progress@ if @fill_mode@ is @FILL_CLOCKWISE@ or @FILL_COUNTER_CLOCKWISE@. When the node's @value@ is equal to its @min_value@, the texture doesn't show up at all. When the @value@ increases, the texture fills and tends towards @radial_fill_degrees@.\nbindTextureProgress_get_radial_initial_angle :: MethodBind\nbindTextureProgress_get_radial_initial_angle\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"get_radial_initial_angle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Starting angle for the fill of @texture_progress@ if @fill_mode@ is @FILL_CLOCKWISE@ or @FILL_COUNTER_CLOCKWISE@. When the node's @value@ is equal to its @min_value@, the texture doesn't show up at all. When the @value@ increases, the texture fills and tends towards @radial_fill_degrees@.\nget_radial_initial_angle ::\n                           (TextureProgress :< cls, Object :< cls) => cls -> IO Float\nget_radial_initial_angle cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_get_radial_initial_angle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"get_radial_initial_angle\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.TextureProgress.get_radial_initial_angle\n\n{-# NOINLINE bindTextureProgress_get_stretch_margin #-}\n\n-- | The height of the 9-patch's bottom row. A margin of 16 means the 9-slice's bottom corners and side will have a height of 16 pixels. You can set all 4 margin values individually to create panels with non-uniform borders.\nbindTextureProgress_get_stretch_margin :: MethodBind\nbindTextureProgress_get_stretch_margin\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"get_stretch_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The height of the 9-patch's bottom row. A margin of 16 means the 9-slice's bottom corners and side will have a height of 16 pixels. You can set all 4 margin values individually to create panels with non-uniform borders.\nget_stretch_margin ::\n                     (TextureProgress :< cls, Object :< cls) => cls -> Int -> IO Int\nget_stretch_margin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_get_stretch_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"get_stretch_margin\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.TextureProgress.get_stretch_margin\n\n{-# NOINLINE bindTextureProgress_get_tint_over #-}\n\n-- | Multiplies the color of the bar's @texture_over@ texture. The effect is similar to @CanvasItem.modulate@, except it only affects this specific texture instead of the entire node.\nbindTextureProgress_get_tint_over :: MethodBind\nbindTextureProgress_get_tint_over\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"get_tint_over\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Multiplies the color of the bar's @texture_over@ texture. The effect is similar to @CanvasItem.modulate@, except it only affects this specific texture instead of the entire node.\nget_tint_over ::\n                (TextureProgress :< cls, Object :< cls) => cls -> IO Color\nget_tint_over cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_get_tint_over\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"get_tint_over\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.TextureProgress.get_tint_over\n\n{-# NOINLINE bindTextureProgress_get_tint_progress #-}\n\n-- | Multiplies the color of the bar's @texture_progress@ texture.\nbindTextureProgress_get_tint_progress :: MethodBind\nbindTextureProgress_get_tint_progress\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"get_tint_progress\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Multiplies the color of the bar's @texture_progress@ texture.\nget_tint_progress ::\n                    (TextureProgress :< cls, Object :< cls) => cls -> IO Color\nget_tint_progress cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_get_tint_progress\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"get_tint_progress\" '[]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.TextureProgress.get_tint_progress\n\n{-# NOINLINE bindTextureProgress_get_tint_under #-}\n\n-- | Multiplies the color of the bar's @texture_under@ texture.\nbindTextureProgress_get_tint_under :: MethodBind\nbindTextureProgress_get_tint_under\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"get_tint_under\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Multiplies the color of the bar's @texture_under@ texture.\nget_tint_under ::\n                 (TextureProgress :< cls, Object :< cls) => cls -> IO Color\nget_tint_under cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_get_tint_under\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"get_tint_under\" '[] (IO Color)\n         where\n        nodeMethod = Godot.Core.TextureProgress.get_tint_under\n\n{-# NOINLINE bindTextureProgress_get_under_texture #-}\n\n-- | @Texture@ that draws under the progress bar. The bar's background.\nbindTextureProgress_get_under_texture :: MethodBind\nbindTextureProgress_get_under_texture\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"get_under_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Texture@ that draws under the progress bar. The bar's background.\nget_under_texture ::\n                    (TextureProgress :< cls, Object :< cls) => cls -> IO Texture\nget_under_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_get_under_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"get_under_texture\" '[]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.TextureProgress.get_under_texture\n\n{-# NOINLINE bindTextureProgress_set_fill_degrees #-}\n\n-- | Upper limit for the fill of @texture_progress@ if @fill_mode@ is @FILL_CLOCKWISE@ or @FILL_COUNTER_CLOCKWISE@. When the node's @value@ is equal to its @max_value@, the texture fills up to this angle.\n--   \t\t\tSee @Range.value@, @Range.max_value@.\nbindTextureProgress_set_fill_degrees :: MethodBind\nbindTextureProgress_set_fill_degrees\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"set_fill_degrees\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Upper limit for the fill of @texture_progress@ if @fill_mode@ is @FILL_CLOCKWISE@ or @FILL_COUNTER_CLOCKWISE@. When the node's @value@ is equal to its @max_value@, the texture fills up to this angle.\n--   \t\t\tSee @Range.value@, @Range.max_value@.\nset_fill_degrees ::\n                   (TextureProgress :< cls, Object :< cls) => cls -> Float -> IO ()\nset_fill_degrees cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_set_fill_degrees\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"set_fill_degrees\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureProgress.set_fill_degrees\n\n{-# NOINLINE bindTextureProgress_set_fill_mode #-}\n\n-- | The fill direction. See @enum FillMode@ for possible values.\nbindTextureProgress_set_fill_mode :: MethodBind\nbindTextureProgress_set_fill_mode\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"set_fill_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The fill direction. See @enum FillMode@ for possible values.\nset_fill_mode ::\n                (TextureProgress :< cls, Object :< cls) => cls -> Int -> IO ()\nset_fill_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_set_fill_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"set_fill_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.TextureProgress.set_fill_mode\n\n{-# NOINLINE bindTextureProgress_set_nine_patch_stretch #-}\n\n-- | If @true@, Godot treats the bar's textures like in @NinePatchRect@. Use the @stretch_margin_*@ properties like @stretch_margin_bottom@ to set up the nine patch's 3×3 grid. When using a radial @fill_mode@, this setting will enable stretching.\nbindTextureProgress_set_nine_patch_stretch :: MethodBind\nbindTextureProgress_set_nine_patch_stretch\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"set_nine_patch_stretch\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, Godot treats the bar's textures like in @NinePatchRect@. Use the @stretch_margin_*@ properties like @stretch_margin_bottom@ to set up the nine patch's 3×3 grid. When using a radial @fill_mode@, this setting will enable stretching.\nset_nine_patch_stretch ::\n                         (TextureProgress :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_nine_patch_stretch cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_set_nine_patch_stretch\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"set_nine_patch_stretch\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureProgress.set_nine_patch_stretch\n\n{-# NOINLINE bindTextureProgress_set_over_texture #-}\n\n-- | @Texture@ that draws over the progress bar. Use it to add highlights or an upper-frame that hides part of @texture_progress@.\nbindTextureProgress_set_over_texture :: MethodBind\nbindTextureProgress_set_over_texture\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"set_over_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Texture@ that draws over the progress bar. Use it to add highlights or an upper-frame that hides part of @texture_progress@.\nset_over_texture ::\n                   (TextureProgress :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_over_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_set_over_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"set_over_texture\" '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureProgress.set_over_texture\n\n{-# NOINLINE bindTextureProgress_set_progress_texture #-}\n\n-- | @Texture@ that clips based on the node's @value@ and @fill_mode@. As @value@ increased, the texture fills up. It shows entirely when @value@ reaches @max_value@. It doesn't show at all if @value@ is equal to @min_value@.\n--   \t\t\tThe @value@ property comes from @Range@. See @Range.value@, @Range.min_value@, @Range.max_value@.\nbindTextureProgress_set_progress_texture :: MethodBind\nbindTextureProgress_set_progress_texture\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"set_progress_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Texture@ that clips based on the node's @value@ and @fill_mode@. As @value@ increased, the texture fills up. It shows entirely when @value@ reaches @max_value@. It doesn't show at all if @value@ is equal to @min_value@.\n--   \t\t\tThe @value@ property comes from @Range@. See @Range.value@, @Range.min_value@, @Range.max_value@.\nset_progress_texture ::\n                       (TextureProgress :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_progress_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_set_progress_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"set_progress_texture\"\n           '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureProgress.set_progress_texture\n\n{-# NOINLINE bindTextureProgress_set_radial_center_offset #-}\n\n-- | Offsets @texture_progress@ if @fill_mode@ is @FILL_CLOCKWISE@ or @FILL_COUNTER_CLOCKWISE@.\nbindTextureProgress_set_radial_center_offset :: MethodBind\nbindTextureProgress_set_radial_center_offset\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"set_radial_center_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Offsets @texture_progress@ if @fill_mode@ is @FILL_CLOCKWISE@ or @FILL_COUNTER_CLOCKWISE@.\nset_radial_center_offset ::\n                           (TextureProgress :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_radial_center_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_set_radial_center_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"set_radial_center_offset\"\n           '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureProgress.set_radial_center_offset\n\n{-# NOINLINE bindTextureProgress_set_radial_initial_angle #-}\n\n-- | Starting angle for the fill of @texture_progress@ if @fill_mode@ is @FILL_CLOCKWISE@ or @FILL_COUNTER_CLOCKWISE@. When the node's @value@ is equal to its @min_value@, the texture doesn't show up at all. When the @value@ increases, the texture fills and tends towards @radial_fill_degrees@.\nbindTextureProgress_set_radial_initial_angle :: MethodBind\nbindTextureProgress_set_radial_initial_angle\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"set_radial_initial_angle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Starting angle for the fill of @texture_progress@ if @fill_mode@ is @FILL_CLOCKWISE@ or @FILL_COUNTER_CLOCKWISE@. When the node's @value@ is equal to its @min_value@, the texture doesn't show up at all. When the @value@ increases, the texture fills and tends towards @radial_fill_degrees@.\nset_radial_initial_angle ::\n                           (TextureProgress :< cls, Object :< cls) => cls -> Float -> IO ()\nset_radial_initial_angle cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_set_radial_initial_angle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"set_radial_initial_angle\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureProgress.set_radial_initial_angle\n\n{-# NOINLINE bindTextureProgress_set_stretch_margin #-}\n\n-- | The height of the 9-patch's bottom row. A margin of 16 means the 9-slice's bottom corners and side will have a height of 16 pixels. You can set all 4 margin values individually to create panels with non-uniform borders.\nbindTextureProgress_set_stretch_margin :: MethodBind\nbindTextureProgress_set_stretch_margin\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"set_stretch_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The height of the 9-patch's bottom row. A margin of 16 means the 9-slice's bottom corners and side will have a height of 16 pixels. You can set all 4 margin values individually to create panels with non-uniform borders.\nset_stretch_margin ::\n                     (TextureProgress :< cls, Object :< cls) =>\n                     cls -> Int -> Int -> IO ()\nset_stretch_margin cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_set_stretch_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"set_stretch_margin\"\n           '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureProgress.set_stretch_margin\n\n{-# NOINLINE bindTextureProgress_set_tint_over #-}\n\n-- | Multiplies the color of the bar's @texture_over@ texture. The effect is similar to @CanvasItem.modulate@, except it only affects this specific texture instead of the entire node.\nbindTextureProgress_set_tint_over :: MethodBind\nbindTextureProgress_set_tint_over\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"set_tint_over\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Multiplies the color of the bar's @texture_over@ texture. The effect is similar to @CanvasItem.modulate@, except it only affects this specific texture instead of the entire node.\nset_tint_over ::\n                (TextureProgress :< cls, Object :< cls) => cls -> Color -> IO ()\nset_tint_over cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_set_tint_over\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"set_tint_over\" '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureProgress.set_tint_over\n\n{-# NOINLINE bindTextureProgress_set_tint_progress #-}\n\n-- | Multiplies the color of the bar's @texture_progress@ texture.\nbindTextureProgress_set_tint_progress :: MethodBind\nbindTextureProgress_set_tint_progress\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"set_tint_progress\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Multiplies the color of the bar's @texture_progress@ texture.\nset_tint_progress ::\n                    (TextureProgress :< cls, Object :< cls) => cls -> Color -> IO ()\nset_tint_progress cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_set_tint_progress\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"set_tint_progress\" '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureProgress.set_tint_progress\n\n{-# NOINLINE bindTextureProgress_set_tint_under #-}\n\n-- | Multiplies the color of the bar's @texture_under@ texture.\nbindTextureProgress_set_tint_under :: MethodBind\nbindTextureProgress_set_tint_under\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"set_tint_under\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Multiplies the color of the bar's @texture_under@ texture.\nset_tint_under ::\n                 (TextureProgress :< cls, Object :< cls) => cls -> Color -> IO ()\nset_tint_under cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_set_tint_under\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"set_tint_under\" '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureProgress.set_tint_under\n\n{-# NOINLINE bindTextureProgress_set_under_texture #-}\n\n-- | @Texture@ that draws under the progress bar. The bar's background.\nbindTextureProgress_set_under_texture :: MethodBind\nbindTextureProgress_set_under_texture\n  = unsafePerformIO $\n      withCString \"TextureProgress\" $\n        \\ clsNamePtr ->\n          withCString \"set_under_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | @Texture@ that draws under the progress bar. The bar's background.\nset_under_texture ::\n                    (TextureProgress :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_under_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureProgress_set_under_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureProgress \"set_under_texture\" '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TextureProgress.set_under_texture"
  },
  {
    "path": "src/Godot/Core/TextureRect.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.TextureRect\n       (Godot.Core.TextureRect._STRETCH_TILE,\n        Godot.Core.TextureRect._STRETCH_KEEP_ASPECT_COVERED,\n        Godot.Core.TextureRect._STRETCH_KEEP_ASPECT,\n        Godot.Core.TextureRect._STRETCH_SCALE_ON_EXPAND,\n        Godot.Core.TextureRect._STRETCH_SCALE,\n        Godot.Core.TextureRect._STRETCH_KEEP,\n        Godot.Core.TextureRect._STRETCH_KEEP_CENTERED,\n        Godot.Core.TextureRect._STRETCH_KEEP_ASPECT_CENTERED,\n        Godot.Core.TextureRect._texture_changed,\n        Godot.Core.TextureRect.get_stretch_mode,\n        Godot.Core.TextureRect.get_texture,\n        Godot.Core.TextureRect.has_expand,\n        Godot.Core.TextureRect.is_flipped_h,\n        Godot.Core.TextureRect.is_flipped_v,\n        Godot.Core.TextureRect.set_expand,\n        Godot.Core.TextureRect.set_flip_h,\n        Godot.Core.TextureRect.set_flip_v,\n        Godot.Core.TextureRect.set_stretch_mode,\n        Godot.Core.TextureRect.set_texture)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()\n\n_STRETCH_TILE :: Int\n_STRETCH_TILE = 2\n\n_STRETCH_KEEP_ASPECT_COVERED :: Int\n_STRETCH_KEEP_ASPECT_COVERED = 7\n\n_STRETCH_KEEP_ASPECT :: Int\n_STRETCH_KEEP_ASPECT = 5\n\n_STRETCH_SCALE_ON_EXPAND :: Int\n_STRETCH_SCALE_ON_EXPAND = 0\n\n_STRETCH_SCALE :: Int\n_STRETCH_SCALE = 1\n\n_STRETCH_KEEP :: Int\n_STRETCH_KEEP = 3\n\n_STRETCH_KEEP_CENTERED :: Int\n_STRETCH_KEEP_CENTERED = 4\n\n_STRETCH_KEEP_ASPECT_CENTERED :: Int\n_STRETCH_KEEP_ASPECT_CENTERED = 6\n\ninstance NodeProperty TextureRect \"expand\" Bool 'False where\n        nodeProperty = (has_expand, wrapDroppingSetter set_expand, Nothing)\n\ninstance NodeProperty TextureRect \"flip_h\" Bool 'False where\n        nodeProperty\n          = (is_flipped_h, wrapDroppingSetter set_flip_h, Nothing)\n\ninstance NodeProperty TextureRect \"flip_v\" Bool 'False where\n        nodeProperty\n          = (is_flipped_v, wrapDroppingSetter set_flip_v, Nothing)\n\ninstance NodeProperty TextureRect \"stretch_mode\" Int 'False where\n        nodeProperty\n          = (get_stretch_mode, wrapDroppingSetter set_stretch_mode, Nothing)\n\ninstance NodeProperty TextureRect \"texture\" Texture 'False where\n        nodeProperty\n          = (get_texture, wrapDroppingSetter set_texture, Nothing)\n\n{-# NOINLINE bindTextureRect__texture_changed #-}\n\nbindTextureRect__texture_changed :: MethodBind\nbindTextureRect__texture_changed\n  = unsafePerformIO $\n      withCString \"TextureRect\" $\n        \\ clsNamePtr ->\n          withCString \"_texture_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_texture_changed ::\n                   (TextureRect :< cls, Object :< cls) => cls -> IO ()\n_texture_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureRect__texture_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureRect \"_texture_changed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.TextureRect._texture_changed\n\n{-# NOINLINE bindTextureRect_get_stretch_mode #-}\n\n-- | Controls the texture's behavior when resizing the node's bounding rectangle. See @enum StretchMode@.\nbindTextureRect_get_stretch_mode :: MethodBind\nbindTextureRect_get_stretch_mode\n  = unsafePerformIO $\n      withCString \"TextureRect\" $\n        \\ clsNamePtr ->\n          withCString \"get_stretch_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls the texture's behavior when resizing the node's bounding rectangle. See @enum StretchMode@.\nget_stretch_mode ::\n                   (TextureRect :< cls, Object :< cls) => cls -> IO Int\nget_stretch_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureRect_get_stretch_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureRect \"get_stretch_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.TextureRect.get_stretch_mode\n\n{-# NOINLINE bindTextureRect_get_texture #-}\n\n-- | The node's @Texture@ resource.\nbindTextureRect_get_texture :: MethodBind\nbindTextureRect_get_texture\n  = unsafePerformIO $\n      withCString \"TextureRect\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's @Texture@ resource.\nget_texture ::\n              (TextureRect :< cls, Object :< cls) => cls -> IO Texture\nget_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureRect_get_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureRect \"get_texture\" '[] (IO Texture)\n         where\n        nodeMethod = Godot.Core.TextureRect.get_texture\n\n{-# NOINLINE bindTextureRect_has_expand #-}\n\n-- | If @true@, the texture scales to fit its bounding rectangle.\nbindTextureRect_has_expand :: MethodBind\nbindTextureRect_has_expand\n  = unsafePerformIO $\n      withCString \"TextureRect\" $\n        \\ clsNamePtr ->\n          withCString \"has_expand\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the texture scales to fit its bounding rectangle.\nhas_expand :: (TextureRect :< cls, Object :< cls) => cls -> IO Bool\nhas_expand cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureRect_has_expand (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureRect \"has_expand\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.TextureRect.has_expand\n\n{-# NOINLINE bindTextureRect_is_flipped_h #-}\n\n-- | If @true@, texture is flipped horizontally.\nbindTextureRect_is_flipped_h :: MethodBind\nbindTextureRect_is_flipped_h\n  = unsafePerformIO $\n      withCString \"TextureRect\" $\n        \\ clsNamePtr ->\n          withCString \"is_flipped_h\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is flipped horizontally.\nis_flipped_h ::\n               (TextureRect :< cls, Object :< cls) => cls -> IO Bool\nis_flipped_h cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureRect_is_flipped_h (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureRect \"is_flipped_h\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.TextureRect.is_flipped_h\n\n{-# NOINLINE bindTextureRect_is_flipped_v #-}\n\n-- | If @true@, texture is flipped vertically.\nbindTextureRect_is_flipped_v :: MethodBind\nbindTextureRect_is_flipped_v\n  = unsafePerformIO $\n      withCString \"TextureRect\" $\n        \\ clsNamePtr ->\n          withCString \"is_flipped_v\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is flipped vertically.\nis_flipped_v ::\n               (TextureRect :< cls, Object :< cls) => cls -> IO Bool\nis_flipped_v cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureRect_is_flipped_v (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureRect \"is_flipped_v\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.TextureRect.is_flipped_v\n\n{-# NOINLINE bindTextureRect_set_expand #-}\n\n-- | If @true@, the texture scales to fit its bounding rectangle.\nbindTextureRect_set_expand :: MethodBind\nbindTextureRect_set_expand\n  = unsafePerformIO $\n      withCString \"TextureRect\" $\n        \\ clsNamePtr ->\n          withCString \"set_expand\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the texture scales to fit its bounding rectangle.\nset_expand ::\n             (TextureRect :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_expand cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureRect_set_expand (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureRect \"set_expand\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.TextureRect.set_expand\n\n{-# NOINLINE bindTextureRect_set_flip_h #-}\n\n-- | If @true@, texture is flipped horizontally.\nbindTextureRect_set_flip_h :: MethodBind\nbindTextureRect_set_flip_h\n  = unsafePerformIO $\n      withCString \"TextureRect\" $\n        \\ clsNamePtr ->\n          withCString \"set_flip_h\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is flipped horizontally.\nset_flip_h ::\n             (TextureRect :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_flip_h cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureRect_set_flip_h (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureRect \"set_flip_h\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.TextureRect.set_flip_h\n\n{-# NOINLINE bindTextureRect_set_flip_v #-}\n\n-- | If @true@, texture is flipped vertically.\nbindTextureRect_set_flip_v :: MethodBind\nbindTextureRect_set_flip_v\n  = unsafePerformIO $\n      withCString \"TextureRect\" $\n        \\ clsNamePtr ->\n          withCString \"set_flip_v\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, texture is flipped vertically.\nset_flip_v ::\n             (TextureRect :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_flip_v cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureRect_set_flip_v (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureRect \"set_flip_v\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.TextureRect.set_flip_v\n\n{-# NOINLINE bindTextureRect_set_stretch_mode #-}\n\n-- | Controls the texture's behavior when resizing the node's bounding rectangle. See @enum StretchMode@.\nbindTextureRect_set_stretch_mode :: MethodBind\nbindTextureRect_set_stretch_mode\n  = unsafePerformIO $\n      withCString \"TextureRect\" $\n        \\ clsNamePtr ->\n          withCString \"set_stretch_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Controls the texture's behavior when resizing the node's bounding rectangle. See @enum StretchMode@.\nset_stretch_mode ::\n                   (TextureRect :< cls, Object :< cls) => cls -> Int -> IO ()\nset_stretch_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureRect_set_stretch_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureRect \"set_stretch_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.TextureRect.set_stretch_mode\n\n{-# NOINLINE bindTextureRect_set_texture #-}\n\n-- | The node's @Texture@ resource.\nbindTextureRect_set_texture :: MethodBind\nbindTextureRect_set_texture\n  = unsafePerformIO $\n      withCString \"TextureRect\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The node's @Texture@ resource.\nset_texture ::\n              (TextureRect :< cls, Object :< cls) => cls -> Texture -> IO ()\nset_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTextureRect_set_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TextureRect \"set_texture\" '[Texture] (IO ())\n         where\n        nodeMethod = Godot.Core.TextureRect.set_texture"
  },
  {
    "path": "src/Godot/Core/Theme.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Theme\n       (Godot.Core.Theme._emit_theme_changed, Godot.Core.Theme.clear,\n        Godot.Core.Theme.clear_color, Godot.Core.Theme.clear_constant,\n        Godot.Core.Theme.clear_font, Godot.Core.Theme.clear_icon,\n        Godot.Core.Theme.clear_stylebox,\n        Godot.Core.Theme.copy_default_theme, Godot.Core.Theme.copy_theme,\n        Godot.Core.Theme.get_color, Godot.Core.Theme.get_color_list,\n        Godot.Core.Theme.get_constant, Godot.Core.Theme.get_constant_list,\n        Godot.Core.Theme.get_default_font, Godot.Core.Theme.get_font,\n        Godot.Core.Theme.get_font_list, Godot.Core.Theme.get_icon,\n        Godot.Core.Theme.get_icon_list, Godot.Core.Theme.get_stylebox,\n        Godot.Core.Theme.get_stylebox_list,\n        Godot.Core.Theme.get_stylebox_types,\n        Godot.Core.Theme.get_type_list, Godot.Core.Theme.has_color,\n        Godot.Core.Theme.has_constant, Godot.Core.Theme.has_font,\n        Godot.Core.Theme.has_icon, Godot.Core.Theme.has_stylebox,\n        Godot.Core.Theme.set_color, Godot.Core.Theme.set_constant,\n        Godot.Core.Theme.set_default_font, Godot.Core.Theme.set_font,\n        Godot.Core.Theme.set_icon, Godot.Core.Theme.set_stylebox)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty Theme \"default_font\" Font 'False where\n        nodeProperty\n          = (get_default_font, wrapDroppingSetter set_default_font, Nothing)\n\n{-# NOINLINE bindTheme__emit_theme_changed #-}\n\nbindTheme__emit_theme_changed :: MethodBind\nbindTheme__emit_theme_changed\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"_emit_theme_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_emit_theme_changed ::\n                      (Theme :< cls, Object :< cls) => cls -> IO ()\n_emit_theme_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme__emit_theme_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"_emit_theme_changed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Theme._emit_theme_changed\n\n{-# NOINLINE bindTheme_clear #-}\n\n-- | Clears all values on the theme.\nbindTheme_clear :: MethodBind\nbindTheme_clear\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears all values on the theme.\nclear :: (Theme :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_clear (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Theme.clear\n\n{-# NOINLINE bindTheme_clear_color #-}\n\n-- | Clears the @Color@ at @name@ if the theme has @type@.\nbindTheme_clear_color :: MethodBind\nbindTheme_clear_color\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"clear_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears the @Color@ at @name@ if the theme has @type@.\nclear_color ::\n              (Theme :< cls, Object :< cls) =>\n              cls -> GodotString -> GodotString -> IO ()\nclear_color cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_clear_color (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"clear_color\" '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Theme.clear_color\n\n{-# NOINLINE bindTheme_clear_constant #-}\n\n-- | Clears the constant at @name@ if the theme has @type@.\nbindTheme_clear_constant :: MethodBind\nbindTheme_clear_constant\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"clear_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears the constant at @name@ if the theme has @type@.\nclear_constant ::\n                 (Theme :< cls, Object :< cls) =>\n                 cls -> GodotString -> GodotString -> IO ()\nclear_constant cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_clear_constant (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"clear_constant\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Theme.clear_constant\n\n{-# NOINLINE bindTheme_clear_font #-}\n\n-- | Clears the @Font@ at @name@ if the theme has @type@.\nbindTheme_clear_font :: MethodBind\nbindTheme_clear_font\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"clear_font\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears the @Font@ at @name@ if the theme has @type@.\nclear_font ::\n             (Theme :< cls, Object :< cls) =>\n             cls -> GodotString -> GodotString -> IO ()\nclear_font cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_clear_font (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"clear_font\" '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Theme.clear_font\n\n{-# NOINLINE bindTheme_clear_icon #-}\n\n-- | Clears the icon at @name@ if the theme has @type@.\nbindTheme_clear_icon :: MethodBind\nbindTheme_clear_icon\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"clear_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears the icon at @name@ if the theme has @type@.\nclear_icon ::\n             (Theme :< cls, Object :< cls) =>\n             cls -> GodotString -> GodotString -> IO ()\nclear_icon cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_clear_icon (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"clear_icon\" '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Theme.clear_icon\n\n{-# NOINLINE bindTheme_clear_stylebox #-}\n\n-- | Clears @StyleBox@ at @name@ if the theme has @type@.\nbindTheme_clear_stylebox :: MethodBind\nbindTheme_clear_stylebox\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"clear_stylebox\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears @StyleBox@ at @name@ if the theme has @type@.\nclear_stylebox ::\n                 (Theme :< cls, Object :< cls) =>\n                 cls -> GodotString -> GodotString -> IO ()\nclear_stylebox cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_clear_stylebox (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"clear_stylebox\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Theme.clear_stylebox\n\n{-# NOINLINE bindTheme_copy_default_theme #-}\n\n-- | Sets the theme's values to a copy of the default theme values.\nbindTheme_copy_default_theme :: MethodBind\nbindTheme_copy_default_theme\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"copy_default_theme\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the theme's values to a copy of the default theme values.\ncopy_default_theme :: (Theme :< cls, Object :< cls) => cls -> IO ()\ncopy_default_theme cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_copy_default_theme (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"copy_default_theme\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Theme.copy_default_theme\n\n{-# NOINLINE bindTheme_copy_theme #-}\n\n-- | Sets the theme's values to a copy of a given theme.\nbindTheme_copy_theme :: MethodBind\nbindTheme_copy_theme\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"copy_theme\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the theme's values to a copy of a given theme.\ncopy_theme ::\n             (Theme :< cls, Object :< cls) => cls -> Theme -> IO ()\ncopy_theme cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_copy_theme (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"copy_theme\" '[Theme] (IO ()) where\n        nodeMethod = Godot.Core.Theme.copy_theme\n\n{-# NOINLINE bindTheme_get_color #-}\n\n-- | Returns the @Color@ at @name@ if the theme has @type@.\nbindTheme_get_color :: MethodBind\nbindTheme_get_color\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"get_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Color@ at @name@ if the theme has @type@.\nget_color ::\n            (Theme :< cls, Object :< cls) =>\n            cls -> GodotString -> GodotString -> IO Color\nget_color cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_get_color (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"get_color\" '[GodotString, GodotString]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.Theme.get_color\n\n{-# NOINLINE bindTheme_get_color_list #-}\n\n-- | Returns all the @Color@s as a @PoolStringArray@ filled with each @Color@'s name, for use in @method get_color@, if the theme has @type@.\nbindTheme_get_color_list :: MethodBind\nbindTheme_get_color_list\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"get_color_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns all the @Color@s as a @PoolStringArray@ filled with each @Color@'s name, for use in @method get_color@, if the theme has @type@.\nget_color_list ::\n                 (Theme :< cls, Object :< cls) =>\n                 cls -> GodotString -> IO PoolStringArray\nget_color_list cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_get_color_list (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"get_color_list\" '[GodotString]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.Theme.get_color_list\n\n{-# NOINLINE bindTheme_get_constant #-}\n\n-- | Returns the constant at @name@ if the theme has @type@.\nbindTheme_get_constant :: MethodBind\nbindTheme_get_constant\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"get_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the constant at @name@ if the theme has @type@.\nget_constant ::\n               (Theme :< cls, Object :< cls) =>\n               cls -> GodotString -> GodotString -> IO Int\nget_constant cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_get_constant (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"get_constant\"\n           '[GodotString, GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Theme.get_constant\n\n{-# NOINLINE bindTheme_get_constant_list #-}\n\n-- | Returns all the constants as a @PoolStringArray@ filled with each constant's name, for use in @method get_constant@, if the theme has @type@.\nbindTheme_get_constant_list :: MethodBind\nbindTheme_get_constant_list\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"get_constant_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns all the constants as a @PoolStringArray@ filled with each constant's name, for use in @method get_constant@, if the theme has @type@.\nget_constant_list ::\n                    (Theme :< cls, Object :< cls) =>\n                    cls -> GodotString -> IO PoolStringArray\nget_constant_list cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_get_constant_list (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"get_constant_list\" '[GodotString]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.Theme.get_constant_list\n\n{-# NOINLINE bindTheme_get_default_font #-}\n\n-- | The theme's default font.\nbindTheme_get_default_font :: MethodBind\nbindTheme_get_default_font\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"get_default_font\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The theme's default font.\nget_default_font :: (Theme :< cls, Object :< cls) => cls -> IO Font\nget_default_font cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_get_default_font (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"get_default_font\" '[] (IO Font) where\n        nodeMethod = Godot.Core.Theme.get_default_font\n\n{-# NOINLINE bindTheme_get_font #-}\n\n-- | Returns the @Font@ at @name@ if the theme has @type@.\nbindTheme_get_font :: MethodBind\nbindTheme_get_font\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"get_font\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Font@ at @name@ if the theme has @type@.\nget_font ::\n           (Theme :< cls, Object :< cls) =>\n           cls -> GodotString -> GodotString -> IO Font\nget_font cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_get_font (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"get_font\" '[GodotString, GodotString]\n           (IO Font)\n         where\n        nodeMethod = Godot.Core.Theme.get_font\n\n{-# NOINLINE bindTheme_get_font_list #-}\n\n-- | Returns all the @Font@s as a @PoolStringArray@ filled with each @Font@'s name, for use in @method get_font@, if the theme has @type@.\nbindTheme_get_font_list :: MethodBind\nbindTheme_get_font_list\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"get_font_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns all the @Font@s as a @PoolStringArray@ filled with each @Font@'s name, for use in @method get_font@, if the theme has @type@.\nget_font_list ::\n                (Theme :< cls, Object :< cls) =>\n                cls -> GodotString -> IO PoolStringArray\nget_font_list cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_get_font_list (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"get_font_list\" '[GodotString]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.Theme.get_font_list\n\n{-# NOINLINE bindTheme_get_icon #-}\n\n-- | Returns the icon @Texture@ at @name@ if the theme has @type@.\nbindTheme_get_icon :: MethodBind\nbindTheme_get_icon\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"get_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the icon @Texture@ at @name@ if the theme has @type@.\nget_icon ::\n           (Theme :< cls, Object :< cls) =>\n           cls -> GodotString -> GodotString -> IO Texture\nget_icon cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_get_icon (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"get_icon\" '[GodotString, GodotString]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.Theme.get_icon\n\n{-# NOINLINE bindTheme_get_icon_list #-}\n\n-- | Returns all the icons as a @PoolStringArray@ filled with each @Texture@'s name, for use in @method get_icon@, if the theme has @type@.\nbindTheme_get_icon_list :: MethodBind\nbindTheme_get_icon_list\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"get_icon_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns all the icons as a @PoolStringArray@ filled with each @Texture@'s name, for use in @method get_icon@, if the theme has @type@.\nget_icon_list ::\n                (Theme :< cls, Object :< cls) =>\n                cls -> GodotString -> IO PoolStringArray\nget_icon_list cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_get_icon_list (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"get_icon_list\" '[GodotString]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.Theme.get_icon_list\n\n{-# NOINLINE bindTheme_get_stylebox #-}\n\n-- | Returns the icon @StyleBox@ at @name@ if the theme has @type@.\nbindTheme_get_stylebox :: MethodBind\nbindTheme_get_stylebox\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"get_stylebox\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the icon @StyleBox@ at @name@ if the theme has @type@.\nget_stylebox ::\n               (Theme :< cls, Object :< cls) =>\n               cls -> GodotString -> GodotString -> IO StyleBox\nget_stylebox cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_get_stylebox (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"get_stylebox\"\n           '[GodotString, GodotString]\n           (IO StyleBox)\n         where\n        nodeMethod = Godot.Core.Theme.get_stylebox\n\n{-# NOINLINE bindTheme_get_stylebox_list #-}\n\n-- | Returns all the @StyleBox@s as a @PoolStringArray@ filled with each @StyleBox@'s name, for use in @method get_stylebox@, if the theme has @type@.\nbindTheme_get_stylebox_list :: MethodBind\nbindTheme_get_stylebox_list\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"get_stylebox_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns all the @StyleBox@s as a @PoolStringArray@ filled with each @StyleBox@'s name, for use in @method get_stylebox@, if the theme has @type@.\nget_stylebox_list ::\n                    (Theme :< cls, Object :< cls) =>\n                    cls -> GodotString -> IO PoolStringArray\nget_stylebox_list cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_get_stylebox_list (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"get_stylebox_list\" '[GodotString]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.Theme.get_stylebox_list\n\n{-# NOINLINE bindTheme_get_stylebox_types #-}\n\n-- | Returns all the @StyleBox@ types as a @PoolStringArray@ filled with each @StyleBox@'s type, for use in @method get_stylebox@ and/or @method get_stylebox_list@, if the theme has @type@.\nbindTheme_get_stylebox_types :: MethodBind\nbindTheme_get_stylebox_types\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"get_stylebox_types\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns all the @StyleBox@ types as a @PoolStringArray@ filled with each @StyleBox@'s type, for use in @method get_stylebox@ and/or @method get_stylebox_list@, if the theme has @type@.\nget_stylebox_types ::\n                     (Theme :< cls, Object :< cls) => cls -> IO PoolStringArray\nget_stylebox_types cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_get_stylebox_types (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"get_stylebox_types\" '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.Theme.get_stylebox_types\n\n{-# NOINLINE bindTheme_get_type_list #-}\n\n-- | Returns all the types in @type@ as a @PoolStringArray@ for use in any of the @get_*@ functions, if the theme has @type@.\nbindTheme_get_type_list :: MethodBind\nbindTheme_get_type_list\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"get_type_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns all the types in @type@ as a @PoolStringArray@ for use in any of the @get_*@ functions, if the theme has @type@.\nget_type_list ::\n                (Theme :< cls, Object :< cls) =>\n                cls -> GodotString -> IO PoolStringArray\nget_type_list cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_get_type_list (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"get_type_list\" '[GodotString]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.Theme.get_type_list\n\n{-# NOINLINE bindTheme_has_color #-}\n\n-- | Returns @true@ if @Color@ with @name@ is in @type@.\n--   \t\t\t\tReturns @false@ if the theme does not have @type@.\nbindTheme_has_color :: MethodBind\nbindTheme_has_color\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"has_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if @Color@ with @name@ is in @type@.\n--   \t\t\t\tReturns @false@ if the theme does not have @type@.\nhas_color ::\n            (Theme :< cls, Object :< cls) =>\n            cls -> GodotString -> GodotString -> IO Bool\nhas_color cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_has_color (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"has_color\" '[GodotString, GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Theme.has_color\n\n{-# NOINLINE bindTheme_has_constant #-}\n\n-- | Returns @true@ if constant with @name@ is in @type@.\n--   \t\t\t\tReturns @false@ if the theme does not have @type@.\nbindTheme_has_constant :: MethodBind\nbindTheme_has_constant\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"has_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if constant with @name@ is in @type@.\n--   \t\t\t\tReturns @false@ if the theme does not have @type@.\nhas_constant ::\n               (Theme :< cls, Object :< cls) =>\n               cls -> GodotString -> GodotString -> IO Bool\nhas_constant cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_has_constant (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"has_constant\"\n           '[GodotString, GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Theme.has_constant\n\n{-# NOINLINE bindTheme_has_font #-}\n\n-- | Returns @true@ if @Font@ with @name@ is in @type@.\n--   \t\t\t\tReturns @false@ if the theme does not have @type@.\nbindTheme_has_font :: MethodBind\nbindTheme_has_font\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"has_font\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if @Font@ with @name@ is in @type@.\n--   \t\t\t\tReturns @false@ if the theme does not have @type@.\nhas_font ::\n           (Theme :< cls, Object :< cls) =>\n           cls -> GodotString -> GodotString -> IO Bool\nhas_font cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_has_font (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"has_font\" '[GodotString, GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Theme.has_font\n\n{-# NOINLINE bindTheme_has_icon #-}\n\n-- | Returns @true@ if icon @Texture@ with @name@ is in @type@.\n--   \t\t\t\tReturns @false@ if the theme does not have @type@.\nbindTheme_has_icon :: MethodBind\nbindTheme_has_icon\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"has_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if icon @Texture@ with @name@ is in @type@.\n--   \t\t\t\tReturns @false@ if the theme does not have @type@.\nhas_icon ::\n           (Theme :< cls, Object :< cls) =>\n           cls -> GodotString -> GodotString -> IO Bool\nhas_icon cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_has_icon (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"has_icon\" '[GodotString, GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Theme.has_icon\n\n{-# NOINLINE bindTheme_has_stylebox #-}\n\n-- | Returns @true@ if @StyleBox@ with @name@ is in @type@.\n--   \t\t\t\tReturns @false@ if the theme does not have @type@.\nbindTheme_has_stylebox :: MethodBind\nbindTheme_has_stylebox\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"has_stylebox\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if @StyleBox@ with @name@ is in @type@.\n--   \t\t\t\tReturns @false@ if the theme does not have @type@.\nhas_stylebox ::\n               (Theme :< cls, Object :< cls) =>\n               cls -> GodotString -> GodotString -> IO Bool\nhas_stylebox cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_has_stylebox (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"has_stylebox\"\n           '[GodotString, GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Theme.has_stylebox\n\n{-# NOINLINE bindTheme_set_color #-}\n\n-- | Sets the theme's @Color@ to @color@ at @name@ in @type@.\n--   \t\t\t\tDoes nothing if the theme does not have @type@.\nbindTheme_set_color :: MethodBind\nbindTheme_set_color\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"set_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the theme's @Color@ to @color@ at @name@ in @type@.\n--   \t\t\t\tDoes nothing if the theme does not have @type@.\nset_color ::\n            (Theme :< cls, Object :< cls) =>\n            cls -> GodotString -> GodotString -> Color -> IO ()\nset_color cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_set_color (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"set_color\"\n           '[GodotString, GodotString, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Theme.set_color\n\n{-# NOINLINE bindTheme_set_constant #-}\n\n-- | Sets the theme's constant to @constant@ at @name@ in @type@.\n--   \t\t\t\tDoes nothing if the theme does not have @type@.\nbindTheme_set_constant :: MethodBind\nbindTheme_set_constant\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"set_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the theme's constant to @constant@ at @name@ in @type@.\n--   \t\t\t\tDoes nothing if the theme does not have @type@.\nset_constant ::\n               (Theme :< cls, Object :< cls) =>\n               cls -> GodotString -> GodotString -> Int -> IO ()\nset_constant cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_set_constant (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"set_constant\"\n           '[GodotString, GodotString, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Theme.set_constant\n\n{-# NOINLINE bindTheme_set_default_font #-}\n\n-- | The theme's default font.\nbindTheme_set_default_font :: MethodBind\nbindTheme_set_default_font\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"set_default_font\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The theme's default font.\nset_default_font ::\n                   (Theme :< cls, Object :< cls) => cls -> Font -> IO ()\nset_default_font cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_set_default_font (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"set_default_font\" '[Font] (IO ()) where\n        nodeMethod = Godot.Core.Theme.set_default_font\n\n{-# NOINLINE bindTheme_set_font #-}\n\n-- | Sets the theme's @Font@ to @font@ at @name@ in @type@.\n--   \t\t\t\tDoes nothing if the theme does not have @type@.\nbindTheme_set_font :: MethodBind\nbindTheme_set_font\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"set_font\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the theme's @Font@ to @font@ at @name@ in @type@.\n--   \t\t\t\tDoes nothing if the theme does not have @type@.\nset_font ::\n           (Theme :< cls, Object :< cls) =>\n           cls -> GodotString -> GodotString -> Font -> IO ()\nset_font cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_set_font (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"set_font\"\n           '[GodotString, GodotString, Font]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Theme.set_font\n\n{-# NOINLINE bindTheme_set_icon #-}\n\n-- | Sets the theme's icon @Texture@ to @texture@ at @name@ in @type@.\n--   \t\t\t\tDoes nothing if the theme does not have @type@.\nbindTheme_set_icon :: MethodBind\nbindTheme_set_icon\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"set_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the theme's icon @Texture@ to @texture@ at @name@ in @type@.\n--   \t\t\t\tDoes nothing if the theme does not have @type@.\nset_icon ::\n           (Theme :< cls, Object :< cls) =>\n           cls -> GodotString -> GodotString -> Texture -> IO ()\nset_icon cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_set_icon (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"set_icon\"\n           '[GodotString, GodotString, Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Theme.set_icon\n\n{-# NOINLINE bindTheme_set_stylebox #-}\n\n-- | Sets theme's @StyleBox@ to @stylebox@ at @name@ in @type@.\n--   \t\t\t\tDoes nothing if the theme does not have @type@.\nbindTheme_set_stylebox :: MethodBind\nbindTheme_set_stylebox\n  = unsafePerformIO $\n      withCString \"Theme\" $\n        \\ clsNamePtr ->\n          withCString \"set_stylebox\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets theme's @StyleBox@ to @stylebox@ at @name@ in @type@.\n--   \t\t\t\tDoes nothing if the theme does not have @type@.\nset_stylebox ::\n               (Theme :< cls, Object :< cls) =>\n               cls -> GodotString -> GodotString -> StyleBox -> IO ()\nset_stylebox cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTheme_set_stylebox (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Theme \"set_stylebox\"\n           '[GodotString, GodotString, StyleBox]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Theme.set_stylebox"
  },
  {
    "path": "src/Godot/Core/Thread.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Thread\n       (Godot.Core.Thread._PRIORITY_NORMAL,\n        Godot.Core.Thread._PRIORITY_LOW, Godot.Core.Thread._PRIORITY_HIGH,\n        Godot.Core.Thread.get_id, Godot.Core.Thread.is_active,\n        Godot.Core.Thread.start, Godot.Core.Thread.wait_to_finish)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n_PRIORITY_NORMAL :: Int\n_PRIORITY_NORMAL = 1\n\n_PRIORITY_LOW :: Int\n_PRIORITY_LOW = 0\n\n_PRIORITY_HIGH :: Int\n_PRIORITY_HIGH = 2\n\n{-# NOINLINE bindThread_get_id #-}\n\n-- | Returns the current @Thread@'s ID, uniquely identifying it among all threads. If the @Thread@ is not running this returns an empty string.\nbindThread_get_id :: MethodBind\nbindThread_get_id\n  = unsafePerformIO $\n      withCString \"_Thread\" $\n        \\ clsNamePtr ->\n          withCString \"get_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current @Thread@'s ID, uniquely identifying it among all threads. If the @Thread@ is not running this returns an empty string.\nget_id :: (Thread :< cls, Object :< cls) => cls -> IO GodotString\nget_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindThread_get_id (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Thread \"get_id\" '[] (IO GodotString) where\n        nodeMethod = Godot.Core.Thread.get_id\n\n{-# NOINLINE bindThread_is_active #-}\n\n-- | Returns @true@ if this @Thread@ is currently active. An active @Thread@ cannot start work on a new method but can be joined with @method wait_to_finish@.\nbindThread_is_active :: MethodBind\nbindThread_is_active\n  = unsafePerformIO $\n      withCString \"_Thread\" $\n        \\ clsNamePtr ->\n          withCString \"is_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this @Thread@ is currently active. An active @Thread@ cannot start work on a new method but can be joined with @method wait_to_finish@.\nis_active :: (Thread :< cls, Object :< cls) => cls -> IO Bool\nis_active cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindThread_is_active (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Thread \"is_active\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Thread.is_active\n\n{-# NOINLINE bindThread_start #-}\n\n-- | Starts a new @Thread@ that runs @method@ on object @instance@ with @userdata@ passed as an argument. Even if no userdata is passed, @method@ must accept one argument and it will be null. The @priority@ of the @Thread@ can be changed by passing a value from the @enum Priority@ enum.\n--   \t\t\t\tReturns @OK@ on success, or @ERR_CANT_CREATE@ on failure.\nbindThread_start :: MethodBind\nbindThread_start\n  = unsafePerformIO $\n      withCString \"_Thread\" $\n        \\ clsNamePtr ->\n          withCString \"start\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Starts a new @Thread@ that runs @method@ on object @instance@ with @userdata@ passed as an argument. Even if no userdata is passed, @method@ must accept one argument and it will be null. The @priority@ of the @Thread@ can be changed by passing a value from the @enum Priority@ enum.\n--   \t\t\t\tReturns @OK@ on success, or @ERR_CANT_CREATE@ on failure.\nstart ::\n        (Thread :< cls, Object :< cls) =>\n        cls ->\n          Object -> GodotString -> Maybe GodotVariant -> Maybe Int -> IO Int\nstart cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, maybe VariantNil toVariant arg3,\n       maybe (VariantInt (1)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindThread_start (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Thread \"start\"\n           '[Object, GodotString, Maybe GodotVariant, Maybe Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Thread.start\n\n{-# NOINLINE bindThread_wait_to_finish #-}\n\n-- | Joins the @Thread@ and waits for it to finish. Returns what the method called returned.\nbindThread_wait_to_finish :: MethodBind\nbindThread_wait_to_finish\n  = unsafePerformIO $\n      withCString \"_Thread\" $\n        \\ clsNamePtr ->\n          withCString \"wait_to_finish\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Joins the @Thread@ and waits for it to finish. Returns what the method called returned.\nwait_to_finish ::\n                 (Thread :< cls, Object :< cls) => cls -> IO GodotVariant\nwait_to_finish cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindThread_wait_to_finish (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Thread \"wait_to_finish\" '[] (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Thread.wait_to_finish"
  },
  {
    "path": "src/Godot/Core/TileMap.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.TileMap\n       (Godot.Core.TileMap._MODE_CUSTOM,\n        Godot.Core.TileMap._HALF_OFFSET_Y,\n        Godot.Core.TileMap._HALF_OFFSET_NEGATIVE_X,\n        Godot.Core.TileMap._MODE_SQUARE,\n        Godot.Core.TileMap._HALF_OFFSET_NEGATIVE_Y,\n        Godot.Core.TileMap._TILE_ORIGIN_BOTTOM_LEFT,\n        Godot.Core.TileMap._TILE_ORIGIN_CENTER,\n        Godot.Core.TileMap._HALF_OFFSET_DISABLED,\n        Godot.Core.TileMap._TILE_ORIGIN_TOP_LEFT,\n        Godot.Core.TileMap._MODE_ISOMETRIC,\n        Godot.Core.TileMap._INVALID_CELL,\n        Godot.Core.TileMap._HALF_OFFSET_X,\n        Godot.Core.TileMap.sig_settings_changed,\n        Godot.Core.TileMap._clear_quadrants,\n        Godot.Core.TileMap._get_old_cell_size,\n        Godot.Core.TileMap._get_tile_data,\n        Godot.Core.TileMap._recreate_quadrants,\n        Godot.Core.TileMap._set_celld,\n        Godot.Core.TileMap._set_old_cell_size,\n        Godot.Core.TileMap._set_tile_data, Godot.Core.TileMap.clear,\n        Godot.Core.TileMap.fix_invalid_tiles, Godot.Core.TileMap.get_cell,\n        Godot.Core.TileMap.get_cell_autotile_coord,\n        Godot.Core.TileMap.get_cell_size, Godot.Core.TileMap.get_cellv,\n        Godot.Core.TileMap.get_clip_uv,\n        Godot.Core.TileMap.get_collision_bounce,\n        Godot.Core.TileMap.get_collision_friction,\n        Godot.Core.TileMap.get_collision_layer,\n        Godot.Core.TileMap.get_collision_layer_bit,\n        Godot.Core.TileMap.get_collision_mask,\n        Godot.Core.TileMap.get_collision_mask_bit,\n        Godot.Core.TileMap.get_collision_use_kinematic,\n        Godot.Core.TileMap.get_collision_use_parent,\n        Godot.Core.TileMap.get_custom_transform,\n        Godot.Core.TileMap.get_half_offset, Godot.Core.TileMap.get_mode,\n        Godot.Core.TileMap.get_occluder_light_mask,\n        Godot.Core.TileMap.get_quadrant_size,\n        Godot.Core.TileMap.get_tile_origin, Godot.Core.TileMap.get_tileset,\n        Godot.Core.TileMap.get_used_cells,\n        Godot.Core.TileMap.get_used_cells_by_id,\n        Godot.Core.TileMap.get_used_rect,\n        Godot.Core.TileMap.is_cell_transposed,\n        Godot.Core.TileMap.is_cell_x_flipped,\n        Godot.Core.TileMap.is_cell_y_flipped,\n        Godot.Core.TileMap.is_centered_textures_enabled,\n        Godot.Core.TileMap.is_compatibility_mode_enabled,\n        Godot.Core.TileMap.is_y_sort_mode_enabled,\n        Godot.Core.TileMap.map_to_world, Godot.Core.TileMap.set_cell,\n        Godot.Core.TileMap.set_cell_size, Godot.Core.TileMap.set_cellv,\n        Godot.Core.TileMap.set_centered_textures,\n        Godot.Core.TileMap.set_clip_uv,\n        Godot.Core.TileMap.set_collision_bounce,\n        Godot.Core.TileMap.set_collision_friction,\n        Godot.Core.TileMap.set_collision_layer,\n        Godot.Core.TileMap.set_collision_layer_bit,\n        Godot.Core.TileMap.set_collision_mask,\n        Godot.Core.TileMap.set_collision_mask_bit,\n        Godot.Core.TileMap.set_collision_use_kinematic,\n        Godot.Core.TileMap.set_collision_use_parent,\n        Godot.Core.TileMap.set_compatibility_mode,\n        Godot.Core.TileMap.set_custom_transform,\n        Godot.Core.TileMap.set_half_offset, Godot.Core.TileMap.set_mode,\n        Godot.Core.TileMap.set_occluder_light_mask,\n        Godot.Core.TileMap.set_quadrant_size,\n        Godot.Core.TileMap.set_tile_origin, Godot.Core.TileMap.set_tileset,\n        Godot.Core.TileMap.set_y_sort_mode,\n        Godot.Core.TileMap.update_bitmask_area,\n        Godot.Core.TileMap.update_bitmask_region,\n        Godot.Core.TileMap.update_dirty_quadrants,\n        Godot.Core.TileMap.world_to_map)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\n_MODE_CUSTOM :: Int\n_MODE_CUSTOM = 2\n\n_HALF_OFFSET_Y :: Int\n_HALF_OFFSET_Y = 1\n\n_HALF_OFFSET_NEGATIVE_X :: Int\n_HALF_OFFSET_NEGATIVE_X = 3\n\n_MODE_SQUARE :: Int\n_MODE_SQUARE = 0\n\n_HALF_OFFSET_NEGATIVE_Y :: Int\n_HALF_OFFSET_NEGATIVE_Y = 4\n\n_TILE_ORIGIN_BOTTOM_LEFT :: Int\n_TILE_ORIGIN_BOTTOM_LEFT = 2\n\n_TILE_ORIGIN_CENTER :: Int\n_TILE_ORIGIN_CENTER = 1\n\n_HALF_OFFSET_DISABLED :: Int\n_HALF_OFFSET_DISABLED = 2\n\n_TILE_ORIGIN_TOP_LEFT :: Int\n_TILE_ORIGIN_TOP_LEFT = 0\n\n_MODE_ISOMETRIC :: Int\n_MODE_ISOMETRIC = 1\n\n_INVALID_CELL :: Int\n_INVALID_CELL = -1\n\n_HALF_OFFSET_X :: Int\n_HALF_OFFSET_X = 0\n\n-- | Emitted when a tilemap setting has changed.\nsig_settings_changed :: Godot.Internal.Dispatch.Signal TileMap\nsig_settings_changed\n  = Godot.Internal.Dispatch.Signal \"settings_changed\"\n\ninstance NodeSignal TileMap \"settings_changed\" '[]\n\ninstance NodeProperty TileMap \"cell_clip_uv\" Bool 'False where\n        nodeProperty\n          = (get_clip_uv, wrapDroppingSetter set_clip_uv, Nothing)\n\ninstance NodeProperty TileMap \"cell_custom_transform\" Transform2d\n           'False\n         where\n        nodeProperty\n          = (get_custom_transform, wrapDroppingSetter set_custom_transform,\n             Nothing)\n\ninstance NodeProperty TileMap \"cell_half_offset\" Int 'False where\n        nodeProperty\n          = (get_half_offset, wrapDroppingSetter set_half_offset, Nothing)\n\ninstance NodeProperty TileMap \"cell_quadrant_size\" Int 'False where\n        nodeProperty\n          = (get_quadrant_size, wrapDroppingSetter set_quadrant_size,\n             Nothing)\n\ninstance NodeProperty TileMap \"cell_size\" Vector2 'False where\n        nodeProperty\n          = (get_cell_size, wrapDroppingSetter set_cell_size, Nothing)\n\ninstance NodeProperty TileMap \"cell_tile_origin\" Int 'False where\n        nodeProperty\n          = (get_tile_origin, wrapDroppingSetter set_tile_origin, Nothing)\n\ninstance NodeProperty TileMap \"cell_y_sort\" Bool 'False where\n        nodeProperty\n          = (is_y_sort_mode_enabled, wrapDroppingSetter set_y_sort_mode,\n             Nothing)\n\ninstance NodeProperty TileMap \"centered_textures\" Bool 'False where\n        nodeProperty\n          = (is_centered_textures_enabled,\n             wrapDroppingSetter set_centered_textures, Nothing)\n\ninstance NodeProperty TileMap \"collision_bounce\" Float 'False where\n        nodeProperty\n          = (get_collision_bounce, wrapDroppingSetter set_collision_bounce,\n             Nothing)\n\ninstance NodeProperty TileMap \"collision_friction\" Float 'False\n         where\n        nodeProperty\n          = (get_collision_friction,\n             wrapDroppingSetter set_collision_friction, Nothing)\n\ninstance NodeProperty TileMap \"collision_layer\" Int 'False where\n        nodeProperty\n          = (get_collision_layer, wrapDroppingSetter set_collision_layer,\n             Nothing)\n\ninstance NodeProperty TileMap \"collision_mask\" Int 'False where\n        nodeProperty\n          = (get_collision_mask, wrapDroppingSetter set_collision_mask,\n             Nothing)\n\ninstance NodeProperty TileMap \"collision_use_kinematic\" Bool 'False\n         where\n        nodeProperty\n          = (get_collision_use_kinematic,\n             wrapDroppingSetter set_collision_use_kinematic, Nothing)\n\ninstance NodeProperty TileMap \"collision_use_parent\" Bool 'False\n         where\n        nodeProperty\n          = (get_collision_use_parent,\n             wrapDroppingSetter set_collision_use_parent, Nothing)\n\ninstance NodeProperty TileMap \"compatibility_mode\" Bool 'False\n         where\n        nodeProperty\n          = (is_compatibility_mode_enabled,\n             wrapDroppingSetter set_compatibility_mode, Nothing)\n\ninstance NodeProperty TileMap \"mode\" Int 'False where\n        nodeProperty = (get_mode, wrapDroppingSetter set_mode, Nothing)\n\ninstance NodeProperty TileMap \"occluder_light_mask\" Int 'False\n         where\n        nodeProperty\n          = (get_occluder_light_mask,\n             wrapDroppingSetter set_occluder_light_mask, Nothing)\n\ninstance NodeProperty TileMap \"tile_set\" TileSet 'False where\n        nodeProperty\n          = (get_tileset, wrapDroppingSetter set_tileset, Nothing)\n\n{-# NOINLINE bindTileMap__clear_quadrants #-}\n\nbindTileMap__clear_quadrants :: MethodBind\nbindTileMap__clear_quadrants\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"_clear_quadrants\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_clear_quadrants :: (TileMap :< cls, Object :< cls) => cls -> IO ()\n_clear_quadrants cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap__clear_quadrants (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"_clear_quadrants\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TileMap._clear_quadrants\n\n{-# NOINLINE bindTileMap__get_old_cell_size #-}\n\nbindTileMap__get_old_cell_size :: MethodBind\nbindTileMap__get_old_cell_size\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"_get_old_cell_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_old_cell_size ::\n                     (TileMap :< cls, Object :< cls) => cls -> IO Int\n_get_old_cell_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap__get_old_cell_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"_get_old_cell_size\" '[] (IO Int) where\n        nodeMethod = Godot.Core.TileMap._get_old_cell_size\n\n{-# NOINLINE bindTileMap__get_tile_data #-}\n\nbindTileMap__get_tile_data :: MethodBind\nbindTileMap__get_tile_data\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"_get_tile_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_tile_data ::\n                 (TileMap :< cls, Object :< cls) => cls -> IO PoolIntArray\n_get_tile_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap__get_tile_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"_get_tile_data\" '[] (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.TileMap._get_tile_data\n\n{-# NOINLINE bindTileMap__recreate_quadrants #-}\n\nbindTileMap__recreate_quadrants :: MethodBind\nbindTileMap__recreate_quadrants\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"_recreate_quadrants\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_recreate_quadrants ::\n                      (TileMap :< cls, Object :< cls) => cls -> IO ()\n_recreate_quadrants cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap__recreate_quadrants (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"_recreate_quadrants\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TileMap._recreate_quadrants\n\n{-# NOINLINE bindTileMap__set_celld #-}\n\nbindTileMap__set_celld :: MethodBind\nbindTileMap__set_celld\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"_set_celld\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_celld ::\n             (TileMap :< cls, Object :< cls) =>\n             cls -> Vector2 -> Dictionary -> IO ()\n_set_celld cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap__set_celld (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"_set_celld\" '[Vector2, Dictionary]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap._set_celld\n\n{-# NOINLINE bindTileMap__set_old_cell_size #-}\n\nbindTileMap__set_old_cell_size :: MethodBind\nbindTileMap__set_old_cell_size\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"_set_old_cell_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_old_cell_size ::\n                     (TileMap :< cls, Object :< cls) => cls -> Int -> IO ()\n_set_old_cell_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap__set_old_cell_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"_set_old_cell_size\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap._set_old_cell_size\n\n{-# NOINLINE bindTileMap__set_tile_data #-}\n\nbindTileMap__set_tile_data :: MethodBind\nbindTileMap__set_tile_data\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"_set_tile_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_tile_data ::\n                 (TileMap :< cls, Object :< cls) => cls -> PoolIntArray -> IO ()\n_set_tile_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap__set_tile_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"_set_tile_data\" '[PoolIntArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap._set_tile_data\n\n{-# NOINLINE bindTileMap_clear #-}\n\n-- | Clears all cells.\nbindTileMap_clear :: MethodBind\nbindTileMap_clear\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears all cells.\nclear :: (TileMap :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_clear (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TileMap.clear\n\n{-# NOINLINE bindTileMap_fix_invalid_tiles #-}\n\n-- | Clears cells that do not exist in the tileset.\nbindTileMap_fix_invalid_tiles :: MethodBind\nbindTileMap_fix_invalid_tiles\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"fix_invalid_tiles\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears cells that do not exist in the tileset.\nfix_invalid_tiles ::\n                    (TileMap :< cls, Object :< cls) => cls -> IO ()\nfix_invalid_tiles cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_fix_invalid_tiles (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"fix_invalid_tiles\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TileMap.fix_invalid_tiles\n\n{-# NOINLINE bindTileMap_get_cell #-}\n\n-- | Returns the tile index of the given cell. If no tile exists in the cell, returns @INVALID_CELL@.\nbindTileMap_get_cell :: MethodBind\nbindTileMap_get_cell\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_cell\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tile index of the given cell. If no tile exists in the cell, returns @INVALID_CELL@.\nget_cell ::\n           (TileMap :< cls, Object :< cls) => cls -> Int -> Int -> IO Int\nget_cell cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_cell (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_cell\" '[Int, Int] (IO Int) where\n        nodeMethod = Godot.Core.TileMap.get_cell\n\n{-# NOINLINE bindTileMap_get_cell_autotile_coord #-}\n\n-- | Returns the coordinate (subtile column and row) of the autotile variation in the tileset. Returns a zero vector if the cell doesn't have autotiling.\nbindTileMap_get_cell_autotile_coord :: MethodBind\nbindTileMap_get_cell_autotile_coord\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_cell_autotile_coord\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the coordinate (subtile column and row) of the autotile variation in the tileset. Returns a zero vector if the cell doesn't have autotiling.\nget_cell_autotile_coord ::\n                          (TileMap :< cls, Object :< cls) => cls -> Int -> Int -> IO Vector2\nget_cell_autotile_coord cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_cell_autotile_coord\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_cell_autotile_coord\" '[Int, Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.TileMap.get_cell_autotile_coord\n\n{-# NOINLINE bindTileMap_get_cell_size #-}\n\n-- | The TileMap's cell size.\nbindTileMap_get_cell_size :: MethodBind\nbindTileMap_get_cell_size\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_cell_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The TileMap's cell size.\nget_cell_size ::\n                (TileMap :< cls, Object :< cls) => cls -> IO Vector2\nget_cell_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_cell_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_cell_size\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.TileMap.get_cell_size\n\n{-# NOINLINE bindTileMap_get_cellv #-}\n\n-- | Returns the tile index of the cell given by a Vector2. If no tile exists in the cell, returns @INVALID_CELL@.\nbindTileMap_get_cellv :: MethodBind\nbindTileMap_get_cellv\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_cellv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tile index of the cell given by a Vector2. If no tile exists in the cell, returns @INVALID_CELL@.\nget_cellv ::\n            (TileMap :< cls, Object :< cls) => cls -> Vector2 -> IO Int\nget_cellv cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_cellv (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_cellv\" '[Vector2] (IO Int) where\n        nodeMethod = Godot.Core.TileMap.get_cellv\n\n{-# NOINLINE bindTileMap_get_clip_uv #-}\n\n-- | If @true@, the cell's UVs will be clipped.\nbindTileMap_get_clip_uv :: MethodBind\nbindTileMap_get_clip_uv\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_clip_uv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the cell's UVs will be clipped.\nget_clip_uv :: (TileMap :< cls, Object :< cls) => cls -> IO Bool\nget_clip_uv cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_clip_uv (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_clip_uv\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.TileMap.get_clip_uv\n\n{-# NOINLINE bindTileMap_get_collision_bounce #-}\n\n-- | Bounce value for static body collisions (see @collision_use_kinematic@).\nbindTileMap_get_collision_bounce :: MethodBind\nbindTileMap_get_collision_bounce\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_bounce\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Bounce value for static body collisions (see @collision_use_kinematic@).\nget_collision_bounce ::\n                       (TileMap :< cls, Object :< cls) => cls -> IO Float\nget_collision_bounce cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_collision_bounce\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_collision_bounce\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.TileMap.get_collision_bounce\n\n{-# NOINLINE bindTileMap_get_collision_friction #-}\n\n-- | Friction value for static body collisions (see @collision_use_kinematic@).\nbindTileMap_get_collision_friction :: MethodBind\nbindTileMap_get_collision_friction\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_friction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Friction value for static body collisions (see @collision_use_kinematic@).\nget_collision_friction ::\n                         (TileMap :< cls, Object :< cls) => cls -> IO Float\nget_collision_friction cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_collision_friction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_collision_friction\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.TileMap.get_collision_friction\n\n{-# NOINLINE bindTileMap_get_collision_layer #-}\n\n-- | The collision layer(s) for all colliders in the TileMap. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindTileMap_get_collision_layer :: MethodBind\nbindTileMap_get_collision_layer\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The collision layer(s) for all colliders in the TileMap. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nget_collision_layer ::\n                      (TileMap :< cls, Object :< cls) => cls -> IO Int\nget_collision_layer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_collision_layer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_collision_layer\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.TileMap.get_collision_layer\n\n{-# NOINLINE bindTileMap_get_collision_layer_bit #-}\n\n-- | Returns @true@ if the given collision layer bit is set.\nbindTileMap_get_collision_layer_bit :: MethodBind\nbindTileMap_get_collision_layer_bit\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_layer_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the given collision layer bit is set.\nget_collision_layer_bit ::\n                          (TileMap :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_layer_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_collision_layer_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_collision_layer_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TileMap.get_collision_layer_bit\n\n{-# NOINLINE bindTileMap_get_collision_mask #-}\n\n-- | The collision mask(s) for all colliders in the TileMap. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindTileMap_get_collision_mask :: MethodBind\nbindTileMap_get_collision_mask\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The collision mask(s) for all colliders in the TileMap. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nget_collision_mask ::\n                     (TileMap :< cls, Object :< cls) => cls -> IO Int\nget_collision_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_collision_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_collision_mask\" '[] (IO Int) where\n        nodeMethod = Godot.Core.TileMap.get_collision_mask\n\n{-# NOINLINE bindTileMap_get_collision_mask_bit #-}\n\n-- | Returns @true@ if the given collision mask bit is set.\nbindTileMap_get_collision_mask_bit :: MethodBind\nbindTileMap_get_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the given collision mask bit is set.\nget_collision_mask_bit ::\n                         (TileMap :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_collision_mask_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_collision_mask_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TileMap.get_collision_mask_bit\n\n{-# NOINLINE bindTileMap_get_collision_use_kinematic #-}\n\n-- | If @true@, TileMap collisions will be handled as a kinematic body. If @false@, collisions will be handled as static body.\nbindTileMap_get_collision_use_kinematic :: MethodBind\nbindTileMap_get_collision_use_kinematic\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_use_kinematic\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, TileMap collisions will be handled as a kinematic body. If @false@, collisions will be handled as static body.\nget_collision_use_kinematic ::\n                              (TileMap :< cls, Object :< cls) => cls -> IO Bool\nget_collision_use_kinematic cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_collision_use_kinematic\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_collision_use_kinematic\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TileMap.get_collision_use_kinematic\n\n{-# NOINLINE bindTileMap_get_collision_use_parent #-}\n\n-- | If @true@, this tilemap's collision shape will be added to the collision shape of the parent. The parent has to be a @CollisionObject2D@.\nbindTileMap_get_collision_use_parent :: MethodBind\nbindTileMap_get_collision_use_parent\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_collision_use_parent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this tilemap's collision shape will be added to the collision shape of the parent. The parent has to be a @CollisionObject2D@.\nget_collision_use_parent ::\n                           (TileMap :< cls, Object :< cls) => cls -> IO Bool\nget_collision_use_parent cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_collision_use_parent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_collision_use_parent\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TileMap.get_collision_use_parent\n\n{-# NOINLINE bindTileMap_get_custom_transform #-}\n\n-- | The custom @Transform2D@ to be applied to the TileMap's cells.\nbindTileMap_get_custom_transform :: MethodBind\nbindTileMap_get_custom_transform\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_custom_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The custom @Transform2D@ to be applied to the TileMap's cells.\nget_custom_transform ::\n                       (TileMap :< cls, Object :< cls) => cls -> IO Transform2d\nget_custom_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_custom_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_custom_transform\" '[]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.TileMap.get_custom_transform\n\n{-# NOINLINE bindTileMap_get_half_offset #-}\n\n-- | Amount to offset alternating tiles. See @enum HalfOffset@ for possible values.\nbindTileMap_get_half_offset :: MethodBind\nbindTileMap_get_half_offset\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_half_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount to offset alternating tiles. See @enum HalfOffset@ for possible values.\nget_half_offset :: (TileMap :< cls, Object :< cls) => cls -> IO Int\nget_half_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_half_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_half_offset\" '[] (IO Int) where\n        nodeMethod = Godot.Core.TileMap.get_half_offset\n\n{-# NOINLINE bindTileMap_get_mode #-}\n\n-- | The TileMap orientation mode. See @enum Mode@ for possible values.\nbindTileMap_get_mode :: MethodBind\nbindTileMap_get_mode\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The TileMap orientation mode. See @enum Mode@ for possible values.\nget_mode :: (TileMap :< cls, Object :< cls) => cls -> IO Int\nget_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_mode (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.TileMap.get_mode\n\n{-# NOINLINE bindTileMap_get_occluder_light_mask #-}\n\n-- | The light mask assigned to all light occluders in the TileMap. The TileSet's light occluders will cast shadows only from Light2D(s) that have the same light mask(s).\nbindTileMap_get_occluder_light_mask :: MethodBind\nbindTileMap_get_occluder_light_mask\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_occluder_light_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The light mask assigned to all light occluders in the TileMap. The TileSet's light occluders will cast shadows only from Light2D(s) that have the same light mask(s).\nget_occluder_light_mask ::\n                          (TileMap :< cls, Object :< cls) => cls -> IO Int\nget_occluder_light_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_occluder_light_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_occluder_light_mask\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.TileMap.get_occluder_light_mask\n\n{-# NOINLINE bindTileMap_get_quadrant_size #-}\n\n-- | The TileMap's quadrant size. Optimizes drawing by batching, using chunks of this size.\nbindTileMap_get_quadrant_size :: MethodBind\nbindTileMap_get_quadrant_size\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_quadrant_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The TileMap's quadrant size. Optimizes drawing by batching, using chunks of this size.\nget_quadrant_size ::\n                    (TileMap :< cls, Object :< cls) => cls -> IO Int\nget_quadrant_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_quadrant_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_quadrant_size\" '[] (IO Int) where\n        nodeMethod = Godot.Core.TileMap.get_quadrant_size\n\n{-# NOINLINE bindTileMap_get_tile_origin #-}\n\n-- | Position for tile origin. See @enum TileOrigin@ for possible values.\nbindTileMap_get_tile_origin :: MethodBind\nbindTileMap_get_tile_origin\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_tile_origin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Position for tile origin. See @enum TileOrigin@ for possible values.\nget_tile_origin :: (TileMap :< cls, Object :< cls) => cls -> IO Int\nget_tile_origin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_tile_origin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_tile_origin\" '[] (IO Int) where\n        nodeMethod = Godot.Core.TileMap.get_tile_origin\n\n{-# NOINLINE bindTileMap_get_tileset #-}\n\n-- | The assigned @TileSet@.\nbindTileMap_get_tileset :: MethodBind\nbindTileMap_get_tileset\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_tileset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The assigned @TileSet@.\nget_tileset :: (TileMap :< cls, Object :< cls) => cls -> IO TileSet\nget_tileset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_tileset (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_tileset\" '[] (IO TileSet) where\n        nodeMethod = Godot.Core.TileMap.get_tileset\n\n{-# NOINLINE bindTileMap_get_used_cells #-}\n\n-- | Returns a @Vector2@ array with the positions of all cells containing a tile from the tileset (i.e. a tile index different from @-1@).\nbindTileMap_get_used_cells :: MethodBind\nbindTileMap_get_used_cells\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_used_cells\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @Vector2@ array with the positions of all cells containing a tile from the tileset (i.e. a tile index different from @-1@).\nget_used_cells ::\n                 (TileMap :< cls, Object :< cls) => cls -> IO Array\nget_used_cells cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_used_cells (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_used_cells\" '[] (IO Array) where\n        nodeMethod = Godot.Core.TileMap.get_used_cells\n\n{-# NOINLINE bindTileMap_get_used_cells_by_id #-}\n\n-- | Returns an array of all cells with the given tile index specified in @id@.\nbindTileMap_get_used_cells_by_id :: MethodBind\nbindTileMap_get_used_cells_by_id\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_used_cells_by_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of all cells with the given tile index specified in @id@.\nget_used_cells_by_id ::\n                       (TileMap :< cls, Object :< cls) => cls -> Int -> IO Array\nget_used_cells_by_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_used_cells_by_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_used_cells_by_id\" '[Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.TileMap.get_used_cells_by_id\n\n{-# NOINLINE bindTileMap_get_used_rect #-}\n\n-- | Returns a rectangle enclosing the used (non-empty) tiles of the map.\nbindTileMap_get_used_rect :: MethodBind\nbindTileMap_get_used_rect\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_used_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a rectangle enclosing the used (non-empty) tiles of the map.\nget_used_rect :: (TileMap :< cls, Object :< cls) => cls -> IO Rect2\nget_used_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_get_used_rect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"get_used_rect\" '[] (IO Rect2) where\n        nodeMethod = Godot.Core.TileMap.get_used_rect\n\n{-# NOINLINE bindTileMap_is_cell_transposed #-}\n\n-- | Returns @true@ if the given cell is transposed, i.e. the X and Y axes are swapped.\nbindTileMap_is_cell_transposed :: MethodBind\nbindTileMap_is_cell_transposed\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"is_cell_transposed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the given cell is transposed, i.e. the X and Y axes are swapped.\nis_cell_transposed ::\n                     (TileMap :< cls, Object :< cls) => cls -> Int -> Int -> IO Bool\nis_cell_transposed cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_is_cell_transposed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"is_cell_transposed\" '[Int, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TileMap.is_cell_transposed\n\n{-# NOINLINE bindTileMap_is_cell_x_flipped #-}\n\n-- | Returns @true@ if the given cell is flipped in the X axis.\nbindTileMap_is_cell_x_flipped :: MethodBind\nbindTileMap_is_cell_x_flipped\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"is_cell_x_flipped\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the given cell is flipped in the X axis.\nis_cell_x_flipped ::\n                    (TileMap :< cls, Object :< cls) => cls -> Int -> Int -> IO Bool\nis_cell_x_flipped cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_is_cell_x_flipped (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"is_cell_x_flipped\" '[Int, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TileMap.is_cell_x_flipped\n\n{-# NOINLINE bindTileMap_is_cell_y_flipped #-}\n\n-- | Returns @true@ if the given cell is flipped in the Y axis.\nbindTileMap_is_cell_y_flipped :: MethodBind\nbindTileMap_is_cell_y_flipped\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"is_cell_y_flipped\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the given cell is flipped in the Y axis.\nis_cell_y_flipped ::\n                    (TileMap :< cls, Object :< cls) => cls -> Int -> Int -> IO Bool\nis_cell_y_flipped cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_is_cell_y_flipped (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"is_cell_y_flipped\" '[Int, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TileMap.is_cell_y_flipped\n\n{-# NOINLINE bindTileMap_is_centered_textures_enabled #-}\n\n-- | If @true@, the textures will be centered in the middle of each tile. This is useful for certain isometric or top-down modes when textures are made larger or smaller than the tiles (e.g. to avoid flickering on tile edges). The offset is still applied, but from the center of the tile. If used, @compatibility_mode@ is ignored.\n--   \t\t\tIf @false@, the texture position start in the top-left corner unless @compatibility_mode@ is enabled.\nbindTileMap_is_centered_textures_enabled :: MethodBind\nbindTileMap_is_centered_textures_enabled\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"is_centered_textures_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the textures will be centered in the middle of each tile. This is useful for certain isometric or top-down modes when textures are made larger or smaller than the tiles (e.g. to avoid flickering on tile edges). The offset is still applied, but from the center of the tile. If used, @compatibility_mode@ is ignored.\n--   \t\t\tIf @false@, the texture position start in the top-left corner unless @compatibility_mode@ is enabled.\nis_centered_textures_enabled ::\n                               (TileMap :< cls, Object :< cls) => cls -> IO Bool\nis_centered_textures_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_is_centered_textures_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"is_centered_textures_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TileMap.is_centered_textures_enabled\n\n{-# NOINLINE bindTileMap_is_compatibility_mode_enabled #-}\n\n-- | If @true@, the compatibility with the tilemaps made in Godot 3.1 or earlier is maintained (textures move when the tile origin changes and rotate if the texture size is not homogeneous). This mode presents problems when doing @flip_h@, @flip_v@ and @transpose@ tile operations on non-homogeneous isometric tiles (e.g. 2:1), in which the texture could not coincide with the collision, thus it is not recommended for isometric or non-square tiles.\n--   \t\t\tIf @false@, the textures do not move when doing @flip_h@, @flip_v@ operations if no offset is used, nor when changing the tile origin.\n--   \t\t\tThe compatibility mode doesn't work with the @centered_textures@ option, because displacing textures with the @cell_tile_origin@ option or in irregular tiles is not relevant when centering those textures.\nbindTileMap_is_compatibility_mode_enabled :: MethodBind\nbindTileMap_is_compatibility_mode_enabled\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"is_compatibility_mode_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the compatibility with the tilemaps made in Godot 3.1 or earlier is maintained (textures move when the tile origin changes and rotate if the texture size is not homogeneous). This mode presents problems when doing @flip_h@, @flip_v@ and @transpose@ tile operations on non-homogeneous isometric tiles (e.g. 2:1), in which the texture could not coincide with the collision, thus it is not recommended for isometric or non-square tiles.\n--   \t\t\tIf @false@, the textures do not move when doing @flip_h@, @flip_v@ operations if no offset is used, nor when changing the tile origin.\n--   \t\t\tThe compatibility mode doesn't work with the @centered_textures@ option, because displacing textures with the @cell_tile_origin@ option or in irregular tiles is not relevant when centering those textures.\nis_compatibility_mode_enabled ::\n                                (TileMap :< cls, Object :< cls) => cls -> IO Bool\nis_compatibility_mode_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_is_compatibility_mode_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"is_compatibility_mode_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TileMap.is_compatibility_mode_enabled\n\n{-# NOINLINE bindTileMap_is_y_sort_mode_enabled #-}\n\n-- | If @true@, the TileMap's children will be drawn in order of their Y coordinate.\nbindTileMap_is_y_sort_mode_enabled :: MethodBind\nbindTileMap_is_y_sort_mode_enabled\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"is_y_sort_mode_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the TileMap's children will be drawn in order of their Y coordinate.\nis_y_sort_mode_enabled ::\n                         (TileMap :< cls, Object :< cls) => cls -> IO Bool\nis_y_sort_mode_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_is_y_sort_mode_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"is_y_sort_mode_enabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.TileMap.is_y_sort_mode_enabled\n\n{-# NOINLINE bindTileMap_map_to_world #-}\n\n-- | Returns the global position corresponding to the given tilemap (grid-based) coordinates.\n--   \t\t\t\tOptionally, the tilemap's half offset can be ignored.\nbindTileMap_map_to_world :: MethodBind\nbindTileMap_map_to_world\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"map_to_world\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the global position corresponding to the given tilemap (grid-based) coordinates.\n--   \t\t\t\tOptionally, the tilemap's half offset can be ignored.\nmap_to_world ::\n               (TileMap :< cls, Object :< cls) =>\n               cls -> Vector2 -> Maybe Bool -> IO Vector2\nmap_to_world cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_map_to_world (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"map_to_world\" '[Vector2, Maybe Bool]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.TileMap.map_to_world\n\n{-# NOINLINE bindTileMap_set_cell #-}\n\n-- | Sets the tile index for the cell given by a Vector2.\n--   \t\t\t\tAn index of @-1@ clears the cell.\n--   \t\t\t\tOptionally, the tile can also be flipped, transposed, or given autotile coordinates. The autotile coordinate refers to the column and row of the subtile.\n--   \t\t\t\t__Note:__ Data such as navigation polygons and collision shapes are not immediately updated for performance reasons.\n--   \t\t\t\tIf you need these to be immediately updated, you can call @method update_dirty_quadrants@.\n--   \t\t\t\tOverriding this method also overrides it internally, allowing custom logic to be implemented when tiles are placed/removed:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc set_cell(x, y, tile, flip_x=false, flip_y=false, transpose=false, autotile_coord=Vector2())\n--   \t\t\t\t    # Write your custom logic here.\n--   \t\t\t\t    # To call the default method:\n--   \t\t\t\t    .set_cell(x, y, tile, flip_x, flip_y, transpose, autotile_coord)\n--   \t\t\t\t\n--   @\nbindTileMap_set_cell :: MethodBind\nbindTileMap_set_cell\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_cell\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the tile index for the cell given by a Vector2.\n--   \t\t\t\tAn index of @-1@ clears the cell.\n--   \t\t\t\tOptionally, the tile can also be flipped, transposed, or given autotile coordinates. The autotile coordinate refers to the column and row of the subtile.\n--   \t\t\t\t__Note:__ Data such as navigation polygons and collision shapes are not immediately updated for performance reasons.\n--   \t\t\t\tIf you need these to be immediately updated, you can call @method update_dirty_quadrants@.\n--   \t\t\t\tOverriding this method also overrides it internally, allowing custom logic to be implemented when tiles are placed/removed:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc set_cell(x, y, tile, flip_x=false, flip_y=false, transpose=false, autotile_coord=Vector2())\n--   \t\t\t\t    # Write your custom logic here.\n--   \t\t\t\t    # To call the default method:\n--   \t\t\t\t    .set_cell(x, y, tile, flip_x, flip_y, transpose, autotile_coord)\n--   \t\t\t\t\n--   @\nset_cell ::\n           (TileMap :< cls, Object :< cls) =>\n           cls ->\n             Int ->\n               Int ->\n                 Int ->\n                   Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Vector2 -> IO ()\nset_cell cls arg1 arg2 arg3 arg4 arg5 arg6 arg7\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantBool False) toVariant arg4,\n       maybe (VariantBool False) toVariant arg5,\n       maybe (VariantBool False) toVariant arg6,\n       defaultedVariant VariantVector2 (V2 0 0) arg7]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_cell (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_cell\"\n           '[Int, Int, Int, Maybe Bool, Maybe Bool, Maybe Bool, Maybe Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.set_cell\n\n{-# NOINLINE bindTileMap_set_cell_size #-}\n\n-- | The TileMap's cell size.\nbindTileMap_set_cell_size :: MethodBind\nbindTileMap_set_cell_size\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_cell_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The TileMap's cell size.\nset_cell_size ::\n                (TileMap :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_cell_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_cell_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_cell_size\" '[Vector2] (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.set_cell_size\n\n{-# NOINLINE bindTileMap_set_cellv #-}\n\n-- | Sets the tile index for the given cell.\n--   \t\t\t\tAn index of @-1@ clears the cell.\n--   \t\t\t\tOptionally, the tile can also be flipped or transposed.\n--   \t\t\t\t__Note:__ Data such as navigation polygons and collision shapes are not immediately updated for performance reasons.\n--   \t\t\t\tIf you need these to be immediately updated, you can call @method update_dirty_quadrants@.\nbindTileMap_set_cellv :: MethodBind\nbindTileMap_set_cellv\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_cellv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the tile index for the given cell.\n--   \t\t\t\tAn index of @-1@ clears the cell.\n--   \t\t\t\tOptionally, the tile can also be flipped or transposed.\n--   \t\t\t\t__Note:__ Data such as navigation polygons and collision shapes are not immediately updated for performance reasons.\n--   \t\t\t\tIf you need these to be immediately updated, you can call @method update_dirty_quadrants@.\nset_cellv ::\n            (TileMap :< cls, Object :< cls) =>\n            cls ->\n              Vector2 -> Int -> Maybe Bool -> Maybe Bool -> Maybe Bool -> IO ()\nset_cellv cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool False) toVariant arg3,\n       maybe (VariantBool False) toVariant arg4,\n       maybe (VariantBool False) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_cellv (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_cellv\"\n           '[Vector2, Int, Maybe Bool, Maybe Bool, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.set_cellv\n\n{-# NOINLINE bindTileMap_set_centered_textures #-}\n\n-- | If @true@, the textures will be centered in the middle of each tile. This is useful for certain isometric or top-down modes when textures are made larger or smaller than the tiles (e.g. to avoid flickering on tile edges). The offset is still applied, but from the center of the tile. If used, @compatibility_mode@ is ignored.\n--   \t\t\tIf @false@, the texture position start in the top-left corner unless @compatibility_mode@ is enabled.\nbindTileMap_set_centered_textures :: MethodBind\nbindTileMap_set_centered_textures\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_centered_textures\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the textures will be centered in the middle of each tile. This is useful for certain isometric or top-down modes when textures are made larger or smaller than the tiles (e.g. to avoid flickering on tile edges). The offset is still applied, but from the center of the tile. If used, @compatibility_mode@ is ignored.\n--   \t\t\tIf @false@, the texture position start in the top-left corner unless @compatibility_mode@ is enabled.\nset_centered_textures ::\n                        (TileMap :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_centered_textures cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_centered_textures\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_centered_textures\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.set_centered_textures\n\n{-# NOINLINE bindTileMap_set_clip_uv #-}\n\n-- | If @true@, the cell's UVs will be clipped.\nbindTileMap_set_clip_uv :: MethodBind\nbindTileMap_set_clip_uv\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_clip_uv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the cell's UVs will be clipped.\nset_clip_uv ::\n              (TileMap :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_clip_uv cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_clip_uv (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_clip_uv\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.TileMap.set_clip_uv\n\n{-# NOINLINE bindTileMap_set_collision_bounce #-}\n\n-- | Bounce value for static body collisions (see @collision_use_kinematic@).\nbindTileMap_set_collision_bounce :: MethodBind\nbindTileMap_set_collision_bounce\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_bounce\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Bounce value for static body collisions (see @collision_use_kinematic@).\nset_collision_bounce ::\n                       (TileMap :< cls, Object :< cls) => cls -> Float -> IO ()\nset_collision_bounce cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_collision_bounce\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_collision_bounce\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.set_collision_bounce\n\n{-# NOINLINE bindTileMap_set_collision_friction #-}\n\n-- | Friction value for static body collisions (see @collision_use_kinematic@).\nbindTileMap_set_collision_friction :: MethodBind\nbindTileMap_set_collision_friction\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_friction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Friction value for static body collisions (see @collision_use_kinematic@).\nset_collision_friction ::\n                         (TileMap :< cls, Object :< cls) => cls -> Float -> IO ()\nset_collision_friction cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_collision_friction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_collision_friction\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.set_collision_friction\n\n{-# NOINLINE bindTileMap_set_collision_layer #-}\n\n-- | The collision layer(s) for all colliders in the TileMap. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindTileMap_set_collision_layer :: MethodBind\nbindTileMap_set_collision_layer\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The collision layer(s) for all colliders in the TileMap. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nset_collision_layer ::\n                      (TileMap :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_layer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_collision_layer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_collision_layer\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.set_collision_layer\n\n{-# NOINLINE bindTileMap_set_collision_layer_bit #-}\n\n-- | Sets the given collision layer bit.\nbindTileMap_set_collision_layer_bit :: MethodBind\nbindTileMap_set_collision_layer_bit\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_layer_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the given collision layer bit.\nset_collision_layer_bit ::\n                          (TileMap :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_collision_layer_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_collision_layer_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_collision_layer_bit\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.set_collision_layer_bit\n\n{-# NOINLINE bindTileMap_set_collision_mask #-}\n\n-- | The collision mask(s) for all colliders in the TileMap. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nbindTileMap_set_collision_mask :: MethodBind\nbindTileMap_set_collision_mask\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The collision mask(s) for all colliders in the TileMap. See @url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks@Collision layers and masks@/url@ in the documentation for more information.\nset_collision_mask ::\n                     (TileMap :< cls, Object :< cls) => cls -> Int -> IO ()\nset_collision_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_collision_mask (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_collision_mask\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.set_collision_mask\n\n{-# NOINLINE bindTileMap_set_collision_mask_bit #-}\n\n-- | Sets the given collision mask bit.\nbindTileMap_set_collision_mask_bit :: MethodBind\nbindTileMap_set_collision_mask_bit\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the given collision mask bit.\nset_collision_mask_bit ::\n                         (TileMap :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_collision_mask_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_collision_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_collision_mask_bit\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.set_collision_mask_bit\n\n{-# NOINLINE bindTileMap_set_collision_use_kinematic #-}\n\n-- | If @true@, TileMap collisions will be handled as a kinematic body. If @false@, collisions will be handled as static body.\nbindTileMap_set_collision_use_kinematic :: MethodBind\nbindTileMap_set_collision_use_kinematic\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_use_kinematic\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, TileMap collisions will be handled as a kinematic body. If @false@, collisions will be handled as static body.\nset_collision_use_kinematic ::\n                              (TileMap :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_collision_use_kinematic cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_collision_use_kinematic\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_collision_use_kinematic\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.set_collision_use_kinematic\n\n{-# NOINLINE bindTileMap_set_collision_use_parent #-}\n\n-- | If @true@, this tilemap's collision shape will be added to the collision shape of the parent. The parent has to be a @CollisionObject2D@.\nbindTileMap_set_collision_use_parent :: MethodBind\nbindTileMap_set_collision_use_parent\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_collision_use_parent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this tilemap's collision shape will be added to the collision shape of the parent. The parent has to be a @CollisionObject2D@.\nset_collision_use_parent ::\n                           (TileMap :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_collision_use_parent cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_collision_use_parent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_collision_use_parent\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.set_collision_use_parent\n\n{-# NOINLINE bindTileMap_set_compatibility_mode #-}\n\n-- | If @true@, the compatibility with the tilemaps made in Godot 3.1 or earlier is maintained (textures move when the tile origin changes and rotate if the texture size is not homogeneous). This mode presents problems when doing @flip_h@, @flip_v@ and @transpose@ tile operations on non-homogeneous isometric tiles (e.g. 2:1), in which the texture could not coincide with the collision, thus it is not recommended for isometric or non-square tiles.\n--   \t\t\tIf @false@, the textures do not move when doing @flip_h@, @flip_v@ operations if no offset is used, nor when changing the tile origin.\n--   \t\t\tThe compatibility mode doesn't work with the @centered_textures@ option, because displacing textures with the @cell_tile_origin@ option or in irregular tiles is not relevant when centering those textures.\nbindTileMap_set_compatibility_mode :: MethodBind\nbindTileMap_set_compatibility_mode\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_compatibility_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the compatibility with the tilemaps made in Godot 3.1 or earlier is maintained (textures move when the tile origin changes and rotate if the texture size is not homogeneous). This mode presents problems when doing @flip_h@, @flip_v@ and @transpose@ tile operations on non-homogeneous isometric tiles (e.g. 2:1), in which the texture could not coincide with the collision, thus it is not recommended for isometric or non-square tiles.\n--   \t\t\tIf @false@, the textures do not move when doing @flip_h@, @flip_v@ operations if no offset is used, nor when changing the tile origin.\n--   \t\t\tThe compatibility mode doesn't work with the @centered_textures@ option, because displacing textures with the @cell_tile_origin@ option or in irregular tiles is not relevant when centering those textures.\nset_compatibility_mode ::\n                         (TileMap :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_compatibility_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_compatibility_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_compatibility_mode\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.set_compatibility_mode\n\n{-# NOINLINE bindTileMap_set_custom_transform #-}\n\n-- | The custom @Transform2D@ to be applied to the TileMap's cells.\nbindTileMap_set_custom_transform :: MethodBind\nbindTileMap_set_custom_transform\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_custom_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The custom @Transform2D@ to be applied to the TileMap's cells.\nset_custom_transform ::\n                       (TileMap :< cls, Object :< cls) => cls -> Transform2d -> IO ()\nset_custom_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_custom_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_custom_transform\" '[Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.set_custom_transform\n\n{-# NOINLINE bindTileMap_set_half_offset #-}\n\n-- | Amount to offset alternating tiles. See @enum HalfOffset@ for possible values.\nbindTileMap_set_half_offset :: MethodBind\nbindTileMap_set_half_offset\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_half_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount to offset alternating tiles. See @enum HalfOffset@ for possible values.\nset_half_offset ::\n                  (TileMap :< cls, Object :< cls) => cls -> Int -> IO ()\nset_half_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_half_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_half_offset\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.TileMap.set_half_offset\n\n{-# NOINLINE bindTileMap_set_mode #-}\n\n-- | The TileMap orientation mode. See @enum Mode@ for possible values.\nbindTileMap_set_mode :: MethodBind\nbindTileMap_set_mode\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The TileMap orientation mode. See @enum Mode@ for possible values.\nset_mode :: (TileMap :< cls, Object :< cls) => cls -> Int -> IO ()\nset_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_mode (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.TileMap.set_mode\n\n{-# NOINLINE bindTileMap_set_occluder_light_mask #-}\n\n-- | The light mask assigned to all light occluders in the TileMap. The TileSet's light occluders will cast shadows only from Light2D(s) that have the same light mask(s).\nbindTileMap_set_occluder_light_mask :: MethodBind\nbindTileMap_set_occluder_light_mask\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_occluder_light_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The light mask assigned to all light occluders in the TileMap. The TileSet's light occluders will cast shadows only from Light2D(s) that have the same light mask(s).\nset_occluder_light_mask ::\n                          (TileMap :< cls, Object :< cls) => cls -> Int -> IO ()\nset_occluder_light_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_occluder_light_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_occluder_light_mask\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.set_occluder_light_mask\n\n{-# NOINLINE bindTileMap_set_quadrant_size #-}\n\n-- | The TileMap's quadrant size. Optimizes drawing by batching, using chunks of this size.\nbindTileMap_set_quadrant_size :: MethodBind\nbindTileMap_set_quadrant_size\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_quadrant_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The TileMap's quadrant size. Optimizes drawing by batching, using chunks of this size.\nset_quadrant_size ::\n                    (TileMap :< cls, Object :< cls) => cls -> Int -> IO ()\nset_quadrant_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_quadrant_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_quadrant_size\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.set_quadrant_size\n\n{-# NOINLINE bindTileMap_set_tile_origin #-}\n\n-- | Position for tile origin. See @enum TileOrigin@ for possible values.\nbindTileMap_set_tile_origin :: MethodBind\nbindTileMap_set_tile_origin\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_tile_origin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Position for tile origin. See @enum TileOrigin@ for possible values.\nset_tile_origin ::\n                  (TileMap :< cls, Object :< cls) => cls -> Int -> IO ()\nset_tile_origin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_tile_origin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_tile_origin\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.TileMap.set_tile_origin\n\n{-# NOINLINE bindTileMap_set_tileset #-}\n\n-- | The assigned @TileSet@.\nbindTileMap_set_tileset :: MethodBind\nbindTileMap_set_tileset\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_tileset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The assigned @TileSet@.\nset_tileset ::\n              (TileMap :< cls, Object :< cls) => cls -> TileSet -> IO ()\nset_tileset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_tileset (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_tileset\" '[TileSet] (IO ()) where\n        nodeMethod = Godot.Core.TileMap.set_tileset\n\n{-# NOINLINE bindTileMap_set_y_sort_mode #-}\n\n-- | If @true@, the TileMap's children will be drawn in order of their Y coordinate.\nbindTileMap_set_y_sort_mode :: MethodBind\nbindTileMap_set_y_sort_mode\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_y_sort_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the TileMap's children will be drawn in order of their Y coordinate.\nset_y_sort_mode ::\n                  (TileMap :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_y_sort_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_set_y_sort_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"set_y_sort_mode\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.TileMap.set_y_sort_mode\n\n{-# NOINLINE bindTileMap_update_bitmask_area #-}\n\n-- | Applies autotiling rules to the cell (and its adjacent cells) referenced by its grid-based X and Y coordinates.\nbindTileMap_update_bitmask_area :: MethodBind\nbindTileMap_update_bitmask_area\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"update_bitmask_area\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies autotiling rules to the cell (and its adjacent cells) referenced by its grid-based X and Y coordinates.\nupdate_bitmask_area ::\n                      (TileMap :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nupdate_bitmask_area cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_update_bitmask_area (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"update_bitmask_area\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.update_bitmask_area\n\n{-# NOINLINE bindTileMap_update_bitmask_region #-}\n\n-- | Applies autotiling rules to the cells in the given region (specified by grid-based X and Y coordinates).\n--   \t\t\t\tCalling with invalid (or missing) parameters applies autotiling rules for the entire tilemap.\nbindTileMap_update_bitmask_region :: MethodBind\nbindTileMap_update_bitmask_region\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"update_bitmask_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Applies autotiling rules to the cells in the given region (specified by grid-based X and Y coordinates).\n--   \t\t\t\tCalling with invalid (or missing) parameters applies autotiling rules for the entire tilemap.\nupdate_bitmask_region ::\n                        (TileMap :< cls, Object :< cls) =>\n                        cls -> Maybe Vector2 -> Maybe Vector2 -> IO ()\nupdate_bitmask_region cls arg1 arg2\n  = withVariantArray\n      [defaultedVariant VariantVector2 (V2 0 0) arg1,\n       defaultedVariant VariantVector2 (V2 0 0) arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_update_bitmask_region\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"update_bitmask_region\"\n           '[Maybe Vector2, Maybe Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.update_bitmask_region\n\n{-# NOINLINE bindTileMap_update_dirty_quadrants #-}\n\n-- | Updates the tile map's quadrants, allowing things such as navigation and collision shapes to be immediately used if modified.\nbindTileMap_update_dirty_quadrants :: MethodBind\nbindTileMap_update_dirty_quadrants\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"update_dirty_quadrants\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Updates the tile map's quadrants, allowing things such as navigation and collision shapes to be immediately used if modified.\nupdate_dirty_quadrants ::\n                         (TileMap :< cls, Object :< cls) => cls -> IO ()\nupdate_dirty_quadrants cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_update_dirty_quadrants\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"update_dirty_quadrants\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.TileMap.update_dirty_quadrants\n\n{-# NOINLINE bindTileMap_world_to_map #-}\n\n-- | Returns the tilemap (grid-based) coordinates corresponding to the given local position.\nbindTileMap_world_to_map :: MethodBind\nbindTileMap_world_to_map\n  = unsafePerformIO $\n      withCString \"TileMap\" $\n        \\ clsNamePtr ->\n          withCString \"world_to_map\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tilemap (grid-based) coordinates corresponding to the given local position.\nworld_to_map ::\n               (TileMap :< cls, Object :< cls) => cls -> Vector2 -> IO Vector2\nworld_to_map cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileMap_world_to_map (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileMap \"world_to_map\" '[Vector2] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.TileMap.world_to_map"
  },
  {
    "path": "src/Godot/Core/TileSet.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.TileSet\n       (Godot.Core.TileSet._BITMASK_2X2, Godot.Core.TileSet._BITMASK_3X3,\n        Godot.Core.TileSet._BIND_BOTTOMLEFT,\n        Godot.Core.TileSet._BIND_CENTER, Godot.Core.TileSet._BIND_LEFT,\n        Godot.Core.TileSet._ATLAS_TILE,\n        Godot.Core.TileSet._BITMASK_3X3_MINIMAL,\n        Godot.Core.TileSet._BIND_RIGHT, Godot.Core.TileSet._BIND_TOPLEFT,\n        Godot.Core.TileSet._BIND_BOTTOM,\n        Godot.Core.TileSet._BIND_BOTTOMRIGHT,\n        Godot.Core.TileSet._AUTO_TILE, Godot.Core.TileSet._BIND_TOP,\n        Godot.Core.TileSet._BIND_TOPRIGHT, Godot.Core.TileSet._SINGLE_TILE,\n        Godot.Core.TileSet._forward_atlas_subtile_selection,\n        Godot.Core.TileSet._forward_subtile_selection,\n        Godot.Core.TileSet._is_tile_bound,\n        Godot.Core.TileSet.autotile_clear_bitmask_map,\n        Godot.Core.TileSet.autotile_get_bitmask,\n        Godot.Core.TileSet.autotile_get_bitmask_mode,\n        Godot.Core.TileSet.autotile_get_icon_coordinate,\n        Godot.Core.TileSet.autotile_get_light_occluder,\n        Godot.Core.TileSet.autotile_get_navigation_polygon,\n        Godot.Core.TileSet.autotile_get_size,\n        Godot.Core.TileSet.autotile_get_spacing,\n        Godot.Core.TileSet.autotile_get_subtile_priority,\n        Godot.Core.TileSet.autotile_get_z_index,\n        Godot.Core.TileSet.autotile_set_bitmask,\n        Godot.Core.TileSet.autotile_set_bitmask_mode,\n        Godot.Core.TileSet.autotile_set_icon_coordinate,\n        Godot.Core.TileSet.autotile_set_light_occluder,\n        Godot.Core.TileSet.autotile_set_navigation_polygon,\n        Godot.Core.TileSet.autotile_set_size,\n        Godot.Core.TileSet.autotile_set_spacing,\n        Godot.Core.TileSet.autotile_set_subtile_priority,\n        Godot.Core.TileSet.autotile_set_z_index, Godot.Core.TileSet.clear,\n        Godot.Core.TileSet.create_tile,\n        Godot.Core.TileSet.find_tile_by_name,\n        Godot.Core.TileSet.get_last_unused_tile_id,\n        Godot.Core.TileSet.get_tiles_ids, Godot.Core.TileSet.remove_tile,\n        Godot.Core.TileSet.tile_add_shape,\n        Godot.Core.TileSet.tile_get_light_occluder,\n        Godot.Core.TileSet.tile_get_material,\n        Godot.Core.TileSet.tile_get_modulate,\n        Godot.Core.TileSet.tile_get_name,\n        Godot.Core.TileSet.tile_get_navigation_polygon,\n        Godot.Core.TileSet.tile_get_navigation_polygon_offset,\n        Godot.Core.TileSet.tile_get_normal_map,\n        Godot.Core.TileSet.tile_get_occluder_offset,\n        Godot.Core.TileSet.tile_get_region,\n        Godot.Core.TileSet.tile_get_shape,\n        Godot.Core.TileSet.tile_get_shape_count,\n        Godot.Core.TileSet.tile_get_shape_offset,\n        Godot.Core.TileSet.tile_get_shape_one_way,\n        Godot.Core.TileSet.tile_get_shape_one_way_margin,\n        Godot.Core.TileSet.tile_get_shape_transform,\n        Godot.Core.TileSet.tile_get_shapes,\n        Godot.Core.TileSet.tile_get_texture,\n        Godot.Core.TileSet.tile_get_texture_offset,\n        Godot.Core.TileSet.tile_get_tile_mode,\n        Godot.Core.TileSet.tile_get_z_index,\n        Godot.Core.TileSet.tile_set_light_occluder,\n        Godot.Core.TileSet.tile_set_material,\n        Godot.Core.TileSet.tile_set_modulate,\n        Godot.Core.TileSet.tile_set_name,\n        Godot.Core.TileSet.tile_set_navigation_polygon,\n        Godot.Core.TileSet.tile_set_navigation_polygon_offset,\n        Godot.Core.TileSet.tile_set_normal_map,\n        Godot.Core.TileSet.tile_set_occluder_offset,\n        Godot.Core.TileSet.tile_set_region,\n        Godot.Core.TileSet.tile_set_shape,\n        Godot.Core.TileSet.tile_set_shape_offset,\n        Godot.Core.TileSet.tile_set_shape_one_way,\n        Godot.Core.TileSet.tile_set_shape_one_way_margin,\n        Godot.Core.TileSet.tile_set_shape_transform,\n        Godot.Core.TileSet.tile_set_shapes,\n        Godot.Core.TileSet.tile_set_texture,\n        Godot.Core.TileSet.tile_set_texture_offset,\n        Godot.Core.TileSet.tile_set_tile_mode,\n        Godot.Core.TileSet.tile_set_z_index)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_BITMASK_2X2 :: Int\n_BITMASK_2X2 = 0\n\n_BITMASK_3X3 :: Int\n_BITMASK_3X3 = 2\n\n_BIND_BOTTOMLEFT :: Int\n_BIND_BOTTOMLEFT = 64\n\n_BIND_CENTER :: Int\n_BIND_CENTER = 16\n\n_BIND_LEFT :: Int\n_BIND_LEFT = 8\n\n_ATLAS_TILE :: Int\n_ATLAS_TILE = 2\n\n_BITMASK_3X3_MINIMAL :: Int\n_BITMASK_3X3_MINIMAL = 1\n\n_BIND_RIGHT :: Int\n_BIND_RIGHT = 32\n\n_BIND_TOPLEFT :: Int\n_BIND_TOPLEFT = 1\n\n_BIND_BOTTOM :: Int\n_BIND_BOTTOM = 128\n\n_BIND_BOTTOMRIGHT :: Int\n_BIND_BOTTOMRIGHT = 256\n\n_AUTO_TILE :: Int\n_AUTO_TILE = 1\n\n_BIND_TOP :: Int\n_BIND_TOP = 2\n\n_BIND_TOPRIGHT :: Int\n_BIND_TOPRIGHT = 4\n\n_SINGLE_TILE :: Int\n_SINGLE_TILE = 0\n\n{-# NOINLINE bindTileSet__forward_atlas_subtile_selection #-}\n\nbindTileSet__forward_atlas_subtile_selection :: MethodBind\nbindTileSet__forward_atlas_subtile_selection\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"_forward_atlas_subtile_selection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_forward_atlas_subtile_selection ::\n                                   (TileSet :< cls, Object :< cls) =>\n                                   cls -> Int -> Object -> Vector2 -> IO Vector2\n_forward_atlas_subtile_selection cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet__forward_atlas_subtile_selection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"_forward_atlas_subtile_selection\"\n           '[Int, Object, Vector2]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.TileSet._forward_atlas_subtile_selection\n\n{-# NOINLINE bindTileSet__forward_subtile_selection #-}\n\nbindTileSet__forward_subtile_selection :: MethodBind\nbindTileSet__forward_subtile_selection\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"_forward_subtile_selection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_forward_subtile_selection ::\n                             (TileSet :< cls, Object :< cls) =>\n                             cls -> Int -> Int -> Object -> Vector2 -> IO Vector2\n_forward_subtile_selection cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet__forward_subtile_selection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"_forward_subtile_selection\"\n           '[Int, Int, Object, Vector2]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.TileSet._forward_subtile_selection\n\n{-# NOINLINE bindTileSet__is_tile_bound #-}\n\n-- | Determines when the auto-tiler should consider two different auto-tile IDs to be bound together.\n--   \t\t\t\t__Note:__ @neighbor_id@ will be @-1@ (@TileMap.INVALID_CELL@) when checking a tile against an empty neighbor tile.\nbindTileSet__is_tile_bound :: MethodBind\nbindTileSet__is_tile_bound\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"_is_tile_bound\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Determines when the auto-tiler should consider two different auto-tile IDs to be bound together.\n--   \t\t\t\t__Note:__ @neighbor_id@ will be @-1@ (@TileMap.INVALID_CELL@) when checking a tile against an empty neighbor tile.\n_is_tile_bound ::\n                 (TileSet :< cls, Object :< cls) => cls -> Int -> Int -> IO Bool\n_is_tile_bound cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet__is_tile_bound (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"_is_tile_bound\" '[Int, Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.TileSet._is_tile_bound\n\n{-# NOINLINE bindTileSet_autotile_clear_bitmask_map #-}\n\n-- | Clears all bitmask information of the autotile.\nbindTileSet_autotile_clear_bitmask_map :: MethodBind\nbindTileSet_autotile_clear_bitmask_map\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_clear_bitmask_map\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears all bitmask information of the autotile.\nautotile_clear_bitmask_map ::\n                             (TileSet :< cls, Object :< cls) => cls -> Int -> IO ()\nautotile_clear_bitmask_map cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_clear_bitmask_map\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_clear_bitmask_map\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_clear_bitmask_map\n\n{-# NOINLINE bindTileSet_autotile_get_bitmask #-}\n\n-- | Returns the bitmask of the subtile from an autotile given its coordinates.\n--   \t\t\t\tThe value is the sum of the values in @enum AutotileBindings@ present in the subtile (e.g. a value of 5 means the bitmask has bindings in both the top left and top right).\nbindTileSet_autotile_get_bitmask :: MethodBind\nbindTileSet_autotile_get_bitmask\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_get_bitmask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the bitmask of the subtile from an autotile given its coordinates.\n--   \t\t\t\tThe value is the sum of the values in @enum AutotileBindings@ present in the subtile (e.g. a value of 5 means the bitmask has bindings in both the top left and top right).\nautotile_get_bitmask ::\n                       (TileSet :< cls, Object :< cls) => cls -> Int -> Vector2 -> IO Int\nautotile_get_bitmask cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_get_bitmask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_get_bitmask\" '[Int, Vector2]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_get_bitmask\n\n{-# NOINLINE bindTileSet_autotile_get_bitmask_mode #-}\n\n-- | Returns the @enum BitmaskMode@ of the autotile.\nbindTileSet_autotile_get_bitmask_mode :: MethodBind\nbindTileSet_autotile_get_bitmask_mode\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_get_bitmask_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @enum BitmaskMode@ of the autotile.\nautotile_get_bitmask_mode ::\n                            (TileSet :< cls, Object :< cls) => cls -> Int -> IO Int\nautotile_get_bitmask_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_get_bitmask_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_get_bitmask_mode\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_get_bitmask_mode\n\n{-# NOINLINE bindTileSet_autotile_get_icon_coordinate #-}\n\n-- | Returns the subtile that's being used as an icon in an atlas/autotile given its coordinates.\n--   \t\t\t\tThe subtile defined as the icon will be used as a fallback when the atlas/autotile's bitmask information is incomplete. It will also be used to represent it in the TileSet editor.\nbindTileSet_autotile_get_icon_coordinate :: MethodBind\nbindTileSet_autotile_get_icon_coordinate\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_get_icon_coordinate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the subtile that's being used as an icon in an atlas/autotile given its coordinates.\n--   \t\t\t\tThe subtile defined as the icon will be used as a fallback when the atlas/autotile's bitmask information is incomplete. It will also be used to represent it in the TileSet editor.\nautotile_get_icon_coordinate ::\n                               (TileSet :< cls, Object :< cls) => cls -> Int -> IO Vector2\nautotile_get_icon_coordinate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_get_icon_coordinate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_get_icon_coordinate\" '[Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_get_icon_coordinate\n\n{-# NOINLINE bindTileSet_autotile_get_light_occluder #-}\n\n-- | Returns the light occluder of the subtile from an atlas/autotile given its coordinates.\nbindTileSet_autotile_get_light_occluder :: MethodBind\nbindTileSet_autotile_get_light_occluder\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_get_light_occluder\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the light occluder of the subtile from an atlas/autotile given its coordinates.\nautotile_get_light_occluder ::\n                              (TileSet :< cls, Object :< cls) =>\n                              cls -> Int -> Vector2 -> IO OccluderPolygon2D\nautotile_get_light_occluder cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_get_light_occluder\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_get_light_occluder\"\n           '[Int, Vector2]\n           (IO OccluderPolygon2D)\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_get_light_occluder\n\n{-# NOINLINE bindTileSet_autotile_get_navigation_polygon #-}\n\n-- | Returns the navigation polygon of the subtile from an atlas/autotile given its coordinates.\nbindTileSet_autotile_get_navigation_polygon :: MethodBind\nbindTileSet_autotile_get_navigation_polygon\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_get_navigation_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the navigation polygon of the subtile from an atlas/autotile given its coordinates.\nautotile_get_navigation_polygon ::\n                                  (TileSet :< cls, Object :< cls) =>\n                                  cls -> Int -> Vector2 -> IO NavigationPolygon\nautotile_get_navigation_polygon cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_get_navigation_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_get_navigation_polygon\"\n           '[Int, Vector2]\n           (IO NavigationPolygon)\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_get_navigation_polygon\n\n{-# NOINLINE bindTileSet_autotile_get_size #-}\n\n-- | Returns the size of the subtiles in an atlas/autotile.\nbindTileSet_autotile_get_size :: MethodBind\nbindTileSet_autotile_get_size\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_get_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the size of the subtiles in an atlas/autotile.\nautotile_get_size ::\n                    (TileSet :< cls, Object :< cls) => cls -> Int -> IO Vector2\nautotile_get_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_get_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_get_size\" '[Int] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_get_size\n\n{-# NOINLINE bindTileSet_autotile_get_spacing #-}\n\n-- | Returns the spacing between subtiles of the atlas/autotile.\nbindTileSet_autotile_get_spacing :: MethodBind\nbindTileSet_autotile_get_spacing\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_get_spacing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the spacing between subtiles of the atlas/autotile.\nautotile_get_spacing ::\n                       (TileSet :< cls, Object :< cls) => cls -> Int -> IO Int\nautotile_get_spacing cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_get_spacing\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_get_spacing\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_get_spacing\n\n{-# NOINLINE bindTileSet_autotile_get_subtile_priority #-}\n\n-- | Returns the priority of the subtile from an autotile given its coordinates.\n--   \t\t\t\tWhen more than one subtile has the same bitmask value, one of them will be picked randomly for drawing. Its priority will define how often it will be picked.\nbindTileSet_autotile_get_subtile_priority :: MethodBind\nbindTileSet_autotile_get_subtile_priority\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_get_subtile_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the priority of the subtile from an autotile given its coordinates.\n--   \t\t\t\tWhen more than one subtile has the same bitmask value, one of them will be picked randomly for drawing. Its priority will define how often it will be picked.\nautotile_get_subtile_priority ::\n                                (TileSet :< cls, Object :< cls) => cls -> Int -> Vector2 -> IO Int\nautotile_get_subtile_priority cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_get_subtile_priority\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_get_subtile_priority\"\n           '[Int, Vector2]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_get_subtile_priority\n\n{-# NOINLINE bindTileSet_autotile_get_z_index #-}\n\n-- | Returns the drawing index of the subtile from an atlas/autotile given its coordinates.\nbindTileSet_autotile_get_z_index :: MethodBind\nbindTileSet_autotile_get_z_index\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_get_z_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the drawing index of the subtile from an atlas/autotile given its coordinates.\nautotile_get_z_index ::\n                       (TileSet :< cls, Object :< cls) => cls -> Int -> Vector2 -> IO Int\nautotile_get_z_index cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_get_z_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_get_z_index\" '[Int, Vector2]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_get_z_index\n\n{-# NOINLINE bindTileSet_autotile_set_bitmask #-}\n\n-- | Sets the bitmask of the subtile from an autotile given its coordinates.\n--   \t\t\t\tThe value is the sum of the values in @enum AutotileBindings@ present in the subtile (e.g. a value of 5 means the bitmask has bindings in both the top left and top right).\nbindTileSet_autotile_set_bitmask :: MethodBind\nbindTileSet_autotile_set_bitmask\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_set_bitmask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the bitmask of the subtile from an autotile given its coordinates.\n--   \t\t\t\tThe value is the sum of the values in @enum AutotileBindings@ present in the subtile (e.g. a value of 5 means the bitmask has bindings in both the top left and top right).\nautotile_set_bitmask ::\n                       (TileSet :< cls, Object :< cls) =>\n                       cls -> Int -> Vector2 -> Int -> IO ()\nautotile_set_bitmask cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_set_bitmask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_set_bitmask\"\n           '[Int, Vector2, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_set_bitmask\n\n{-# NOINLINE bindTileSet_autotile_set_bitmask_mode #-}\n\n-- | Sets the @enum BitmaskMode@ of the autotile.\nbindTileSet_autotile_set_bitmask_mode :: MethodBind\nbindTileSet_autotile_set_bitmask_mode\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_set_bitmask_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @enum BitmaskMode@ of the autotile.\nautotile_set_bitmask_mode ::\n                            (TileSet :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nautotile_set_bitmask_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_set_bitmask_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_set_bitmask_mode\" '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_set_bitmask_mode\n\n{-# NOINLINE bindTileSet_autotile_set_icon_coordinate #-}\n\n-- | Sets the subtile that will be used as an icon in an atlas/autotile given its coordinates.\n--   \t\t\t\tThe subtile defined as the icon will be used as a fallback when the atlas/autotile's bitmask information is incomplete. It will also be used to represent it in the TileSet editor.\nbindTileSet_autotile_set_icon_coordinate :: MethodBind\nbindTileSet_autotile_set_icon_coordinate\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_set_icon_coordinate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the subtile that will be used as an icon in an atlas/autotile given its coordinates.\n--   \t\t\t\tThe subtile defined as the icon will be used as a fallback when the atlas/autotile's bitmask information is incomplete. It will also be used to represent it in the TileSet editor.\nautotile_set_icon_coordinate ::\n                               (TileSet :< cls, Object :< cls) => cls -> Int -> Vector2 -> IO ()\nautotile_set_icon_coordinate cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_set_icon_coordinate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_set_icon_coordinate\"\n           '[Int, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_set_icon_coordinate\n\n{-# NOINLINE bindTileSet_autotile_set_light_occluder #-}\n\n-- | Sets the light occluder of the subtile from an atlas/autotile given its coordinates.\nbindTileSet_autotile_set_light_occluder :: MethodBind\nbindTileSet_autotile_set_light_occluder\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_set_light_occluder\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the light occluder of the subtile from an atlas/autotile given its coordinates.\nautotile_set_light_occluder ::\n                              (TileSet :< cls, Object :< cls) =>\n                              cls -> Int -> OccluderPolygon2D -> Vector2 -> IO ()\nautotile_set_light_occluder cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_set_light_occluder\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_set_light_occluder\"\n           '[Int, OccluderPolygon2D, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_set_light_occluder\n\n{-# NOINLINE bindTileSet_autotile_set_navigation_polygon #-}\n\n-- | Sets the navigation polygon of the subtile from an atlas/autotile given its coordinates.\nbindTileSet_autotile_set_navigation_polygon :: MethodBind\nbindTileSet_autotile_set_navigation_polygon\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_set_navigation_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the navigation polygon of the subtile from an atlas/autotile given its coordinates.\nautotile_set_navigation_polygon ::\n                                  (TileSet :< cls, Object :< cls) =>\n                                  cls -> Int -> NavigationPolygon -> Vector2 -> IO ()\nautotile_set_navigation_polygon cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_set_navigation_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_set_navigation_polygon\"\n           '[Int, NavigationPolygon, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_set_navigation_polygon\n\n{-# NOINLINE bindTileSet_autotile_set_size #-}\n\n-- | Sets the size of the subtiles in an atlas/autotile.\nbindTileSet_autotile_set_size :: MethodBind\nbindTileSet_autotile_set_size\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_set_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the size of the subtiles in an atlas/autotile.\nautotile_set_size ::\n                    (TileSet :< cls, Object :< cls) => cls -> Int -> Vector2 -> IO ()\nautotile_set_size cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_set_size (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_set_size\" '[Int, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_set_size\n\n{-# NOINLINE bindTileSet_autotile_set_spacing #-}\n\n-- | Sets the spacing between subtiles of the atlas/autotile.\nbindTileSet_autotile_set_spacing :: MethodBind\nbindTileSet_autotile_set_spacing\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_set_spacing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the spacing between subtiles of the atlas/autotile.\nautotile_set_spacing ::\n                       (TileSet :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nautotile_set_spacing cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_set_spacing\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_set_spacing\" '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_set_spacing\n\n{-# NOINLINE bindTileSet_autotile_set_subtile_priority #-}\n\n-- | Sets the priority of the subtile from an autotile given its coordinates.\n--   \t\t\t\tWhen more than one subtile has the same bitmask value, one of them will be picked randomly for drawing. Its priority will define how often it will be picked.\nbindTileSet_autotile_set_subtile_priority :: MethodBind\nbindTileSet_autotile_set_subtile_priority\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_set_subtile_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the priority of the subtile from an autotile given its coordinates.\n--   \t\t\t\tWhen more than one subtile has the same bitmask value, one of them will be picked randomly for drawing. Its priority will define how often it will be picked.\nautotile_set_subtile_priority ::\n                                (TileSet :< cls, Object :< cls) =>\n                                cls -> Int -> Vector2 -> Int -> IO ()\nautotile_set_subtile_priority cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_set_subtile_priority\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_set_subtile_priority\"\n           '[Int, Vector2, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_set_subtile_priority\n\n{-# NOINLINE bindTileSet_autotile_set_z_index #-}\n\n-- | Sets the drawing index of the subtile from an atlas/autotile given its coordinates.\nbindTileSet_autotile_set_z_index :: MethodBind\nbindTileSet_autotile_set_z_index\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"autotile_set_z_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the drawing index of the subtile from an atlas/autotile given its coordinates.\nautotile_set_z_index ::\n                       (TileSet :< cls, Object :< cls) =>\n                       cls -> Int -> Vector2 -> Int -> IO ()\nautotile_set_z_index cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_autotile_set_z_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"autotile_set_z_index\"\n           '[Int, Vector2, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.autotile_set_z_index\n\n{-# NOINLINE bindTileSet_clear #-}\n\n-- | Clears all tiles.\nbindTileSet_clear :: MethodBind\nbindTileSet_clear\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears all tiles.\nclear :: (TileSet :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_clear (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TileSet.clear\n\n{-# NOINLINE bindTileSet_create_tile #-}\n\n-- | Creates a new tile with the given ID.\nbindTileSet_create_tile :: MethodBind\nbindTileSet_create_tile\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"create_tile\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a new tile with the given ID.\ncreate_tile ::\n              (TileSet :< cls, Object :< cls) => cls -> Int -> IO ()\ncreate_tile cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_create_tile (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"create_tile\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.TileSet.create_tile\n\n{-# NOINLINE bindTileSet_find_tile_by_name #-}\n\n-- | Returns the first tile matching the given name.\nbindTileSet_find_tile_by_name :: MethodBind\nbindTileSet_find_tile_by_name\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"find_tile_by_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the first tile matching the given name.\nfind_tile_by_name ::\n                    (TileSet :< cls, Object :< cls) => cls -> GodotString -> IO Int\nfind_tile_by_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_find_tile_by_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"find_tile_by_name\" '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.TileSet.find_tile_by_name\n\n{-# NOINLINE bindTileSet_get_last_unused_tile_id #-}\n\n-- | Returns the ID following the last currently used ID, useful when creating a new tile.\nbindTileSet_get_last_unused_tile_id :: MethodBind\nbindTileSet_get_last_unused_tile_id\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"get_last_unused_tile_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the ID following the last currently used ID, useful when creating a new tile.\nget_last_unused_tile_id ::\n                          (TileSet :< cls, Object :< cls) => cls -> IO Int\nget_last_unused_tile_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_get_last_unused_tile_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"get_last_unused_tile_id\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.TileSet.get_last_unused_tile_id\n\n{-# NOINLINE bindTileSet_get_tiles_ids #-}\n\n-- | Returns an array of all currently used tile IDs.\nbindTileSet_get_tiles_ids :: MethodBind\nbindTileSet_get_tiles_ids\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"get_tiles_ids\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of all currently used tile IDs.\nget_tiles_ids :: (TileSet :< cls, Object :< cls) => cls -> IO Array\nget_tiles_ids cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_get_tiles_ids (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"get_tiles_ids\" '[] (IO Array) where\n        nodeMethod = Godot.Core.TileSet.get_tiles_ids\n\n{-# NOINLINE bindTileSet_remove_tile #-}\n\n-- | Removes the given tile ID.\nbindTileSet_remove_tile :: MethodBind\nbindTileSet_remove_tile\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"remove_tile\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the given tile ID.\nremove_tile ::\n              (TileSet :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_tile cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_remove_tile (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"remove_tile\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.TileSet.remove_tile\n\n{-# NOINLINE bindTileSet_tile_add_shape #-}\n\n-- | Adds a shape to the tile.\nbindTileSet_tile_add_shape :: MethodBind\nbindTileSet_tile_add_shape\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_add_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a shape to the tile.\ntile_add_shape ::\n                 (TileSet :< cls, Object :< cls) =>\n                 cls ->\n                   Int ->\n                     Shape2D -> Transform2d -> Maybe Bool -> Maybe Vector2 -> IO ()\ntile_add_shape cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantBool False) toVariant arg4,\n       defaultedVariant VariantVector2 (V2 0 0) arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_add_shape (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_add_shape\"\n           '[Int, Shape2D, Transform2d, Maybe Bool, Maybe Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_add_shape\n\n{-# NOINLINE bindTileSet_tile_get_light_occluder #-}\n\n-- | Returns the tile's light occluder.\nbindTileSet_tile_get_light_occluder :: MethodBind\nbindTileSet_tile_get_light_occluder\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_light_occluder\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tile's light occluder.\ntile_get_light_occluder ::\n                          (TileSet :< cls, Object :< cls) =>\n                          cls -> Int -> IO OccluderPolygon2D\ntile_get_light_occluder cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_light_occluder\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_light_occluder\" '[Int]\n           (IO OccluderPolygon2D)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_light_occluder\n\n{-# NOINLINE bindTileSet_tile_get_material #-}\n\n-- | Returns the tile's material.\nbindTileSet_tile_get_material :: MethodBind\nbindTileSet_tile_get_material\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tile's material.\ntile_get_material ::\n                    (TileSet :< cls, Object :< cls) => cls -> Int -> IO ShaderMaterial\ntile_get_material cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_material\" '[Int]\n           (IO ShaderMaterial)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_material\n\n{-# NOINLINE bindTileSet_tile_get_modulate #-}\n\n-- | Returns the tile's modulation color.\nbindTileSet_tile_get_modulate :: MethodBind\nbindTileSet_tile_get_modulate\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_modulate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tile's modulation color.\ntile_get_modulate ::\n                    (TileSet :< cls, Object :< cls) => cls -> Int -> IO Color\ntile_get_modulate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_modulate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_modulate\" '[Int] (IO Color)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_modulate\n\n{-# NOINLINE bindTileSet_tile_get_name #-}\n\n-- | Returns the tile's name.\nbindTileSet_tile_get_name :: MethodBind\nbindTileSet_tile_get_name\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tile's name.\ntile_get_name ::\n                (TileSet :< cls, Object :< cls) => cls -> Int -> IO GodotString\ntile_get_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_name\" '[Int] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_name\n\n{-# NOINLINE bindTileSet_tile_get_navigation_polygon #-}\n\n-- | Returns the navigation polygon of the tile.\nbindTileSet_tile_get_navigation_polygon :: MethodBind\nbindTileSet_tile_get_navigation_polygon\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_navigation_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the navigation polygon of the tile.\ntile_get_navigation_polygon ::\n                              (TileSet :< cls, Object :< cls) =>\n                              cls -> Int -> IO NavigationPolygon\ntile_get_navigation_polygon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_navigation_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_navigation_polygon\" '[Int]\n           (IO NavigationPolygon)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_navigation_polygon\n\n{-# NOINLINE bindTileSet_tile_get_navigation_polygon_offset #-}\n\n-- | Returns the offset of the tile's navigation polygon.\nbindTileSet_tile_get_navigation_polygon_offset :: MethodBind\nbindTileSet_tile_get_navigation_polygon_offset\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_navigation_polygon_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the offset of the tile's navigation polygon.\ntile_get_navigation_polygon_offset ::\n                                     (TileSet :< cls, Object :< cls) => cls -> Int -> IO Vector2\ntile_get_navigation_polygon_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindTileSet_tile_get_navigation_polygon_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_navigation_polygon_offset\"\n           '[Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_navigation_polygon_offset\n\n{-# NOINLINE bindTileSet_tile_get_normal_map #-}\n\n-- | Returns the tile's normal map texture.\nbindTileSet_tile_get_normal_map :: MethodBind\nbindTileSet_tile_get_normal_map\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_normal_map\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tile's normal map texture.\ntile_get_normal_map ::\n                      (TileSet :< cls, Object :< cls) => cls -> Int -> IO Texture\ntile_get_normal_map cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_normal_map (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_normal_map\" '[Int]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_normal_map\n\n{-# NOINLINE bindTileSet_tile_get_occluder_offset #-}\n\n-- | Returns the offset of the tile's light occluder.\nbindTileSet_tile_get_occluder_offset :: MethodBind\nbindTileSet_tile_get_occluder_offset\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_occluder_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the offset of the tile's light occluder.\ntile_get_occluder_offset ::\n                           (TileSet :< cls, Object :< cls) => cls -> Int -> IO Vector2\ntile_get_occluder_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_occluder_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_occluder_offset\" '[Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_occluder_offset\n\n{-# NOINLINE bindTileSet_tile_get_region #-}\n\n-- | Returns the tile sub-region in the texture.\nbindTileSet_tile_get_region :: MethodBind\nbindTileSet_tile_get_region\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tile sub-region in the texture.\ntile_get_region ::\n                  (TileSet :< cls, Object :< cls) => cls -> Int -> IO Rect2\ntile_get_region cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_region (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_region\" '[Int] (IO Rect2)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_region\n\n{-# NOINLINE bindTileSet_tile_get_shape #-}\n\n-- | Returns a tile's given shape.\nbindTileSet_tile_get_shape :: MethodBind\nbindTileSet_tile_get_shape\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a tile's given shape.\ntile_get_shape ::\n                 (TileSet :< cls, Object :< cls) => cls -> Int -> Int -> IO Shape2D\ntile_get_shape cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_shape (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_shape\" '[Int, Int]\n           (IO Shape2D)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_shape\n\n{-# NOINLINE bindTileSet_tile_get_shape_count #-}\n\n-- | Returns the number of shapes assigned to a tile.\nbindTileSet_tile_get_shape_count :: MethodBind\nbindTileSet_tile_get_shape_count\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_shape_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of shapes assigned to a tile.\ntile_get_shape_count ::\n                       (TileSet :< cls, Object :< cls) => cls -> Int -> IO Int\ntile_get_shape_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_shape_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_shape_count\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_shape_count\n\n{-# NOINLINE bindTileSet_tile_get_shape_offset #-}\n\n-- | Returns the offset of a tile's shape.\nbindTileSet_tile_get_shape_offset :: MethodBind\nbindTileSet_tile_get_shape_offset\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_shape_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the offset of a tile's shape.\ntile_get_shape_offset ::\n                        (TileSet :< cls, Object :< cls) => cls -> Int -> Int -> IO Vector2\ntile_get_shape_offset cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_shape_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_shape_offset\" '[Int, Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_shape_offset\n\n{-# NOINLINE bindTileSet_tile_get_shape_one_way #-}\n\n-- | Returns the one-way collision value of a tile's shape.\nbindTileSet_tile_get_shape_one_way :: MethodBind\nbindTileSet_tile_get_shape_one_way\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_shape_one_way\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the one-way collision value of a tile's shape.\ntile_get_shape_one_way ::\n                         (TileSet :< cls, Object :< cls) => cls -> Int -> Int -> IO Bool\ntile_get_shape_one_way cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_shape_one_way\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_shape_one_way\" '[Int, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_shape_one_way\n\n{-# NOINLINE bindTileSet_tile_get_shape_one_way_margin #-}\n\nbindTileSet_tile_get_shape_one_way_margin :: MethodBind\nbindTileSet_tile_get_shape_one_way_margin\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_shape_one_way_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ntile_get_shape_one_way_margin ::\n                                (TileSet :< cls, Object :< cls) => cls -> Int -> Int -> IO Float\ntile_get_shape_one_way_margin cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_shape_one_way_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_shape_one_way_margin\"\n           '[Int, Int]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_shape_one_way_margin\n\n{-# NOINLINE bindTileSet_tile_get_shape_transform #-}\n\n-- | Returns the @Transform2D@ of a tile's shape.\nbindTileSet_tile_get_shape_transform :: MethodBind\nbindTileSet_tile_get_shape_transform\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_shape_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Transform2D@ of a tile's shape.\ntile_get_shape_transform ::\n                           (TileSet :< cls, Object :< cls) =>\n                           cls -> Int -> Int -> IO Transform2d\ntile_get_shape_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_shape_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_shape_transform\" '[Int, Int]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_shape_transform\n\n{-# NOINLINE bindTileSet_tile_get_shapes #-}\n\n-- | Returns an array of dictionaries describing the tile's shapes.\n--   \t\t\t\t__Dictionary structure in the array returned by this method:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t{\n--   \t\t\t\t    \"autotile_coord\": Vector2,\n--   \t\t\t\t    \"one_way\": bool,\n--   \t\t\t\t    \"one_way_margin\": int,\n--   \t\t\t\t    \"shape\": CollisionShape2D,\n--   \t\t\t\t    \"shape_transform\": Transform2D,\n--   \t\t\t\t}\n--   \t\t\t\t\n--   @\nbindTileSet_tile_get_shapes :: MethodBind\nbindTileSet_tile_get_shapes\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_shapes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of dictionaries describing the tile's shapes.\n--   \t\t\t\t__Dictionary structure in the array returned by this method:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t{\n--   \t\t\t\t    \"autotile_coord\": Vector2,\n--   \t\t\t\t    \"one_way\": bool,\n--   \t\t\t\t    \"one_way_margin\": int,\n--   \t\t\t\t    \"shape\": CollisionShape2D,\n--   \t\t\t\t    \"shape_transform\": Transform2D,\n--   \t\t\t\t}\n--   \t\t\t\t\n--   @\ntile_get_shapes ::\n                  (TileSet :< cls, Object :< cls) => cls -> Int -> IO Array\ntile_get_shapes cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_shapes (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_shapes\" '[Int] (IO Array)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_shapes\n\n{-# NOINLINE bindTileSet_tile_get_texture #-}\n\n-- | Returns the tile's texture.\nbindTileSet_tile_get_texture :: MethodBind\nbindTileSet_tile_get_texture\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tile's texture.\ntile_get_texture ::\n                   (TileSet :< cls, Object :< cls) => cls -> Int -> IO Texture\ntile_get_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_texture\" '[Int] (IO Texture)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_texture\n\n{-# NOINLINE bindTileSet_tile_get_texture_offset #-}\n\n-- | Returns the texture offset of the tile.\nbindTileSet_tile_get_texture_offset :: MethodBind\nbindTileSet_tile_get_texture_offset\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_texture_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the texture offset of the tile.\ntile_get_texture_offset ::\n                          (TileSet :< cls, Object :< cls) => cls -> Int -> IO Vector2\ntile_get_texture_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_texture_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_texture_offset\" '[Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_texture_offset\n\n{-# NOINLINE bindTileSet_tile_get_tile_mode #-}\n\n-- | Returns the tile's @enum TileMode@.\nbindTileSet_tile_get_tile_mode :: MethodBind\nbindTileSet_tile_get_tile_mode\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_tile_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tile's @enum TileMode@.\ntile_get_tile_mode ::\n                     (TileSet :< cls, Object :< cls) => cls -> Int -> IO Int\ntile_get_tile_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_tile_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_tile_mode\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_tile_mode\n\n{-# NOINLINE bindTileSet_tile_get_z_index #-}\n\n-- | Returns the tile's Z index (drawing layer).\nbindTileSet_tile_get_z_index :: MethodBind\nbindTileSet_tile_get_z_index\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_get_z_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tile's Z index (drawing layer).\ntile_get_z_index ::\n                   (TileSet :< cls, Object :< cls) => cls -> Int -> IO Int\ntile_get_z_index cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_get_z_index (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_get_z_index\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.TileSet.tile_get_z_index\n\n{-# NOINLINE bindTileSet_tile_set_light_occluder #-}\n\n-- | Sets a light occluder for the tile.\nbindTileSet_tile_set_light_occluder :: MethodBind\nbindTileSet_tile_set_light_occluder\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_light_occluder\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a light occluder for the tile.\ntile_set_light_occluder ::\n                          (TileSet :< cls, Object :< cls) =>\n                          cls -> Int -> OccluderPolygon2D -> IO ()\ntile_set_light_occluder cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_set_light_occluder\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_light_occluder\"\n           '[Int, OccluderPolygon2D]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_light_occluder\n\n{-# NOINLINE bindTileSet_tile_set_material #-}\n\n-- | Sets the tile's material.\nbindTileSet_tile_set_material :: MethodBind\nbindTileSet_tile_set_material\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the tile's material.\ntile_set_material ::\n                    (TileSet :< cls, Object :< cls) =>\n                    cls -> Int -> ShaderMaterial -> IO ()\ntile_set_material cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_set_material (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_material\"\n           '[Int, ShaderMaterial]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_material\n\n{-# NOINLINE bindTileSet_tile_set_modulate #-}\n\n-- | Sets the tile's modulation color.\nbindTileSet_tile_set_modulate :: MethodBind\nbindTileSet_tile_set_modulate\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_modulate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the tile's modulation color.\ntile_set_modulate ::\n                    (TileSet :< cls, Object :< cls) => cls -> Int -> Color -> IO ()\ntile_set_modulate cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_set_modulate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_modulate\" '[Int, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_modulate\n\n{-# NOINLINE bindTileSet_tile_set_name #-}\n\n-- | Sets the tile's name.\nbindTileSet_tile_set_name :: MethodBind\nbindTileSet_tile_set_name\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the tile's name.\ntile_set_name ::\n                (TileSet :< cls, Object :< cls) =>\n                cls -> Int -> GodotString -> IO ()\ntile_set_name cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_set_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_name\" '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_name\n\n{-# NOINLINE bindTileSet_tile_set_navigation_polygon #-}\n\n-- | Sets the tile's navigation polygon.\nbindTileSet_tile_set_navigation_polygon :: MethodBind\nbindTileSet_tile_set_navigation_polygon\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_navigation_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the tile's navigation polygon.\ntile_set_navigation_polygon ::\n                              (TileSet :< cls, Object :< cls) =>\n                              cls -> Int -> NavigationPolygon -> IO ()\ntile_set_navigation_polygon cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_set_navigation_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_navigation_polygon\"\n           '[Int, NavigationPolygon]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_navigation_polygon\n\n{-# NOINLINE bindTileSet_tile_set_navigation_polygon_offset #-}\n\n-- | Sets an offset for the tile's navigation polygon.\nbindTileSet_tile_set_navigation_polygon_offset :: MethodBind\nbindTileSet_tile_set_navigation_polygon_offset\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_navigation_polygon_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets an offset for the tile's navigation polygon.\ntile_set_navigation_polygon_offset ::\n                                     (TileSet :< cls, Object :< cls) =>\n                                     cls -> Int -> Vector2 -> IO ()\ntile_set_navigation_polygon_offset cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindTileSet_tile_set_navigation_polygon_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_navigation_polygon_offset\"\n           '[Int, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_navigation_polygon_offset\n\n{-# NOINLINE bindTileSet_tile_set_normal_map #-}\n\n-- | Sets the tile's normal map texture.\n--   \t\t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\nbindTileSet_tile_set_normal_map :: MethodBind\nbindTileSet_tile_set_normal_map\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_normal_map\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the tile's normal map texture.\n--   \t\t\t\t__Note:__ Godot expects the normal map to use X+, Y-, and Z+ coordinates. See @url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates@this page@/url@ for a comparison of normal map coordinates expected by popular engines.\ntile_set_normal_map ::\n                      (TileSet :< cls, Object :< cls) => cls -> Int -> Texture -> IO ()\ntile_set_normal_map cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_set_normal_map (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_normal_map\" '[Int, Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_normal_map\n\n{-# NOINLINE bindTileSet_tile_set_occluder_offset #-}\n\n-- | Sets an offset for the tile's light occluder.\nbindTileSet_tile_set_occluder_offset :: MethodBind\nbindTileSet_tile_set_occluder_offset\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_occluder_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets an offset for the tile's light occluder.\ntile_set_occluder_offset ::\n                           (TileSet :< cls, Object :< cls) => cls -> Int -> Vector2 -> IO ()\ntile_set_occluder_offset cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_set_occluder_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_occluder_offset\"\n           '[Int, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_occluder_offset\n\n{-# NOINLINE bindTileSet_tile_set_region #-}\n\n-- | Sets the tile's sub-region in the texture. This is common in texture atlases.\nbindTileSet_tile_set_region :: MethodBind\nbindTileSet_tile_set_region\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the tile's sub-region in the texture. This is common in texture atlases.\ntile_set_region ::\n                  (TileSet :< cls, Object :< cls) => cls -> Int -> Rect2 -> IO ()\ntile_set_region cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_set_region (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_region\" '[Int, Rect2] (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_region\n\n{-# NOINLINE bindTileSet_tile_set_shape #-}\n\n-- | Sets a shape for the tile, enabling collision.\nbindTileSet_tile_set_shape :: MethodBind\nbindTileSet_tile_set_shape\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a shape for the tile, enabling collision.\ntile_set_shape ::\n                 (TileSet :< cls, Object :< cls) =>\n                 cls -> Int -> Int -> Shape2D -> IO ()\ntile_set_shape cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_set_shape (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_shape\" '[Int, Int, Shape2D]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_shape\n\n{-# NOINLINE bindTileSet_tile_set_shape_offset #-}\n\n-- | Sets the offset of a tile's shape.\nbindTileSet_tile_set_shape_offset :: MethodBind\nbindTileSet_tile_set_shape_offset\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_shape_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the offset of a tile's shape.\ntile_set_shape_offset ::\n                        (TileSet :< cls, Object :< cls) =>\n                        cls -> Int -> Int -> Vector2 -> IO ()\ntile_set_shape_offset cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_set_shape_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_shape_offset\"\n           '[Int, Int, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_shape_offset\n\n{-# NOINLINE bindTileSet_tile_set_shape_one_way #-}\n\n-- | Enables one-way collision on a tile's shape.\nbindTileSet_tile_set_shape_one_way :: MethodBind\nbindTileSet_tile_set_shape_one_way\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_shape_one_way\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables one-way collision on a tile's shape.\ntile_set_shape_one_way ::\n                         (TileSet :< cls, Object :< cls) =>\n                         cls -> Int -> Int -> Bool -> IO ()\ntile_set_shape_one_way cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_set_shape_one_way\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_shape_one_way\"\n           '[Int, Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_shape_one_way\n\n{-# NOINLINE bindTileSet_tile_set_shape_one_way_margin #-}\n\nbindTileSet_tile_set_shape_one_way_margin :: MethodBind\nbindTileSet_tile_set_shape_one_way_margin\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_shape_one_way_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ntile_set_shape_one_way_margin ::\n                                (TileSet :< cls, Object :< cls) =>\n                                cls -> Int -> Int -> Float -> IO ()\ntile_set_shape_one_way_margin cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_set_shape_one_way_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_shape_one_way_margin\"\n           '[Int, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_shape_one_way_margin\n\n{-# NOINLINE bindTileSet_tile_set_shape_transform #-}\n\n-- | Sets a @Transform2D@ on a tile's shape.\nbindTileSet_tile_set_shape_transform :: MethodBind\nbindTileSet_tile_set_shape_transform\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_shape_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a @Transform2D@ on a tile's shape.\ntile_set_shape_transform ::\n                           (TileSet :< cls, Object :< cls) =>\n                           cls -> Int -> Int -> Transform2d -> IO ()\ntile_set_shape_transform cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_set_shape_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_shape_transform\"\n           '[Int, Int, Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_shape_transform\n\n{-# NOINLINE bindTileSet_tile_set_shapes #-}\n\n-- | Sets an array of shapes for the tile, enabling collision.\nbindTileSet_tile_set_shapes :: MethodBind\nbindTileSet_tile_set_shapes\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_shapes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets an array of shapes for the tile, enabling collision.\ntile_set_shapes ::\n                  (TileSet :< cls, Object :< cls) => cls -> Int -> Array -> IO ()\ntile_set_shapes cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_set_shapes (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_shapes\" '[Int, Array] (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_shapes\n\n{-# NOINLINE bindTileSet_tile_set_texture #-}\n\n-- | Sets the tile's texture.\nbindTileSet_tile_set_texture :: MethodBind\nbindTileSet_tile_set_texture\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the tile's texture.\ntile_set_texture ::\n                   (TileSet :< cls, Object :< cls) => cls -> Int -> Texture -> IO ()\ntile_set_texture cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_set_texture (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_texture\" '[Int, Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_texture\n\n{-# NOINLINE bindTileSet_tile_set_texture_offset #-}\n\n-- | Sets the tile's texture offset.\nbindTileSet_tile_set_texture_offset :: MethodBind\nbindTileSet_tile_set_texture_offset\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_texture_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the tile's texture offset.\ntile_set_texture_offset ::\n                          (TileSet :< cls, Object :< cls) => cls -> Int -> Vector2 -> IO ()\ntile_set_texture_offset cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_set_texture_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_texture_offset\"\n           '[Int, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_texture_offset\n\n{-# NOINLINE bindTileSet_tile_set_tile_mode #-}\n\n-- | Sets the tile's @enum TileMode@.\nbindTileSet_tile_set_tile_mode :: MethodBind\nbindTileSet_tile_set_tile_mode\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_tile_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the tile's @enum TileMode@.\ntile_set_tile_mode ::\n                     (TileSet :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\ntile_set_tile_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_set_tile_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_tile_mode\" '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_tile_mode\n\n{-# NOINLINE bindTileSet_tile_set_z_index #-}\n\n-- | Sets the tile's drawing index.\nbindTileSet_tile_set_z_index :: MethodBind\nbindTileSet_tile_set_z_index\n  = unsafePerformIO $\n      withCString \"TileSet\" $\n        \\ clsNamePtr ->\n          withCString \"tile_set_z_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the tile's drawing index.\ntile_set_z_index ::\n                   (TileSet :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\ntile_set_z_index cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTileSet_tile_set_z_index (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TileSet \"tile_set_z_index\" '[Int, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.TileSet.tile_set_z_index"
  },
  {
    "path": "src/Godot/Core/Timer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Timer\n       (Godot.Core.Timer._TIMER_PROCESS_PHYSICS,\n        Godot.Core.Timer._TIMER_PROCESS_IDLE, Godot.Core.Timer.sig_timeout,\n        Godot.Core.Timer.get_time_left,\n        Godot.Core.Timer.get_timer_process_mode,\n        Godot.Core.Timer.get_wait_time, Godot.Core.Timer.has_autostart,\n        Godot.Core.Timer.is_one_shot, Godot.Core.Timer.is_paused,\n        Godot.Core.Timer.is_stopped, Godot.Core.Timer.set_autostart,\n        Godot.Core.Timer.set_one_shot, Godot.Core.Timer.set_paused,\n        Godot.Core.Timer.set_timer_process_mode,\n        Godot.Core.Timer.set_wait_time, Godot.Core.Timer.start,\n        Godot.Core.Timer.stop)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\n_TIMER_PROCESS_PHYSICS :: Int\n_TIMER_PROCESS_PHYSICS = 0\n\n_TIMER_PROCESS_IDLE :: Int\n_TIMER_PROCESS_IDLE = 1\n\n-- | Emitted when the timer reaches 0.\nsig_timeout :: Godot.Internal.Dispatch.Signal Timer\nsig_timeout = Godot.Internal.Dispatch.Signal \"timeout\"\n\ninstance NodeSignal Timer \"timeout\" '[]\n\ninstance NodeProperty Timer \"autostart\" Bool 'False where\n        nodeProperty\n          = (has_autostart, wrapDroppingSetter set_autostart, Nothing)\n\ninstance NodeProperty Timer \"one_shot\" Bool 'False where\n        nodeProperty\n          = (is_one_shot, wrapDroppingSetter set_one_shot, Nothing)\n\ninstance NodeProperty Timer \"paused\" Bool 'False where\n        nodeProperty = (is_paused, wrapDroppingSetter set_paused, Nothing)\n\ninstance NodeProperty Timer \"process_mode\" Int 'False where\n        nodeProperty\n          = (get_timer_process_mode,\n             wrapDroppingSetter set_timer_process_mode, Nothing)\n\ninstance NodeProperty Timer \"time_left\" Float 'True where\n        nodeProperty = (get_time_left, (), Nothing)\n\ninstance NodeProperty Timer \"wait_time\" Float 'False where\n        nodeProperty\n          = (get_wait_time, wrapDroppingSetter set_wait_time, Nothing)\n\n{-# NOINLINE bindTimer_get_time_left #-}\n\n-- | The timer's remaining time in seconds. Returns 0 if the timer is inactive.\n--   \t\t\t__Note:__ You cannot set this value. To change the timer's remaining time, use @method start@.\nbindTimer_get_time_left :: MethodBind\nbindTimer_get_time_left\n  = unsafePerformIO $\n      withCString \"Timer\" $\n        \\ clsNamePtr ->\n          withCString \"get_time_left\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The timer's remaining time in seconds. Returns 0 if the timer is inactive.\n--   \t\t\t__Note:__ You cannot set this value. To change the timer's remaining time, use @method start@.\nget_time_left :: (Timer :< cls, Object :< cls) => cls -> IO Float\nget_time_left cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTimer_get_time_left (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Timer \"get_time_left\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Timer.get_time_left\n\n{-# NOINLINE bindTimer_get_timer_process_mode #-}\n\n-- | Processing mode. See @enum TimerProcessMode@.\nbindTimer_get_timer_process_mode :: MethodBind\nbindTimer_get_timer_process_mode\n  = unsafePerformIO $\n      withCString \"Timer\" $\n        \\ clsNamePtr ->\n          withCString \"get_timer_process_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Processing mode. See @enum TimerProcessMode@.\nget_timer_process_mode ::\n                         (Timer :< cls, Object :< cls) => cls -> IO Int\nget_timer_process_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTimer_get_timer_process_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Timer \"get_timer_process_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Timer.get_timer_process_mode\n\n{-# NOINLINE bindTimer_get_wait_time #-}\n\n-- | Wait time in seconds.\nbindTimer_get_wait_time :: MethodBind\nbindTimer_get_wait_time\n  = unsafePerformIO $\n      withCString \"Timer\" $\n        \\ clsNamePtr ->\n          withCString \"get_wait_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Wait time in seconds.\nget_wait_time :: (Timer :< cls, Object :< cls) => cls -> IO Float\nget_wait_time cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTimer_get_wait_time (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Timer \"get_wait_time\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Timer.get_wait_time\n\n{-# NOINLINE bindTimer_has_autostart #-}\n\n-- | If @true@, the timer will automatically start when entering the scene tree.\n--   \t\t\t__Note:__ This property is automatically set to @false@ after the timer enters the scene tree and starts.\nbindTimer_has_autostart :: MethodBind\nbindTimer_has_autostart\n  = unsafePerformIO $\n      withCString \"Timer\" $\n        \\ clsNamePtr ->\n          withCString \"has_autostart\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the timer will automatically start when entering the scene tree.\n--   \t\t\t__Note:__ This property is automatically set to @false@ after the timer enters the scene tree and starts.\nhas_autostart :: (Timer :< cls, Object :< cls) => cls -> IO Bool\nhas_autostart cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTimer_has_autostart (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Timer \"has_autostart\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Timer.has_autostart\n\n{-# NOINLINE bindTimer_is_one_shot #-}\n\n-- | If @true@, the timer will stop when reaching 0. If @false@, it will restart.\nbindTimer_is_one_shot :: MethodBind\nbindTimer_is_one_shot\n  = unsafePerformIO $\n      withCString \"Timer\" $\n        \\ clsNamePtr ->\n          withCString \"is_one_shot\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the timer will stop when reaching 0. If @false@, it will restart.\nis_one_shot :: (Timer :< cls, Object :< cls) => cls -> IO Bool\nis_one_shot cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTimer_is_one_shot (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Timer \"is_one_shot\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Timer.is_one_shot\n\n{-# NOINLINE bindTimer_is_paused #-}\n\n-- | If @true@, the timer is paused and will not process until it is unpaused again, even if @method start@ is called.\nbindTimer_is_paused :: MethodBind\nbindTimer_is_paused\n  = unsafePerformIO $\n      withCString \"Timer\" $\n        \\ clsNamePtr ->\n          withCString \"is_paused\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the timer is paused and will not process until it is unpaused again, even if @method start@ is called.\nis_paused :: (Timer :< cls, Object :< cls) => cls -> IO Bool\nis_paused cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTimer_is_paused (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Timer \"is_paused\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Timer.is_paused\n\n{-# NOINLINE bindTimer_is_stopped #-}\n\n-- | Returns @true@ if the timer is stopped.\nbindTimer_is_stopped :: MethodBind\nbindTimer_is_stopped\n  = unsafePerformIO $\n      withCString \"Timer\" $\n        \\ clsNamePtr ->\n          withCString \"is_stopped\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the timer is stopped.\nis_stopped :: (Timer :< cls, Object :< cls) => cls -> IO Bool\nis_stopped cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTimer_is_stopped (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Timer \"is_stopped\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Timer.is_stopped\n\n{-# NOINLINE bindTimer_set_autostart #-}\n\n-- | If @true@, the timer will automatically start when entering the scene tree.\n--   \t\t\t__Note:__ This property is automatically set to @false@ after the timer enters the scene tree and starts.\nbindTimer_set_autostart :: MethodBind\nbindTimer_set_autostart\n  = unsafePerformIO $\n      withCString \"Timer\" $\n        \\ clsNamePtr ->\n          withCString \"set_autostart\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the timer will automatically start when entering the scene tree.\n--   \t\t\t__Note:__ This property is automatically set to @false@ after the timer enters the scene tree and starts.\nset_autostart ::\n                (Timer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_autostart cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTimer_set_autostart (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Timer \"set_autostart\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Timer.set_autostart\n\n{-# NOINLINE bindTimer_set_one_shot #-}\n\n-- | If @true@, the timer will stop when reaching 0. If @false@, it will restart.\nbindTimer_set_one_shot :: MethodBind\nbindTimer_set_one_shot\n  = unsafePerformIO $\n      withCString \"Timer\" $\n        \\ clsNamePtr ->\n          withCString \"set_one_shot\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the timer will stop when reaching 0. If @false@, it will restart.\nset_one_shot ::\n               (Timer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_one_shot cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTimer_set_one_shot (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Timer \"set_one_shot\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Timer.set_one_shot\n\n{-# NOINLINE bindTimer_set_paused #-}\n\n-- | If @true@, the timer is paused and will not process until it is unpaused again, even if @method start@ is called.\nbindTimer_set_paused :: MethodBind\nbindTimer_set_paused\n  = unsafePerformIO $\n      withCString \"Timer\" $\n        \\ clsNamePtr ->\n          withCString \"set_paused\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the timer is paused and will not process until it is unpaused again, even if @method start@ is called.\nset_paused :: (Timer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_paused cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTimer_set_paused (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Timer \"set_paused\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Timer.set_paused\n\n{-# NOINLINE bindTimer_set_timer_process_mode #-}\n\n-- | Processing mode. See @enum TimerProcessMode@.\nbindTimer_set_timer_process_mode :: MethodBind\nbindTimer_set_timer_process_mode\n  = unsafePerformIO $\n      withCString \"Timer\" $\n        \\ clsNamePtr ->\n          withCString \"set_timer_process_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Processing mode. See @enum TimerProcessMode@.\nset_timer_process_mode ::\n                         (Timer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_timer_process_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTimer_set_timer_process_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Timer \"set_timer_process_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Timer.set_timer_process_mode\n\n{-# NOINLINE bindTimer_set_wait_time #-}\n\n-- | Wait time in seconds.\nbindTimer_set_wait_time :: MethodBind\nbindTimer_set_wait_time\n  = unsafePerformIO $\n      withCString \"Timer\" $\n        \\ clsNamePtr ->\n          withCString \"set_wait_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Wait time in seconds.\nset_wait_time ::\n                (Timer :< cls, Object :< cls) => cls -> Float -> IO ()\nset_wait_time cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTimer_set_wait_time (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Timer \"set_wait_time\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Timer.set_wait_time\n\n{-# NOINLINE bindTimer_start #-}\n\n-- | Starts the timer. Sets @wait_time@ to @time_sec@ if @time_sec > 0@. This also resets the remaining time to @wait_time@.\n--   \t\t\t\t__Note:__ this method will not resume a paused timer. See @paused@.\nbindTimer_start :: MethodBind\nbindTimer_start\n  = unsafePerformIO $\n      withCString \"Timer\" $\n        \\ clsNamePtr ->\n          withCString \"start\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Starts the timer. Sets @wait_time@ to @time_sec@ if @time_sec > 0@. This also resets the remaining time to @wait_time@.\n--   \t\t\t\t__Note:__ this method will not resume a paused timer. See @paused@.\nstart ::\n        (Timer :< cls, Object :< cls) => cls -> Maybe Float -> IO ()\nstart cls arg1\n  = withVariantArray [maybe (VariantReal (-1)) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTimer_start (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Timer \"start\" '[Maybe Float] (IO ()) where\n        nodeMethod = Godot.Core.Timer.start\n\n{-# NOINLINE bindTimer_stop #-}\n\n-- | Stops the timer.\nbindTimer_stop :: MethodBind\nbindTimer_stop\n  = unsafePerformIO $\n      withCString \"Timer\" $\n        \\ clsNamePtr ->\n          withCString \"stop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops the timer.\nstop :: (Timer :< cls, Object :< cls) => cls -> IO ()\nstop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTimer_stop (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Timer \"stop\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Timer.stop"
  },
  {
    "path": "src/Godot/Core/ToolButton.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ToolButton () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Button()"
  },
  {
    "path": "src/Godot/Core/TouchScreenButton.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.TouchScreenButton\n       (Godot.Core.TouchScreenButton._VISIBILITY_ALWAYS,\n        Godot.Core.TouchScreenButton._VISIBILITY_TOUCHSCREEN_ONLY,\n        Godot.Core.TouchScreenButton.sig_pressed,\n        Godot.Core.TouchScreenButton.sig_released,\n        Godot.Core.TouchScreenButton._input,\n        Godot.Core.TouchScreenButton.get_action,\n        Godot.Core.TouchScreenButton.get_bitmask,\n        Godot.Core.TouchScreenButton.get_shape,\n        Godot.Core.TouchScreenButton.get_texture,\n        Godot.Core.TouchScreenButton.get_texture_pressed,\n        Godot.Core.TouchScreenButton.get_visibility_mode,\n        Godot.Core.TouchScreenButton.is_passby_press_enabled,\n        Godot.Core.TouchScreenButton.is_pressed,\n        Godot.Core.TouchScreenButton.is_shape_centered,\n        Godot.Core.TouchScreenButton.is_shape_visible,\n        Godot.Core.TouchScreenButton.set_action,\n        Godot.Core.TouchScreenButton.set_bitmask,\n        Godot.Core.TouchScreenButton.set_passby_press,\n        Godot.Core.TouchScreenButton.set_shape,\n        Godot.Core.TouchScreenButton.set_shape_centered,\n        Godot.Core.TouchScreenButton.set_shape_visible,\n        Godot.Core.TouchScreenButton.set_texture,\n        Godot.Core.TouchScreenButton.set_texture_pressed,\n        Godot.Core.TouchScreenButton.set_visibility_mode)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\n_VISIBILITY_ALWAYS :: Int\n_VISIBILITY_ALWAYS = 0\n\n_VISIBILITY_TOUCHSCREEN_ONLY :: Int\n_VISIBILITY_TOUCHSCREEN_ONLY = 1\n\n-- | Emitted when the button is pressed (down).\nsig_pressed :: Godot.Internal.Dispatch.Signal TouchScreenButton\nsig_pressed = Godot.Internal.Dispatch.Signal \"pressed\"\n\ninstance NodeSignal TouchScreenButton \"pressed\" '[]\n\n-- | Emitted when the button is released (up).\nsig_released :: Godot.Internal.Dispatch.Signal TouchScreenButton\nsig_released = Godot.Internal.Dispatch.Signal \"released\"\n\ninstance NodeSignal TouchScreenButton \"released\" '[]\n\ninstance NodeProperty TouchScreenButton \"action\" GodotString 'False\n         where\n        nodeProperty = (get_action, wrapDroppingSetter set_action, Nothing)\n\ninstance NodeProperty TouchScreenButton \"bitmask\" BitMap 'False\n         where\n        nodeProperty\n          = (get_bitmask, wrapDroppingSetter set_bitmask, Nothing)\n\ninstance NodeProperty TouchScreenButton \"normal\" Texture 'False\n         where\n        nodeProperty\n          = (get_texture, wrapDroppingSetter set_texture, Nothing)\n\ninstance NodeProperty TouchScreenButton \"passby_press\" Bool 'False\n         where\n        nodeProperty\n          = (is_passby_press_enabled, wrapDroppingSetter set_passby_press,\n             Nothing)\n\ninstance NodeProperty TouchScreenButton \"pressed\" Texture 'False\n         where\n        nodeProperty\n          = (get_texture_pressed, wrapDroppingSetter set_texture_pressed,\n             Nothing)\n\ninstance NodeProperty TouchScreenButton \"shape\" Shape2D 'False\n         where\n        nodeProperty = (get_shape, wrapDroppingSetter set_shape, Nothing)\n\ninstance NodeProperty TouchScreenButton \"shape_centered\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_shape_centered, wrapDroppingSetter set_shape_centered,\n             Nothing)\n\ninstance NodeProperty TouchScreenButton \"shape_visible\" Bool 'False\n         where\n        nodeProperty\n          = (is_shape_visible, wrapDroppingSetter set_shape_visible, Nothing)\n\ninstance NodeProperty TouchScreenButton \"visibility_mode\" Int\n           'False\n         where\n        nodeProperty\n          = (get_visibility_mode, wrapDroppingSetter set_visibility_mode,\n             Nothing)\n\n{-# NOINLINE bindTouchScreenButton__input #-}\n\nbindTouchScreenButton__input :: MethodBind\nbindTouchScreenButton__input\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_input ::\n         (TouchScreenButton :< cls, Object :< cls) =>\n         cls -> InputEvent -> IO ()\n_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton__input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"_input\" '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TouchScreenButton._input\n\n{-# NOINLINE bindTouchScreenButton_get_action #-}\n\n-- | The button's action. Actions can be handled with @InputEventAction@.\nbindTouchScreenButton_get_action :: MethodBind\nbindTouchScreenButton_get_action\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_action\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The button's action. Actions can be handled with @InputEventAction@.\nget_action ::\n             (TouchScreenButton :< cls, Object :< cls) => cls -> IO GodotString\nget_action cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton_get_action\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"get_action\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.get_action\n\n{-# NOINLINE bindTouchScreenButton_get_bitmask #-}\n\n-- | The button's bitmask.\nbindTouchScreenButton_get_bitmask :: MethodBind\nbindTouchScreenButton_get_bitmask\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_bitmask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The button's bitmask.\nget_bitmask ::\n              (TouchScreenButton :< cls, Object :< cls) => cls -> IO BitMap\nget_bitmask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton_get_bitmask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"get_bitmask\" '[] (IO BitMap)\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.get_bitmask\n\n{-# NOINLINE bindTouchScreenButton_get_shape #-}\n\n-- | The button's shape.\nbindTouchScreenButton_get_shape :: MethodBind\nbindTouchScreenButton_get_shape\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The button's shape.\nget_shape ::\n            (TouchScreenButton :< cls, Object :< cls) => cls -> IO Shape2D\nget_shape cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton_get_shape (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"get_shape\" '[] (IO Shape2D)\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.get_shape\n\n{-# NOINLINE bindTouchScreenButton_get_texture #-}\n\n-- | The button's texture for the normal state.\nbindTouchScreenButton_get_texture :: MethodBind\nbindTouchScreenButton_get_texture\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The button's texture for the normal state.\nget_texture ::\n              (TouchScreenButton :< cls, Object :< cls) => cls -> IO Texture\nget_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton_get_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"get_texture\" '[]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.get_texture\n\n{-# NOINLINE bindTouchScreenButton_get_texture_pressed #-}\n\n-- | The button's texture for the pressed state.\nbindTouchScreenButton_get_texture_pressed :: MethodBind\nbindTouchScreenButton_get_texture_pressed\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The button's texture for the pressed state.\nget_texture_pressed ::\n                      (TouchScreenButton :< cls, Object :< cls) => cls -> IO Texture\nget_texture_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton_get_texture_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"get_texture_pressed\" '[]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.get_texture_pressed\n\n{-# NOINLINE bindTouchScreenButton_get_visibility_mode #-}\n\n-- | The button's visibility mode. See @enum VisibilityMode@ for possible values.\nbindTouchScreenButton_get_visibility_mode :: MethodBind\nbindTouchScreenButton_get_visibility_mode\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"get_visibility_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The button's visibility mode. See @enum VisibilityMode@ for possible values.\nget_visibility_mode ::\n                      (TouchScreenButton :< cls, Object :< cls) => cls -> IO Int\nget_visibility_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton_get_visibility_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"get_visibility_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.get_visibility_mode\n\n{-# NOINLINE bindTouchScreenButton_is_passby_press_enabled #-}\n\n-- | If @true@, pass-by presses are enabled.\nbindTouchScreenButton_is_passby_press_enabled :: MethodBind\nbindTouchScreenButton_is_passby_press_enabled\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"is_passby_press_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, pass-by presses are enabled.\nis_passby_press_enabled ::\n                          (TouchScreenButton :< cls, Object :< cls) => cls -> IO Bool\nis_passby_press_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindTouchScreenButton_is_passby_press_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"is_passby_press_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.is_passby_press_enabled\n\n{-# NOINLINE bindTouchScreenButton_is_pressed #-}\n\n-- | Returns @true@ if this button is currently pressed.\nbindTouchScreenButton_is_pressed :: MethodBind\nbindTouchScreenButton_is_pressed\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"is_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this button is currently pressed.\nis_pressed ::\n             (TouchScreenButton :< cls, Object :< cls) => cls -> IO Bool\nis_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton_is_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"is_pressed\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.is_pressed\n\n{-# NOINLINE bindTouchScreenButton_is_shape_centered #-}\n\n-- | If @true@, the button's shape is centered in the provided texture. If no texture is used, this property has no effect.\nbindTouchScreenButton_is_shape_centered :: MethodBind\nbindTouchScreenButton_is_shape_centered\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"is_shape_centered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the button's shape is centered in the provided texture. If no texture is used, this property has no effect.\nis_shape_centered ::\n                    (TouchScreenButton :< cls, Object :< cls) => cls -> IO Bool\nis_shape_centered cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton_is_shape_centered\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"is_shape_centered\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.is_shape_centered\n\n{-# NOINLINE bindTouchScreenButton_is_shape_visible #-}\n\n-- | If @true@, the button's shape is visible.\nbindTouchScreenButton_is_shape_visible :: MethodBind\nbindTouchScreenButton_is_shape_visible\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"is_shape_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the button's shape is visible.\nis_shape_visible ::\n                   (TouchScreenButton :< cls, Object :< cls) => cls -> IO Bool\nis_shape_visible cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton_is_shape_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"is_shape_visible\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.is_shape_visible\n\n{-# NOINLINE bindTouchScreenButton_set_action #-}\n\n-- | The button's action. Actions can be handled with @InputEventAction@.\nbindTouchScreenButton_set_action :: MethodBind\nbindTouchScreenButton_set_action\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_action\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The button's action. Actions can be handled with @InputEventAction@.\nset_action ::\n             (TouchScreenButton :< cls, Object :< cls) =>\n             cls -> GodotString -> IO ()\nset_action cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton_set_action\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"set_action\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.set_action\n\n{-# NOINLINE bindTouchScreenButton_set_bitmask #-}\n\n-- | The button's bitmask.\nbindTouchScreenButton_set_bitmask :: MethodBind\nbindTouchScreenButton_set_bitmask\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_bitmask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The button's bitmask.\nset_bitmask ::\n              (TouchScreenButton :< cls, Object :< cls) => cls -> BitMap -> IO ()\nset_bitmask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton_set_bitmask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"set_bitmask\" '[BitMap]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.set_bitmask\n\n{-# NOINLINE bindTouchScreenButton_set_passby_press #-}\n\n-- | If @true@, pass-by presses are enabled.\nbindTouchScreenButton_set_passby_press :: MethodBind\nbindTouchScreenButton_set_passby_press\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_passby_press\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, pass-by presses are enabled.\nset_passby_press ::\n                   (TouchScreenButton :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_passby_press cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton_set_passby_press\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"set_passby_press\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.set_passby_press\n\n{-# NOINLINE bindTouchScreenButton_set_shape #-}\n\n-- | The button's shape.\nbindTouchScreenButton_set_shape :: MethodBind\nbindTouchScreenButton_set_shape\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The button's shape.\nset_shape ::\n            (TouchScreenButton :< cls, Object :< cls) =>\n            cls -> Shape2D -> IO ()\nset_shape cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton_set_shape (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"set_shape\" '[Shape2D]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.set_shape\n\n{-# NOINLINE bindTouchScreenButton_set_shape_centered #-}\n\n-- | If @true@, the button's shape is centered in the provided texture. If no texture is used, this property has no effect.\nbindTouchScreenButton_set_shape_centered :: MethodBind\nbindTouchScreenButton_set_shape_centered\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_shape_centered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the button's shape is centered in the provided texture. If no texture is used, this property has no effect.\nset_shape_centered ::\n                     (TouchScreenButton :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_shape_centered cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton_set_shape_centered\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"set_shape_centered\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.set_shape_centered\n\n{-# NOINLINE bindTouchScreenButton_set_shape_visible #-}\n\n-- | If @true@, the button's shape is visible.\nbindTouchScreenButton_set_shape_visible :: MethodBind\nbindTouchScreenButton_set_shape_visible\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_shape_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the button's shape is visible.\nset_shape_visible ::\n                    (TouchScreenButton :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_shape_visible cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton_set_shape_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"set_shape_visible\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.set_shape_visible\n\n{-# NOINLINE bindTouchScreenButton_set_texture #-}\n\n-- | The button's texture for the normal state.\nbindTouchScreenButton_set_texture :: MethodBind\nbindTouchScreenButton_set_texture\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The button's texture for the normal state.\nset_texture ::\n              (TouchScreenButton :< cls, Object :< cls) =>\n              cls -> Texture -> IO ()\nset_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton_set_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"set_texture\" '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.set_texture\n\n{-# NOINLINE bindTouchScreenButton_set_texture_pressed #-}\n\n-- | The button's texture for the pressed state.\nbindTouchScreenButton_set_texture_pressed :: MethodBind\nbindTouchScreenButton_set_texture_pressed\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The button's texture for the pressed state.\nset_texture_pressed ::\n                      (TouchScreenButton :< cls, Object :< cls) =>\n                      cls -> Texture -> IO ()\nset_texture_pressed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton_set_texture_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"set_texture_pressed\"\n           '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.set_texture_pressed\n\n{-# NOINLINE bindTouchScreenButton_set_visibility_mode #-}\n\n-- | The button's visibility mode. See @enum VisibilityMode@ for possible values.\nbindTouchScreenButton_set_visibility_mode :: MethodBind\nbindTouchScreenButton_set_visibility_mode\n  = unsafePerformIO $\n      withCString \"TouchScreenButton\" $\n        \\ clsNamePtr ->\n          withCString \"set_visibility_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The button's visibility mode. See @enum VisibilityMode@ for possible values.\nset_visibility_mode ::\n                      (TouchScreenButton :< cls, Object :< cls) => cls -> Int -> IO ()\nset_visibility_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTouchScreenButton_set_visibility_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TouchScreenButton \"set_visibility_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TouchScreenButton.set_visibility_mode"
  },
  {
    "path": "src/Godot/Core/Translation.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Translation\n       (Godot.Core.Translation._get_messages,\n        Godot.Core.Translation._set_messages,\n        Godot.Core.Translation.add_message,\n        Godot.Core.Translation.erase_message,\n        Godot.Core.Translation.get_locale,\n        Godot.Core.Translation.get_message,\n        Godot.Core.Translation.get_message_count,\n        Godot.Core.Translation.get_message_list,\n        Godot.Core.Translation.set_locale)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty Translation \"locale\" GodotString 'False where\n        nodeProperty = (get_locale, wrapDroppingSetter set_locale, Nothing)\n\ninstance NodeProperty Translation \"messages\" PoolStringArray 'False\n         where\n        nodeProperty\n          = (_get_messages, wrapDroppingSetter _set_messages, Nothing)\n\n{-# NOINLINE bindTranslation__get_messages #-}\n\nbindTranslation__get_messages :: MethodBind\nbindTranslation__get_messages\n  = unsafePerformIO $\n      withCString \"Translation\" $\n        \\ clsNamePtr ->\n          withCString \"_get_messages\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_messages ::\n                (Translation :< cls, Object :< cls) => cls -> IO PoolStringArray\n_get_messages cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTranslation__get_messages (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Translation \"_get_messages\" '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.Translation._get_messages\n\n{-# NOINLINE bindTranslation__set_messages #-}\n\nbindTranslation__set_messages :: MethodBind\nbindTranslation__set_messages\n  = unsafePerformIO $\n      withCString \"Translation\" $\n        \\ clsNamePtr ->\n          withCString \"_set_messages\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_messages ::\n                (Translation :< cls, Object :< cls) =>\n                cls -> PoolStringArray -> IO ()\n_set_messages cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTranslation__set_messages (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Translation \"_set_messages\" '[PoolStringArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Translation._set_messages\n\n{-# NOINLINE bindTranslation_add_message #-}\n\n-- | Adds a message if nonexistent, followed by its translation.\nbindTranslation_add_message :: MethodBind\nbindTranslation_add_message\n  = unsafePerformIO $\n      withCString \"Translation\" $\n        \\ clsNamePtr ->\n          withCString \"add_message\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a message if nonexistent, followed by its translation.\nadd_message ::\n              (Translation :< cls, Object :< cls) =>\n              cls -> GodotString -> GodotString -> IO ()\nadd_message cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTranslation_add_message (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Translation \"add_message\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Translation.add_message\n\n{-# NOINLINE bindTranslation_erase_message #-}\n\n-- | Erases a message.\nbindTranslation_erase_message :: MethodBind\nbindTranslation_erase_message\n  = unsafePerformIO $\n      withCString \"Translation\" $\n        \\ clsNamePtr ->\n          withCString \"erase_message\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Erases a message.\nerase_message ::\n                (Translation :< cls, Object :< cls) => cls -> GodotString -> IO ()\nerase_message cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTranslation_erase_message (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Translation \"erase_message\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Translation.erase_message\n\n{-# NOINLINE bindTranslation_get_locale #-}\n\n-- | The locale of the translation.\nbindTranslation_get_locale :: MethodBind\nbindTranslation_get_locale\n  = unsafePerformIO $\n      withCString \"Translation\" $\n        \\ clsNamePtr ->\n          withCString \"get_locale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The locale of the translation.\nget_locale ::\n             (Translation :< cls, Object :< cls) => cls -> IO GodotString\nget_locale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTranslation_get_locale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Translation \"get_locale\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Translation.get_locale\n\n{-# NOINLINE bindTranslation_get_message #-}\n\n-- | Returns a message's translation.\nbindTranslation_get_message :: MethodBind\nbindTranslation_get_message\n  = unsafePerformIO $\n      withCString \"Translation\" $\n        \\ clsNamePtr ->\n          withCString \"get_message\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a message's translation.\nget_message ::\n              (Translation :< cls, Object :< cls) =>\n              cls -> GodotString -> IO GodotString\nget_message cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTranslation_get_message (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Translation \"get_message\" '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Translation.get_message\n\n{-# NOINLINE bindTranslation_get_message_count #-}\n\n-- | Returns the number of existing messages.\nbindTranslation_get_message_count :: MethodBind\nbindTranslation_get_message_count\n  = unsafePerformIO $\n      withCString \"Translation\" $\n        \\ clsNamePtr ->\n          withCString \"get_message_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of existing messages.\nget_message_count ::\n                    (Translation :< cls, Object :< cls) => cls -> IO Int\nget_message_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTranslation_get_message_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Translation \"get_message_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Translation.get_message_count\n\n{-# NOINLINE bindTranslation_get_message_list #-}\n\n-- | Returns all the messages (keys).\nbindTranslation_get_message_list :: MethodBind\nbindTranslation_get_message_list\n  = unsafePerformIO $\n      withCString \"Translation\" $\n        \\ clsNamePtr ->\n          withCString \"get_message_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns all the messages (keys).\nget_message_list ::\n                   (Translation :< cls, Object :< cls) => cls -> IO PoolStringArray\nget_message_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTranslation_get_message_list\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Translation \"get_message_list\" '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Core.Translation.get_message_list\n\n{-# NOINLINE bindTranslation_set_locale #-}\n\n-- | The locale of the translation.\nbindTranslation_set_locale :: MethodBind\nbindTranslation_set_locale\n  = unsafePerformIO $\n      withCString \"Translation\" $\n        \\ clsNamePtr ->\n          withCString \"set_locale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The locale of the translation.\nset_locale ::\n             (Translation :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_locale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTranslation_set_locale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Translation \"set_locale\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.Translation.set_locale"
  },
  {
    "path": "src/Godot/Core/TranslationServer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.TranslationServer\n       (Godot.Core.TranslationServer.add_translation,\n        Godot.Core.TranslationServer.clear,\n        Godot.Core.TranslationServer.get_loaded_locales,\n        Godot.Core.TranslationServer.get_locale,\n        Godot.Core.TranslationServer.get_locale_name,\n        Godot.Core.TranslationServer.remove_translation,\n        Godot.Core.TranslationServer.set_locale,\n        Godot.Core.TranslationServer.translate)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n{-# NOINLINE bindTranslationServer_add_translation #-}\n\n-- | Adds a @Translation@ resource.\nbindTranslationServer_add_translation :: MethodBind\nbindTranslationServer_add_translation\n  = unsafePerformIO $\n      withCString \"TranslationServer\" $\n        \\ clsNamePtr ->\n          withCString \"add_translation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @Translation@ resource.\nadd_translation ::\n                  (TranslationServer :< cls, Object :< cls) =>\n                  cls -> Translation -> IO ()\nadd_translation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTranslationServer_add_translation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TranslationServer \"add_translation\"\n           '[Translation]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TranslationServer.add_translation\n\n{-# NOINLINE bindTranslationServer_clear #-}\n\n-- | Clears the server from all translations.\nbindTranslationServer_clear :: MethodBind\nbindTranslationServer_clear\n  = unsafePerformIO $\n      withCString \"TranslationServer\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears the server from all translations.\nclear :: (TranslationServer :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTranslationServer_clear (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TranslationServer \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TranslationServer.clear\n\n{-# NOINLINE bindTranslationServer_get_loaded_locales #-}\n\n-- | Returns an Array of all loaded locales of the game.\nbindTranslationServer_get_loaded_locales :: MethodBind\nbindTranslationServer_get_loaded_locales\n  = unsafePerformIO $\n      withCString \"TranslationServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_loaded_locales\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an Array of all loaded locales of the game.\nget_loaded_locales ::\n                     (TranslationServer :< cls, Object :< cls) => cls -> IO Array\nget_loaded_locales cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTranslationServer_get_loaded_locales\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TranslationServer \"get_loaded_locales\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.TranslationServer.get_loaded_locales\n\n{-# NOINLINE bindTranslationServer_get_locale #-}\n\n-- | Returns the current locale of the game.\nbindTranslationServer_get_locale :: MethodBind\nbindTranslationServer_get_locale\n  = unsafePerformIO $\n      withCString \"TranslationServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_locale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current locale of the game.\nget_locale ::\n             (TranslationServer :< cls, Object :< cls) => cls -> IO GodotString\nget_locale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTranslationServer_get_locale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TranslationServer \"get_locale\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.TranslationServer.get_locale\n\n{-# NOINLINE bindTranslationServer_get_locale_name #-}\n\n-- | Returns a locale's language and its variant (e.g. @\"en_US\"@ would return @\"English (United States)\"@).\nbindTranslationServer_get_locale_name :: MethodBind\nbindTranslationServer_get_locale_name\n  = unsafePerformIO $\n      withCString \"TranslationServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_locale_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a locale's language and its variant (e.g. @\"en_US\"@ would return @\"English (United States)\"@).\nget_locale_name ::\n                  (TranslationServer :< cls, Object :< cls) =>\n                  cls -> GodotString -> IO GodotString\nget_locale_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTranslationServer_get_locale_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TranslationServer \"get_locale_name\"\n           '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.TranslationServer.get_locale_name\n\n{-# NOINLINE bindTranslationServer_remove_translation #-}\n\n-- | Removes the given translation from the server.\nbindTranslationServer_remove_translation :: MethodBind\nbindTranslationServer_remove_translation\n  = unsafePerformIO $\n      withCString \"TranslationServer\" $\n        \\ clsNamePtr ->\n          withCString \"remove_translation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the given translation from the server.\nremove_translation ::\n                     (TranslationServer :< cls, Object :< cls) =>\n                     cls -> Translation -> IO ()\nremove_translation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTranslationServer_remove_translation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TranslationServer \"remove_translation\"\n           '[Translation]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TranslationServer.remove_translation\n\n{-# NOINLINE bindTranslationServer_set_locale #-}\n\n-- | Sets the locale of the game.\nbindTranslationServer_set_locale :: MethodBind\nbindTranslationServer_set_locale\n  = unsafePerformIO $\n      withCString \"TranslationServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_locale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the locale of the game.\nset_locale ::\n             (TranslationServer :< cls, Object :< cls) =>\n             cls -> GodotString -> IO ()\nset_locale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTranslationServer_set_locale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TranslationServer \"set_locale\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TranslationServer.set_locale\n\n{-# NOINLINE bindTranslationServer_translate #-}\n\n-- | Returns the current locale's translation for the given message (key).\nbindTranslationServer_translate :: MethodBind\nbindTranslationServer_translate\n  = unsafePerformIO $\n      withCString \"TranslationServer\" $\n        \\ clsNamePtr ->\n          withCString \"translate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current locale's translation for the given message (key).\ntranslate ::\n            (TranslationServer :< cls, Object :< cls) =>\n            cls -> GodotString -> IO GodotString\ntranslate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTranslationServer_translate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TranslationServer \"translate\" '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.TranslationServer.translate"
  },
  {
    "path": "src/Godot/Core/Tree.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Tree\n       (Godot.Core.Tree._DROP_MODE_DISABLED, Godot.Core.Tree._SELECT_ROW,\n        Godot.Core.Tree._SELECT_MULTI, Godot.Core.Tree._DROP_MODE_ON_ITEM,\n        Godot.Core.Tree._DROP_MODE_INBETWEEN,\n        Godot.Core.Tree._SELECT_SINGLE, Godot.Core.Tree.sig_button_pressed,\n        Godot.Core.Tree.sig_cell_selected,\n        Godot.Core.Tree.sig_column_title_pressed,\n        Godot.Core.Tree.sig_custom_popup_edited,\n        Godot.Core.Tree.sig_empty_rmb,\n        Godot.Core.Tree.sig_empty_tree_rmb_selected,\n        Godot.Core.Tree.sig_item_activated,\n        Godot.Core.Tree.sig_item_collapsed,\n        Godot.Core.Tree.sig_item_custom_button_pressed,\n        Godot.Core.Tree.sig_item_double_clicked,\n        Godot.Core.Tree.sig_item_edited,\n        Godot.Core.Tree.sig_item_rmb_edited,\n        Godot.Core.Tree.sig_item_rmb_selected,\n        Godot.Core.Tree.sig_item_selected,\n        Godot.Core.Tree.sig_multi_selected,\n        Godot.Core.Tree.sig_nothing_selected, Godot.Core.Tree._gui_input,\n        Godot.Core.Tree._popup_select,\n        Godot.Core.Tree._range_click_timeout,\n        Godot.Core.Tree._scroll_moved, Godot.Core.Tree._text_editor_enter,\n        Godot.Core.Tree._text_editor_modal_close,\n        Godot.Core.Tree._value_editor_changed,\n        Godot.Core.Tree.are_column_titles_visible, Godot.Core.Tree.clear,\n        Godot.Core.Tree.create_item,\n        Godot.Core.Tree.ensure_cursor_is_visible,\n        Godot.Core.Tree.get_allow_reselect,\n        Godot.Core.Tree.get_allow_rmb_select,\n        Godot.Core.Tree.get_column_at_position,\n        Godot.Core.Tree.get_column_title, Godot.Core.Tree.get_column_width,\n        Godot.Core.Tree.get_columns, Godot.Core.Tree.get_custom_popup_rect,\n        Godot.Core.Tree.get_drop_mode_flags,\n        Godot.Core.Tree.get_drop_section_at_position,\n        Godot.Core.Tree.get_edited, Godot.Core.Tree.get_edited_column,\n        Godot.Core.Tree.get_item_area_rect,\n        Godot.Core.Tree.get_item_at_position,\n        Godot.Core.Tree.get_next_selected,\n        Godot.Core.Tree.get_pressed_button, Godot.Core.Tree.get_root,\n        Godot.Core.Tree.get_scroll, Godot.Core.Tree.get_select_mode,\n        Godot.Core.Tree.get_selected, Godot.Core.Tree.get_selected_column,\n        Godot.Core.Tree.is_folding_hidden, Godot.Core.Tree.is_root_hidden,\n        Godot.Core.Tree.set_allow_reselect,\n        Godot.Core.Tree.set_allow_rmb_select,\n        Godot.Core.Tree.set_column_expand,\n        Godot.Core.Tree.set_column_min_width,\n        Godot.Core.Tree.set_column_title,\n        Godot.Core.Tree.set_column_titles_visible,\n        Godot.Core.Tree.set_columns, Godot.Core.Tree.set_drop_mode_flags,\n        Godot.Core.Tree.set_hide_folding, Godot.Core.Tree.set_hide_root,\n        Godot.Core.Tree.set_select_mode)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()\n\n_DROP_MODE_DISABLED :: Int\n_DROP_MODE_DISABLED = 0\n\n_SELECT_ROW :: Int\n_SELECT_ROW = 1\n\n_SELECT_MULTI :: Int\n_SELECT_MULTI = 2\n\n_DROP_MODE_ON_ITEM :: Int\n_DROP_MODE_ON_ITEM = 1\n\n_DROP_MODE_INBETWEEN :: Int\n_DROP_MODE_INBETWEEN = 2\n\n_SELECT_SINGLE :: Int\n_SELECT_SINGLE = 0\n\n-- | Emitted when a button on the tree was pressed (see @method TreeItem.add_button@).\nsig_button_pressed :: Godot.Internal.Dispatch.Signal Tree\nsig_button_pressed\n  = Godot.Internal.Dispatch.Signal \"button_pressed\"\n\ninstance NodeSignal Tree \"button_pressed\" '[TreeItem, Int, Int]\n\n-- | Emitted when a cell is selected.\nsig_cell_selected :: Godot.Internal.Dispatch.Signal Tree\nsig_cell_selected = Godot.Internal.Dispatch.Signal \"cell_selected\"\n\ninstance NodeSignal Tree \"cell_selected\" '[]\n\n-- | Emitted when a column's title is pressed.\nsig_column_title_pressed :: Godot.Internal.Dispatch.Signal Tree\nsig_column_title_pressed\n  = Godot.Internal.Dispatch.Signal \"column_title_pressed\"\n\ninstance NodeSignal Tree \"column_title_pressed\" '[Int]\n\n-- | Emitted when a cell with the @TreeItem.CELL_MODE_CUSTOM@ is clicked to be edited.\nsig_custom_popup_edited :: Godot.Internal.Dispatch.Signal Tree\nsig_custom_popup_edited\n  = Godot.Internal.Dispatch.Signal \"custom_popup_edited\"\n\ninstance NodeSignal Tree \"custom_popup_edited\" '[Bool]\n\n-- | Emitted when the right mouse button is pressed in the empty space of the tree.\nsig_empty_rmb :: Godot.Internal.Dispatch.Signal Tree\nsig_empty_rmb = Godot.Internal.Dispatch.Signal \"empty_rmb\"\n\ninstance NodeSignal Tree \"empty_rmb\" '[Vector2]\n\n-- | Emitted when the right mouse button is pressed if right mouse button selection is active and the tree is empty.\nsig_empty_tree_rmb_selected :: Godot.Internal.Dispatch.Signal Tree\nsig_empty_tree_rmb_selected\n  = Godot.Internal.Dispatch.Signal \"empty_tree_rmb_selected\"\n\ninstance NodeSignal Tree \"empty_tree_rmb_selected\" '[Vector2]\n\n-- | Emitted when an item's label is double-clicked.\nsig_item_activated :: Godot.Internal.Dispatch.Signal Tree\nsig_item_activated\n  = Godot.Internal.Dispatch.Signal \"item_activated\"\n\ninstance NodeSignal Tree \"item_activated\" '[]\n\n-- | Emitted when an item is collapsed by a click on the folding arrow.\nsig_item_collapsed :: Godot.Internal.Dispatch.Signal Tree\nsig_item_collapsed\n  = Godot.Internal.Dispatch.Signal \"item_collapsed\"\n\ninstance NodeSignal Tree \"item_collapsed\" '[TreeItem]\n\n-- | Emitted when a custom button is pressed (i.e. in a @TreeItem.CELL_MODE_CUSTOM@ mode cell).\nsig_item_custom_button_pressed ::\n                               Godot.Internal.Dispatch.Signal Tree\nsig_item_custom_button_pressed\n  = Godot.Internal.Dispatch.Signal \"item_custom_button_pressed\"\n\ninstance NodeSignal Tree \"item_custom_button_pressed\" '[]\n\n-- | Emitted when an item's icon is double-clicked.\nsig_item_double_clicked :: Godot.Internal.Dispatch.Signal Tree\nsig_item_double_clicked\n  = Godot.Internal.Dispatch.Signal \"item_double_clicked\"\n\ninstance NodeSignal Tree \"item_double_clicked\" '[]\n\n-- | Emitted when an item is edited.\nsig_item_edited :: Godot.Internal.Dispatch.Signal Tree\nsig_item_edited = Godot.Internal.Dispatch.Signal \"item_edited\"\n\ninstance NodeSignal Tree \"item_edited\" '[]\n\n-- | Emitted when an item is edited using the right mouse button.\nsig_item_rmb_edited :: Godot.Internal.Dispatch.Signal Tree\nsig_item_rmb_edited\n  = Godot.Internal.Dispatch.Signal \"item_rmb_edited\"\n\ninstance NodeSignal Tree \"item_rmb_edited\" '[]\n\n-- | Emitted when an item is selected with the right mouse button.\nsig_item_rmb_selected :: Godot.Internal.Dispatch.Signal Tree\nsig_item_rmb_selected\n  = Godot.Internal.Dispatch.Signal \"item_rmb_selected\"\n\ninstance NodeSignal Tree \"item_rmb_selected\" '[Vector2]\n\n-- | Emitted when an item is selected.\nsig_item_selected :: Godot.Internal.Dispatch.Signal Tree\nsig_item_selected = Godot.Internal.Dispatch.Signal \"item_selected\"\n\ninstance NodeSignal Tree \"item_selected\" '[]\n\n-- | Emitted instead of @item_selected@ if @select_mode@ is @SELECT_MULTI@.\nsig_multi_selected :: Godot.Internal.Dispatch.Signal Tree\nsig_multi_selected\n  = Godot.Internal.Dispatch.Signal \"multi_selected\"\n\ninstance NodeSignal Tree \"multi_selected\" '[TreeItem, Int, Bool]\n\n-- | Emitted when a left mouse button click does not select any item.\nsig_nothing_selected :: Godot.Internal.Dispatch.Signal Tree\nsig_nothing_selected\n  = Godot.Internal.Dispatch.Signal \"nothing_selected\"\n\ninstance NodeSignal Tree \"nothing_selected\" '[]\n\ninstance NodeProperty Tree \"allow_reselect\" Bool 'False where\n        nodeProperty\n          = (get_allow_reselect, wrapDroppingSetter set_allow_reselect,\n             Nothing)\n\ninstance NodeProperty Tree \"allow_rmb_select\" Bool 'False where\n        nodeProperty\n          = (get_allow_rmb_select, wrapDroppingSetter set_allow_rmb_select,\n             Nothing)\n\ninstance NodeProperty Tree \"columns\" Int 'False where\n        nodeProperty\n          = (get_columns, wrapDroppingSetter set_columns, Nothing)\n\ninstance NodeProperty Tree \"drop_mode_flags\" Int 'False where\n        nodeProperty\n          = (get_drop_mode_flags, wrapDroppingSetter set_drop_mode_flags,\n             Nothing)\n\ninstance NodeProperty Tree \"hide_folding\" Bool 'False where\n        nodeProperty\n          = (is_folding_hidden, wrapDroppingSetter set_hide_folding, Nothing)\n\ninstance NodeProperty Tree \"hide_root\" Bool 'False where\n        nodeProperty\n          = (is_root_hidden, wrapDroppingSetter set_hide_root, Nothing)\n\ninstance NodeProperty Tree \"select_mode\" Int 'False where\n        nodeProperty\n          = (get_select_mode, wrapDroppingSetter set_select_mode, Nothing)\n\n{-# NOINLINE bindTree__gui_input #-}\n\nbindTree__gui_input :: MethodBind\nbindTree__gui_input\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (Tree :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree__gui_input (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"_gui_input\" '[InputEvent] (IO ()) where\n        nodeMethod = Godot.Core.Tree._gui_input\n\n{-# NOINLINE bindTree__popup_select #-}\n\nbindTree__popup_select :: MethodBind\nbindTree__popup_select\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"_popup_select\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_popup_select ::\n                (Tree :< cls, Object :< cls) => cls -> Int -> IO ()\n_popup_select cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree__popup_select (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"_popup_select\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Tree._popup_select\n\n{-# NOINLINE bindTree__range_click_timeout #-}\n\nbindTree__range_click_timeout :: MethodBind\nbindTree__range_click_timeout\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"_range_click_timeout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_range_click_timeout ::\n                       (Tree :< cls, Object :< cls) => cls -> IO ()\n_range_click_timeout cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree__range_click_timeout (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"_range_click_timeout\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Tree._range_click_timeout\n\n{-# NOINLINE bindTree__scroll_moved #-}\n\nbindTree__scroll_moved :: MethodBind\nbindTree__scroll_moved\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"_scroll_moved\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_scroll_moved ::\n                (Tree :< cls, Object :< cls) => cls -> Float -> IO ()\n_scroll_moved cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree__scroll_moved (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"_scroll_moved\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Tree._scroll_moved\n\n{-# NOINLINE bindTree__text_editor_enter #-}\n\nbindTree__text_editor_enter :: MethodBind\nbindTree__text_editor_enter\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"_text_editor_enter\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_text_editor_enter ::\n                     (Tree :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_text_editor_enter cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree__text_editor_enter (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"_text_editor_enter\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Tree._text_editor_enter\n\n{-# NOINLINE bindTree__text_editor_modal_close #-}\n\nbindTree__text_editor_modal_close :: MethodBind\nbindTree__text_editor_modal_close\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"_text_editor_modal_close\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_text_editor_modal_close ::\n                           (Tree :< cls, Object :< cls) => cls -> IO ()\n_text_editor_modal_close cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree__text_editor_modal_close\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"_text_editor_modal_close\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.Tree._text_editor_modal_close\n\n{-# NOINLINE bindTree__value_editor_changed #-}\n\nbindTree__value_editor_changed :: MethodBind\nbindTree__value_editor_changed\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"_value_editor_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_value_editor_changed ::\n                        (Tree :< cls, Object :< cls) => cls -> Float -> IO ()\n_value_editor_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree__value_editor_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"_value_editor_changed\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.Tree._value_editor_changed\n\n{-# NOINLINE bindTree_are_column_titles_visible #-}\n\n-- | Returns @true@ if the column titles are being shown.\nbindTree_are_column_titles_visible :: MethodBind\nbindTree_are_column_titles_visible\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"are_column_titles_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the column titles are being shown.\nare_column_titles_visible ::\n                            (Tree :< cls, Object :< cls) => cls -> IO Bool\nare_column_titles_visible cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_are_column_titles_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"are_column_titles_visible\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Tree.are_column_titles_visible\n\n{-# NOINLINE bindTree_clear #-}\n\n-- | Clears the tree. This removes all items.\nbindTree_clear :: MethodBind\nbindTree_clear\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears the tree. This removes all items.\nclear :: (Tree :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_clear (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Tree.clear\n\n{-# NOINLINE bindTree_create_item #-}\n\n-- | Creates an item in the tree and adds it as a child of @parent@.\n--   \t\t\t\tIf @parent@ is @null@, the root item will be the parent, or the new item will be the root itself if the tree is empty.\n--   \t\t\t\tThe new item will be the @idx@th child of parent, or it will be the last child if there are not enough siblings.\nbindTree_create_item :: MethodBind\nbindTree_create_item\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"create_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates an item in the tree and adds it as a child of @parent@.\n--   \t\t\t\tIf @parent@ is @null@, the root item will be the parent, or the new item will be the root itself if the tree is empty.\n--   \t\t\t\tThe new item will be the @idx@th child of parent, or it will be the last child if there are not enough siblings.\ncreate_item ::\n              (Tree :< cls, Object :< cls) =>\n              cls -> Maybe Object -> Maybe Int -> IO TreeItem\ncreate_item cls arg1 arg2\n  = withVariantArray\n      [maybe VariantNil toVariant arg1,\n       maybe (VariantInt (-1)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_create_item (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"create_item\" '[Maybe Object, Maybe Int]\n           (IO TreeItem)\n         where\n        nodeMethod = Godot.Core.Tree.create_item\n\n{-# NOINLINE bindTree_ensure_cursor_is_visible #-}\n\n-- | Makes the currently focused cell visible.\n--   \t\t\t\tThis will scroll the tree if necessary. In @SELECT_ROW@ mode, this will not do horizontal scrolling, as all the cells in the selected row is focused logically.\n--   \t\t\t\t__Note:__ Despite the name of this method, the focus cursor itself is only visible in @SELECT_MULTI@ mode.\nbindTree_ensure_cursor_is_visible :: MethodBind\nbindTree_ensure_cursor_is_visible\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"ensure_cursor_is_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Makes the currently focused cell visible.\n--   \t\t\t\tThis will scroll the tree if necessary. In @SELECT_ROW@ mode, this will not do horizontal scrolling, as all the cells in the selected row is focused logically.\n--   \t\t\t\t__Note:__ Despite the name of this method, the focus cursor itself is only visible in @SELECT_MULTI@ mode.\nensure_cursor_is_visible ::\n                           (Tree :< cls, Object :< cls) => cls -> IO ()\nensure_cursor_is_visible cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_ensure_cursor_is_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"ensure_cursor_is_visible\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.Tree.ensure_cursor_is_visible\n\n{-# NOINLINE bindTree_get_allow_reselect #-}\n\n-- | If @true@, the currently selected cell may be selected again.\nbindTree_get_allow_reselect :: MethodBind\nbindTree_get_allow_reselect\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_allow_reselect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the currently selected cell may be selected again.\nget_allow_reselect ::\n                     (Tree :< cls, Object :< cls) => cls -> IO Bool\nget_allow_reselect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_allow_reselect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_allow_reselect\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Tree.get_allow_reselect\n\n{-# NOINLINE bindTree_get_allow_rmb_select #-}\n\n-- | If @true@, a right mouse button click can select items.\nbindTree_get_allow_rmb_select :: MethodBind\nbindTree_get_allow_rmb_select\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_allow_rmb_select\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, a right mouse button click can select items.\nget_allow_rmb_select ::\n                       (Tree :< cls, Object :< cls) => cls -> IO Bool\nget_allow_rmb_select cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_allow_rmb_select (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_allow_rmb_select\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Tree.get_allow_rmb_select\n\n{-# NOINLINE bindTree_get_column_at_position #-}\n\n-- | Returns the column index at @position@, or -1 if no item is there.\nbindTree_get_column_at_position :: MethodBind\nbindTree_get_column_at_position\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_column_at_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the column index at @position@, or -1 if no item is there.\nget_column_at_position ::\n                         (Tree :< cls, Object :< cls) => cls -> Vector2 -> IO Int\nget_column_at_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_column_at_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_column_at_position\" '[Vector2]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Tree.get_column_at_position\n\n{-# NOINLINE bindTree_get_column_title #-}\n\n-- | Returns the column's title.\nbindTree_get_column_title :: MethodBind\nbindTree_get_column_title\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_column_title\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the column's title.\nget_column_title ::\n                   (Tree :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_column_title cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_column_title (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_column_title\" '[Int] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.Tree.get_column_title\n\n{-# NOINLINE bindTree_get_column_width #-}\n\n-- | Returns the column's width in pixels.\nbindTree_get_column_width :: MethodBind\nbindTree_get_column_width\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_column_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the column's width in pixels.\nget_column_width ::\n                   (Tree :< cls, Object :< cls) => cls -> Int -> IO Int\nget_column_width cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_column_width (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_column_width\" '[Int] (IO Int) where\n        nodeMethod = Godot.Core.Tree.get_column_width\n\n{-# NOINLINE bindTree_get_columns #-}\n\n-- | The number of columns.\nbindTree_get_columns :: MethodBind\nbindTree_get_columns\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_columns\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of columns.\nget_columns :: (Tree :< cls, Object :< cls) => cls -> IO Int\nget_columns cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_columns (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_columns\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Tree.get_columns\n\n{-# NOINLINE bindTree_get_custom_popup_rect #-}\n\n-- | Returns the rectangle for custom popups. Helper to create custom cell controls that display a popup. See @method TreeItem.set_cell_mode@.\nbindTree_get_custom_popup_rect :: MethodBind\nbindTree_get_custom_popup_rect\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_custom_popup_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the rectangle for custom popups. Helper to create custom cell controls that display a popup. See @method TreeItem.set_cell_mode@.\nget_custom_popup_rect ::\n                        (Tree :< cls, Object :< cls) => cls -> IO Rect2\nget_custom_popup_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_custom_popup_rect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_custom_popup_rect\" '[] (IO Rect2)\n         where\n        nodeMethod = Godot.Core.Tree.get_custom_popup_rect\n\n{-# NOINLINE bindTree_get_drop_mode_flags #-}\n\n-- | The drop mode as an OR combination of flags. See @enum DropModeFlags@ constants. Once dropping is done, reverts to @DROP_MODE_DISABLED@. Setting this during @method Control.can_drop_data@ is recommended.\n--   \t\t\tThis controls the drop sections, i.e. the decision and drawing of possible drop locations based on the mouse position.\nbindTree_get_drop_mode_flags :: MethodBind\nbindTree_get_drop_mode_flags\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_drop_mode_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The drop mode as an OR combination of flags. See @enum DropModeFlags@ constants. Once dropping is done, reverts to @DROP_MODE_DISABLED@. Setting this during @method Control.can_drop_data@ is recommended.\n--   \t\t\tThis controls the drop sections, i.e. the decision and drawing of possible drop locations based on the mouse position.\nget_drop_mode_flags ::\n                      (Tree :< cls, Object :< cls) => cls -> IO Int\nget_drop_mode_flags cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_drop_mode_flags (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_drop_mode_flags\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Tree.get_drop_mode_flags\n\n{-# NOINLINE bindTree_get_drop_section_at_position #-}\n\n-- | Returns the drop section at @position@, or -100 if no item is there.\n--   \t\t\t\tValues -1, 0, or 1 will be returned for the \"above item\", \"on item\", and \"below item\" drop sections, respectively. See @enum DropModeFlags@ for a description of each drop section.\n--   \t\t\t\tTo get the item which the returned drop section is relative to, use @method get_item_at_position@.\nbindTree_get_drop_section_at_position :: MethodBind\nbindTree_get_drop_section_at_position\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_drop_section_at_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the drop section at @position@, or -100 if no item is there.\n--   \t\t\t\tValues -1, 0, or 1 will be returned for the \"above item\", \"on item\", and \"below item\" drop sections, respectively. See @enum DropModeFlags@ for a description of each drop section.\n--   \t\t\t\tTo get the item which the returned drop section is relative to, use @method get_item_at_position@.\nget_drop_section_at_position ::\n                               (Tree :< cls, Object :< cls) => cls -> Vector2 -> IO Int\nget_drop_section_at_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_drop_section_at_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_drop_section_at_position\" '[Vector2]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Tree.get_drop_section_at_position\n\n{-# NOINLINE bindTree_get_edited #-}\n\n-- | Returns the currently edited item. This is only available for custom cell mode.\nbindTree_get_edited :: MethodBind\nbindTree_get_edited\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_edited\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the currently edited item. This is only available for custom cell mode.\nget_edited :: (Tree :< cls, Object :< cls) => cls -> IO TreeItem\nget_edited cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_edited (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_edited\" '[] (IO TreeItem) where\n        nodeMethod = Godot.Core.Tree.get_edited\n\n{-# NOINLINE bindTree_get_edited_column #-}\n\n-- | Returns the column for the currently edited item. This is only available for custom cell mode.\nbindTree_get_edited_column :: MethodBind\nbindTree_get_edited_column\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_edited_column\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the column for the currently edited item. This is only available for custom cell mode.\nget_edited_column :: (Tree :< cls, Object :< cls) => cls -> IO Int\nget_edited_column cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_edited_column (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_edited_column\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Tree.get_edited_column\n\n{-# NOINLINE bindTree_get_item_area_rect #-}\n\n-- | Returns the rectangle area for the specified item. If @column@ is specified, only get the position and size of that column, otherwise get the rectangle containing all columns.\nbindTree_get_item_area_rect :: MethodBind\nbindTree_get_item_area_rect\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_area_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the rectangle area for the specified item. If @column@ is specified, only get the position and size of that column, otherwise get the rectangle containing all columns.\nget_item_area_rect ::\n                     (Tree :< cls, Object :< cls) =>\n                     cls -> Object -> Maybe Int -> IO Rect2\nget_item_area_rect cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (-1)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_item_area_rect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_item_area_rect\" '[Object, Maybe Int]\n           (IO Rect2)\n         where\n        nodeMethod = Godot.Core.Tree.get_item_area_rect\n\n{-# NOINLINE bindTree_get_item_at_position #-}\n\n-- | Returns the tree item at the specified position (relative to the tree origin position).\nbindTree_get_item_at_position :: MethodBind\nbindTree_get_item_at_position\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_item_at_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tree item at the specified position (relative to the tree origin position).\nget_item_at_position ::\n                       (Tree :< cls, Object :< cls) => cls -> Vector2 -> IO TreeItem\nget_item_at_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_item_at_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_item_at_position\" '[Vector2]\n           (IO TreeItem)\n         where\n        nodeMethod = Godot.Core.Tree.get_item_at_position\n\n{-# NOINLINE bindTree_get_next_selected #-}\n\n-- | Returns the next selected item after the given one, or @null@ if the end is reached.\n--   \t\t\t\tIf @from@ is @null@, this returns the first selected item.\nbindTree_get_next_selected :: MethodBind\nbindTree_get_next_selected\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_next_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the next selected item after the given one, or @null@ if the end is reached.\n--   \t\t\t\tIf @from@ is @null@, this returns the first selected item.\nget_next_selected ::\n                    (Tree :< cls, Object :< cls) => cls -> Object -> IO TreeItem\nget_next_selected cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_next_selected (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_next_selected\" '[Object]\n           (IO TreeItem)\n         where\n        nodeMethod = Godot.Core.Tree.get_next_selected\n\n{-# NOINLINE bindTree_get_pressed_button #-}\n\n-- | Returns the last pressed button's index.\nbindTree_get_pressed_button :: MethodBind\nbindTree_get_pressed_button\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_pressed_button\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the last pressed button's index.\nget_pressed_button :: (Tree :< cls, Object :< cls) => cls -> IO Int\nget_pressed_button cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_pressed_button (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_pressed_button\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Tree.get_pressed_button\n\n{-# NOINLINE bindTree_get_root #-}\n\n-- | Returns the tree's root item, or @null@ if the tree is empty.\nbindTree_get_root :: MethodBind\nbindTree_get_root\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_root\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tree's root item, or @null@ if the tree is empty.\nget_root :: (Tree :< cls, Object :< cls) => cls -> IO TreeItem\nget_root cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_root (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_root\" '[] (IO TreeItem) where\n        nodeMethod = Godot.Core.Tree.get_root\n\n{-# NOINLINE bindTree_get_scroll #-}\n\n-- | Returns the current scrolling position.\nbindTree_get_scroll :: MethodBind\nbindTree_get_scroll\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_scroll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current scrolling position.\nget_scroll :: (Tree :< cls, Object :< cls) => cls -> IO Vector2\nget_scroll cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_scroll (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_scroll\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.Tree.get_scroll\n\n{-# NOINLINE bindTree_get_select_mode #-}\n\n-- | Allows single or multiple selection. See the @enum SelectMode@ constants.\nbindTree_get_select_mode :: MethodBind\nbindTree_get_select_mode\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_select_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Allows single or multiple selection. See the @enum SelectMode@ constants.\nget_select_mode :: (Tree :< cls, Object :< cls) => cls -> IO Int\nget_select_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_select_mode (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_select_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Tree.get_select_mode\n\n{-# NOINLINE bindTree_get_selected #-}\n\n-- | Returns the currently focused item, or @null@ if no item is focused.\n--   \t\t\t\tIn @SELECT_ROW@ and @SELECT_SINGLE@ modes, the focused item is same as the selected item. In @SELECT_MULTI@ mode, the focused item is the item under the focus cursor, not necessarily selected.\n--   \t\t\t\tTo get the currently selected item(s), use @method get_next_selected@.\nbindTree_get_selected :: MethodBind\nbindTree_get_selected\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the currently focused item, or @null@ if no item is focused.\n--   \t\t\t\tIn @SELECT_ROW@ and @SELECT_SINGLE@ modes, the focused item is same as the selected item. In @SELECT_MULTI@ mode, the focused item is the item under the focus cursor, not necessarily selected.\n--   \t\t\t\tTo get the currently selected item(s), use @method get_next_selected@.\nget_selected :: (Tree :< cls, Object :< cls) => cls -> IO TreeItem\nget_selected cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_selected (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_selected\" '[] (IO TreeItem) where\n        nodeMethod = Godot.Core.Tree.get_selected\n\n{-# NOINLINE bindTree_get_selected_column #-}\n\n-- | Returns the currently focused column, or -1 if no column is focused.\n--   \t\t\t\tIn @SELECT_SINGLE@ mode, the focused column is the selected column. In @SELECT_ROW@ mode, the focused column is always 0 if any item is selected. In @SELECT_MULTI@ mode, the focused column is the column under the focus cursor, and there are not necessarily any column selected.\n--   \t\t\t\tTo tell whether a column of an item is selected, use @method TreeItem.is_selected@.\nbindTree_get_selected_column :: MethodBind\nbindTree_get_selected_column\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"get_selected_column\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the currently focused column, or -1 if no column is focused.\n--   \t\t\t\tIn @SELECT_SINGLE@ mode, the focused column is the selected column. In @SELECT_ROW@ mode, the focused column is always 0 if any item is selected. In @SELECT_MULTI@ mode, the focused column is the column under the focus cursor, and there are not necessarily any column selected.\n--   \t\t\t\tTo tell whether a column of an item is selected, use @method TreeItem.is_selected@.\nget_selected_column ::\n                      (Tree :< cls, Object :< cls) => cls -> IO Int\nget_selected_column cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_get_selected_column (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"get_selected_column\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Tree.get_selected_column\n\n{-# NOINLINE bindTree_is_folding_hidden #-}\n\n-- | If @true@, the folding arrow is hidden.\nbindTree_is_folding_hidden :: MethodBind\nbindTree_is_folding_hidden\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"is_folding_hidden\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the folding arrow is hidden.\nis_folding_hidden :: (Tree :< cls, Object :< cls) => cls -> IO Bool\nis_folding_hidden cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_is_folding_hidden (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"is_folding_hidden\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Tree.is_folding_hidden\n\n{-# NOINLINE bindTree_is_root_hidden #-}\n\n-- | If @true@, the tree's root is hidden.\nbindTree_is_root_hidden :: MethodBind\nbindTree_is_root_hidden\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"is_root_hidden\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the tree's root is hidden.\nis_root_hidden :: (Tree :< cls, Object :< cls) => cls -> IO Bool\nis_root_hidden cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_is_root_hidden (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"is_root_hidden\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Tree.is_root_hidden\n\n{-# NOINLINE bindTree_set_allow_reselect #-}\n\n-- | If @true@, the currently selected cell may be selected again.\nbindTree_set_allow_reselect :: MethodBind\nbindTree_set_allow_reselect\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"set_allow_reselect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the currently selected cell may be selected again.\nset_allow_reselect ::\n                     (Tree :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_allow_reselect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_set_allow_reselect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"set_allow_reselect\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Tree.set_allow_reselect\n\n{-# NOINLINE bindTree_set_allow_rmb_select #-}\n\n-- | If @true@, a right mouse button click can select items.\nbindTree_set_allow_rmb_select :: MethodBind\nbindTree_set_allow_rmb_select\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"set_allow_rmb_select\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, a right mouse button click can select items.\nset_allow_rmb_select ::\n                       (Tree :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_allow_rmb_select cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_set_allow_rmb_select (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"set_allow_rmb_select\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Tree.set_allow_rmb_select\n\n{-# NOINLINE bindTree_set_column_expand #-}\n\n-- | If @true@, the column will have the \"Expand\" flag of @Control@. Columns that have the \"Expand\" flag will use their \"min_width\" in a similar fashion to @Control.size_flags_stretch_ratio@.\nbindTree_set_column_expand :: MethodBind\nbindTree_set_column_expand\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"set_column_expand\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the column will have the \"Expand\" flag of @Control@. Columns that have the \"Expand\" flag will use their \"min_width\" in a similar fashion to @Control.size_flags_stretch_ratio@.\nset_column_expand ::\n                    (Tree :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_column_expand cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_set_column_expand (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"set_column_expand\" '[Int, Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Tree.set_column_expand\n\n{-# NOINLINE bindTree_set_column_min_width #-}\n\n-- | Sets the minimum width of a column. Columns that have the \"Expand\" flag will use their \"min_width\" in a similar fashion to @Control.size_flags_stretch_ratio@.\nbindTree_set_column_min_width :: MethodBind\nbindTree_set_column_min_width\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"set_column_min_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the minimum width of a column. Columns that have the \"Expand\" flag will use their \"min_width\" in a similar fashion to @Control.size_flags_stretch_ratio@.\nset_column_min_width ::\n                       (Tree :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nset_column_min_width cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_set_column_min_width (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"set_column_min_width\" '[Int, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Tree.set_column_min_width\n\n{-# NOINLINE bindTree_set_column_title #-}\n\n-- | Sets the title of a column.\nbindTree_set_column_title :: MethodBind\nbindTree_set_column_title\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"set_column_title\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the title of a column.\nset_column_title ::\n                   (Tree :< cls, Object :< cls) => cls -> Int -> GodotString -> IO ()\nset_column_title cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_set_column_title (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"set_column_title\" '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Tree.set_column_title\n\n{-# NOINLINE bindTree_set_column_titles_visible #-}\n\n-- | If @true@, column titles are visible.\nbindTree_set_column_titles_visible :: MethodBind\nbindTree_set_column_titles_visible\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"set_column_titles_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, column titles are visible.\nset_column_titles_visible ::\n                            (Tree :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_column_titles_visible cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_set_column_titles_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"set_column_titles_visible\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Tree.set_column_titles_visible\n\n{-# NOINLINE bindTree_set_columns #-}\n\n-- | The number of columns.\nbindTree_set_columns :: MethodBind\nbindTree_set_columns\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"set_columns\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The number of columns.\nset_columns :: (Tree :< cls, Object :< cls) => cls -> Int -> IO ()\nset_columns cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_set_columns (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"set_columns\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Tree.set_columns\n\n{-# NOINLINE bindTree_set_drop_mode_flags #-}\n\n-- | The drop mode as an OR combination of flags. See @enum DropModeFlags@ constants. Once dropping is done, reverts to @DROP_MODE_DISABLED@. Setting this during @method Control.can_drop_data@ is recommended.\n--   \t\t\tThis controls the drop sections, i.e. the decision and drawing of possible drop locations based on the mouse position.\nbindTree_set_drop_mode_flags :: MethodBind\nbindTree_set_drop_mode_flags\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"set_drop_mode_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The drop mode as an OR combination of flags. See @enum DropModeFlags@ constants. Once dropping is done, reverts to @DROP_MODE_DISABLED@. Setting this during @method Control.can_drop_data@ is recommended.\n--   \t\t\tThis controls the drop sections, i.e. the decision and drawing of possible drop locations based on the mouse position.\nset_drop_mode_flags ::\n                      (Tree :< cls, Object :< cls) => cls -> Int -> IO ()\nset_drop_mode_flags cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_set_drop_mode_flags (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"set_drop_mode_flags\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Tree.set_drop_mode_flags\n\n{-# NOINLINE bindTree_set_hide_folding #-}\n\n-- | If @true@, the folding arrow is hidden.\nbindTree_set_hide_folding :: MethodBind\nbindTree_set_hide_folding\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"set_hide_folding\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the folding arrow is hidden.\nset_hide_folding ::\n                   (Tree :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_hide_folding cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_set_hide_folding (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"set_hide_folding\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Tree.set_hide_folding\n\n{-# NOINLINE bindTree_set_hide_root #-}\n\n-- | If @true@, the tree's root is hidden.\nbindTree_set_hide_root :: MethodBind\nbindTree_set_hide_root\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"set_hide_root\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the tree's root is hidden.\nset_hide_root ::\n                (Tree :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_hide_root cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_set_hide_root (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"set_hide_root\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Tree.set_hide_root\n\n{-# NOINLINE bindTree_set_select_mode #-}\n\n-- | Allows single or multiple selection. See the @enum SelectMode@ constants.\nbindTree_set_select_mode :: MethodBind\nbindTree_set_select_mode\n  = unsafePerformIO $\n      withCString \"Tree\" $\n        \\ clsNamePtr ->\n          withCString \"set_select_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Allows single or multiple selection. See the @enum SelectMode@ constants.\nset_select_mode ::\n                  (Tree :< cls, Object :< cls) => cls -> Int -> IO ()\nset_select_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTree_set_select_mode (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tree \"set_select_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Tree.set_select_mode"
  },
  {
    "path": "src/Godot/Core/TreeItem.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.TreeItem\n       (Godot.Core.TreeItem._ALIGN_RIGHT,\n        Godot.Core.TreeItem._CELL_MODE_CUSTOM,\n        Godot.Core.TreeItem._CELL_MODE_ICON,\n        Godot.Core.TreeItem._CELL_MODE_RANGE,\n        Godot.Core.TreeItem._CELL_MODE_STRING,\n        Godot.Core.TreeItem._CELL_MODE_CHECK,\n        Godot.Core.TreeItem._ALIGN_LEFT, Godot.Core.TreeItem._ALIGN_CENTER,\n        Godot.Core.TreeItem.add_button, Godot.Core.TreeItem.call_recursive,\n        Godot.Core.TreeItem.clear_custom_bg_color,\n        Godot.Core.TreeItem.clear_custom_color,\n        Godot.Core.TreeItem.deselect, Godot.Core.TreeItem.erase_button,\n        Godot.Core.TreeItem.get_button,\n        Godot.Core.TreeItem.get_button_count,\n        Godot.Core.TreeItem.get_button_tooltip,\n        Godot.Core.TreeItem.get_cell_mode,\n        Godot.Core.TreeItem.get_children,\n        Godot.Core.TreeItem.get_custom_bg_color,\n        Godot.Core.TreeItem.get_custom_color,\n        Godot.Core.TreeItem.get_custom_minimum_height,\n        Godot.Core.TreeItem.get_expand_right, Godot.Core.TreeItem.get_icon,\n        Godot.Core.TreeItem.get_icon_max_width,\n        Godot.Core.TreeItem.get_icon_modulate,\n        Godot.Core.TreeItem.get_icon_region,\n        Godot.Core.TreeItem.get_metadata, Godot.Core.TreeItem.get_next,\n        Godot.Core.TreeItem.get_next_visible,\n        Godot.Core.TreeItem.get_parent, Godot.Core.TreeItem.get_prev,\n        Godot.Core.TreeItem.get_prev_visible,\n        Godot.Core.TreeItem.get_range,\n        Godot.Core.TreeItem.get_range_config, Godot.Core.TreeItem.get_text,\n        Godot.Core.TreeItem.get_text_align,\n        Godot.Core.TreeItem.get_tooltip,\n        Godot.Core.TreeItem.is_button_disabled,\n        Godot.Core.TreeItem.is_checked, Godot.Core.TreeItem.is_collapsed,\n        Godot.Core.TreeItem.is_custom_set_as_button,\n        Godot.Core.TreeItem.is_editable,\n        Godot.Core.TreeItem.is_folding_disabled,\n        Godot.Core.TreeItem.is_selectable, Godot.Core.TreeItem.is_selected,\n        Godot.Core.TreeItem.move_to_bottom,\n        Godot.Core.TreeItem.move_to_top, Godot.Core.TreeItem.remove_child,\n        Godot.Core.TreeItem.select, Godot.Core.TreeItem.set_button,\n        Godot.Core.TreeItem.set_button_disabled,\n        Godot.Core.TreeItem.set_cell_mode, Godot.Core.TreeItem.set_checked,\n        Godot.Core.TreeItem.set_collapsed,\n        Godot.Core.TreeItem.set_custom_as_button,\n        Godot.Core.TreeItem.set_custom_bg_color,\n        Godot.Core.TreeItem.set_custom_color,\n        Godot.Core.TreeItem.set_custom_draw,\n        Godot.Core.TreeItem.set_custom_minimum_height,\n        Godot.Core.TreeItem.set_disable_folding,\n        Godot.Core.TreeItem.set_editable,\n        Godot.Core.TreeItem.set_expand_right, Godot.Core.TreeItem.set_icon,\n        Godot.Core.TreeItem.set_icon_max_width,\n        Godot.Core.TreeItem.set_icon_modulate,\n        Godot.Core.TreeItem.set_icon_region,\n        Godot.Core.TreeItem.set_metadata, Godot.Core.TreeItem.set_range,\n        Godot.Core.TreeItem.set_range_config,\n        Godot.Core.TreeItem.set_selectable, Godot.Core.TreeItem.set_text,\n        Godot.Core.TreeItem.set_text_align,\n        Godot.Core.TreeItem.set_tooltip)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n_ALIGN_RIGHT :: Int\n_ALIGN_RIGHT = 2\n\n_CELL_MODE_CUSTOM :: Int\n_CELL_MODE_CUSTOM = 4\n\n_CELL_MODE_ICON :: Int\n_CELL_MODE_ICON = 3\n\n_CELL_MODE_RANGE :: Int\n_CELL_MODE_RANGE = 2\n\n_CELL_MODE_STRING :: Int\n_CELL_MODE_STRING = 0\n\n_CELL_MODE_CHECK :: Int\n_CELL_MODE_CHECK = 1\n\n_ALIGN_LEFT :: Int\n_ALIGN_LEFT = 0\n\n_ALIGN_CENTER :: Int\n_ALIGN_CENTER = 1\n\ninstance NodeProperty TreeItem \"collapsed\" Bool 'False where\n        nodeProperty\n          = (is_collapsed, wrapDroppingSetter set_collapsed, Nothing)\n\ninstance NodeProperty TreeItem \"custom_minimum_height\" Int 'False\n         where\n        nodeProperty\n          = (get_custom_minimum_height,\n             wrapDroppingSetter set_custom_minimum_height, Nothing)\n\ninstance NodeProperty TreeItem \"disable_folding\" Bool 'False where\n        nodeProperty\n          = (is_folding_disabled, wrapDroppingSetter set_disable_folding,\n             Nothing)\n\n{-# NOINLINE bindTreeItem_add_button #-}\n\n-- | Adds a button with @Texture@ @button@ at column @column@. The @button_idx@ index is used to identify the button when calling other methods. If not specified, the next available index is used, which may be retrieved by calling @method get_button_count@ immediately after this method. Optionally, the button can be @disabled@ and have a @tooltip@.\nbindTreeItem_add_button :: MethodBind\nbindTreeItem_add_button\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"add_button\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a button with @Texture@ @button@ at column @column@. The @button_idx@ index is used to identify the button when calling other methods. If not specified, the next available index is used, which may be retrieved by calling @method get_button_count@ immediately after this method. Optionally, the button can be @disabled@ and have a @tooltip@.\nadd_button ::\n             (TreeItem :< cls, Object :< cls) =>\n             cls ->\n               Int ->\n                 Texture -> Maybe Int -> Maybe Bool -> Maybe GodotString -> IO ()\nadd_button cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (-1)) toVariant arg3,\n       maybe (VariantBool False) toVariant arg4,\n       defaultedVariant VariantString \"\" arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_add_button (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"add_button\"\n           '[Int, Texture, Maybe Int, Maybe Bool, Maybe GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.add_button\n\n{-# NOINLINE bindTreeItem_call_recursive #-}\n\n-- | Calls the @method@ on the actual TreeItem and its children recursively. Pass parameters as a comma separated list.\nbindTreeItem_call_recursive :: MethodBind\nbindTreeItem_call_recursive\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"call_recursive\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calls the @method@ on the actual TreeItem and its children recursively. Pass parameters as a comma separated list.\ncall_recursive ::\n                 (TreeItem :< cls, Object :< cls) =>\n                 cls -> GodotString -> [Variant 'GodotTy] -> IO GodotVariant\ncall_recursive cls arg1 varargs\n  = withVariantArray ([toVariant arg1] ++ varargs)\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_call_recursive (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"call_recursive\"\n           '[GodotString, [Variant 'GodotTy]]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.TreeItem.call_recursive\n\n{-# NOINLINE bindTreeItem_clear_custom_bg_color #-}\n\n-- | Resets the background color for the given column to default.\nbindTreeItem_clear_custom_bg_color :: MethodBind\nbindTreeItem_clear_custom_bg_color\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"clear_custom_bg_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Resets the background color for the given column to default.\nclear_custom_bg_color ::\n                        (TreeItem :< cls, Object :< cls) => cls -> Int -> IO ()\nclear_custom_bg_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_clear_custom_bg_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"clear_custom_bg_color\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.clear_custom_bg_color\n\n{-# NOINLINE bindTreeItem_clear_custom_color #-}\n\n-- | Resets the color for the given column to default.\nbindTreeItem_clear_custom_color :: MethodBind\nbindTreeItem_clear_custom_color\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"clear_custom_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Resets the color for the given column to default.\nclear_custom_color ::\n                     (TreeItem :< cls, Object :< cls) => cls -> Int -> IO ()\nclear_custom_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_clear_custom_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"clear_custom_color\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.clear_custom_color\n\n{-# NOINLINE bindTreeItem_deselect #-}\n\n-- | Deselects the given column.\nbindTreeItem_deselect :: MethodBind\nbindTreeItem_deselect\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"deselect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Deselects the given column.\ndeselect :: (TreeItem :< cls, Object :< cls) => cls -> Int -> IO ()\ndeselect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_deselect (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"deselect\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.TreeItem.deselect\n\n{-# NOINLINE bindTreeItem_erase_button #-}\n\n-- | Removes the button at index @button_idx@ in column @column@.\nbindTreeItem_erase_button :: MethodBind\nbindTreeItem_erase_button\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"erase_button\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the button at index @button_idx@ in column @column@.\nerase_button ::\n               (TreeItem :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nerase_button cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_erase_button (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"erase_button\" '[Int, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.erase_button\n\n{-# NOINLINE bindTreeItem_get_button #-}\n\n-- | Returns the @Texture@ of the button at index @button_idx@ in column @column@.\nbindTreeItem_get_button :: MethodBind\nbindTreeItem_get_button\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_button\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Texture@ of the button at index @button_idx@ in column @column@.\nget_button ::\n             (TreeItem :< cls, Object :< cls) => cls -> Int -> Int -> IO Texture\nget_button cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_button (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_button\" '[Int, Int] (IO Texture)\n         where\n        nodeMethod = Godot.Core.TreeItem.get_button\n\n{-# NOINLINE bindTreeItem_get_button_count #-}\n\n-- | Returns the number of buttons in column @column@. May be used to get the most recently added button's index, if no index was specified.\nbindTreeItem_get_button_count :: MethodBind\nbindTreeItem_get_button_count\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_button_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of buttons in column @column@. May be used to get the most recently added button's index, if no index was specified.\nget_button_count ::\n                   (TreeItem :< cls, Object :< cls) => cls -> Int -> IO Int\nget_button_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_button_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_button_count\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.TreeItem.get_button_count\n\n{-# NOINLINE bindTreeItem_get_button_tooltip #-}\n\n-- | Returns the tooltip string for the button at index @button_idx@ in column @column@.\nbindTreeItem_get_button_tooltip :: MethodBind\nbindTreeItem_get_button_tooltip\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_button_tooltip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the tooltip string for the button at index @button_idx@ in column @column@.\nget_button_tooltip ::\n                     (TreeItem :< cls, Object :< cls) =>\n                     cls -> Int -> Int -> IO GodotString\nget_button_tooltip cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_button_tooltip (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_button_tooltip\" '[Int, Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.TreeItem.get_button_tooltip\n\n{-# NOINLINE bindTreeItem_get_cell_mode #-}\n\n-- | Returns the column's cell mode.\nbindTreeItem_get_cell_mode :: MethodBind\nbindTreeItem_get_cell_mode\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_cell_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the column's cell mode.\nget_cell_mode ::\n                (TreeItem :< cls, Object :< cls) => cls -> Int -> IO Int\nget_cell_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_cell_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_cell_mode\" '[Int] (IO Int) where\n        nodeMethod = Godot.Core.TreeItem.get_cell_mode\n\n{-# NOINLINE bindTreeItem_get_children #-}\n\n-- | Returns the TreeItem's first child item or a null object if there is none.\nbindTreeItem_get_children :: MethodBind\nbindTreeItem_get_children\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_children\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the TreeItem's first child item or a null object if there is none.\nget_children ::\n               (TreeItem :< cls, Object :< cls) => cls -> IO TreeItem\nget_children cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_children (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_children\" '[] (IO TreeItem) where\n        nodeMethod = Godot.Core.TreeItem.get_children\n\n{-# NOINLINE bindTreeItem_get_custom_bg_color #-}\n\n-- | Returns the custom background color of column @column@.\nbindTreeItem_get_custom_bg_color :: MethodBind\nbindTreeItem_get_custom_bg_color\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_custom_bg_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the custom background color of column @column@.\nget_custom_bg_color ::\n                      (TreeItem :< cls, Object :< cls) => cls -> Int -> IO Color\nget_custom_bg_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_custom_bg_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_custom_bg_color\" '[Int]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.TreeItem.get_custom_bg_color\n\n{-# NOINLINE bindTreeItem_get_custom_color #-}\n\n-- | Returns the custom color of column @column@.\nbindTreeItem_get_custom_color :: MethodBind\nbindTreeItem_get_custom_color\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_custom_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the custom color of column @column@.\nget_custom_color ::\n                   (TreeItem :< cls, Object :< cls) => cls -> Int -> IO Color\nget_custom_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_custom_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_custom_color\" '[Int] (IO Color)\n         where\n        nodeMethod = Godot.Core.TreeItem.get_custom_color\n\n{-# NOINLINE bindTreeItem_get_custom_minimum_height #-}\n\n-- | The custom minimum height.\nbindTreeItem_get_custom_minimum_height :: MethodBind\nbindTreeItem_get_custom_minimum_height\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_custom_minimum_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The custom minimum height.\nget_custom_minimum_height ::\n                            (TreeItem :< cls, Object :< cls) => cls -> IO Int\nget_custom_minimum_height cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_custom_minimum_height\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_custom_minimum_height\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.TreeItem.get_custom_minimum_height\n\n{-# NOINLINE bindTreeItem_get_expand_right #-}\n\n-- | Returns @true@ if @expand_right@ is set.\nbindTreeItem_get_expand_right :: MethodBind\nbindTreeItem_get_expand_right\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_expand_right\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if @expand_right@ is set.\nget_expand_right ::\n                   (TreeItem :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_expand_right cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_expand_right (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_expand_right\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.TreeItem.get_expand_right\n\n{-# NOINLINE bindTreeItem_get_icon #-}\n\n-- | Returns the given column's icon @Texture@. Error if no icon is set.\nbindTreeItem_get_icon :: MethodBind\nbindTreeItem_get_icon\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the given column's icon @Texture@. Error if no icon is set.\nget_icon ::\n           (TreeItem :< cls, Object :< cls) => cls -> Int -> IO Texture\nget_icon cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_icon (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_icon\" '[Int] (IO Texture) where\n        nodeMethod = Godot.Core.TreeItem.get_icon\n\n{-# NOINLINE bindTreeItem_get_icon_max_width #-}\n\n-- | Returns the column's icon's maximum width.\nbindTreeItem_get_icon_max_width :: MethodBind\nbindTreeItem_get_icon_max_width\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_icon_max_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the column's icon's maximum width.\nget_icon_max_width ::\n                     (TreeItem :< cls, Object :< cls) => cls -> Int -> IO Int\nget_icon_max_width cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_icon_max_width (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_icon_max_width\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.TreeItem.get_icon_max_width\n\n{-# NOINLINE bindTreeItem_get_icon_modulate #-}\n\n-- | Returns the @Color@ modulating the column's icon.\nbindTreeItem_get_icon_modulate :: MethodBind\nbindTreeItem_get_icon_modulate\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_icon_modulate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Color@ modulating the column's icon.\nget_icon_modulate ::\n                    (TreeItem :< cls, Object :< cls) => cls -> Int -> IO Color\nget_icon_modulate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_icon_modulate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_icon_modulate\" '[Int] (IO Color)\n         where\n        nodeMethod = Godot.Core.TreeItem.get_icon_modulate\n\n{-# NOINLINE bindTreeItem_get_icon_region #-}\n\n-- | Returns the icon @Texture@ region as @Rect2@.\nbindTreeItem_get_icon_region :: MethodBind\nbindTreeItem_get_icon_region\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_icon_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the icon @Texture@ region as @Rect2@.\nget_icon_region ::\n                  (TreeItem :< cls, Object :< cls) => cls -> Int -> IO Rect2\nget_icon_region cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_icon_region (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_icon_region\" '[Int] (IO Rect2)\n         where\n        nodeMethod = Godot.Core.TreeItem.get_icon_region\n\n{-# NOINLINE bindTreeItem_get_metadata #-}\n\nbindTreeItem_get_metadata :: MethodBind\nbindTreeItem_get_metadata\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_metadata\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_metadata ::\n               (TreeItem :< cls, Object :< cls) => cls -> Int -> IO GodotVariant\nget_metadata cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_metadata (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_metadata\" '[Int]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.TreeItem.get_metadata\n\n{-# NOINLINE bindTreeItem_get_next #-}\n\n-- | Returns the next TreeItem in the tree or a null object if there is none.\nbindTreeItem_get_next :: MethodBind\nbindTreeItem_get_next\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_next\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the next TreeItem in the tree or a null object if there is none.\nget_next :: (TreeItem :< cls, Object :< cls) => cls -> IO TreeItem\nget_next cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_next (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_next\" '[] (IO TreeItem) where\n        nodeMethod = Godot.Core.TreeItem.get_next\n\n{-# NOINLINE bindTreeItem_get_next_visible #-}\n\n-- | Returns the next visible TreeItem in the tree or a null object if there is none.\n--   \t\t\t\tIf @wrap@ is enabled, the method will wrap around to the first visible element in the tree when called on the last visible element, otherwise it returns @null@.\nbindTreeItem_get_next_visible :: MethodBind\nbindTreeItem_get_next_visible\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_next_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the next visible TreeItem in the tree or a null object if there is none.\n--   \t\t\t\tIf @wrap@ is enabled, the method will wrap around to the first visible element in the tree when called on the last visible element, otherwise it returns @null@.\nget_next_visible ::\n                   (TreeItem :< cls, Object :< cls) =>\n                   cls -> Maybe Bool -> IO TreeItem\nget_next_visible cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_next_visible (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_next_visible\" '[Maybe Bool]\n           (IO TreeItem)\n         where\n        nodeMethod = Godot.Core.TreeItem.get_next_visible\n\n{-# NOINLINE bindTreeItem_get_parent #-}\n\n-- | Returns the parent TreeItem or a null object if there is none.\nbindTreeItem_get_parent :: MethodBind\nbindTreeItem_get_parent\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_parent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the parent TreeItem or a null object if there is none.\nget_parent ::\n             (TreeItem :< cls, Object :< cls) => cls -> IO TreeItem\nget_parent cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_parent (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_parent\" '[] (IO TreeItem) where\n        nodeMethod = Godot.Core.TreeItem.get_parent\n\n{-# NOINLINE bindTreeItem_get_prev #-}\n\n-- | Returns the previous TreeItem in the tree or a null object if there is none.\nbindTreeItem_get_prev :: MethodBind\nbindTreeItem_get_prev\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_prev\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the previous TreeItem in the tree or a null object if there is none.\nget_prev :: (TreeItem :< cls, Object :< cls) => cls -> IO TreeItem\nget_prev cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_prev (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_prev\" '[] (IO TreeItem) where\n        nodeMethod = Godot.Core.TreeItem.get_prev\n\n{-# NOINLINE bindTreeItem_get_prev_visible #-}\n\n-- | Returns the previous visible TreeItem in the tree or a null object if there is none.\n--   \t\t\t\tIf @wrap@ is enabled, the method will wrap around to the last visible element in the tree when called on the first visible element, otherwise it returns @null@.\nbindTreeItem_get_prev_visible :: MethodBind\nbindTreeItem_get_prev_visible\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_prev_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the previous visible TreeItem in the tree or a null object if there is none.\n--   \t\t\t\tIf @wrap@ is enabled, the method will wrap around to the last visible element in the tree when called on the first visible element, otherwise it returns @null@.\nget_prev_visible ::\n                   (TreeItem :< cls, Object :< cls) =>\n                   cls -> Maybe Bool -> IO TreeItem\nget_prev_visible cls arg1\n  = withVariantArray [maybe (VariantBool False) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_prev_visible (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_prev_visible\" '[Maybe Bool]\n           (IO TreeItem)\n         where\n        nodeMethod = Godot.Core.TreeItem.get_prev_visible\n\n{-# NOINLINE bindTreeItem_get_range #-}\n\nbindTreeItem_get_range :: MethodBind\nbindTreeItem_get_range\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_range\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_range ::\n            (TreeItem :< cls, Object :< cls) => cls -> Int -> IO Float\nget_range cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_range (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_range\" '[Int] (IO Float) where\n        nodeMethod = Godot.Core.TreeItem.get_range\n\n{-# NOINLINE bindTreeItem_get_range_config #-}\n\nbindTreeItem_get_range_config :: MethodBind\nbindTreeItem_get_range_config\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_range_config\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_range_config ::\n                   (TreeItem :< cls, Object :< cls) => cls -> Int -> IO Dictionary\nget_range_config cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_range_config (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_range_config\" '[Int]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.TreeItem.get_range_config\n\n{-# NOINLINE bindTreeItem_get_text #-}\n\n-- | Returns the given column's text.\nbindTreeItem_get_text :: MethodBind\nbindTreeItem_get_text\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the given column's text.\nget_text ::\n           (TreeItem :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_text cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_text (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_text\" '[Int] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.TreeItem.get_text\n\n{-# NOINLINE bindTreeItem_get_text_align #-}\n\n-- | Returns the given column's text alignment.\nbindTreeItem_get_text_align :: MethodBind\nbindTreeItem_get_text_align\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_text_align\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the given column's text alignment.\nget_text_align ::\n                 (TreeItem :< cls, Object :< cls) => cls -> Int -> IO Int\nget_text_align cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_text_align (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_text_align\" '[Int] (IO Int) where\n        nodeMethod = Godot.Core.TreeItem.get_text_align\n\n{-# NOINLINE bindTreeItem_get_tooltip #-}\n\n-- | Returns the given column's tooltip.\nbindTreeItem_get_tooltip :: MethodBind\nbindTreeItem_get_tooltip\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"get_tooltip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the given column's tooltip.\nget_tooltip ::\n              (TreeItem :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_tooltip cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_get_tooltip (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"get_tooltip\" '[Int] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.TreeItem.get_tooltip\n\n{-# NOINLINE bindTreeItem_is_button_disabled #-}\n\n-- | Returns @true@ if the button at index @button_idx@ for the given column is disabled.\nbindTreeItem_is_button_disabled :: MethodBind\nbindTreeItem_is_button_disabled\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"is_button_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the button at index @button_idx@ for the given column is disabled.\nis_button_disabled ::\n                     (TreeItem :< cls, Object :< cls) => cls -> Int -> Int -> IO Bool\nis_button_disabled cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_is_button_disabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"is_button_disabled\" '[Int, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TreeItem.is_button_disabled\n\n{-# NOINLINE bindTreeItem_is_checked #-}\n\n-- | Returns @true@ if the given column is checked.\nbindTreeItem_is_checked :: MethodBind\nbindTreeItem_is_checked\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"is_checked\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the given column is checked.\nis_checked ::\n             (TreeItem :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_checked cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_is_checked (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"is_checked\" '[Int] (IO Bool) where\n        nodeMethod = Godot.Core.TreeItem.is_checked\n\n{-# NOINLINE bindTreeItem_is_collapsed #-}\n\n-- | If @true@, the TreeItem is collapsed.\nbindTreeItem_is_collapsed :: MethodBind\nbindTreeItem_is_collapsed\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"is_collapsed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the TreeItem is collapsed.\nis_collapsed :: (TreeItem :< cls, Object :< cls) => cls -> IO Bool\nis_collapsed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_is_collapsed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"is_collapsed\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.TreeItem.is_collapsed\n\n{-# NOINLINE bindTreeItem_is_custom_set_as_button #-}\n\nbindTreeItem_is_custom_set_as_button :: MethodBind\nbindTreeItem_is_custom_set_as_button\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"is_custom_set_as_button\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_custom_set_as_button ::\n                          (TreeItem :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_custom_set_as_button cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_is_custom_set_as_button\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"is_custom_set_as_button\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.TreeItem.is_custom_set_as_button\n\n{-# NOINLINE bindTreeItem_is_editable #-}\n\n-- | Returns @true@ if column @column@ is editable.\nbindTreeItem_is_editable :: MethodBind\nbindTreeItem_is_editable\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"is_editable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if column @column@ is editable.\nis_editable ::\n              (TreeItem :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_editable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_is_editable (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"is_editable\" '[Int] (IO Bool) where\n        nodeMethod = Godot.Core.TreeItem.is_editable\n\n{-# NOINLINE bindTreeItem_is_folding_disabled #-}\n\n-- | If @true@, folding is disabled for this TreeItem.\nbindTreeItem_is_folding_disabled :: MethodBind\nbindTreeItem_is_folding_disabled\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"is_folding_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, folding is disabled for this TreeItem.\nis_folding_disabled ::\n                      (TreeItem :< cls, Object :< cls) => cls -> IO Bool\nis_folding_disabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_is_folding_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"is_folding_disabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.TreeItem.is_folding_disabled\n\n{-# NOINLINE bindTreeItem_is_selectable #-}\n\n-- | Returns @true@ if column @column@ is selectable.\nbindTreeItem_is_selectable :: MethodBind\nbindTreeItem_is_selectable\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"is_selectable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if column @column@ is selectable.\nis_selectable ::\n                (TreeItem :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_selectable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_is_selectable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"is_selectable\" '[Int] (IO Bool) where\n        nodeMethod = Godot.Core.TreeItem.is_selectable\n\n{-# NOINLINE bindTreeItem_is_selected #-}\n\n-- | Returns @true@ if column @column@ is selected.\nbindTreeItem_is_selected :: MethodBind\nbindTreeItem_is_selected\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"is_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if column @column@ is selected.\nis_selected ::\n              (TreeItem :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_selected cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_is_selected (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"is_selected\" '[Int] (IO Bool) where\n        nodeMethod = Godot.Core.TreeItem.is_selected\n\n{-# NOINLINE bindTreeItem_move_to_bottom #-}\n\n-- | Moves this TreeItem to the bottom in the @Tree@ hierarchy.\nbindTreeItem_move_to_bottom :: MethodBind\nbindTreeItem_move_to_bottom\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"move_to_bottom\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves this TreeItem to the bottom in the @Tree@ hierarchy.\nmove_to_bottom :: (TreeItem :< cls, Object :< cls) => cls -> IO ()\nmove_to_bottom cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_move_to_bottom (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"move_to_bottom\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TreeItem.move_to_bottom\n\n{-# NOINLINE bindTreeItem_move_to_top #-}\n\n-- | Moves this TreeItem to the top in the @Tree@ hierarchy.\nbindTreeItem_move_to_top :: MethodBind\nbindTreeItem_move_to_top\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"move_to_top\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves this TreeItem to the top in the @Tree@ hierarchy.\nmove_to_top :: (TreeItem :< cls, Object :< cls) => cls -> IO ()\nmove_to_top cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_move_to_top (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"move_to_top\" '[] (IO ()) where\n        nodeMethod = Godot.Core.TreeItem.move_to_top\n\n{-# NOINLINE bindTreeItem_remove_child #-}\n\n-- | Removes the given child @TreeItem@ and all its children from the @Tree@. Note that it doesn't free the item from memory, so it can be reused later. To completely remove a @TreeItem@ use @method Object.free@.\nbindTreeItem_remove_child :: MethodBind\nbindTreeItem_remove_child\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"remove_child\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the given child @TreeItem@ and all its children from the @Tree@. Note that it doesn't free the item from memory, so it can be reused later. To completely remove a @TreeItem@ use @method Object.free@.\nremove_child ::\n               (TreeItem :< cls, Object :< cls) => cls -> Object -> IO ()\nremove_child cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_remove_child (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"remove_child\" '[Object] (IO ()) where\n        nodeMethod = Godot.Core.TreeItem.remove_child\n\n{-# NOINLINE bindTreeItem_select #-}\n\n-- | Selects the column @column@.\nbindTreeItem_select :: MethodBind\nbindTreeItem_select\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"select\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Selects the column @column@.\nselect :: (TreeItem :< cls, Object :< cls) => cls -> Int -> IO ()\nselect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_select (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"select\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.TreeItem.select\n\n{-# NOINLINE bindTreeItem_set_button #-}\n\n-- | Sets the given column's button @Texture@ at index @button_idx@ to @button@.\nbindTreeItem_set_button :: MethodBind\nbindTreeItem_set_button\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_button\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the given column's button @Texture@ at index @button_idx@ to @button@.\nset_button ::\n             (TreeItem :< cls, Object :< cls) =>\n             cls -> Int -> Int -> Texture -> IO ()\nset_button cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_button (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_button\" '[Int, Int, Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_button\n\n{-# NOINLINE bindTreeItem_set_button_disabled #-}\n\n-- | If @true@, disables the button at index @button_idx@ in column @column@.\nbindTreeItem_set_button_disabled :: MethodBind\nbindTreeItem_set_button_disabled\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_button_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, disables the button at index @button_idx@ in column @column@.\nset_button_disabled ::\n                      (TreeItem :< cls, Object :< cls) =>\n                      cls -> Int -> Int -> Bool -> IO ()\nset_button_disabled cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_button_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_button_disabled\"\n           '[Int, Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_button_disabled\n\n{-# NOINLINE bindTreeItem_set_cell_mode #-}\n\n-- | Sets the given column's cell mode to @mode@. See @enum TreeCellMode@ constants.\nbindTreeItem_set_cell_mode :: MethodBind\nbindTreeItem_set_cell_mode\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_cell_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the given column's cell mode to @mode@. See @enum TreeCellMode@ constants.\nset_cell_mode ::\n                (TreeItem :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nset_cell_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_cell_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_cell_mode\" '[Int, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_cell_mode\n\n{-# NOINLINE bindTreeItem_set_checked #-}\n\n-- | If @true@, the column @column@ is checked.\nbindTreeItem_set_checked :: MethodBind\nbindTreeItem_set_checked\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_checked\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the column @column@ is checked.\nset_checked ::\n              (TreeItem :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_checked cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_checked (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_checked\" '[Int, Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_checked\n\n{-# NOINLINE bindTreeItem_set_collapsed #-}\n\n-- | If @true@, the TreeItem is collapsed.\nbindTreeItem_set_collapsed :: MethodBind\nbindTreeItem_set_collapsed\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_collapsed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the TreeItem is collapsed.\nset_collapsed ::\n                (TreeItem :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_collapsed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_collapsed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_collapsed\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.TreeItem.set_collapsed\n\n{-# NOINLINE bindTreeItem_set_custom_as_button #-}\n\nbindTreeItem_set_custom_as_button :: MethodBind\nbindTreeItem_set_custom_as_button\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_custom_as_button\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_custom_as_button ::\n                       (TreeItem :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_custom_as_button cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_custom_as_button\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_custom_as_button\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_custom_as_button\n\n{-# NOINLINE bindTreeItem_set_custom_bg_color #-}\n\n-- | Sets the given column's custom background color and whether to just use it as an outline.\nbindTreeItem_set_custom_bg_color :: MethodBind\nbindTreeItem_set_custom_bg_color\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_custom_bg_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the given column's custom background color and whether to just use it as an outline.\nset_custom_bg_color ::\n                      (TreeItem :< cls, Object :< cls) =>\n                      cls -> Int -> Color -> Maybe Bool -> IO ()\nset_custom_bg_color cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool False) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_custom_bg_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_custom_bg_color\"\n           '[Int, Color, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_custom_bg_color\n\n{-# NOINLINE bindTreeItem_set_custom_color #-}\n\n-- | Sets the given column's custom color.\nbindTreeItem_set_custom_color :: MethodBind\nbindTreeItem_set_custom_color\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_custom_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the given column's custom color.\nset_custom_color ::\n                   (TreeItem :< cls, Object :< cls) => cls -> Int -> Color -> IO ()\nset_custom_color cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_custom_color (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_custom_color\" '[Int, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_custom_color\n\n{-# NOINLINE bindTreeItem_set_custom_draw #-}\n\n-- | Sets the given column's custom draw callback to @callback@ method on @object@.\n--   \t\t\t\tThe @callback@ should accept two arguments: the @TreeItem@ that is drawn and its position and size as a @Rect2@.\nbindTreeItem_set_custom_draw :: MethodBind\nbindTreeItem_set_custom_draw\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_custom_draw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the given column's custom draw callback to @callback@ method on @object@.\n--   \t\t\t\tThe @callback@ should accept two arguments: the @TreeItem@ that is drawn and its position and size as a @Rect2@.\nset_custom_draw ::\n                  (TreeItem :< cls, Object :< cls) =>\n                  cls -> Int -> Object -> GodotString -> IO ()\nset_custom_draw cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_custom_draw (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_custom_draw\"\n           '[Int, Object, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_custom_draw\n\n{-# NOINLINE bindTreeItem_set_custom_minimum_height #-}\n\n-- | The custom minimum height.\nbindTreeItem_set_custom_minimum_height :: MethodBind\nbindTreeItem_set_custom_minimum_height\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_custom_minimum_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The custom minimum height.\nset_custom_minimum_height ::\n                            (TreeItem :< cls, Object :< cls) => cls -> Int -> IO ()\nset_custom_minimum_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_custom_minimum_height\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_custom_minimum_height\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_custom_minimum_height\n\n{-# NOINLINE bindTreeItem_set_disable_folding #-}\n\n-- | If @true@, folding is disabled for this TreeItem.\nbindTreeItem_set_disable_folding :: MethodBind\nbindTreeItem_set_disable_folding\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_disable_folding\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, folding is disabled for this TreeItem.\nset_disable_folding ::\n                      (TreeItem :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_disable_folding cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_disable_folding\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_disable_folding\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_disable_folding\n\n{-# NOINLINE bindTreeItem_set_editable #-}\n\n-- | If @true@, column @column@ is editable.\nbindTreeItem_set_editable :: MethodBind\nbindTreeItem_set_editable\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_editable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, column @column@ is editable.\nset_editable ::\n               (TreeItem :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_editable cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_editable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_editable\" '[Int, Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_editable\n\n{-# NOINLINE bindTreeItem_set_expand_right #-}\n\n-- | If @true@, column @column@ is expanded to the right.\nbindTreeItem_set_expand_right :: MethodBind\nbindTreeItem_set_expand_right\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_expand_right\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, column @column@ is expanded to the right.\nset_expand_right ::\n                   (TreeItem :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_expand_right cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_expand_right (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_expand_right\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_expand_right\n\n{-# NOINLINE bindTreeItem_set_icon #-}\n\n-- | Sets the given column's icon @Texture@.\nbindTreeItem_set_icon :: MethodBind\nbindTreeItem_set_icon\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the given column's icon @Texture@.\nset_icon ::\n           (TreeItem :< cls, Object :< cls) => cls -> Int -> Texture -> IO ()\nset_icon cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_icon (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_icon\" '[Int, Texture] (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_icon\n\n{-# NOINLINE bindTreeItem_set_icon_max_width #-}\n\n-- | Sets the given column's icon's maximum width.\nbindTreeItem_set_icon_max_width :: MethodBind\nbindTreeItem_set_icon_max_width\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_icon_max_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the given column's icon's maximum width.\nset_icon_max_width ::\n                     (TreeItem :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nset_icon_max_width cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_icon_max_width (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_icon_max_width\" '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_icon_max_width\n\n{-# NOINLINE bindTreeItem_set_icon_modulate #-}\n\n-- | Modulates the given column's icon with @modulate@.\nbindTreeItem_set_icon_modulate :: MethodBind\nbindTreeItem_set_icon_modulate\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_icon_modulate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Modulates the given column's icon with @modulate@.\nset_icon_modulate ::\n                    (TreeItem :< cls, Object :< cls) => cls -> Int -> Color -> IO ()\nset_icon_modulate cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_icon_modulate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_icon_modulate\" '[Int, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_icon_modulate\n\n{-# NOINLINE bindTreeItem_set_icon_region #-}\n\n-- | Sets the given column's icon's texture region.\nbindTreeItem_set_icon_region :: MethodBind\nbindTreeItem_set_icon_region\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_icon_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the given column's icon's texture region.\nset_icon_region ::\n                  (TreeItem :< cls, Object :< cls) => cls -> Int -> Rect2 -> IO ()\nset_icon_region cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_icon_region (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_icon_region\" '[Int, Rect2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_icon_region\n\n{-# NOINLINE bindTreeItem_set_metadata #-}\n\nbindTreeItem_set_metadata :: MethodBind\nbindTreeItem_set_metadata\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_metadata\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_metadata ::\n               (TreeItem :< cls, Object :< cls) =>\n               cls -> Int -> GodotVariant -> IO ()\nset_metadata cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_metadata (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_metadata\" '[Int, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_metadata\n\n{-# NOINLINE bindTreeItem_set_range #-}\n\nbindTreeItem_set_range :: MethodBind\nbindTreeItem_set_range\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_range\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_range ::\n            (TreeItem :< cls, Object :< cls) => cls -> Int -> Float -> IO ()\nset_range cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_range (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_range\" '[Int, Float] (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_range\n\n{-# NOINLINE bindTreeItem_set_range_config #-}\n\nbindTreeItem_set_range_config :: MethodBind\nbindTreeItem_set_range_config\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_range_config\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_range_config ::\n                   (TreeItem :< cls, Object :< cls) =>\n                   cls -> Int -> Float -> Float -> Float -> Maybe Bool -> IO ()\nset_range_config cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       maybe (VariantBool False) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_range_config (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_range_config\"\n           '[Int, Float, Float, Float, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_range_config\n\n{-# NOINLINE bindTreeItem_set_selectable #-}\n\n-- | If @true@, the given column is selectable.\nbindTreeItem_set_selectable :: MethodBind\nbindTreeItem_set_selectable\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_selectable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the given column is selectable.\nset_selectable ::\n                 (TreeItem :< cls, Object :< cls) => cls -> Int -> Bool -> IO ()\nset_selectable cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_selectable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_selectable\" '[Int, Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_selectable\n\n{-# NOINLINE bindTreeItem_set_text #-}\n\nbindTreeItem_set_text :: MethodBind\nbindTreeItem_set_text\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_text ::\n           (TreeItem :< cls, Object :< cls) =>\n           cls -> Int -> GodotString -> IO ()\nset_text cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_text (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_text\" '[Int, GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_text\n\n{-# NOINLINE bindTreeItem_set_text_align #-}\n\n-- | Sets the given column's text alignment. See @enum TextAlign@ for possible values.\nbindTreeItem_set_text_align :: MethodBind\nbindTreeItem_set_text_align\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_text_align\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the given column's text alignment. See @enum TextAlign@ for possible values.\nset_text_align ::\n                 (TreeItem :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nset_text_align cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_text_align (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_text_align\" '[Int, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_text_align\n\n{-# NOINLINE bindTreeItem_set_tooltip #-}\n\n-- | Sets the given column's tooltip text.\nbindTreeItem_set_tooltip :: MethodBind\nbindTreeItem_set_tooltip\n  = unsafePerformIO $\n      withCString \"TreeItem\" $\n        \\ clsNamePtr ->\n          withCString \"set_tooltip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the given column's tooltip text.\nset_tooltip ::\n              (TreeItem :< cls, Object :< cls) =>\n              cls -> Int -> GodotString -> IO ()\nset_tooltip cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTreeItem_set_tooltip (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod TreeItem \"set_tooltip\" '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.TreeItem.set_tooltip"
  },
  {
    "path": "src/Godot/Core/TriangleMesh.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.TriangleMesh () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()"
  },
  {
    "path": "src/Godot/Core/Tween.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Tween\n       (Godot.Core.Tween._TRANS_SINE,\n        Godot.Core.Tween._TWEEN_PROCESS_IDLE,\n        Godot.Core.Tween._TWEEN_PROCESS_PHYSICS,\n        Godot.Core.Tween._TRANS_LINEAR, Godot.Core.Tween._EASE_OUT_IN,\n        Godot.Core.Tween._TRANS_QUAD, Godot.Core.Tween._TRANS_EXPO,\n        Godot.Core.Tween._EASE_IN, Godot.Core.Tween._TRANS_QUINT,\n        Godot.Core.Tween._TRANS_BOUNCE, Godot.Core.Tween._TRANS_ELASTIC,\n        Godot.Core.Tween._TRANS_CUBIC, Godot.Core.Tween._EASE_OUT,\n        Godot.Core.Tween._EASE_IN_OUT, Godot.Core.Tween._TRANS_QUART,\n        Godot.Core.Tween._TRANS_BACK, Godot.Core.Tween._TRANS_CIRC,\n        Godot.Core.Tween.sig_tween_all_completed,\n        Godot.Core.Tween.sig_tween_completed,\n        Godot.Core.Tween.sig_tween_started,\n        Godot.Core.Tween.sig_tween_step, Godot.Core.Tween._remove_by_uid,\n        Godot.Core.Tween.follow_method, Godot.Core.Tween.follow_property,\n        Godot.Core.Tween.get_runtime, Godot.Core.Tween.get_speed_scale,\n        Godot.Core.Tween.get_tween_process_mode,\n        Godot.Core.Tween.interpolate_callback,\n        Godot.Core.Tween.interpolate_deferred_callback,\n        Godot.Core.Tween.interpolate_method,\n        Godot.Core.Tween.interpolate_property, Godot.Core.Tween.is_active,\n        Godot.Core.Tween.is_repeat, Godot.Core.Tween.remove,\n        Godot.Core.Tween.remove_all, Godot.Core.Tween.reset,\n        Godot.Core.Tween.reset_all, Godot.Core.Tween.resume,\n        Godot.Core.Tween.resume_all, Godot.Core.Tween.seek,\n        Godot.Core.Tween.set_active, Godot.Core.Tween.set_repeat,\n        Godot.Core.Tween.set_speed_scale,\n        Godot.Core.Tween.set_tween_process_mode, Godot.Core.Tween.start,\n        Godot.Core.Tween.stop, Godot.Core.Tween.stop_all,\n        Godot.Core.Tween.targeting_method,\n        Godot.Core.Tween.targeting_property, Godot.Core.Tween.tell)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\n_TRANS_SINE :: Int\n_TRANS_SINE = 1\n\n_TWEEN_PROCESS_IDLE :: Int\n_TWEEN_PROCESS_IDLE = 1\n\n_TWEEN_PROCESS_PHYSICS :: Int\n_TWEEN_PROCESS_PHYSICS = 0\n\n_TRANS_LINEAR :: Int\n_TRANS_LINEAR = 0\n\n_EASE_OUT_IN :: Int\n_EASE_OUT_IN = 3\n\n_TRANS_QUAD :: Int\n_TRANS_QUAD = 4\n\n_TRANS_EXPO :: Int\n_TRANS_EXPO = 5\n\n_EASE_IN :: Int\n_EASE_IN = 0\n\n_TRANS_QUINT :: Int\n_TRANS_QUINT = 2\n\n_TRANS_BOUNCE :: Int\n_TRANS_BOUNCE = 9\n\n_TRANS_ELASTIC :: Int\n_TRANS_ELASTIC = 6\n\n_TRANS_CUBIC :: Int\n_TRANS_CUBIC = 7\n\n_EASE_OUT :: Int\n_EASE_OUT = 1\n\n_EASE_IN_OUT :: Int\n_EASE_IN_OUT = 2\n\n_TRANS_QUART :: Int\n_TRANS_QUART = 3\n\n_TRANS_BACK :: Int\n_TRANS_BACK = 10\n\n_TRANS_CIRC :: Int\n_TRANS_CIRC = 8\n\n-- | Emitted when all processes in a tween end.\nsig_tween_all_completed :: Godot.Internal.Dispatch.Signal Tween\nsig_tween_all_completed\n  = Godot.Internal.Dispatch.Signal \"tween_all_completed\"\n\ninstance NodeSignal Tween \"tween_all_completed\" '[]\n\n-- | Emitted when a tween ends.\nsig_tween_completed :: Godot.Internal.Dispatch.Signal Tween\nsig_tween_completed\n  = Godot.Internal.Dispatch.Signal \"tween_completed\"\n\ninstance NodeSignal Tween \"tween_completed\" '[Object, NodePath]\n\n-- | Emitted when a tween starts.\nsig_tween_started :: Godot.Internal.Dispatch.Signal Tween\nsig_tween_started = Godot.Internal.Dispatch.Signal \"tween_started\"\n\ninstance NodeSignal Tween \"tween_started\" '[Object, NodePath]\n\n-- | Emitted at each step of the animation.\nsig_tween_step :: Godot.Internal.Dispatch.Signal Tween\nsig_tween_step = Godot.Internal.Dispatch.Signal \"tween_step\"\n\ninstance NodeSignal Tween \"tween_step\"\n           '[Object, NodePath, Float, Object]\n\ninstance NodeProperty Tween \"playback_process_mode\" Int 'False\n         where\n        nodeProperty\n          = (get_tween_process_mode,\n             wrapDroppingSetter set_tween_process_mode, Nothing)\n\ninstance NodeProperty Tween \"playback_speed\" Float 'False where\n        nodeProperty\n          = (get_speed_scale, wrapDroppingSetter set_speed_scale, Nothing)\n\ninstance NodeProperty Tween \"repeat\" Bool 'False where\n        nodeProperty = (is_repeat, wrapDroppingSetter set_repeat, Nothing)\n\n{-# NOINLINE bindTween__remove_by_uid #-}\n\nbindTween__remove_by_uid :: MethodBind\nbindTween__remove_by_uid\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"_remove_by_uid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_remove_by_uid ::\n                 (Tween :< cls, Object :< cls) => cls -> Int -> IO ()\n_remove_by_uid cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween__remove_by_uid (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"_remove_by_uid\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Tween._remove_by_uid\n\n{-# NOINLINE bindTween_follow_method #-}\n\n-- | Follows @method@ of @object@ and applies the returned value on @target_method@ of @target@, beginning from @initial_val@ for @duration@ seconds, @delay@ later. Methods are called with consecutive values.\n--   \t\t\t\tUse @enum TransitionType@ for @trans_type@ and @enum EaseType@ for @ease_type@ parameters. These values control the timing and direction of the interpolation. See the class description for more information.\nbindTween_follow_method :: MethodBind\nbindTween_follow_method\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"follow_method\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Follows @method@ of @object@ and applies the returned value on @target_method@ of @target@, beginning from @initial_val@ for @duration@ seconds, @delay@ later. Methods are called with consecutive values.\n--   \t\t\t\tUse @enum TransitionType@ for @trans_type@ and @enum EaseType@ for @ease_type@ parameters. These values control the timing and direction of the interpolation. See the class description for more information.\nfollow_method ::\n                (Tween :< cls, Object :< cls) =>\n                cls ->\n                  Object ->\n                    GodotString ->\n                      GodotVariant ->\n                        Object ->\n                          GodotString ->\n                            Float -> Maybe Int -> Maybe Int -> Maybe Float -> IO Bool\nfollow_method cls arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6,\n       maybe (VariantInt (0)) toVariant arg7,\n       maybe (VariantInt (2)) toVariant arg8,\n       maybe (VariantReal (0)) toVariant arg9]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_follow_method (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"follow_method\"\n           '[Object, GodotString, GodotVariant, Object, GodotString, Float,\n             Maybe Int, Maybe Int, Maybe Float]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Tween.follow_method\n\n{-# NOINLINE bindTween_follow_property #-}\n\n-- | Follows @property@ of @object@ and applies it on @target_property@ of @target@, beginning from @initial_val@ for @duration@ seconds, @delay@ seconds later.\n--   \t\t\t\tUse @enum TransitionType@ for @trans_type@ and @enum EaseType@ for @ease_type@ parameters. These values control the timing and direction of the interpolation. See the class description for more information.\nbindTween_follow_property :: MethodBind\nbindTween_follow_property\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"follow_property\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Follows @property@ of @object@ and applies it on @target_property@ of @target@, beginning from @initial_val@ for @duration@ seconds, @delay@ seconds later.\n--   \t\t\t\tUse @enum TransitionType@ for @trans_type@ and @enum EaseType@ for @ease_type@ parameters. These values control the timing and direction of the interpolation. See the class description for more information.\nfollow_property ::\n                  (Tween :< cls, Object :< cls) =>\n                  cls ->\n                    Object ->\n                      NodePath ->\n                        GodotVariant ->\n                          Object ->\n                            NodePath ->\n                              Float -> Maybe Int -> Maybe Int -> Maybe Float -> IO Bool\nfollow_property cls arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6,\n       maybe (VariantInt (0)) toVariant arg7,\n       maybe (VariantInt (2)) toVariant arg8,\n       maybe (VariantReal (0)) toVariant arg9]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_follow_property (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"follow_property\"\n           '[Object, NodePath, GodotVariant, Object, NodePath, Float,\n             Maybe Int, Maybe Int, Maybe Float]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Tween.follow_property\n\n{-# NOINLINE bindTween_get_runtime #-}\n\n-- | Returns the total time needed for all tweens to end. If you have two tweens, one lasting 10 seconds and the other 20 seconds, it would return 20 seconds, as by that time all tweens would have finished.\nbindTween_get_runtime :: MethodBind\nbindTween_get_runtime\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"get_runtime\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the total time needed for all tweens to end. If you have two tweens, one lasting 10 seconds and the other 20 seconds, it would return 20 seconds, as by that time all tweens would have finished.\nget_runtime :: (Tween :< cls, Object :< cls) => cls -> IO Float\nget_runtime cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_get_runtime (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"get_runtime\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Tween.get_runtime\n\n{-# NOINLINE bindTween_get_speed_scale #-}\n\n-- | The tween's speed multiplier. For example, set it to @1.0@ for normal speed, @2.0@ for two times normal speed, or @0.5@ for half of the normal speed. A value of @0@ pauses the animation, but see also @method set_active@ or @method stop_all@ for this.\nbindTween_get_speed_scale :: MethodBind\nbindTween_get_speed_scale\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"get_speed_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The tween's speed multiplier. For example, set it to @1.0@ for normal speed, @2.0@ for two times normal speed, or @0.5@ for half of the normal speed. A value of @0@ pauses the animation, but see also @method set_active@ or @method stop_all@ for this.\nget_speed_scale :: (Tween :< cls, Object :< cls) => cls -> IO Float\nget_speed_scale cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_get_speed_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"get_speed_scale\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Tween.get_speed_scale\n\n{-# NOINLINE bindTween_get_tween_process_mode #-}\n\n-- | The tween's animation process thread. See @enum TweenProcessMode@.\nbindTween_get_tween_process_mode :: MethodBind\nbindTween_get_tween_process_mode\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"get_tween_process_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The tween's animation process thread. See @enum TweenProcessMode@.\nget_tween_process_mode ::\n                         (Tween :< cls, Object :< cls) => cls -> IO Int\nget_tween_process_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_get_tween_process_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"get_tween_process_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Tween.get_tween_process_mode\n\n{-# NOINLINE bindTween_interpolate_callback #-}\n\n-- | Calls @callback@ of @object@ after @duration@. @arg1@-@arg5@ are arguments to be passed to the callback.\nbindTween_interpolate_callback :: MethodBind\nbindTween_interpolate_callback\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"interpolate_callback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calls @callback@ of @object@ after @duration@. @arg1@-@arg5@ are arguments to be passed to the callback.\ninterpolate_callback ::\n                       (Tween :< cls, Object :< cls) =>\n                       cls ->\n                         Object ->\n                           Float ->\n                             GodotString ->\n                               Maybe GodotVariant ->\n                                 Maybe GodotVariant ->\n                                   Maybe GodotVariant ->\n                                     Maybe GodotVariant -> Maybe GodotVariant -> IO Bool\ninterpolate_callback cls arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe VariantNil toVariant arg4, maybe VariantNil toVariant arg5,\n       maybe VariantNil toVariant arg6, maybe VariantNil toVariant arg7,\n       maybe VariantNil toVariant arg8]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_interpolate_callback (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"interpolate_callback\"\n           '[Object, Float, GodotString, Maybe GodotVariant,\n             Maybe GodotVariant, Maybe GodotVariant, Maybe GodotVariant,\n             Maybe GodotVariant]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Tween.interpolate_callback\n\n{-# NOINLINE bindTween_interpolate_deferred_callback #-}\n\n-- | Calls @callback@ of @object@ after @duration@ on the main thread (similar to @method Object.call_deferred@). @arg1@-@arg5@ are arguments to be passed to the callback.\nbindTween_interpolate_deferred_callback :: MethodBind\nbindTween_interpolate_deferred_callback\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"interpolate_deferred_callback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calls @callback@ of @object@ after @duration@ on the main thread (similar to @method Object.call_deferred@). @arg1@-@arg5@ are arguments to be passed to the callback.\ninterpolate_deferred_callback ::\n                                (Tween :< cls, Object :< cls) =>\n                                cls ->\n                                  Object ->\n                                    Float ->\n                                      GodotString ->\n                                        Maybe GodotVariant ->\n                                          Maybe GodotVariant ->\n                                            Maybe GodotVariant ->\n                                              Maybe GodotVariant -> Maybe GodotVariant -> IO Bool\ninterpolate_deferred_callback cls arg1 arg2 arg3 arg4 arg5 arg6\n  arg7 arg8\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe VariantNil toVariant arg4, maybe VariantNil toVariant arg5,\n       maybe VariantNil toVariant arg6, maybe VariantNil toVariant arg7,\n       maybe VariantNil toVariant arg8]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_interpolate_deferred_callback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"interpolate_deferred_callback\"\n           '[Object, Float, GodotString, Maybe GodotVariant,\n             Maybe GodotVariant, Maybe GodotVariant, Maybe GodotVariant,\n             Maybe GodotVariant]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Tween.interpolate_deferred_callback\n\n{-# NOINLINE bindTween_interpolate_method #-}\n\n-- | Animates @method@ of @object@ from @initial_val@ to @final_val@ for @duration@ seconds, @delay@ seconds later. Methods are called with consecutive values.\n--   \t\t\t\tUse @enum TransitionType@ for @trans_type@ and @enum EaseType@ for @ease_type@ parameters. These values control the timing and direction of the interpolation. See the class description for more information.\nbindTween_interpolate_method :: MethodBind\nbindTween_interpolate_method\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"interpolate_method\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Animates @method@ of @object@ from @initial_val@ to @final_val@ for @duration@ seconds, @delay@ seconds later. Methods are called with consecutive values.\n--   \t\t\t\tUse @enum TransitionType@ for @trans_type@ and @enum EaseType@ for @ease_type@ parameters. These values control the timing and direction of the interpolation. See the class description for more information.\ninterpolate_method ::\n                     (Tween :< cls, Object :< cls) =>\n                     cls ->\n                       Object ->\n                         GodotString ->\n                           GodotVariant ->\n                             GodotVariant ->\n                               Float -> Maybe Int -> Maybe Int -> Maybe Float -> IO Bool\ninterpolate_method cls arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, maybe (VariantInt (0)) toVariant arg6,\n       maybe (VariantInt (2)) toVariant arg7,\n       maybe (VariantReal (0)) toVariant arg8]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_interpolate_method (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"interpolate_method\"\n           '[Object, GodotString, GodotVariant, GodotVariant, Float,\n             Maybe Int, Maybe Int, Maybe Float]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Tween.interpolate_method\n\n{-# NOINLINE bindTween_interpolate_property #-}\n\n-- | Animates @property@ of @object@ from @initial_val@ to @final_val@ for @duration@ seconds, @delay@ seconds later. Setting the initial value to @null@ uses the current value of the property.\n--   \t\t\t\tUse @enum TransitionType@ for @trans_type@ and @enum EaseType@ for @ease_type@ parameters. These values control the timing and direction of the interpolation. See the class description for more information.\nbindTween_interpolate_property :: MethodBind\nbindTween_interpolate_property\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"interpolate_property\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Animates @property@ of @object@ from @initial_val@ to @final_val@ for @duration@ seconds, @delay@ seconds later. Setting the initial value to @null@ uses the current value of the property.\n--   \t\t\t\tUse @enum TransitionType@ for @trans_type@ and @enum EaseType@ for @ease_type@ parameters. These values control the timing and direction of the interpolation. See the class description for more information.\ninterpolate_property ::\n                       (Tween :< cls, Object :< cls) =>\n                       cls ->\n                         Object ->\n                           NodePath ->\n                             GodotVariant ->\n                               GodotVariant ->\n                                 Float -> Maybe Int -> Maybe Int -> Maybe Float -> IO Bool\ninterpolate_property cls arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, maybe (VariantInt (0)) toVariant arg6,\n       maybe (VariantInt (2)) toVariant arg7,\n       maybe (VariantReal (0)) toVariant arg8]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_interpolate_property (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"interpolate_property\"\n           '[Object, NodePath, GodotVariant, GodotVariant, Float, Maybe Int,\n             Maybe Int, Maybe Float]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Tween.interpolate_property\n\n{-# NOINLINE bindTween_is_active #-}\n\n-- | Returns @true@ if any tweens are currently running.\n--   \t\t\t\t__Note:__ This method doesn't consider tweens that have ended.\nbindTween_is_active :: MethodBind\nbindTween_is_active\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"is_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if any tweens are currently running.\n--   \t\t\t\t__Note:__ This method doesn't consider tweens that have ended.\nis_active :: (Tween :< cls, Object :< cls) => cls -> IO Bool\nis_active cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_is_active (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"is_active\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Tween.is_active\n\n{-# NOINLINE bindTween_is_repeat #-}\n\n-- | If @true@, the tween loops.\nbindTween_is_repeat :: MethodBind\nbindTween_is_repeat\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"is_repeat\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the tween loops.\nis_repeat :: (Tween :< cls, Object :< cls) => cls -> IO Bool\nis_repeat cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_is_repeat (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"is_repeat\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Tween.is_repeat\n\n{-# NOINLINE bindTween_remove #-}\n\n-- | Stops animation and removes a tween, given its object and property/method pair. By default, all tweens are removed, unless @key@ is specified.\nbindTween_remove :: MethodBind\nbindTween_remove\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"remove\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops animation and removes a tween, given its object and property/method pair. By default, all tweens are removed, unless @key@ is specified.\nremove ::\n         (Tween :< cls, Object :< cls) =>\n         cls -> Object -> Maybe GodotString -> IO Bool\nremove cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_remove (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"remove\" '[Object, Maybe GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Tween.remove\n\n{-# NOINLINE bindTween_remove_all #-}\n\n-- | Stops animation and removes all tweens.\nbindTween_remove_all :: MethodBind\nbindTween_remove_all\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"remove_all\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops animation and removes all tweens.\nremove_all :: (Tween :< cls, Object :< cls) => cls -> IO Bool\nremove_all cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_remove_all (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"remove_all\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Tween.remove_all\n\n{-# NOINLINE bindTween_reset #-}\n\n-- | Resets a tween to its initial value (the one given, not the one before the tween), given its object and property/method pair. By default, all tweens are removed, unless @key@ is specified.\nbindTween_reset :: MethodBind\nbindTween_reset\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"reset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Resets a tween to its initial value (the one given, not the one before the tween), given its object and property/method pair. By default, all tweens are removed, unless @key@ is specified.\nreset ::\n        (Tween :< cls, Object :< cls) =>\n        cls -> Object -> Maybe GodotString -> IO Bool\nreset cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_reset (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"reset\" '[Object, Maybe GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Tween.reset\n\n{-# NOINLINE bindTween_reset_all #-}\n\n-- | Resets all tweens to their initial values (the ones given, not those before the tween).\nbindTween_reset_all :: MethodBind\nbindTween_reset_all\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"reset_all\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Resets all tweens to their initial values (the ones given, not those before the tween).\nreset_all :: (Tween :< cls, Object :< cls) => cls -> IO Bool\nreset_all cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_reset_all (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"reset_all\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Tween.reset_all\n\n{-# NOINLINE bindTween_resume #-}\n\n-- | Continues animating a stopped tween, given its object and property/method pair. By default, all tweens are resumed, unless @key@ is specified.\nbindTween_resume :: MethodBind\nbindTween_resume\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"resume\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Continues animating a stopped tween, given its object and property/method pair. By default, all tweens are resumed, unless @key@ is specified.\nresume ::\n         (Tween :< cls, Object :< cls) =>\n         cls -> Object -> Maybe GodotString -> IO Bool\nresume cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_resume (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"resume\" '[Object, Maybe GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Tween.resume\n\n{-# NOINLINE bindTween_resume_all #-}\n\n-- | Continues animating all stopped tweens.\nbindTween_resume_all :: MethodBind\nbindTween_resume_all\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"resume_all\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Continues animating all stopped tweens.\nresume_all :: (Tween :< cls, Object :< cls) => cls -> IO Bool\nresume_all cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_resume_all (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"resume_all\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Tween.resume_all\n\n{-# NOINLINE bindTween_seek #-}\n\n-- | Sets the interpolation to the given @time@ in seconds.\nbindTween_seek :: MethodBind\nbindTween_seek\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"seek\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the interpolation to the given @time@ in seconds.\nseek :: (Tween :< cls, Object :< cls) => cls -> Float -> IO Bool\nseek cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_seek (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"seek\" '[Float] (IO Bool) where\n        nodeMethod = Godot.Core.Tween.seek\n\n{-# NOINLINE bindTween_set_active #-}\n\n-- | Activates/deactivates the tween. See also @method stop_all@ and @method resume_all@.\nbindTween_set_active :: MethodBind\nbindTween_set_active\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"set_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Activates/deactivates the tween. See also @method stop_all@ and @method resume_all@.\nset_active :: (Tween :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_active cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_set_active (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"set_active\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Tween.set_active\n\n{-# NOINLINE bindTween_set_repeat #-}\n\n-- | If @true@, the tween loops.\nbindTween_set_repeat :: MethodBind\nbindTween_set_repeat\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"set_repeat\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the tween loops.\nset_repeat :: (Tween :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_repeat cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_set_repeat (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"set_repeat\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Tween.set_repeat\n\n{-# NOINLINE bindTween_set_speed_scale #-}\n\n-- | The tween's speed multiplier. For example, set it to @1.0@ for normal speed, @2.0@ for two times normal speed, or @0.5@ for half of the normal speed. A value of @0@ pauses the animation, but see also @method set_active@ or @method stop_all@ for this.\nbindTween_set_speed_scale :: MethodBind\nbindTween_set_speed_scale\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"set_speed_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The tween's speed multiplier. For example, set it to @1.0@ for normal speed, @2.0@ for two times normal speed, or @0.5@ for half of the normal speed. A value of @0@ pauses the animation, but see also @method set_active@ or @method stop_all@ for this.\nset_speed_scale ::\n                  (Tween :< cls, Object :< cls) => cls -> Float -> IO ()\nset_speed_scale cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_set_speed_scale (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"set_speed_scale\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.Tween.set_speed_scale\n\n{-# NOINLINE bindTween_set_tween_process_mode #-}\n\n-- | The tween's animation process thread. See @enum TweenProcessMode@.\nbindTween_set_tween_process_mode :: MethodBind\nbindTween_set_tween_process_mode\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"set_tween_process_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The tween's animation process thread. See @enum TweenProcessMode@.\nset_tween_process_mode ::\n                         (Tween :< cls, Object :< cls) => cls -> Int -> IO ()\nset_tween_process_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_set_tween_process_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"set_tween_process_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Tween.set_tween_process_mode\n\n{-# NOINLINE bindTween_start #-}\n\n-- | Starts the tween. You can define animations both before and after this.\nbindTween_start :: MethodBind\nbindTween_start\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"start\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Starts the tween. You can define animations both before and after this.\nstart :: (Tween :< cls, Object :< cls) => cls -> IO Bool\nstart cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_start (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"start\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Tween.start\n\n{-# NOINLINE bindTween_stop #-}\n\n-- | Stops a tween, given its object and property/method pair. By default, all tweens are stopped, unless @key@ is specified.\nbindTween_stop :: MethodBind\nbindTween_stop\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"stop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops a tween, given its object and property/method pair. By default, all tweens are stopped, unless @key@ is specified.\nstop ::\n       (Tween :< cls, Object :< cls) =>\n       cls -> Object -> Maybe GodotString -> IO Bool\nstop cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_stop (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"stop\" '[Object, Maybe GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Tween.stop\n\n{-# NOINLINE bindTween_stop_all #-}\n\n-- | Stops animating all tweens.\nbindTween_stop_all :: MethodBind\nbindTween_stop_all\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"stop_all\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops animating all tweens.\nstop_all :: (Tween :< cls, Object :< cls) => cls -> IO Bool\nstop_all cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_stop_all (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"stop_all\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Tween.stop_all\n\n{-# NOINLINE bindTween_targeting_method #-}\n\n-- | Animates @method@ of @object@ from the value returned by @initial_method@ to @final_val@ for @duration@ seconds, @delay@ seconds later. Methods are animated by calling them with consecutive values.\n--   \t\t\t\tUse @enum TransitionType@ for @trans_type@ and @enum EaseType@ for @ease_type@ parameters. These values control the timing and direction of the interpolation. See the class description for more information.\nbindTween_targeting_method :: MethodBind\nbindTween_targeting_method\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"targeting_method\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Animates @method@ of @object@ from the value returned by @initial_method@ to @final_val@ for @duration@ seconds, @delay@ seconds later. Methods are animated by calling them with consecutive values.\n--   \t\t\t\tUse @enum TransitionType@ for @trans_type@ and @enum EaseType@ for @ease_type@ parameters. These values control the timing and direction of the interpolation. See the class description for more information.\ntargeting_method ::\n                   (Tween :< cls, Object :< cls) =>\n                   cls ->\n                     Object ->\n                       GodotString ->\n                         Object ->\n                           GodotString ->\n                             GodotVariant ->\n                               Float -> Maybe Int -> Maybe Int -> Maybe Float -> IO Bool\ntargeting_method cls arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6,\n       maybe (VariantInt (0)) toVariant arg7,\n       maybe (VariantInt (2)) toVariant arg8,\n       maybe (VariantReal (0)) toVariant arg9]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_targeting_method (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"targeting_method\"\n           '[Object, GodotString, Object, GodotString, GodotVariant, Float,\n             Maybe Int, Maybe Int, Maybe Float]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Tween.targeting_method\n\n{-# NOINLINE bindTween_targeting_property #-}\n\n-- | Animates @property@ of @object@ from the current value of the @initial_val@ property of @initial@ to @final_val@ for @duration@ seconds, @delay@ seconds later.\n--   \t\t\t\tUse @enum TransitionType@ for @trans_type@ and @enum EaseType@ for @ease_type@ parameters. These values control the timing and direction of the interpolation. See the class description for more information.\nbindTween_targeting_property :: MethodBind\nbindTween_targeting_property\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"targeting_property\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Animates @property@ of @object@ from the current value of the @initial_val@ property of @initial@ to @final_val@ for @duration@ seconds, @delay@ seconds later.\n--   \t\t\t\tUse @enum TransitionType@ for @trans_type@ and @enum EaseType@ for @ease_type@ parameters. These values control the timing and direction of the interpolation. See the class description for more information.\ntargeting_property ::\n                     (Tween :< cls, Object :< cls) =>\n                     cls ->\n                       Object ->\n                         NodePath ->\n                           Object ->\n                             NodePath ->\n                               GodotVariant ->\n                                 Float -> Maybe Int -> Maybe Int -> Maybe Float -> IO Bool\ntargeting_property cls arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6,\n       maybe (VariantInt (0)) toVariant arg7,\n       maybe (VariantInt (2)) toVariant arg8,\n       maybe (VariantReal (0)) toVariant arg9]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_targeting_property (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"targeting_property\"\n           '[Object, NodePath, Object, NodePath, GodotVariant, Float,\n             Maybe Int, Maybe Int, Maybe Float]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Tween.targeting_property\n\n{-# NOINLINE bindTween_tell #-}\n\n-- | Returns the current time of the tween.\nbindTween_tell :: MethodBind\nbindTween_tell\n  = unsafePerformIO $\n      withCString \"Tween\" $\n        \\ clsNamePtr ->\n          withCString \"tell\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current time of the tween.\ntell :: (Tween :< cls, Object :< cls) => cls -> IO Float\ntell cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindTween_tell (upcast cls) arrPtr len >>=\n           \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Tween \"tell\" '[] (IO Float) where\n        nodeMethod = Godot.Core.Tween.tell"
  },
  {
    "path": "src/Godot/Core/UPNP.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.UPNP\n       (Godot.Core.UPNP._UPNP_RESULT_NO_SUCH_ENTRY_IN_ARRAY,\n        Godot.Core.UPNP._UPNP_RESULT_NO_DEVICES,\n        Godot.Core.UPNP._UPNP_RESULT_EXT_PORT_WILDCARD_NOT_PERMITTED,\n        Godot.Core.UPNP._UPNP_RESULT_SAME_PORT_VALUES_REQUIRED,\n        Godot.Core.UPNP._UPNP_RESULT_MEM_ALLOC_ERROR,\n        Godot.Core.UPNP._UPNP_RESULT_INVALID_PROTOCOL,\n        Godot.Core.UPNP._UPNP_RESULT_HTTP_ERROR,\n        Godot.Core.UPNP._UPNP_RESULT_INT_PORT_WILDCARD_NOT_PERMITTED,\n        Godot.Core.UPNP._UPNP_RESULT_INVALID_PORT,\n        Godot.Core.UPNP._UPNP_RESULT_ACTION_FAILED,\n        Godot.Core.UPNP._UPNP_RESULT_PORT_MAPPING_NOT_FOUND,\n        Godot.Core.UPNP._UPNP_RESULT_INVALID_PARAM,\n        Godot.Core.UPNP._UPNP_RESULT_REMOTE_HOST_MUST_BE_WILDCARD,\n        Godot.Core.UPNP._UPNP_RESULT_SRC_IP_WILDCARD_NOT_PERMITTED,\n        Godot.Core.UPNP._UPNP_RESULT_NO_GATEWAY,\n        Godot.Core.UPNP._UPNP_RESULT_INVALID_GATEWAY,\n        Godot.Core.UPNP._UPNP_RESULT_NOT_AUTHORIZED,\n        Godot.Core.UPNP._UPNP_RESULT_INVALID_RESPONSE,\n        Godot.Core.UPNP._UPNP_RESULT_INVALID_DURATION,\n        Godot.Core.UPNP._UPNP_RESULT_UNKNOWN_ERROR,\n        Godot.Core.UPNP._UPNP_RESULT_INCONSISTENT_PARAMETERS,\n        Godot.Core.UPNP._UPNP_RESULT_EXT_PORT_MUST_BE_WILDCARD,\n        Godot.Core.UPNP._UPNP_RESULT_SOCKET_ERROR,\n        Godot.Core.UPNP._UPNP_RESULT_NO_PORT_MAPS_AVAILABLE,\n        Godot.Core.UPNP._UPNP_RESULT_ONLY_PERMANENT_LEASE_SUPPORTED,\n        Godot.Core.UPNP._UPNP_RESULT_INVALID_ARGS,\n        Godot.Core.UPNP._UPNP_RESULT_CONFLICT_WITH_OTHER_MECHANISM,\n        Godot.Core.UPNP._UPNP_RESULT_SUCCESS,\n        Godot.Core.UPNP._UPNP_RESULT_CONFLICT_WITH_OTHER_MAPPING,\n        Godot.Core.UPNP.add_device, Godot.Core.UPNP.add_port_mapping,\n        Godot.Core.UPNP.clear_devices, Godot.Core.UPNP.delete_port_mapping,\n        Godot.Core.UPNP.discover, Godot.Core.UPNP.get_device,\n        Godot.Core.UPNP.get_device_count,\n        Godot.Core.UPNP.get_discover_local_port,\n        Godot.Core.UPNP.get_discover_multicast_if,\n        Godot.Core.UPNP.get_gateway, Godot.Core.UPNP.is_discover_ipv6,\n        Godot.Core.UPNP.query_external_address,\n        Godot.Core.UPNP.remove_device, Godot.Core.UPNP.set_device,\n        Godot.Core.UPNP.set_discover_ipv6,\n        Godot.Core.UPNP.set_discover_local_port,\n        Godot.Core.UPNP.set_discover_multicast_if)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n_UPNP_RESULT_NO_SUCH_ENTRY_IN_ARRAY :: Int\n_UPNP_RESULT_NO_SUCH_ENTRY_IN_ARRAY = 4\n\n_UPNP_RESULT_NO_DEVICES :: Int\n_UPNP_RESULT_NO_DEVICES = 27\n\n_UPNP_RESULT_EXT_PORT_WILDCARD_NOT_PERMITTED :: Int\n_UPNP_RESULT_EXT_PORT_WILDCARD_NOT_PERMITTED = 7\n\n_UPNP_RESULT_SAME_PORT_VALUES_REQUIRED :: Int\n_UPNP_RESULT_SAME_PORT_VALUES_REQUIRED = 14\n\n_UPNP_RESULT_MEM_ALLOC_ERROR :: Int\n_UPNP_RESULT_MEM_ALLOC_ERROR = 25\n\n_UPNP_RESULT_INVALID_PROTOCOL :: Int\n_UPNP_RESULT_INVALID_PROTOCOL = 18\n\n_UPNP_RESULT_HTTP_ERROR :: Int\n_UPNP_RESULT_HTTP_ERROR = 23\n\n_UPNP_RESULT_INT_PORT_WILDCARD_NOT_PERMITTED :: Int\n_UPNP_RESULT_INT_PORT_WILDCARD_NOT_PERMITTED = 8\n\n_UPNP_RESULT_INVALID_PORT :: Int\n_UPNP_RESULT_INVALID_PORT = 17\n\n_UPNP_RESULT_ACTION_FAILED :: Int\n_UPNP_RESULT_ACTION_FAILED = 5\n\n_UPNP_RESULT_PORT_MAPPING_NOT_FOUND :: Int\n_UPNP_RESULT_PORT_MAPPING_NOT_FOUND = 2\n\n_UPNP_RESULT_INVALID_PARAM :: Int\n_UPNP_RESULT_INVALID_PARAM = 22\n\n_UPNP_RESULT_REMOTE_HOST_MUST_BE_WILDCARD :: Int\n_UPNP_RESULT_REMOTE_HOST_MUST_BE_WILDCARD = 9\n\n_UPNP_RESULT_SRC_IP_WILDCARD_NOT_PERMITTED :: Int\n_UPNP_RESULT_SRC_IP_WILDCARD_NOT_PERMITTED = 6\n\n_UPNP_RESULT_NO_GATEWAY :: Int\n_UPNP_RESULT_NO_GATEWAY = 26\n\n_UPNP_RESULT_INVALID_GATEWAY :: Int\n_UPNP_RESULT_INVALID_GATEWAY = 16\n\n_UPNP_RESULT_NOT_AUTHORIZED :: Int\n_UPNP_RESULT_NOT_AUTHORIZED = 1\n\n_UPNP_RESULT_INVALID_RESPONSE :: Int\n_UPNP_RESULT_INVALID_RESPONSE = 21\n\n_UPNP_RESULT_INVALID_DURATION :: Int\n_UPNP_RESULT_INVALID_DURATION = 19\n\n_UPNP_RESULT_UNKNOWN_ERROR :: Int\n_UPNP_RESULT_UNKNOWN_ERROR = 28\n\n_UPNP_RESULT_INCONSISTENT_PARAMETERS :: Int\n_UPNP_RESULT_INCONSISTENT_PARAMETERS = 3\n\n_UPNP_RESULT_EXT_PORT_MUST_BE_WILDCARD :: Int\n_UPNP_RESULT_EXT_PORT_MUST_BE_WILDCARD = 10\n\n_UPNP_RESULT_SOCKET_ERROR :: Int\n_UPNP_RESULT_SOCKET_ERROR = 24\n\n_UPNP_RESULT_NO_PORT_MAPS_AVAILABLE :: Int\n_UPNP_RESULT_NO_PORT_MAPS_AVAILABLE = 11\n\n_UPNP_RESULT_ONLY_PERMANENT_LEASE_SUPPORTED :: Int\n_UPNP_RESULT_ONLY_PERMANENT_LEASE_SUPPORTED = 15\n\n_UPNP_RESULT_INVALID_ARGS :: Int\n_UPNP_RESULT_INVALID_ARGS = 20\n\n_UPNP_RESULT_CONFLICT_WITH_OTHER_MECHANISM :: Int\n_UPNP_RESULT_CONFLICT_WITH_OTHER_MECHANISM = 12\n\n_UPNP_RESULT_SUCCESS :: Int\n_UPNP_RESULT_SUCCESS = 0\n\n_UPNP_RESULT_CONFLICT_WITH_OTHER_MAPPING :: Int\n_UPNP_RESULT_CONFLICT_WITH_OTHER_MAPPING = 13\n\ninstance NodeProperty UPNP \"discover_ipv6\" Bool 'False where\n        nodeProperty\n          = (is_discover_ipv6, wrapDroppingSetter set_discover_ipv6, Nothing)\n\ninstance NodeProperty UPNP \"discover_local_port\" Int 'False where\n        nodeProperty\n          = (get_discover_local_port,\n             wrapDroppingSetter set_discover_local_port, Nothing)\n\ninstance NodeProperty UPNP \"discover_multicast_if\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_discover_multicast_if,\n             wrapDroppingSetter set_discover_multicast_if, Nothing)\n\n{-# NOINLINE bindUPNP_add_device #-}\n\nbindUPNP_add_device :: MethodBind\nbindUPNP_add_device\n  = unsafePerformIO $\n      withCString \"UPNP\" $\n        \\ clsNamePtr ->\n          withCString \"add_device\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_device ::\n             (UPNP :< cls, Object :< cls) => cls -> UPNPDevice -> IO ()\nadd_device cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNP_add_device (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNP \"add_device\" '[UPNPDevice] (IO ()) where\n        nodeMethod = Godot.Core.UPNP.add_device\n\n{-# NOINLINE bindUPNP_add_port_mapping #-}\n\nbindUPNP_add_port_mapping :: MethodBind\nbindUPNP_add_port_mapping\n  = unsafePerformIO $\n      withCString \"UPNP\" $\n        \\ clsNamePtr ->\n          withCString \"add_port_mapping\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_port_mapping ::\n                   (UPNP :< cls, Object :< cls) =>\n                   cls ->\n                     Int ->\n                       Maybe Int ->\n                         Maybe GodotString -> Maybe GodotString -> Maybe Int -> IO Int\nadd_port_mapping cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (0)) toVariant arg2,\n       defaultedVariant VariantString \"\" arg3,\n       defaultedVariant VariantString \"UDP\" arg4,\n       maybe (VariantInt (0)) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNP_add_port_mapping (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNP \"add_port_mapping\"\n           '[Int, Maybe Int, Maybe GodotString, Maybe GodotString, Maybe Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.UPNP.add_port_mapping\n\n{-# NOINLINE bindUPNP_clear_devices #-}\n\nbindUPNP_clear_devices :: MethodBind\nbindUPNP_clear_devices\n  = unsafePerformIO $\n      withCString \"UPNP\" $\n        \\ clsNamePtr ->\n          withCString \"clear_devices\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nclear_devices :: (UPNP :< cls, Object :< cls) => cls -> IO ()\nclear_devices cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNP_clear_devices (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNP \"clear_devices\" '[] (IO ()) where\n        nodeMethod = Godot.Core.UPNP.clear_devices\n\n{-# NOINLINE bindUPNP_delete_port_mapping #-}\n\nbindUPNP_delete_port_mapping :: MethodBind\nbindUPNP_delete_port_mapping\n  = unsafePerformIO $\n      withCString \"UPNP\" $\n        \\ clsNamePtr ->\n          withCString \"delete_port_mapping\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ndelete_port_mapping ::\n                      (UPNP :< cls, Object :< cls) =>\n                      cls -> Int -> Maybe GodotString -> IO Int\ndelete_port_mapping cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"UDP\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNP_delete_port_mapping (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNP \"delete_port_mapping\"\n           '[Int, Maybe GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.UPNP.delete_port_mapping\n\n{-# NOINLINE bindUPNP_discover #-}\n\nbindUPNP_discover :: MethodBind\nbindUPNP_discover\n  = unsafePerformIO $\n      withCString \"UPNP\" $\n        \\ clsNamePtr ->\n          withCString \"discover\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ndiscover ::\n           (UPNP :< cls, Object :< cls) =>\n           cls -> Maybe Int -> Maybe Int -> Maybe GodotString -> IO Int\ndiscover cls arg1 arg2 arg3\n  = withVariantArray\n      [maybe (VariantInt (2000)) toVariant arg1,\n       maybe (VariantInt (2)) toVariant arg2,\n       defaultedVariant VariantString \"InternetGatewayDevice\" arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNP_discover (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNP \"discover\"\n           '[Maybe Int, Maybe Int, Maybe GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.UPNP.discover\n\n{-# NOINLINE bindUPNP_get_device #-}\n\nbindUPNP_get_device :: MethodBind\nbindUPNP_get_device\n  = unsafePerformIO $\n      withCString \"UPNP\" $\n        \\ clsNamePtr ->\n          withCString \"get_device\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_device ::\n             (UPNP :< cls, Object :< cls) => cls -> Int -> IO UPNPDevice\nget_device cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNP_get_device (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNP \"get_device\" '[Int] (IO UPNPDevice) where\n        nodeMethod = Godot.Core.UPNP.get_device\n\n{-# NOINLINE bindUPNP_get_device_count #-}\n\nbindUPNP_get_device_count :: MethodBind\nbindUPNP_get_device_count\n  = unsafePerformIO $\n      withCString \"UPNP\" $\n        \\ clsNamePtr ->\n          withCString \"get_device_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_device_count :: (UPNP :< cls, Object :< cls) => cls -> IO Int\nget_device_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNP_get_device_count (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNP \"get_device_count\" '[] (IO Int) where\n        nodeMethod = Godot.Core.UPNP.get_device_count\n\n{-# NOINLINE bindUPNP_get_discover_local_port #-}\n\nbindUPNP_get_discover_local_port :: MethodBind\nbindUPNP_get_discover_local_port\n  = unsafePerformIO $\n      withCString \"UPNP\" $\n        \\ clsNamePtr ->\n          withCString \"get_discover_local_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_discover_local_port ::\n                          (UPNP :< cls, Object :< cls) => cls -> IO Int\nget_discover_local_port cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNP_get_discover_local_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNP \"get_discover_local_port\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.UPNP.get_discover_local_port\n\n{-# NOINLINE bindUPNP_get_discover_multicast_if #-}\n\nbindUPNP_get_discover_multicast_if :: MethodBind\nbindUPNP_get_discover_multicast_if\n  = unsafePerformIO $\n      withCString \"UPNP\" $\n        \\ clsNamePtr ->\n          withCString \"get_discover_multicast_if\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_discover_multicast_if ::\n                            (UPNP :< cls, Object :< cls) => cls -> IO GodotString\nget_discover_multicast_if cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNP_get_discover_multicast_if\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNP \"get_discover_multicast_if\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.UPNP.get_discover_multicast_if\n\n{-# NOINLINE bindUPNP_get_gateway #-}\n\nbindUPNP_get_gateway :: MethodBind\nbindUPNP_get_gateway\n  = unsafePerformIO $\n      withCString \"UPNP\" $\n        \\ clsNamePtr ->\n          withCString \"get_gateway\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_gateway :: (UPNP :< cls, Object :< cls) => cls -> IO UPNPDevice\nget_gateway cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNP_get_gateway (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNP \"get_gateway\" '[] (IO UPNPDevice) where\n        nodeMethod = Godot.Core.UPNP.get_gateway\n\n{-# NOINLINE bindUPNP_is_discover_ipv6 #-}\n\nbindUPNP_is_discover_ipv6 :: MethodBind\nbindUPNP_is_discover_ipv6\n  = unsafePerformIO $\n      withCString \"UPNP\" $\n        \\ clsNamePtr ->\n          withCString \"is_discover_ipv6\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_discover_ipv6 :: (UPNP :< cls, Object :< cls) => cls -> IO Bool\nis_discover_ipv6 cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNP_is_discover_ipv6 (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNP \"is_discover_ipv6\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.UPNP.is_discover_ipv6\n\n{-# NOINLINE bindUPNP_query_external_address #-}\n\nbindUPNP_query_external_address :: MethodBind\nbindUPNP_query_external_address\n  = unsafePerformIO $\n      withCString \"UPNP\" $\n        \\ clsNamePtr ->\n          withCString \"query_external_address\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nquery_external_address ::\n                         (UPNP :< cls, Object :< cls) => cls -> IO GodotString\nquery_external_address cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNP_query_external_address (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNP \"query_external_address\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.UPNP.query_external_address\n\n{-# NOINLINE bindUPNP_remove_device #-}\n\nbindUPNP_remove_device :: MethodBind\nbindUPNP_remove_device\n  = unsafePerformIO $\n      withCString \"UPNP\" $\n        \\ clsNamePtr ->\n          withCString \"remove_device\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nremove_device ::\n                (UPNP :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_device cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNP_remove_device (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNP \"remove_device\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.UPNP.remove_device\n\n{-# NOINLINE bindUPNP_set_device #-}\n\nbindUPNP_set_device :: MethodBind\nbindUPNP_set_device\n  = unsafePerformIO $\n      withCString \"UPNP\" $\n        \\ clsNamePtr ->\n          withCString \"set_device\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_device ::\n             (UPNP :< cls, Object :< cls) => cls -> Int -> UPNPDevice -> IO ()\nset_device cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNP_set_device (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNP \"set_device\" '[Int, UPNPDevice] (IO ())\n         where\n        nodeMethod = Godot.Core.UPNP.set_device\n\n{-# NOINLINE bindUPNP_set_discover_ipv6 #-}\n\nbindUPNP_set_discover_ipv6 :: MethodBind\nbindUPNP_set_discover_ipv6\n  = unsafePerformIO $\n      withCString \"UPNP\" $\n        \\ clsNamePtr ->\n          withCString \"set_discover_ipv6\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_discover_ipv6 ::\n                    (UPNP :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_discover_ipv6 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNP_set_discover_ipv6 (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNP \"set_discover_ipv6\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.UPNP.set_discover_ipv6\n\n{-# NOINLINE bindUPNP_set_discover_local_port #-}\n\nbindUPNP_set_discover_local_port :: MethodBind\nbindUPNP_set_discover_local_port\n  = unsafePerformIO $\n      withCString \"UPNP\" $\n        \\ clsNamePtr ->\n          withCString \"set_discover_local_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_discover_local_port ::\n                          (UPNP :< cls, Object :< cls) => cls -> Int -> IO ()\nset_discover_local_port cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNP_set_discover_local_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNP \"set_discover_local_port\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.UPNP.set_discover_local_port\n\n{-# NOINLINE bindUPNP_set_discover_multicast_if #-}\n\nbindUPNP_set_discover_multicast_if :: MethodBind\nbindUPNP_set_discover_multicast_if\n  = unsafePerformIO $\n      withCString \"UPNP\" $\n        \\ clsNamePtr ->\n          withCString \"set_discover_multicast_if\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_discover_multicast_if ::\n                            (UPNP :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_discover_multicast_if cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNP_set_discover_multicast_if\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNP \"set_discover_multicast_if\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.UPNP.set_discover_multicast_if"
  },
  {
    "path": "src/Godot/Core/UPNPDevice.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.UPNPDevice\n       (Godot.Core.UPNPDevice._IGD_STATUS_INVALID_CONTROL,\n        Godot.Core.UPNPDevice._IGD_STATUS_DISCONNECTED,\n        Godot.Core.UPNPDevice._IGD_STATUS_OK,\n        Godot.Core.UPNPDevice._IGD_STATUS_NO_URLS,\n        Godot.Core.UPNPDevice._IGD_STATUS_MALLOC_ERROR,\n        Godot.Core.UPNPDevice._IGD_STATUS_UNKNOWN_ERROR,\n        Godot.Core.UPNPDevice._IGD_STATUS_HTTP_EMPTY,\n        Godot.Core.UPNPDevice._IGD_STATUS_NO_IGD,\n        Godot.Core.UPNPDevice._IGD_STATUS_UNKNOWN_DEVICE,\n        Godot.Core.UPNPDevice._IGD_STATUS_HTTP_ERROR,\n        Godot.Core.UPNPDevice.add_port_mapping,\n        Godot.Core.UPNPDevice.delete_port_mapping,\n        Godot.Core.UPNPDevice.get_description_url,\n        Godot.Core.UPNPDevice.get_igd_control_url,\n        Godot.Core.UPNPDevice.get_igd_our_addr,\n        Godot.Core.UPNPDevice.get_igd_service_type,\n        Godot.Core.UPNPDevice.get_igd_status,\n        Godot.Core.UPNPDevice.get_service_type,\n        Godot.Core.UPNPDevice.is_valid_gateway,\n        Godot.Core.UPNPDevice.query_external_address,\n        Godot.Core.UPNPDevice.set_description_url,\n        Godot.Core.UPNPDevice.set_igd_control_url,\n        Godot.Core.UPNPDevice.set_igd_our_addr,\n        Godot.Core.UPNPDevice.set_igd_service_type,\n        Godot.Core.UPNPDevice.set_igd_status,\n        Godot.Core.UPNPDevice.set_service_type)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n_IGD_STATUS_INVALID_CONTROL :: Int\n_IGD_STATUS_INVALID_CONTROL = 7\n\n_IGD_STATUS_DISCONNECTED :: Int\n_IGD_STATUS_DISCONNECTED = 5\n\n_IGD_STATUS_OK :: Int\n_IGD_STATUS_OK = 0\n\n_IGD_STATUS_NO_URLS :: Int\n_IGD_STATUS_NO_URLS = 3\n\n_IGD_STATUS_MALLOC_ERROR :: Int\n_IGD_STATUS_MALLOC_ERROR = 8\n\n_IGD_STATUS_UNKNOWN_ERROR :: Int\n_IGD_STATUS_UNKNOWN_ERROR = 9\n\n_IGD_STATUS_HTTP_EMPTY :: Int\n_IGD_STATUS_HTTP_EMPTY = 2\n\n_IGD_STATUS_NO_IGD :: Int\n_IGD_STATUS_NO_IGD = 4\n\n_IGD_STATUS_UNKNOWN_DEVICE :: Int\n_IGD_STATUS_UNKNOWN_DEVICE = 6\n\n_IGD_STATUS_HTTP_ERROR :: Int\n_IGD_STATUS_HTTP_ERROR = 1\n\ninstance NodeProperty UPNPDevice \"description_url\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_description_url, wrapDroppingSetter set_description_url,\n             Nothing)\n\ninstance NodeProperty UPNPDevice \"igd_control_url\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_igd_control_url, wrapDroppingSetter set_igd_control_url,\n             Nothing)\n\ninstance NodeProperty UPNPDevice \"igd_our_addr\" GodotString 'False\n         where\n        nodeProperty\n          = (get_igd_our_addr, wrapDroppingSetter set_igd_our_addr, Nothing)\n\ninstance NodeProperty UPNPDevice \"igd_service_type\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_igd_service_type, wrapDroppingSetter set_igd_service_type,\n             Nothing)\n\ninstance NodeProperty UPNPDevice \"igd_status\" Int 'False where\n        nodeProperty\n          = (get_igd_status, wrapDroppingSetter set_igd_status, Nothing)\n\ninstance NodeProperty UPNPDevice \"service_type\" GodotString 'False\n         where\n        nodeProperty\n          = (get_service_type, wrapDroppingSetter set_service_type, Nothing)\n\n{-# NOINLINE bindUPNPDevice_add_port_mapping #-}\n\nbindUPNPDevice_add_port_mapping :: MethodBind\nbindUPNPDevice_add_port_mapping\n  = unsafePerformIO $\n      withCString \"UPNPDevice\" $\n        \\ clsNamePtr ->\n          withCString \"add_port_mapping\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_port_mapping ::\n                   (UPNPDevice :< cls, Object :< cls) =>\n                   cls ->\n                     Int ->\n                       Maybe Int ->\n                         Maybe GodotString -> Maybe GodotString -> Maybe Int -> IO Int\nadd_port_mapping cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (0)) toVariant arg2,\n       defaultedVariant VariantString \"\" arg3,\n       defaultedVariant VariantString \"UDP\" arg4,\n       maybe (VariantInt (0)) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNPDevice_add_port_mapping (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNPDevice \"add_port_mapping\"\n           '[Int, Maybe Int, Maybe GodotString, Maybe GodotString, Maybe Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.UPNPDevice.add_port_mapping\n\n{-# NOINLINE bindUPNPDevice_delete_port_mapping #-}\n\nbindUPNPDevice_delete_port_mapping :: MethodBind\nbindUPNPDevice_delete_port_mapping\n  = unsafePerformIO $\n      withCString \"UPNPDevice\" $\n        \\ clsNamePtr ->\n          withCString \"delete_port_mapping\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ndelete_port_mapping ::\n                      (UPNPDevice :< cls, Object :< cls) =>\n                      cls -> Int -> Maybe GodotString -> IO Int\ndelete_port_mapping cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"UDP\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNPDevice_delete_port_mapping\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNPDevice \"delete_port_mapping\"\n           '[Int, Maybe GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.UPNPDevice.delete_port_mapping\n\n{-# NOINLINE bindUPNPDevice_get_description_url #-}\n\nbindUPNPDevice_get_description_url :: MethodBind\nbindUPNPDevice_get_description_url\n  = unsafePerformIO $\n      withCString \"UPNPDevice\" $\n        \\ clsNamePtr ->\n          withCString \"get_description_url\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_description_url ::\n                      (UPNPDevice :< cls, Object :< cls) => cls -> IO GodotString\nget_description_url cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNPDevice_get_description_url\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNPDevice \"get_description_url\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.UPNPDevice.get_description_url\n\n{-# NOINLINE bindUPNPDevice_get_igd_control_url #-}\n\nbindUPNPDevice_get_igd_control_url :: MethodBind\nbindUPNPDevice_get_igd_control_url\n  = unsafePerformIO $\n      withCString \"UPNPDevice\" $\n        \\ clsNamePtr ->\n          withCString \"get_igd_control_url\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_igd_control_url ::\n                      (UPNPDevice :< cls, Object :< cls) => cls -> IO GodotString\nget_igd_control_url cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNPDevice_get_igd_control_url\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNPDevice \"get_igd_control_url\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.UPNPDevice.get_igd_control_url\n\n{-# NOINLINE bindUPNPDevice_get_igd_our_addr #-}\n\nbindUPNPDevice_get_igd_our_addr :: MethodBind\nbindUPNPDevice_get_igd_our_addr\n  = unsafePerformIO $\n      withCString \"UPNPDevice\" $\n        \\ clsNamePtr ->\n          withCString \"get_igd_our_addr\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_igd_our_addr ::\n                   (UPNPDevice :< cls, Object :< cls) => cls -> IO GodotString\nget_igd_our_addr cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNPDevice_get_igd_our_addr (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNPDevice \"get_igd_our_addr\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.UPNPDevice.get_igd_our_addr\n\n{-# NOINLINE bindUPNPDevice_get_igd_service_type #-}\n\nbindUPNPDevice_get_igd_service_type :: MethodBind\nbindUPNPDevice_get_igd_service_type\n  = unsafePerformIO $\n      withCString \"UPNPDevice\" $\n        \\ clsNamePtr ->\n          withCString \"get_igd_service_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_igd_service_type ::\n                       (UPNPDevice :< cls, Object :< cls) => cls -> IO GodotString\nget_igd_service_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNPDevice_get_igd_service_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNPDevice \"get_igd_service_type\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.UPNPDevice.get_igd_service_type\n\n{-# NOINLINE bindUPNPDevice_get_igd_status #-}\n\nbindUPNPDevice_get_igd_status :: MethodBind\nbindUPNPDevice_get_igd_status\n  = unsafePerformIO $\n      withCString \"UPNPDevice\" $\n        \\ clsNamePtr ->\n          withCString \"get_igd_status\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_igd_status ::\n                 (UPNPDevice :< cls, Object :< cls) => cls -> IO Int\nget_igd_status cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNPDevice_get_igd_status (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNPDevice \"get_igd_status\" '[] (IO Int) where\n        nodeMethod = Godot.Core.UPNPDevice.get_igd_status\n\n{-# NOINLINE bindUPNPDevice_get_service_type #-}\n\nbindUPNPDevice_get_service_type :: MethodBind\nbindUPNPDevice_get_service_type\n  = unsafePerformIO $\n      withCString \"UPNPDevice\" $\n        \\ clsNamePtr ->\n          withCString \"get_service_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_service_type ::\n                   (UPNPDevice :< cls, Object :< cls) => cls -> IO GodotString\nget_service_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNPDevice_get_service_type (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNPDevice \"get_service_type\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.UPNPDevice.get_service_type\n\n{-# NOINLINE bindUPNPDevice_is_valid_gateway #-}\n\nbindUPNPDevice_is_valid_gateway :: MethodBind\nbindUPNPDevice_is_valid_gateway\n  = unsafePerformIO $\n      withCString \"UPNPDevice\" $\n        \\ clsNamePtr ->\n          withCString \"is_valid_gateway\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_valid_gateway ::\n                   (UPNPDevice :< cls, Object :< cls) => cls -> IO Bool\nis_valid_gateway cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNPDevice_is_valid_gateway (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNPDevice \"is_valid_gateway\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.UPNPDevice.is_valid_gateway\n\n{-# NOINLINE bindUPNPDevice_query_external_address #-}\n\nbindUPNPDevice_query_external_address :: MethodBind\nbindUPNPDevice_query_external_address\n  = unsafePerformIO $\n      withCString \"UPNPDevice\" $\n        \\ clsNamePtr ->\n          withCString \"query_external_address\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nquery_external_address ::\n                         (UPNPDevice :< cls, Object :< cls) => cls -> IO GodotString\nquery_external_address cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNPDevice_query_external_address\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNPDevice \"query_external_address\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.UPNPDevice.query_external_address\n\n{-# NOINLINE bindUPNPDevice_set_description_url #-}\n\nbindUPNPDevice_set_description_url :: MethodBind\nbindUPNPDevice_set_description_url\n  = unsafePerformIO $\n      withCString \"UPNPDevice\" $\n        \\ clsNamePtr ->\n          withCString \"set_description_url\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_description_url ::\n                      (UPNPDevice :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_description_url cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNPDevice_set_description_url\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNPDevice \"set_description_url\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.UPNPDevice.set_description_url\n\n{-# NOINLINE bindUPNPDevice_set_igd_control_url #-}\n\nbindUPNPDevice_set_igd_control_url :: MethodBind\nbindUPNPDevice_set_igd_control_url\n  = unsafePerformIO $\n      withCString \"UPNPDevice\" $\n        \\ clsNamePtr ->\n          withCString \"set_igd_control_url\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_igd_control_url ::\n                      (UPNPDevice :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_igd_control_url cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNPDevice_set_igd_control_url\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNPDevice \"set_igd_control_url\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.UPNPDevice.set_igd_control_url\n\n{-# NOINLINE bindUPNPDevice_set_igd_our_addr #-}\n\nbindUPNPDevice_set_igd_our_addr :: MethodBind\nbindUPNPDevice_set_igd_our_addr\n  = unsafePerformIO $\n      withCString \"UPNPDevice\" $\n        \\ clsNamePtr ->\n          withCString \"set_igd_our_addr\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_igd_our_addr ::\n                   (UPNPDevice :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_igd_our_addr cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNPDevice_set_igd_our_addr (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNPDevice \"set_igd_our_addr\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.UPNPDevice.set_igd_our_addr\n\n{-# NOINLINE bindUPNPDevice_set_igd_service_type #-}\n\nbindUPNPDevice_set_igd_service_type :: MethodBind\nbindUPNPDevice_set_igd_service_type\n  = unsafePerformIO $\n      withCString \"UPNPDevice\" $\n        \\ clsNamePtr ->\n          withCString \"set_igd_service_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_igd_service_type ::\n                       (UPNPDevice :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_igd_service_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNPDevice_set_igd_service_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNPDevice \"set_igd_service_type\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.UPNPDevice.set_igd_service_type\n\n{-# NOINLINE bindUPNPDevice_set_igd_status #-}\n\nbindUPNPDevice_set_igd_status :: MethodBind\nbindUPNPDevice_set_igd_status\n  = unsafePerformIO $\n      withCString \"UPNPDevice\" $\n        \\ clsNamePtr ->\n          withCString \"set_igd_status\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_igd_status ::\n                 (UPNPDevice :< cls, Object :< cls) => cls -> Int -> IO ()\nset_igd_status cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNPDevice_set_igd_status (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNPDevice \"set_igd_status\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.UPNPDevice.set_igd_status\n\n{-# NOINLINE bindUPNPDevice_set_service_type #-}\n\nbindUPNPDevice_set_service_type :: MethodBind\nbindUPNPDevice_set_service_type\n  = unsafePerformIO $\n      withCString \"UPNPDevice\" $\n        \\ clsNamePtr ->\n          withCString \"set_service_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_service_type ::\n                   (UPNPDevice :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_service_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUPNPDevice_set_service_type (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UPNPDevice \"set_service_type\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.UPNPDevice.set_service_type"
  },
  {
    "path": "src/Godot/Core/UndoRedo.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.UndoRedo\n       (Godot.Core.UndoRedo._MERGE_DISABLE,\n        Godot.Core.UndoRedo._MERGE_ALL, Godot.Core.UndoRedo._MERGE_ENDS,\n        Godot.Core.UndoRedo.sig_version_changed,\n        Godot.Core.UndoRedo.add_do_method,\n        Godot.Core.UndoRedo.add_do_property,\n        Godot.Core.UndoRedo.add_do_reference,\n        Godot.Core.UndoRedo.add_undo_method,\n        Godot.Core.UndoRedo.add_undo_property,\n        Godot.Core.UndoRedo.add_undo_reference,\n        Godot.Core.UndoRedo.clear_history,\n        Godot.Core.UndoRedo.commit_action,\n        Godot.Core.UndoRedo.create_action,\n        Godot.Core.UndoRedo.get_current_action_name,\n        Godot.Core.UndoRedo.get_version, Godot.Core.UndoRedo.has_redo,\n        Godot.Core.UndoRedo.has_undo,\n        Godot.Core.UndoRedo.is_commiting_action, Godot.Core.UndoRedo.redo,\n        Godot.Core.UndoRedo.undo)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n_MERGE_DISABLE :: Int\n_MERGE_DISABLE = 0\n\n_MERGE_ALL :: Int\n_MERGE_ALL = 2\n\n_MERGE_ENDS :: Int\n_MERGE_ENDS = 1\n\n-- | Called when @method undo@ or @method redo@ was called.\nsig_version_changed :: Godot.Internal.Dispatch.Signal UndoRedo\nsig_version_changed\n  = Godot.Internal.Dispatch.Signal \"version_changed\"\n\ninstance NodeSignal UndoRedo \"version_changed\" '[]\n\n{-# NOINLINE bindUndoRedo_add_do_method #-}\n\n-- | Register a method that will be called when the action is committed.\nbindUndoRedo_add_do_method :: MethodBind\nbindUndoRedo_add_do_method\n  = unsafePerformIO $\n      withCString \"UndoRedo\" $\n        \\ clsNamePtr ->\n          withCString \"add_do_method\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Register a method that will be called when the action is committed.\nadd_do_method ::\n                (UndoRedo :< cls, Object :< cls) =>\n                cls -> Object -> GodotString -> [Variant 'GodotTy] -> IO ()\nadd_do_method cls arg1 arg2 varargs\n  = withVariantArray ([toVariant arg1, toVariant arg2] ++ varargs)\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUndoRedo_add_do_method (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UndoRedo \"add_do_method\"\n           '[Object, GodotString, [Variant 'GodotTy]]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.UndoRedo.add_do_method\n\n{-# NOINLINE bindUndoRedo_add_do_property #-}\n\n-- | Register a property value change for \"do\".\nbindUndoRedo_add_do_property :: MethodBind\nbindUndoRedo_add_do_property\n  = unsafePerformIO $\n      withCString \"UndoRedo\" $\n        \\ clsNamePtr ->\n          withCString \"add_do_property\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Register a property value change for \"do\".\nadd_do_property ::\n                  (UndoRedo :< cls, Object :< cls) =>\n                  cls -> Object -> GodotString -> GodotVariant -> IO ()\nadd_do_property cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUndoRedo_add_do_property (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UndoRedo \"add_do_property\"\n           '[Object, GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.UndoRedo.add_do_property\n\n{-# NOINLINE bindUndoRedo_add_do_reference #-}\n\n-- | Register a reference for \"do\" that will be erased if the \"do\" history is lost. This is useful mostly for new nodes created for the \"do\" call. Do not use for resources.\nbindUndoRedo_add_do_reference :: MethodBind\nbindUndoRedo_add_do_reference\n  = unsafePerformIO $\n      withCString \"UndoRedo\" $\n        \\ clsNamePtr ->\n          withCString \"add_do_reference\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Register a reference for \"do\" that will be erased if the \"do\" history is lost. This is useful mostly for new nodes created for the \"do\" call. Do not use for resources.\nadd_do_reference ::\n                   (UndoRedo :< cls, Object :< cls) => cls -> Object -> IO ()\nadd_do_reference cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUndoRedo_add_do_reference (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UndoRedo \"add_do_reference\" '[Object] (IO ())\n         where\n        nodeMethod = Godot.Core.UndoRedo.add_do_reference\n\n{-# NOINLINE bindUndoRedo_add_undo_method #-}\n\n-- | Register a method that will be called when the action is undone.\nbindUndoRedo_add_undo_method :: MethodBind\nbindUndoRedo_add_undo_method\n  = unsafePerformIO $\n      withCString \"UndoRedo\" $\n        \\ clsNamePtr ->\n          withCString \"add_undo_method\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Register a method that will be called when the action is undone.\nadd_undo_method ::\n                  (UndoRedo :< cls, Object :< cls) =>\n                  cls -> Object -> GodotString -> [Variant 'GodotTy] -> IO ()\nadd_undo_method cls arg1 arg2 varargs\n  = withVariantArray ([toVariant arg1, toVariant arg2] ++ varargs)\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUndoRedo_add_undo_method (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UndoRedo \"add_undo_method\"\n           '[Object, GodotString, [Variant 'GodotTy]]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.UndoRedo.add_undo_method\n\n{-# NOINLINE bindUndoRedo_add_undo_property #-}\n\n-- | Register a property value change for \"undo\".\nbindUndoRedo_add_undo_property :: MethodBind\nbindUndoRedo_add_undo_property\n  = unsafePerformIO $\n      withCString \"UndoRedo\" $\n        \\ clsNamePtr ->\n          withCString \"add_undo_property\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Register a property value change for \"undo\".\nadd_undo_property ::\n                    (UndoRedo :< cls, Object :< cls) =>\n                    cls -> Object -> GodotString -> GodotVariant -> IO ()\nadd_undo_property cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUndoRedo_add_undo_property (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UndoRedo \"add_undo_property\"\n           '[Object, GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.UndoRedo.add_undo_property\n\n{-# NOINLINE bindUndoRedo_add_undo_reference #-}\n\n-- | Register a reference for \"undo\" that will be erased if the \"undo\" history is lost. This is useful mostly for nodes removed with the \"do\" call (not the \"undo\" call!).\nbindUndoRedo_add_undo_reference :: MethodBind\nbindUndoRedo_add_undo_reference\n  = unsafePerformIO $\n      withCString \"UndoRedo\" $\n        \\ clsNamePtr ->\n          withCString \"add_undo_reference\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Register a reference for \"undo\" that will be erased if the \"undo\" history is lost. This is useful mostly for nodes removed with the \"do\" call (not the \"undo\" call!).\nadd_undo_reference ::\n                     (UndoRedo :< cls, Object :< cls) => cls -> Object -> IO ()\nadd_undo_reference cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUndoRedo_add_undo_reference (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UndoRedo \"add_undo_reference\" '[Object] (IO ())\n         where\n        nodeMethod = Godot.Core.UndoRedo.add_undo_reference\n\n{-# NOINLINE bindUndoRedo_clear_history #-}\n\n-- | Clear the undo/redo history and associated references.\n--   \t\t\t\tPassing @false@ to @increase_version@ will prevent the version number to be increased from this.\nbindUndoRedo_clear_history :: MethodBind\nbindUndoRedo_clear_history\n  = unsafePerformIO $\n      withCString \"UndoRedo\" $\n        \\ clsNamePtr ->\n          withCString \"clear_history\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clear the undo/redo history and associated references.\n--   \t\t\t\tPassing @false@ to @increase_version@ will prevent the version number to be increased from this.\nclear_history ::\n                (UndoRedo :< cls, Object :< cls) => cls -> Maybe Bool -> IO ()\nclear_history cls arg1\n  = withVariantArray [maybe (VariantBool True) toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUndoRedo_clear_history (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UndoRedo \"clear_history\" '[Maybe Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.UndoRedo.clear_history\n\n{-# NOINLINE bindUndoRedo_commit_action #-}\n\n-- | Commit the action. All \"do\" methods/properties are called/set when this function is called.\nbindUndoRedo_commit_action :: MethodBind\nbindUndoRedo_commit_action\n  = unsafePerformIO $\n      withCString \"UndoRedo\" $\n        \\ clsNamePtr ->\n          withCString \"commit_action\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Commit the action. All \"do\" methods/properties are called/set when this function is called.\ncommit_action :: (UndoRedo :< cls, Object :< cls) => cls -> IO ()\ncommit_action cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUndoRedo_commit_action (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UndoRedo \"commit_action\" '[] (IO ()) where\n        nodeMethod = Godot.Core.UndoRedo.commit_action\n\n{-# NOINLINE bindUndoRedo_create_action #-}\n\n-- | Create a new action. After this is called, do all your calls to @method add_do_method@, @method add_undo_method@, @method add_do_property@, and @method add_undo_property@, then commit the action with @method commit_action@.\n--   \t\t\t\tThe way actions are merged is dictated by the @merge_mode@ argument. See @enum MergeMode@ for details.\nbindUndoRedo_create_action :: MethodBind\nbindUndoRedo_create_action\n  = unsafePerformIO $\n      withCString \"UndoRedo\" $\n        \\ clsNamePtr ->\n          withCString \"create_action\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Create a new action. After this is called, do all your calls to @method add_do_method@, @method add_undo_method@, @method add_do_property@, and @method add_undo_property@, then commit the action with @method commit_action@.\n--   \t\t\t\tThe way actions are merged is dictated by the @merge_mode@ argument. See @enum MergeMode@ for details.\ncreate_action ::\n                (UndoRedo :< cls, Object :< cls) =>\n                cls -> GodotString -> Maybe Int -> IO ()\ncreate_action cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (0)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUndoRedo_create_action (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UndoRedo \"create_action\"\n           '[GodotString, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.UndoRedo.create_action\n\n{-# NOINLINE bindUndoRedo_get_current_action_name #-}\n\n-- | Gets the name of the current action.\nbindUndoRedo_get_current_action_name :: MethodBind\nbindUndoRedo_get_current_action_name\n  = unsafePerformIO $\n      withCString \"UndoRedo\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_action_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the name of the current action.\nget_current_action_name ::\n                          (UndoRedo :< cls, Object :< cls) => cls -> IO GodotString\nget_current_action_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUndoRedo_get_current_action_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UndoRedo \"get_current_action_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.UndoRedo.get_current_action_name\n\n{-# NOINLINE bindUndoRedo_get_version #-}\n\n-- | Gets the version. Every time a new action is committed, the @UndoRedo@'s version number is increased automatically.\n--   \t\t\t\tThis is useful mostly to check if something changed from a saved version.\nbindUndoRedo_get_version :: MethodBind\nbindUndoRedo_get_version\n  = unsafePerformIO $\n      withCString \"UndoRedo\" $\n        \\ clsNamePtr ->\n          withCString \"get_version\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the version. Every time a new action is committed, the @UndoRedo@'s version number is increased automatically.\n--   \t\t\t\tThis is useful mostly to check if something changed from a saved version.\nget_version :: (UndoRedo :< cls, Object :< cls) => cls -> IO Int\nget_version cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUndoRedo_get_version (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UndoRedo \"get_version\" '[] (IO Int) where\n        nodeMethod = Godot.Core.UndoRedo.get_version\n\n{-# NOINLINE bindUndoRedo_has_redo #-}\n\n-- | Returns @true@ if a \"redo\" action is available.\nbindUndoRedo_has_redo :: MethodBind\nbindUndoRedo_has_redo\n  = unsafePerformIO $\n      withCString \"UndoRedo\" $\n        \\ clsNamePtr ->\n          withCString \"has_redo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if a \"redo\" action is available.\nhas_redo :: (UndoRedo :< cls, Object :< cls) => cls -> IO Bool\nhas_redo cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUndoRedo_has_redo (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UndoRedo \"has_redo\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.UndoRedo.has_redo\n\n{-# NOINLINE bindUndoRedo_has_undo #-}\n\n-- | Returns @true@ if an \"undo\" action is available.\nbindUndoRedo_has_undo :: MethodBind\nbindUndoRedo_has_undo\n  = unsafePerformIO $\n      withCString \"UndoRedo\" $\n        \\ clsNamePtr ->\n          withCString \"has_undo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if an \"undo\" action is available.\nhas_undo :: (UndoRedo :< cls, Object :< cls) => cls -> IO Bool\nhas_undo cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUndoRedo_has_undo (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UndoRedo \"has_undo\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.UndoRedo.has_undo\n\n{-# NOINLINE bindUndoRedo_is_commiting_action #-}\n\n-- | Returns @true@ if the @UndoRedo@ is currently committing the action, i.e. running its \"do\" method or property change (see @method commit_action@).\nbindUndoRedo_is_commiting_action :: MethodBind\nbindUndoRedo_is_commiting_action\n  = unsafePerformIO $\n      withCString \"UndoRedo\" $\n        \\ clsNamePtr ->\n          withCString \"is_commiting_action\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the @UndoRedo@ is currently committing the action, i.e. running its \"do\" method or property change (see @method commit_action@).\nis_commiting_action ::\n                      (UndoRedo :< cls, Object :< cls) => cls -> IO Bool\nis_commiting_action cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUndoRedo_is_commiting_action\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UndoRedo \"is_commiting_action\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.UndoRedo.is_commiting_action\n\n{-# NOINLINE bindUndoRedo_redo #-}\n\n-- | Redo the last action.\nbindUndoRedo_redo :: MethodBind\nbindUndoRedo_redo\n  = unsafePerformIO $\n      withCString \"UndoRedo\" $\n        \\ clsNamePtr ->\n          withCString \"redo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Redo the last action.\nredo :: (UndoRedo :< cls, Object :< cls) => cls -> IO Bool\nredo cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUndoRedo_redo (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UndoRedo \"redo\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.UndoRedo.redo\n\n{-# NOINLINE bindUndoRedo_undo #-}\n\n-- | Undo the last action.\nbindUndoRedo_undo :: MethodBind\nbindUndoRedo_undo\n  = unsafePerformIO $\n      withCString \"UndoRedo\" $\n        \\ clsNamePtr ->\n          withCString \"undo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Undo the last action.\nundo :: (UndoRedo :< cls, Object :< cls) => cls -> IO Bool\nundo cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindUndoRedo_undo (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod UndoRedo \"undo\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.UndoRedo.undo"
  },
  {
    "path": "src/Godot/Core/VBoxContainer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VBoxContainer () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.BoxContainer()"
  },
  {
    "path": "src/Godot/Core/VScrollBar.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VScrollBar () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.ScrollBar()"
  },
  {
    "path": "src/Godot/Core/VSeparator.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VSeparator () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Separator()"
  },
  {
    "path": "src/Godot/Core/VSlider.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VSlider () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Slider()"
  },
  {
    "path": "src/Godot/Core/VSplitContainer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VSplitContainer () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.SplitContainer()"
  },
  {
    "path": "src/Godot/Core/VehicleBody.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VehicleBody\n       (Godot.Core.VehicleBody.get_brake,\n        Godot.Core.VehicleBody.get_engine_force,\n        Godot.Core.VehicleBody.get_steering,\n        Godot.Core.VehicleBody.set_brake,\n        Godot.Core.VehicleBody.set_engine_force,\n        Godot.Core.VehicleBody.set_steering)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.RigidBody()\n\ninstance NodeProperty VehicleBody \"brake\" Float 'False where\n        nodeProperty = (get_brake, wrapDroppingSetter set_brake, Nothing)\n\ninstance NodeProperty VehicleBody \"engine_force\" Float 'False where\n        nodeProperty\n          = (get_engine_force, wrapDroppingSetter set_engine_force, Nothing)\n\ninstance NodeProperty VehicleBody \"steering\" Float 'False where\n        nodeProperty\n          = (get_steering, wrapDroppingSetter set_steering, Nothing)\n\n{-# NOINLINE bindVehicleBody_get_brake #-}\n\n-- | Slows down the vehicle by applying a braking force. The vehicle is only slowed down if the wheels are in contact with a surface. The force you need to apply to adequately slow down your vehicle depends on the @RigidBody.mass@ of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 30 range for hard braking.\nbindVehicleBody_get_brake :: MethodBind\nbindVehicleBody_get_brake\n  = unsafePerformIO $\n      withCString \"VehicleBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_brake\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Slows down the vehicle by applying a braking force. The vehicle is only slowed down if the wheels are in contact with a surface. The force you need to apply to adequately slow down your vehicle depends on the @RigidBody.mass@ of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 30 range for hard braking.\nget_brake :: (VehicleBody :< cls, Object :< cls) => cls -> IO Float\nget_brake cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleBody_get_brake (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleBody \"get_brake\" '[] (IO Float) where\n        nodeMethod = Godot.Core.VehicleBody.get_brake\n\n{-# NOINLINE bindVehicleBody_get_engine_force #-}\n\n-- | Accelerates the vehicle by applying an engine force. The vehicle is only speed up if the wheels that have @VehicleWheel.use_as_traction@ set to @true@ and are in contact with a surface. The @RigidBody.mass@ of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration.\n--   \t\t\t__Note:__ The simulation does not take the effect of gears into account, you will need to add logic for this if you wish to simulate gears.\n--   \t\t\tA negative value will result in the vehicle reversing.\nbindVehicleBody_get_engine_force :: MethodBind\nbindVehicleBody_get_engine_force\n  = unsafePerformIO $\n      withCString \"VehicleBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_engine_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Accelerates the vehicle by applying an engine force. The vehicle is only speed up if the wheels that have @VehicleWheel.use_as_traction@ set to @true@ and are in contact with a surface. The @RigidBody.mass@ of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration.\n--   \t\t\t__Note:__ The simulation does not take the effect of gears into account, you will need to add logic for this if you wish to simulate gears.\n--   \t\t\tA negative value will result in the vehicle reversing.\nget_engine_force ::\n                   (VehicleBody :< cls, Object :< cls) => cls -> IO Float\nget_engine_force cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleBody_get_engine_force\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleBody \"get_engine_force\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.VehicleBody.get_engine_force\n\n{-# NOINLINE bindVehicleBody_get_steering #-}\n\n-- | The steering angle for the vehicle. Setting this to a non-zero value will result in the vehicle turning when it's moving. Wheels that have @VehicleWheel.use_as_steering@ set to @true@ will automatically be rotated.\nbindVehicleBody_get_steering :: MethodBind\nbindVehicleBody_get_steering\n  = unsafePerformIO $\n      withCString \"VehicleBody\" $\n        \\ clsNamePtr ->\n          withCString \"get_steering\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The steering angle for the vehicle. Setting this to a non-zero value will result in the vehicle turning when it's moving. Wheels that have @VehicleWheel.use_as_steering@ set to @true@ will automatically be rotated.\nget_steering ::\n               (VehicleBody :< cls, Object :< cls) => cls -> IO Float\nget_steering cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleBody_get_steering (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleBody \"get_steering\" '[] (IO Float) where\n        nodeMethod = Godot.Core.VehicleBody.get_steering\n\n{-# NOINLINE bindVehicleBody_set_brake #-}\n\n-- | Slows down the vehicle by applying a braking force. The vehicle is only slowed down if the wheels are in contact with a surface. The force you need to apply to adequately slow down your vehicle depends on the @RigidBody.mass@ of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 30 range for hard braking.\nbindVehicleBody_set_brake :: MethodBind\nbindVehicleBody_set_brake\n  = unsafePerformIO $\n      withCString \"VehicleBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_brake\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Slows down the vehicle by applying a braking force. The vehicle is only slowed down if the wheels are in contact with a surface. The force you need to apply to adequately slow down your vehicle depends on the @RigidBody.mass@ of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 30 range for hard braking.\nset_brake ::\n            (VehicleBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_brake cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleBody_set_brake (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleBody \"set_brake\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.VehicleBody.set_brake\n\n{-# NOINLINE bindVehicleBody_set_engine_force #-}\n\n-- | Accelerates the vehicle by applying an engine force. The vehicle is only speed up if the wheels that have @VehicleWheel.use_as_traction@ set to @true@ and are in contact with a surface. The @RigidBody.mass@ of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration.\n--   \t\t\t__Note:__ The simulation does not take the effect of gears into account, you will need to add logic for this if you wish to simulate gears.\n--   \t\t\tA negative value will result in the vehicle reversing.\nbindVehicleBody_set_engine_force :: MethodBind\nbindVehicleBody_set_engine_force\n  = unsafePerformIO $\n      withCString \"VehicleBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_engine_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Accelerates the vehicle by applying an engine force. The vehicle is only speed up if the wheels that have @VehicleWheel.use_as_traction@ set to @true@ and are in contact with a surface. The @RigidBody.mass@ of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration.\n--   \t\t\t__Note:__ The simulation does not take the effect of gears into account, you will need to add logic for this if you wish to simulate gears.\n--   \t\t\tA negative value will result in the vehicle reversing.\nset_engine_force ::\n                   (VehicleBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_engine_force cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleBody_set_engine_force\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleBody \"set_engine_force\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.VehicleBody.set_engine_force\n\n{-# NOINLINE bindVehicleBody_set_steering #-}\n\n-- | The steering angle for the vehicle. Setting this to a non-zero value will result in the vehicle turning when it's moving. Wheels that have @VehicleWheel.use_as_steering@ set to @true@ will automatically be rotated.\nbindVehicleBody_set_steering :: MethodBind\nbindVehicleBody_set_steering\n  = unsafePerformIO $\n      withCString \"VehicleBody\" $\n        \\ clsNamePtr ->\n          withCString \"set_steering\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The steering angle for the vehicle. Setting this to a non-zero value will result in the vehicle turning when it's moving. Wheels that have @VehicleWheel.use_as_steering@ set to @true@ will automatically be rotated.\nset_steering ::\n               (VehicleBody :< cls, Object :< cls) => cls -> Float -> IO ()\nset_steering cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleBody_set_steering (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleBody \"set_steering\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.VehicleBody.set_steering"
  },
  {
    "path": "src/Godot/Core/VehicleWheel.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VehicleWheel\n       (Godot.Core.VehicleWheel.get_brake,\n        Godot.Core.VehicleWheel.get_damping_compression,\n        Godot.Core.VehicleWheel.get_damping_relaxation,\n        Godot.Core.VehicleWheel.get_engine_force,\n        Godot.Core.VehicleWheel.get_friction_slip,\n        Godot.Core.VehicleWheel.get_radius,\n        Godot.Core.VehicleWheel.get_roll_influence,\n        Godot.Core.VehicleWheel.get_rpm,\n        Godot.Core.VehicleWheel.get_skidinfo,\n        Godot.Core.VehicleWheel.get_steering,\n        Godot.Core.VehicleWheel.get_suspension_max_force,\n        Godot.Core.VehicleWheel.get_suspension_rest_length,\n        Godot.Core.VehicleWheel.get_suspension_stiffness,\n        Godot.Core.VehicleWheel.get_suspension_travel,\n        Godot.Core.VehicleWheel.is_in_contact,\n        Godot.Core.VehicleWheel.is_used_as_steering,\n        Godot.Core.VehicleWheel.is_used_as_traction,\n        Godot.Core.VehicleWheel.set_brake,\n        Godot.Core.VehicleWheel.set_damping_compression,\n        Godot.Core.VehicleWheel.set_damping_relaxation,\n        Godot.Core.VehicleWheel.set_engine_force,\n        Godot.Core.VehicleWheel.set_friction_slip,\n        Godot.Core.VehicleWheel.set_radius,\n        Godot.Core.VehicleWheel.set_roll_influence,\n        Godot.Core.VehicleWheel.set_steering,\n        Godot.Core.VehicleWheel.set_suspension_max_force,\n        Godot.Core.VehicleWheel.set_suspension_rest_length,\n        Godot.Core.VehicleWheel.set_suspension_stiffness,\n        Godot.Core.VehicleWheel.set_suspension_travel,\n        Godot.Core.VehicleWheel.set_use_as_steering,\n        Godot.Core.VehicleWheel.set_use_as_traction)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\ninstance NodeProperty VehicleWheel \"brake\" Float 'False where\n        nodeProperty = (get_brake, wrapDroppingSetter set_brake, Nothing)\n\ninstance NodeProperty VehicleWheel \"damping_compression\" Float\n           'False\n         where\n        nodeProperty\n          = (get_damping_compression,\n             wrapDroppingSetter set_damping_compression, Nothing)\n\ninstance NodeProperty VehicleWheel \"damping_relaxation\" Float\n           'False\n         where\n        nodeProperty\n          = (get_damping_relaxation,\n             wrapDroppingSetter set_damping_relaxation, Nothing)\n\ninstance NodeProperty VehicleWheel \"engine_force\" Float 'False\n         where\n        nodeProperty\n          = (get_engine_force, wrapDroppingSetter set_engine_force, Nothing)\n\ninstance NodeProperty VehicleWheel \"steering\" Float 'False where\n        nodeProperty\n          = (get_steering, wrapDroppingSetter set_steering, Nothing)\n\ninstance NodeProperty VehicleWheel \"suspension_max_force\" Float\n           'False\n         where\n        nodeProperty\n          = (get_suspension_max_force,\n             wrapDroppingSetter set_suspension_max_force, Nothing)\n\ninstance NodeProperty VehicleWheel \"suspension_stiffness\" Float\n           'False\n         where\n        nodeProperty\n          = (get_suspension_stiffness,\n             wrapDroppingSetter set_suspension_stiffness, Nothing)\n\ninstance NodeProperty VehicleWheel \"suspension_travel\" Float 'False\n         where\n        nodeProperty\n          = (get_suspension_travel, wrapDroppingSetter set_suspension_travel,\n             Nothing)\n\ninstance NodeProperty VehicleWheel \"use_as_steering\" Bool 'False\n         where\n        nodeProperty\n          = (is_used_as_steering, wrapDroppingSetter set_use_as_steering,\n             Nothing)\n\ninstance NodeProperty VehicleWheel \"use_as_traction\" Bool 'False\n         where\n        nodeProperty\n          = (is_used_as_traction, wrapDroppingSetter set_use_as_traction,\n             Nothing)\n\ninstance NodeProperty VehicleWheel \"wheel_friction_slip\" Float\n           'False\n         where\n        nodeProperty\n          = (get_friction_slip, wrapDroppingSetter set_friction_slip,\n             Nothing)\n\ninstance NodeProperty VehicleWheel \"wheel_radius\" Float 'False\n         where\n        nodeProperty = (get_radius, wrapDroppingSetter set_radius, Nothing)\n\ninstance NodeProperty VehicleWheel \"wheel_rest_length\" Float 'False\n         where\n        nodeProperty\n          = (get_suspension_rest_length,\n             wrapDroppingSetter set_suspension_rest_length, Nothing)\n\ninstance NodeProperty VehicleWheel \"wheel_roll_influence\" Float\n           'False\n         where\n        nodeProperty\n          = (get_roll_influence, wrapDroppingSetter set_roll_influence,\n             Nothing)\n\n{-# NOINLINE bindVehicleWheel_get_brake #-}\n\n-- | Slows down the wheel by applying a braking force. The wheel is only slowed down if it is in contact with a surface. The force you need to apply to adequately slow down your vehicle depends on the @RigidBody.mass@ of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 30 range for hard braking.\nbindVehicleWheel_get_brake :: MethodBind\nbindVehicleWheel_get_brake\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"get_brake\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Slows down the wheel by applying a braking force. The wheel is only slowed down if it is in contact with a surface. The force you need to apply to adequately slow down your vehicle depends on the @RigidBody.mass@ of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 30 range for hard braking.\nget_brake ::\n            (VehicleWheel :< cls, Object :< cls) => cls -> IO Float\nget_brake cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_get_brake (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"get_brake\" '[] (IO Float) where\n        nodeMethod = Godot.Core.VehicleWheel.get_brake\n\n{-# NOINLINE bindVehicleWheel_get_damping_compression #-}\n\n-- | The damping applied to the spring when the spring is being compressed. This value should be between 0.0 (no damping) and 1.0. A value of 0.0 means the car will keep bouncing as the spring keeps its energy. A good value for this is around 0.3 for a normal car, 0.5 for a race car.\nbindVehicleWheel_get_damping_compression :: MethodBind\nbindVehicleWheel_get_damping_compression\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"get_damping_compression\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The damping applied to the spring when the spring is being compressed. This value should be between 0.0 (no damping) and 1.0. A value of 0.0 means the car will keep bouncing as the spring keeps its energy. A good value for this is around 0.3 for a normal car, 0.5 for a race car.\nget_damping_compression ::\n                          (VehicleWheel :< cls, Object :< cls) => cls -> IO Float\nget_damping_compression cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_get_damping_compression\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"get_damping_compression\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.VehicleWheel.get_damping_compression\n\n{-# NOINLINE bindVehicleWheel_get_damping_relaxation #-}\n\n-- | The damping applied to the spring when relaxing. This value should be between 0.0 (no damping) and 1.0. This value should always be slightly higher than the @damping_compression@ property. For a @damping_compression@ value of 0.3, try a relaxation value of 0.5.\nbindVehicleWheel_get_damping_relaxation :: MethodBind\nbindVehicleWheel_get_damping_relaxation\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"get_damping_relaxation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The damping applied to the spring when relaxing. This value should be between 0.0 (no damping) and 1.0. This value should always be slightly higher than the @damping_compression@ property. For a @damping_compression@ value of 0.3, try a relaxation value of 0.5.\nget_damping_relaxation ::\n                         (VehicleWheel :< cls, Object :< cls) => cls -> IO Float\nget_damping_relaxation cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_get_damping_relaxation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"get_damping_relaxation\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.VehicleWheel.get_damping_relaxation\n\n{-# NOINLINE bindVehicleWheel_get_engine_force #-}\n\n-- | Accelerates the wheel by applying an engine force. The wheel is only speed up if it is in contact with a surface. The @RigidBody.mass@ of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration.\n--   \t\t\t__Note:__ The simulation does not take the effect of gears into account, you will need to add logic for this if you wish to simulate gears.\n--   \t\t\tA negative value will result in the wheel reversing.\nbindVehicleWheel_get_engine_force :: MethodBind\nbindVehicleWheel_get_engine_force\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"get_engine_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Accelerates the wheel by applying an engine force. The wheel is only speed up if it is in contact with a surface. The @RigidBody.mass@ of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration.\n--   \t\t\t__Note:__ The simulation does not take the effect of gears into account, you will need to add logic for this if you wish to simulate gears.\n--   \t\t\tA negative value will result in the wheel reversing.\nget_engine_force ::\n                   (VehicleWheel :< cls, Object :< cls) => cls -> IO Float\nget_engine_force cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_get_engine_force\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"get_engine_force\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.VehicleWheel.get_engine_force\n\n{-# NOINLINE bindVehicleWheel_get_friction_slip #-}\n\n-- | This determines how much grip this wheel has. It is combined with the friction setting of the surface the wheel is in contact with. 0.0 means no grip, 1.0 is normal grip. For a drift car setup, try setting the grip of the rear wheels slightly lower than the front wheels, or use a lower value to simulate tire wear.\n--   \t\t\tIt's best to set this to 1.0 when starting out.\nbindVehicleWheel_get_friction_slip :: MethodBind\nbindVehicleWheel_get_friction_slip\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"get_friction_slip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This determines how much grip this wheel has. It is combined with the friction setting of the surface the wheel is in contact with. 0.0 means no grip, 1.0 is normal grip. For a drift car setup, try setting the grip of the rear wheels slightly lower than the front wheels, or use a lower value to simulate tire wear.\n--   \t\t\tIt's best to set this to 1.0 when starting out.\nget_friction_slip ::\n                    (VehicleWheel :< cls, Object :< cls) => cls -> IO Float\nget_friction_slip cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_get_friction_slip\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"get_friction_slip\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.VehicleWheel.get_friction_slip\n\n{-# NOINLINE bindVehicleWheel_get_radius #-}\n\n-- | The radius of the wheel in meters.\nbindVehicleWheel_get_radius :: MethodBind\nbindVehicleWheel_get_radius\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"get_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The radius of the wheel in meters.\nget_radius ::\n             (VehicleWheel :< cls, Object :< cls) => cls -> IO Float\nget_radius cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_get_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"get_radius\" '[] (IO Float) where\n        nodeMethod = Godot.Core.VehicleWheel.get_radius\n\n{-# NOINLINE bindVehicleWheel_get_roll_influence #-}\n\n-- | This value affects the roll of your vehicle. If set to 1.0 for all wheels, your vehicle will be prone to rolling over, while a value of 0.0 will resist body roll.\nbindVehicleWheel_get_roll_influence :: MethodBind\nbindVehicleWheel_get_roll_influence\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"get_roll_influence\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This value affects the roll of your vehicle. If set to 1.0 for all wheels, your vehicle will be prone to rolling over, while a value of 0.0 will resist body roll.\nget_roll_influence ::\n                     (VehicleWheel :< cls, Object :< cls) => cls -> IO Float\nget_roll_influence cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_get_roll_influence\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"get_roll_influence\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.VehicleWheel.get_roll_influence\n\n{-# NOINLINE bindVehicleWheel_get_rpm #-}\n\n-- | Returns the rotational speed of the wheel in revolutions per minute.\nbindVehicleWheel_get_rpm :: MethodBind\nbindVehicleWheel_get_rpm\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"get_rpm\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the rotational speed of the wheel in revolutions per minute.\nget_rpm :: (VehicleWheel :< cls, Object :< cls) => cls -> IO Float\nget_rpm cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_get_rpm (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"get_rpm\" '[] (IO Float) where\n        nodeMethod = Godot.Core.VehicleWheel.get_rpm\n\n{-# NOINLINE bindVehicleWheel_get_skidinfo #-}\n\n-- | Returns a value between 0.0 and 1.0 that indicates whether this wheel is skidding. 0.0 is skidding (the wheel has lost grip, e.g. icy terrain), 1.0 means not skidding (the wheel has full grip, e.g. dry asphalt road).\nbindVehicleWheel_get_skidinfo :: MethodBind\nbindVehicleWheel_get_skidinfo\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"get_skidinfo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a value between 0.0 and 1.0 that indicates whether this wheel is skidding. 0.0 is skidding (the wheel has lost grip, e.g. icy terrain), 1.0 means not skidding (the wheel has full grip, e.g. dry asphalt road).\nget_skidinfo ::\n               (VehicleWheel :< cls, Object :< cls) => cls -> IO Float\nget_skidinfo cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_get_skidinfo (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"get_skidinfo\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.VehicleWheel.get_skidinfo\n\n{-# NOINLINE bindVehicleWheel_get_steering #-}\n\n-- | The steering angle for the wheel. Setting this to a non-zero value will result in the vehicle turning when it's moving.\nbindVehicleWheel_get_steering :: MethodBind\nbindVehicleWheel_get_steering\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"get_steering\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The steering angle for the wheel. Setting this to a non-zero value will result in the vehicle turning when it's moving.\nget_steering ::\n               (VehicleWheel :< cls, Object :< cls) => cls -> IO Float\nget_steering cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_get_steering (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"get_steering\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.VehicleWheel.get_steering\n\n{-# NOINLINE bindVehicleWheel_get_suspension_max_force #-}\n\n-- | The maximum force the spring can resist. This value should be higher than a quarter of the @RigidBody.mass@ of the @VehicleBody@ or the spring will not carry the weight of the vehicle. Good results are often obtained by a value that is about 3× to 4× this number.\nbindVehicleWheel_get_suspension_max_force :: MethodBind\nbindVehicleWheel_get_suspension_max_force\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"get_suspension_max_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum force the spring can resist. This value should be higher than a quarter of the @RigidBody.mass@ of the @VehicleBody@ or the spring will not carry the weight of the vehicle. Good results are often obtained by a value that is about 3× to 4× this number.\nget_suspension_max_force ::\n                           (VehicleWheel :< cls, Object :< cls) => cls -> IO Float\nget_suspension_max_force cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_get_suspension_max_force\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"get_suspension_max_force\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.VehicleWheel.get_suspension_max_force\n\n{-# NOINLINE bindVehicleWheel_get_suspension_rest_length #-}\n\n-- | This is the distance in meters the wheel is lowered from its origin point. Don't set this to 0.0 and move the wheel into position, instead move the origin point of your wheel (the gizmo in Godot) to the position the wheel will take when bottoming out, then use the rest length to move the wheel down to the position it should be in when the car is in rest.\nbindVehicleWheel_get_suspension_rest_length :: MethodBind\nbindVehicleWheel_get_suspension_rest_length\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"get_suspension_rest_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This is the distance in meters the wheel is lowered from its origin point. Don't set this to 0.0 and move the wheel into position, instead move the origin point of your wheel (the gizmo in Godot) to the position the wheel will take when bottoming out, then use the rest length to move the wheel down to the position it should be in when the car is in rest.\nget_suspension_rest_length ::\n                             (VehicleWheel :< cls, Object :< cls) => cls -> IO Float\nget_suspension_rest_length cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_get_suspension_rest_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"get_suspension_rest_length\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.VehicleWheel.get_suspension_rest_length\n\n{-# NOINLINE bindVehicleWheel_get_suspension_stiffness #-}\n\n-- | This value defines the stiffness of the suspension. Use a value lower than 50 for an off-road car, a value between 50 and 100 for a race car and try something around 200 for something like a Formula 1 car.\nbindVehicleWheel_get_suspension_stiffness :: MethodBind\nbindVehicleWheel_get_suspension_stiffness\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"get_suspension_stiffness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This value defines the stiffness of the suspension. Use a value lower than 50 for an off-road car, a value between 50 and 100 for a race car and try something around 200 for something like a Formula 1 car.\nget_suspension_stiffness ::\n                           (VehicleWheel :< cls, Object :< cls) => cls -> IO Float\nget_suspension_stiffness cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_get_suspension_stiffness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"get_suspension_stiffness\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.VehicleWheel.get_suspension_stiffness\n\n{-# NOINLINE bindVehicleWheel_get_suspension_travel #-}\n\n-- | This is the distance the suspension can travel. As Godot units are equivalent to meters, keep this setting relatively low. Try a value between 0.1 and 0.3 depending on the type of car.\nbindVehicleWheel_get_suspension_travel :: MethodBind\nbindVehicleWheel_get_suspension_travel\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"get_suspension_travel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This is the distance the suspension can travel. As Godot units are equivalent to meters, keep this setting relatively low. Try a value between 0.1 and 0.3 depending on the type of car.\nget_suspension_travel ::\n                        (VehicleWheel :< cls, Object :< cls) => cls -> IO Float\nget_suspension_travel cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_get_suspension_travel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"get_suspension_travel\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.VehicleWheel.get_suspension_travel\n\n{-# NOINLINE bindVehicleWheel_is_in_contact #-}\n\n-- | Returns @true@ if this wheel is in contact with a surface.\nbindVehicleWheel_is_in_contact :: MethodBind\nbindVehicleWheel_is_in_contact\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"is_in_contact\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this wheel is in contact with a surface.\nis_in_contact ::\n                (VehicleWheel :< cls, Object :< cls) => cls -> IO Bool\nis_in_contact cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_is_in_contact (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"is_in_contact\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.VehicleWheel.is_in_contact\n\n{-# NOINLINE bindVehicleWheel_is_used_as_steering #-}\n\n-- | If @true@, this wheel will be turned when the car steers. This value is used in conjunction with @VehicleBody.steering@ and ignored if you are using the per-wheel @steering@ value instead.\nbindVehicleWheel_is_used_as_steering :: MethodBind\nbindVehicleWheel_is_used_as_steering\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"is_used_as_steering\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this wheel will be turned when the car steers. This value is used in conjunction with @VehicleBody.steering@ and ignored if you are using the per-wheel @steering@ value instead.\nis_used_as_steering ::\n                      (VehicleWheel :< cls, Object :< cls) => cls -> IO Bool\nis_used_as_steering cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_is_used_as_steering\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"is_used_as_steering\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VehicleWheel.is_used_as_steering\n\n{-# NOINLINE bindVehicleWheel_is_used_as_traction #-}\n\n-- | If @true@, this wheel transfers engine force to the ground to propel the vehicle forward. This value is used in conjunction with @VehicleBody.engine_force@ and ignored if you are using the per-wheel @engine_force@ value instead.\nbindVehicleWheel_is_used_as_traction :: MethodBind\nbindVehicleWheel_is_used_as_traction\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"is_used_as_traction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this wheel transfers engine force to the ground to propel the vehicle forward. This value is used in conjunction with @VehicleBody.engine_force@ and ignored if you are using the per-wheel @engine_force@ value instead.\nis_used_as_traction ::\n                      (VehicleWheel :< cls, Object :< cls) => cls -> IO Bool\nis_used_as_traction cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_is_used_as_traction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"is_used_as_traction\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VehicleWheel.is_used_as_traction\n\n{-# NOINLINE bindVehicleWheel_set_brake #-}\n\n-- | Slows down the wheel by applying a braking force. The wheel is only slowed down if it is in contact with a surface. The force you need to apply to adequately slow down your vehicle depends on the @RigidBody.mass@ of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 30 range for hard braking.\nbindVehicleWheel_set_brake :: MethodBind\nbindVehicleWheel_set_brake\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"set_brake\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Slows down the wheel by applying a braking force. The wheel is only slowed down if it is in contact with a surface. The force you need to apply to adequately slow down your vehicle depends on the @RigidBody.mass@ of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 30 range for hard braking.\nset_brake ::\n            (VehicleWheel :< cls, Object :< cls) => cls -> Float -> IO ()\nset_brake cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_set_brake (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"set_brake\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.VehicleWheel.set_brake\n\n{-# NOINLINE bindVehicleWheel_set_damping_compression #-}\n\n-- | The damping applied to the spring when the spring is being compressed. This value should be between 0.0 (no damping) and 1.0. A value of 0.0 means the car will keep bouncing as the spring keeps its energy. A good value for this is around 0.3 for a normal car, 0.5 for a race car.\nbindVehicleWheel_set_damping_compression :: MethodBind\nbindVehicleWheel_set_damping_compression\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"set_damping_compression\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The damping applied to the spring when the spring is being compressed. This value should be between 0.0 (no damping) and 1.0. A value of 0.0 means the car will keep bouncing as the spring keeps its energy. A good value for this is around 0.3 for a normal car, 0.5 for a race car.\nset_damping_compression ::\n                          (VehicleWheel :< cls, Object :< cls) => cls -> Float -> IO ()\nset_damping_compression cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_set_damping_compression\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"set_damping_compression\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VehicleWheel.set_damping_compression\n\n{-# NOINLINE bindVehicleWheel_set_damping_relaxation #-}\n\n-- | The damping applied to the spring when relaxing. This value should be between 0.0 (no damping) and 1.0. This value should always be slightly higher than the @damping_compression@ property. For a @damping_compression@ value of 0.3, try a relaxation value of 0.5.\nbindVehicleWheel_set_damping_relaxation :: MethodBind\nbindVehicleWheel_set_damping_relaxation\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"set_damping_relaxation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The damping applied to the spring when relaxing. This value should be between 0.0 (no damping) and 1.0. This value should always be slightly higher than the @damping_compression@ property. For a @damping_compression@ value of 0.3, try a relaxation value of 0.5.\nset_damping_relaxation ::\n                         (VehicleWheel :< cls, Object :< cls) => cls -> Float -> IO ()\nset_damping_relaxation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_set_damping_relaxation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"set_damping_relaxation\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VehicleWheel.set_damping_relaxation\n\n{-# NOINLINE bindVehicleWheel_set_engine_force #-}\n\n-- | Accelerates the wheel by applying an engine force. The wheel is only speed up if it is in contact with a surface. The @RigidBody.mass@ of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration.\n--   \t\t\t__Note:__ The simulation does not take the effect of gears into account, you will need to add logic for this if you wish to simulate gears.\n--   \t\t\tA negative value will result in the wheel reversing.\nbindVehicleWheel_set_engine_force :: MethodBind\nbindVehicleWheel_set_engine_force\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"set_engine_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Accelerates the wheel by applying an engine force. The wheel is only speed up if it is in contact with a surface. The @RigidBody.mass@ of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration.\n--   \t\t\t__Note:__ The simulation does not take the effect of gears into account, you will need to add logic for this if you wish to simulate gears.\n--   \t\t\tA negative value will result in the wheel reversing.\nset_engine_force ::\n                   (VehicleWheel :< cls, Object :< cls) => cls -> Float -> IO ()\nset_engine_force cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_set_engine_force\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"set_engine_force\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VehicleWheel.set_engine_force\n\n{-# NOINLINE bindVehicleWheel_set_friction_slip #-}\n\n-- | This determines how much grip this wheel has. It is combined with the friction setting of the surface the wheel is in contact with. 0.0 means no grip, 1.0 is normal grip. For a drift car setup, try setting the grip of the rear wheels slightly lower than the front wheels, or use a lower value to simulate tire wear.\n--   \t\t\tIt's best to set this to 1.0 when starting out.\nbindVehicleWheel_set_friction_slip :: MethodBind\nbindVehicleWheel_set_friction_slip\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"set_friction_slip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This determines how much grip this wheel has. It is combined with the friction setting of the surface the wheel is in contact with. 0.0 means no grip, 1.0 is normal grip. For a drift car setup, try setting the grip of the rear wheels slightly lower than the front wheels, or use a lower value to simulate tire wear.\n--   \t\t\tIt's best to set this to 1.0 when starting out.\nset_friction_slip ::\n                    (VehicleWheel :< cls, Object :< cls) => cls -> Float -> IO ()\nset_friction_slip cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_set_friction_slip\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"set_friction_slip\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VehicleWheel.set_friction_slip\n\n{-# NOINLINE bindVehicleWheel_set_radius #-}\n\n-- | The radius of the wheel in meters.\nbindVehicleWheel_set_radius :: MethodBind\nbindVehicleWheel_set_radius\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"set_radius\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The radius of the wheel in meters.\nset_radius ::\n             (VehicleWheel :< cls, Object :< cls) => cls -> Float -> IO ()\nset_radius cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_set_radius (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"set_radius\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.VehicleWheel.set_radius\n\n{-# NOINLINE bindVehicleWheel_set_roll_influence #-}\n\n-- | This value affects the roll of your vehicle. If set to 1.0 for all wheels, your vehicle will be prone to rolling over, while a value of 0.0 will resist body roll.\nbindVehicleWheel_set_roll_influence :: MethodBind\nbindVehicleWheel_set_roll_influence\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"set_roll_influence\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This value affects the roll of your vehicle. If set to 1.0 for all wheels, your vehicle will be prone to rolling over, while a value of 0.0 will resist body roll.\nset_roll_influence ::\n                     (VehicleWheel :< cls, Object :< cls) => cls -> Float -> IO ()\nset_roll_influence cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_set_roll_influence\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"set_roll_influence\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VehicleWheel.set_roll_influence\n\n{-# NOINLINE bindVehicleWheel_set_steering #-}\n\n-- | The steering angle for the wheel. Setting this to a non-zero value will result in the vehicle turning when it's moving.\nbindVehicleWheel_set_steering :: MethodBind\nbindVehicleWheel_set_steering\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"set_steering\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The steering angle for the wheel. Setting this to a non-zero value will result in the vehicle turning when it's moving.\nset_steering ::\n               (VehicleWheel :< cls, Object :< cls) => cls -> Float -> IO ()\nset_steering cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_set_steering (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"set_steering\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.VehicleWheel.set_steering\n\n{-# NOINLINE bindVehicleWheel_set_suspension_max_force #-}\n\n-- | The maximum force the spring can resist. This value should be higher than a quarter of the @RigidBody.mass@ of the @VehicleBody@ or the spring will not carry the weight of the vehicle. Good results are often obtained by a value that is about 3× to 4× this number.\nbindVehicleWheel_set_suspension_max_force :: MethodBind\nbindVehicleWheel_set_suspension_max_force\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"set_suspension_max_force\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The maximum force the spring can resist. This value should be higher than a quarter of the @RigidBody.mass@ of the @VehicleBody@ or the spring will not carry the weight of the vehicle. Good results are often obtained by a value that is about 3× to 4× this number.\nset_suspension_max_force ::\n                           (VehicleWheel :< cls, Object :< cls) => cls -> Float -> IO ()\nset_suspension_max_force cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_set_suspension_max_force\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"set_suspension_max_force\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VehicleWheel.set_suspension_max_force\n\n{-# NOINLINE bindVehicleWheel_set_suspension_rest_length #-}\n\n-- | This is the distance in meters the wheel is lowered from its origin point. Don't set this to 0.0 and move the wheel into position, instead move the origin point of your wheel (the gizmo in Godot) to the position the wheel will take when bottoming out, then use the rest length to move the wheel down to the position it should be in when the car is in rest.\nbindVehicleWheel_set_suspension_rest_length :: MethodBind\nbindVehicleWheel_set_suspension_rest_length\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"set_suspension_rest_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This is the distance in meters the wheel is lowered from its origin point. Don't set this to 0.0 and move the wheel into position, instead move the origin point of your wheel (the gizmo in Godot) to the position the wheel will take when bottoming out, then use the rest length to move the wheel down to the position it should be in when the car is in rest.\nset_suspension_rest_length ::\n                             (VehicleWheel :< cls, Object :< cls) => cls -> Float -> IO ()\nset_suspension_rest_length cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_set_suspension_rest_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"set_suspension_rest_length\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VehicleWheel.set_suspension_rest_length\n\n{-# NOINLINE bindVehicleWheel_set_suspension_stiffness #-}\n\n-- | This value defines the stiffness of the suspension. Use a value lower than 50 for an off-road car, a value between 50 and 100 for a race car and try something around 200 for something like a Formula 1 car.\nbindVehicleWheel_set_suspension_stiffness :: MethodBind\nbindVehicleWheel_set_suspension_stiffness\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"set_suspension_stiffness\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This value defines the stiffness of the suspension. Use a value lower than 50 for an off-road car, a value between 50 and 100 for a race car and try something around 200 for something like a Formula 1 car.\nset_suspension_stiffness ::\n                           (VehicleWheel :< cls, Object :< cls) => cls -> Float -> IO ()\nset_suspension_stiffness cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_set_suspension_stiffness\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"set_suspension_stiffness\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VehicleWheel.set_suspension_stiffness\n\n{-# NOINLINE bindVehicleWheel_set_suspension_travel #-}\n\n-- | This is the distance the suspension can travel. As Godot units are equivalent to meters, keep this setting relatively low. Try a value between 0.1 and 0.3 depending on the type of car.\nbindVehicleWheel_set_suspension_travel :: MethodBind\nbindVehicleWheel_set_suspension_travel\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"set_suspension_travel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This is the distance the suspension can travel. As Godot units are equivalent to meters, keep this setting relatively low. Try a value between 0.1 and 0.3 depending on the type of car.\nset_suspension_travel ::\n                        (VehicleWheel :< cls, Object :< cls) => cls -> Float -> IO ()\nset_suspension_travel cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_set_suspension_travel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"set_suspension_travel\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VehicleWheel.set_suspension_travel\n\n{-# NOINLINE bindVehicleWheel_set_use_as_steering #-}\n\n-- | If @true@, this wheel will be turned when the car steers. This value is used in conjunction with @VehicleBody.steering@ and ignored if you are using the per-wheel @steering@ value instead.\nbindVehicleWheel_set_use_as_steering :: MethodBind\nbindVehicleWheel_set_use_as_steering\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_as_steering\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this wheel will be turned when the car steers. This value is used in conjunction with @VehicleBody.steering@ and ignored if you are using the per-wheel @steering@ value instead.\nset_use_as_steering ::\n                      (VehicleWheel :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_as_steering cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_set_use_as_steering\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"set_use_as_steering\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VehicleWheel.set_use_as_steering\n\n{-# NOINLINE bindVehicleWheel_set_use_as_traction #-}\n\n-- | If @true@, this wheel transfers engine force to the ground to propel the vehicle forward. This value is used in conjunction with @VehicleBody.engine_force@ and ignored if you are using the per-wheel @engine_force@ value instead.\nbindVehicleWheel_set_use_as_traction :: MethodBind\nbindVehicleWheel_set_use_as_traction\n  = unsafePerformIO $\n      withCString \"VehicleWheel\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_as_traction\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this wheel transfers engine force to the ground to propel the vehicle forward. This value is used in conjunction with @VehicleBody.engine_force@ and ignored if you are using the per-wheel @engine_force@ value instead.\nset_use_as_traction ::\n                      (VehicleWheel :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_as_traction cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVehicleWheel_set_use_as_traction\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VehicleWheel \"set_use_as_traction\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VehicleWheel.set_use_as_traction"
  },
  {
    "path": "src/Godot/Core/VideoPlayer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VideoPlayer\n       (Godot.Core.VideoPlayer.sig_finished,\n        Godot.Core.VideoPlayer.get_audio_track,\n        Godot.Core.VideoPlayer.get_buffering_msec,\n        Godot.Core.VideoPlayer.get_bus, Godot.Core.VideoPlayer.get_stream,\n        Godot.Core.VideoPlayer.get_stream_name,\n        Godot.Core.VideoPlayer.get_stream_position,\n        Godot.Core.VideoPlayer.get_video_texture,\n        Godot.Core.VideoPlayer.get_volume,\n        Godot.Core.VideoPlayer.get_volume_db,\n        Godot.Core.VideoPlayer.has_autoplay,\n        Godot.Core.VideoPlayer.has_expand,\n        Godot.Core.VideoPlayer.is_paused,\n        Godot.Core.VideoPlayer.is_playing, Godot.Core.VideoPlayer.play,\n        Godot.Core.VideoPlayer.set_audio_track,\n        Godot.Core.VideoPlayer.set_autoplay,\n        Godot.Core.VideoPlayer.set_buffering_msec,\n        Godot.Core.VideoPlayer.set_bus, Godot.Core.VideoPlayer.set_expand,\n        Godot.Core.VideoPlayer.set_paused,\n        Godot.Core.VideoPlayer.set_stream,\n        Godot.Core.VideoPlayer.set_stream_position,\n        Godot.Core.VideoPlayer.set_volume,\n        Godot.Core.VideoPlayer.set_volume_db, Godot.Core.VideoPlayer.stop)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Control()\n\n-- | Emitted when playback is finished.\nsig_finished :: Godot.Internal.Dispatch.Signal VideoPlayer\nsig_finished = Godot.Internal.Dispatch.Signal \"finished\"\n\ninstance NodeSignal VideoPlayer \"finished\" '[]\n\ninstance NodeProperty VideoPlayer \"audio_track\" Int 'False where\n        nodeProperty\n          = (get_audio_track, wrapDroppingSetter set_audio_track, Nothing)\n\ninstance NodeProperty VideoPlayer \"autoplay\" Bool 'False where\n        nodeProperty\n          = (has_autoplay, wrapDroppingSetter set_autoplay, Nothing)\n\ninstance NodeProperty VideoPlayer \"buffering_msec\" Int 'False where\n        nodeProperty\n          = (get_buffering_msec, wrapDroppingSetter set_buffering_msec,\n             Nothing)\n\ninstance NodeProperty VideoPlayer \"bus\" GodotString 'False where\n        nodeProperty = (get_bus, wrapDroppingSetter set_bus, Nothing)\n\ninstance NodeProperty VideoPlayer \"expand\" Bool 'False where\n        nodeProperty = (has_expand, wrapDroppingSetter set_expand, Nothing)\n\ninstance NodeProperty VideoPlayer \"paused\" Bool 'False where\n        nodeProperty = (is_paused, wrapDroppingSetter set_paused, Nothing)\n\ninstance NodeProperty VideoPlayer \"stream\" VideoStream 'False where\n        nodeProperty = (get_stream, wrapDroppingSetter set_stream, Nothing)\n\ninstance NodeProperty VideoPlayer \"stream_position\" Float 'False\n         where\n        nodeProperty\n          = (get_stream_position, wrapDroppingSetter set_stream_position,\n             Nothing)\n\ninstance NodeProperty VideoPlayer \"volume\" Float 'False where\n        nodeProperty = (get_volume, wrapDroppingSetter set_volume, Nothing)\n\ninstance NodeProperty VideoPlayer \"volume_db\" Float 'False where\n        nodeProperty\n          = (get_volume_db, wrapDroppingSetter set_volume_db, Nothing)\n\n{-# NOINLINE bindVideoPlayer_get_audio_track #-}\n\n-- | The embedded audio track to play.\nbindVideoPlayer_get_audio_track :: MethodBind\nbindVideoPlayer_get_audio_track\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_audio_track\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The embedded audio track to play.\nget_audio_track ::\n                  (VideoPlayer :< cls, Object :< cls) => cls -> IO Int\nget_audio_track cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_get_audio_track (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"get_audio_track\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.VideoPlayer.get_audio_track\n\n{-# NOINLINE bindVideoPlayer_get_buffering_msec #-}\n\n-- | Amount of time in milliseconds to store in buffer while playing.\nbindVideoPlayer_get_buffering_msec :: MethodBind\nbindVideoPlayer_get_buffering_msec\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_buffering_msec\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of time in milliseconds to store in buffer while playing.\nget_buffering_msec ::\n                     (VideoPlayer :< cls, Object :< cls) => cls -> IO Int\nget_buffering_msec cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_get_buffering_msec\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"get_buffering_msec\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.VideoPlayer.get_buffering_msec\n\n{-# NOINLINE bindVideoPlayer_get_bus #-}\n\n-- | Audio bus to use for sound playback.\nbindVideoPlayer_get_bus :: MethodBind\nbindVideoPlayer_get_bus\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Audio bus to use for sound playback.\nget_bus ::\n          (VideoPlayer :< cls, Object :< cls) => cls -> IO GodotString\nget_bus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_get_bus (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"get_bus\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VideoPlayer.get_bus\n\n{-# NOINLINE bindVideoPlayer_get_stream #-}\n\n-- | The assigned video stream. See description for supported formats.\nbindVideoPlayer_get_stream :: MethodBind\nbindVideoPlayer_get_stream\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_stream\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The assigned video stream. See description for supported formats.\nget_stream ::\n             (VideoPlayer :< cls, Object :< cls) => cls -> IO VideoStream\nget_stream cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_get_stream (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"get_stream\" '[] (IO VideoStream)\n         where\n        nodeMethod = Godot.Core.VideoPlayer.get_stream\n\n{-# NOINLINE bindVideoPlayer_get_stream_name #-}\n\n-- | Returns the video stream's name, or @\"<No Stream>\"@ if no video stream is assigned.\nbindVideoPlayer_get_stream_name :: MethodBind\nbindVideoPlayer_get_stream_name\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_stream_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the video stream's name, or @\"<No Stream>\"@ if no video stream is assigned.\nget_stream_name ::\n                  (VideoPlayer :< cls, Object :< cls) => cls -> IO GodotString\nget_stream_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_get_stream_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"get_stream_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VideoPlayer.get_stream_name\n\n{-# NOINLINE bindVideoPlayer_get_stream_position #-}\n\n-- | The current position of the stream, in seconds.\nbindVideoPlayer_get_stream_position :: MethodBind\nbindVideoPlayer_get_stream_position\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_stream_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current position of the stream, in seconds.\nget_stream_position ::\n                      (VideoPlayer :< cls, Object :< cls) => cls -> IO Float\nget_stream_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_get_stream_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"get_stream_position\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.VideoPlayer.get_stream_position\n\n{-# NOINLINE bindVideoPlayer_get_video_texture #-}\n\n-- | Returns the current frame as a @Texture@.\nbindVideoPlayer_get_video_texture :: MethodBind\nbindVideoPlayer_get_video_texture\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_video_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current frame as a @Texture@.\nget_video_texture ::\n                    (VideoPlayer :< cls, Object :< cls) => cls -> IO Texture\nget_video_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_get_video_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"get_video_texture\" '[]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.VideoPlayer.get_video_texture\n\n{-# NOINLINE bindVideoPlayer_get_volume #-}\n\n-- | Audio volume as a linear value.\nbindVideoPlayer_get_volume :: MethodBind\nbindVideoPlayer_get_volume\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_volume\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Audio volume as a linear value.\nget_volume ::\n             (VideoPlayer :< cls, Object :< cls) => cls -> IO Float\nget_volume cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_get_volume (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"get_volume\" '[] (IO Float) where\n        nodeMethod = Godot.Core.VideoPlayer.get_volume\n\n{-# NOINLINE bindVideoPlayer_get_volume_db #-}\n\n-- | Audio volume in dB.\nbindVideoPlayer_get_volume_db :: MethodBind\nbindVideoPlayer_get_volume_db\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_volume_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Audio volume in dB.\nget_volume_db ::\n                (VideoPlayer :< cls, Object :< cls) => cls -> IO Float\nget_volume_db cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_get_volume_db (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"get_volume_db\" '[] (IO Float)\n         where\n        nodeMethod = Godot.Core.VideoPlayer.get_volume_db\n\n{-# NOINLINE bindVideoPlayer_has_autoplay #-}\n\n-- | If @true@, playback starts when the scene loads.\nbindVideoPlayer_has_autoplay :: MethodBind\nbindVideoPlayer_has_autoplay\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"has_autoplay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, playback starts when the scene loads.\nhas_autoplay ::\n               (VideoPlayer :< cls, Object :< cls) => cls -> IO Bool\nhas_autoplay cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_has_autoplay (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"has_autoplay\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.VideoPlayer.has_autoplay\n\n{-# NOINLINE bindVideoPlayer_has_expand #-}\n\n-- | If @true@, the video scales to the control size. Otherwise, the control minimum size will be automatically adjusted to match the video stream's dimensions.\nbindVideoPlayer_has_expand :: MethodBind\nbindVideoPlayer_has_expand\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"has_expand\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the video scales to the control size. Otherwise, the control minimum size will be automatically adjusted to match the video stream's dimensions.\nhas_expand :: (VideoPlayer :< cls, Object :< cls) => cls -> IO Bool\nhas_expand cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_has_expand (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"has_expand\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.VideoPlayer.has_expand\n\n{-# NOINLINE bindVideoPlayer_is_paused #-}\n\n-- | If @true@, the video is paused.\nbindVideoPlayer_is_paused :: MethodBind\nbindVideoPlayer_is_paused\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"is_paused\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the video is paused.\nis_paused :: (VideoPlayer :< cls, Object :< cls) => cls -> IO Bool\nis_paused cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_is_paused (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"is_paused\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.VideoPlayer.is_paused\n\n{-# NOINLINE bindVideoPlayer_is_playing #-}\n\n-- | Returns @true@ if the video is playing.\n--   \t\t\t\t__Note:__ The video is still considered playing if paused during playback.\nbindVideoPlayer_is_playing :: MethodBind\nbindVideoPlayer_is_playing\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"is_playing\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the video is playing.\n--   \t\t\t\t__Note:__ The video is still considered playing if paused during playback.\nis_playing :: (VideoPlayer :< cls, Object :< cls) => cls -> IO Bool\nis_playing cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_is_playing (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"is_playing\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.VideoPlayer.is_playing\n\n{-# NOINLINE bindVideoPlayer_play #-}\n\n-- | Starts the video playback from the beginning. If the video is paused, this will not unpause the video.\nbindVideoPlayer_play :: MethodBind\nbindVideoPlayer_play\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"play\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Starts the video playback from the beginning. If the video is paused, this will not unpause the video.\nplay :: (VideoPlayer :< cls, Object :< cls) => cls -> IO ()\nplay cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_play (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"play\" '[] (IO ()) where\n        nodeMethod = Godot.Core.VideoPlayer.play\n\n{-# NOINLINE bindVideoPlayer_set_audio_track #-}\n\n-- | The embedded audio track to play.\nbindVideoPlayer_set_audio_track :: MethodBind\nbindVideoPlayer_set_audio_track\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_audio_track\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The embedded audio track to play.\nset_audio_track ::\n                  (VideoPlayer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_audio_track cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_set_audio_track (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"set_audio_track\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.VideoPlayer.set_audio_track\n\n{-# NOINLINE bindVideoPlayer_set_autoplay #-}\n\n-- | If @true@, playback starts when the scene loads.\nbindVideoPlayer_set_autoplay :: MethodBind\nbindVideoPlayer_set_autoplay\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_autoplay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, playback starts when the scene loads.\nset_autoplay ::\n               (VideoPlayer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_autoplay cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_set_autoplay (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"set_autoplay\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.VideoPlayer.set_autoplay\n\n{-# NOINLINE bindVideoPlayer_set_buffering_msec #-}\n\n-- | Amount of time in milliseconds to store in buffer while playing.\nbindVideoPlayer_set_buffering_msec :: MethodBind\nbindVideoPlayer_set_buffering_msec\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_buffering_msec\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Amount of time in milliseconds to store in buffer while playing.\nset_buffering_msec ::\n                     (VideoPlayer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_buffering_msec cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_set_buffering_msec\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"set_buffering_msec\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.VideoPlayer.set_buffering_msec\n\n{-# NOINLINE bindVideoPlayer_set_bus #-}\n\n-- | Audio bus to use for sound playback.\nbindVideoPlayer_set_bus :: MethodBind\nbindVideoPlayer_set_bus\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_bus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Audio bus to use for sound playback.\nset_bus ::\n          (VideoPlayer :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_bus cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_set_bus (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"set_bus\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.VideoPlayer.set_bus\n\n{-# NOINLINE bindVideoPlayer_set_expand #-}\n\n-- | If @true@, the video scales to the control size. Otherwise, the control minimum size will be automatically adjusted to match the video stream's dimensions.\nbindVideoPlayer_set_expand :: MethodBind\nbindVideoPlayer_set_expand\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_expand\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the video scales to the control size. Otherwise, the control minimum size will be automatically adjusted to match the video stream's dimensions.\nset_expand ::\n             (VideoPlayer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_expand cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_set_expand (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"set_expand\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.VideoPlayer.set_expand\n\n{-# NOINLINE bindVideoPlayer_set_paused #-}\n\n-- | If @true@, the video is paused.\nbindVideoPlayer_set_paused :: MethodBind\nbindVideoPlayer_set_paused\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_paused\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the video is paused.\nset_paused ::\n             (VideoPlayer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_paused cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_set_paused (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"set_paused\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.VideoPlayer.set_paused\n\n{-# NOINLINE bindVideoPlayer_set_stream #-}\n\n-- | The assigned video stream. See description for supported formats.\nbindVideoPlayer_set_stream :: MethodBind\nbindVideoPlayer_set_stream\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_stream\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The assigned video stream. See description for supported formats.\nset_stream ::\n             (VideoPlayer :< cls, Object :< cls) => cls -> VideoStream -> IO ()\nset_stream cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_set_stream (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"set_stream\" '[VideoStream] (IO ())\n         where\n        nodeMethod = Godot.Core.VideoPlayer.set_stream\n\n{-# NOINLINE bindVideoPlayer_set_stream_position #-}\n\n-- | The current position of the stream, in seconds.\nbindVideoPlayer_set_stream_position :: MethodBind\nbindVideoPlayer_set_stream_position\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_stream_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The current position of the stream, in seconds.\nset_stream_position ::\n                      (VideoPlayer :< cls, Object :< cls) => cls -> Float -> IO ()\nset_stream_position cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_set_stream_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"set_stream_position\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VideoPlayer.set_stream_position\n\n{-# NOINLINE bindVideoPlayer_set_volume #-}\n\n-- | Audio volume as a linear value.\nbindVideoPlayer_set_volume :: MethodBind\nbindVideoPlayer_set_volume\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_volume\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Audio volume as a linear value.\nset_volume ::\n             (VideoPlayer :< cls, Object :< cls) => cls -> Float -> IO ()\nset_volume cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_set_volume (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"set_volume\" '[Float] (IO ()) where\n        nodeMethod = Godot.Core.VideoPlayer.set_volume\n\n{-# NOINLINE bindVideoPlayer_set_volume_db #-}\n\n-- | Audio volume in dB.\nbindVideoPlayer_set_volume_db :: MethodBind\nbindVideoPlayer_set_volume_db\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"set_volume_db\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Audio volume in dB.\nset_volume_db ::\n                (VideoPlayer :< cls, Object :< cls) => cls -> Float -> IO ()\nset_volume_db cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_set_volume_db (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"set_volume_db\" '[Float] (IO ())\n         where\n        nodeMethod = Godot.Core.VideoPlayer.set_volume_db\n\n{-# NOINLINE bindVideoPlayer_stop #-}\n\n-- | Stops the video playback and sets the stream position to 0.\n--   \t\t\t\t__Note:__ Although the stream position will be set to 0, the first frame of the video stream won't become the current frame.\nbindVideoPlayer_stop :: MethodBind\nbindVideoPlayer_stop\n  = unsafePerformIO $\n      withCString \"VideoPlayer\" $\n        \\ clsNamePtr ->\n          withCString \"stop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops the video playback and sets the stream position to 0.\n--   \t\t\t\t__Note:__ Although the stream position will be set to 0, the first frame of the video stream won't become the current frame.\nstop :: (VideoPlayer :< cls, Object :< cls) => cls -> IO ()\nstop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoPlayer_stop (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoPlayer \"stop\" '[] (IO ()) where\n        nodeMethod = Godot.Core.VideoPlayer.stop"
  },
  {
    "path": "src/Godot/Core/VideoStream.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VideoStream () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()"
  },
  {
    "path": "src/Godot/Core/VideoStreamGDNative.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VideoStreamGDNative\n       (Godot.Core.VideoStreamGDNative.get_file,\n        Godot.Core.VideoStreamGDNative.set_file)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VideoStream()\n\ninstance NodeProperty VideoStreamGDNative \"file\" GodotString 'False\n         where\n        nodeProperty = (get_file, wrapDroppingSetter set_file, Nothing)\n\n{-# NOINLINE bindVideoStreamGDNative_get_file #-}\n\nbindVideoStreamGDNative_get_file :: MethodBind\nbindVideoStreamGDNative_get_file\n  = unsafePerformIO $\n      withCString \"VideoStreamGDNative\" $\n        \\ clsNamePtr ->\n          withCString \"get_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_file ::\n           (VideoStreamGDNative :< cls, Object :< cls) =>\n           cls -> IO GodotString\nget_file cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoStreamGDNative_get_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoStreamGDNative \"get_file\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VideoStreamGDNative.get_file\n\n{-# NOINLINE bindVideoStreamGDNative_set_file #-}\n\nbindVideoStreamGDNative_set_file :: MethodBind\nbindVideoStreamGDNative_set_file\n  = unsafePerformIO $\n      withCString \"VideoStreamGDNative\" $\n        \\ clsNamePtr ->\n          withCString \"set_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_file ::\n           (VideoStreamGDNative :< cls, Object :< cls) =>\n           cls -> GodotString -> IO ()\nset_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoStreamGDNative_set_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoStreamGDNative \"set_file\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VideoStreamGDNative.set_file"
  },
  {
    "path": "src/Godot/Core/VideoStreamTheora.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VideoStreamTheora\n       (Godot.Core.VideoStreamTheora.get_file,\n        Godot.Core.VideoStreamTheora.set_file)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VideoStream()\n\ninstance NodeProperty VideoStreamTheora \"file\" GodotString 'False\n         where\n        nodeProperty = (get_file, wrapDroppingSetter set_file, Nothing)\n\n{-# NOINLINE bindVideoStreamTheora_get_file #-}\n\nbindVideoStreamTheora_get_file :: MethodBind\nbindVideoStreamTheora_get_file\n  = unsafePerformIO $\n      withCString \"VideoStreamTheora\" $\n        \\ clsNamePtr ->\n          withCString \"get_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_file ::\n           (VideoStreamTheora :< cls, Object :< cls) => cls -> IO GodotString\nget_file cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoStreamTheora_get_file (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoStreamTheora \"get_file\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VideoStreamTheora.get_file\n\n{-# NOINLINE bindVideoStreamTheora_set_file #-}\n\nbindVideoStreamTheora_set_file :: MethodBind\nbindVideoStreamTheora_set_file\n  = unsafePerformIO $\n      withCString \"VideoStreamTheora\" $\n        \\ clsNamePtr ->\n          withCString \"set_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_file ::\n           (VideoStreamTheora :< cls, Object :< cls) =>\n           cls -> GodotString -> IO ()\nset_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoStreamTheora_set_file (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoStreamTheora \"set_file\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VideoStreamTheora.set_file"
  },
  {
    "path": "src/Godot/Core/VideoStreamWebm.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VideoStreamWebm\n       (Godot.Core.VideoStreamWebm.get_file,\n        Godot.Core.VideoStreamWebm.set_file)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VideoStream()\n\ninstance NodeProperty VideoStreamWebm \"file\" GodotString 'False\n         where\n        nodeProperty = (get_file, wrapDroppingSetter set_file, Nothing)\n\n{-# NOINLINE bindVideoStreamWebm_get_file #-}\n\nbindVideoStreamWebm_get_file :: MethodBind\nbindVideoStreamWebm_get_file\n  = unsafePerformIO $\n      withCString \"VideoStreamWebm\" $\n        \\ clsNamePtr ->\n          withCString \"get_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_file ::\n           (VideoStreamWebm :< cls, Object :< cls) => cls -> IO GodotString\nget_file cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoStreamWebm_get_file (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoStreamWebm \"get_file\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VideoStreamWebm.get_file\n\n{-# NOINLINE bindVideoStreamWebm_set_file #-}\n\nbindVideoStreamWebm_set_file :: MethodBind\nbindVideoStreamWebm_set_file\n  = unsafePerformIO $\n      withCString \"VideoStreamWebm\" $\n        \\ clsNamePtr ->\n          withCString \"set_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_file ::\n           (VideoStreamWebm :< cls, Object :< cls) =>\n           cls -> GodotString -> IO ()\nset_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVideoStreamWebm_set_file (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VideoStreamWebm \"set_file\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VideoStreamWebm.set_file"
  },
  {
    "path": "src/Godot/Core/Viewport.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.Viewport\n       (Godot.Core.Viewport._CLEAR_MODE_ONLY_NEXT_FRAME,\n        Godot.Core.Viewport._DEBUG_DRAW_OVERDRAW,\n        Godot.Core.Viewport._UPDATE_ALWAYS,\n        Godot.Core.Viewport._RENDER_INFO_MATERIAL_CHANGES_IN_FRAME,\n        Godot.Core.Viewport._USAGE_3D, Godot.Core.Viewport._MSAA_4X,\n        Godot.Core.Viewport._SHADOW_ATLAS_QUADRANT_SUBDIV_1024,\n        Godot.Core.Viewport._SHADOW_ATLAS_QUADRANT_SUBDIV_16,\n        Godot.Core.Viewport._RENDER_INFO_SHADER_CHANGES_IN_FRAME,\n        Godot.Core.Viewport._RENDER_INFO_MAX,\n        Godot.Core.Viewport._CLEAR_MODE_NEVER,\n        Godot.Core.Viewport._SHADOW_ATLAS_QUADRANT_SUBDIV_64,\n        Godot.Core.Viewport._USAGE_3D_NO_EFFECTS,\n        Godot.Core.Viewport._RENDER_INFO_OBJECTS_IN_FRAME,\n        Godot.Core.Viewport._MSAA_2X,\n        Godot.Core.Viewport._SHADOW_ATLAS_QUADRANT_SUBDIV_256,\n        Godot.Core.Viewport._SHADOW_ATLAS_QUADRANT_SUBDIV_MAX,\n        Godot.Core.Viewport._UPDATE_DISABLED,\n        Godot.Core.Viewport._MSAA_DISABLED,\n        Godot.Core.Viewport._DEBUG_DRAW_DISABLED,\n        Godot.Core.Viewport._MSAA_8X, Godot.Core.Viewport._USAGE_2D,\n        Godot.Core.Viewport._RENDER_INFO_VERTICES_IN_FRAME,\n        Godot.Core.Viewport._SHADOW_ATLAS_QUADRANT_SUBDIV_DISABLED,\n        Godot.Core.Viewport._DEBUG_DRAW_UNSHADED,\n        Godot.Core.Viewport._DEBUG_DRAW_WIREFRAME,\n        Godot.Core.Viewport._RENDER_INFO_DRAW_CALLS_IN_FRAME,\n        Godot.Core.Viewport._UPDATE_WHEN_VISIBLE,\n        Godot.Core.Viewport._CLEAR_MODE_ALWAYS,\n        Godot.Core.Viewport._SHADOW_ATLAS_QUADRANT_SUBDIV_1,\n        Godot.Core.Viewport._MSAA_16X,\n        Godot.Core.Viewport._SHADOW_ATLAS_QUADRANT_SUBDIV_4,\n        Godot.Core.Viewport._USAGE_2D_NO_SAMPLING,\n        Godot.Core.Viewport._UPDATE_ONCE,\n        Godot.Core.Viewport._RENDER_INFO_SURFACE_CHANGES_IN_FRAME,\n        Godot.Core.Viewport.sig_gui_focus_changed,\n        Godot.Core.Viewport.sig_size_changed,\n        Godot.Core.Viewport._gui_remove_focus,\n        Godot.Core.Viewport._gui_show_tooltip,\n        Godot.Core.Viewport._own_world_changed,\n        Godot.Core.Viewport._post_gui_grab_click_focus,\n        Godot.Core.Viewport._subwindow_visibility_changed,\n        Godot.Core.Viewport._vp_input, Godot.Core.Viewport._vp_input_text,\n        Godot.Core.Viewport._vp_unhandled_input,\n        Godot.Core.Viewport.find_world, Godot.Core.Viewport.find_world_2d,\n        Godot.Core.Viewport.get_camera,\n        Godot.Core.Viewport.get_canvas_transform,\n        Godot.Core.Viewport.get_clear_mode,\n        Godot.Core.Viewport.get_debug_draw,\n        Godot.Core.Viewport.get_final_transform,\n        Godot.Core.Viewport.get_global_canvas_transform,\n        Godot.Core.Viewport.get_hdr,\n        Godot.Core.Viewport.get_keep_3d_linear,\n        Godot.Core.Viewport.get_modal_stack_top,\n        Godot.Core.Viewport.get_mouse_position,\n        Godot.Core.Viewport.get_msaa,\n        Godot.Core.Viewport.get_physics_object_picking,\n        Godot.Core.Viewport.get_render_info,\n        Godot.Core.Viewport.get_shadow_atlas_quadrant_subdiv,\n        Godot.Core.Viewport.get_shadow_atlas_size,\n        Godot.Core.Viewport.get_size,\n        Godot.Core.Viewport.get_size_override,\n        Godot.Core.Viewport.get_texture,\n        Godot.Core.Viewport.get_update_mode, Godot.Core.Viewport.get_usage,\n        Godot.Core.Viewport.get_vflip,\n        Godot.Core.Viewport.get_viewport_rid,\n        Godot.Core.Viewport.get_visible_rect,\n        Godot.Core.Viewport.get_world, Godot.Core.Viewport.get_world_2d,\n        Godot.Core.Viewport.gui_get_drag_data,\n        Godot.Core.Viewport.gui_has_modal_stack,\n        Godot.Core.Viewport.gui_is_dragging,\n        Godot.Core.Viewport.has_transparent_background,\n        Godot.Core.Viewport.input, Godot.Core.Viewport.is_3d_disabled,\n        Godot.Core.Viewport.is_audio_listener,\n        Godot.Core.Viewport.is_audio_listener_2d,\n        Godot.Core.Viewport.is_handling_input_locally,\n        Godot.Core.Viewport.is_input_disabled,\n        Godot.Core.Viewport.is_input_handled,\n        Godot.Core.Viewport.is_size_override_enabled,\n        Godot.Core.Viewport.is_size_override_stretch_enabled,\n        Godot.Core.Viewport.is_snap_controls_to_pixels_enabled,\n        Godot.Core.Viewport.is_using_own_world,\n        Godot.Core.Viewport.is_using_render_direct_to_screen,\n        Godot.Core.Viewport.set_as_audio_listener,\n        Godot.Core.Viewport.set_as_audio_listener_2d,\n        Godot.Core.Viewport.set_attach_to_screen_rect,\n        Godot.Core.Viewport.set_canvas_transform,\n        Godot.Core.Viewport.set_clear_mode,\n        Godot.Core.Viewport.set_debug_draw,\n        Godot.Core.Viewport.set_disable_3d,\n        Godot.Core.Viewport.set_disable_input,\n        Godot.Core.Viewport.set_global_canvas_transform,\n        Godot.Core.Viewport.set_handle_input_locally,\n        Godot.Core.Viewport.set_hdr,\n        Godot.Core.Viewport.set_input_as_handled,\n        Godot.Core.Viewport.set_keep_3d_linear,\n        Godot.Core.Viewport.set_msaa,\n        Godot.Core.Viewport.set_physics_object_picking,\n        Godot.Core.Viewport.set_shadow_atlas_quadrant_subdiv,\n        Godot.Core.Viewport.set_shadow_atlas_size,\n        Godot.Core.Viewport.set_size,\n        Godot.Core.Viewport.set_size_override,\n        Godot.Core.Viewport.set_size_override_stretch,\n        Godot.Core.Viewport.set_snap_controls_to_pixels,\n        Godot.Core.Viewport.set_transparent_background,\n        Godot.Core.Viewport.set_update_mode, Godot.Core.Viewport.set_usage,\n        Godot.Core.Viewport.set_use_arvr,\n        Godot.Core.Viewport.set_use_own_world,\n        Godot.Core.Viewport.set_use_render_direct_to_screen,\n        Godot.Core.Viewport.set_vflip, Godot.Core.Viewport.set_world,\n        Godot.Core.Viewport.set_world_2d,\n        Godot.Core.Viewport.unhandled_input,\n        Godot.Core.Viewport.update_worlds, Godot.Core.Viewport.use_arvr,\n        Godot.Core.Viewport.warp_mouse)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\n_CLEAR_MODE_ONLY_NEXT_FRAME :: Int\n_CLEAR_MODE_ONLY_NEXT_FRAME = 2\n\n_DEBUG_DRAW_OVERDRAW :: Int\n_DEBUG_DRAW_OVERDRAW = 2\n\n_UPDATE_ALWAYS :: Int\n_UPDATE_ALWAYS = 3\n\n_RENDER_INFO_MATERIAL_CHANGES_IN_FRAME :: Int\n_RENDER_INFO_MATERIAL_CHANGES_IN_FRAME = 2\n\n_USAGE_3D :: Int\n_USAGE_3D = 2\n\n_MSAA_4X :: Int\n_MSAA_4X = 2\n\n_SHADOW_ATLAS_QUADRANT_SUBDIV_1024 :: Int\n_SHADOW_ATLAS_QUADRANT_SUBDIV_1024 = 6\n\n_SHADOW_ATLAS_QUADRANT_SUBDIV_16 :: Int\n_SHADOW_ATLAS_QUADRANT_SUBDIV_16 = 3\n\n_RENDER_INFO_SHADER_CHANGES_IN_FRAME :: Int\n_RENDER_INFO_SHADER_CHANGES_IN_FRAME = 3\n\n_RENDER_INFO_MAX :: Int\n_RENDER_INFO_MAX = 6\n\n_CLEAR_MODE_NEVER :: Int\n_CLEAR_MODE_NEVER = 1\n\n_SHADOW_ATLAS_QUADRANT_SUBDIV_64 :: Int\n_SHADOW_ATLAS_QUADRANT_SUBDIV_64 = 4\n\n_USAGE_3D_NO_EFFECTS :: Int\n_USAGE_3D_NO_EFFECTS = 3\n\n_RENDER_INFO_OBJECTS_IN_FRAME :: Int\n_RENDER_INFO_OBJECTS_IN_FRAME = 0\n\n_MSAA_2X :: Int\n_MSAA_2X = 1\n\n_SHADOW_ATLAS_QUADRANT_SUBDIV_256 :: Int\n_SHADOW_ATLAS_QUADRANT_SUBDIV_256 = 5\n\n_SHADOW_ATLAS_QUADRANT_SUBDIV_MAX :: Int\n_SHADOW_ATLAS_QUADRANT_SUBDIV_MAX = 7\n\n_UPDATE_DISABLED :: Int\n_UPDATE_DISABLED = 0\n\n_MSAA_DISABLED :: Int\n_MSAA_DISABLED = 0\n\n_DEBUG_DRAW_DISABLED :: Int\n_DEBUG_DRAW_DISABLED = 0\n\n_MSAA_8X :: Int\n_MSAA_8X = 3\n\n_USAGE_2D :: Int\n_USAGE_2D = 0\n\n_RENDER_INFO_VERTICES_IN_FRAME :: Int\n_RENDER_INFO_VERTICES_IN_FRAME = 1\n\n_SHADOW_ATLAS_QUADRANT_SUBDIV_DISABLED :: Int\n_SHADOW_ATLAS_QUADRANT_SUBDIV_DISABLED = 0\n\n_DEBUG_DRAW_UNSHADED :: Int\n_DEBUG_DRAW_UNSHADED = 1\n\n_DEBUG_DRAW_WIREFRAME :: Int\n_DEBUG_DRAW_WIREFRAME = 3\n\n_RENDER_INFO_DRAW_CALLS_IN_FRAME :: Int\n_RENDER_INFO_DRAW_CALLS_IN_FRAME = 5\n\n_UPDATE_WHEN_VISIBLE :: Int\n_UPDATE_WHEN_VISIBLE = 2\n\n_CLEAR_MODE_ALWAYS :: Int\n_CLEAR_MODE_ALWAYS = 0\n\n_SHADOW_ATLAS_QUADRANT_SUBDIV_1 :: Int\n_SHADOW_ATLAS_QUADRANT_SUBDIV_1 = 1\n\n_MSAA_16X :: Int\n_MSAA_16X = 4\n\n_SHADOW_ATLAS_QUADRANT_SUBDIV_4 :: Int\n_SHADOW_ATLAS_QUADRANT_SUBDIV_4 = 2\n\n_USAGE_2D_NO_SAMPLING :: Int\n_USAGE_2D_NO_SAMPLING = 1\n\n_UPDATE_ONCE :: Int\n_UPDATE_ONCE = 1\n\n_RENDER_INFO_SURFACE_CHANGES_IN_FRAME :: Int\n_RENDER_INFO_SURFACE_CHANGES_IN_FRAME = 4\n\n-- | Emitted when a Control node grabs keyboard focus.\nsig_gui_focus_changed :: Godot.Internal.Dispatch.Signal Viewport\nsig_gui_focus_changed\n  = Godot.Internal.Dispatch.Signal \"gui_focus_changed\"\n\ninstance NodeSignal Viewport \"gui_focus_changed\" '[Control]\n\n-- | Emitted when the size of the viewport is changed, whether by @method set_size_override@, resize of window, or some other means.\nsig_size_changed :: Godot.Internal.Dispatch.Signal Viewport\nsig_size_changed = Godot.Internal.Dispatch.Signal \"size_changed\"\n\ninstance NodeSignal Viewport \"size_changed\" '[]\n\ninstance NodeProperty Viewport \"arvr\" Bool 'False where\n        nodeProperty = (use_arvr, wrapDroppingSetter set_use_arvr, Nothing)\n\ninstance NodeProperty Viewport \"audio_listener_enable_2d\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_audio_listener_2d,\n             wrapDroppingSetter set_as_audio_listener_2d, Nothing)\n\ninstance NodeProperty Viewport \"audio_listener_enable_3d\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_audio_listener, wrapDroppingSetter set_as_audio_listener,\n             Nothing)\n\ninstance NodeProperty Viewport \"canvas_transform\" Transform2d\n           'False\n         where\n        nodeProperty\n          = (get_canvas_transform, wrapDroppingSetter set_canvas_transform,\n             Nothing)\n\ninstance NodeProperty Viewport \"debug_draw\" Int 'False where\n        nodeProperty\n          = (get_debug_draw, wrapDroppingSetter set_debug_draw, Nothing)\n\ninstance NodeProperty Viewport \"disable_3d\" Bool 'False where\n        nodeProperty\n          = (is_3d_disabled, wrapDroppingSetter set_disable_3d, Nothing)\n\ninstance NodeProperty Viewport \"global_canvas_transform\"\n           Transform2d\n           'False\n         where\n        nodeProperty\n          = (get_global_canvas_transform,\n             wrapDroppingSetter set_global_canvas_transform, Nothing)\n\ninstance NodeProperty Viewport \"gui_disable_input\" Bool 'False\n         where\n        nodeProperty\n          = (is_input_disabled, wrapDroppingSetter set_disable_input,\n             Nothing)\n\ninstance NodeProperty Viewport \"gui_snap_controls_to_pixels\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_snap_controls_to_pixels_enabled,\n             wrapDroppingSetter set_snap_controls_to_pixels, Nothing)\n\ninstance NodeProperty Viewport \"handle_input_locally\" Bool 'False\n         where\n        nodeProperty\n          = (is_handling_input_locally,\n             wrapDroppingSetter set_handle_input_locally, Nothing)\n\ninstance NodeProperty Viewport \"hdr\" Bool 'False where\n        nodeProperty = (get_hdr, wrapDroppingSetter set_hdr, Nothing)\n\ninstance NodeProperty Viewport \"keep_3d_linear\" Bool 'False where\n        nodeProperty\n          = (get_keep_3d_linear, wrapDroppingSetter set_keep_3d_linear,\n             Nothing)\n\ninstance NodeProperty Viewport \"msaa\" Int 'False where\n        nodeProperty = (get_msaa, wrapDroppingSetter set_msaa, Nothing)\n\ninstance NodeProperty Viewport \"own_world\" Bool 'False where\n        nodeProperty\n          = (is_using_own_world, wrapDroppingSetter set_use_own_world,\n             Nothing)\n\ninstance NodeProperty Viewport \"physics_object_picking\" Bool 'False\n         where\n        nodeProperty\n          = (get_physics_object_picking,\n             wrapDroppingSetter set_physics_object_picking, Nothing)\n\ninstance NodeProperty Viewport \"render_direct_to_screen\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_using_render_direct_to_screen,\n             wrapDroppingSetter set_use_render_direct_to_screen, Nothing)\n\ninstance NodeProperty Viewport \"render_target_clear_mode\" Int\n           'False\n         where\n        nodeProperty\n          = (get_clear_mode, wrapDroppingSetter set_clear_mode, Nothing)\n\ninstance NodeProperty Viewport \"render_target_update_mode\" Int\n           'False\n         where\n        nodeProperty\n          = (get_update_mode, wrapDroppingSetter set_update_mode, Nothing)\n\ninstance NodeProperty Viewport \"render_target_v_flip\" Bool 'False\n         where\n        nodeProperty = (get_vflip, wrapDroppingSetter set_vflip, Nothing)\n\ninstance NodeProperty Viewport \"shadow_atlas_quad_0\" Int 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 get_shadow_atlas_quadrant_subdiv,\n             wrapIndexedSetter 0 set_shadow_atlas_quadrant_subdiv, Nothing)\n\ninstance NodeProperty Viewport \"shadow_atlas_quad_1\" Int 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 get_shadow_atlas_quadrant_subdiv,\n             wrapIndexedSetter 1 set_shadow_atlas_quadrant_subdiv, Nothing)\n\ninstance NodeProperty Viewport \"shadow_atlas_quad_2\" Int 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 get_shadow_atlas_quadrant_subdiv,\n             wrapIndexedSetter 2 set_shadow_atlas_quadrant_subdiv, Nothing)\n\ninstance NodeProperty Viewport \"shadow_atlas_quad_3\" Int 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 get_shadow_atlas_quadrant_subdiv,\n             wrapIndexedSetter 3 set_shadow_atlas_quadrant_subdiv, Nothing)\n\ninstance NodeProperty Viewport \"shadow_atlas_size\" Int 'False where\n        nodeProperty\n          = (get_shadow_atlas_size, wrapDroppingSetter set_shadow_atlas_size,\n             Nothing)\n\ninstance NodeProperty Viewport \"size\" Vector2 'False where\n        nodeProperty = (get_size, wrapDroppingSetter set_size, Nothing)\n\ninstance NodeProperty Viewport \"size_override_stretch\" Bool 'False\n         where\n        nodeProperty\n          = (is_size_override_stretch_enabled,\n             wrapDroppingSetter set_size_override_stretch, Nothing)\n\ninstance NodeProperty Viewport \"transparent_bg\" Bool 'False where\n        nodeProperty\n          = (has_transparent_background,\n             wrapDroppingSetter set_transparent_background, Nothing)\n\ninstance NodeProperty Viewport \"usage\" Int 'False where\n        nodeProperty = (get_usage, wrapDroppingSetter set_usage, Nothing)\n\ninstance NodeProperty Viewport \"world\" World 'False where\n        nodeProperty = (get_world, wrapDroppingSetter set_world, Nothing)\n\ninstance NodeProperty Viewport \"world_2d\" World2D 'False where\n        nodeProperty\n          = (get_world_2d, wrapDroppingSetter set_world_2d, Nothing)\n\n{-# NOINLINE bindViewport__gui_remove_focus #-}\n\nbindViewport__gui_remove_focus :: MethodBind\nbindViewport__gui_remove_focus\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_remove_focus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_remove_focus ::\n                    (Viewport :< cls, Object :< cls) => cls -> IO ()\n_gui_remove_focus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport__gui_remove_focus (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"_gui_remove_focus\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Viewport._gui_remove_focus\n\n{-# NOINLINE bindViewport__gui_show_tooltip #-}\n\nbindViewport__gui_show_tooltip :: MethodBind\nbindViewport__gui_show_tooltip\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_show_tooltip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_show_tooltip ::\n                    (Viewport :< cls, Object :< cls) => cls -> IO ()\n_gui_show_tooltip cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport__gui_show_tooltip (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"_gui_show_tooltip\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Viewport._gui_show_tooltip\n\n{-# NOINLINE bindViewport__own_world_changed #-}\n\nbindViewport__own_world_changed :: MethodBind\nbindViewport__own_world_changed\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"_own_world_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_own_world_changed ::\n                     (Viewport :< cls, Object :< cls) => cls -> IO ()\n_own_world_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport__own_world_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"_own_world_changed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Viewport._own_world_changed\n\n{-# NOINLINE bindViewport__post_gui_grab_click_focus #-}\n\nbindViewport__post_gui_grab_click_focus :: MethodBind\nbindViewport__post_gui_grab_click_focus\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"_post_gui_grab_click_focus\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_post_gui_grab_click_focus ::\n                             (Viewport :< cls, Object :< cls) => cls -> IO ()\n_post_gui_grab_click_focus cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport__post_gui_grab_click_focus\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"_post_gui_grab_click_focus\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport._post_gui_grab_click_focus\n\n{-# NOINLINE bindViewport__subwindow_visibility_changed #-}\n\nbindViewport__subwindow_visibility_changed :: MethodBind\nbindViewport__subwindow_visibility_changed\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"_subwindow_visibility_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_subwindow_visibility_changed ::\n                                (Viewport :< cls, Object :< cls) => cls -> IO ()\n_subwindow_visibility_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport__subwindow_visibility_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"_subwindow_visibility_changed\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport._subwindow_visibility_changed\n\n{-# NOINLINE bindViewport__vp_input #-}\n\nbindViewport__vp_input :: MethodBind\nbindViewport__vp_input\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"_vp_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_vp_input ::\n            (Viewport :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_vp_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport__vp_input (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"_vp_input\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport._vp_input\n\n{-# NOINLINE bindViewport__vp_input_text #-}\n\nbindViewport__vp_input_text :: MethodBind\nbindViewport__vp_input_text\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"_vp_input_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_vp_input_text ::\n                 (Viewport :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_vp_input_text cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport__vp_input_text (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"_vp_input_text\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport._vp_input_text\n\n{-# NOINLINE bindViewport__vp_unhandled_input #-}\n\nbindViewport__vp_unhandled_input :: MethodBind\nbindViewport__vp_unhandled_input\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"_vp_unhandled_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_vp_unhandled_input ::\n                      (Viewport :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_vp_unhandled_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport__vp_unhandled_input\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"_vp_unhandled_input\" '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport._vp_unhandled_input\n\n{-# NOINLINE bindViewport_find_world #-}\n\n-- | Returns the 3D world of the viewport, or if none the world of the parent viewport.\nbindViewport_find_world :: MethodBind\nbindViewport_find_world\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"find_world\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the 3D world of the viewport, or if none the world of the parent viewport.\nfind_world :: (Viewport :< cls, Object :< cls) => cls -> IO World\nfind_world cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_find_world (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"find_world\" '[] (IO World) where\n        nodeMethod = Godot.Core.Viewport.find_world\n\n{-# NOINLINE bindViewport_find_world_2d #-}\n\n-- | Returns the 2D world of the viewport.\nbindViewport_find_world_2d :: MethodBind\nbindViewport_find_world_2d\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"find_world_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the 2D world of the viewport.\nfind_world_2d ::\n                (Viewport :< cls, Object :< cls) => cls -> IO World2D\nfind_world_2d cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_find_world_2d (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"find_world_2d\" '[] (IO World2D) where\n        nodeMethod = Godot.Core.Viewport.find_world_2d\n\n{-# NOINLINE bindViewport_get_camera #-}\n\n-- | Returns the active 3D camera.\nbindViewport_get_camera :: MethodBind\nbindViewport_get_camera\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_camera\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the active 3D camera.\nget_camera :: (Viewport :< cls, Object :< cls) => cls -> IO Camera\nget_camera cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_camera (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_camera\" '[] (IO Camera) where\n        nodeMethod = Godot.Core.Viewport.get_camera\n\n{-# NOINLINE bindViewport_get_canvas_transform #-}\n\n-- | The canvas transform of the viewport, useful for changing the on-screen positions of all child @CanvasItem@s. This is relative to the global canvas transform of the viewport.\nbindViewport_get_canvas_transform :: MethodBind\nbindViewport_get_canvas_transform\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_canvas_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The canvas transform of the viewport, useful for changing the on-screen positions of all child @CanvasItem@s. This is relative to the global canvas transform of the viewport.\nget_canvas_transform ::\n                       (Viewport :< cls, Object :< cls) => cls -> IO Transform2d\nget_canvas_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_canvas_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_canvas_transform\" '[]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.Viewport.get_canvas_transform\n\n{-# NOINLINE bindViewport_get_clear_mode #-}\n\n-- | The clear mode when viewport used as a render target.\n--   \t\t\t__Note:__ This property is intended for 2D usage.\nbindViewport_get_clear_mode :: MethodBind\nbindViewport_get_clear_mode\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_clear_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The clear mode when viewport used as a render target.\n--   \t\t\t__Note:__ This property is intended for 2D usage.\nget_clear_mode :: (Viewport :< cls, Object :< cls) => cls -> IO Int\nget_clear_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_clear_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_clear_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Viewport.get_clear_mode\n\n{-# NOINLINE bindViewport_get_debug_draw #-}\n\n-- | The overlay mode for test rendered geometry in debug purposes.\nbindViewport_get_debug_draw :: MethodBind\nbindViewport_get_debug_draw\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_debug_draw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The overlay mode for test rendered geometry in debug purposes.\nget_debug_draw :: (Viewport :< cls, Object :< cls) => cls -> IO Int\nget_debug_draw cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_debug_draw (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_debug_draw\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Viewport.get_debug_draw\n\n{-# NOINLINE bindViewport_get_final_transform #-}\n\n-- | Returns the total transform of the viewport.\nbindViewport_get_final_transform :: MethodBind\nbindViewport_get_final_transform\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_final_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the total transform of the viewport.\nget_final_transform ::\n                      (Viewport :< cls, Object :< cls) => cls -> IO Transform2d\nget_final_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_final_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_final_transform\" '[]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.Viewport.get_final_transform\n\n{-# NOINLINE bindViewport_get_global_canvas_transform #-}\n\n-- | The global canvas transform of the viewport. The canvas transform is relative to this.\nbindViewport_get_global_canvas_transform :: MethodBind\nbindViewport_get_global_canvas_transform\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_global_canvas_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The global canvas transform of the viewport. The canvas transform is relative to this.\nget_global_canvas_transform ::\n                              (Viewport :< cls, Object :< cls) => cls -> IO Transform2d\nget_global_canvas_transform cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_global_canvas_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_global_canvas_transform\" '[]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.Viewport.get_global_canvas_transform\n\n{-# NOINLINE bindViewport_get_hdr #-}\n\n-- | If @true@, the viewport rendering will receive benefits from High Dynamic Range algorithm. High Dynamic Range allows the viewport to receive values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it does not store the full range of a floating point number.\n--   \t\t\t__Note:__ Requires @usage@ to be set to @USAGE_3D@ or @USAGE_3D_NO_EFFECTS@, since HDR is not supported for 2D.\nbindViewport_get_hdr :: MethodBind\nbindViewport_get_hdr\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_hdr\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport rendering will receive benefits from High Dynamic Range algorithm. High Dynamic Range allows the viewport to receive values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it does not store the full range of a floating point number.\n--   \t\t\t__Note:__ Requires @usage@ to be set to @USAGE_3D@ or @USAGE_3D_NO_EFFECTS@, since HDR is not supported for 2D.\nget_hdr :: (Viewport :< cls, Object :< cls) => cls -> IO Bool\nget_hdr cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_hdr (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_hdr\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Viewport.get_hdr\n\n{-# NOINLINE bindViewport_get_keep_3d_linear #-}\n\n-- | If @true@, the result after 3D rendering will not have a linear to sRGB color conversion applied. This is important when the viewport is used as a render target where the result is used as a texture on a 3D object rendered in another viewport. It is also important if the viewport is used to create data that is not color based (noise, heightmaps, pickmaps, etc.). Do not enable this when the viewport is used as a texture on a 2D object or if the viewport is your final output.\nbindViewport_get_keep_3d_linear :: MethodBind\nbindViewport_get_keep_3d_linear\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_keep_3d_linear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the result after 3D rendering will not have a linear to sRGB color conversion applied. This is important when the viewport is used as a render target where the result is used as a texture on a 3D object rendered in another viewport. It is also important if the viewport is used to create data that is not color based (noise, heightmaps, pickmaps, etc.). Do not enable this when the viewport is used as a texture on a 2D object or if the viewport is your final output.\nget_keep_3d_linear ::\n                     (Viewport :< cls, Object :< cls) => cls -> IO Bool\nget_keep_3d_linear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_keep_3d_linear (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_keep_3d_linear\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Viewport.get_keep_3d_linear\n\n{-# NOINLINE bindViewport_get_modal_stack_top #-}\n\n-- | Returns the topmost modal in the stack.\nbindViewport_get_modal_stack_top :: MethodBind\nbindViewport_get_modal_stack_top\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_modal_stack_top\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the topmost modal in the stack.\nget_modal_stack_top ::\n                      (Viewport :< cls, Object :< cls) => cls -> IO Control\nget_modal_stack_top cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_modal_stack_top\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_modal_stack_top\" '[] (IO Control)\n         where\n        nodeMethod = Godot.Core.Viewport.get_modal_stack_top\n\n{-# NOINLINE bindViewport_get_mouse_position #-}\n\n-- | Returns the mouse position relative to the viewport.\nbindViewport_get_mouse_position :: MethodBind\nbindViewport_get_mouse_position\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_mouse_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the mouse position relative to the viewport.\nget_mouse_position ::\n                     (Viewport :< cls, Object :< cls) => cls -> IO Vector2\nget_mouse_position cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_mouse_position (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_mouse_position\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Viewport.get_mouse_position\n\n{-# NOINLINE bindViewport_get_msaa #-}\n\n-- | The multisample anti-aliasing mode. A higher number results in smoother edges at the cost of significantly worse performance. A value of 4 is best unless targeting very high-end systems.\nbindViewport_get_msaa :: MethodBind\nbindViewport_get_msaa\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_msaa\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The multisample anti-aliasing mode. A higher number results in smoother edges at the cost of significantly worse performance. A value of 4 is best unless targeting very high-end systems.\nget_msaa :: (Viewport :< cls, Object :< cls) => cls -> IO Int\nget_msaa cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_msaa (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_msaa\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Viewport.get_msaa\n\n{-# NOINLINE bindViewport_get_physics_object_picking #-}\n\n-- | If @true@, the objects rendered by viewport become subjects of mouse picking process.\nbindViewport_get_physics_object_picking :: MethodBind\nbindViewport_get_physics_object_picking\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_physics_object_picking\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the objects rendered by viewport become subjects of mouse picking process.\nget_physics_object_picking ::\n                             (Viewport :< cls, Object :< cls) => cls -> IO Bool\nget_physics_object_picking cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_physics_object_picking\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_physics_object_picking\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Viewport.get_physics_object_picking\n\n{-# NOINLINE bindViewport_get_render_info #-}\n\n-- | Returns information about the viewport from the rendering pipeline.\nbindViewport_get_render_info :: MethodBind\nbindViewport_get_render_info\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_render_info\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns information about the viewport from the rendering pipeline.\nget_render_info ::\n                  (Viewport :< cls, Object :< cls) => cls -> Int -> IO Int\nget_render_info cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_render_info (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_render_info\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.Viewport.get_render_info\n\n{-# NOINLINE bindViewport_get_shadow_atlas_quadrant_subdiv #-}\n\n-- | Returns the @enum ShadowAtlasQuadrantSubdiv@ of the specified quadrant.\nbindViewport_get_shadow_atlas_quadrant_subdiv :: MethodBind\nbindViewport_get_shadow_atlas_quadrant_subdiv\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_shadow_atlas_quadrant_subdiv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @enum ShadowAtlasQuadrantSubdiv@ of the specified quadrant.\nget_shadow_atlas_quadrant_subdiv ::\n                                   (Viewport :< cls, Object :< cls) => cls -> Int -> IO Int\nget_shadow_atlas_quadrant_subdiv cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindViewport_get_shadow_atlas_quadrant_subdiv\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_shadow_atlas_quadrant_subdiv\"\n           '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.Viewport.get_shadow_atlas_quadrant_subdiv\n\n{-# NOINLINE bindViewport_get_shadow_atlas_size #-}\n\n-- | The shadow atlas' resolution (used for omni and spot lights). The value will be rounded up to the nearest power of 2.\n--   \t\t\t__Note:__ If this is set to 0, shadows won't be visible. Since user-created viewports default to a value of 0, this value must be set above 0 manually.\nbindViewport_get_shadow_atlas_size :: MethodBind\nbindViewport_get_shadow_atlas_size\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_shadow_atlas_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The shadow atlas' resolution (used for omni and spot lights). The value will be rounded up to the nearest power of 2.\n--   \t\t\t__Note:__ If this is set to 0, shadows won't be visible. Since user-created viewports default to a value of 0, this value must be set above 0 manually.\nget_shadow_atlas_size ::\n                        (Viewport :< cls, Object :< cls) => cls -> IO Int\nget_shadow_atlas_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_shadow_atlas_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_shadow_atlas_size\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.Viewport.get_shadow_atlas_size\n\n{-# NOINLINE bindViewport_get_size #-}\n\n-- | The width and height of viewport.\nbindViewport_get_size :: MethodBind\nbindViewport_get_size\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The width and height of viewport.\nget_size :: (Viewport :< cls, Object :< cls) => cls -> IO Vector2\nget_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_size (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_size\" '[] (IO Vector2) where\n        nodeMethod = Godot.Core.Viewport.get_size\n\n{-# NOINLINE bindViewport_get_size_override #-}\n\n-- | Returns the size override set with @method set_size_override@.\nbindViewport_get_size_override :: MethodBind\nbindViewport_get_size_override\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_size_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the size override set with @method set_size_override@.\nget_size_override ::\n                    (Viewport :< cls, Object :< cls) => cls -> IO Vector2\nget_size_override cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_size_override (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_size_override\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.Viewport.get_size_override\n\n{-# NOINLINE bindViewport_get_texture #-}\n\n-- | Returns the viewport's texture.\n--   \t\t\t\t__Note:__ Due to the way OpenGL works, the resulting @ViewportTexture@ is flipped vertically. You can use @method Image.flip_y@ on the result of @method Texture.get_data@ to flip it back, for example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar img = get_viewport().get_texture().get_data()\n--   \t\t\t\timg.flip_y()\n--   \t\t\t\t\n--   @\nbindViewport_get_texture :: MethodBind\nbindViewport_get_texture\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the viewport's texture.\n--   \t\t\t\t__Note:__ Due to the way OpenGL works, the resulting @ViewportTexture@ is flipped vertically. You can use @method Image.flip_y@ on the result of @method Texture.get_data@ to flip it back, for example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tvar img = get_viewport().get_texture().get_data()\n--   \t\t\t\timg.flip_y()\n--   \t\t\t\t\n--   @\nget_texture ::\n              (Viewport :< cls, Object :< cls) => cls -> IO ViewportTexture\nget_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_texture (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_texture\" '[] (IO ViewportTexture)\n         where\n        nodeMethod = Godot.Core.Viewport.get_texture\n\n{-# NOINLINE bindViewport_get_update_mode #-}\n\n-- | The update mode when viewport used as a render target.\nbindViewport_get_update_mode :: MethodBind\nbindViewport_get_update_mode\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_update_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The update mode when viewport used as a render target.\nget_update_mode ::\n                  (Viewport :< cls, Object :< cls) => cls -> IO Int\nget_update_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_update_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_update_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Viewport.get_update_mode\n\n{-# NOINLINE bindViewport_get_usage #-}\n\n-- | The rendering mode of viewport.\nbindViewport_get_usage :: MethodBind\nbindViewport_get_usage\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_usage\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rendering mode of viewport.\nget_usage :: (Viewport :< cls, Object :< cls) => cls -> IO Int\nget_usage cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_usage (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_usage\" '[] (IO Int) where\n        nodeMethod = Godot.Core.Viewport.get_usage\n\n{-# NOINLINE bindViewport_get_vflip #-}\n\n-- | If @true@, the result of rendering will be flipped vertically.\nbindViewport_get_vflip :: MethodBind\nbindViewport_get_vflip\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_vflip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the result of rendering will be flipped vertically.\nget_vflip :: (Viewport :< cls, Object :< cls) => cls -> IO Bool\nget_vflip cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_vflip (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_vflip\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Viewport.get_vflip\n\n{-# NOINLINE bindViewport_get_viewport_rid #-}\n\n-- | Returns the viewport's RID from the @VisualServer@.\nbindViewport_get_viewport_rid :: MethodBind\nbindViewport_get_viewport_rid\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_viewport_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the viewport's RID from the @VisualServer@.\nget_viewport_rid ::\n                   (Viewport :< cls, Object :< cls) => cls -> IO Rid\nget_viewport_rid cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_viewport_rid (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_viewport_rid\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.Viewport.get_viewport_rid\n\n{-# NOINLINE bindViewport_get_visible_rect #-}\n\n-- | Returns the visible rectangle in global screen coordinates.\nbindViewport_get_visible_rect :: MethodBind\nbindViewport_get_visible_rect\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_visible_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the visible rectangle in global screen coordinates.\nget_visible_rect ::\n                   (Viewport :< cls, Object :< cls) => cls -> IO Rect2\nget_visible_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_visible_rect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_visible_rect\" '[] (IO Rect2)\n         where\n        nodeMethod = Godot.Core.Viewport.get_visible_rect\n\n{-# NOINLINE bindViewport_get_world #-}\n\n-- | The custom @World@ which can be used as 3D environment source.\nbindViewport_get_world :: MethodBind\nbindViewport_get_world\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_world\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The custom @World@ which can be used as 3D environment source.\nget_world :: (Viewport :< cls, Object :< cls) => cls -> IO World\nget_world cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_world (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_world\" '[] (IO World) where\n        nodeMethod = Godot.Core.Viewport.get_world\n\n{-# NOINLINE bindViewport_get_world_2d #-}\n\n-- | The custom @World2D@ which can be used as 2D environment source.\nbindViewport_get_world_2d :: MethodBind\nbindViewport_get_world_2d\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"get_world_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The custom @World2D@ which can be used as 2D environment source.\nget_world_2d ::\n               (Viewport :< cls, Object :< cls) => cls -> IO World2D\nget_world_2d cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_get_world_2d (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"get_world_2d\" '[] (IO World2D) where\n        nodeMethod = Godot.Core.Viewport.get_world_2d\n\n{-# NOINLINE bindViewport_gui_get_drag_data #-}\n\n-- | Returns the drag data from the GUI, that was previously returned by @method Control.get_drag_data@.\nbindViewport_gui_get_drag_data :: MethodBind\nbindViewport_gui_get_drag_data\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"gui_get_drag_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the drag data from the GUI, that was previously returned by @method Control.get_drag_data@.\ngui_get_drag_data ::\n                    (Viewport :< cls, Object :< cls) => cls -> IO GodotVariant\ngui_get_drag_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_gui_get_drag_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"gui_get_drag_data\" '[]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.Viewport.gui_get_drag_data\n\n{-# NOINLINE bindViewport_gui_has_modal_stack #-}\n\n-- | Returns @true@ if there are visible modals on-screen.\nbindViewport_gui_has_modal_stack :: MethodBind\nbindViewport_gui_has_modal_stack\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"gui_has_modal_stack\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if there are visible modals on-screen.\ngui_has_modal_stack ::\n                      (Viewport :< cls, Object :< cls) => cls -> IO Bool\ngui_has_modal_stack cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_gui_has_modal_stack\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"gui_has_modal_stack\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Viewport.gui_has_modal_stack\n\n{-# NOINLINE bindViewport_gui_is_dragging #-}\n\n-- | Returns @true@ if the viewport is currently performing a drag operation.\nbindViewport_gui_is_dragging :: MethodBind\nbindViewport_gui_is_dragging\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"gui_is_dragging\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the viewport is currently performing a drag operation.\ngui_is_dragging ::\n                  (Viewport :< cls, Object :< cls) => cls -> IO Bool\ngui_is_dragging cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_gui_is_dragging (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"gui_is_dragging\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Viewport.gui_is_dragging\n\n{-# NOINLINE bindViewport_has_transparent_background #-}\n\n-- | If @true@, the viewport should render its background as transparent.\nbindViewport_has_transparent_background :: MethodBind\nbindViewport_has_transparent_background\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"has_transparent_background\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport should render its background as transparent.\nhas_transparent_background ::\n                             (Viewport :< cls, Object :< cls) => cls -> IO Bool\nhas_transparent_background cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_has_transparent_background\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"has_transparent_background\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Viewport.has_transparent_background\n\n{-# NOINLINE bindViewport_input #-}\n\nbindViewport_input :: MethodBind\nbindViewport_input\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ninput ::\n        (Viewport :< cls, Object :< cls) => cls -> InputEvent -> IO ()\ninput cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_input (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"input\" '[InputEvent] (IO ()) where\n        nodeMethod = Godot.Core.Viewport.input\n\n{-# NOINLINE bindViewport_is_3d_disabled #-}\n\n-- | If @true@, the viewport will disable 3D rendering. For actual disabling use @usage@.\nbindViewport_is_3d_disabled :: MethodBind\nbindViewport_is_3d_disabled\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"is_3d_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport will disable 3D rendering. For actual disabling use @usage@.\nis_3d_disabled ::\n                 (Viewport :< cls, Object :< cls) => cls -> IO Bool\nis_3d_disabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_is_3d_disabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"is_3d_disabled\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Viewport.is_3d_disabled\n\n{-# NOINLINE bindViewport_is_audio_listener #-}\n\n-- | If @true@, the viewport will process 3D audio streams.\nbindViewport_is_audio_listener :: MethodBind\nbindViewport_is_audio_listener\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"is_audio_listener\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport will process 3D audio streams.\nis_audio_listener ::\n                    (Viewport :< cls, Object :< cls) => cls -> IO Bool\nis_audio_listener cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_is_audio_listener (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"is_audio_listener\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Viewport.is_audio_listener\n\n{-# NOINLINE bindViewport_is_audio_listener_2d #-}\n\n-- | If @true@, the viewport will process 2D audio streams.\nbindViewport_is_audio_listener_2d :: MethodBind\nbindViewport_is_audio_listener_2d\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"is_audio_listener_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport will process 2D audio streams.\nis_audio_listener_2d ::\n                       (Viewport :< cls, Object :< cls) => cls -> IO Bool\nis_audio_listener_2d cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_is_audio_listener_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"is_audio_listener_2d\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Viewport.is_audio_listener_2d\n\n{-# NOINLINE bindViewport_is_handling_input_locally #-}\n\nbindViewport_is_handling_input_locally :: MethodBind\nbindViewport_is_handling_input_locally\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"is_handling_input_locally\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_handling_input_locally ::\n                            (Viewport :< cls, Object :< cls) => cls -> IO Bool\nis_handling_input_locally cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_is_handling_input_locally\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"is_handling_input_locally\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Viewport.is_handling_input_locally\n\n{-# NOINLINE bindViewport_is_input_disabled #-}\n\n-- | If @true@, the viewport will not receive input event.\nbindViewport_is_input_disabled :: MethodBind\nbindViewport_is_input_disabled\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"is_input_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport will not receive input event.\nis_input_disabled ::\n                    (Viewport :< cls, Object :< cls) => cls -> IO Bool\nis_input_disabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_is_input_disabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"is_input_disabled\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Viewport.is_input_disabled\n\n{-# NOINLINE bindViewport_is_input_handled #-}\n\nbindViewport_is_input_handled :: MethodBind\nbindViewport_is_input_handled\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"is_input_handled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_input_handled ::\n                   (Viewport :< cls, Object :< cls) => cls -> IO Bool\nis_input_handled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_is_input_handled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"is_input_handled\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Viewport.is_input_handled\n\n{-# NOINLINE bindViewport_is_size_override_enabled #-}\n\n-- | Returns @true@ if the size override is enabled. See @method set_size_override@.\nbindViewport_is_size_override_enabled :: MethodBind\nbindViewport_is_size_override_enabled\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"is_size_override_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the size override is enabled. See @method set_size_override@.\nis_size_override_enabled ::\n                           (Viewport :< cls, Object :< cls) => cls -> IO Bool\nis_size_override_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_is_size_override_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"is_size_override_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Viewport.is_size_override_enabled\n\n{-# NOINLINE bindViewport_is_size_override_stretch_enabled #-}\n\n-- | If @true@, the size override affects stretch as well.\nbindViewport_is_size_override_stretch_enabled :: MethodBind\nbindViewport_is_size_override_stretch_enabled\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"is_size_override_stretch_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the size override affects stretch as well.\nis_size_override_stretch_enabled ::\n                                   (Viewport :< cls, Object :< cls) => cls -> IO Bool\nis_size_override_stretch_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindViewport_is_size_override_stretch_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"is_size_override_stretch_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Viewport.is_size_override_stretch_enabled\n\n{-# NOINLINE bindViewport_is_snap_controls_to_pixels_enabled #-}\n\n-- | If @true@, the GUI controls on the viewport will lay pixel perfectly.\nbindViewport_is_snap_controls_to_pixels_enabled :: MethodBind\nbindViewport_is_snap_controls_to_pixels_enabled\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"is_snap_controls_to_pixels_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the GUI controls on the viewport will lay pixel perfectly.\nis_snap_controls_to_pixels_enabled ::\n                                     (Viewport :< cls, Object :< cls) => cls -> IO Bool\nis_snap_controls_to_pixels_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindViewport_is_snap_controls_to_pixels_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"is_snap_controls_to_pixels_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Viewport.is_snap_controls_to_pixels_enabled\n\n{-# NOINLINE bindViewport_is_using_own_world #-}\n\n-- | If @true@, the viewport will use @World@ defined in @world@ property.\nbindViewport_is_using_own_world :: MethodBind\nbindViewport_is_using_own_world\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_own_world\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport will use @World@ defined in @world@ property.\nis_using_own_world ::\n                     (Viewport :< cls, Object :< cls) => cls -> IO Bool\nis_using_own_world cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_is_using_own_world (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"is_using_own_world\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.Viewport.is_using_own_world\n\n{-# NOINLINE bindViewport_is_using_render_direct_to_screen #-}\n\n-- | If @true@, renders the Viewport directly to the screen instead of to the root viewport. Only available in GLES2. This is a low-level optimization and should not be used in most cases. If used, reading from the Viewport or from @SCREEN_TEXTURE@ becomes unavailable. For more information see @method VisualServer.viewport_set_render_direct_to_screen@.\nbindViewport_is_using_render_direct_to_screen :: MethodBind\nbindViewport_is_using_render_direct_to_screen\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"is_using_render_direct_to_screen\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, renders the Viewport directly to the screen instead of to the root viewport. Only available in GLES2. This is a low-level optimization and should not be used in most cases. If used, reading from the Viewport or from @SCREEN_TEXTURE@ becomes unavailable. For more information see @method VisualServer.viewport_set_render_direct_to_screen@.\nis_using_render_direct_to_screen ::\n                                   (Viewport :< cls, Object :< cls) => cls -> IO Bool\nis_using_render_direct_to_screen cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindViewport_is_using_render_direct_to_screen\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"is_using_render_direct_to_screen\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.Viewport.is_using_render_direct_to_screen\n\n{-# NOINLINE bindViewport_set_as_audio_listener #-}\n\n-- | If @true@, the viewport will process 3D audio streams.\nbindViewport_set_as_audio_listener :: MethodBind\nbindViewport_set_as_audio_listener\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_as_audio_listener\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport will process 3D audio streams.\nset_as_audio_listener ::\n                        (Viewport :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_as_audio_listener cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_as_audio_listener\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_as_audio_listener\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_as_audio_listener\n\n{-# NOINLINE bindViewport_set_as_audio_listener_2d #-}\n\n-- | If @true@, the viewport will process 2D audio streams.\nbindViewport_set_as_audio_listener_2d :: MethodBind\nbindViewport_set_as_audio_listener_2d\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_as_audio_listener_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport will process 2D audio streams.\nset_as_audio_listener_2d ::\n                           (Viewport :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_as_audio_listener_2d cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_as_audio_listener_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_as_audio_listener_2d\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_as_audio_listener_2d\n\n{-# NOINLINE bindViewport_set_attach_to_screen_rect #-}\n\n-- | Attaches this @Viewport@ to the root @Viewport@ with the specified rectangle. This bypasses the need for another node to display this @Viewport@ but makes you responsible for updating the position of this @Viewport@ manually.\nbindViewport_set_attach_to_screen_rect :: MethodBind\nbindViewport_set_attach_to_screen_rect\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_attach_to_screen_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Attaches this @Viewport@ to the root @Viewport@ with the specified rectangle. This bypasses the need for another node to display this @Viewport@ but makes you responsible for updating the position of this @Viewport@ manually.\nset_attach_to_screen_rect ::\n                            (Viewport :< cls, Object :< cls) => cls -> Rect2 -> IO ()\nset_attach_to_screen_rect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_attach_to_screen_rect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_attach_to_screen_rect\" '[Rect2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_attach_to_screen_rect\n\n{-# NOINLINE bindViewport_set_canvas_transform #-}\n\n-- | The canvas transform of the viewport, useful for changing the on-screen positions of all child @CanvasItem@s. This is relative to the global canvas transform of the viewport.\nbindViewport_set_canvas_transform :: MethodBind\nbindViewport_set_canvas_transform\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_canvas_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The canvas transform of the viewport, useful for changing the on-screen positions of all child @CanvasItem@s. This is relative to the global canvas transform of the viewport.\nset_canvas_transform ::\n                       (Viewport :< cls, Object :< cls) => cls -> Transform2d -> IO ()\nset_canvas_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_canvas_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_canvas_transform\" '[Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_canvas_transform\n\n{-# NOINLINE bindViewport_set_clear_mode #-}\n\n-- | The clear mode when viewport used as a render target.\n--   \t\t\t__Note:__ This property is intended for 2D usage.\nbindViewport_set_clear_mode :: MethodBind\nbindViewport_set_clear_mode\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_clear_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The clear mode when viewport used as a render target.\n--   \t\t\t__Note:__ This property is intended for 2D usage.\nset_clear_mode ::\n                 (Viewport :< cls, Object :< cls) => cls -> Int -> IO ()\nset_clear_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_clear_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_clear_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Viewport.set_clear_mode\n\n{-# NOINLINE bindViewport_set_debug_draw #-}\n\n-- | The overlay mode for test rendered geometry in debug purposes.\nbindViewport_set_debug_draw :: MethodBind\nbindViewport_set_debug_draw\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_debug_draw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The overlay mode for test rendered geometry in debug purposes.\nset_debug_draw ::\n                 (Viewport :< cls, Object :< cls) => cls -> Int -> IO ()\nset_debug_draw cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_debug_draw (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_debug_draw\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Viewport.set_debug_draw\n\n{-# NOINLINE bindViewport_set_disable_3d #-}\n\n-- | If @true@, the viewport will disable 3D rendering. For actual disabling use @usage@.\nbindViewport_set_disable_3d :: MethodBind\nbindViewport_set_disable_3d\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_disable_3d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport will disable 3D rendering. For actual disabling use @usage@.\nset_disable_3d ::\n                 (Viewport :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_disable_3d cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_disable_3d (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_disable_3d\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Viewport.set_disable_3d\n\n{-# NOINLINE bindViewport_set_disable_input #-}\n\n-- | If @true@, the viewport will not receive input event.\nbindViewport_set_disable_input :: MethodBind\nbindViewport_set_disable_input\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_disable_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport will not receive input event.\nset_disable_input ::\n                    (Viewport :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_disable_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_disable_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_disable_input\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_disable_input\n\n{-# NOINLINE bindViewport_set_global_canvas_transform #-}\n\n-- | The global canvas transform of the viewport. The canvas transform is relative to this.\nbindViewport_set_global_canvas_transform :: MethodBind\nbindViewport_set_global_canvas_transform\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_global_canvas_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The global canvas transform of the viewport. The canvas transform is relative to this.\nset_global_canvas_transform ::\n                              (Viewport :< cls, Object :< cls) => cls -> Transform2d -> IO ()\nset_global_canvas_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_global_canvas_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_global_canvas_transform\"\n           '[Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_global_canvas_transform\n\n{-# NOINLINE bindViewport_set_handle_input_locally #-}\n\nbindViewport_set_handle_input_locally :: MethodBind\nbindViewport_set_handle_input_locally\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_handle_input_locally\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_handle_input_locally ::\n                           (Viewport :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_handle_input_locally cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_handle_input_locally\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_handle_input_locally\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_handle_input_locally\n\n{-# NOINLINE bindViewport_set_hdr #-}\n\n-- | If @true@, the viewport rendering will receive benefits from High Dynamic Range algorithm. High Dynamic Range allows the viewport to receive values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it does not store the full range of a floating point number.\n--   \t\t\t__Note:__ Requires @usage@ to be set to @USAGE_3D@ or @USAGE_3D_NO_EFFECTS@, since HDR is not supported for 2D.\nbindViewport_set_hdr :: MethodBind\nbindViewport_set_hdr\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_hdr\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport rendering will receive benefits from High Dynamic Range algorithm. High Dynamic Range allows the viewport to receive values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it does not store the full range of a floating point number.\n--   \t\t\t__Note:__ Requires @usage@ to be set to @USAGE_3D@ or @USAGE_3D_NO_EFFECTS@, since HDR is not supported for 2D.\nset_hdr :: (Viewport :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_hdr cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_hdr (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_hdr\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Viewport.set_hdr\n\n{-# NOINLINE bindViewport_set_input_as_handled #-}\n\n-- | Stops the input from propagating further down the @SceneTree@.\nbindViewport_set_input_as_handled :: MethodBind\nbindViewport_set_input_as_handled\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_input_as_handled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stops the input from propagating further down the @SceneTree@.\nset_input_as_handled ::\n                       (Viewport :< cls, Object :< cls) => cls -> IO ()\nset_input_as_handled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_input_as_handled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_input_as_handled\" '[] (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_input_as_handled\n\n{-# NOINLINE bindViewport_set_keep_3d_linear #-}\n\n-- | If @true@, the result after 3D rendering will not have a linear to sRGB color conversion applied. This is important when the viewport is used as a render target where the result is used as a texture on a 3D object rendered in another viewport. It is also important if the viewport is used to create data that is not color based (noise, heightmaps, pickmaps, etc.). Do not enable this when the viewport is used as a texture on a 2D object or if the viewport is your final output.\nbindViewport_set_keep_3d_linear :: MethodBind\nbindViewport_set_keep_3d_linear\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_keep_3d_linear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the result after 3D rendering will not have a linear to sRGB color conversion applied. This is important when the viewport is used as a render target where the result is used as a texture on a 3D object rendered in another viewport. It is also important if the viewport is used to create data that is not color based (noise, heightmaps, pickmaps, etc.). Do not enable this when the viewport is used as a texture on a 2D object or if the viewport is your final output.\nset_keep_3d_linear ::\n                     (Viewport :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_keep_3d_linear cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_keep_3d_linear (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_keep_3d_linear\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_keep_3d_linear\n\n{-# NOINLINE bindViewport_set_msaa #-}\n\n-- | The multisample anti-aliasing mode. A higher number results in smoother edges at the cost of significantly worse performance. A value of 4 is best unless targeting very high-end systems.\nbindViewport_set_msaa :: MethodBind\nbindViewport_set_msaa\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_msaa\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The multisample anti-aliasing mode. A higher number results in smoother edges at the cost of significantly worse performance. A value of 4 is best unless targeting very high-end systems.\nset_msaa :: (Viewport :< cls, Object :< cls) => cls -> Int -> IO ()\nset_msaa cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_msaa (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_msaa\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Viewport.set_msaa\n\n{-# NOINLINE bindViewport_set_physics_object_picking #-}\n\n-- | If @true@, the objects rendered by viewport become subjects of mouse picking process.\nbindViewport_set_physics_object_picking :: MethodBind\nbindViewport_set_physics_object_picking\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_physics_object_picking\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the objects rendered by viewport become subjects of mouse picking process.\nset_physics_object_picking ::\n                             (Viewport :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_physics_object_picking cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_physics_object_picking\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_physics_object_picking\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_physics_object_picking\n\n{-# NOINLINE bindViewport_set_shadow_atlas_quadrant_subdiv #-}\n\n-- | Sets the number of subdivisions to use in the specified quadrant. A higher number of subdivisions allows you to have more shadows in the scene at once, but reduces the quality of the shadows. A good practice is to have quadrants with a varying number of subdivisions and to have as few subdivisions as possible.\nbindViewport_set_shadow_atlas_quadrant_subdiv :: MethodBind\nbindViewport_set_shadow_atlas_quadrant_subdiv\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_shadow_atlas_quadrant_subdiv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the number of subdivisions to use in the specified quadrant. A higher number of subdivisions allows you to have more shadows in the scene at once, but reduces the quality of the shadows. A good practice is to have quadrants with a varying number of subdivisions and to have as few subdivisions as possible.\nset_shadow_atlas_quadrant_subdiv ::\n                                   (Viewport :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nset_shadow_atlas_quadrant_subdiv cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindViewport_set_shadow_atlas_quadrant_subdiv\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_shadow_atlas_quadrant_subdiv\"\n           '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_shadow_atlas_quadrant_subdiv\n\n{-# NOINLINE bindViewport_set_shadow_atlas_size #-}\n\n-- | The shadow atlas' resolution (used for omni and spot lights). The value will be rounded up to the nearest power of 2.\n--   \t\t\t__Note:__ If this is set to 0, shadows won't be visible. Since user-created viewports default to a value of 0, this value must be set above 0 manually.\nbindViewport_set_shadow_atlas_size :: MethodBind\nbindViewport_set_shadow_atlas_size\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_shadow_atlas_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The shadow atlas' resolution (used for omni and spot lights). The value will be rounded up to the nearest power of 2.\n--   \t\t\t__Note:__ If this is set to 0, shadows won't be visible. Since user-created viewports default to a value of 0, this value must be set above 0 manually.\nset_shadow_atlas_size ::\n                        (Viewport :< cls, Object :< cls) => cls -> Int -> IO ()\nset_shadow_atlas_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_shadow_atlas_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_shadow_atlas_size\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_shadow_atlas_size\n\n{-# NOINLINE bindViewport_set_size #-}\n\n-- | The width and height of viewport.\nbindViewport_set_size :: MethodBind\nbindViewport_set_size\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The width and height of viewport.\nset_size ::\n           (Viewport :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_size (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_size\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.Viewport.set_size\n\n{-# NOINLINE bindViewport_set_size_override #-}\n\n-- | Sets the size override of the viewport. If the @enable@ parameter is @true@ the override is used, otherwise it uses the default size. If the size parameter is @(-1, -1)@, it won't update the size.\nbindViewport_set_size_override :: MethodBind\nbindViewport_set_size_override\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_size_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the size override of the viewport. If the @enable@ parameter is @true@ the override is used, otherwise it uses the default size. If the size parameter is @(-1, -1)@, it won't update the size.\nset_size_override ::\n                    (Viewport :< cls, Object :< cls) =>\n                    cls -> Bool -> Maybe Vector2 -> Maybe Vector2 -> IO ()\nset_size_override cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1,\n       defaultedVariant VariantVector2 (V2 (-1) (-1)) arg2,\n       defaultedVariant VariantVector2 (V2 0 0) arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_size_override (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_size_override\"\n           '[Bool, Maybe Vector2, Maybe Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_size_override\n\n{-# NOINLINE bindViewport_set_size_override_stretch #-}\n\n-- | If @true@, the size override affects stretch as well.\nbindViewport_set_size_override_stretch :: MethodBind\nbindViewport_set_size_override_stretch\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_size_override_stretch\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the size override affects stretch as well.\nset_size_override_stretch ::\n                            (Viewport :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_size_override_stretch cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_size_override_stretch\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_size_override_stretch\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_size_override_stretch\n\n{-# NOINLINE bindViewport_set_snap_controls_to_pixels #-}\n\n-- | If @true@, the GUI controls on the viewport will lay pixel perfectly.\nbindViewport_set_snap_controls_to_pixels :: MethodBind\nbindViewport_set_snap_controls_to_pixels\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_snap_controls_to_pixels\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the GUI controls on the viewport will lay pixel perfectly.\nset_snap_controls_to_pixels ::\n                              (Viewport :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_snap_controls_to_pixels cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_snap_controls_to_pixels\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_snap_controls_to_pixels\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_snap_controls_to_pixels\n\n{-# NOINLINE bindViewport_set_transparent_background #-}\n\n-- | If @true@, the viewport should render its background as transparent.\nbindViewport_set_transparent_background :: MethodBind\nbindViewport_set_transparent_background\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_transparent_background\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport should render its background as transparent.\nset_transparent_background ::\n                             (Viewport :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_transparent_background cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_transparent_background\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_transparent_background\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_transparent_background\n\n{-# NOINLINE bindViewport_set_update_mode #-}\n\n-- | The update mode when viewport used as a render target.\nbindViewport_set_update_mode :: MethodBind\nbindViewport_set_update_mode\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_update_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The update mode when viewport used as a render target.\nset_update_mode ::\n                  (Viewport :< cls, Object :< cls) => cls -> Int -> IO ()\nset_update_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_update_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_update_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Viewport.set_update_mode\n\n{-# NOINLINE bindViewport_set_usage #-}\n\n-- | The rendering mode of viewport.\nbindViewport_set_usage :: MethodBind\nbindViewport_set_usage\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_usage\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The rendering mode of viewport.\nset_usage ::\n            (Viewport :< cls, Object :< cls) => cls -> Int -> IO ()\nset_usage cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_usage (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_usage\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.Viewport.set_usage\n\n{-# NOINLINE bindViewport_set_use_arvr #-}\n\n-- | If @true@, the viewport will be used in AR/VR process.\nbindViewport_set_use_arvr :: MethodBind\nbindViewport_set_use_arvr\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_arvr\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport will be used in AR/VR process.\nset_use_arvr ::\n               (Viewport :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_arvr cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_use_arvr (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_use_arvr\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Viewport.set_use_arvr\n\n{-# NOINLINE bindViewport_set_use_own_world #-}\n\n-- | If @true@, the viewport will use @World@ defined in @world@ property.\nbindViewport_set_use_own_world :: MethodBind\nbindViewport_set_use_own_world\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_own_world\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport will use @World@ defined in @world@ property.\nset_use_own_world ::\n                    (Viewport :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_own_world cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_use_own_world (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_use_own_world\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_use_own_world\n\n{-# NOINLINE bindViewport_set_use_render_direct_to_screen #-}\n\n-- | If @true@, renders the Viewport directly to the screen instead of to the root viewport. Only available in GLES2. This is a low-level optimization and should not be used in most cases. If used, reading from the Viewport or from @SCREEN_TEXTURE@ becomes unavailable. For more information see @method VisualServer.viewport_set_render_direct_to_screen@.\nbindViewport_set_use_render_direct_to_screen :: MethodBind\nbindViewport_set_use_render_direct_to_screen\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_render_direct_to_screen\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, renders the Viewport directly to the screen instead of to the root viewport. Only available in GLES2. This is a low-level optimization and should not be used in most cases. If used, reading from the Viewport or from @SCREEN_TEXTURE@ becomes unavailable. For more information see @method VisualServer.viewport_set_render_direct_to_screen@.\nset_use_render_direct_to_screen ::\n                                  (Viewport :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_use_render_direct_to_screen cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_use_render_direct_to_screen\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_use_render_direct_to_screen\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_use_render_direct_to_screen\n\n{-# NOINLINE bindViewport_set_vflip #-}\n\n-- | If @true@, the result of rendering will be flipped vertically.\nbindViewport_set_vflip :: MethodBind\nbindViewport_set_vflip\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_vflip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the result of rendering will be flipped vertically.\nset_vflip ::\n            (Viewport :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_vflip cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_vflip (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_vflip\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.Viewport.set_vflip\n\n{-# NOINLINE bindViewport_set_world #-}\n\n-- | The custom @World@ which can be used as 3D environment source.\nbindViewport_set_world :: MethodBind\nbindViewport_set_world\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_world\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The custom @World@ which can be used as 3D environment source.\nset_world ::\n            (Viewport :< cls, Object :< cls) => cls -> World -> IO ()\nset_world cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_world (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_world\" '[World] (IO ()) where\n        nodeMethod = Godot.Core.Viewport.set_world\n\n{-# NOINLINE bindViewport_set_world_2d #-}\n\n-- | The custom @World2D@ which can be used as 2D environment source.\nbindViewport_set_world_2d :: MethodBind\nbindViewport_set_world_2d\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"set_world_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The custom @World2D@ which can be used as 2D environment source.\nset_world_2d ::\n               (Viewport :< cls, Object :< cls) => cls -> World2D -> IO ()\nset_world_2d cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_set_world_2d (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"set_world_2d\" '[World2D] (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.set_world_2d\n\n{-# NOINLINE bindViewport_unhandled_input #-}\n\nbindViewport_unhandled_input :: MethodBind\nbindViewport_unhandled_input\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"unhandled_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nunhandled_input ::\n                  (Viewport :< cls, Object :< cls) => cls -> InputEvent -> IO ()\nunhandled_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_unhandled_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"unhandled_input\" '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.Viewport.unhandled_input\n\n{-# NOINLINE bindViewport_update_worlds #-}\n\n-- | Forces update of the 2D and 3D worlds.\nbindViewport_update_worlds :: MethodBind\nbindViewport_update_worlds\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"update_worlds\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Forces update of the 2D and 3D worlds.\nupdate_worlds :: (Viewport :< cls, Object :< cls) => cls -> IO ()\nupdate_worlds cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_update_worlds (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"update_worlds\" '[] (IO ()) where\n        nodeMethod = Godot.Core.Viewport.update_worlds\n\n{-# NOINLINE bindViewport_use_arvr #-}\n\n-- | If @true@, the viewport will be used in AR/VR process.\nbindViewport_use_arvr :: MethodBind\nbindViewport_use_arvr\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"use_arvr\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport will be used in AR/VR process.\nuse_arvr :: (Viewport :< cls, Object :< cls) => cls -> IO Bool\nuse_arvr cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_use_arvr (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"use_arvr\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.Viewport.use_arvr\n\n{-# NOINLINE bindViewport_warp_mouse #-}\n\n-- | Warps the mouse to a position relative to the viewport.\nbindViewport_warp_mouse :: MethodBind\nbindViewport_warp_mouse\n  = unsafePerformIO $\n      withCString \"Viewport\" $\n        \\ clsNamePtr ->\n          withCString \"warp_mouse\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Warps the mouse to a position relative to the viewport.\nwarp_mouse ::\n             (Viewport :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nwarp_mouse cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewport_warp_mouse (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod Viewport \"warp_mouse\" '[Vector2] (IO ()) where\n        nodeMethod = Godot.Core.Viewport.warp_mouse"
  },
  {
    "path": "src/Godot/Core/ViewportContainer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ViewportContainer\n       (Godot.Core.ViewportContainer._input,\n        Godot.Core.ViewportContainer._unhandled_input,\n        Godot.Core.ViewportContainer.get_stretch_shrink,\n        Godot.Core.ViewportContainer.is_stretch_enabled,\n        Godot.Core.ViewportContainer.set_stretch,\n        Godot.Core.ViewportContainer.set_stretch_shrink)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Container()\n\ninstance NodeProperty ViewportContainer \"stretch\" Bool 'False where\n        nodeProperty\n          = (is_stretch_enabled, wrapDroppingSetter set_stretch, Nothing)\n\ninstance NodeProperty ViewportContainer \"stretch_shrink\" Int 'False\n         where\n        nodeProperty\n          = (get_stretch_shrink, wrapDroppingSetter set_stretch_shrink,\n             Nothing)\n\n{-# NOINLINE bindViewportContainer__input #-}\n\nbindViewportContainer__input :: MethodBind\nbindViewportContainer__input\n  = unsafePerformIO $\n      withCString \"ViewportContainer\" $\n        \\ clsNamePtr ->\n          withCString \"_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_input ::\n         (ViewportContainer :< cls, Object :< cls) =>\n         cls -> InputEvent -> IO ()\n_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewportContainer__input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ViewportContainer \"_input\" '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ViewportContainer._input\n\n{-# NOINLINE bindViewportContainer__unhandled_input #-}\n\nbindViewportContainer__unhandled_input :: MethodBind\nbindViewportContainer__unhandled_input\n  = unsafePerformIO $\n      withCString \"ViewportContainer\" $\n        \\ clsNamePtr ->\n          withCString \"_unhandled_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_unhandled_input ::\n                   (ViewportContainer :< cls, Object :< cls) =>\n                   cls -> InputEvent -> IO ()\n_unhandled_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewportContainer__unhandled_input\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ViewportContainer \"_unhandled_input\"\n           '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ViewportContainer._unhandled_input\n\n{-# NOINLINE bindViewportContainer_get_stretch_shrink #-}\n\n-- | Divides the viewport's effective resolution by this value while preserving its scale. This can be used to speed up rendering.\n--   \t\t\tFor example, a 1280×720 viewport with @stretch_shrink@ set to @2@ will be rendered at 640×360 while occupying the same size in the container.\n--   \t\t\t__Note:__ @stretch@ must be @true@ for this property to work.\nbindViewportContainer_get_stretch_shrink :: MethodBind\nbindViewportContainer_get_stretch_shrink\n  = unsafePerformIO $\n      withCString \"ViewportContainer\" $\n        \\ clsNamePtr ->\n          withCString \"get_stretch_shrink\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Divides the viewport's effective resolution by this value while preserving its scale. This can be used to speed up rendering.\n--   \t\t\tFor example, a 1280×720 viewport with @stretch_shrink@ set to @2@ will be rendered at 640×360 while occupying the same size in the container.\n--   \t\t\t__Note:__ @stretch@ must be @true@ for this property to work.\nget_stretch_shrink ::\n                     (ViewportContainer :< cls, Object :< cls) => cls -> IO Int\nget_stretch_shrink cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewportContainer_get_stretch_shrink\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ViewportContainer \"get_stretch_shrink\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.ViewportContainer.get_stretch_shrink\n\n{-# NOINLINE bindViewportContainer_is_stretch_enabled #-}\n\n-- | If @true@, the viewport will be scaled to the control's size.\nbindViewportContainer_is_stretch_enabled :: MethodBind\nbindViewportContainer_is_stretch_enabled\n  = unsafePerformIO $\n      withCString \"ViewportContainer\" $\n        \\ clsNamePtr ->\n          withCString \"is_stretch_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport will be scaled to the control's size.\nis_stretch_enabled ::\n                     (ViewportContainer :< cls, Object :< cls) => cls -> IO Bool\nis_stretch_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewportContainer_is_stretch_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ViewportContainer \"is_stretch_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.ViewportContainer.is_stretch_enabled\n\n{-# NOINLINE bindViewportContainer_set_stretch #-}\n\n-- | If @true@, the viewport will be scaled to the control's size.\nbindViewportContainer_set_stretch :: MethodBind\nbindViewportContainer_set_stretch\n  = unsafePerformIO $\n      withCString \"ViewportContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_stretch\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport will be scaled to the control's size.\nset_stretch ::\n              (ViewportContainer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_stretch cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewportContainer_set_stretch\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ViewportContainer \"set_stretch\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.ViewportContainer.set_stretch\n\n{-# NOINLINE bindViewportContainer_set_stretch_shrink #-}\n\n-- | Divides the viewport's effective resolution by this value while preserving its scale. This can be used to speed up rendering.\n--   \t\t\tFor example, a 1280×720 viewport with @stretch_shrink@ set to @2@ will be rendered at 640×360 while occupying the same size in the container.\n--   \t\t\t__Note:__ @stretch@ must be @true@ for this property to work.\nbindViewportContainer_set_stretch_shrink :: MethodBind\nbindViewportContainer_set_stretch_shrink\n  = unsafePerformIO $\n      withCString \"ViewportContainer\" $\n        \\ clsNamePtr ->\n          withCString \"set_stretch_shrink\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Divides the viewport's effective resolution by this value while preserving its scale. This can be used to speed up rendering.\n--   \t\t\tFor example, a 1280×720 viewport with @stretch_shrink@ set to @2@ will be rendered at 640×360 while occupying the same size in the container.\n--   \t\t\t__Note:__ @stretch@ must be @true@ for this property to work.\nset_stretch_shrink ::\n                     (ViewportContainer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_stretch_shrink cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindViewportContainer_set_stretch_shrink\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ViewportContainer \"set_stretch_shrink\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ViewportContainer.set_stretch_shrink"
  },
  {
    "path": "src/Godot/Core/ViewportTexture.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.ViewportTexture\n       (Godot.Core.ViewportTexture.get_viewport_path_in_scene,\n        Godot.Core.ViewportTexture.set_viewport_path_in_scene)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Texture()\n\ninstance NodeProperty ViewportTexture \"viewport_path\" NodePath\n           'False\n         where\n        nodeProperty\n          = (get_viewport_path_in_scene,\n             wrapDroppingSetter set_viewport_path_in_scene, Nothing)\n\n{-# NOINLINE bindViewportTexture_get_viewport_path_in_scene #-}\n\n-- | The path to the @Viewport@ node to display. This is relative to the scene root, not to the node which uses the texture.\nbindViewportTexture_get_viewport_path_in_scene :: MethodBind\nbindViewportTexture_get_viewport_path_in_scene\n  = unsafePerformIO $\n      withCString \"ViewportTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_viewport_path_in_scene\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The path to the @Viewport@ node to display. This is relative to the scene root, not to the node which uses the texture.\nget_viewport_path_in_scene ::\n                             (ViewportTexture :< cls, Object :< cls) => cls -> IO NodePath\nget_viewport_path_in_scene cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindViewportTexture_get_viewport_path_in_scene\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ViewportTexture \"get_viewport_path_in_scene\"\n           '[]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.ViewportTexture.get_viewport_path_in_scene\n\n{-# NOINLINE bindViewportTexture_set_viewport_path_in_scene #-}\n\n-- | The path to the @Viewport@ node to display. This is relative to the scene root, not to the node which uses the texture.\nbindViewportTexture_set_viewport_path_in_scene :: MethodBind\nbindViewportTexture_set_viewport_path_in_scene\n  = unsafePerformIO $\n      withCString \"ViewportTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_viewport_path_in_scene\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The path to the @Viewport@ node to display. This is relative to the scene root, not to the node which uses the texture.\nset_viewport_path_in_scene ::\n                             (ViewportTexture :< cls, Object :< cls) => cls -> NodePath -> IO ()\nset_viewport_path_in_scene cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindViewportTexture_set_viewport_path_in_scene\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ViewportTexture \"set_viewport_path_in_scene\"\n           '[NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.ViewportTexture.set_viewport_path_in_scene"
  },
  {
    "path": "src/Godot/Core/VisibilityEnabler.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisibilityEnabler\n       (Godot.Core.VisibilityEnabler._ENABLER_MAX,\n        Godot.Core.VisibilityEnabler._ENABLER_PAUSE_ANIMATIONS,\n        Godot.Core.VisibilityEnabler._ENABLER_FREEZE_BODIES,\n        Godot.Core.VisibilityEnabler._node_removed,\n        Godot.Core.VisibilityEnabler.is_enabler_enabled,\n        Godot.Core.VisibilityEnabler.set_enabler)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisibilityNotifier()\n\n_ENABLER_MAX :: Int\n_ENABLER_MAX = 2\n\n_ENABLER_PAUSE_ANIMATIONS :: Int\n_ENABLER_PAUSE_ANIMATIONS = 0\n\n_ENABLER_FREEZE_BODIES :: Int\n_ENABLER_FREEZE_BODIES = 1\n\ninstance NodeProperty VisibilityEnabler \"freeze_bodies\" Bool 'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 is_enabler_enabled,\n             wrapIndexedSetter 1 set_enabler, Nothing)\n\ninstance NodeProperty VisibilityEnabler \"pause_animations\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 is_enabler_enabled,\n             wrapIndexedSetter 0 set_enabler, Nothing)\n\n{-# NOINLINE bindVisibilityEnabler__node_removed #-}\n\nbindVisibilityEnabler__node_removed :: MethodBind\nbindVisibilityEnabler__node_removed\n  = unsafePerformIO $\n      withCString \"VisibilityEnabler\" $\n        \\ clsNamePtr ->\n          withCString \"_node_removed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_node_removed ::\n                (VisibilityEnabler :< cls, Object :< cls) => cls -> Node -> IO ()\n_node_removed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisibilityEnabler__node_removed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisibilityEnabler \"_node_removed\" '[Node]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisibilityEnabler._node_removed\n\n{-# NOINLINE bindVisibilityEnabler_is_enabler_enabled #-}\n\n-- | Returns whether the enabler identified by given @enum Enabler@ constant is active.\nbindVisibilityEnabler_is_enabler_enabled :: MethodBind\nbindVisibilityEnabler_is_enabler_enabled\n  = unsafePerformIO $\n      withCString \"VisibilityEnabler\" $\n        \\ clsNamePtr ->\n          withCString \"is_enabler_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether the enabler identified by given @enum Enabler@ constant is active.\nis_enabler_enabled ::\n                     (VisibilityEnabler :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_enabler_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisibilityEnabler_is_enabler_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisibilityEnabler \"is_enabler_enabled\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisibilityEnabler.is_enabler_enabled\n\n{-# NOINLINE bindVisibilityEnabler_set_enabler #-}\n\n-- | Sets active state of the enabler identified by given @enum Enabler@ constant.\nbindVisibilityEnabler_set_enabler :: MethodBind\nbindVisibilityEnabler_set_enabler\n  = unsafePerformIO $\n      withCString \"VisibilityEnabler\" $\n        \\ clsNamePtr ->\n          withCString \"set_enabler\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets active state of the enabler identified by given @enum Enabler@ constant.\nset_enabler ::\n              (VisibilityEnabler :< cls, Object :< cls) =>\n              cls -> Int -> Bool -> IO ()\nset_enabler cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisibilityEnabler_set_enabler\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisibilityEnabler \"set_enabler\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisibilityEnabler.set_enabler"
  },
  {
    "path": "src/Godot/Core/VisibilityEnabler2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisibilityEnabler2D\n       (Godot.Core.VisibilityEnabler2D._ENABLER_PARENT_PROCESS,\n        Godot.Core.VisibilityEnabler2D._ENABLER_MAX,\n        Godot.Core.VisibilityEnabler2D._ENABLER_PARENT_PHYSICS_PROCESS,\n        Godot.Core.VisibilityEnabler2D._ENABLER_PAUSE_ANIMATIONS,\n        Godot.Core.VisibilityEnabler2D._ENABLER_PAUSE_ANIMATED_SPRITES,\n        Godot.Core.VisibilityEnabler2D._ENABLER_PAUSE_PARTICLES,\n        Godot.Core.VisibilityEnabler2D._ENABLER_FREEZE_BODIES,\n        Godot.Core.VisibilityEnabler2D._node_removed,\n        Godot.Core.VisibilityEnabler2D.is_enabler_enabled,\n        Godot.Core.VisibilityEnabler2D.set_enabler)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisibilityNotifier2D()\n\n_ENABLER_PARENT_PROCESS :: Int\n_ENABLER_PARENT_PROCESS = 3\n\n_ENABLER_MAX :: Int\n_ENABLER_MAX = 6\n\n_ENABLER_PARENT_PHYSICS_PROCESS :: Int\n_ENABLER_PARENT_PHYSICS_PROCESS = 4\n\n_ENABLER_PAUSE_ANIMATIONS :: Int\n_ENABLER_PAUSE_ANIMATIONS = 0\n\n_ENABLER_PAUSE_ANIMATED_SPRITES :: Int\n_ENABLER_PAUSE_ANIMATED_SPRITES = 5\n\n_ENABLER_PAUSE_PARTICLES :: Int\n_ENABLER_PAUSE_PARTICLES = 2\n\n_ENABLER_FREEZE_BODIES :: Int\n_ENABLER_FREEZE_BODIES = 1\n\ninstance NodeProperty VisibilityEnabler2D \"freeze_bodies\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 1 is_enabler_enabled,\n             wrapIndexedSetter 1 set_enabler, Nothing)\n\ninstance NodeProperty VisibilityEnabler2D \"pause_animated_sprites\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 5 is_enabler_enabled,\n             wrapIndexedSetter 5 set_enabler, Nothing)\n\ninstance NodeProperty VisibilityEnabler2D \"pause_animations\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 0 is_enabler_enabled,\n             wrapIndexedSetter 0 set_enabler, Nothing)\n\ninstance NodeProperty VisibilityEnabler2D \"pause_particles\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 2 is_enabler_enabled,\n             wrapIndexedSetter 2 set_enabler, Nothing)\n\ninstance NodeProperty VisibilityEnabler2D \"physics_process_parent\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 4 is_enabler_enabled,\n             wrapIndexedSetter 4 set_enabler, Nothing)\n\ninstance NodeProperty VisibilityEnabler2D \"process_parent\" Bool\n           'False\n         where\n        nodeProperty\n          = (wrapIndexedGetter 3 is_enabler_enabled,\n             wrapIndexedSetter 3 set_enabler, Nothing)\n\n{-# NOINLINE bindVisibilityEnabler2D__node_removed #-}\n\nbindVisibilityEnabler2D__node_removed :: MethodBind\nbindVisibilityEnabler2D__node_removed\n  = unsafePerformIO $\n      withCString \"VisibilityEnabler2D\" $\n        \\ clsNamePtr ->\n          withCString \"_node_removed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_node_removed ::\n                (VisibilityEnabler2D :< cls, Object :< cls) => cls -> Node -> IO ()\n_node_removed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisibilityEnabler2D__node_removed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisibilityEnabler2D \"_node_removed\" '[Node]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisibilityEnabler2D._node_removed\n\n{-# NOINLINE bindVisibilityEnabler2D_is_enabler_enabled #-}\n\n-- | Returns whether the enabler identified by given @enum Enabler@ constant is active.\nbindVisibilityEnabler2D_is_enabler_enabled :: MethodBind\nbindVisibilityEnabler2D_is_enabler_enabled\n  = unsafePerformIO $\n      withCString \"VisibilityEnabler2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_enabler_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns whether the enabler identified by given @enum Enabler@ constant is active.\nis_enabler_enabled ::\n                     (VisibilityEnabler2D :< cls, Object :< cls) =>\n                     cls -> Int -> IO Bool\nis_enabler_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisibilityEnabler2D_is_enabler_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisibilityEnabler2D \"is_enabler_enabled\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisibilityEnabler2D.is_enabler_enabled\n\n{-# NOINLINE bindVisibilityEnabler2D_set_enabler #-}\n\n-- | Sets active state of the enabler identified by given @enum Enabler@ constant.\nbindVisibilityEnabler2D_set_enabler :: MethodBind\nbindVisibilityEnabler2D_set_enabler\n  = unsafePerformIO $\n      withCString \"VisibilityEnabler2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_enabler\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets active state of the enabler identified by given @enum Enabler@ constant.\nset_enabler ::\n              (VisibilityEnabler2D :< cls, Object :< cls) =>\n              cls -> Int -> Bool -> IO ()\nset_enabler cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisibilityEnabler2D_set_enabler\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisibilityEnabler2D \"set_enabler\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisibilityEnabler2D.set_enabler"
  },
  {
    "path": "src/Godot/Core/VisibilityNotifier.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisibilityNotifier\n       (Godot.Core.VisibilityNotifier.sig_camera_entered,\n        Godot.Core.VisibilityNotifier.sig_camera_exited,\n        Godot.Core.VisibilityNotifier.sig_screen_entered,\n        Godot.Core.VisibilityNotifier.sig_screen_exited,\n        Godot.Core.VisibilityNotifier.get_aabb,\n        Godot.Core.VisibilityNotifier.is_on_screen,\n        Godot.Core.VisibilityNotifier.set_aabb)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\n-- | Emitted when the VisibilityNotifier enters a @Camera@'s view.\nsig_camera_entered ::\n                   Godot.Internal.Dispatch.Signal VisibilityNotifier\nsig_camera_entered\n  = Godot.Internal.Dispatch.Signal \"camera_entered\"\n\ninstance NodeSignal VisibilityNotifier \"camera_entered\" '[Camera]\n\n-- | Emitted when the VisibilityNotifier exits a @Camera@'s view.\nsig_camera_exited ::\n                  Godot.Internal.Dispatch.Signal VisibilityNotifier\nsig_camera_exited = Godot.Internal.Dispatch.Signal \"camera_exited\"\n\ninstance NodeSignal VisibilityNotifier \"camera_exited\" '[Camera]\n\n-- | Emitted when the VisibilityNotifier enters the screen.\nsig_screen_entered ::\n                   Godot.Internal.Dispatch.Signal VisibilityNotifier\nsig_screen_entered\n  = Godot.Internal.Dispatch.Signal \"screen_entered\"\n\ninstance NodeSignal VisibilityNotifier \"screen_entered\" '[]\n\n-- | Emitted when the VisibilityNotifier exits the screen.\nsig_screen_exited ::\n                  Godot.Internal.Dispatch.Signal VisibilityNotifier\nsig_screen_exited = Godot.Internal.Dispatch.Signal \"screen_exited\"\n\ninstance NodeSignal VisibilityNotifier \"screen_exited\" '[]\n\ninstance NodeProperty VisibilityNotifier \"aabb\" Aabb 'False where\n        nodeProperty = (get_aabb, wrapDroppingSetter set_aabb, Nothing)\n\n{-# NOINLINE bindVisibilityNotifier_get_aabb #-}\n\n-- | The VisibilityNotifier's bounding box.\nbindVisibilityNotifier_get_aabb :: MethodBind\nbindVisibilityNotifier_get_aabb\n  = unsafePerformIO $\n      withCString \"VisibilityNotifier\" $\n        \\ clsNamePtr ->\n          withCString \"get_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The VisibilityNotifier's bounding box.\nget_aabb ::\n           (VisibilityNotifier :< cls, Object :< cls) => cls -> IO Aabb\nget_aabb cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisibilityNotifier_get_aabb (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisibilityNotifier \"get_aabb\" '[] (IO Aabb)\n         where\n        nodeMethod = Godot.Core.VisibilityNotifier.get_aabb\n\n{-# NOINLINE bindVisibilityNotifier_is_on_screen #-}\n\n-- | If @true@, the bounding box is on the screen.\n--   \t\t\t\t__Note:__ It takes one frame for the node's visibility to be assessed once added to the scene tree, so this method will return @false@ right after it is instantiated, even if it will be on screen in the draw pass.\nbindVisibilityNotifier_is_on_screen :: MethodBind\nbindVisibilityNotifier_is_on_screen\n  = unsafePerformIO $\n      withCString \"VisibilityNotifier\" $\n        \\ clsNamePtr ->\n          withCString \"is_on_screen\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the bounding box is on the screen.\n--   \t\t\t\t__Note:__ It takes one frame for the node's visibility to be assessed once added to the scene tree, so this method will return @false@ right after it is instantiated, even if it will be on screen in the draw pass.\nis_on_screen ::\n               (VisibilityNotifier :< cls, Object :< cls) => cls -> IO Bool\nis_on_screen cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisibilityNotifier_is_on_screen\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisibilityNotifier \"is_on_screen\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisibilityNotifier.is_on_screen\n\n{-# NOINLINE bindVisibilityNotifier_set_aabb #-}\n\n-- | The VisibilityNotifier's bounding box.\nbindVisibilityNotifier_set_aabb :: MethodBind\nbindVisibilityNotifier_set_aabb\n  = unsafePerformIO $\n      withCString \"VisibilityNotifier\" $\n        \\ clsNamePtr ->\n          withCString \"set_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The VisibilityNotifier's bounding box.\nset_aabb ::\n           (VisibilityNotifier :< cls, Object :< cls) => cls -> Aabb -> IO ()\nset_aabb cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisibilityNotifier_set_aabb (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisibilityNotifier \"set_aabb\" '[Aabb] (IO ())\n         where\n        nodeMethod = Godot.Core.VisibilityNotifier.set_aabb"
  },
  {
    "path": "src/Godot/Core/VisibilityNotifier2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisibilityNotifier2D\n       (Godot.Core.VisibilityNotifier2D.sig_screen_entered,\n        Godot.Core.VisibilityNotifier2D.sig_screen_exited,\n        Godot.Core.VisibilityNotifier2D.sig_viewport_entered,\n        Godot.Core.VisibilityNotifier2D.sig_viewport_exited,\n        Godot.Core.VisibilityNotifier2D.get_rect,\n        Godot.Core.VisibilityNotifier2D.is_on_screen,\n        Godot.Core.VisibilityNotifier2D.set_rect)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\n-- | Emitted when the VisibilityNotifier2D enters the screen.\nsig_screen_entered ::\n                   Godot.Internal.Dispatch.Signal VisibilityNotifier2D\nsig_screen_entered\n  = Godot.Internal.Dispatch.Signal \"screen_entered\"\n\ninstance NodeSignal VisibilityNotifier2D \"screen_entered\" '[]\n\n-- | Emitted when the VisibilityNotifier2D exits the screen.\nsig_screen_exited ::\n                  Godot.Internal.Dispatch.Signal VisibilityNotifier2D\nsig_screen_exited = Godot.Internal.Dispatch.Signal \"screen_exited\"\n\ninstance NodeSignal VisibilityNotifier2D \"screen_exited\" '[]\n\n-- | Emitted when the VisibilityNotifier2D enters a @Viewport@'s view.\nsig_viewport_entered ::\n                     Godot.Internal.Dispatch.Signal VisibilityNotifier2D\nsig_viewport_entered\n  = Godot.Internal.Dispatch.Signal \"viewport_entered\"\n\ninstance NodeSignal VisibilityNotifier2D \"viewport_entered\"\n           '[Viewport]\n\n-- | Emitted when the VisibilityNotifier2D exits a @Viewport@'s view.\nsig_viewport_exited ::\n                    Godot.Internal.Dispatch.Signal VisibilityNotifier2D\nsig_viewport_exited\n  = Godot.Internal.Dispatch.Signal \"viewport_exited\"\n\ninstance NodeSignal VisibilityNotifier2D \"viewport_exited\"\n           '[Viewport]\n\ninstance NodeProperty VisibilityNotifier2D \"rect\" Rect2 'False\n         where\n        nodeProperty = (get_rect, wrapDroppingSetter set_rect, Nothing)\n\n{-# NOINLINE bindVisibilityNotifier2D_get_rect #-}\n\n-- | The VisibilityNotifier2D's bounding rectangle.\nbindVisibilityNotifier2D_get_rect :: MethodBind\nbindVisibilityNotifier2D_get_rect\n  = unsafePerformIO $\n      withCString \"VisibilityNotifier2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The VisibilityNotifier2D's bounding rectangle.\nget_rect ::\n           (VisibilityNotifier2D :< cls, Object :< cls) => cls -> IO Rect2\nget_rect cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisibilityNotifier2D_get_rect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisibilityNotifier2D \"get_rect\" '[] (IO Rect2)\n         where\n        nodeMethod = Godot.Core.VisibilityNotifier2D.get_rect\n\n{-# NOINLINE bindVisibilityNotifier2D_is_on_screen #-}\n\n-- | If @true@, the bounding rectangle is on the screen.\n--   \t\t\t\t__Note:__ It takes one frame for the node's visibility to be assessed once added to the scene tree, so this method will return @false@ right after it is instantiated, even if it will be on screen in the draw pass.\nbindVisibilityNotifier2D_is_on_screen :: MethodBind\nbindVisibilityNotifier2D_is_on_screen\n  = unsafePerformIO $\n      withCString \"VisibilityNotifier2D\" $\n        \\ clsNamePtr ->\n          withCString \"is_on_screen\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the bounding rectangle is on the screen.\n--   \t\t\t\t__Note:__ It takes one frame for the node's visibility to be assessed once added to the scene tree, so this method will return @false@ right after it is instantiated, even if it will be on screen in the draw pass.\nis_on_screen ::\n               (VisibilityNotifier2D :< cls, Object :< cls) => cls -> IO Bool\nis_on_screen cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisibilityNotifier2D_is_on_screen\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisibilityNotifier2D \"is_on_screen\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisibilityNotifier2D.is_on_screen\n\n{-# NOINLINE bindVisibilityNotifier2D_set_rect #-}\n\n-- | The VisibilityNotifier2D's bounding rectangle.\nbindVisibilityNotifier2D_set_rect :: MethodBind\nbindVisibilityNotifier2D_set_rect\n  = unsafePerformIO $\n      withCString \"VisibilityNotifier2D\" $\n        \\ clsNamePtr ->\n          withCString \"set_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The VisibilityNotifier2D's bounding rectangle.\nset_rect ::\n           (VisibilityNotifier2D :< cls, Object :< cls) =>\n           cls -> Rect2 -> IO ()\nset_rect cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisibilityNotifier2D_set_rect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisibilityNotifier2D \"set_rect\" '[Rect2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisibilityNotifier2D.set_rect"
  },
  {
    "path": "src/Godot/Core/VisualInstance.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualInstance\n       (Godot.Core.VisualInstance._get_visual_instance_rid,\n        Godot.Core.VisualInstance.get_aabb,\n        Godot.Core.VisualInstance.get_base,\n        Godot.Core.VisualInstance.get_instance,\n        Godot.Core.VisualInstance.get_layer_mask,\n        Godot.Core.VisualInstance.get_layer_mask_bit,\n        Godot.Core.VisualInstance.get_transformed_aabb,\n        Godot.Core.VisualInstance.set_base,\n        Godot.Core.VisualInstance.set_layer_mask,\n        Godot.Core.VisualInstance.set_layer_mask_bit)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Spatial()\n\ninstance NodeProperty VisualInstance \"layers\" Int 'False where\n        nodeProperty\n          = (get_layer_mask, wrapDroppingSetter set_layer_mask, Nothing)\n\n{-# NOINLINE bindVisualInstance__get_visual_instance_rid #-}\n\nbindVisualInstance__get_visual_instance_rid :: MethodBind\nbindVisualInstance__get_visual_instance_rid\n  = unsafePerformIO $\n      withCString \"VisualInstance\" $\n        \\ clsNamePtr ->\n          withCString \"_get_visual_instance_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_visual_instance_rid ::\n                           (VisualInstance :< cls, Object :< cls) => cls -> IO Rid\n_get_visual_instance_rid cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualInstance__get_visual_instance_rid\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualInstance \"_get_visual_instance_rid\" '[]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualInstance._get_visual_instance_rid\n\n{-# NOINLINE bindVisualInstance_get_aabb #-}\n\n-- | Returns the @AABB@ (also known as the bounding box) for this @VisualInstance@. See also @method get_transformed_aabb@.\nbindVisualInstance_get_aabb :: MethodBind\nbindVisualInstance_get_aabb\n  = unsafePerformIO $\n      withCString \"VisualInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @AABB@ (also known as the bounding box) for this @VisualInstance@. See also @method get_transformed_aabb@.\nget_aabb ::\n           (VisualInstance :< cls, Object :< cls) => cls -> IO Aabb\nget_aabb cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualInstance_get_aabb (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualInstance \"get_aabb\" '[] (IO Aabb) where\n        nodeMethod = Godot.Core.VisualInstance.get_aabb\n\n{-# NOINLINE bindVisualInstance_get_base #-}\n\n-- | Returns the RID of the resource associated with this @VisualInstance@. For example, if the Node is a @MeshInstance@, this will return the RID of the associated @Mesh@.\nbindVisualInstance_get_base :: MethodBind\nbindVisualInstance_get_base\n  = unsafePerformIO $\n      withCString \"VisualInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_base\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the RID of the resource associated with this @VisualInstance@. For example, if the Node is a @MeshInstance@, this will return the RID of the associated @Mesh@.\nget_base :: (VisualInstance :< cls, Object :< cls) => cls -> IO Rid\nget_base cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualInstance_get_base (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualInstance \"get_base\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.VisualInstance.get_base\n\n{-# NOINLINE bindVisualInstance_get_instance #-}\n\n-- | Returns the RID of this instance. This RID is the same as the RID returned by @method VisualServer.instance_create@. This RID is needed if you want to call @VisualServer@ functions directly on this @VisualInstance@.\nbindVisualInstance_get_instance :: MethodBind\nbindVisualInstance_get_instance\n  = unsafePerformIO $\n      withCString \"VisualInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_instance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the RID of this instance. This RID is the same as the RID returned by @method VisualServer.instance_create@. This RID is needed if you want to call @VisualServer@ functions directly on this @VisualInstance@.\nget_instance ::\n               (VisualInstance :< cls, Object :< cls) => cls -> IO Rid\nget_instance cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualInstance_get_instance (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualInstance \"get_instance\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualInstance.get_instance\n\n{-# NOINLINE bindVisualInstance_get_layer_mask #-}\n\n-- | The render layer(s) this @VisualInstance@ is drawn on.\n--   \t\t\tThis object will only be visible for @Camera@s whose cull mask includes the render object this @VisualInstance@ is set to.\nbindVisualInstance_get_layer_mask :: MethodBind\nbindVisualInstance_get_layer_mask\n  = unsafePerformIO $\n      withCString \"VisualInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_layer_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The render layer(s) this @VisualInstance@ is drawn on.\n--   \t\t\tThis object will only be visible for @Camera@s whose cull mask includes the render object this @VisualInstance@ is set to.\nget_layer_mask ::\n                 (VisualInstance :< cls, Object :< cls) => cls -> IO Int\nget_layer_mask cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualInstance_get_layer_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualInstance \"get_layer_mask\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualInstance.get_layer_mask\n\n{-# NOINLINE bindVisualInstance_get_layer_mask_bit #-}\n\n-- | Returns @true@ when the specified layer is enabled in @layers@ and @false@ otherwise.\nbindVisualInstance_get_layer_mask_bit :: MethodBind\nbindVisualInstance_get_layer_mask_bit\n  = unsafePerformIO $\n      withCString \"VisualInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_layer_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ when the specified layer is enabled in @layers@ and @false@ otherwise.\nget_layer_mask_bit ::\n                     (VisualInstance :< cls, Object :< cls) => cls -> Int -> IO Bool\nget_layer_mask_bit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualInstance_get_layer_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualInstance \"get_layer_mask_bit\" '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualInstance.get_layer_mask_bit\n\n{-# NOINLINE bindVisualInstance_get_transformed_aabb #-}\n\n-- | Returns the transformed @AABB@ (also known as the bounding box) for this @VisualInstance@.\n--   \t\t\t\tTransformed in this case means the @AABB@ plus the position, rotation, and scale of the @Spatial@'s @Transform@. See also @method get_aabb@.\nbindVisualInstance_get_transformed_aabb :: MethodBind\nbindVisualInstance_get_transformed_aabb\n  = unsafePerformIO $\n      withCString \"VisualInstance\" $\n        \\ clsNamePtr ->\n          withCString \"get_transformed_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the transformed @AABB@ (also known as the bounding box) for this @VisualInstance@.\n--   \t\t\t\tTransformed in this case means the @AABB@ plus the position, rotation, and scale of the @Spatial@'s @Transform@. See also @method get_aabb@.\nget_transformed_aabb ::\n                       (VisualInstance :< cls, Object :< cls) => cls -> IO Aabb\nget_transformed_aabb cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualInstance_get_transformed_aabb\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualInstance \"get_transformed_aabb\" '[]\n           (IO Aabb)\n         where\n        nodeMethod = Godot.Core.VisualInstance.get_transformed_aabb\n\n{-# NOINLINE bindVisualInstance_set_base #-}\n\n-- | Sets the resource that is instantiated by this @VisualInstance@, which changes how the engine handles the @VisualInstance@ under the hood. Equivalent to @method VisualServer.instance_set_base@.\nbindVisualInstance_set_base :: MethodBind\nbindVisualInstance_set_base\n  = unsafePerformIO $\n      withCString \"VisualInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_base\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the resource that is instantiated by this @VisualInstance@, which changes how the engine handles the @VisualInstance@ under the hood. Equivalent to @method VisualServer.instance_set_base@.\nset_base ::\n           (VisualInstance :< cls, Object :< cls) => cls -> Rid -> IO ()\nset_base cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualInstance_set_base (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualInstance \"set_base\" '[Rid] (IO ()) where\n        nodeMethod = Godot.Core.VisualInstance.set_base\n\n{-# NOINLINE bindVisualInstance_set_layer_mask #-}\n\n-- | The render layer(s) this @VisualInstance@ is drawn on.\n--   \t\t\tThis object will only be visible for @Camera@s whose cull mask includes the render object this @VisualInstance@ is set to.\nbindVisualInstance_set_layer_mask :: MethodBind\nbindVisualInstance_set_layer_mask\n  = unsafePerformIO $\n      withCString \"VisualInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_layer_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The render layer(s) this @VisualInstance@ is drawn on.\n--   \t\t\tThis object will only be visible for @Camera@s whose cull mask includes the render object this @VisualInstance@ is set to.\nset_layer_mask ::\n                 (VisualInstance :< cls, Object :< cls) => cls -> Int -> IO ()\nset_layer_mask cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualInstance_set_layer_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualInstance \"set_layer_mask\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.VisualInstance.set_layer_mask\n\n{-# NOINLINE bindVisualInstance_set_layer_mask_bit #-}\n\n-- | Enables a particular layer in @layers@.\nbindVisualInstance_set_layer_mask_bit :: MethodBind\nbindVisualInstance_set_layer_mask_bit\n  = unsafePerformIO $\n      withCString \"VisualInstance\" $\n        \\ clsNamePtr ->\n          withCString \"set_layer_mask_bit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables a particular layer in @layers@.\nset_layer_mask_bit ::\n                     (VisualInstance :< cls, Object :< cls) =>\n                     cls -> Int -> Bool -> IO ()\nset_layer_mask_bit cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualInstance_set_layer_mask_bit\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualInstance \"set_layer_mask_bit\"\n           '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualInstance.set_layer_mask_bit"
  },
  {
    "path": "src/Godot/Core/VisualScript.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScript\n       (Godot.Core.VisualScript.sig_node_ports_changed,\n        Godot.Core.VisualScript._get_data,\n        Godot.Core.VisualScript._node_ports_changed,\n        Godot.Core.VisualScript._set_data,\n        Godot.Core.VisualScript.add_custom_signal,\n        Godot.Core.VisualScript.add_function,\n        Godot.Core.VisualScript.add_node,\n        Godot.Core.VisualScript.add_variable,\n        Godot.Core.VisualScript.custom_signal_add_argument,\n        Godot.Core.VisualScript.custom_signal_get_argument_count,\n        Godot.Core.VisualScript.custom_signal_get_argument_name,\n        Godot.Core.VisualScript.custom_signal_get_argument_type,\n        Godot.Core.VisualScript.custom_signal_remove_argument,\n        Godot.Core.VisualScript.custom_signal_set_argument_name,\n        Godot.Core.VisualScript.custom_signal_set_argument_type,\n        Godot.Core.VisualScript.custom_signal_swap_argument,\n        Godot.Core.VisualScript.data_connect,\n        Godot.Core.VisualScript.data_disconnect,\n        Godot.Core.VisualScript.get_function_node_id,\n        Godot.Core.VisualScript.get_function_scroll,\n        Godot.Core.VisualScript.get_node,\n        Godot.Core.VisualScript.get_node_position,\n        Godot.Core.VisualScript.get_variable_default_value,\n        Godot.Core.VisualScript.get_variable_export,\n        Godot.Core.VisualScript.get_variable_info,\n        Godot.Core.VisualScript.has_custom_signal,\n        Godot.Core.VisualScript.has_data_connection,\n        Godot.Core.VisualScript.has_function,\n        Godot.Core.VisualScript.has_node,\n        Godot.Core.VisualScript.has_sequence_connection,\n        Godot.Core.VisualScript.has_variable,\n        Godot.Core.VisualScript.remove_custom_signal,\n        Godot.Core.VisualScript.remove_function,\n        Godot.Core.VisualScript.remove_node,\n        Godot.Core.VisualScript.remove_variable,\n        Godot.Core.VisualScript.rename_custom_signal,\n        Godot.Core.VisualScript.rename_function,\n        Godot.Core.VisualScript.rename_variable,\n        Godot.Core.VisualScript.sequence_connect,\n        Godot.Core.VisualScript.sequence_disconnect,\n        Godot.Core.VisualScript.set_function_scroll,\n        Godot.Core.VisualScript.set_instance_base_type,\n        Godot.Core.VisualScript.set_node_position,\n        Godot.Core.VisualScript.set_variable_default_value,\n        Godot.Core.VisualScript.set_variable_export,\n        Godot.Core.VisualScript.set_variable_info)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Script()\n\nsig_node_ports_changed ::\n                       Godot.Internal.Dispatch.Signal VisualScript\nsig_node_ports_changed\n  = Godot.Internal.Dispatch.Signal \"node_ports_changed\"\n\ninstance NodeSignal VisualScript \"node_ports_changed\"\n           '[GodotString, Int]\n\ninstance NodeProperty VisualScript \"data\" Dictionary 'False where\n        nodeProperty = (_get_data, wrapDroppingSetter _set_data, Nothing)\n\n{-# NOINLINE bindVisualScript__get_data #-}\n\nbindVisualScript__get_data :: MethodBind\nbindVisualScript__get_data\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"_get_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_data ::\n            (VisualScript :< cls, Object :< cls) => cls -> IO Dictionary\n_get_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript__get_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"_get_data\" '[] (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.VisualScript._get_data\n\n{-# NOINLINE bindVisualScript__node_ports_changed #-}\n\nbindVisualScript__node_ports_changed :: MethodBind\nbindVisualScript__node_ports_changed\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"_node_ports_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_node_ports_changed ::\n                      (VisualScript :< cls, Object :< cls) => cls -> Int -> IO ()\n_node_ports_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript__node_ports_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"_node_ports_changed\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript._node_ports_changed\n\n{-# NOINLINE bindVisualScript__set_data #-}\n\nbindVisualScript__set_data :: MethodBind\nbindVisualScript__set_data\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"_set_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_data ::\n            (VisualScript :< cls, Object :< cls) => cls -> Dictionary -> IO ()\n_set_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript__set_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"_set_data\" '[Dictionary] (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript._set_data\n\n{-# NOINLINE bindVisualScript_add_custom_signal #-}\n\nbindVisualScript_add_custom_signal :: MethodBind\nbindVisualScript_add_custom_signal\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"add_custom_signal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_custom_signal ::\n                    (VisualScript :< cls, Object :< cls) => cls -> GodotString -> IO ()\nadd_custom_signal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_add_custom_signal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"add_custom_signal\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.add_custom_signal\n\n{-# NOINLINE bindVisualScript_add_function #-}\n\nbindVisualScript_add_function :: MethodBind\nbindVisualScript_add_function\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"add_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_function ::\n               (VisualScript :< cls, Object :< cls) => cls -> GodotString -> IO ()\nadd_function cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_add_function (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"add_function\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.add_function\n\n{-# NOINLINE bindVisualScript_add_node #-}\n\nbindVisualScript_add_node :: MethodBind\nbindVisualScript_add_node\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"add_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_node ::\n           (VisualScript :< cls, Object :< cls) =>\n           cls ->\n             GodotString -> Int -> VisualScriptNode -> Maybe Vector2 -> IO ()\nadd_node cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       defaultedVariant VariantVector2 (V2 0 0) arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_add_node (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"add_node\"\n           '[GodotString, Int, VisualScriptNode, Maybe Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.add_node\n\n{-# NOINLINE bindVisualScript_add_variable #-}\n\nbindVisualScript_add_variable :: MethodBind\nbindVisualScript_add_variable\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"add_variable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_variable ::\n               (VisualScript :< cls, Object :< cls) =>\n               cls -> GodotString -> Maybe GodotVariant -> Maybe Bool -> IO ()\nadd_variable cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe VariantNil toVariant arg2,\n       maybe (VariantBool False) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_add_variable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"add_variable\"\n           '[GodotString, Maybe GodotVariant, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.add_variable\n\n{-# NOINLINE bindVisualScript_custom_signal_add_argument #-}\n\nbindVisualScript_custom_signal_add_argument :: MethodBind\nbindVisualScript_custom_signal_add_argument\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"custom_signal_add_argument\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncustom_signal_add_argument ::\n                             (VisualScript :< cls, Object :< cls) =>\n                             cls -> GodotString -> Int -> GodotString -> Maybe Int -> IO ()\ncustom_signal_add_argument cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantInt (-1)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_custom_signal_add_argument\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"custom_signal_add_argument\"\n           '[GodotString, Int, GodotString, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.custom_signal_add_argument\n\n{-# NOINLINE bindVisualScript_custom_signal_get_argument_count #-}\n\nbindVisualScript_custom_signal_get_argument_count :: MethodBind\nbindVisualScript_custom_signal_get_argument_count\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"custom_signal_get_argument_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncustom_signal_get_argument_count ::\n                                   (VisualScript :< cls, Object :< cls) =>\n                                   cls -> GodotString -> IO Int\ncustom_signal_get_argument_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScript_custom_signal_get_argument_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"custom_signal_get_argument_count\"\n           '[GodotString]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualScript.custom_signal_get_argument_count\n\n{-# NOINLINE bindVisualScript_custom_signal_get_argument_name #-}\n\nbindVisualScript_custom_signal_get_argument_name :: MethodBind\nbindVisualScript_custom_signal_get_argument_name\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"custom_signal_get_argument_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncustom_signal_get_argument_name ::\n                                  (VisualScript :< cls, Object :< cls) =>\n                                  cls -> GodotString -> Int -> IO GodotString\ncustom_signal_get_argument_name cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScript_custom_signal_get_argument_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"custom_signal_get_argument_name\"\n           '[GodotString, Int]\n           (IO GodotString)\n         where\n        nodeMethod\n          = Godot.Core.VisualScript.custom_signal_get_argument_name\n\n{-# NOINLINE bindVisualScript_custom_signal_get_argument_type #-}\n\nbindVisualScript_custom_signal_get_argument_type :: MethodBind\nbindVisualScript_custom_signal_get_argument_type\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"custom_signal_get_argument_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncustom_signal_get_argument_type ::\n                                  (VisualScript :< cls, Object :< cls) =>\n                                  cls -> GodotString -> Int -> IO Int\ncustom_signal_get_argument_type cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScript_custom_signal_get_argument_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"custom_signal_get_argument_type\"\n           '[GodotString, Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualScript.custom_signal_get_argument_type\n\n{-# NOINLINE bindVisualScript_custom_signal_remove_argument #-}\n\nbindVisualScript_custom_signal_remove_argument :: MethodBind\nbindVisualScript_custom_signal_remove_argument\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"custom_signal_remove_argument\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncustom_signal_remove_argument ::\n                                (VisualScript :< cls, Object :< cls) =>\n                                cls -> GodotString -> Int -> IO ()\ncustom_signal_remove_argument cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScript_custom_signal_remove_argument\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"custom_signal_remove_argument\"\n           '[GodotString, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.custom_signal_remove_argument\n\n{-# NOINLINE bindVisualScript_custom_signal_set_argument_name #-}\n\nbindVisualScript_custom_signal_set_argument_name :: MethodBind\nbindVisualScript_custom_signal_set_argument_name\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"custom_signal_set_argument_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncustom_signal_set_argument_name ::\n                                  (VisualScript :< cls, Object :< cls) =>\n                                  cls -> GodotString -> Int -> GodotString -> IO ()\ncustom_signal_set_argument_name cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScript_custom_signal_set_argument_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"custom_signal_set_argument_name\"\n           '[GodotString, Int, GodotString]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualScript.custom_signal_set_argument_name\n\n{-# NOINLINE bindVisualScript_custom_signal_set_argument_type #-}\n\nbindVisualScript_custom_signal_set_argument_type :: MethodBind\nbindVisualScript_custom_signal_set_argument_type\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"custom_signal_set_argument_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncustom_signal_set_argument_type ::\n                                  (VisualScript :< cls, Object :< cls) =>\n                                  cls -> GodotString -> Int -> Int -> IO ()\ncustom_signal_set_argument_type cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScript_custom_signal_set_argument_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"custom_signal_set_argument_type\"\n           '[GodotString, Int, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualScript.custom_signal_set_argument_type\n\n{-# NOINLINE bindVisualScript_custom_signal_swap_argument #-}\n\nbindVisualScript_custom_signal_swap_argument :: MethodBind\nbindVisualScript_custom_signal_swap_argument\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"custom_signal_swap_argument\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncustom_signal_swap_argument ::\n                              (VisualScript :< cls, Object :< cls) =>\n                              cls -> GodotString -> Int -> Int -> IO ()\ncustom_signal_swap_argument cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_custom_signal_swap_argument\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"custom_signal_swap_argument\"\n           '[GodotString, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.custom_signal_swap_argument\n\n{-# NOINLINE bindVisualScript_data_connect #-}\n\nbindVisualScript_data_connect :: MethodBind\nbindVisualScript_data_connect\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"data_connect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ndata_connect ::\n               (VisualScript :< cls, Object :< cls) =>\n               cls -> GodotString -> Int -> Int -> Int -> Int -> IO ()\ndata_connect cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_data_connect (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"data_connect\"\n           '[GodotString, Int, Int, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.data_connect\n\n{-# NOINLINE bindVisualScript_data_disconnect #-}\n\nbindVisualScript_data_disconnect :: MethodBind\nbindVisualScript_data_disconnect\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"data_disconnect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ndata_disconnect ::\n                  (VisualScript :< cls, Object :< cls) =>\n                  cls -> GodotString -> Int -> Int -> Int -> Int -> IO ()\ndata_disconnect cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_data_disconnect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"data_disconnect\"\n           '[GodotString, Int, Int, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.data_disconnect\n\n{-# NOINLINE bindVisualScript_get_function_node_id #-}\n\nbindVisualScript_get_function_node_id :: MethodBind\nbindVisualScript_get_function_node_id\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"get_function_node_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_function_node_id ::\n                       (VisualScript :< cls, Object :< cls) =>\n                       cls -> GodotString -> IO Int\nget_function_node_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_get_function_node_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"get_function_node_id\"\n           '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScript.get_function_node_id\n\n{-# NOINLINE bindVisualScript_get_function_scroll #-}\n\nbindVisualScript_get_function_scroll :: MethodBind\nbindVisualScript_get_function_scroll\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"get_function_scroll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_function_scroll ::\n                      (VisualScript :< cls, Object :< cls) =>\n                      cls -> GodotString -> IO Vector2\nget_function_scroll cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_get_function_scroll\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"get_function_scroll\"\n           '[GodotString]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.VisualScript.get_function_scroll\n\n{-# NOINLINE bindVisualScript_get_node #-}\n\nbindVisualScript_get_node :: MethodBind\nbindVisualScript_get_node\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"get_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_node ::\n           (VisualScript :< cls, Object :< cls) =>\n           cls -> GodotString -> Int -> IO VisualScriptNode\nget_node cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_get_node (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"get_node\" '[GodotString, Int]\n           (IO VisualScriptNode)\n         where\n        nodeMethod = Godot.Core.VisualScript.get_node\n\n{-# NOINLINE bindVisualScript_get_node_position #-}\n\nbindVisualScript_get_node_position :: MethodBind\nbindVisualScript_get_node_position\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_node_position ::\n                    (VisualScript :< cls, Object :< cls) =>\n                    cls -> GodotString -> Int -> IO Vector2\nget_node_position cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_get_node_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"get_node_position\"\n           '[GodotString, Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.VisualScript.get_node_position\n\n{-# NOINLINE bindVisualScript_get_variable_default_value #-}\n\nbindVisualScript_get_variable_default_value :: MethodBind\nbindVisualScript_get_variable_default_value\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"get_variable_default_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_variable_default_value ::\n                             (VisualScript :< cls, Object :< cls) =>\n                             cls -> GodotString -> IO GodotVariant\nget_variable_default_value cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_get_variable_default_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"get_variable_default_value\"\n           '[GodotString]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.VisualScript.get_variable_default_value\n\n{-# NOINLINE bindVisualScript_get_variable_export #-}\n\nbindVisualScript_get_variable_export :: MethodBind\nbindVisualScript_get_variable_export\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"get_variable_export\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_variable_export ::\n                      (VisualScript :< cls, Object :< cls) =>\n                      cls -> GodotString -> IO Bool\nget_variable_export cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_get_variable_export\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"get_variable_export\"\n           '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualScript.get_variable_export\n\n{-# NOINLINE bindVisualScript_get_variable_info #-}\n\nbindVisualScript_get_variable_info :: MethodBind\nbindVisualScript_get_variable_info\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"get_variable_info\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_variable_info ::\n                    (VisualScript :< cls, Object :< cls) =>\n                    cls -> GodotString -> IO Dictionary\nget_variable_info cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_get_variable_info\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"get_variable_info\" '[GodotString]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.VisualScript.get_variable_info\n\n{-# NOINLINE bindVisualScript_has_custom_signal #-}\n\nbindVisualScript_has_custom_signal :: MethodBind\nbindVisualScript_has_custom_signal\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"has_custom_signal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nhas_custom_signal ::\n                    (VisualScript :< cls, Object :< cls) =>\n                    cls -> GodotString -> IO Bool\nhas_custom_signal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_has_custom_signal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"has_custom_signal\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualScript.has_custom_signal\n\n{-# NOINLINE bindVisualScript_has_data_connection #-}\n\nbindVisualScript_has_data_connection :: MethodBind\nbindVisualScript_has_data_connection\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"has_data_connection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nhas_data_connection ::\n                      (VisualScript :< cls, Object :< cls) =>\n                      cls -> GodotString -> Int -> Int -> Int -> Int -> IO Bool\nhas_data_connection cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_has_data_connection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"has_data_connection\"\n           '[GodotString, Int, Int, Int, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualScript.has_data_connection\n\n{-# NOINLINE bindVisualScript_has_function #-}\n\nbindVisualScript_has_function :: MethodBind\nbindVisualScript_has_function\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"has_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nhas_function ::\n               (VisualScript :< cls, Object :< cls) =>\n               cls -> GodotString -> IO Bool\nhas_function cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_has_function (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"has_function\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualScript.has_function\n\n{-# NOINLINE bindVisualScript_has_node #-}\n\nbindVisualScript_has_node :: MethodBind\nbindVisualScript_has_node\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"has_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nhas_node ::\n           (VisualScript :< cls, Object :< cls) =>\n           cls -> GodotString -> Int -> IO Bool\nhas_node cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_has_node (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"has_node\" '[GodotString, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualScript.has_node\n\n{-# NOINLINE bindVisualScript_has_sequence_connection #-}\n\nbindVisualScript_has_sequence_connection :: MethodBind\nbindVisualScript_has_sequence_connection\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"has_sequence_connection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nhas_sequence_connection ::\n                          (VisualScript :< cls, Object :< cls) =>\n                          cls -> GodotString -> Int -> Int -> Int -> IO Bool\nhas_sequence_connection cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_has_sequence_connection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"has_sequence_connection\"\n           '[GodotString, Int, Int, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualScript.has_sequence_connection\n\n{-# NOINLINE bindVisualScript_has_variable #-}\n\nbindVisualScript_has_variable :: MethodBind\nbindVisualScript_has_variable\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"has_variable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nhas_variable ::\n               (VisualScript :< cls, Object :< cls) =>\n               cls -> GodotString -> IO Bool\nhas_variable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_has_variable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"has_variable\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualScript.has_variable\n\n{-# NOINLINE bindVisualScript_remove_custom_signal #-}\n\nbindVisualScript_remove_custom_signal :: MethodBind\nbindVisualScript_remove_custom_signal\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"remove_custom_signal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nremove_custom_signal ::\n                       (VisualScript :< cls, Object :< cls) => cls -> GodotString -> IO ()\nremove_custom_signal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_remove_custom_signal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"remove_custom_signal\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.remove_custom_signal\n\n{-# NOINLINE bindVisualScript_remove_function #-}\n\nbindVisualScript_remove_function :: MethodBind\nbindVisualScript_remove_function\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"remove_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nremove_function ::\n                  (VisualScript :< cls, Object :< cls) => cls -> GodotString -> IO ()\nremove_function cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_remove_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"remove_function\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.remove_function\n\n{-# NOINLINE bindVisualScript_remove_node #-}\n\nbindVisualScript_remove_node :: MethodBind\nbindVisualScript_remove_node\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"remove_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nremove_node ::\n              (VisualScript :< cls, Object :< cls) =>\n              cls -> GodotString -> Int -> IO ()\nremove_node cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_remove_node (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"remove_node\" '[GodotString, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.remove_node\n\n{-# NOINLINE bindVisualScript_remove_variable #-}\n\nbindVisualScript_remove_variable :: MethodBind\nbindVisualScript_remove_variable\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"remove_variable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nremove_variable ::\n                  (VisualScript :< cls, Object :< cls) => cls -> GodotString -> IO ()\nremove_variable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_remove_variable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"remove_variable\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.remove_variable\n\n{-# NOINLINE bindVisualScript_rename_custom_signal #-}\n\nbindVisualScript_rename_custom_signal :: MethodBind\nbindVisualScript_rename_custom_signal\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"rename_custom_signal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nrename_custom_signal ::\n                       (VisualScript :< cls, Object :< cls) =>\n                       cls -> GodotString -> GodotString -> IO ()\nrename_custom_signal cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_rename_custom_signal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"rename_custom_signal\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.rename_custom_signal\n\n{-# NOINLINE bindVisualScript_rename_function #-}\n\nbindVisualScript_rename_function :: MethodBind\nbindVisualScript_rename_function\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"rename_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nrename_function ::\n                  (VisualScript :< cls, Object :< cls) =>\n                  cls -> GodotString -> GodotString -> IO ()\nrename_function cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_rename_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"rename_function\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.rename_function\n\n{-# NOINLINE bindVisualScript_rename_variable #-}\n\nbindVisualScript_rename_variable :: MethodBind\nbindVisualScript_rename_variable\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"rename_variable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nrename_variable ::\n                  (VisualScript :< cls, Object :< cls) =>\n                  cls -> GodotString -> GodotString -> IO ()\nrename_variable cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_rename_variable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"rename_variable\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.rename_variable\n\n{-# NOINLINE bindVisualScript_sequence_connect #-}\n\nbindVisualScript_sequence_connect :: MethodBind\nbindVisualScript_sequence_connect\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"sequence_connect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nsequence_connect ::\n                   (VisualScript :< cls, Object :< cls) =>\n                   cls -> GodotString -> Int -> Int -> Int -> IO ()\nsequence_connect cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_sequence_connect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"sequence_connect\"\n           '[GodotString, Int, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.sequence_connect\n\n{-# NOINLINE bindVisualScript_sequence_disconnect #-}\n\nbindVisualScript_sequence_disconnect :: MethodBind\nbindVisualScript_sequence_disconnect\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"sequence_disconnect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nsequence_disconnect ::\n                      (VisualScript :< cls, Object :< cls) =>\n                      cls -> GodotString -> Int -> Int -> Int -> IO ()\nsequence_disconnect cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_sequence_disconnect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"sequence_disconnect\"\n           '[GodotString, Int, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.sequence_disconnect\n\n{-# NOINLINE bindVisualScript_set_function_scroll #-}\n\nbindVisualScript_set_function_scroll :: MethodBind\nbindVisualScript_set_function_scroll\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"set_function_scroll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_function_scroll ::\n                      (VisualScript :< cls, Object :< cls) =>\n                      cls -> GodotString -> Vector2 -> IO ()\nset_function_scroll cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_set_function_scroll\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"set_function_scroll\"\n           '[GodotString, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.set_function_scroll\n\n{-# NOINLINE bindVisualScript_set_instance_base_type #-}\n\nbindVisualScript_set_instance_base_type :: MethodBind\nbindVisualScript_set_instance_base_type\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"set_instance_base_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_instance_base_type ::\n                         (VisualScript :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_instance_base_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_set_instance_base_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"set_instance_base_type\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.set_instance_base_type\n\n{-# NOINLINE bindVisualScript_set_node_position #-}\n\nbindVisualScript_set_node_position :: MethodBind\nbindVisualScript_set_node_position\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"set_node_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_node_position ::\n                    (VisualScript :< cls, Object :< cls) =>\n                    cls -> GodotString -> Int -> Vector2 -> IO ()\nset_node_position cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_set_node_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"set_node_position\"\n           '[GodotString, Int, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.set_node_position\n\n{-# NOINLINE bindVisualScript_set_variable_default_value #-}\n\nbindVisualScript_set_variable_default_value :: MethodBind\nbindVisualScript_set_variable_default_value\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"set_variable_default_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_variable_default_value ::\n                             (VisualScript :< cls, Object :< cls) =>\n                             cls -> GodotString -> GodotVariant -> IO ()\nset_variable_default_value cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_set_variable_default_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"set_variable_default_value\"\n           '[GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.set_variable_default_value\n\n{-# NOINLINE bindVisualScript_set_variable_export #-}\n\nbindVisualScript_set_variable_export :: MethodBind\nbindVisualScript_set_variable_export\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"set_variable_export\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_variable_export ::\n                      (VisualScript :< cls, Object :< cls) =>\n                      cls -> GodotString -> Bool -> IO ()\nset_variable_export cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_set_variable_export\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"set_variable_export\"\n           '[GodotString, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.set_variable_export\n\n{-# NOINLINE bindVisualScript_set_variable_info #-}\n\nbindVisualScript_set_variable_info :: MethodBind\nbindVisualScript_set_variable_info\n  = unsafePerformIO $\n      withCString \"VisualScript\" $\n        \\ clsNamePtr ->\n          withCString \"set_variable_info\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_variable_info ::\n                    (VisualScript :< cls, Object :< cls) =>\n                    cls -> GodotString -> Dictionary -> IO ()\nset_variable_info cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScript_set_variable_info\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScript \"set_variable_info\"\n           '[GodotString, Dictionary]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScript.set_variable_info"
  },
  {
    "path": "src/Godot/Core/VisualScriptBasicTypeConstant.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptBasicTypeConstant\n       (Godot.Core.VisualScriptBasicTypeConstant.get_basic_type,\n        Godot.Core.VisualScriptBasicTypeConstant.get_basic_type_constant,\n        Godot.Core.VisualScriptBasicTypeConstant.set_basic_type,\n        Godot.Core.VisualScriptBasicTypeConstant.set_basic_type_constant)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptBasicTypeConstant \"basic_type\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_basic_type, wrapDroppingSetter set_basic_type, Nothing)\n\ninstance NodeProperty VisualScriptBasicTypeConstant \"constant\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_basic_type_constant,\n             wrapDroppingSetter set_basic_type_constant, Nothing)\n\n{-# NOINLINE bindVisualScriptBasicTypeConstant_get_basic_type #-}\n\nbindVisualScriptBasicTypeConstant_get_basic_type :: MethodBind\nbindVisualScriptBasicTypeConstant_get_basic_type\n  = unsafePerformIO $\n      withCString \"VisualScriptBasicTypeConstant\" $\n        \\ clsNamePtr ->\n          withCString \"get_basic_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_basic_type ::\n                 (VisualScriptBasicTypeConstant :< cls, Object :< cls) =>\n                 cls -> IO Int\nget_basic_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptBasicTypeConstant_get_basic_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptBasicTypeConstant \"get_basic_type\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptBasicTypeConstant.get_basic_type\n\n{-# NOINLINE bindVisualScriptBasicTypeConstant_get_basic_type_constant\n             #-}\n\nbindVisualScriptBasicTypeConstant_get_basic_type_constant ::\n                                                          MethodBind\nbindVisualScriptBasicTypeConstant_get_basic_type_constant\n  = unsafePerformIO $\n      withCString \"VisualScriptBasicTypeConstant\" $\n        \\ clsNamePtr ->\n          withCString \"get_basic_type_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_basic_type_constant ::\n                          (VisualScriptBasicTypeConstant :< cls, Object :< cls) =>\n                          cls -> IO GodotString\nget_basic_type_constant cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptBasicTypeConstant_get_basic_type_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptBasicTypeConstant\n           \"get_basic_type_constant\"\n           '[]\n           (IO GodotString)\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptBasicTypeConstant.get_basic_type_constant\n\n{-# NOINLINE bindVisualScriptBasicTypeConstant_set_basic_type #-}\n\nbindVisualScriptBasicTypeConstant_set_basic_type :: MethodBind\nbindVisualScriptBasicTypeConstant_set_basic_type\n  = unsafePerformIO $\n      withCString \"VisualScriptBasicTypeConstant\" $\n        \\ clsNamePtr ->\n          withCString \"set_basic_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_basic_type ::\n                 (VisualScriptBasicTypeConstant :< cls, Object :< cls) =>\n                 cls -> Int -> IO ()\nset_basic_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptBasicTypeConstant_set_basic_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptBasicTypeConstant \"set_basic_type\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptBasicTypeConstant.set_basic_type\n\n{-# NOINLINE bindVisualScriptBasicTypeConstant_set_basic_type_constant\n             #-}\n\nbindVisualScriptBasicTypeConstant_set_basic_type_constant ::\n                                                          MethodBind\nbindVisualScriptBasicTypeConstant_set_basic_type_constant\n  = unsafePerformIO $\n      withCString \"VisualScriptBasicTypeConstant\" $\n        \\ clsNamePtr ->\n          withCString \"set_basic_type_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_basic_type_constant ::\n                          (VisualScriptBasicTypeConstant :< cls, Object :< cls) =>\n                          cls -> GodotString -> IO ()\nset_basic_type_constant cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptBasicTypeConstant_set_basic_type_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptBasicTypeConstant\n           \"set_basic_type_constant\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptBasicTypeConstant.set_basic_type_constant"
  },
  {
    "path": "src/Godot/Core/VisualScriptBuiltinFunc.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptBuiltinFunc\n       (Godot.Core.VisualScriptBuiltinFunc._MATH_RAD2DEG,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_TAN,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_DEG2RAD,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_LERP,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_ISINF,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_ATAN2,\n        Godot.Core.VisualScriptBuiltinFunc._TYPE_EXISTS,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_SMOOTHSTEP,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_LERP_ANGLE,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_WRAPF,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_ATAN,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_POSMOD,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_COSH,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_SEED,\n        Godot.Core.VisualScriptBuiltinFunc._TYPE_CONVERT,\n        Godot.Core.VisualScriptBuiltinFunc._LOGIC_MIN,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_STEPIFY,\n        Godot.Core.VisualScriptBuiltinFunc._COLORN,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_SQRT,\n        Godot.Core.VisualScriptBuiltinFunc._TEXT_PRINT,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_DB2LINEAR,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_RAND,\n        Godot.Core.VisualScriptBuiltinFunc._FUNC_FUNCREF,\n        Godot.Core.VisualScriptBuiltinFunc._LOGIC_NEAREST_PO2,\n        Godot.Core.VisualScriptBuiltinFunc._OBJ_WEAKREF,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_CARTESIAN2POLAR,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_POLAR2CARTESIAN,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_ISNAN,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_CEIL,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_SIGN,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_TANH,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_RANDOM,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_RANGE_LERP,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_FMOD,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_DECIMALS,\n        Godot.Core.VisualScriptBuiltinFunc._VAR_TO_BYTES,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_ABS,\n        Godot.Core.VisualScriptBuiltinFunc._TEXT_STR,\n        Godot.Core.VisualScriptBuiltinFunc._BYTES_TO_VAR,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_FLOOR,\n        Godot.Core.VisualScriptBuiltinFunc._TEXT_PRINTRAW,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_POW,\n        Godot.Core.VisualScriptBuiltinFunc._LOGIC_CLAMP,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_MOVE_TOWARD,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_EXP,\n        Godot.Core.VisualScriptBuiltinFunc._TEXT_CHAR,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_RANDOMIZE,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_ASIN,\n        Godot.Core.VisualScriptBuiltinFunc._FUNC_MAX,\n        Godot.Core.VisualScriptBuiltinFunc._LOGIC_MAX,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_EASE,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_ROUND,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_RANDF,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_DECTIME,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_COS,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_SIN,\n        Godot.Core.VisualScriptBuiltinFunc._VAR_TO_STR,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_SINH,\n        Godot.Core.VisualScriptBuiltinFunc._TEXT_ORD,\n        Godot.Core.VisualScriptBuiltinFunc._STR_TO_VAR,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_INVERSE_LERP,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_FPOSMOD,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_WRAP,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_LOG,\n        Godot.Core.VisualScriptBuiltinFunc._TYPE_OF,\n        Godot.Core.VisualScriptBuiltinFunc._TEXT_PRINTERR,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_LINEAR2DB,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_ACOS,\n        Godot.Core.VisualScriptBuiltinFunc._MATH_RANDSEED,\n        Godot.Core.VisualScriptBuiltinFunc.get_func,\n        Godot.Core.VisualScriptBuiltinFunc.set_func)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\n_MATH_RAD2DEG :: Int\n_MATH_RAD2DEG = 38\n\n_MATH_TAN :: Int\n_MATH_TAN = 2\n\n_MATH_DEG2RAD :: Int\n_MATH_DEG2RAD = 37\n\n_MATH_LERP :: Int\n_MATH_LERP = 26\n\n_MATH_ISINF :: Int\n_MATH_ISINF = 22\n\n_MATH_ATAN2 :: Int\n_MATH_ATAN2 = 9\n\n_TYPE_EXISTS :: Int\n_TYPE_EXISTS = 53\n\n_MATH_SMOOTHSTEP :: Int\n_MATH_SMOOTHSTEP = 64\n\n_MATH_LERP_ANGLE :: Int\n_MATH_LERP_ANGLE = 66\n\n_MATH_WRAPF :: Int\n_MATH_WRAPF = 44\n\n_MATH_ATAN :: Int\n_MATH_ATAN = 8\n\n_MATH_POSMOD :: Int\n_MATH_POSMOD = 65\n\n_MATH_COSH :: Int\n_MATH_COSH = 4\n\n_MATH_SEED :: Int\n_MATH_SEED = 35\n\n_TYPE_CONVERT :: Int\n_TYPE_CONVERT = 51\n\n_LOGIC_MIN :: Int\n_LOGIC_MIN = 46\n\n_MATH_STEPIFY :: Int\n_MATH_STEPIFY = 25\n\n_COLORN :: Int\n_COLORN = 63\n\n_MATH_SQRT :: Int\n_MATH_SQRT = 10\n\n_TEXT_PRINT :: Int\n_TEXT_PRINT = 56\n\n_MATH_DB2LINEAR :: Int\n_MATH_DB2LINEAR = 40\n\n_MATH_RAND :: Int\n_MATH_RAND = 32\n\n_FUNC_FUNCREF :: Int\n_FUNC_FUNCREF = 50\n\n_LOGIC_NEAREST_PO2 :: Int\n_LOGIC_NEAREST_PO2 = 48\n\n_OBJ_WEAKREF :: Int\n_OBJ_WEAKREF = 49\n\n_MATH_CARTESIAN2POLAR :: Int\n_MATH_CARTESIAN2POLAR = 42\n\n_MATH_POLAR2CARTESIAN :: Int\n_MATH_POLAR2CARTESIAN = 41\n\n_MATH_ISNAN :: Int\n_MATH_ISNAN = 21\n\n_MATH_CEIL :: Int\n_MATH_CEIL = 14\n\n_MATH_SIGN :: Int\n_MATH_SIGN = 17\n\n_MATH_TANH :: Int\n_MATH_TANH = 5\n\n_MATH_RANDOM :: Int\n_MATH_RANDOM = 34\n\n_MATH_RANGE_LERP :: Int\n_MATH_RANGE_LERP = 28\n\n_MATH_FMOD :: Int\n_MATH_FMOD = 11\n\n_MATH_DECIMALS :: Int\n_MATH_DECIMALS = 24\n\n_VAR_TO_BYTES :: Int\n_VAR_TO_BYTES = 61\n\n_MATH_ABS :: Int\n_MATH_ABS = 16\n\n_TEXT_STR :: Int\n_TEXT_STR = 55\n\n_BYTES_TO_VAR :: Int\n_BYTES_TO_VAR = 62\n\n_MATH_FLOOR :: Int\n_MATH_FLOOR = 13\n\n_TEXT_PRINTRAW :: Int\n_TEXT_PRINTRAW = 58\n\n_MATH_POW :: Int\n_MATH_POW = 18\n\n_LOGIC_CLAMP :: Int\n_LOGIC_CLAMP = 47\n\n_MATH_MOVE_TOWARD :: Int\n_MATH_MOVE_TOWARD = 29\n\n_MATH_EXP :: Int\n_MATH_EXP = 20\n\n_TEXT_CHAR :: Int\n_TEXT_CHAR = 54\n\n_MATH_RANDOMIZE :: Int\n_MATH_RANDOMIZE = 31\n\n_MATH_ASIN :: Int\n_MATH_ASIN = 6\n\n_FUNC_MAX :: Int\n_FUNC_MAX = 68\n\n_LOGIC_MAX :: Int\n_LOGIC_MAX = 45\n\n_MATH_EASE :: Int\n_MATH_EASE = 23\n\n_MATH_ROUND :: Int\n_MATH_ROUND = 15\n\n_MATH_RANDF :: Int\n_MATH_RANDF = 33\n\n_MATH_DECTIME :: Int\n_MATH_DECTIME = 30\n\n_MATH_COS :: Int\n_MATH_COS = 1\n\n_MATH_SIN :: Int\n_MATH_SIN = 0\n\n_VAR_TO_STR :: Int\n_VAR_TO_STR = 59\n\n_MATH_SINH :: Int\n_MATH_SINH = 3\n\n_TEXT_ORD :: Int\n_TEXT_ORD = 67\n\n_STR_TO_VAR :: Int\n_STR_TO_VAR = 60\n\n_MATH_INVERSE_LERP :: Int\n_MATH_INVERSE_LERP = 27\n\n_MATH_FPOSMOD :: Int\n_MATH_FPOSMOD = 12\n\n_MATH_WRAP :: Int\n_MATH_WRAP = 43\n\n_MATH_LOG :: Int\n_MATH_LOG = 19\n\n_TYPE_OF :: Int\n_TYPE_OF = 52\n\n_TEXT_PRINTERR :: Int\n_TEXT_PRINTERR = 57\n\n_MATH_LINEAR2DB :: Int\n_MATH_LINEAR2DB = 39\n\n_MATH_ACOS :: Int\n_MATH_ACOS = 7\n\n_MATH_RANDSEED :: Int\n_MATH_RANDSEED = 36\n\ninstance NodeProperty VisualScriptBuiltinFunc \"function\" Int 'False\n         where\n        nodeProperty = (get_func, wrapDroppingSetter set_func, Nothing)\n\n{-# NOINLINE bindVisualScriptBuiltinFunc_get_func #-}\n\nbindVisualScriptBuiltinFunc_get_func :: MethodBind\nbindVisualScriptBuiltinFunc_get_func\n  = unsafePerformIO $\n      withCString \"VisualScriptBuiltinFunc\" $\n        \\ clsNamePtr ->\n          withCString \"get_func\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_func ::\n           (VisualScriptBuiltinFunc :< cls, Object :< cls) => cls -> IO Int\nget_func cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptBuiltinFunc_get_func\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptBuiltinFunc \"get_func\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptBuiltinFunc.get_func\n\n{-# NOINLINE bindVisualScriptBuiltinFunc_set_func #-}\n\nbindVisualScriptBuiltinFunc_set_func :: MethodBind\nbindVisualScriptBuiltinFunc_set_func\n  = unsafePerformIO $\n      withCString \"VisualScriptBuiltinFunc\" $\n        \\ clsNamePtr ->\n          withCString \"set_func\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_func ::\n           (VisualScriptBuiltinFunc :< cls, Object :< cls) =>\n           cls -> Int -> IO ()\nset_func cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptBuiltinFunc_set_func\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptBuiltinFunc \"set_func\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptBuiltinFunc.set_func"
  },
  {
    "path": "src/Godot/Core/VisualScriptClassConstant.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptClassConstant\n       (Godot.Core.VisualScriptClassConstant.get_base_type,\n        Godot.Core.VisualScriptClassConstant.get_class_constant,\n        Godot.Core.VisualScriptClassConstant.set_base_type,\n        Godot.Core.VisualScriptClassConstant.set_class_constant)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptClassConstant \"base_type\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_base_type, wrapDroppingSetter set_base_type, Nothing)\n\ninstance NodeProperty VisualScriptClassConstant \"constant\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_class_constant, wrapDroppingSetter set_class_constant,\n             Nothing)\n\n{-# NOINLINE bindVisualScriptClassConstant_get_base_type #-}\n\nbindVisualScriptClassConstant_get_base_type :: MethodBind\nbindVisualScriptClassConstant_get_base_type\n  = unsafePerformIO $\n      withCString \"VisualScriptClassConstant\" $\n        \\ clsNamePtr ->\n          withCString \"get_base_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_base_type ::\n                (VisualScriptClassConstant :< cls, Object :< cls) =>\n                cls -> IO GodotString\nget_base_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptClassConstant_get_base_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptClassConstant \"get_base_type\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptClassConstant.get_base_type\n\n{-# NOINLINE bindVisualScriptClassConstant_get_class_constant #-}\n\nbindVisualScriptClassConstant_get_class_constant :: MethodBind\nbindVisualScriptClassConstant_get_class_constant\n  = unsafePerformIO $\n      withCString \"VisualScriptClassConstant\" $\n        \\ clsNamePtr ->\n          withCString \"get_class_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_class_constant ::\n                     (VisualScriptClassConstant :< cls, Object :< cls) =>\n                     cls -> IO GodotString\nget_class_constant cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptClassConstant_get_class_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptClassConstant \"get_class_constant\"\n           '[]\n           (IO GodotString)\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptClassConstant.get_class_constant\n\n{-# NOINLINE bindVisualScriptClassConstant_set_base_type #-}\n\nbindVisualScriptClassConstant_set_base_type :: MethodBind\nbindVisualScriptClassConstant_set_base_type\n  = unsafePerformIO $\n      withCString \"VisualScriptClassConstant\" $\n        \\ clsNamePtr ->\n          withCString \"set_base_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_base_type ::\n                (VisualScriptClassConstant :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\nset_base_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptClassConstant_set_base_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptClassConstant \"set_base_type\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptClassConstant.set_base_type\n\n{-# NOINLINE bindVisualScriptClassConstant_set_class_constant #-}\n\nbindVisualScriptClassConstant_set_class_constant :: MethodBind\nbindVisualScriptClassConstant_set_class_constant\n  = unsafePerformIO $\n      withCString \"VisualScriptClassConstant\" $\n        \\ clsNamePtr ->\n          withCString \"set_class_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_class_constant ::\n                     (VisualScriptClassConstant :< cls, Object :< cls) =>\n                     cls -> GodotString -> IO ()\nset_class_constant cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptClassConstant_set_class_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptClassConstant \"set_class_constant\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptClassConstant.set_class_constant"
  },
  {
    "path": "src/Godot/Core/VisualScriptComment.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptComment\n       (Godot.Core.VisualScriptComment.get_description,\n        Godot.Core.VisualScriptComment.get_size,\n        Godot.Core.VisualScriptComment.get_title,\n        Godot.Core.VisualScriptComment.set_description,\n        Godot.Core.VisualScriptComment.set_size,\n        Godot.Core.VisualScriptComment.set_title)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptComment \"description\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_description, wrapDroppingSetter set_description, Nothing)\n\ninstance NodeProperty VisualScriptComment \"size\" Vector2 'False\n         where\n        nodeProperty = (get_size, wrapDroppingSetter set_size, Nothing)\n\ninstance NodeProperty VisualScriptComment \"title\" GodotString\n           'False\n         where\n        nodeProperty = (get_title, wrapDroppingSetter set_title, Nothing)\n\n{-# NOINLINE bindVisualScriptComment_get_description #-}\n\nbindVisualScriptComment_get_description :: MethodBind\nbindVisualScriptComment_get_description\n  = unsafePerformIO $\n      withCString \"VisualScriptComment\" $\n        \\ clsNamePtr ->\n          withCString \"get_description\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_description ::\n                  (VisualScriptComment :< cls, Object :< cls) =>\n                  cls -> IO GodotString\nget_description cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptComment_get_description\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptComment \"get_description\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptComment.get_description\n\n{-# NOINLINE bindVisualScriptComment_get_size #-}\n\nbindVisualScriptComment_get_size :: MethodBind\nbindVisualScriptComment_get_size\n  = unsafePerformIO $\n      withCString \"VisualScriptComment\" $\n        \\ clsNamePtr ->\n          withCString \"get_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_size ::\n           (VisualScriptComment :< cls, Object :< cls) => cls -> IO Vector2\nget_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptComment_get_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptComment \"get_size\" '[] (IO Vector2)\n         where\n        nodeMethod = Godot.Core.VisualScriptComment.get_size\n\n{-# NOINLINE bindVisualScriptComment_get_title #-}\n\nbindVisualScriptComment_get_title :: MethodBind\nbindVisualScriptComment_get_title\n  = unsafePerformIO $\n      withCString \"VisualScriptComment\" $\n        \\ clsNamePtr ->\n          withCString \"get_title\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_title ::\n            (VisualScriptComment :< cls, Object :< cls) =>\n            cls -> IO GodotString\nget_title cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptComment_get_title\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptComment \"get_title\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptComment.get_title\n\n{-# NOINLINE bindVisualScriptComment_set_description #-}\n\nbindVisualScriptComment_set_description :: MethodBind\nbindVisualScriptComment_set_description\n  = unsafePerformIO $\n      withCString \"VisualScriptComment\" $\n        \\ clsNamePtr ->\n          withCString \"set_description\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_description ::\n                  (VisualScriptComment :< cls, Object :< cls) =>\n                  cls -> GodotString -> IO ()\nset_description cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptComment_set_description\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptComment \"set_description\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptComment.set_description\n\n{-# NOINLINE bindVisualScriptComment_set_size #-}\n\nbindVisualScriptComment_set_size :: MethodBind\nbindVisualScriptComment_set_size\n  = unsafePerformIO $\n      withCString \"VisualScriptComment\" $\n        \\ clsNamePtr ->\n          withCString \"set_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_size ::\n           (VisualScriptComment :< cls, Object :< cls) =>\n           cls -> Vector2 -> IO ()\nset_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptComment_set_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptComment \"set_size\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptComment.set_size\n\n{-# NOINLINE bindVisualScriptComment_set_title #-}\n\nbindVisualScriptComment_set_title :: MethodBind\nbindVisualScriptComment_set_title\n  = unsafePerformIO $\n      withCString \"VisualScriptComment\" $\n        \\ clsNamePtr ->\n          withCString \"set_title\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_title ::\n            (VisualScriptComment :< cls, Object :< cls) =>\n            cls -> GodotString -> IO ()\nset_title cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptComment_set_title\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptComment \"set_title\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptComment.set_title"
  },
  {
    "path": "src/Godot/Core/VisualScriptComposeArray.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptComposeArray () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptLists()"
  },
  {
    "path": "src/Godot/Core/VisualScriptCondition.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptCondition () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()"
  },
  {
    "path": "src/Godot/Core/VisualScriptConstant.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptConstant\n       (Godot.Core.VisualScriptConstant.get_constant_type,\n        Godot.Core.VisualScriptConstant.get_constant_value,\n        Godot.Core.VisualScriptConstant.set_constant_type,\n        Godot.Core.VisualScriptConstant.set_constant_value)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptConstant \"type\" Int 'False where\n        nodeProperty\n          = (get_constant_type, wrapDroppingSetter set_constant_type,\n             Nothing)\n\ninstance NodeProperty VisualScriptConstant \"value\" GodotVariant\n           'False\n         where\n        nodeProperty\n          = (get_constant_value, wrapDroppingSetter set_constant_value,\n             Nothing)\n\n{-# NOINLINE bindVisualScriptConstant_get_constant_type #-}\n\nbindVisualScriptConstant_get_constant_type :: MethodBind\nbindVisualScriptConstant_get_constant_type\n  = unsafePerformIO $\n      withCString \"VisualScriptConstant\" $\n        \\ clsNamePtr ->\n          withCString \"get_constant_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_constant_type ::\n                    (VisualScriptConstant :< cls, Object :< cls) => cls -> IO Int\nget_constant_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptConstant_get_constant_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptConstant \"get_constant_type\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptConstant.get_constant_type\n\n{-# NOINLINE bindVisualScriptConstant_get_constant_value #-}\n\nbindVisualScriptConstant_get_constant_value :: MethodBind\nbindVisualScriptConstant_get_constant_value\n  = unsafePerformIO $\n      withCString \"VisualScriptConstant\" $\n        \\ clsNamePtr ->\n          withCString \"get_constant_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_constant_value ::\n                     (VisualScriptConstant :< cls, Object :< cls) =>\n                     cls -> IO GodotVariant\nget_constant_value cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptConstant_get_constant_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptConstant \"get_constant_value\" '[]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.VisualScriptConstant.get_constant_value\n\n{-# NOINLINE bindVisualScriptConstant_set_constant_type #-}\n\nbindVisualScriptConstant_set_constant_type :: MethodBind\nbindVisualScriptConstant_set_constant_type\n  = unsafePerformIO $\n      withCString \"VisualScriptConstant\" $\n        \\ clsNamePtr ->\n          withCString \"set_constant_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_constant_type ::\n                    (VisualScriptConstant :< cls, Object :< cls) => cls -> Int -> IO ()\nset_constant_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptConstant_set_constant_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptConstant \"set_constant_type\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptConstant.set_constant_type\n\n{-# NOINLINE bindVisualScriptConstant_set_constant_value #-}\n\nbindVisualScriptConstant_set_constant_value :: MethodBind\nbindVisualScriptConstant_set_constant_value\n  = unsafePerformIO $\n      withCString \"VisualScriptConstant\" $\n        \\ clsNamePtr ->\n          withCString \"set_constant_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_constant_value ::\n                     (VisualScriptConstant :< cls, Object :< cls) =>\n                     cls -> GodotVariant -> IO ()\nset_constant_value cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptConstant_set_constant_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptConstant \"set_constant_value\"\n           '[GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptConstant.set_constant_value"
  },
  {
    "path": "src/Godot/Core/VisualScriptConstructor.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptConstructor\n       (Godot.Core.VisualScriptConstructor.get_constructor,\n        Godot.Core.VisualScriptConstructor.get_constructor_type,\n        Godot.Core.VisualScriptConstructor.set_constructor,\n        Godot.Core.VisualScriptConstructor.set_constructor_type)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptConstructor \"constructor\"\n           Dictionary\n           'False\n         where\n        nodeProperty\n          = (get_constructor, wrapDroppingSetter set_constructor, Nothing)\n\ninstance NodeProperty VisualScriptConstructor \"type\" Int 'False\n         where\n        nodeProperty\n          = (get_constructor_type, wrapDroppingSetter set_constructor_type,\n             Nothing)\n\n{-# NOINLINE bindVisualScriptConstructor_get_constructor #-}\n\nbindVisualScriptConstructor_get_constructor :: MethodBind\nbindVisualScriptConstructor_get_constructor\n  = unsafePerformIO $\n      withCString \"VisualScriptConstructor\" $\n        \\ clsNamePtr ->\n          withCString \"get_constructor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_constructor ::\n                  (VisualScriptConstructor :< cls, Object :< cls) =>\n                  cls -> IO Dictionary\nget_constructor cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptConstructor_get_constructor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptConstructor \"get_constructor\" '[]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.VisualScriptConstructor.get_constructor\n\n{-# NOINLINE bindVisualScriptConstructor_get_constructor_type #-}\n\nbindVisualScriptConstructor_get_constructor_type :: MethodBind\nbindVisualScriptConstructor_get_constructor_type\n  = unsafePerformIO $\n      withCString \"VisualScriptConstructor\" $\n        \\ clsNamePtr ->\n          withCString \"get_constructor_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_constructor_type ::\n                       (VisualScriptConstructor :< cls, Object :< cls) => cls -> IO Int\nget_constructor_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptConstructor_get_constructor_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptConstructor \"get_constructor_type\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptConstructor.get_constructor_type\n\n{-# NOINLINE bindVisualScriptConstructor_set_constructor #-}\n\nbindVisualScriptConstructor_set_constructor :: MethodBind\nbindVisualScriptConstructor_set_constructor\n  = unsafePerformIO $\n      withCString \"VisualScriptConstructor\" $\n        \\ clsNamePtr ->\n          withCString \"set_constructor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_constructor ::\n                  (VisualScriptConstructor :< cls, Object :< cls) =>\n                  cls -> Dictionary -> IO ()\nset_constructor cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptConstructor_set_constructor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptConstructor \"set_constructor\"\n           '[Dictionary]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptConstructor.set_constructor\n\n{-# NOINLINE bindVisualScriptConstructor_set_constructor_type #-}\n\nbindVisualScriptConstructor_set_constructor_type :: MethodBind\nbindVisualScriptConstructor_set_constructor_type\n  = unsafePerformIO $\n      withCString \"VisualScriptConstructor\" $\n        \\ clsNamePtr ->\n          withCString \"set_constructor_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_constructor_type ::\n                       (VisualScriptConstructor :< cls, Object :< cls) =>\n                       cls -> Int -> IO ()\nset_constructor_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptConstructor_set_constructor_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptConstructor \"set_constructor_type\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptConstructor.set_constructor_type"
  },
  {
    "path": "src/Godot/Core/VisualScriptCustomNode.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptCustomNode\n       (Godot.Core.VisualScriptCustomNode._STEP_PUSH_STACK_BIT,\n        Godot.Core.VisualScriptCustomNode._START_MODE_RESUME_YIELD,\n        Godot.Core.VisualScriptCustomNode._STEP_EXIT_FUNCTION_BIT,\n        Godot.Core.VisualScriptCustomNode._STEP_YIELD_BIT,\n        Godot.Core.VisualScriptCustomNode._STEP_NO_ADVANCE_BIT,\n        Godot.Core.VisualScriptCustomNode._START_MODE_BEGIN_SEQUENCE,\n        Godot.Core.VisualScriptCustomNode._START_MODE_CONTINUE_SEQUENCE,\n        Godot.Core.VisualScriptCustomNode._STEP_GO_BACK_BIT,\n        Godot.Core.VisualScriptCustomNode._get_caption,\n        Godot.Core.VisualScriptCustomNode._get_category,\n        Godot.Core.VisualScriptCustomNode._get_input_value_port_count,\n        Godot.Core.VisualScriptCustomNode._get_input_value_port_name,\n        Godot.Core.VisualScriptCustomNode._get_input_value_port_type,\n        Godot.Core.VisualScriptCustomNode._get_output_sequence_port_count,\n        Godot.Core.VisualScriptCustomNode._get_output_sequence_port_text,\n        Godot.Core.VisualScriptCustomNode._get_output_value_port_count,\n        Godot.Core.VisualScriptCustomNode._get_output_value_port_name,\n        Godot.Core.VisualScriptCustomNode._get_output_value_port_type,\n        Godot.Core.VisualScriptCustomNode._get_text,\n        Godot.Core.VisualScriptCustomNode._get_working_memory_size,\n        Godot.Core.VisualScriptCustomNode._has_input_sequence_port,\n        Godot.Core.VisualScriptCustomNode._script_changed,\n        Godot.Core.VisualScriptCustomNode._step)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\n_STEP_PUSH_STACK_BIT :: Int\n_STEP_PUSH_STACK_BIT = 16777216\n\n_START_MODE_RESUME_YIELD :: Int\n_START_MODE_RESUME_YIELD = 2\n\n_STEP_EXIT_FUNCTION_BIT :: Int\n_STEP_EXIT_FUNCTION_BIT = 134217728\n\n_STEP_YIELD_BIT :: Int\n_STEP_YIELD_BIT = 268435456\n\n_STEP_NO_ADVANCE_BIT :: Int\n_STEP_NO_ADVANCE_BIT = 67108864\n\n_START_MODE_BEGIN_SEQUENCE :: Int\n_START_MODE_BEGIN_SEQUENCE = 0\n\n_START_MODE_CONTINUE_SEQUENCE :: Int\n_START_MODE_CONTINUE_SEQUENCE = 1\n\n_STEP_GO_BACK_BIT :: Int\n_STEP_GO_BACK_BIT = 33554432\n\n{-# NOINLINE bindVisualScriptCustomNode__get_caption #-}\n\nbindVisualScriptCustomNode__get_caption :: MethodBind\nbindVisualScriptCustomNode__get_caption\n  = unsafePerformIO $\n      withCString \"VisualScriptCustomNode\" $\n        \\ clsNamePtr ->\n          withCString \"_get_caption\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_caption ::\n               (VisualScriptCustomNode :< cls, Object :< cls) =>\n               cls -> IO GodotString\n_get_caption cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptCustomNode__get_caption\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptCustomNode \"_get_caption\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptCustomNode._get_caption\n\n{-# NOINLINE bindVisualScriptCustomNode__get_category #-}\n\nbindVisualScriptCustomNode__get_category :: MethodBind\nbindVisualScriptCustomNode__get_category\n  = unsafePerformIO $\n      withCString \"VisualScriptCustomNode\" $\n        \\ clsNamePtr ->\n          withCString \"_get_category\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_category ::\n                (VisualScriptCustomNode :< cls, Object :< cls) =>\n                cls -> IO GodotString\n_get_category cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptCustomNode__get_category\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptCustomNode \"_get_category\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptCustomNode._get_category\n\n{-# NOINLINE bindVisualScriptCustomNode__get_input_value_port_count\n             #-}\n\nbindVisualScriptCustomNode__get_input_value_port_count ::\n                                                       MethodBind\nbindVisualScriptCustomNode__get_input_value_port_count\n  = unsafePerformIO $\n      withCString \"VisualScriptCustomNode\" $\n        \\ clsNamePtr ->\n          withCString \"_get_input_value_port_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_input_value_port_count ::\n                              (VisualScriptCustomNode :< cls, Object :< cls) => cls -> IO Int\n_get_input_value_port_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptCustomNode__get_input_value_port_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptCustomNode\n           \"_get_input_value_port_count\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptCustomNode._get_input_value_port_count\n\n{-# NOINLINE bindVisualScriptCustomNode__get_input_value_port_name\n             #-}\n\nbindVisualScriptCustomNode__get_input_value_port_name :: MethodBind\nbindVisualScriptCustomNode__get_input_value_port_name\n  = unsafePerformIO $\n      withCString \"VisualScriptCustomNode\" $\n        \\ clsNamePtr ->\n          withCString \"_get_input_value_port_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_input_value_port_name ::\n                             (VisualScriptCustomNode :< cls, Object :< cls) =>\n                             cls -> Int -> IO GodotString\n_get_input_value_port_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptCustomNode__get_input_value_port_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptCustomNode\n           \"_get_input_value_port_name\"\n           '[Int]\n           (IO GodotString)\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptCustomNode._get_input_value_port_name\n\n{-# NOINLINE bindVisualScriptCustomNode__get_input_value_port_type\n             #-}\n\nbindVisualScriptCustomNode__get_input_value_port_type :: MethodBind\nbindVisualScriptCustomNode__get_input_value_port_type\n  = unsafePerformIO $\n      withCString \"VisualScriptCustomNode\" $\n        \\ clsNamePtr ->\n          withCString \"_get_input_value_port_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_input_value_port_type ::\n                             (VisualScriptCustomNode :< cls, Object :< cls) =>\n                             cls -> Int -> IO Int\n_get_input_value_port_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptCustomNode__get_input_value_port_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptCustomNode\n           \"_get_input_value_port_type\"\n           '[Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptCustomNode._get_input_value_port_type\n\n{-# NOINLINE bindVisualScriptCustomNode__get_output_sequence_port_count\n             #-}\n\nbindVisualScriptCustomNode__get_output_sequence_port_count ::\n                                                           MethodBind\nbindVisualScriptCustomNode__get_output_sequence_port_count\n  = unsafePerformIO $\n      withCString \"VisualScriptCustomNode\" $\n        \\ clsNamePtr ->\n          withCString \"_get_output_sequence_port_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_output_sequence_port_count ::\n                                  (VisualScriptCustomNode :< cls, Object :< cls) => cls -> IO Int\n_get_output_sequence_port_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptCustomNode__get_output_sequence_port_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptCustomNode\n           \"_get_output_sequence_port_count\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptCustomNode._get_output_sequence_port_count\n\n{-# NOINLINE bindVisualScriptCustomNode__get_output_sequence_port_text\n             #-}\n\nbindVisualScriptCustomNode__get_output_sequence_port_text ::\n                                                          MethodBind\nbindVisualScriptCustomNode__get_output_sequence_port_text\n  = unsafePerformIO $\n      withCString \"VisualScriptCustomNode\" $\n        \\ clsNamePtr ->\n          withCString \"_get_output_sequence_port_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_output_sequence_port_text ::\n                                 (VisualScriptCustomNode :< cls, Object :< cls) =>\n                                 cls -> Int -> IO GodotString\n_get_output_sequence_port_text cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptCustomNode__get_output_sequence_port_text\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptCustomNode\n           \"_get_output_sequence_port_text\"\n           '[Int]\n           (IO GodotString)\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptCustomNode._get_output_sequence_port_text\n\n{-# NOINLINE bindVisualScriptCustomNode__get_output_value_port_count\n             #-}\n\nbindVisualScriptCustomNode__get_output_value_port_count ::\n                                                        MethodBind\nbindVisualScriptCustomNode__get_output_value_port_count\n  = unsafePerformIO $\n      withCString \"VisualScriptCustomNode\" $\n        \\ clsNamePtr ->\n          withCString \"_get_output_value_port_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_output_value_port_count ::\n                               (VisualScriptCustomNode :< cls, Object :< cls) => cls -> IO Int\n_get_output_value_port_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptCustomNode__get_output_value_port_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptCustomNode\n           \"_get_output_value_port_count\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptCustomNode._get_output_value_port_count\n\n{-# NOINLINE bindVisualScriptCustomNode__get_output_value_port_name\n             #-}\n\nbindVisualScriptCustomNode__get_output_value_port_name ::\n                                                       MethodBind\nbindVisualScriptCustomNode__get_output_value_port_name\n  = unsafePerformIO $\n      withCString \"VisualScriptCustomNode\" $\n        \\ clsNamePtr ->\n          withCString \"_get_output_value_port_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_output_value_port_name ::\n                              (VisualScriptCustomNode :< cls, Object :< cls) =>\n                              cls -> Int -> IO GodotString\n_get_output_value_port_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptCustomNode__get_output_value_port_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptCustomNode\n           \"_get_output_value_port_name\"\n           '[Int]\n           (IO GodotString)\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptCustomNode._get_output_value_port_name\n\n{-# NOINLINE bindVisualScriptCustomNode__get_output_value_port_type\n             #-}\n\nbindVisualScriptCustomNode__get_output_value_port_type ::\n                                                       MethodBind\nbindVisualScriptCustomNode__get_output_value_port_type\n  = unsafePerformIO $\n      withCString \"VisualScriptCustomNode\" $\n        \\ clsNamePtr ->\n          withCString \"_get_output_value_port_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_output_value_port_type ::\n                              (VisualScriptCustomNode :< cls, Object :< cls) =>\n                              cls -> Int -> IO Int\n_get_output_value_port_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptCustomNode__get_output_value_port_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptCustomNode\n           \"_get_output_value_port_type\"\n           '[Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptCustomNode._get_output_value_port_type\n\n{-# NOINLINE bindVisualScriptCustomNode__get_text #-}\n\nbindVisualScriptCustomNode__get_text :: MethodBind\nbindVisualScriptCustomNode__get_text\n  = unsafePerformIO $\n      withCString \"VisualScriptCustomNode\" $\n        \\ clsNamePtr ->\n          withCString \"_get_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_text ::\n            (VisualScriptCustomNode :< cls, Object :< cls) =>\n            cls -> IO GodotString\n_get_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptCustomNode__get_text\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptCustomNode \"_get_text\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptCustomNode._get_text\n\n{-# NOINLINE bindVisualScriptCustomNode__get_working_memory_size\n             #-}\n\nbindVisualScriptCustomNode__get_working_memory_size :: MethodBind\nbindVisualScriptCustomNode__get_working_memory_size\n  = unsafePerformIO $\n      withCString \"VisualScriptCustomNode\" $\n        \\ clsNamePtr ->\n          withCString \"_get_working_memory_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_working_memory_size ::\n                           (VisualScriptCustomNode :< cls, Object :< cls) => cls -> IO Int\n_get_working_memory_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptCustomNode__get_working_memory_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptCustomNode\n           \"_get_working_memory_size\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptCustomNode._get_working_memory_size\n\n{-# NOINLINE bindVisualScriptCustomNode__has_input_sequence_port\n             #-}\n\nbindVisualScriptCustomNode__has_input_sequence_port :: MethodBind\nbindVisualScriptCustomNode__has_input_sequence_port\n  = unsafePerformIO $\n      withCString \"VisualScriptCustomNode\" $\n        \\ clsNamePtr ->\n          withCString \"_has_input_sequence_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_has_input_sequence_port ::\n                           (VisualScriptCustomNode :< cls, Object :< cls) => cls -> IO Bool\n_has_input_sequence_port cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptCustomNode__has_input_sequence_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptCustomNode\n           \"_has_input_sequence_port\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptCustomNode._has_input_sequence_port\n\n{-# NOINLINE bindVisualScriptCustomNode__script_changed #-}\n\nbindVisualScriptCustomNode__script_changed :: MethodBind\nbindVisualScriptCustomNode__script_changed\n  = unsafePerformIO $\n      withCString \"VisualScriptCustomNode\" $\n        \\ clsNamePtr ->\n          withCString \"_script_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_script_changed ::\n                  (VisualScriptCustomNode :< cls, Object :< cls) => cls -> IO ()\n_script_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptCustomNode__script_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptCustomNode \"_script_changed\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptCustomNode._script_changed\n\n{-# NOINLINE bindVisualScriptCustomNode__step #-}\n\nbindVisualScriptCustomNode__step :: MethodBind\nbindVisualScriptCustomNode__step\n  = unsafePerformIO $\n      withCString \"VisualScriptCustomNode\" $\n        \\ clsNamePtr ->\n          withCString \"_step\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_step ::\n        (VisualScriptCustomNode :< cls, Object :< cls) =>\n        cls -> Array -> Array -> Int -> Array -> IO GodotVariant\n_step cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptCustomNode__step\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptCustomNode \"_step\"\n           '[Array, Array, Int, Array]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.VisualScriptCustomNode._step"
  },
  {
    "path": "src/Godot/Core/VisualScriptDeconstruct.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptDeconstruct\n       (Godot.Core.VisualScriptDeconstruct._get_elem_cache,\n        Godot.Core.VisualScriptDeconstruct._set_elem_cache,\n        Godot.Core.VisualScriptDeconstruct.get_deconstruct_type,\n        Godot.Core.VisualScriptDeconstruct.set_deconstruct_type)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptDeconstruct \"elem_cache\" Array\n           'False\n         where\n        nodeProperty\n          = (_get_elem_cache, wrapDroppingSetter _set_elem_cache, Nothing)\n\ninstance NodeProperty VisualScriptDeconstruct \"type\" Int 'False\n         where\n        nodeProperty\n          = (get_deconstruct_type, wrapDroppingSetter set_deconstruct_type,\n             Nothing)\n\n{-# NOINLINE bindVisualScriptDeconstruct__get_elem_cache #-}\n\nbindVisualScriptDeconstruct__get_elem_cache :: MethodBind\nbindVisualScriptDeconstruct__get_elem_cache\n  = unsafePerformIO $\n      withCString \"VisualScriptDeconstruct\" $\n        \\ clsNamePtr ->\n          withCString \"_get_elem_cache\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_elem_cache ::\n                  (VisualScriptDeconstruct :< cls, Object :< cls) => cls -> IO Array\n_get_elem_cache cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptDeconstruct__get_elem_cache\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptDeconstruct \"_get_elem_cache\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.VisualScriptDeconstruct._get_elem_cache\n\n{-# NOINLINE bindVisualScriptDeconstruct__set_elem_cache #-}\n\nbindVisualScriptDeconstruct__set_elem_cache :: MethodBind\nbindVisualScriptDeconstruct__set_elem_cache\n  = unsafePerformIO $\n      withCString \"VisualScriptDeconstruct\" $\n        \\ clsNamePtr ->\n          withCString \"_set_elem_cache\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_elem_cache ::\n                  (VisualScriptDeconstruct :< cls, Object :< cls) =>\n                  cls -> Array -> IO ()\n_set_elem_cache cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptDeconstruct__set_elem_cache\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptDeconstruct \"_set_elem_cache\"\n           '[Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptDeconstruct._set_elem_cache\n\n{-# NOINLINE bindVisualScriptDeconstruct_get_deconstruct_type #-}\n\nbindVisualScriptDeconstruct_get_deconstruct_type :: MethodBind\nbindVisualScriptDeconstruct_get_deconstruct_type\n  = unsafePerformIO $\n      withCString \"VisualScriptDeconstruct\" $\n        \\ clsNamePtr ->\n          withCString \"get_deconstruct_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_deconstruct_type ::\n                       (VisualScriptDeconstruct :< cls, Object :< cls) => cls -> IO Int\nget_deconstruct_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptDeconstruct_get_deconstruct_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptDeconstruct \"get_deconstruct_type\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptDeconstruct.get_deconstruct_type\n\n{-# NOINLINE bindVisualScriptDeconstruct_set_deconstruct_type #-}\n\nbindVisualScriptDeconstruct_set_deconstruct_type :: MethodBind\nbindVisualScriptDeconstruct_set_deconstruct_type\n  = unsafePerformIO $\n      withCString \"VisualScriptDeconstruct\" $\n        \\ clsNamePtr ->\n          withCString \"set_deconstruct_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_deconstruct_type ::\n                       (VisualScriptDeconstruct :< cls, Object :< cls) =>\n                       cls -> Int -> IO ()\nset_deconstruct_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptDeconstruct_set_deconstruct_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptDeconstruct \"set_deconstruct_type\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptDeconstruct.set_deconstruct_type"
  },
  {
    "path": "src/Godot/Core/VisualScriptEmitSignal.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptEmitSignal\n       (Godot.Core.VisualScriptEmitSignal.get_signal,\n        Godot.Core.VisualScriptEmitSignal.set_signal)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptEmitSignal \"signal\" GodotString\n           'False\n         where\n        nodeProperty = (get_signal, wrapDroppingSetter set_signal, Nothing)\n\n{-# NOINLINE bindVisualScriptEmitSignal_get_signal #-}\n\nbindVisualScriptEmitSignal_get_signal :: MethodBind\nbindVisualScriptEmitSignal_get_signal\n  = unsafePerformIO $\n      withCString \"VisualScriptEmitSignal\" $\n        \\ clsNamePtr ->\n          withCString \"get_signal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_signal ::\n             (VisualScriptEmitSignal :< cls, Object :< cls) =>\n             cls -> IO GodotString\nget_signal cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptEmitSignal_get_signal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptEmitSignal \"get_signal\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptEmitSignal.get_signal\n\n{-# NOINLINE bindVisualScriptEmitSignal_set_signal #-}\n\nbindVisualScriptEmitSignal_set_signal :: MethodBind\nbindVisualScriptEmitSignal_set_signal\n  = unsafePerformIO $\n      withCString \"VisualScriptEmitSignal\" $\n        \\ clsNamePtr ->\n          withCString \"set_signal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_signal ::\n             (VisualScriptEmitSignal :< cls, Object :< cls) =>\n             cls -> GodotString -> IO ()\nset_signal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptEmitSignal_set_signal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptEmitSignal \"set_signal\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptEmitSignal.set_signal"
  },
  {
    "path": "src/Godot/Core/VisualScriptEngineSingleton.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptEngineSingleton\n       (Godot.Core.VisualScriptEngineSingleton.get_singleton,\n        Godot.Core.VisualScriptEngineSingleton.set_singleton)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptEngineSingleton \"constant\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_singleton, wrapDroppingSetter set_singleton, Nothing)\n\n{-# NOINLINE bindVisualScriptEngineSingleton_get_singleton #-}\n\nbindVisualScriptEngineSingleton_get_singleton :: MethodBind\nbindVisualScriptEngineSingleton_get_singleton\n  = unsafePerformIO $\n      withCString \"VisualScriptEngineSingleton\" $\n        \\ clsNamePtr ->\n          withCString \"get_singleton\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_singleton ::\n                (VisualScriptEngineSingleton :< cls, Object :< cls) =>\n                cls -> IO GodotString\nget_singleton cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptEngineSingleton_get_singleton\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptEngineSingleton \"get_singleton\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptEngineSingleton.get_singleton\n\n{-# NOINLINE bindVisualScriptEngineSingleton_set_singleton #-}\n\nbindVisualScriptEngineSingleton_set_singleton :: MethodBind\nbindVisualScriptEngineSingleton_set_singleton\n  = unsafePerformIO $\n      withCString \"VisualScriptEngineSingleton\" $\n        \\ clsNamePtr ->\n          withCString \"set_singleton\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_singleton ::\n                (VisualScriptEngineSingleton :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\nset_singleton cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptEngineSingleton_set_singleton\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptEngineSingleton \"set_singleton\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptEngineSingleton.set_singleton"
  },
  {
    "path": "src/Godot/Core/VisualScriptExpression.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptExpression () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()"
  },
  {
    "path": "src/Godot/Core/VisualScriptFunction.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptFunction () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()"
  },
  {
    "path": "src/Godot/Core/VisualScriptFunctionCall.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptFunctionCall\n       (Godot.Core.VisualScriptFunctionCall._CALL_MODE_BASIC_TYPE,\n        Godot.Core.VisualScriptFunctionCall._RPC_UNRELIABLE_TO_ID,\n        Godot.Core.VisualScriptFunctionCall._CALL_MODE_NODE_PATH,\n        Godot.Core.VisualScriptFunctionCall._RPC_UNRELIABLE,\n        Godot.Core.VisualScriptFunctionCall._CALL_MODE_SELF,\n        Godot.Core.VisualScriptFunctionCall._RPC_RELIABLE_TO_ID,\n        Godot.Core.VisualScriptFunctionCall._CALL_MODE_INSTANCE,\n        Godot.Core.VisualScriptFunctionCall._CALL_MODE_SINGLETON,\n        Godot.Core.VisualScriptFunctionCall._RPC_DISABLED,\n        Godot.Core.VisualScriptFunctionCall._RPC_RELIABLE,\n        Godot.Core.VisualScriptFunctionCall._get_argument_cache,\n        Godot.Core.VisualScriptFunctionCall._set_argument_cache,\n        Godot.Core.VisualScriptFunctionCall.get_base_path,\n        Godot.Core.VisualScriptFunctionCall.get_base_script,\n        Godot.Core.VisualScriptFunctionCall.get_base_type,\n        Godot.Core.VisualScriptFunctionCall.get_basic_type,\n        Godot.Core.VisualScriptFunctionCall.get_call_mode,\n        Godot.Core.VisualScriptFunctionCall.get_function,\n        Godot.Core.VisualScriptFunctionCall.get_rpc_call_mode,\n        Godot.Core.VisualScriptFunctionCall.get_singleton,\n        Godot.Core.VisualScriptFunctionCall.get_use_default_args,\n        Godot.Core.VisualScriptFunctionCall.get_validate,\n        Godot.Core.VisualScriptFunctionCall.set_base_path,\n        Godot.Core.VisualScriptFunctionCall.set_base_script,\n        Godot.Core.VisualScriptFunctionCall.set_base_type,\n        Godot.Core.VisualScriptFunctionCall.set_basic_type,\n        Godot.Core.VisualScriptFunctionCall.set_call_mode,\n        Godot.Core.VisualScriptFunctionCall.set_function,\n        Godot.Core.VisualScriptFunctionCall.set_rpc_call_mode,\n        Godot.Core.VisualScriptFunctionCall.set_singleton,\n        Godot.Core.VisualScriptFunctionCall.set_use_default_args,\n        Godot.Core.VisualScriptFunctionCall.set_validate)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\n_CALL_MODE_BASIC_TYPE :: Int\n_CALL_MODE_BASIC_TYPE = 3\n\n_RPC_UNRELIABLE_TO_ID :: Int\n_RPC_UNRELIABLE_TO_ID = 4\n\n_CALL_MODE_NODE_PATH :: Int\n_CALL_MODE_NODE_PATH = 1\n\n_RPC_UNRELIABLE :: Int\n_RPC_UNRELIABLE = 2\n\n_CALL_MODE_SELF :: Int\n_CALL_MODE_SELF = 0\n\n_RPC_RELIABLE_TO_ID :: Int\n_RPC_RELIABLE_TO_ID = 3\n\n_CALL_MODE_INSTANCE :: Int\n_CALL_MODE_INSTANCE = 2\n\n_CALL_MODE_SINGLETON :: Int\n_CALL_MODE_SINGLETON = 4\n\n_RPC_DISABLED :: Int\n_RPC_DISABLED = 0\n\n_RPC_RELIABLE :: Int\n_RPC_RELIABLE = 1\n\ninstance NodeProperty VisualScriptFunctionCall \"argument_cache\"\n           Dictionary\n           'False\n         where\n        nodeProperty\n          = (_get_argument_cache, wrapDroppingSetter _set_argument_cache,\n             Nothing)\n\ninstance NodeProperty VisualScriptFunctionCall \"base_script\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_base_script, wrapDroppingSetter set_base_script, Nothing)\n\ninstance NodeProperty VisualScriptFunctionCall \"base_type\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_base_type, wrapDroppingSetter set_base_type, Nothing)\n\ninstance NodeProperty VisualScriptFunctionCall \"basic_type\" Int\n           'False\n         where\n        nodeProperty\n          = (get_basic_type, wrapDroppingSetter set_basic_type, Nothing)\n\ninstance NodeProperty VisualScriptFunctionCall \"call_mode\" Int\n           'False\n         where\n        nodeProperty\n          = (get_call_mode, wrapDroppingSetter set_call_mode, Nothing)\n\ninstance NodeProperty VisualScriptFunctionCall \"function\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_function, wrapDroppingSetter set_function, Nothing)\n\ninstance NodeProperty VisualScriptFunctionCall \"node_path\" NodePath\n           'False\n         where\n        nodeProperty\n          = (get_base_path, wrapDroppingSetter set_base_path, Nothing)\n\ninstance NodeProperty VisualScriptFunctionCall \"rpc_call_mode\" Int\n           'False\n         where\n        nodeProperty\n          = (get_rpc_call_mode, wrapDroppingSetter set_rpc_call_mode,\n             Nothing)\n\ninstance NodeProperty VisualScriptFunctionCall \"singleton\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_singleton, wrapDroppingSetter set_singleton, Nothing)\n\ninstance NodeProperty VisualScriptFunctionCall \"use_default_args\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_use_default_args, wrapDroppingSetter set_use_default_args,\n             Nothing)\n\ninstance NodeProperty VisualScriptFunctionCall \"validate\" Bool\n           'False\n         where\n        nodeProperty\n          = (get_validate, wrapDroppingSetter set_validate, Nothing)\n\n{-# NOINLINE bindVisualScriptFunctionCall__get_argument_cache #-}\n\nbindVisualScriptFunctionCall__get_argument_cache :: MethodBind\nbindVisualScriptFunctionCall__get_argument_cache\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"_get_argument_cache\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_argument_cache ::\n                      (VisualScriptFunctionCall :< cls, Object :< cls) =>\n                      cls -> IO Dictionary\n_get_argument_cache cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptFunctionCall__get_argument_cache\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"_get_argument_cache\"\n           '[]\n           (IO Dictionary)\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptFunctionCall._get_argument_cache\n\n{-# NOINLINE bindVisualScriptFunctionCall__set_argument_cache #-}\n\nbindVisualScriptFunctionCall__set_argument_cache :: MethodBind\nbindVisualScriptFunctionCall__set_argument_cache\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"_set_argument_cache\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_argument_cache ::\n                      (VisualScriptFunctionCall :< cls, Object :< cls) =>\n                      cls -> Dictionary -> IO ()\n_set_argument_cache cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptFunctionCall__set_argument_cache\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"_set_argument_cache\"\n           '[Dictionary]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptFunctionCall._set_argument_cache\n\n{-# NOINLINE bindVisualScriptFunctionCall_get_base_path #-}\n\nbindVisualScriptFunctionCall_get_base_path :: MethodBind\nbindVisualScriptFunctionCall_get_base_path\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"get_base_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_base_path ::\n                (VisualScriptFunctionCall :< cls, Object :< cls) =>\n                cls -> IO NodePath\nget_base_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptFunctionCall_get_base_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"get_base_path\" '[]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionCall.get_base_path\n\n{-# NOINLINE bindVisualScriptFunctionCall_get_base_script #-}\n\nbindVisualScriptFunctionCall_get_base_script :: MethodBind\nbindVisualScriptFunctionCall_get_base_script\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"get_base_script\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_base_script ::\n                  (VisualScriptFunctionCall :< cls, Object :< cls) =>\n                  cls -> IO GodotString\nget_base_script cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptFunctionCall_get_base_script\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"get_base_script\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionCall.get_base_script\n\n{-# NOINLINE bindVisualScriptFunctionCall_get_base_type #-}\n\nbindVisualScriptFunctionCall_get_base_type :: MethodBind\nbindVisualScriptFunctionCall_get_base_type\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"get_base_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_base_type ::\n                (VisualScriptFunctionCall :< cls, Object :< cls) =>\n                cls -> IO GodotString\nget_base_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptFunctionCall_get_base_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"get_base_type\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionCall.get_base_type\n\n{-# NOINLINE bindVisualScriptFunctionCall_get_basic_type #-}\n\nbindVisualScriptFunctionCall_get_basic_type :: MethodBind\nbindVisualScriptFunctionCall_get_basic_type\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"get_basic_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_basic_type ::\n                 (VisualScriptFunctionCall :< cls, Object :< cls) => cls -> IO Int\nget_basic_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptFunctionCall_get_basic_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"get_basic_type\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionCall.get_basic_type\n\n{-# NOINLINE bindVisualScriptFunctionCall_get_call_mode #-}\n\nbindVisualScriptFunctionCall_get_call_mode :: MethodBind\nbindVisualScriptFunctionCall_get_call_mode\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"get_call_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_call_mode ::\n                (VisualScriptFunctionCall :< cls, Object :< cls) => cls -> IO Int\nget_call_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptFunctionCall_get_call_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"get_call_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionCall.get_call_mode\n\n{-# NOINLINE bindVisualScriptFunctionCall_get_function #-}\n\nbindVisualScriptFunctionCall_get_function :: MethodBind\nbindVisualScriptFunctionCall_get_function\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"get_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_function ::\n               (VisualScriptFunctionCall :< cls, Object :< cls) =>\n               cls -> IO GodotString\nget_function cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptFunctionCall_get_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"get_function\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionCall.get_function\n\n{-# NOINLINE bindVisualScriptFunctionCall_get_rpc_call_mode #-}\n\nbindVisualScriptFunctionCall_get_rpc_call_mode :: MethodBind\nbindVisualScriptFunctionCall_get_rpc_call_mode\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"get_rpc_call_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_rpc_call_mode ::\n                    (VisualScriptFunctionCall :< cls, Object :< cls) => cls -> IO Int\nget_rpc_call_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptFunctionCall_get_rpc_call_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"get_rpc_call_mode\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionCall.get_rpc_call_mode\n\n{-# NOINLINE bindVisualScriptFunctionCall_get_singleton #-}\n\nbindVisualScriptFunctionCall_get_singleton :: MethodBind\nbindVisualScriptFunctionCall_get_singleton\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"get_singleton\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_singleton ::\n                (VisualScriptFunctionCall :< cls, Object :< cls) =>\n                cls -> IO GodotString\nget_singleton cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptFunctionCall_get_singleton\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"get_singleton\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionCall.get_singleton\n\n{-# NOINLINE bindVisualScriptFunctionCall_get_use_default_args #-}\n\nbindVisualScriptFunctionCall_get_use_default_args :: MethodBind\nbindVisualScriptFunctionCall_get_use_default_args\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"get_use_default_args\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_use_default_args ::\n                       (VisualScriptFunctionCall :< cls, Object :< cls) => cls -> IO Int\nget_use_default_args cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptFunctionCall_get_use_default_args\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"get_use_default_args\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptFunctionCall.get_use_default_args\n\n{-# NOINLINE bindVisualScriptFunctionCall_get_validate #-}\n\nbindVisualScriptFunctionCall_get_validate :: MethodBind\nbindVisualScriptFunctionCall_get_validate\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"get_validate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_validate ::\n               (VisualScriptFunctionCall :< cls, Object :< cls) => cls -> IO Bool\nget_validate cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptFunctionCall_get_validate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"get_validate\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionCall.get_validate\n\n{-# NOINLINE bindVisualScriptFunctionCall_set_base_path #-}\n\nbindVisualScriptFunctionCall_set_base_path :: MethodBind\nbindVisualScriptFunctionCall_set_base_path\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"set_base_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_base_path ::\n                (VisualScriptFunctionCall :< cls, Object :< cls) =>\n                cls -> NodePath -> IO ()\nset_base_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptFunctionCall_set_base_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"set_base_path\"\n           '[NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionCall.set_base_path\n\n{-# NOINLINE bindVisualScriptFunctionCall_set_base_script #-}\n\nbindVisualScriptFunctionCall_set_base_script :: MethodBind\nbindVisualScriptFunctionCall_set_base_script\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"set_base_script\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_base_script ::\n                  (VisualScriptFunctionCall :< cls, Object :< cls) =>\n                  cls -> GodotString -> IO ()\nset_base_script cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptFunctionCall_set_base_script\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"set_base_script\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionCall.set_base_script\n\n{-# NOINLINE bindVisualScriptFunctionCall_set_base_type #-}\n\nbindVisualScriptFunctionCall_set_base_type :: MethodBind\nbindVisualScriptFunctionCall_set_base_type\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"set_base_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_base_type ::\n                (VisualScriptFunctionCall :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\nset_base_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptFunctionCall_set_base_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"set_base_type\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionCall.set_base_type\n\n{-# NOINLINE bindVisualScriptFunctionCall_set_basic_type #-}\n\nbindVisualScriptFunctionCall_set_basic_type :: MethodBind\nbindVisualScriptFunctionCall_set_basic_type\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"set_basic_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_basic_type ::\n                 (VisualScriptFunctionCall :< cls, Object :< cls) =>\n                 cls -> Int -> IO ()\nset_basic_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptFunctionCall_set_basic_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"set_basic_type\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionCall.set_basic_type\n\n{-# NOINLINE bindVisualScriptFunctionCall_set_call_mode #-}\n\nbindVisualScriptFunctionCall_set_call_mode :: MethodBind\nbindVisualScriptFunctionCall_set_call_mode\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"set_call_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_call_mode ::\n                (VisualScriptFunctionCall :< cls, Object :< cls) =>\n                cls -> Int -> IO ()\nset_call_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptFunctionCall_set_call_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"set_call_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionCall.set_call_mode\n\n{-# NOINLINE bindVisualScriptFunctionCall_set_function #-}\n\nbindVisualScriptFunctionCall_set_function :: MethodBind\nbindVisualScriptFunctionCall_set_function\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"set_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_function ::\n               (VisualScriptFunctionCall :< cls, Object :< cls) =>\n               cls -> GodotString -> IO ()\nset_function cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptFunctionCall_set_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"set_function\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionCall.set_function\n\n{-# NOINLINE bindVisualScriptFunctionCall_set_rpc_call_mode #-}\n\nbindVisualScriptFunctionCall_set_rpc_call_mode :: MethodBind\nbindVisualScriptFunctionCall_set_rpc_call_mode\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"set_rpc_call_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_rpc_call_mode ::\n                    (VisualScriptFunctionCall :< cls, Object :< cls) =>\n                    cls -> Int -> IO ()\nset_rpc_call_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptFunctionCall_set_rpc_call_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"set_rpc_call_mode\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionCall.set_rpc_call_mode\n\n{-# NOINLINE bindVisualScriptFunctionCall_set_singleton #-}\n\nbindVisualScriptFunctionCall_set_singleton :: MethodBind\nbindVisualScriptFunctionCall_set_singleton\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"set_singleton\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_singleton ::\n                (VisualScriptFunctionCall :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\nset_singleton cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptFunctionCall_set_singleton\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"set_singleton\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionCall.set_singleton\n\n{-# NOINLINE bindVisualScriptFunctionCall_set_use_default_args #-}\n\nbindVisualScriptFunctionCall_set_use_default_args :: MethodBind\nbindVisualScriptFunctionCall_set_use_default_args\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"set_use_default_args\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_use_default_args ::\n                       (VisualScriptFunctionCall :< cls, Object :< cls) =>\n                       cls -> Int -> IO ()\nset_use_default_args cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptFunctionCall_set_use_default_args\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"set_use_default_args\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptFunctionCall.set_use_default_args\n\n{-# NOINLINE bindVisualScriptFunctionCall_set_validate #-}\n\nbindVisualScriptFunctionCall_set_validate :: MethodBind\nbindVisualScriptFunctionCall_set_validate\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionCall\" $\n        \\ clsNamePtr ->\n          withCString \"set_validate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_validate ::\n               (VisualScriptFunctionCall :< cls, Object :< cls) =>\n               cls -> Bool -> IO ()\nset_validate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptFunctionCall_set_validate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionCall \"set_validate\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionCall.set_validate"
  },
  {
    "path": "src/Godot/Core/VisualScriptFunctionState.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptFunctionState\n       (Godot.Core.VisualScriptFunctionState._signal_callback,\n        Godot.Core.VisualScriptFunctionState.connect_to_signal,\n        Godot.Core.VisualScriptFunctionState.is_valid,\n        Godot.Core.VisualScriptFunctionState.resume)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindVisualScriptFunctionState__signal_callback #-}\n\nbindVisualScriptFunctionState__signal_callback :: MethodBind\nbindVisualScriptFunctionState__signal_callback\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionState\" $\n        \\ clsNamePtr ->\n          withCString \"_signal_callback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_signal_callback ::\n                   (VisualScriptFunctionState :< cls, Object :< cls) =>\n                   cls -> [Variant 'GodotTy] -> IO GodotVariant\n_signal_callback cls varargs\n  = withVariantArray ([] ++ varargs)\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptFunctionState__signal_callback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionState \"_signal_callback\"\n           '[[Variant 'GodotTy]]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionState._signal_callback\n\n{-# NOINLINE bindVisualScriptFunctionState_connect_to_signal #-}\n\nbindVisualScriptFunctionState_connect_to_signal :: MethodBind\nbindVisualScriptFunctionState_connect_to_signal\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionState\" $\n        \\ clsNamePtr ->\n          withCString \"connect_to_signal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nconnect_to_signal ::\n                    (VisualScriptFunctionState :< cls, Object :< cls) =>\n                    cls -> Object -> GodotString -> Array -> IO ()\nconnect_to_signal cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptFunctionState_connect_to_signal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionState \"connect_to_signal\"\n           '[Object, GodotString, Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionState.connect_to_signal\n\n{-# NOINLINE bindVisualScriptFunctionState_is_valid #-}\n\nbindVisualScriptFunctionState_is_valid :: MethodBind\nbindVisualScriptFunctionState_is_valid\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionState\" $\n        \\ clsNamePtr ->\n          withCString \"is_valid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_valid ::\n           (VisualScriptFunctionState :< cls, Object :< cls) => cls -> IO Bool\nis_valid cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptFunctionState_is_valid\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionState \"is_valid\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionState.is_valid\n\n{-# NOINLINE bindVisualScriptFunctionState_resume #-}\n\nbindVisualScriptFunctionState_resume :: MethodBind\nbindVisualScriptFunctionState_resume\n  = unsafePerformIO $\n      withCString \"VisualScriptFunctionState\" $\n        \\ clsNamePtr ->\n          withCString \"resume\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nresume ::\n         (VisualScriptFunctionState :< cls, Object :< cls) =>\n         cls -> Maybe Array -> IO GodotVariant\nresume cls arg1\n  = withVariantArray [maybe VariantNil toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptFunctionState_resume\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptFunctionState \"resume\"\n           '[Maybe Array]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.VisualScriptFunctionState.resume"
  },
  {
    "path": "src/Godot/Core/VisualScriptGlobalConstant.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptGlobalConstant\n       (Godot.Core.VisualScriptGlobalConstant.get_global_constant,\n        Godot.Core.VisualScriptGlobalConstant.set_global_constant)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptGlobalConstant \"constant\" Int\n           'False\n         where\n        nodeProperty\n          = (get_global_constant, wrapDroppingSetter set_global_constant,\n             Nothing)\n\n{-# NOINLINE bindVisualScriptGlobalConstant_get_global_constant #-}\n\nbindVisualScriptGlobalConstant_get_global_constant :: MethodBind\nbindVisualScriptGlobalConstant_get_global_constant\n  = unsafePerformIO $\n      withCString \"VisualScriptGlobalConstant\" $\n        \\ clsNamePtr ->\n          withCString \"get_global_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_global_constant ::\n                      (VisualScriptGlobalConstant :< cls, Object :< cls) => cls -> IO Int\nget_global_constant cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptGlobalConstant_get_global_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptGlobalConstant\n           \"get_global_constant\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptGlobalConstant.get_global_constant\n\n{-# NOINLINE bindVisualScriptGlobalConstant_set_global_constant #-}\n\nbindVisualScriptGlobalConstant_set_global_constant :: MethodBind\nbindVisualScriptGlobalConstant_set_global_constant\n  = unsafePerformIO $\n      withCString \"VisualScriptGlobalConstant\" $\n        \\ clsNamePtr ->\n          withCString \"set_global_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_global_constant ::\n                      (VisualScriptGlobalConstant :< cls, Object :< cls) =>\n                      cls -> Int -> IO ()\nset_global_constant cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptGlobalConstant_set_global_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptGlobalConstant\n           \"set_global_constant\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualScriptGlobalConstant.set_global_constant"
  },
  {
    "path": "src/Godot/Core/VisualScriptIndexGet.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptIndexGet () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()"
  },
  {
    "path": "src/Godot/Core/VisualScriptIndexSet.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptIndexSet () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()"
  },
  {
    "path": "src/Godot/Core/VisualScriptInputAction.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptInputAction\n       (Godot.Core.VisualScriptInputAction._MODE_PRESSED,\n        Godot.Core.VisualScriptInputAction._MODE_JUST_PRESSED,\n        Godot.Core.VisualScriptInputAction._MODE_JUST_RELEASED,\n        Godot.Core.VisualScriptInputAction._MODE_RELEASED,\n        Godot.Core.VisualScriptInputAction.get_action_mode,\n        Godot.Core.VisualScriptInputAction.get_action_name,\n        Godot.Core.VisualScriptInputAction.set_action_mode,\n        Godot.Core.VisualScriptInputAction.set_action_name)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\n_MODE_PRESSED :: Int\n_MODE_PRESSED = 0\n\n_MODE_JUST_PRESSED :: Int\n_MODE_JUST_PRESSED = 2\n\n_MODE_JUST_RELEASED :: Int\n_MODE_JUST_RELEASED = 3\n\n_MODE_RELEASED :: Int\n_MODE_RELEASED = 1\n\ninstance NodeProperty VisualScriptInputAction \"action\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_action_name, wrapDroppingSetter set_action_name, Nothing)\n\ninstance NodeProperty VisualScriptInputAction \"mode\" Int 'False\n         where\n        nodeProperty\n          = (get_action_mode, wrapDroppingSetter set_action_mode, Nothing)\n\n{-# NOINLINE bindVisualScriptInputAction_get_action_mode #-}\n\nbindVisualScriptInputAction_get_action_mode :: MethodBind\nbindVisualScriptInputAction_get_action_mode\n  = unsafePerformIO $\n      withCString \"VisualScriptInputAction\" $\n        \\ clsNamePtr ->\n          withCString \"get_action_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_action_mode ::\n                  (VisualScriptInputAction :< cls, Object :< cls) => cls -> IO Int\nget_action_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptInputAction_get_action_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptInputAction \"get_action_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptInputAction.get_action_mode\n\n{-# NOINLINE bindVisualScriptInputAction_get_action_name #-}\n\nbindVisualScriptInputAction_get_action_name :: MethodBind\nbindVisualScriptInputAction_get_action_name\n  = unsafePerformIO $\n      withCString \"VisualScriptInputAction\" $\n        \\ clsNamePtr ->\n          withCString \"get_action_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_action_name ::\n                  (VisualScriptInputAction :< cls, Object :< cls) =>\n                  cls -> IO GodotString\nget_action_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptInputAction_get_action_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptInputAction \"get_action_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptInputAction.get_action_name\n\n{-# NOINLINE bindVisualScriptInputAction_set_action_mode #-}\n\nbindVisualScriptInputAction_set_action_mode :: MethodBind\nbindVisualScriptInputAction_set_action_mode\n  = unsafePerformIO $\n      withCString \"VisualScriptInputAction\" $\n        \\ clsNamePtr ->\n          withCString \"set_action_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_action_mode ::\n                  (VisualScriptInputAction :< cls, Object :< cls) =>\n                  cls -> Int -> IO ()\nset_action_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptInputAction_set_action_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptInputAction \"set_action_mode\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptInputAction.set_action_mode\n\n{-# NOINLINE bindVisualScriptInputAction_set_action_name #-}\n\nbindVisualScriptInputAction_set_action_name :: MethodBind\nbindVisualScriptInputAction_set_action_name\n  = unsafePerformIO $\n      withCString \"VisualScriptInputAction\" $\n        \\ clsNamePtr ->\n          withCString \"set_action_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_action_name ::\n                  (VisualScriptInputAction :< cls, Object :< cls) =>\n                  cls -> GodotString -> IO ()\nset_action_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptInputAction_set_action_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptInputAction \"set_action_name\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptInputAction.set_action_name"
  },
  {
    "path": "src/Godot/Core/VisualScriptIterator.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptIterator () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()"
  },
  {
    "path": "src/Godot/Core/VisualScriptLists.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptLists\n       (Godot.Core.VisualScriptLists.add_input_data_port,\n        Godot.Core.VisualScriptLists.add_output_data_port,\n        Godot.Core.VisualScriptLists.remove_input_data_port,\n        Godot.Core.VisualScriptLists.remove_output_data_port,\n        Godot.Core.VisualScriptLists.set_input_data_port_name,\n        Godot.Core.VisualScriptLists.set_input_data_port_type,\n        Godot.Core.VisualScriptLists.set_output_data_port_name,\n        Godot.Core.VisualScriptLists.set_output_data_port_type)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\n{-# NOINLINE bindVisualScriptLists_add_input_data_port #-}\n\nbindVisualScriptLists_add_input_data_port :: MethodBind\nbindVisualScriptLists_add_input_data_port\n  = unsafePerformIO $\n      withCString \"VisualScriptLists\" $\n        \\ clsNamePtr ->\n          withCString \"add_input_data_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_input_data_port ::\n                      (VisualScriptLists :< cls, Object :< cls) =>\n                      cls -> Int -> GodotString -> Int -> IO ()\nadd_input_data_port cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptLists_add_input_data_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptLists \"add_input_data_port\"\n           '[Int, GodotString, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptLists.add_input_data_port\n\n{-# NOINLINE bindVisualScriptLists_add_output_data_port #-}\n\nbindVisualScriptLists_add_output_data_port :: MethodBind\nbindVisualScriptLists_add_output_data_port\n  = unsafePerformIO $\n      withCString \"VisualScriptLists\" $\n        \\ clsNamePtr ->\n          withCString \"add_output_data_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_output_data_port ::\n                       (VisualScriptLists :< cls, Object :< cls) =>\n                       cls -> Int -> GodotString -> Int -> IO ()\nadd_output_data_port cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptLists_add_output_data_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptLists \"add_output_data_port\"\n           '[Int, GodotString, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptLists.add_output_data_port\n\n{-# NOINLINE bindVisualScriptLists_remove_input_data_port #-}\n\nbindVisualScriptLists_remove_input_data_port :: MethodBind\nbindVisualScriptLists_remove_input_data_port\n  = unsafePerformIO $\n      withCString \"VisualScriptLists\" $\n        \\ clsNamePtr ->\n          withCString \"remove_input_data_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nremove_input_data_port ::\n                         (VisualScriptLists :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_input_data_port cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptLists_remove_input_data_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptLists \"remove_input_data_port\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptLists.remove_input_data_port\n\n{-# NOINLINE bindVisualScriptLists_remove_output_data_port #-}\n\nbindVisualScriptLists_remove_output_data_port :: MethodBind\nbindVisualScriptLists_remove_output_data_port\n  = unsafePerformIO $\n      withCString \"VisualScriptLists\" $\n        \\ clsNamePtr ->\n          withCString \"remove_output_data_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nremove_output_data_port ::\n                          (VisualScriptLists :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_output_data_port cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptLists_remove_output_data_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptLists \"remove_output_data_port\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptLists.remove_output_data_port\n\n{-# NOINLINE bindVisualScriptLists_set_input_data_port_name #-}\n\nbindVisualScriptLists_set_input_data_port_name :: MethodBind\nbindVisualScriptLists_set_input_data_port_name\n  = unsafePerformIO $\n      withCString \"VisualScriptLists\" $\n        \\ clsNamePtr ->\n          withCString \"set_input_data_port_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_input_data_port_name ::\n                           (VisualScriptLists :< cls, Object :< cls) =>\n                           cls -> Int -> GodotString -> IO ()\nset_input_data_port_name cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptLists_set_input_data_port_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptLists \"set_input_data_port_name\"\n           '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptLists.set_input_data_port_name\n\n{-# NOINLINE bindVisualScriptLists_set_input_data_port_type #-}\n\nbindVisualScriptLists_set_input_data_port_type :: MethodBind\nbindVisualScriptLists_set_input_data_port_type\n  = unsafePerformIO $\n      withCString \"VisualScriptLists\" $\n        \\ clsNamePtr ->\n          withCString \"set_input_data_port_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_input_data_port_type ::\n                           (VisualScriptLists :< cls, Object :< cls) =>\n                           cls -> Int -> Int -> IO ()\nset_input_data_port_type cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptLists_set_input_data_port_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptLists \"set_input_data_port_type\"\n           '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptLists.set_input_data_port_type\n\n{-# NOINLINE bindVisualScriptLists_set_output_data_port_name #-}\n\nbindVisualScriptLists_set_output_data_port_name :: MethodBind\nbindVisualScriptLists_set_output_data_port_name\n  = unsafePerformIO $\n      withCString \"VisualScriptLists\" $\n        \\ clsNamePtr ->\n          withCString \"set_output_data_port_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_output_data_port_name ::\n                            (VisualScriptLists :< cls, Object :< cls) =>\n                            cls -> Int -> GodotString -> IO ()\nset_output_data_port_name cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptLists_set_output_data_port_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptLists \"set_output_data_port_name\"\n           '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptLists.set_output_data_port_name\n\n{-# NOINLINE bindVisualScriptLists_set_output_data_port_type #-}\n\nbindVisualScriptLists_set_output_data_port_type :: MethodBind\nbindVisualScriptLists_set_output_data_port_type\n  = unsafePerformIO $\n      withCString \"VisualScriptLists\" $\n        \\ clsNamePtr ->\n          withCString \"set_output_data_port_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_output_data_port_type ::\n                            (VisualScriptLists :< cls, Object :< cls) =>\n                            cls -> Int -> Int -> IO ()\nset_output_data_port_type cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptLists_set_output_data_port_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptLists \"set_output_data_port_type\"\n           '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptLists.set_output_data_port_type"
  },
  {
    "path": "src/Godot/Core/VisualScriptLocalVar.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptLocalVar\n       (Godot.Core.VisualScriptLocalVar.get_var_name,\n        Godot.Core.VisualScriptLocalVar.get_var_type,\n        Godot.Core.VisualScriptLocalVar.set_var_name,\n        Godot.Core.VisualScriptLocalVar.set_var_type)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptLocalVar \"type\" Int 'False where\n        nodeProperty\n          = (get_var_type, wrapDroppingSetter set_var_type, Nothing)\n\ninstance NodeProperty VisualScriptLocalVar \"var_name\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_var_name, wrapDroppingSetter set_var_name, Nothing)\n\n{-# NOINLINE bindVisualScriptLocalVar_get_var_name #-}\n\nbindVisualScriptLocalVar_get_var_name :: MethodBind\nbindVisualScriptLocalVar_get_var_name\n  = unsafePerformIO $\n      withCString \"VisualScriptLocalVar\" $\n        \\ clsNamePtr ->\n          withCString \"get_var_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_var_name ::\n               (VisualScriptLocalVar :< cls, Object :< cls) =>\n               cls -> IO GodotString\nget_var_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptLocalVar_get_var_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptLocalVar \"get_var_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptLocalVar.get_var_name\n\n{-# NOINLINE bindVisualScriptLocalVar_get_var_type #-}\n\nbindVisualScriptLocalVar_get_var_type :: MethodBind\nbindVisualScriptLocalVar_get_var_type\n  = unsafePerformIO $\n      withCString \"VisualScriptLocalVar\" $\n        \\ clsNamePtr ->\n          withCString \"get_var_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_var_type ::\n               (VisualScriptLocalVar :< cls, Object :< cls) => cls -> IO Int\nget_var_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptLocalVar_get_var_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptLocalVar \"get_var_type\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptLocalVar.get_var_type\n\n{-# NOINLINE bindVisualScriptLocalVar_set_var_name #-}\n\nbindVisualScriptLocalVar_set_var_name :: MethodBind\nbindVisualScriptLocalVar_set_var_name\n  = unsafePerformIO $\n      withCString \"VisualScriptLocalVar\" $\n        \\ clsNamePtr ->\n          withCString \"set_var_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_var_name ::\n               (VisualScriptLocalVar :< cls, Object :< cls) =>\n               cls -> GodotString -> IO ()\nset_var_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptLocalVar_set_var_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptLocalVar \"set_var_name\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptLocalVar.set_var_name\n\n{-# NOINLINE bindVisualScriptLocalVar_set_var_type #-}\n\nbindVisualScriptLocalVar_set_var_type :: MethodBind\nbindVisualScriptLocalVar_set_var_type\n  = unsafePerformIO $\n      withCString \"VisualScriptLocalVar\" $\n        \\ clsNamePtr ->\n          withCString \"set_var_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_var_type ::\n               (VisualScriptLocalVar :< cls, Object :< cls) => cls -> Int -> IO ()\nset_var_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptLocalVar_set_var_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptLocalVar \"set_var_type\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptLocalVar.set_var_type"
  },
  {
    "path": "src/Godot/Core/VisualScriptLocalVarSet.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptLocalVarSet\n       (Godot.Core.VisualScriptLocalVarSet.get_var_name,\n        Godot.Core.VisualScriptLocalVarSet.get_var_type,\n        Godot.Core.VisualScriptLocalVarSet.set_var_name,\n        Godot.Core.VisualScriptLocalVarSet.set_var_type)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptLocalVarSet \"type\" Int 'False\n         where\n        nodeProperty\n          = (get_var_type, wrapDroppingSetter set_var_type, Nothing)\n\ninstance NodeProperty VisualScriptLocalVarSet \"var_name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_var_name, wrapDroppingSetter set_var_name, Nothing)\n\n{-# NOINLINE bindVisualScriptLocalVarSet_get_var_name #-}\n\nbindVisualScriptLocalVarSet_get_var_name :: MethodBind\nbindVisualScriptLocalVarSet_get_var_name\n  = unsafePerformIO $\n      withCString \"VisualScriptLocalVarSet\" $\n        \\ clsNamePtr ->\n          withCString \"get_var_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_var_name ::\n               (VisualScriptLocalVarSet :< cls, Object :< cls) =>\n               cls -> IO GodotString\nget_var_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptLocalVarSet_get_var_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptLocalVarSet \"get_var_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptLocalVarSet.get_var_name\n\n{-# NOINLINE bindVisualScriptLocalVarSet_get_var_type #-}\n\nbindVisualScriptLocalVarSet_get_var_type :: MethodBind\nbindVisualScriptLocalVarSet_get_var_type\n  = unsafePerformIO $\n      withCString \"VisualScriptLocalVarSet\" $\n        \\ clsNamePtr ->\n          withCString \"get_var_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_var_type ::\n               (VisualScriptLocalVarSet :< cls, Object :< cls) => cls -> IO Int\nget_var_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptLocalVarSet_get_var_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptLocalVarSet \"get_var_type\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptLocalVarSet.get_var_type\n\n{-# NOINLINE bindVisualScriptLocalVarSet_set_var_name #-}\n\nbindVisualScriptLocalVarSet_set_var_name :: MethodBind\nbindVisualScriptLocalVarSet_set_var_name\n  = unsafePerformIO $\n      withCString \"VisualScriptLocalVarSet\" $\n        \\ clsNamePtr ->\n          withCString \"set_var_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_var_name ::\n               (VisualScriptLocalVarSet :< cls, Object :< cls) =>\n               cls -> GodotString -> IO ()\nset_var_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptLocalVarSet_set_var_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptLocalVarSet \"set_var_name\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptLocalVarSet.set_var_name\n\n{-# NOINLINE bindVisualScriptLocalVarSet_set_var_type #-}\n\nbindVisualScriptLocalVarSet_set_var_type :: MethodBind\nbindVisualScriptLocalVarSet_set_var_type\n  = unsafePerformIO $\n      withCString \"VisualScriptLocalVarSet\" $\n        \\ clsNamePtr ->\n          withCString \"set_var_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_var_type ::\n               (VisualScriptLocalVarSet :< cls, Object :< cls) =>\n               cls -> Int -> IO ()\nset_var_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptLocalVarSet_set_var_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptLocalVarSet \"set_var_type\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptLocalVarSet.set_var_type"
  },
  {
    "path": "src/Godot/Core/VisualScriptMathConstant.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptMathConstant\n       (Godot.Core.VisualScriptMathConstant._MATH_CONSTANT_INF,\n        Godot.Core.VisualScriptMathConstant._MATH_CONSTANT_MAX,\n        Godot.Core.VisualScriptMathConstant._MATH_CONSTANT_HALF_PI,\n        Godot.Core.VisualScriptMathConstant._MATH_CONSTANT_TAU,\n        Godot.Core.VisualScriptMathConstant._MATH_CONSTANT_NAN,\n        Godot.Core.VisualScriptMathConstant._MATH_CONSTANT_PI,\n        Godot.Core.VisualScriptMathConstant._MATH_CONSTANT_ONE,\n        Godot.Core.VisualScriptMathConstant._MATH_CONSTANT_SQRT2,\n        Godot.Core.VisualScriptMathConstant._MATH_CONSTANT_E,\n        Godot.Core.VisualScriptMathConstant.get_math_constant,\n        Godot.Core.VisualScriptMathConstant.set_math_constant)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\n_MATH_CONSTANT_INF :: Int\n_MATH_CONSTANT_INF = 6\n\n_MATH_CONSTANT_MAX :: Int\n_MATH_CONSTANT_MAX = 8\n\n_MATH_CONSTANT_HALF_PI :: Int\n_MATH_CONSTANT_HALF_PI = 2\n\n_MATH_CONSTANT_TAU :: Int\n_MATH_CONSTANT_TAU = 3\n\n_MATH_CONSTANT_NAN :: Int\n_MATH_CONSTANT_NAN = 7\n\n_MATH_CONSTANT_PI :: Int\n_MATH_CONSTANT_PI = 1\n\n_MATH_CONSTANT_ONE :: Int\n_MATH_CONSTANT_ONE = 0\n\n_MATH_CONSTANT_SQRT2 :: Int\n_MATH_CONSTANT_SQRT2 = 5\n\n_MATH_CONSTANT_E :: Int\n_MATH_CONSTANT_E = 4\n\ninstance NodeProperty VisualScriptMathConstant \"constant\" Int\n           'False\n         where\n        nodeProperty\n          = (get_math_constant, wrapDroppingSetter set_math_constant,\n             Nothing)\n\n{-# NOINLINE bindVisualScriptMathConstant_get_math_constant #-}\n\nbindVisualScriptMathConstant_get_math_constant :: MethodBind\nbindVisualScriptMathConstant_get_math_constant\n  = unsafePerformIO $\n      withCString \"VisualScriptMathConstant\" $\n        \\ clsNamePtr ->\n          withCString \"get_math_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_math_constant ::\n                    (VisualScriptMathConstant :< cls, Object :< cls) => cls -> IO Int\nget_math_constant cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptMathConstant_get_math_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptMathConstant \"get_math_constant\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptMathConstant.get_math_constant\n\n{-# NOINLINE bindVisualScriptMathConstant_set_math_constant #-}\n\nbindVisualScriptMathConstant_set_math_constant :: MethodBind\nbindVisualScriptMathConstant_set_math_constant\n  = unsafePerformIO $\n      withCString \"VisualScriptMathConstant\" $\n        \\ clsNamePtr ->\n          withCString \"set_math_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_math_constant ::\n                    (VisualScriptMathConstant :< cls, Object :< cls) =>\n                    cls -> Int -> IO ()\nset_math_constant cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptMathConstant_set_math_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptMathConstant \"set_math_constant\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptMathConstant.set_math_constant"
  },
  {
    "path": "src/Godot/Core/VisualScriptNode.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptNode\n       (Godot.Core.VisualScriptNode.sig_ports_changed,\n        Godot.Core.VisualScriptNode._get_default_input_values,\n        Godot.Core.VisualScriptNode._set_default_input_values,\n        Godot.Core.VisualScriptNode.get_default_input_value,\n        Godot.Core.VisualScriptNode.get_visual_script,\n        Godot.Core.VisualScriptNode.ports_changed_notify,\n        Godot.Core.VisualScriptNode.set_default_input_value)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\nsig_ports_changed ::\n                  Godot.Internal.Dispatch.Signal VisualScriptNode\nsig_ports_changed = Godot.Internal.Dispatch.Signal \"ports_changed\"\n\ninstance NodeSignal VisualScriptNode \"ports_changed\" '[]\n\ninstance NodeProperty VisualScriptNode \"_default_input_values\"\n           Array\n           'False\n         where\n        nodeProperty\n          = (_get_default_input_values,\n             wrapDroppingSetter _set_default_input_values, Nothing)\n\n{-# NOINLINE bindVisualScriptNode__get_default_input_values #-}\n\nbindVisualScriptNode__get_default_input_values :: MethodBind\nbindVisualScriptNode__get_default_input_values\n  = unsafePerformIO $\n      withCString \"VisualScriptNode\" $\n        \\ clsNamePtr ->\n          withCString \"_get_default_input_values\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_default_input_values ::\n                            (VisualScriptNode :< cls, Object :< cls) => cls -> IO Array\n_get_default_input_values cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptNode__get_default_input_values\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptNode \"_get_default_input_values\"\n           '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.VisualScriptNode._get_default_input_values\n\n{-# NOINLINE bindVisualScriptNode__set_default_input_values #-}\n\nbindVisualScriptNode__set_default_input_values :: MethodBind\nbindVisualScriptNode__set_default_input_values\n  = unsafePerformIO $\n      withCString \"VisualScriptNode\" $\n        \\ clsNamePtr ->\n          withCString \"_set_default_input_values\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_default_input_values ::\n                            (VisualScriptNode :< cls, Object :< cls) => cls -> Array -> IO ()\n_set_default_input_values cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptNode__set_default_input_values\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptNode \"_set_default_input_values\"\n           '[Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptNode._set_default_input_values\n\n{-# NOINLINE bindVisualScriptNode_get_default_input_value #-}\n\nbindVisualScriptNode_get_default_input_value :: MethodBind\nbindVisualScriptNode_get_default_input_value\n  = unsafePerformIO $\n      withCString \"VisualScriptNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_default_input_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_default_input_value ::\n                          (VisualScriptNode :< cls, Object :< cls) =>\n                          cls -> Int -> IO GodotVariant\nget_default_input_value cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptNode_get_default_input_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptNode \"get_default_input_value\"\n           '[Int]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.VisualScriptNode.get_default_input_value\n\n{-# NOINLINE bindVisualScriptNode_get_visual_script #-}\n\nbindVisualScriptNode_get_visual_script :: MethodBind\nbindVisualScriptNode_get_visual_script\n  = unsafePerformIO $\n      withCString \"VisualScriptNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_visual_script\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_visual_script ::\n                    (VisualScriptNode :< cls, Object :< cls) => cls -> IO VisualScript\nget_visual_script cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptNode_get_visual_script\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptNode \"get_visual_script\" '[]\n           (IO VisualScript)\n         where\n        nodeMethod = Godot.Core.VisualScriptNode.get_visual_script\n\n{-# NOINLINE bindVisualScriptNode_ports_changed_notify #-}\n\nbindVisualScriptNode_ports_changed_notify :: MethodBind\nbindVisualScriptNode_ports_changed_notify\n  = unsafePerformIO $\n      withCString \"VisualScriptNode\" $\n        \\ clsNamePtr ->\n          withCString \"ports_changed_notify\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nports_changed_notify ::\n                       (VisualScriptNode :< cls, Object :< cls) => cls -> IO ()\nports_changed_notify cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptNode_ports_changed_notify\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptNode \"ports_changed_notify\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptNode.ports_changed_notify\n\n{-# NOINLINE bindVisualScriptNode_set_default_input_value #-}\n\nbindVisualScriptNode_set_default_input_value :: MethodBind\nbindVisualScriptNode_set_default_input_value\n  = unsafePerformIO $\n      withCString \"VisualScriptNode\" $\n        \\ clsNamePtr ->\n          withCString \"set_default_input_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_default_input_value ::\n                          (VisualScriptNode :< cls, Object :< cls) =>\n                          cls -> Int -> GodotVariant -> IO ()\nset_default_input_value cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptNode_set_default_input_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptNode \"set_default_input_value\"\n           '[Int, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptNode.set_default_input_value"
  },
  {
    "path": "src/Godot/Core/VisualScriptOperator.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptOperator\n       (Godot.Core.VisualScriptOperator.get_operator,\n        Godot.Core.VisualScriptOperator.get_typed,\n        Godot.Core.VisualScriptOperator.set_operator,\n        Godot.Core.VisualScriptOperator.set_typed)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptOperator \"operator\" Int 'False\n         where\n        nodeProperty\n          = (get_operator, wrapDroppingSetter set_operator, Nothing)\n\ninstance NodeProperty VisualScriptOperator \"type\" Int 'False where\n        nodeProperty = (get_typed, wrapDroppingSetter set_typed, Nothing)\n\n{-# NOINLINE bindVisualScriptOperator_get_operator #-}\n\nbindVisualScriptOperator_get_operator :: MethodBind\nbindVisualScriptOperator_get_operator\n  = unsafePerformIO $\n      withCString \"VisualScriptOperator\" $\n        \\ clsNamePtr ->\n          withCString \"get_operator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_operator ::\n               (VisualScriptOperator :< cls, Object :< cls) => cls -> IO Int\nget_operator cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptOperator_get_operator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptOperator \"get_operator\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptOperator.get_operator\n\n{-# NOINLINE bindVisualScriptOperator_get_typed #-}\n\nbindVisualScriptOperator_get_typed :: MethodBind\nbindVisualScriptOperator_get_typed\n  = unsafePerformIO $\n      withCString \"VisualScriptOperator\" $\n        \\ clsNamePtr ->\n          withCString \"get_typed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_typed ::\n            (VisualScriptOperator :< cls, Object :< cls) => cls -> IO Int\nget_typed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptOperator_get_typed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptOperator \"get_typed\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptOperator.get_typed\n\n{-# NOINLINE bindVisualScriptOperator_set_operator #-}\n\nbindVisualScriptOperator_set_operator :: MethodBind\nbindVisualScriptOperator_set_operator\n  = unsafePerformIO $\n      withCString \"VisualScriptOperator\" $\n        \\ clsNamePtr ->\n          withCString \"set_operator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_operator ::\n               (VisualScriptOperator :< cls, Object :< cls) => cls -> Int -> IO ()\nset_operator cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptOperator_set_operator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptOperator \"set_operator\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptOperator.set_operator\n\n{-# NOINLINE bindVisualScriptOperator_set_typed #-}\n\nbindVisualScriptOperator_set_typed :: MethodBind\nbindVisualScriptOperator_set_typed\n  = unsafePerformIO $\n      withCString \"VisualScriptOperator\" $\n        \\ clsNamePtr ->\n          withCString \"set_typed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_typed ::\n            (VisualScriptOperator :< cls, Object :< cls) => cls -> Int -> IO ()\nset_typed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptOperator_set_typed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptOperator \"set_typed\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptOperator.set_typed"
  },
  {
    "path": "src/Godot/Core/VisualScriptPreload.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptPreload\n       (Godot.Core.VisualScriptPreload.get_preload,\n        Godot.Core.VisualScriptPreload.set_preload)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptPreload \"resource\" Resource\n           'False\n         where\n        nodeProperty\n          = (get_preload, wrapDroppingSetter set_preload, Nothing)\n\n{-# NOINLINE bindVisualScriptPreload_get_preload #-}\n\nbindVisualScriptPreload_get_preload :: MethodBind\nbindVisualScriptPreload_get_preload\n  = unsafePerformIO $\n      withCString \"VisualScriptPreload\" $\n        \\ clsNamePtr ->\n          withCString \"get_preload\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_preload ::\n              (VisualScriptPreload :< cls, Object :< cls) => cls -> IO Resource\nget_preload cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPreload_get_preload\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPreload \"get_preload\" '[]\n           (IO Resource)\n         where\n        nodeMethod = Godot.Core.VisualScriptPreload.get_preload\n\n{-# NOINLINE bindVisualScriptPreload_set_preload #-}\n\nbindVisualScriptPreload_set_preload :: MethodBind\nbindVisualScriptPreload_set_preload\n  = unsafePerformIO $\n      withCString \"VisualScriptPreload\" $\n        \\ clsNamePtr ->\n          withCString \"set_preload\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_preload ::\n              (VisualScriptPreload :< cls, Object :< cls) =>\n              cls -> Resource -> IO ()\nset_preload cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPreload_set_preload\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPreload \"set_preload\" '[Resource]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptPreload.set_preload"
  },
  {
    "path": "src/Godot/Core/VisualScriptPropertyGet.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptPropertyGet\n       (Godot.Core.VisualScriptPropertyGet._CALL_MODE_NODE_PATH,\n        Godot.Core.VisualScriptPropertyGet._CALL_MODE_SELF,\n        Godot.Core.VisualScriptPropertyGet._CALL_MODE_INSTANCE,\n        Godot.Core.VisualScriptPropertyGet._get_type_cache,\n        Godot.Core.VisualScriptPropertyGet._set_type_cache,\n        Godot.Core.VisualScriptPropertyGet.get_base_path,\n        Godot.Core.VisualScriptPropertyGet.get_base_script,\n        Godot.Core.VisualScriptPropertyGet.get_base_type,\n        Godot.Core.VisualScriptPropertyGet.get_basic_type,\n        Godot.Core.VisualScriptPropertyGet.get_call_mode,\n        Godot.Core.VisualScriptPropertyGet.get_index,\n        Godot.Core.VisualScriptPropertyGet.get_property,\n        Godot.Core.VisualScriptPropertyGet.set_base_path,\n        Godot.Core.VisualScriptPropertyGet.set_base_script,\n        Godot.Core.VisualScriptPropertyGet.set_base_type,\n        Godot.Core.VisualScriptPropertyGet.set_basic_type,\n        Godot.Core.VisualScriptPropertyGet.set_call_mode,\n        Godot.Core.VisualScriptPropertyGet.set_index,\n        Godot.Core.VisualScriptPropertyGet.set_property)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\n_CALL_MODE_NODE_PATH :: Int\n_CALL_MODE_NODE_PATH = 1\n\n_CALL_MODE_SELF :: Int\n_CALL_MODE_SELF = 0\n\n_CALL_MODE_INSTANCE :: Int\n_CALL_MODE_INSTANCE = 2\n\ninstance NodeProperty VisualScriptPropertyGet \"base_script\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_base_script, wrapDroppingSetter set_base_script, Nothing)\n\ninstance NodeProperty VisualScriptPropertyGet \"base_type\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_base_type, wrapDroppingSetter set_base_type, Nothing)\n\ninstance NodeProperty VisualScriptPropertyGet \"basic_type\" Int\n           'False\n         where\n        nodeProperty\n          = (get_basic_type, wrapDroppingSetter set_basic_type, Nothing)\n\ninstance NodeProperty VisualScriptPropertyGet \"index\" GodotString\n           'False\n         where\n        nodeProperty = (get_index, wrapDroppingSetter set_index, Nothing)\n\ninstance NodeProperty VisualScriptPropertyGet \"node_path\" NodePath\n           'False\n         where\n        nodeProperty\n          = (get_base_path, wrapDroppingSetter set_base_path, Nothing)\n\ninstance NodeProperty VisualScriptPropertyGet \"property\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_property, wrapDroppingSetter set_property, Nothing)\n\ninstance NodeProperty VisualScriptPropertyGet \"set_mode\" Int 'False\n         where\n        nodeProperty\n          = (get_call_mode, wrapDroppingSetter set_call_mode, Nothing)\n\ninstance NodeProperty VisualScriptPropertyGet \"type_cache\" Int\n           'False\n         where\n        nodeProperty\n          = (_get_type_cache, wrapDroppingSetter _set_type_cache, Nothing)\n\n{-# NOINLINE bindVisualScriptPropertyGet__get_type_cache #-}\n\nbindVisualScriptPropertyGet__get_type_cache :: MethodBind\nbindVisualScriptPropertyGet__get_type_cache\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertyGet\" $\n        \\ clsNamePtr ->\n          withCString \"_get_type_cache\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_type_cache ::\n                  (VisualScriptPropertyGet :< cls, Object :< cls) => cls -> IO Int\n_get_type_cache cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertyGet__get_type_cache\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertyGet \"_get_type_cache\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertyGet._get_type_cache\n\n{-# NOINLINE bindVisualScriptPropertyGet__set_type_cache #-}\n\nbindVisualScriptPropertyGet__set_type_cache :: MethodBind\nbindVisualScriptPropertyGet__set_type_cache\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertyGet\" $\n        \\ clsNamePtr ->\n          withCString \"_set_type_cache\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_type_cache ::\n                  (VisualScriptPropertyGet :< cls, Object :< cls) =>\n                  cls -> Int -> IO ()\n_set_type_cache cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertyGet__set_type_cache\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertyGet \"_set_type_cache\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertyGet._set_type_cache\n\n{-# NOINLINE bindVisualScriptPropertyGet_get_base_path #-}\n\nbindVisualScriptPropertyGet_get_base_path :: MethodBind\nbindVisualScriptPropertyGet_get_base_path\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertyGet\" $\n        \\ clsNamePtr ->\n          withCString \"get_base_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_base_path ::\n                (VisualScriptPropertyGet :< cls, Object :< cls) =>\n                cls -> IO NodePath\nget_base_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertyGet_get_base_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertyGet \"get_base_path\" '[]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertyGet.get_base_path\n\n{-# NOINLINE bindVisualScriptPropertyGet_get_base_script #-}\n\nbindVisualScriptPropertyGet_get_base_script :: MethodBind\nbindVisualScriptPropertyGet_get_base_script\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertyGet\" $\n        \\ clsNamePtr ->\n          withCString \"get_base_script\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_base_script ::\n                  (VisualScriptPropertyGet :< cls, Object :< cls) =>\n                  cls -> IO GodotString\nget_base_script cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertyGet_get_base_script\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertyGet \"get_base_script\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertyGet.get_base_script\n\n{-# NOINLINE bindVisualScriptPropertyGet_get_base_type #-}\n\nbindVisualScriptPropertyGet_get_base_type :: MethodBind\nbindVisualScriptPropertyGet_get_base_type\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertyGet\" $\n        \\ clsNamePtr ->\n          withCString \"get_base_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_base_type ::\n                (VisualScriptPropertyGet :< cls, Object :< cls) =>\n                cls -> IO GodotString\nget_base_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertyGet_get_base_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertyGet \"get_base_type\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertyGet.get_base_type\n\n{-# NOINLINE bindVisualScriptPropertyGet_get_basic_type #-}\n\nbindVisualScriptPropertyGet_get_basic_type :: MethodBind\nbindVisualScriptPropertyGet_get_basic_type\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertyGet\" $\n        \\ clsNamePtr ->\n          withCString \"get_basic_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_basic_type ::\n                 (VisualScriptPropertyGet :< cls, Object :< cls) => cls -> IO Int\nget_basic_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertyGet_get_basic_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertyGet \"get_basic_type\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertyGet.get_basic_type\n\n{-# NOINLINE bindVisualScriptPropertyGet_get_call_mode #-}\n\nbindVisualScriptPropertyGet_get_call_mode :: MethodBind\nbindVisualScriptPropertyGet_get_call_mode\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertyGet\" $\n        \\ clsNamePtr ->\n          withCString \"get_call_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_call_mode ::\n                (VisualScriptPropertyGet :< cls, Object :< cls) => cls -> IO Int\nget_call_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertyGet_get_call_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertyGet \"get_call_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertyGet.get_call_mode\n\n{-# NOINLINE bindVisualScriptPropertyGet_get_index #-}\n\nbindVisualScriptPropertyGet_get_index :: MethodBind\nbindVisualScriptPropertyGet_get_index\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertyGet\" $\n        \\ clsNamePtr ->\n          withCString \"get_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_index ::\n            (VisualScriptPropertyGet :< cls, Object :< cls) =>\n            cls -> IO GodotString\nget_index cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertyGet_get_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertyGet \"get_index\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertyGet.get_index\n\n{-# NOINLINE bindVisualScriptPropertyGet_get_property #-}\n\nbindVisualScriptPropertyGet_get_property :: MethodBind\nbindVisualScriptPropertyGet_get_property\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertyGet\" $\n        \\ clsNamePtr ->\n          withCString \"get_property\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_property ::\n               (VisualScriptPropertyGet :< cls, Object :< cls) =>\n               cls -> IO GodotString\nget_property cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertyGet_get_property\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertyGet \"get_property\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertyGet.get_property\n\n{-# NOINLINE bindVisualScriptPropertyGet_set_base_path #-}\n\nbindVisualScriptPropertyGet_set_base_path :: MethodBind\nbindVisualScriptPropertyGet_set_base_path\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertyGet\" $\n        \\ clsNamePtr ->\n          withCString \"set_base_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_base_path ::\n                (VisualScriptPropertyGet :< cls, Object :< cls) =>\n                cls -> NodePath -> IO ()\nset_base_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertyGet_set_base_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertyGet \"set_base_path\"\n           '[NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertyGet.set_base_path\n\n{-# NOINLINE bindVisualScriptPropertyGet_set_base_script #-}\n\nbindVisualScriptPropertyGet_set_base_script :: MethodBind\nbindVisualScriptPropertyGet_set_base_script\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertyGet\" $\n        \\ clsNamePtr ->\n          withCString \"set_base_script\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_base_script ::\n                  (VisualScriptPropertyGet :< cls, Object :< cls) =>\n                  cls -> GodotString -> IO ()\nset_base_script cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertyGet_set_base_script\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertyGet \"set_base_script\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertyGet.set_base_script\n\n{-# NOINLINE bindVisualScriptPropertyGet_set_base_type #-}\n\nbindVisualScriptPropertyGet_set_base_type :: MethodBind\nbindVisualScriptPropertyGet_set_base_type\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertyGet\" $\n        \\ clsNamePtr ->\n          withCString \"set_base_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_base_type ::\n                (VisualScriptPropertyGet :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\nset_base_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertyGet_set_base_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertyGet \"set_base_type\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertyGet.set_base_type\n\n{-# NOINLINE bindVisualScriptPropertyGet_set_basic_type #-}\n\nbindVisualScriptPropertyGet_set_basic_type :: MethodBind\nbindVisualScriptPropertyGet_set_basic_type\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertyGet\" $\n        \\ clsNamePtr ->\n          withCString \"set_basic_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_basic_type ::\n                 (VisualScriptPropertyGet :< cls, Object :< cls) =>\n                 cls -> Int -> IO ()\nset_basic_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertyGet_set_basic_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertyGet \"set_basic_type\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertyGet.set_basic_type\n\n{-# NOINLINE bindVisualScriptPropertyGet_set_call_mode #-}\n\nbindVisualScriptPropertyGet_set_call_mode :: MethodBind\nbindVisualScriptPropertyGet_set_call_mode\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertyGet\" $\n        \\ clsNamePtr ->\n          withCString \"set_call_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_call_mode ::\n                (VisualScriptPropertyGet :< cls, Object :< cls) =>\n                cls -> Int -> IO ()\nset_call_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertyGet_set_call_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertyGet \"set_call_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertyGet.set_call_mode\n\n{-# NOINLINE bindVisualScriptPropertyGet_set_index #-}\n\nbindVisualScriptPropertyGet_set_index :: MethodBind\nbindVisualScriptPropertyGet_set_index\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertyGet\" $\n        \\ clsNamePtr ->\n          withCString \"set_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_index ::\n            (VisualScriptPropertyGet :< cls, Object :< cls) =>\n            cls -> GodotString -> IO ()\nset_index cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertyGet_set_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertyGet \"set_index\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertyGet.set_index\n\n{-# NOINLINE bindVisualScriptPropertyGet_set_property #-}\n\nbindVisualScriptPropertyGet_set_property :: MethodBind\nbindVisualScriptPropertyGet_set_property\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertyGet\" $\n        \\ clsNamePtr ->\n          withCString \"set_property\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_property ::\n               (VisualScriptPropertyGet :< cls, Object :< cls) =>\n               cls -> GodotString -> IO ()\nset_property cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertyGet_set_property\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertyGet \"set_property\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertyGet.set_property"
  },
  {
    "path": "src/Godot/Core/VisualScriptPropertySet.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptPropertySet\n       (Godot.Core.VisualScriptPropertySet._CALL_MODE_BASIC_TYPE,\n        Godot.Core.VisualScriptPropertySet._ASSIGN_OP_SHIFT_LEFT,\n        Godot.Core.VisualScriptPropertySet._ASSIGN_OP_DIV,\n        Godot.Core.VisualScriptPropertySet._ASSIGN_OP_MOD,\n        Godot.Core.VisualScriptPropertySet._CALL_MODE_NODE_PATH,\n        Godot.Core.VisualScriptPropertySet._ASSIGN_OP_BIT_OR,\n        Godot.Core.VisualScriptPropertySet._ASSIGN_OP_SHIFT_RIGHT,\n        Godot.Core.VisualScriptPropertySet._ASSIGN_OP_NONE,\n        Godot.Core.VisualScriptPropertySet._ASSIGN_OP_ADD,\n        Godot.Core.VisualScriptPropertySet._ASSIGN_OP_MUL,\n        Godot.Core.VisualScriptPropertySet._ASSIGN_OP_SUB,\n        Godot.Core.VisualScriptPropertySet._ASSIGN_OP_BIT_AND,\n        Godot.Core.VisualScriptPropertySet._CALL_MODE_SELF,\n        Godot.Core.VisualScriptPropertySet._CALL_MODE_INSTANCE,\n        Godot.Core.VisualScriptPropertySet._ASSIGN_OP_BIT_XOR,\n        Godot.Core.VisualScriptPropertySet._get_type_cache,\n        Godot.Core.VisualScriptPropertySet._set_type_cache,\n        Godot.Core.VisualScriptPropertySet.get_assign_op,\n        Godot.Core.VisualScriptPropertySet.get_base_path,\n        Godot.Core.VisualScriptPropertySet.get_base_script,\n        Godot.Core.VisualScriptPropertySet.get_base_type,\n        Godot.Core.VisualScriptPropertySet.get_basic_type,\n        Godot.Core.VisualScriptPropertySet.get_call_mode,\n        Godot.Core.VisualScriptPropertySet.get_index,\n        Godot.Core.VisualScriptPropertySet.get_property,\n        Godot.Core.VisualScriptPropertySet.set_assign_op,\n        Godot.Core.VisualScriptPropertySet.set_base_path,\n        Godot.Core.VisualScriptPropertySet.set_base_script,\n        Godot.Core.VisualScriptPropertySet.set_base_type,\n        Godot.Core.VisualScriptPropertySet.set_basic_type,\n        Godot.Core.VisualScriptPropertySet.set_call_mode,\n        Godot.Core.VisualScriptPropertySet.set_index,\n        Godot.Core.VisualScriptPropertySet.set_property)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\n_CALL_MODE_BASIC_TYPE :: Int\n_CALL_MODE_BASIC_TYPE = 3\n\n_ASSIGN_OP_SHIFT_LEFT :: Int\n_ASSIGN_OP_SHIFT_LEFT = 6\n\n_ASSIGN_OP_DIV :: Int\n_ASSIGN_OP_DIV = 4\n\n_ASSIGN_OP_MOD :: Int\n_ASSIGN_OP_MOD = 5\n\n_CALL_MODE_NODE_PATH :: Int\n_CALL_MODE_NODE_PATH = 1\n\n_ASSIGN_OP_BIT_OR :: Int\n_ASSIGN_OP_BIT_OR = 9\n\n_ASSIGN_OP_SHIFT_RIGHT :: Int\n_ASSIGN_OP_SHIFT_RIGHT = 7\n\n_ASSIGN_OP_NONE :: Int\n_ASSIGN_OP_NONE = 0\n\n_ASSIGN_OP_ADD :: Int\n_ASSIGN_OP_ADD = 1\n\n_ASSIGN_OP_MUL :: Int\n_ASSIGN_OP_MUL = 3\n\n_ASSIGN_OP_SUB :: Int\n_ASSIGN_OP_SUB = 2\n\n_ASSIGN_OP_BIT_AND :: Int\n_ASSIGN_OP_BIT_AND = 8\n\n_CALL_MODE_SELF :: Int\n_CALL_MODE_SELF = 0\n\n_CALL_MODE_INSTANCE :: Int\n_CALL_MODE_INSTANCE = 2\n\n_ASSIGN_OP_BIT_XOR :: Int\n_ASSIGN_OP_BIT_XOR = 10\n\ninstance NodeProperty VisualScriptPropertySet \"assign_op\" Int\n           'False\n         where\n        nodeProperty\n          = (get_assign_op, wrapDroppingSetter set_assign_op, Nothing)\n\ninstance NodeProperty VisualScriptPropertySet \"base_script\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_base_script, wrapDroppingSetter set_base_script, Nothing)\n\ninstance NodeProperty VisualScriptPropertySet \"base_type\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_base_type, wrapDroppingSetter set_base_type, Nothing)\n\ninstance NodeProperty VisualScriptPropertySet \"basic_type\" Int\n           'False\n         where\n        nodeProperty\n          = (get_basic_type, wrapDroppingSetter set_basic_type, Nothing)\n\ninstance NodeProperty VisualScriptPropertySet \"index\" GodotString\n           'False\n         where\n        nodeProperty = (get_index, wrapDroppingSetter set_index, Nothing)\n\ninstance NodeProperty VisualScriptPropertySet \"node_path\" NodePath\n           'False\n         where\n        nodeProperty\n          = (get_base_path, wrapDroppingSetter set_base_path, Nothing)\n\ninstance NodeProperty VisualScriptPropertySet \"property\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_property, wrapDroppingSetter set_property, Nothing)\n\ninstance NodeProperty VisualScriptPropertySet \"set_mode\" Int 'False\n         where\n        nodeProperty\n          = (get_call_mode, wrapDroppingSetter set_call_mode, Nothing)\n\ninstance NodeProperty VisualScriptPropertySet \"type_cache\"\n           Dictionary\n           'False\n         where\n        nodeProperty\n          = (_get_type_cache, wrapDroppingSetter _set_type_cache, Nothing)\n\n{-# NOINLINE bindVisualScriptPropertySet__get_type_cache #-}\n\nbindVisualScriptPropertySet__get_type_cache :: MethodBind\nbindVisualScriptPropertySet__get_type_cache\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertySet\" $\n        \\ clsNamePtr ->\n          withCString \"_get_type_cache\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_type_cache ::\n                  (VisualScriptPropertySet :< cls, Object :< cls) =>\n                  cls -> IO Dictionary\n_get_type_cache cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertySet__get_type_cache\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertySet \"_get_type_cache\" '[]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertySet._get_type_cache\n\n{-# NOINLINE bindVisualScriptPropertySet__set_type_cache #-}\n\nbindVisualScriptPropertySet__set_type_cache :: MethodBind\nbindVisualScriptPropertySet__set_type_cache\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertySet\" $\n        \\ clsNamePtr ->\n          withCString \"_set_type_cache\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_type_cache ::\n                  (VisualScriptPropertySet :< cls, Object :< cls) =>\n                  cls -> Dictionary -> IO ()\n_set_type_cache cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertySet__set_type_cache\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertySet \"_set_type_cache\"\n           '[Dictionary]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertySet._set_type_cache\n\n{-# NOINLINE bindVisualScriptPropertySet_get_assign_op #-}\n\nbindVisualScriptPropertySet_get_assign_op :: MethodBind\nbindVisualScriptPropertySet_get_assign_op\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertySet\" $\n        \\ clsNamePtr ->\n          withCString \"get_assign_op\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_assign_op ::\n                (VisualScriptPropertySet :< cls, Object :< cls) => cls -> IO Int\nget_assign_op cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertySet_get_assign_op\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertySet \"get_assign_op\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertySet.get_assign_op\n\n{-# NOINLINE bindVisualScriptPropertySet_get_base_path #-}\n\nbindVisualScriptPropertySet_get_base_path :: MethodBind\nbindVisualScriptPropertySet_get_base_path\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertySet\" $\n        \\ clsNamePtr ->\n          withCString \"get_base_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_base_path ::\n                (VisualScriptPropertySet :< cls, Object :< cls) =>\n                cls -> IO NodePath\nget_base_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertySet_get_base_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertySet \"get_base_path\" '[]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertySet.get_base_path\n\n{-# NOINLINE bindVisualScriptPropertySet_get_base_script #-}\n\nbindVisualScriptPropertySet_get_base_script :: MethodBind\nbindVisualScriptPropertySet_get_base_script\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertySet\" $\n        \\ clsNamePtr ->\n          withCString \"get_base_script\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_base_script ::\n                  (VisualScriptPropertySet :< cls, Object :< cls) =>\n                  cls -> IO GodotString\nget_base_script cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertySet_get_base_script\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertySet \"get_base_script\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertySet.get_base_script\n\n{-# NOINLINE bindVisualScriptPropertySet_get_base_type #-}\n\nbindVisualScriptPropertySet_get_base_type :: MethodBind\nbindVisualScriptPropertySet_get_base_type\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertySet\" $\n        \\ clsNamePtr ->\n          withCString \"get_base_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_base_type ::\n                (VisualScriptPropertySet :< cls, Object :< cls) =>\n                cls -> IO GodotString\nget_base_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertySet_get_base_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertySet \"get_base_type\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertySet.get_base_type\n\n{-# NOINLINE bindVisualScriptPropertySet_get_basic_type #-}\n\nbindVisualScriptPropertySet_get_basic_type :: MethodBind\nbindVisualScriptPropertySet_get_basic_type\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertySet\" $\n        \\ clsNamePtr ->\n          withCString \"get_basic_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_basic_type ::\n                 (VisualScriptPropertySet :< cls, Object :< cls) => cls -> IO Int\nget_basic_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertySet_get_basic_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertySet \"get_basic_type\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertySet.get_basic_type\n\n{-# NOINLINE bindVisualScriptPropertySet_get_call_mode #-}\n\nbindVisualScriptPropertySet_get_call_mode :: MethodBind\nbindVisualScriptPropertySet_get_call_mode\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertySet\" $\n        \\ clsNamePtr ->\n          withCString \"get_call_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_call_mode ::\n                (VisualScriptPropertySet :< cls, Object :< cls) => cls -> IO Int\nget_call_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertySet_get_call_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertySet \"get_call_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertySet.get_call_mode\n\n{-# NOINLINE bindVisualScriptPropertySet_get_index #-}\n\nbindVisualScriptPropertySet_get_index :: MethodBind\nbindVisualScriptPropertySet_get_index\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertySet\" $\n        \\ clsNamePtr ->\n          withCString \"get_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_index ::\n            (VisualScriptPropertySet :< cls, Object :< cls) =>\n            cls -> IO GodotString\nget_index cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertySet_get_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertySet \"get_index\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertySet.get_index\n\n{-# NOINLINE bindVisualScriptPropertySet_get_property #-}\n\nbindVisualScriptPropertySet_get_property :: MethodBind\nbindVisualScriptPropertySet_get_property\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertySet\" $\n        \\ clsNamePtr ->\n          withCString \"get_property\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_property ::\n               (VisualScriptPropertySet :< cls, Object :< cls) =>\n               cls -> IO GodotString\nget_property cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertySet_get_property\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertySet \"get_property\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertySet.get_property\n\n{-# NOINLINE bindVisualScriptPropertySet_set_assign_op #-}\n\nbindVisualScriptPropertySet_set_assign_op :: MethodBind\nbindVisualScriptPropertySet_set_assign_op\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertySet\" $\n        \\ clsNamePtr ->\n          withCString \"set_assign_op\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_assign_op ::\n                (VisualScriptPropertySet :< cls, Object :< cls) =>\n                cls -> Int -> IO ()\nset_assign_op cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertySet_set_assign_op\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertySet \"set_assign_op\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertySet.set_assign_op\n\n{-# NOINLINE bindVisualScriptPropertySet_set_base_path #-}\n\nbindVisualScriptPropertySet_set_base_path :: MethodBind\nbindVisualScriptPropertySet_set_base_path\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertySet\" $\n        \\ clsNamePtr ->\n          withCString \"set_base_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_base_path ::\n                (VisualScriptPropertySet :< cls, Object :< cls) =>\n                cls -> NodePath -> IO ()\nset_base_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertySet_set_base_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertySet \"set_base_path\"\n           '[NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertySet.set_base_path\n\n{-# NOINLINE bindVisualScriptPropertySet_set_base_script #-}\n\nbindVisualScriptPropertySet_set_base_script :: MethodBind\nbindVisualScriptPropertySet_set_base_script\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertySet\" $\n        \\ clsNamePtr ->\n          withCString \"set_base_script\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_base_script ::\n                  (VisualScriptPropertySet :< cls, Object :< cls) =>\n                  cls -> GodotString -> IO ()\nset_base_script cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertySet_set_base_script\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertySet \"set_base_script\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertySet.set_base_script\n\n{-# NOINLINE bindVisualScriptPropertySet_set_base_type #-}\n\nbindVisualScriptPropertySet_set_base_type :: MethodBind\nbindVisualScriptPropertySet_set_base_type\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertySet\" $\n        \\ clsNamePtr ->\n          withCString \"set_base_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_base_type ::\n                (VisualScriptPropertySet :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\nset_base_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertySet_set_base_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertySet \"set_base_type\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertySet.set_base_type\n\n{-# NOINLINE bindVisualScriptPropertySet_set_basic_type #-}\n\nbindVisualScriptPropertySet_set_basic_type :: MethodBind\nbindVisualScriptPropertySet_set_basic_type\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertySet\" $\n        \\ clsNamePtr ->\n          withCString \"set_basic_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_basic_type ::\n                 (VisualScriptPropertySet :< cls, Object :< cls) =>\n                 cls -> Int -> IO ()\nset_basic_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertySet_set_basic_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertySet \"set_basic_type\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertySet.set_basic_type\n\n{-# NOINLINE bindVisualScriptPropertySet_set_call_mode #-}\n\nbindVisualScriptPropertySet_set_call_mode :: MethodBind\nbindVisualScriptPropertySet_set_call_mode\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertySet\" $\n        \\ clsNamePtr ->\n          withCString \"set_call_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_call_mode ::\n                (VisualScriptPropertySet :< cls, Object :< cls) =>\n                cls -> Int -> IO ()\nset_call_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertySet_set_call_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertySet \"set_call_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertySet.set_call_mode\n\n{-# NOINLINE bindVisualScriptPropertySet_set_index #-}\n\nbindVisualScriptPropertySet_set_index :: MethodBind\nbindVisualScriptPropertySet_set_index\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertySet\" $\n        \\ clsNamePtr ->\n          withCString \"set_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_index ::\n            (VisualScriptPropertySet :< cls, Object :< cls) =>\n            cls -> GodotString -> IO ()\nset_index cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertySet_set_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertySet \"set_index\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertySet.set_index\n\n{-# NOINLINE bindVisualScriptPropertySet_set_property #-}\n\nbindVisualScriptPropertySet_set_property :: MethodBind\nbindVisualScriptPropertySet_set_property\n  = unsafePerformIO $\n      withCString \"VisualScriptPropertySet\" $\n        \\ clsNamePtr ->\n          withCString \"set_property\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_property ::\n               (VisualScriptPropertySet :< cls, Object :< cls) =>\n               cls -> GodotString -> IO ()\nset_property cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptPropertySet_set_property\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptPropertySet \"set_property\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptPropertySet.set_property"
  },
  {
    "path": "src/Godot/Core/VisualScriptResourcePath.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptResourcePath\n       (Godot.Core.VisualScriptResourcePath.get_resource_path,\n        Godot.Core.VisualScriptResourcePath.set_resource_path)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptResourcePath \"path\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_resource_path, wrapDroppingSetter set_resource_path,\n             Nothing)\n\n{-# NOINLINE bindVisualScriptResourcePath_get_resource_path #-}\n\nbindVisualScriptResourcePath_get_resource_path :: MethodBind\nbindVisualScriptResourcePath_get_resource_path\n  = unsafePerformIO $\n      withCString \"VisualScriptResourcePath\" $\n        \\ clsNamePtr ->\n          withCString \"get_resource_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_resource_path ::\n                    (VisualScriptResourcePath :< cls, Object :< cls) =>\n                    cls -> IO GodotString\nget_resource_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptResourcePath_get_resource_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptResourcePath \"get_resource_path\"\n           '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptResourcePath.get_resource_path\n\n{-# NOINLINE bindVisualScriptResourcePath_set_resource_path #-}\n\nbindVisualScriptResourcePath_set_resource_path :: MethodBind\nbindVisualScriptResourcePath_set_resource_path\n  = unsafePerformIO $\n      withCString \"VisualScriptResourcePath\" $\n        \\ clsNamePtr ->\n          withCString \"set_resource_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_resource_path ::\n                    (VisualScriptResourcePath :< cls, Object :< cls) =>\n                    cls -> GodotString -> IO ()\nset_resource_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptResourcePath_set_resource_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptResourcePath \"set_resource_path\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptResourcePath.set_resource_path"
  },
  {
    "path": "src/Godot/Core/VisualScriptReturn.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptReturn\n       (Godot.Core.VisualScriptReturn.get_return_type,\n        Godot.Core.VisualScriptReturn.is_return_value_enabled,\n        Godot.Core.VisualScriptReturn.set_enable_return_value,\n        Godot.Core.VisualScriptReturn.set_return_type)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptReturn \"return_enabled\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_return_value_enabled,\n             wrapDroppingSetter set_enable_return_value, Nothing)\n\ninstance NodeProperty VisualScriptReturn \"return_type\" Int 'False\n         where\n        nodeProperty\n          = (get_return_type, wrapDroppingSetter set_return_type, Nothing)\n\n{-# NOINLINE bindVisualScriptReturn_get_return_type #-}\n\nbindVisualScriptReturn_get_return_type :: MethodBind\nbindVisualScriptReturn_get_return_type\n  = unsafePerformIO $\n      withCString \"VisualScriptReturn\" $\n        \\ clsNamePtr ->\n          withCString \"get_return_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_return_type ::\n                  (VisualScriptReturn :< cls, Object :< cls) => cls -> IO Int\nget_return_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptReturn_get_return_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptReturn \"get_return_type\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptReturn.get_return_type\n\n{-# NOINLINE bindVisualScriptReturn_is_return_value_enabled #-}\n\nbindVisualScriptReturn_is_return_value_enabled :: MethodBind\nbindVisualScriptReturn_is_return_value_enabled\n  = unsafePerformIO $\n      withCString \"VisualScriptReturn\" $\n        \\ clsNamePtr ->\n          withCString \"is_return_value_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_return_value_enabled ::\n                          (VisualScriptReturn :< cls, Object :< cls) => cls -> IO Bool\nis_return_value_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptReturn_is_return_value_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptReturn \"is_return_value_enabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualScriptReturn.is_return_value_enabled\n\n{-# NOINLINE bindVisualScriptReturn_set_enable_return_value #-}\n\nbindVisualScriptReturn_set_enable_return_value :: MethodBind\nbindVisualScriptReturn_set_enable_return_value\n  = unsafePerformIO $\n      withCString \"VisualScriptReturn\" $\n        \\ clsNamePtr ->\n          withCString \"set_enable_return_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_enable_return_value ::\n                          (VisualScriptReturn :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_enable_return_value cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualScriptReturn_set_enable_return_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptReturn \"set_enable_return_value\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptReturn.set_enable_return_value\n\n{-# NOINLINE bindVisualScriptReturn_set_return_type #-}\n\nbindVisualScriptReturn_set_return_type :: MethodBind\nbindVisualScriptReturn_set_return_type\n  = unsafePerformIO $\n      withCString \"VisualScriptReturn\" $\n        \\ clsNamePtr ->\n          withCString \"set_return_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_return_type ::\n                  (VisualScriptReturn :< cls, Object :< cls) => cls -> Int -> IO ()\nset_return_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptReturn_set_return_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptReturn \"set_return_type\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptReturn.set_return_type"
  },
  {
    "path": "src/Godot/Core/VisualScriptSceneNode.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptSceneNode\n       (Godot.Core.VisualScriptSceneNode.get_node_path,\n        Godot.Core.VisualScriptSceneNode.set_node_path)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptSceneNode \"node_path\" NodePath\n           'False\n         where\n        nodeProperty\n          = (get_node_path, wrapDroppingSetter set_node_path, Nothing)\n\n{-# NOINLINE bindVisualScriptSceneNode_get_node_path #-}\n\nbindVisualScriptSceneNode_get_node_path :: MethodBind\nbindVisualScriptSceneNode_get_node_path\n  = unsafePerformIO $\n      withCString \"VisualScriptSceneNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_node_path ::\n                (VisualScriptSceneNode :< cls, Object :< cls) => cls -> IO NodePath\nget_node_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptSceneNode_get_node_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptSceneNode \"get_node_path\" '[]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.VisualScriptSceneNode.get_node_path\n\n{-# NOINLINE bindVisualScriptSceneNode_set_node_path #-}\n\nbindVisualScriptSceneNode_set_node_path :: MethodBind\nbindVisualScriptSceneNode_set_node_path\n  = unsafePerformIO $\n      withCString \"VisualScriptSceneNode\" $\n        \\ clsNamePtr ->\n          withCString \"set_node_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_node_path ::\n                (VisualScriptSceneNode :< cls, Object :< cls) =>\n                cls -> NodePath -> IO ()\nset_node_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptSceneNode_set_node_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptSceneNode \"set_node_path\"\n           '[NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptSceneNode.set_node_path"
  },
  {
    "path": "src/Godot/Core/VisualScriptSceneTree.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptSceneTree () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()"
  },
  {
    "path": "src/Godot/Core/VisualScriptSelect.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptSelect\n       (Godot.Core.VisualScriptSelect.get_typed,\n        Godot.Core.VisualScriptSelect.set_typed)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptSelect \"type\" Int 'False where\n        nodeProperty = (get_typed, wrapDroppingSetter set_typed, Nothing)\n\n{-# NOINLINE bindVisualScriptSelect_get_typed #-}\n\nbindVisualScriptSelect_get_typed :: MethodBind\nbindVisualScriptSelect_get_typed\n  = unsafePerformIO $\n      withCString \"VisualScriptSelect\" $\n        \\ clsNamePtr ->\n          withCString \"get_typed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_typed ::\n            (VisualScriptSelect :< cls, Object :< cls) => cls -> IO Int\nget_typed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptSelect_get_typed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptSelect \"get_typed\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptSelect.get_typed\n\n{-# NOINLINE bindVisualScriptSelect_set_typed #-}\n\nbindVisualScriptSelect_set_typed :: MethodBind\nbindVisualScriptSelect_set_typed\n  = unsafePerformIO $\n      withCString \"VisualScriptSelect\" $\n        \\ clsNamePtr ->\n          withCString \"set_typed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_typed ::\n            (VisualScriptSelect :< cls, Object :< cls) => cls -> Int -> IO ()\nset_typed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptSelect_set_typed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptSelect \"set_typed\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptSelect.set_typed"
  },
  {
    "path": "src/Godot/Core/VisualScriptSelf.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptSelf () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()"
  },
  {
    "path": "src/Godot/Core/VisualScriptSequence.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptSequence\n       (Godot.Core.VisualScriptSequence.get_steps,\n        Godot.Core.VisualScriptSequence.set_steps)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptSequence \"steps\" Int 'False where\n        nodeProperty = (get_steps, wrapDroppingSetter set_steps, Nothing)\n\n{-# NOINLINE bindVisualScriptSequence_get_steps #-}\n\nbindVisualScriptSequence_get_steps :: MethodBind\nbindVisualScriptSequence_get_steps\n  = unsafePerformIO $\n      withCString \"VisualScriptSequence\" $\n        \\ clsNamePtr ->\n          withCString \"get_steps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_steps ::\n            (VisualScriptSequence :< cls, Object :< cls) => cls -> IO Int\nget_steps cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptSequence_get_steps\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptSequence \"get_steps\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptSequence.get_steps\n\n{-# NOINLINE bindVisualScriptSequence_set_steps #-}\n\nbindVisualScriptSequence_set_steps :: MethodBind\nbindVisualScriptSequence_set_steps\n  = unsafePerformIO $\n      withCString \"VisualScriptSequence\" $\n        \\ clsNamePtr ->\n          withCString \"set_steps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_steps ::\n            (VisualScriptSequence :< cls, Object :< cls) => cls -> Int -> IO ()\nset_steps cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptSequence_set_steps\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptSequence \"set_steps\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptSequence.set_steps"
  },
  {
    "path": "src/Godot/Core/VisualScriptSubCall.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptSubCall\n       (Godot.Core.VisualScriptSubCall._subcall) where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\n{-# NOINLINE bindVisualScriptSubCall__subcall #-}\n\nbindVisualScriptSubCall__subcall :: MethodBind\nbindVisualScriptSubCall__subcall\n  = unsafePerformIO $\n      withCString \"VisualScriptSubCall\" $\n        \\ clsNamePtr ->\n          withCString \"_subcall\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_subcall ::\n           (VisualScriptSubCall :< cls, Object :< cls) =>\n           cls -> GodotVariant -> IO GodotVariant\n_subcall cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptSubCall__subcall\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptSubCall \"_subcall\" '[GodotVariant]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.VisualScriptSubCall._subcall"
  },
  {
    "path": "src/Godot/Core/VisualScriptSwitch.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptSwitch () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()"
  },
  {
    "path": "src/Godot/Core/VisualScriptTypeCast.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptTypeCast\n       (Godot.Core.VisualScriptTypeCast.get_base_script,\n        Godot.Core.VisualScriptTypeCast.get_base_type,\n        Godot.Core.VisualScriptTypeCast.set_base_script,\n        Godot.Core.VisualScriptTypeCast.set_base_type)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptTypeCast \"base_script\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_base_script, wrapDroppingSetter set_base_script, Nothing)\n\ninstance NodeProperty VisualScriptTypeCast \"base_type\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_base_type, wrapDroppingSetter set_base_type, Nothing)\n\n{-# NOINLINE bindVisualScriptTypeCast_get_base_script #-}\n\nbindVisualScriptTypeCast_get_base_script :: MethodBind\nbindVisualScriptTypeCast_get_base_script\n  = unsafePerformIO $\n      withCString \"VisualScriptTypeCast\" $\n        \\ clsNamePtr ->\n          withCString \"get_base_script\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_base_script ::\n                  (VisualScriptTypeCast :< cls, Object :< cls) =>\n                  cls -> IO GodotString\nget_base_script cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptTypeCast_get_base_script\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptTypeCast \"get_base_script\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptTypeCast.get_base_script\n\n{-# NOINLINE bindVisualScriptTypeCast_get_base_type #-}\n\nbindVisualScriptTypeCast_get_base_type :: MethodBind\nbindVisualScriptTypeCast_get_base_type\n  = unsafePerformIO $\n      withCString \"VisualScriptTypeCast\" $\n        \\ clsNamePtr ->\n          withCString \"get_base_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_base_type ::\n                (VisualScriptTypeCast :< cls, Object :< cls) =>\n                cls -> IO GodotString\nget_base_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptTypeCast_get_base_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptTypeCast \"get_base_type\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptTypeCast.get_base_type\n\n{-# NOINLINE bindVisualScriptTypeCast_set_base_script #-}\n\nbindVisualScriptTypeCast_set_base_script :: MethodBind\nbindVisualScriptTypeCast_set_base_script\n  = unsafePerformIO $\n      withCString \"VisualScriptTypeCast\" $\n        \\ clsNamePtr ->\n          withCString \"set_base_script\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_base_script ::\n                  (VisualScriptTypeCast :< cls, Object :< cls) =>\n                  cls -> GodotString -> IO ()\nset_base_script cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptTypeCast_set_base_script\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptTypeCast \"set_base_script\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptTypeCast.set_base_script\n\n{-# NOINLINE bindVisualScriptTypeCast_set_base_type #-}\n\nbindVisualScriptTypeCast_set_base_type :: MethodBind\nbindVisualScriptTypeCast_set_base_type\n  = unsafePerformIO $\n      withCString \"VisualScriptTypeCast\" $\n        \\ clsNamePtr ->\n          withCString \"set_base_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_base_type ::\n                (VisualScriptTypeCast :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\nset_base_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptTypeCast_set_base_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptTypeCast \"set_base_type\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptTypeCast.set_base_type"
  },
  {
    "path": "src/Godot/Core/VisualScriptVariableGet.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptVariableGet\n       (Godot.Core.VisualScriptVariableGet.get_variable,\n        Godot.Core.VisualScriptVariableGet.set_variable)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptVariableGet \"var_name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_variable, wrapDroppingSetter set_variable, Nothing)\n\n{-# NOINLINE bindVisualScriptVariableGet_get_variable #-}\n\nbindVisualScriptVariableGet_get_variable :: MethodBind\nbindVisualScriptVariableGet_get_variable\n  = unsafePerformIO $\n      withCString \"VisualScriptVariableGet\" $\n        \\ clsNamePtr ->\n          withCString \"get_variable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_variable ::\n               (VisualScriptVariableGet :< cls, Object :< cls) =>\n               cls -> IO GodotString\nget_variable cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptVariableGet_get_variable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptVariableGet \"get_variable\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptVariableGet.get_variable\n\n{-# NOINLINE bindVisualScriptVariableGet_set_variable #-}\n\nbindVisualScriptVariableGet_set_variable :: MethodBind\nbindVisualScriptVariableGet_set_variable\n  = unsafePerformIO $\n      withCString \"VisualScriptVariableGet\" $\n        \\ clsNamePtr ->\n          withCString \"set_variable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_variable ::\n               (VisualScriptVariableGet :< cls, Object :< cls) =>\n               cls -> GodotString -> IO ()\nset_variable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptVariableGet_set_variable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptVariableGet \"set_variable\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptVariableGet.set_variable"
  },
  {
    "path": "src/Godot/Core/VisualScriptVariableSet.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptVariableSet\n       (Godot.Core.VisualScriptVariableSet.get_variable,\n        Godot.Core.VisualScriptVariableSet.set_variable)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\ninstance NodeProperty VisualScriptVariableSet \"var_name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_variable, wrapDroppingSetter set_variable, Nothing)\n\n{-# NOINLINE bindVisualScriptVariableSet_get_variable #-}\n\nbindVisualScriptVariableSet_get_variable :: MethodBind\nbindVisualScriptVariableSet_get_variable\n  = unsafePerformIO $\n      withCString \"VisualScriptVariableSet\" $\n        \\ clsNamePtr ->\n          withCString \"get_variable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_variable ::\n               (VisualScriptVariableSet :< cls, Object :< cls) =>\n               cls -> IO GodotString\nget_variable cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptVariableSet_get_variable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptVariableSet \"get_variable\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptVariableSet.get_variable\n\n{-# NOINLINE bindVisualScriptVariableSet_set_variable #-}\n\nbindVisualScriptVariableSet_set_variable :: MethodBind\nbindVisualScriptVariableSet_set_variable\n  = unsafePerformIO $\n      withCString \"VisualScriptVariableSet\" $\n        \\ clsNamePtr ->\n          withCString \"set_variable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_variable ::\n               (VisualScriptVariableSet :< cls, Object :< cls) =>\n               cls -> GodotString -> IO ()\nset_variable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptVariableSet_set_variable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptVariableSet \"set_variable\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptVariableSet.set_variable"
  },
  {
    "path": "src/Godot/Core/VisualScriptWhile.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptWhile () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()"
  },
  {
    "path": "src/Godot/Core/VisualScriptYield.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptYield\n       (Godot.Core.VisualScriptYield._YIELD_FRAME,\n        Godot.Core.VisualScriptYield._YIELD_PHYSICS_FRAME,\n        Godot.Core.VisualScriptYield._YIELD_WAIT,\n        Godot.Core.VisualScriptYield.get_wait_time,\n        Godot.Core.VisualScriptYield.get_yield_mode,\n        Godot.Core.VisualScriptYield.set_wait_time,\n        Godot.Core.VisualScriptYield.set_yield_mode)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\n_YIELD_FRAME :: Int\n_YIELD_FRAME = 1\n\n_YIELD_PHYSICS_FRAME :: Int\n_YIELD_PHYSICS_FRAME = 2\n\n_YIELD_WAIT :: Int\n_YIELD_WAIT = 3\n\ninstance NodeProperty VisualScriptYield \"mode\" Int 'False where\n        nodeProperty\n          = (get_yield_mode, wrapDroppingSetter set_yield_mode, Nothing)\n\ninstance NodeProperty VisualScriptYield \"wait_time\" Float 'False\n         where\n        nodeProperty\n          = (get_wait_time, wrapDroppingSetter set_wait_time, Nothing)\n\n{-# NOINLINE bindVisualScriptYield_get_wait_time #-}\n\nbindVisualScriptYield_get_wait_time :: MethodBind\nbindVisualScriptYield_get_wait_time\n  = unsafePerformIO $\n      withCString \"VisualScriptYield\" $\n        \\ clsNamePtr ->\n          withCString \"get_wait_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_wait_time ::\n                (VisualScriptYield :< cls, Object :< cls) => cls -> IO Float\nget_wait_time cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptYield_get_wait_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptYield \"get_wait_time\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.VisualScriptYield.get_wait_time\n\n{-# NOINLINE bindVisualScriptYield_get_yield_mode #-}\n\nbindVisualScriptYield_get_yield_mode :: MethodBind\nbindVisualScriptYield_get_yield_mode\n  = unsafePerformIO $\n      withCString \"VisualScriptYield\" $\n        \\ clsNamePtr ->\n          withCString \"get_yield_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_yield_mode ::\n                 (VisualScriptYield :< cls, Object :< cls) => cls -> IO Int\nget_yield_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptYield_get_yield_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptYield \"get_yield_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptYield.get_yield_mode\n\n{-# NOINLINE bindVisualScriptYield_set_wait_time #-}\n\nbindVisualScriptYield_set_wait_time :: MethodBind\nbindVisualScriptYield_set_wait_time\n  = unsafePerformIO $\n      withCString \"VisualScriptYield\" $\n        \\ clsNamePtr ->\n          withCString \"set_wait_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_wait_time ::\n                (VisualScriptYield :< cls, Object :< cls) => cls -> Float -> IO ()\nset_wait_time cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptYield_set_wait_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptYield \"set_wait_time\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptYield.set_wait_time\n\n{-# NOINLINE bindVisualScriptYield_set_yield_mode #-}\n\nbindVisualScriptYield_set_yield_mode :: MethodBind\nbindVisualScriptYield_set_yield_mode\n  = unsafePerformIO $\n      withCString \"VisualScriptYield\" $\n        \\ clsNamePtr ->\n          withCString \"set_yield_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_yield_mode ::\n                 (VisualScriptYield :< cls, Object :< cls) => cls -> Int -> IO ()\nset_yield_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptYield_set_yield_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptYield \"set_yield_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptYield.set_yield_mode"
  },
  {
    "path": "src/Godot/Core/VisualScriptYieldSignal.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualScriptYieldSignal\n       (Godot.Core.VisualScriptYieldSignal._CALL_MODE_NODE_PATH,\n        Godot.Core.VisualScriptYieldSignal._CALL_MODE_SELF,\n        Godot.Core.VisualScriptYieldSignal._CALL_MODE_INSTANCE,\n        Godot.Core.VisualScriptYieldSignal.get_base_path,\n        Godot.Core.VisualScriptYieldSignal.get_base_type,\n        Godot.Core.VisualScriptYieldSignal.get_call_mode,\n        Godot.Core.VisualScriptYieldSignal.get_signal,\n        Godot.Core.VisualScriptYieldSignal.set_base_path,\n        Godot.Core.VisualScriptYieldSignal.set_base_type,\n        Godot.Core.VisualScriptYieldSignal.set_call_mode,\n        Godot.Core.VisualScriptYieldSignal.set_signal)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualScriptNode()\n\n_CALL_MODE_NODE_PATH :: Int\n_CALL_MODE_NODE_PATH = 1\n\n_CALL_MODE_SELF :: Int\n_CALL_MODE_SELF = 0\n\n_CALL_MODE_INSTANCE :: Int\n_CALL_MODE_INSTANCE = 2\n\ninstance NodeProperty VisualScriptYieldSignal \"base_type\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_base_type, wrapDroppingSetter set_base_type, Nothing)\n\ninstance NodeProperty VisualScriptYieldSignal \"call_mode\" Int\n           'False\n         where\n        nodeProperty\n          = (get_call_mode, wrapDroppingSetter set_call_mode, Nothing)\n\ninstance NodeProperty VisualScriptYieldSignal \"node_path\" NodePath\n           'False\n         where\n        nodeProperty\n          = (get_base_path, wrapDroppingSetter set_base_path, Nothing)\n\ninstance NodeProperty VisualScriptYieldSignal \"signal\" GodotString\n           'False\n         where\n        nodeProperty = (get_signal, wrapDroppingSetter set_signal, Nothing)\n\n{-# NOINLINE bindVisualScriptYieldSignal_get_base_path #-}\n\nbindVisualScriptYieldSignal_get_base_path :: MethodBind\nbindVisualScriptYieldSignal_get_base_path\n  = unsafePerformIO $\n      withCString \"VisualScriptYieldSignal\" $\n        \\ clsNamePtr ->\n          withCString \"get_base_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_base_path ::\n                (VisualScriptYieldSignal :< cls, Object :< cls) =>\n                cls -> IO NodePath\nget_base_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptYieldSignal_get_base_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptYieldSignal \"get_base_path\" '[]\n           (IO NodePath)\n         where\n        nodeMethod = Godot.Core.VisualScriptYieldSignal.get_base_path\n\n{-# NOINLINE bindVisualScriptYieldSignal_get_base_type #-}\n\nbindVisualScriptYieldSignal_get_base_type :: MethodBind\nbindVisualScriptYieldSignal_get_base_type\n  = unsafePerformIO $\n      withCString \"VisualScriptYieldSignal\" $\n        \\ clsNamePtr ->\n          withCString \"get_base_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_base_type ::\n                (VisualScriptYieldSignal :< cls, Object :< cls) =>\n                cls -> IO GodotString\nget_base_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptYieldSignal_get_base_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptYieldSignal \"get_base_type\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptYieldSignal.get_base_type\n\n{-# NOINLINE bindVisualScriptYieldSignal_get_call_mode #-}\n\nbindVisualScriptYieldSignal_get_call_mode :: MethodBind\nbindVisualScriptYieldSignal_get_call_mode\n  = unsafePerformIO $\n      withCString \"VisualScriptYieldSignal\" $\n        \\ clsNamePtr ->\n          withCString \"get_call_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_call_mode ::\n                (VisualScriptYieldSignal :< cls, Object :< cls) => cls -> IO Int\nget_call_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptYieldSignal_get_call_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptYieldSignal \"get_call_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualScriptYieldSignal.get_call_mode\n\n{-# NOINLINE bindVisualScriptYieldSignal_get_signal #-}\n\nbindVisualScriptYieldSignal_get_signal :: MethodBind\nbindVisualScriptYieldSignal_get_signal\n  = unsafePerformIO $\n      withCString \"VisualScriptYieldSignal\" $\n        \\ clsNamePtr ->\n          withCString \"get_signal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_signal ::\n             (VisualScriptYieldSignal :< cls, Object :< cls) =>\n             cls -> IO GodotString\nget_signal cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptYieldSignal_get_signal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptYieldSignal \"get_signal\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualScriptYieldSignal.get_signal\n\n{-# NOINLINE bindVisualScriptYieldSignal_set_base_path #-}\n\nbindVisualScriptYieldSignal_set_base_path :: MethodBind\nbindVisualScriptYieldSignal_set_base_path\n  = unsafePerformIO $\n      withCString \"VisualScriptYieldSignal\" $\n        \\ clsNamePtr ->\n          withCString \"set_base_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_base_path ::\n                (VisualScriptYieldSignal :< cls, Object :< cls) =>\n                cls -> NodePath -> IO ()\nset_base_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptYieldSignal_set_base_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptYieldSignal \"set_base_path\"\n           '[NodePath]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptYieldSignal.set_base_path\n\n{-# NOINLINE bindVisualScriptYieldSignal_set_base_type #-}\n\nbindVisualScriptYieldSignal_set_base_type :: MethodBind\nbindVisualScriptYieldSignal_set_base_type\n  = unsafePerformIO $\n      withCString \"VisualScriptYieldSignal\" $\n        \\ clsNamePtr ->\n          withCString \"set_base_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_base_type ::\n                (VisualScriptYieldSignal :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\nset_base_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptYieldSignal_set_base_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptYieldSignal \"set_base_type\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptYieldSignal.set_base_type\n\n{-# NOINLINE bindVisualScriptYieldSignal_set_call_mode #-}\n\nbindVisualScriptYieldSignal_set_call_mode :: MethodBind\nbindVisualScriptYieldSignal_set_call_mode\n  = unsafePerformIO $\n      withCString \"VisualScriptYieldSignal\" $\n        \\ clsNamePtr ->\n          withCString \"set_call_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_call_mode ::\n                (VisualScriptYieldSignal :< cls, Object :< cls) =>\n                cls -> Int -> IO ()\nset_call_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptYieldSignal_set_call_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptYieldSignal \"set_call_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptYieldSignal.set_call_mode\n\n{-# NOINLINE bindVisualScriptYieldSignal_set_signal #-}\n\nbindVisualScriptYieldSignal_set_signal :: MethodBind\nbindVisualScriptYieldSignal_set_signal\n  = unsafePerformIO $\n      withCString \"VisualScriptYieldSignal\" $\n        \\ clsNamePtr ->\n          withCString \"set_signal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_signal ::\n             (VisualScriptYieldSignal :< cls, Object :< cls) =>\n             cls -> GodotString -> IO ()\nset_signal cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptYieldSignal_set_signal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptYieldSignal \"set_signal\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualScriptYieldSignal.set_signal"
  },
  {
    "path": "src/Godot/Core/VisualServer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualServer\n       (Godot.Core.VisualServer._ARRAY_COMPRESS_WEIGHTS,\n        Godot.Core.VisualServer._ARRAY_FLAG_USE_16_BIT_BONES,\n        Godot.Core.VisualServer._VIEWPORT_UPDATE_ALWAYS,\n        Godot.Core.VisualServer._ARRAY_FORMAT_INDEX,\n        Godot.Core.VisualServer._INFO_SURFACE_CHANGES_IN_FRAME,\n        Godot.Core.VisualServer._VIEWPORT_DEBUG_DRAW_OVERDRAW,\n        Godot.Core.VisualServer._VIEWPORT_RENDER_INFO_MATERIAL_CHANGES_IN_FRAME,\n        Godot.Core.VisualServer._ARRAY_COMPRESS_TANGENT,\n        Godot.Core.VisualServer._INSTANCE_MULTIMESH,\n        Godot.Core.VisualServer._VIEWPORT_CLEAR_ALWAYS,\n        Godot.Core.VisualServer._SHADER_SPATIAL,\n        Godot.Core.VisualServer._SHADOW_CASTING_SETTING_SHADOWS_ONLY,\n        Godot.Core.VisualServer._ARRAY_COMPRESS_NORMAL,\n        Godot.Core.VisualServer._ARRAY_FORMAT_COLOR,\n        Godot.Core.VisualServer._VIEWPORT_CLEAR_NEVER,\n        Godot.Core.VisualServer._TEXTURE_TYPE_2D_ARRAY,\n        Godot.Core.VisualServer._INSTANCE_GEOMETRY_MASK,\n        Godot.Core.VisualServer._VIEWPORT_USAGE_2D,\n        Godot.Core.VisualServer._INSTANCE_LIGHTMAP_CAPTURE,\n        Godot.Core.VisualServer._MULTIMESH_COLOR_FLOAT,\n        Godot.Core.VisualServer._LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS,\n        Godot.Core.VisualServer._INSTANCE_IMMEDIATE,\n        Godot.Core.VisualServer._CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE,\n        Godot.Core.VisualServer._ARRAY_FORMAT_TEX_UV,\n        Godot.Core.VisualServer._CANVAS_OCCLUDER_POLYGON_CULL_DISABLED,\n        Godot.Core.VisualServer._ARRAY_COMPRESS_VERTEX,\n        Godot.Core.VisualServer._SCENARIO_DEBUG_DISABLED,\n        Godot.Core.VisualServer._ENV_DOF_BLUR_QUALITY_HIGH,\n        Godot.Core.VisualServer._LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL,\n        Godot.Core.VisualServer._ARRAY_FORMAT_VERTEX,\n        Godot.Core.VisualServer._SHADER_MAX,\n        Godot.Core.VisualServer._VIEWPORT_DEBUG_DRAW_DISABLED,\n        Godot.Core.VisualServer._CANVAS_ITEM_Z_MIN,\n        Godot.Core.VisualServer._VIEWPORT_MSAA_8X,\n        Godot.Core.VisualServer._INFO_MATERIAL_CHANGES_IN_FRAME,\n        Godot.Core.VisualServer._MAX_GLOW_LEVELS,\n        Godot.Core.VisualServer._LIGHT_OMNI_SHADOW_DETAIL_HORIZONTAL,\n        Godot.Core.VisualServer._TEXTURE_TYPE_CUBEMAP,\n        Godot.Core.VisualServer._VIEWPORT_RENDER_INFO_SURFACE_CHANGES_IN_FRAME,\n        Godot.Core.VisualServer._ARRAY_COMPRESS_TEX_UV,\n        Godot.Core.VisualServer._ARRAY_COMPRESS_BONES,\n        Godot.Core.VisualServer._REFLECTION_PROBE_UPDATE_ALWAYS,\n        Godot.Core.VisualServer._VIEWPORT_MSAA_DISABLED,\n        Godot.Core.VisualServer._CUBEMAP_RIGHT,\n        Godot.Core.VisualServer._ARRAY_MAX,\n        Godot.Core.VisualServer._LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET,\n        Godot.Core.VisualServer._ENV_TONE_MAPPER_FILMIC,\n        Godot.Core.VisualServer._PARTICLES_DRAW_ORDER_LIFETIME,\n        Godot.Core.VisualServer._NINE_PATCH_STRETCH,\n        Godot.Core.VisualServer._INFO_USAGE_VIDEO_MEM_TOTAL,\n        Godot.Core.VisualServer._ARRAY_NORMAL,\n        Godot.Core.VisualServer._MULTIMESH_COLOR_NONE,\n        Godot.Core.VisualServer._ARRAY_FORMAT_TEX_UV2,\n        Godot.Core.VisualServer._ENV_SSAO_QUALITY_LOW,\n        Godot.Core.VisualServer._INSTANCE_MESH,\n        Godot.Core.VisualServer._MATERIAL_RENDER_PRIORITY_MAX,\n        Godot.Core.VisualServer._LIGHT_PARAM_SHADOW_MAX_DISTANCE,\n        Godot.Core.VisualServer._VIEWPORT_MSAA_2X,\n        Godot.Core.VisualServer._PARTICLES_DRAW_ORDER_INDEX,\n        Godot.Core.VisualServer._ENV_DOF_BLUR_QUALITY_LOW,\n        Godot.Core.VisualServer._INFO_SHADER_CHANGES_IN_FRAME,\n        Godot.Core.VisualServer._GLOW_BLEND_MODE_ADDITIVE,\n        Godot.Core.VisualServer._ENV_BG_CANVAS,\n        Godot.Core.VisualServer._LIGHT_OMNI_SHADOW_DUAL_PARABOLOID,\n        Godot.Core.VisualServer._ARRAY_INDEX,\n        Godot.Core.VisualServer._LIGHT_PARAM_ENERGY,\n        Godot.Core.VisualServer._ARRAY_COLOR,\n        Godot.Core.VisualServer._LIGHT_OMNI_SHADOW_CUBE,\n        Godot.Core.VisualServer._PRIMITIVE_TRIANGLE_STRIP,\n        Godot.Core.VisualServer._VIEWPORT_RENDER_INFO_MAX,\n        Godot.Core.VisualServer._PRIMITIVE_TRIANGLES,\n        Godot.Core.VisualServer._TEXTURE_FLAGS_DEFAULT,\n        Godot.Core.VisualServer._VIEWPORT_USAGE_3D_NO_EFFECTS,\n        Godot.Core.VisualServer._ARRAY_TEX_UV,\n        Godot.Core.VisualServer._VIEWPORT_CLEAR_ONLY_NEXT_FRAME,\n        Godot.Core.VisualServer._CANVAS_LIGHT_FILTER_PCF7,\n        Godot.Core.VisualServer._BLEND_SHAPE_MODE_NORMALIZED,\n        Godot.Core.VisualServer._ENV_BG_COLOR_SKY,\n        Godot.Core.VisualServer._PRIMITIVE_LINE_LOOP,\n        Godot.Core.VisualServer._LIGHT_PARAM_SPECULAR,\n        Godot.Core.VisualServer._VIEWPORT_MSAA_EXT_2X,\n        Godot.Core.VisualServer._CANVAS_LIGHT_MODE_SUB,\n        Godot.Core.VisualServer._VIEWPORT_USAGE_3D,\n        Godot.Core.VisualServer._GLOW_BLEND_MODE_SOFTLIGHT,\n        Godot.Core.VisualServer._PRIMITIVE_TRIANGLE_FAN,\n        Godot.Core.VisualServer._VIEWPORT_DEBUG_DRAW_UNSHADED,\n        Godot.Core.VisualServer._MATERIAL_RENDER_PRIORITY_MIN,\n        Godot.Core.VisualServer._LIGHT_OMNI_SHADOW_DETAIL_VERTICAL,\n        Godot.Core.VisualServer._INSTANCE_FLAG_MAX,\n        Godot.Core.VisualServer._MULTIMESH_TRANSFORM_3D,\n        Godot.Core.VisualServer._SCENARIO_DEBUG_OVERDRAW,\n        Godot.Core.VisualServer._ARRAY_FORMAT_NORMAL,\n        Godot.Core.VisualServer._MULTIMESH_CUSTOM_DATA_8BIT,\n        Godot.Core.VisualServer._ARRAY_TEX_UV2,\n        Godot.Core.VisualServer._ENV_DOF_BLUR_QUALITY_MEDIUM,\n        Godot.Core.VisualServer._TEXTURE_TYPE_2D,\n        Godot.Core.VisualServer._ENV_BG_SKY,\n        Godot.Core.VisualServer._FEATURE_SHADERS,\n        Godot.Core.VisualServer._CUBEMAP_TOP,\n        Godot.Core.VisualServer._PARTICLES_DRAW_ORDER_VIEW_DEPTH,\n        Godot.Core.VisualServer._CUBEMAP_BACK,\n        Godot.Core.VisualServer._LIGHT_SPOT,\n        Godot.Core.VisualServer._LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS,\n        Godot.Core.VisualServer._INSTANCE_PARTICLES,\n        Godot.Core.VisualServer._TEXTURE_FLAG_REPEAT,\n        Godot.Core.VisualServer._LIGHT_PARAM_SPOT_ATTENUATION,\n        Godot.Core.VisualServer._REFLECTION_PROBE_UPDATE_ONCE,\n        Godot.Core.VisualServer._ARRAY_COMPRESS_DEFAULT,\n        Godot.Core.VisualServer._CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE,\n        Godot.Core.VisualServer._CANVAS_ITEM_Z_MAX,\n        Godot.Core.VisualServer._ENV_TONE_MAPPER_LINEAR,\n        Godot.Core.VisualServer._LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET,\n        Godot.Core.VisualServer._VIEWPORT_RENDER_INFO_VERTICES_IN_FRAME,\n        Godot.Core.VisualServer._MULTIMESH_CUSTOM_DATA_NONE,\n        Godot.Core.VisualServer._LIGHT_OMNI,\n        Godot.Core.VisualServer._ENV_BG_MAX,\n        Godot.Core.VisualServer._INSTANCE_REFLECTION_PROBE,\n        Godot.Core.VisualServer._INFO_TEXTURE_MEM_USED,\n        Godot.Core.VisualServer._INSTANCE_NONE,\n        Godot.Core.VisualServer._SHADER_CANVAS_ITEM,\n        Godot.Core.VisualServer._ENV_SSAO_QUALITY_MEDIUM,\n        Godot.Core.VisualServer._CANVAS_LIGHT_FILTER_PCF3,\n        Godot.Core.VisualServer._ARRAY_FORMAT_BONES,\n        Godot.Core.VisualServer._LIGHT_PARAM_SPOT_ANGLE,\n        Godot.Core.VisualServer._ARRAY_WEIGHTS_SIZE,\n        Godot.Core.VisualServer._SHADOW_CASTING_SETTING_DOUBLE_SIDED,\n        Godot.Core.VisualServer._ENV_SSAO_QUALITY_HIGH,\n        Godot.Core.VisualServer._INFO_VERTICES_IN_FRAME,\n        Godot.Core.VisualServer._INFO_VIDEO_MEM_USED,\n        Godot.Core.VisualServer._GLOW_BLEND_MODE_REPLACE,\n        Godot.Core.VisualServer._NINE_PATCH_TILE_FIT,\n        Godot.Core.VisualServer._VIEWPORT_UPDATE_ONCE,\n        Godot.Core.VisualServer._ARRAY_COMPRESS_COLOR,\n        Godot.Core.VisualServer._GLOW_BLEND_MODE_SCREEN,\n        Godot.Core.VisualServer._MAX_CURSORS,\n        Godot.Core.VisualServer._TEXTURE_FLAG_CONVERT_TO_LINEAR,\n        Godot.Core.VisualServer._PRIMITIVE_MAX,\n        Godot.Core.VisualServer._LIGHT_PARAM_CONTACT_SHADOW_SIZE,\n        Godot.Core.VisualServer._INSTANCE_MAX,\n        Godot.Core.VisualServer._ENV_SSAO_BLUR_3x3,\n        Godot.Core.VisualServer._ARRAY_WEIGHTS,\n        Godot.Core.VisualServer._LIGHT_PARAM_MAX,\n        Godot.Core.VisualServer._CUBEMAP_BOTTOM,\n        Godot.Core.VisualServer._ARRAY_TANGENT,\n        Godot.Core.VisualServer._SCENARIO_DEBUG_SHADELESS,\n        Godot.Core.VisualServer._INFO_OBJECTS_IN_FRAME,\n        Godot.Core.VisualServer._INSTANCE_GI_PROBE,\n        Godot.Core.VisualServer._LIGHT_PARAM_SHADOW_NORMAL_BIAS,\n        Godot.Core.VisualServer._VIEWPORT_USAGE_2D_NO_SAMPLING,\n        Godot.Core.VisualServer._ENV_SSAO_BLUR_2x2,\n        Godot.Core.VisualServer._VIEWPORT_UPDATE_DISABLED,\n        Godot.Core.VisualServer._SHADOW_CASTING_SETTING_OFF,\n        Godot.Core.VisualServer._VIEWPORT_MSAA_16X,\n        Godot.Core.VisualServer._CANVAS_LIGHT_FILTER_PCF9,\n        Godot.Core.VisualServer._ENV_SSAO_BLUR_DISABLED,\n        Godot.Core.VisualServer._TEXTURE_FLAG_ANISOTROPIC_FILTER,\n        Godot.Core.VisualServer._FEATURE_MULTITHREADED,\n        Godot.Core.VisualServer._ENV_SSAO_BLUR_1x1,\n        Godot.Core.VisualServer._INFO_DRAW_CALLS_IN_FRAME,\n        Godot.Core.VisualServer._ENV_BG_COLOR,\n        Godot.Core.VisualServer._ENV_TONE_MAPPER_ACES,\n        Godot.Core.VisualServer._LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_STABLE,\n        Godot.Core.VisualServer._LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_OPTIMIZED,\n        Godot.Core.VisualServer._ARRAY_COMPRESS_TEX_UV2,\n        Godot.Core.VisualServer._MULTIMESH_COLOR_8BIT,\n        Godot.Core.VisualServer._MULTIMESH_TRANSFORM_2D,\n        Godot.Core.VisualServer._VIEWPORT_UPDATE_WHEN_VISIBLE,\n        Godot.Core.VisualServer._VIEWPORT_MSAA_EXT_4X,\n        Godot.Core.VisualServer._INSTANCE_LIGHT,\n        Godot.Core.VisualServer._TEXTURE_TYPE_3D,\n        Godot.Core.VisualServer._TEXTURE_FLAG_MIPMAPS,\n        Godot.Core.VisualServer._PRIMITIVE_LINE_STRIP,\n        Godot.Core.VisualServer._TEXTURE_FLAG_FILTER,\n        Godot.Core.VisualServer._ENV_BG_KEEP,\n        Godot.Core.VisualServer._CANVAS_LIGHT_FILTER_NONE,\n        Godot.Core.VisualServer._CUBEMAP_FRONT,\n        Godot.Core.VisualServer._TEXTURE_FLAG_USED_FOR_STREAMING,\n        Godot.Core.VisualServer._INFO_VERTEX_MEM_USED,\n        Godot.Core.VisualServer._TEXTURE_FLAG_MIRRORED_REPEAT,\n        Godot.Core.VisualServer._PRIMITIVE_LINES,\n        Godot.Core.VisualServer._VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME,\n        Godot.Core.VisualServer._ENV_BG_CLEAR_COLOR,\n        Godot.Core.VisualServer._SHADOW_CASTING_SETTING_ON,\n        Godot.Core.VisualServer._SCENARIO_DEBUG_WIREFRAME,\n        Godot.Core.VisualServer._CANVAS_LIGHT_MODE_ADD,\n        Godot.Core.VisualServer._LIGHT_PARAM_SHADOW_BIAS_SPLIT_SCALE,\n        Godot.Core.VisualServer._VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME,\n        Godot.Core.VisualServer._ARRAY_BONES,\n        Godot.Core.VisualServer._LIGHT_PARAM_ATTENUATION,\n        Godot.Core.VisualServer._VIEWPORT_DEBUG_DRAW_WIREFRAME,\n        Godot.Core.VisualServer._CANVAS_LIGHT_MODE_MIX,\n        Godot.Core.VisualServer._NINE_PATCH_TILE,\n        Godot.Core.VisualServer._VIEWPORT_RENDER_INFO_SHADER_CHANGES_IN_FRAME,\n        Godot.Core.VisualServer._INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE,\n        Godot.Core.VisualServer._CANVAS_LIGHT_MODE_MASK,\n        Godot.Core.VisualServer._LIGHT_PARAM_RANGE,\n        Godot.Core.VisualServer._BLEND_SHAPE_MODE_RELATIVE,\n        Godot.Core.VisualServer._VIEWPORT_MSAA_4X,\n        Godot.Core.VisualServer._LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET,\n        Godot.Core.VisualServer._ENV_TONE_MAPPER_REINHARD,\n        Godot.Core.VisualServer._CANVAS_LIGHT_FILTER_PCF13,\n        Godot.Core.VisualServer._MULTIMESH_CUSTOM_DATA_FLOAT,\n        Godot.Core.VisualServer._NO_INDEX_ARRAY,\n        Godot.Core.VisualServer._ARRAY_VERTEX,\n        Godot.Core.VisualServer._ARRAY_FLAG_USE_2D_VERTICES,\n        Godot.Core.VisualServer._CANVAS_LIGHT_FILTER_PCF5,\n        Godot.Core.VisualServer._LIGHT_DIRECTIONAL,\n        Godot.Core.VisualServer._ARRAY_COMPRESS_INDEX,\n        Godot.Core.VisualServer._INSTANCE_FLAG_USE_BAKED_LIGHT,\n        Godot.Core.VisualServer._CUBEMAP_LEFT,\n        Godot.Core.VisualServer._LIGHT_PARAM_SHADOW_BIAS,\n        Godot.Core.VisualServer._ARRAY_FORMAT_WEIGHTS,\n        Godot.Core.VisualServer._SHADER_PARTICLES,\n        Godot.Core.VisualServer._ARRAY_FORMAT_TANGENT,\n        Godot.Core.VisualServer._PRIMITIVE_POINTS,\n        Godot.Core.VisualServer.sig_frame_post_draw,\n        Godot.Core.VisualServer.sig_frame_pre_draw,\n        Godot.Core.VisualServer.black_bars_set_images,\n        Godot.Core.VisualServer.black_bars_set_margins,\n        Godot.Core.VisualServer.camera_create,\n        Godot.Core.VisualServer.camera_set_cull_mask,\n        Godot.Core.VisualServer.camera_set_environment,\n        Godot.Core.VisualServer.camera_set_frustum,\n        Godot.Core.VisualServer.camera_set_orthogonal,\n        Godot.Core.VisualServer.camera_set_perspective,\n        Godot.Core.VisualServer.camera_set_transform,\n        Godot.Core.VisualServer.camera_set_use_vertical_aspect,\n        Godot.Core.VisualServer.canvas_create,\n        Godot.Core.VisualServer.canvas_item_add_circle,\n        Godot.Core.VisualServer.canvas_item_add_clip_ignore,\n        Godot.Core.VisualServer.canvas_item_add_line,\n        Godot.Core.VisualServer.canvas_item_add_mesh,\n        Godot.Core.VisualServer.canvas_item_add_multimesh,\n        Godot.Core.VisualServer.canvas_item_add_nine_patch,\n        Godot.Core.VisualServer.canvas_item_add_particles,\n        Godot.Core.VisualServer.canvas_item_add_polygon,\n        Godot.Core.VisualServer.canvas_item_add_polyline,\n        Godot.Core.VisualServer.canvas_item_add_primitive,\n        Godot.Core.VisualServer.canvas_item_add_rect,\n        Godot.Core.VisualServer.canvas_item_add_set_transform,\n        Godot.Core.VisualServer.canvas_item_add_texture_rect,\n        Godot.Core.VisualServer.canvas_item_add_texture_rect_region,\n        Godot.Core.VisualServer.canvas_item_add_triangle_array,\n        Godot.Core.VisualServer.canvas_item_clear,\n        Godot.Core.VisualServer.canvas_item_create,\n        Godot.Core.VisualServer.canvas_item_set_clip,\n        Godot.Core.VisualServer.canvas_item_set_copy_to_backbuffer,\n        Godot.Core.VisualServer.canvas_item_set_custom_rect,\n        Godot.Core.VisualServer.canvas_item_set_distance_field_mode,\n        Godot.Core.VisualServer.canvas_item_set_draw_behind_parent,\n        Godot.Core.VisualServer.canvas_item_set_draw_index,\n        Godot.Core.VisualServer.canvas_item_set_light_mask,\n        Godot.Core.VisualServer.canvas_item_set_material,\n        Godot.Core.VisualServer.canvas_item_set_modulate,\n        Godot.Core.VisualServer.canvas_item_set_parent,\n        Godot.Core.VisualServer.canvas_item_set_self_modulate,\n        Godot.Core.VisualServer.canvas_item_set_sort_children_by_y,\n        Godot.Core.VisualServer.canvas_item_set_transform,\n        Godot.Core.VisualServer.canvas_item_set_use_parent_material,\n        Godot.Core.VisualServer.canvas_item_set_visible,\n        Godot.Core.VisualServer.canvas_item_set_z_as_relative_to_parent,\n        Godot.Core.VisualServer.canvas_item_set_z_index,\n        Godot.Core.VisualServer.canvas_light_attach_to_canvas,\n        Godot.Core.VisualServer.canvas_light_create,\n        Godot.Core.VisualServer.canvas_light_occluder_attach_to_canvas,\n        Godot.Core.VisualServer.canvas_light_occluder_create,\n        Godot.Core.VisualServer.canvas_light_occluder_set_enabled,\n        Godot.Core.VisualServer.canvas_light_occluder_set_light_mask,\n        Godot.Core.VisualServer.canvas_light_occluder_set_polygon,\n        Godot.Core.VisualServer.canvas_light_occluder_set_transform,\n        Godot.Core.VisualServer.canvas_light_set_color,\n        Godot.Core.VisualServer.canvas_light_set_enabled,\n        Godot.Core.VisualServer.canvas_light_set_energy,\n        Godot.Core.VisualServer.canvas_light_set_height,\n        Godot.Core.VisualServer.canvas_light_set_item_cull_mask,\n        Godot.Core.VisualServer.canvas_light_set_item_shadow_cull_mask,\n        Godot.Core.VisualServer.canvas_light_set_layer_range,\n        Godot.Core.VisualServer.canvas_light_set_mode,\n        Godot.Core.VisualServer.canvas_light_set_scale,\n        Godot.Core.VisualServer.canvas_light_set_shadow_buffer_size,\n        Godot.Core.VisualServer.canvas_light_set_shadow_color,\n        Godot.Core.VisualServer.canvas_light_set_shadow_enabled,\n        Godot.Core.VisualServer.canvas_light_set_shadow_filter,\n        Godot.Core.VisualServer.canvas_light_set_shadow_gradient_length,\n        Godot.Core.VisualServer.canvas_light_set_shadow_smooth,\n        Godot.Core.VisualServer.canvas_light_set_texture,\n        Godot.Core.VisualServer.canvas_light_set_texture_offset,\n        Godot.Core.VisualServer.canvas_light_set_transform,\n        Godot.Core.VisualServer.canvas_light_set_z_range,\n        Godot.Core.VisualServer.canvas_occluder_polygon_create,\n        Godot.Core.VisualServer.canvas_occluder_polygon_set_cull_mode,\n        Godot.Core.VisualServer.canvas_occluder_polygon_set_shape,\n        Godot.Core.VisualServer.canvas_occluder_polygon_set_shape_as_lines,\n        Godot.Core.VisualServer.canvas_set_item_mirroring,\n        Godot.Core.VisualServer.canvas_set_modulate,\n        Godot.Core.VisualServer.directional_light_create,\n        Godot.Core.VisualServer.draw,\n        Godot.Core.VisualServer.environment_create,\n        Godot.Core.VisualServer.environment_set_adjustment,\n        Godot.Core.VisualServer.environment_set_ambient_light,\n        Godot.Core.VisualServer.environment_set_background,\n        Godot.Core.VisualServer.environment_set_bg_color,\n        Godot.Core.VisualServer.environment_set_bg_energy,\n        Godot.Core.VisualServer.environment_set_canvas_max_layer,\n        Godot.Core.VisualServer.environment_set_dof_blur_far,\n        Godot.Core.VisualServer.environment_set_dof_blur_near,\n        Godot.Core.VisualServer.environment_set_fog,\n        Godot.Core.VisualServer.environment_set_fog_depth,\n        Godot.Core.VisualServer.environment_set_fog_height,\n        Godot.Core.VisualServer.environment_set_glow,\n        Godot.Core.VisualServer.environment_set_sky,\n        Godot.Core.VisualServer.environment_set_sky_custom_fov,\n        Godot.Core.VisualServer.environment_set_sky_orientation,\n        Godot.Core.VisualServer.environment_set_ssao,\n        Godot.Core.VisualServer.environment_set_ssr,\n        Godot.Core.VisualServer.environment_set_tonemap,\n        Godot.Core.VisualServer.finish, Godot.Core.VisualServer.force_draw,\n        Godot.Core.VisualServer.force_sync,\n        Godot.Core.VisualServer.free_rid,\n        Godot.Core.VisualServer.get_render_info,\n        Godot.Core.VisualServer.get_test_cube,\n        Godot.Core.VisualServer.get_test_texture,\n        Godot.Core.VisualServer.get_video_adapter_name,\n        Godot.Core.VisualServer.get_video_adapter_vendor,\n        Godot.Core.VisualServer.get_white_texture,\n        Godot.Core.VisualServer.gi_probe_create,\n        Godot.Core.VisualServer.gi_probe_get_bias,\n        Godot.Core.VisualServer.gi_probe_get_bounds,\n        Godot.Core.VisualServer.gi_probe_get_cell_size,\n        Godot.Core.VisualServer.gi_probe_get_dynamic_data,\n        Godot.Core.VisualServer.gi_probe_get_dynamic_range,\n        Godot.Core.VisualServer.gi_probe_get_energy,\n        Godot.Core.VisualServer.gi_probe_get_normal_bias,\n        Godot.Core.VisualServer.gi_probe_get_propagation,\n        Godot.Core.VisualServer.gi_probe_get_to_cell_xform,\n        Godot.Core.VisualServer.gi_probe_is_compressed,\n        Godot.Core.VisualServer.gi_probe_is_interior,\n        Godot.Core.VisualServer.gi_probe_set_bias,\n        Godot.Core.VisualServer.gi_probe_set_bounds,\n        Godot.Core.VisualServer.gi_probe_set_cell_size,\n        Godot.Core.VisualServer.gi_probe_set_compress,\n        Godot.Core.VisualServer.gi_probe_set_dynamic_data,\n        Godot.Core.VisualServer.gi_probe_set_dynamic_range,\n        Godot.Core.VisualServer.gi_probe_set_energy,\n        Godot.Core.VisualServer.gi_probe_set_interior,\n        Godot.Core.VisualServer.gi_probe_set_normal_bias,\n        Godot.Core.VisualServer.gi_probe_set_propagation,\n        Godot.Core.VisualServer.gi_probe_set_to_cell_xform,\n        Godot.Core.VisualServer.has_changed,\n        Godot.Core.VisualServer.has_feature,\n        Godot.Core.VisualServer.has_os_feature,\n        Godot.Core.VisualServer.immediate_begin,\n        Godot.Core.VisualServer.immediate_clear,\n        Godot.Core.VisualServer.immediate_color,\n        Godot.Core.VisualServer.immediate_create,\n        Godot.Core.VisualServer.immediate_end,\n        Godot.Core.VisualServer.immediate_get_material,\n        Godot.Core.VisualServer.immediate_normal,\n        Godot.Core.VisualServer.immediate_set_material,\n        Godot.Core.VisualServer.immediate_tangent,\n        Godot.Core.VisualServer.immediate_uv,\n        Godot.Core.VisualServer.immediate_uv2,\n        Godot.Core.VisualServer.immediate_vertex,\n        Godot.Core.VisualServer.immediate_vertex_2d,\n        Godot.Core.VisualServer.init,\n        Godot.Core.VisualServer.instance_attach_object_instance_id,\n        Godot.Core.VisualServer.instance_attach_skeleton,\n        Godot.Core.VisualServer.instance_create,\n        Godot.Core.VisualServer.instance_create2,\n        Godot.Core.VisualServer.instance_geometry_set_as_instance_lod,\n        Godot.Core.VisualServer.instance_geometry_set_cast_shadows_setting,\n        Godot.Core.VisualServer.instance_geometry_set_draw_range,\n        Godot.Core.VisualServer.instance_geometry_set_flag,\n        Godot.Core.VisualServer.instance_geometry_set_material_override,\n        Godot.Core.VisualServer.instance_set_base,\n        Godot.Core.VisualServer.instance_set_blend_shape_weight,\n        Godot.Core.VisualServer.instance_set_custom_aabb,\n        Godot.Core.VisualServer.instance_set_exterior,\n        Godot.Core.VisualServer.instance_set_extra_visibility_margin,\n        Godot.Core.VisualServer.instance_set_layer_mask,\n        Godot.Core.VisualServer.instance_set_scenario,\n        Godot.Core.VisualServer.instance_set_surface_material,\n        Godot.Core.VisualServer.instance_set_transform,\n        Godot.Core.VisualServer.instance_set_use_lightmap,\n        Godot.Core.VisualServer.instance_set_visible,\n        Godot.Core.VisualServer.instances_cull_aabb,\n        Godot.Core.VisualServer.instances_cull_convex,\n        Godot.Core.VisualServer.instances_cull_ray,\n        Godot.Core.VisualServer.light_directional_set_blend_splits,\n        Godot.Core.VisualServer.light_directional_set_shadow_depth_range_mode,\n        Godot.Core.VisualServer.light_directional_set_shadow_mode,\n        Godot.Core.VisualServer.light_omni_set_shadow_detail,\n        Godot.Core.VisualServer.light_omni_set_shadow_mode,\n        Godot.Core.VisualServer.light_set_color,\n        Godot.Core.VisualServer.light_set_cull_mask,\n        Godot.Core.VisualServer.light_set_negative,\n        Godot.Core.VisualServer.light_set_param,\n        Godot.Core.VisualServer.light_set_projector,\n        Godot.Core.VisualServer.light_set_reverse_cull_face_mode,\n        Godot.Core.VisualServer.light_set_shadow,\n        Godot.Core.VisualServer.light_set_shadow_color,\n        Godot.Core.VisualServer.light_set_use_gi,\n        Godot.Core.VisualServer.lightmap_capture_create,\n        Godot.Core.VisualServer.lightmap_capture_get_bounds,\n        Godot.Core.VisualServer.lightmap_capture_get_energy,\n        Godot.Core.VisualServer.lightmap_capture_get_octree,\n        Godot.Core.VisualServer.lightmap_capture_get_octree_cell_subdiv,\n        Godot.Core.VisualServer.lightmap_capture_get_octree_cell_transform,\n        Godot.Core.VisualServer.lightmap_capture_set_bounds,\n        Godot.Core.VisualServer.lightmap_capture_set_energy,\n        Godot.Core.VisualServer.lightmap_capture_set_octree,\n        Godot.Core.VisualServer.lightmap_capture_set_octree_cell_subdiv,\n        Godot.Core.VisualServer.lightmap_capture_set_octree_cell_transform,\n        Godot.Core.VisualServer.make_sphere_mesh,\n        Godot.Core.VisualServer.material_create,\n        Godot.Core.VisualServer.material_get_param,\n        Godot.Core.VisualServer.material_get_param_default,\n        Godot.Core.VisualServer.material_get_shader,\n        Godot.Core.VisualServer.material_set_line_width,\n        Godot.Core.VisualServer.material_set_next_pass,\n        Godot.Core.VisualServer.material_set_param,\n        Godot.Core.VisualServer.material_set_render_priority,\n        Godot.Core.VisualServer.material_set_shader,\n        Godot.Core.VisualServer.mesh_add_surface_from_arrays,\n        Godot.Core.VisualServer.mesh_clear,\n        Godot.Core.VisualServer.mesh_create,\n        Godot.Core.VisualServer.mesh_get_blend_shape_count,\n        Godot.Core.VisualServer.mesh_get_blend_shape_mode,\n        Godot.Core.VisualServer.mesh_get_custom_aabb,\n        Godot.Core.VisualServer.mesh_get_surface_count,\n        Godot.Core.VisualServer.mesh_remove_surface,\n        Godot.Core.VisualServer.mesh_set_blend_shape_count,\n        Godot.Core.VisualServer.mesh_set_blend_shape_mode,\n        Godot.Core.VisualServer.mesh_set_custom_aabb,\n        Godot.Core.VisualServer.mesh_surface_get_aabb,\n        Godot.Core.VisualServer.mesh_surface_get_array,\n        Godot.Core.VisualServer.mesh_surface_get_array_index_len,\n        Godot.Core.VisualServer.mesh_surface_get_array_len,\n        Godot.Core.VisualServer.mesh_surface_get_arrays,\n        Godot.Core.VisualServer.mesh_surface_get_blend_shape_arrays,\n        Godot.Core.VisualServer.mesh_surface_get_format,\n        Godot.Core.VisualServer.mesh_surface_get_format_offset,\n        Godot.Core.VisualServer.mesh_surface_get_format_stride,\n        Godot.Core.VisualServer.mesh_surface_get_index_array,\n        Godot.Core.VisualServer.mesh_surface_get_material,\n        Godot.Core.VisualServer.mesh_surface_get_primitive_type,\n        Godot.Core.VisualServer.mesh_surface_get_skeleton_aabb,\n        Godot.Core.VisualServer.mesh_surface_set_material,\n        Godot.Core.VisualServer.mesh_surface_update_region,\n        Godot.Core.VisualServer.multimesh_allocate,\n        Godot.Core.VisualServer.multimesh_create,\n        Godot.Core.VisualServer.multimesh_get_aabb,\n        Godot.Core.VisualServer.multimesh_get_instance_count,\n        Godot.Core.VisualServer.multimesh_get_mesh,\n        Godot.Core.VisualServer.multimesh_get_visible_instances,\n        Godot.Core.VisualServer.multimesh_instance_get_color,\n        Godot.Core.VisualServer.multimesh_instance_get_custom_data,\n        Godot.Core.VisualServer.multimesh_instance_get_transform,\n        Godot.Core.VisualServer.multimesh_instance_get_transform_2d,\n        Godot.Core.VisualServer.multimesh_instance_set_color,\n        Godot.Core.VisualServer.multimesh_instance_set_custom_data,\n        Godot.Core.VisualServer.multimesh_instance_set_transform,\n        Godot.Core.VisualServer.multimesh_instance_set_transform_2d,\n        Godot.Core.VisualServer.multimesh_set_as_bulk_array,\n        Godot.Core.VisualServer.multimesh_set_mesh,\n        Godot.Core.VisualServer.multimesh_set_visible_instances,\n        Godot.Core.VisualServer.omni_light_create,\n        Godot.Core.VisualServer.particles_create,\n        Godot.Core.VisualServer.particles_get_current_aabb,\n        Godot.Core.VisualServer.particles_get_emitting,\n        Godot.Core.VisualServer.particles_is_inactive,\n        Godot.Core.VisualServer.particles_request_process,\n        Godot.Core.VisualServer.particles_restart,\n        Godot.Core.VisualServer.particles_set_amount,\n        Godot.Core.VisualServer.particles_set_custom_aabb,\n        Godot.Core.VisualServer.particles_set_draw_order,\n        Godot.Core.VisualServer.particles_set_draw_pass_mesh,\n        Godot.Core.VisualServer.particles_set_draw_passes,\n        Godot.Core.VisualServer.particles_set_emission_transform,\n        Godot.Core.VisualServer.particles_set_emitting,\n        Godot.Core.VisualServer.particles_set_explosiveness_ratio,\n        Godot.Core.VisualServer.particles_set_fixed_fps,\n        Godot.Core.VisualServer.particles_set_fractional_delta,\n        Godot.Core.VisualServer.particles_set_lifetime,\n        Godot.Core.VisualServer.particles_set_one_shot,\n        Godot.Core.VisualServer.particles_set_pre_process_time,\n        Godot.Core.VisualServer.particles_set_process_material,\n        Godot.Core.VisualServer.particles_set_randomness_ratio,\n        Godot.Core.VisualServer.particles_set_speed_scale,\n        Godot.Core.VisualServer.particles_set_use_local_coordinates,\n        Godot.Core.VisualServer.reflection_probe_create,\n        Godot.Core.VisualServer.reflection_probe_set_as_interior,\n        Godot.Core.VisualServer.reflection_probe_set_cull_mask,\n        Godot.Core.VisualServer.reflection_probe_set_enable_box_projection,\n        Godot.Core.VisualServer.reflection_probe_set_enable_shadows,\n        Godot.Core.VisualServer.reflection_probe_set_extents,\n        Godot.Core.VisualServer.reflection_probe_set_intensity,\n        Godot.Core.VisualServer.reflection_probe_set_interior_ambient,\n        Godot.Core.VisualServer.reflection_probe_set_interior_ambient_energy,\n        Godot.Core.VisualServer.reflection_probe_set_interior_ambient_probe_contribution,\n        Godot.Core.VisualServer.reflection_probe_set_max_distance,\n        Godot.Core.VisualServer.reflection_probe_set_origin_offset,\n        Godot.Core.VisualServer.reflection_probe_set_update_mode,\n        Godot.Core.VisualServer.request_frame_drawn_callback,\n        Godot.Core.VisualServer.scenario_create,\n        Godot.Core.VisualServer.scenario_set_debug,\n        Godot.Core.VisualServer.scenario_set_environment,\n        Godot.Core.VisualServer.scenario_set_fallback_environment,\n        Godot.Core.VisualServer.scenario_set_reflection_atlas_size,\n        Godot.Core.VisualServer.set_boot_image,\n        Godot.Core.VisualServer.set_debug_generate_wireframes,\n        Godot.Core.VisualServer.set_default_clear_color,\n        Godot.Core.VisualServer.shader_create,\n        Godot.Core.VisualServer.shader_get_code,\n        Godot.Core.VisualServer.shader_get_default_texture_param,\n        Godot.Core.VisualServer.shader_get_param_list,\n        Godot.Core.VisualServer.shader_set_code,\n        Godot.Core.VisualServer.shader_set_default_texture_param,\n        Godot.Core.VisualServer.skeleton_allocate,\n        Godot.Core.VisualServer.skeleton_bone_get_transform,\n        Godot.Core.VisualServer.skeleton_bone_get_transform_2d,\n        Godot.Core.VisualServer.skeleton_bone_set_transform,\n        Godot.Core.VisualServer.skeleton_bone_set_transform_2d,\n        Godot.Core.VisualServer.skeleton_create,\n        Godot.Core.VisualServer.skeleton_get_bone_count,\n        Godot.Core.VisualServer.sky_create,\n        Godot.Core.VisualServer.sky_set_texture,\n        Godot.Core.VisualServer.spot_light_create,\n        Godot.Core.VisualServer.sync,\n        Godot.Core.VisualServer.texture_allocate,\n        Godot.Core.VisualServer.texture_bind,\n        Godot.Core.VisualServer.texture_create,\n        Godot.Core.VisualServer.texture_create_from_image,\n        Godot.Core.VisualServer.texture_debug_usage,\n        Godot.Core.VisualServer.texture_get_data,\n        Godot.Core.VisualServer.texture_get_depth,\n        Godot.Core.VisualServer.texture_get_flags,\n        Godot.Core.VisualServer.texture_get_format,\n        Godot.Core.VisualServer.texture_get_height,\n        Godot.Core.VisualServer.texture_get_path,\n        Godot.Core.VisualServer.texture_get_texid,\n        Godot.Core.VisualServer.texture_get_type,\n        Godot.Core.VisualServer.texture_get_width,\n        Godot.Core.VisualServer.texture_set_data,\n        Godot.Core.VisualServer.texture_set_data_partial,\n        Godot.Core.VisualServer.texture_set_flags,\n        Godot.Core.VisualServer.texture_set_path,\n        Godot.Core.VisualServer.texture_set_shrink_all_x2_on_set_data,\n        Godot.Core.VisualServer.texture_set_size_override,\n        Godot.Core.VisualServer.textures_keep_original,\n        Godot.Core.VisualServer.viewport_attach_camera,\n        Godot.Core.VisualServer.viewport_attach_canvas,\n        Godot.Core.VisualServer.viewport_attach_to_screen,\n        Godot.Core.VisualServer.viewport_create,\n        Godot.Core.VisualServer.viewport_detach,\n        Godot.Core.VisualServer.viewport_get_render_info,\n        Godot.Core.VisualServer.viewport_get_texture,\n        Godot.Core.VisualServer.viewport_remove_canvas,\n        Godot.Core.VisualServer.viewport_set_active,\n        Godot.Core.VisualServer.viewport_set_canvas_stacking,\n        Godot.Core.VisualServer.viewport_set_canvas_transform,\n        Godot.Core.VisualServer.viewport_set_clear_mode,\n        Godot.Core.VisualServer.viewport_set_debug_draw,\n        Godot.Core.VisualServer.viewport_set_disable_3d,\n        Godot.Core.VisualServer.viewport_set_disable_environment,\n        Godot.Core.VisualServer.viewport_set_global_canvas_transform,\n        Godot.Core.VisualServer.viewport_set_hdr,\n        Godot.Core.VisualServer.viewport_set_hide_canvas,\n        Godot.Core.VisualServer.viewport_set_hide_scenario,\n        Godot.Core.VisualServer.viewport_set_msaa,\n        Godot.Core.VisualServer.viewport_set_parent_viewport,\n        Godot.Core.VisualServer.viewport_set_render_direct_to_screen,\n        Godot.Core.VisualServer.viewport_set_scenario,\n        Godot.Core.VisualServer.viewport_set_shadow_atlas_quadrant_subdivision,\n        Godot.Core.VisualServer.viewport_set_shadow_atlas_size,\n        Godot.Core.VisualServer.viewport_set_size,\n        Godot.Core.VisualServer.viewport_set_transparent_background,\n        Godot.Core.VisualServer.viewport_set_update_mode,\n        Godot.Core.VisualServer.viewport_set_usage,\n        Godot.Core.VisualServer.viewport_set_use_arvr,\n        Godot.Core.VisualServer.viewport_set_vflip)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n_ARRAY_COMPRESS_WEIGHTS :: Int\n_ARRAY_COMPRESS_WEIGHTS = 65536\n\n_ARRAY_FLAG_USE_16_BIT_BONES :: Int\n_ARRAY_FLAG_USE_16_BIT_BONES = 524288\n\n_VIEWPORT_UPDATE_ALWAYS :: Int\n_VIEWPORT_UPDATE_ALWAYS = 3\n\n_ARRAY_FORMAT_INDEX :: Int\n_ARRAY_FORMAT_INDEX = 256\n\n_INFO_SURFACE_CHANGES_IN_FRAME :: Int\n_INFO_SURFACE_CHANGES_IN_FRAME = 4\n\n_VIEWPORT_DEBUG_DRAW_OVERDRAW :: Int\n_VIEWPORT_DEBUG_DRAW_OVERDRAW = 2\n\n_VIEWPORT_RENDER_INFO_MATERIAL_CHANGES_IN_FRAME :: Int\n_VIEWPORT_RENDER_INFO_MATERIAL_CHANGES_IN_FRAME = 2\n\n_ARRAY_COMPRESS_TANGENT :: Int\n_ARRAY_COMPRESS_TANGENT = 2048\n\n_INSTANCE_MULTIMESH :: Int\n_INSTANCE_MULTIMESH = 2\n\n_VIEWPORT_CLEAR_ALWAYS :: Int\n_VIEWPORT_CLEAR_ALWAYS = 0\n\n_SHADER_SPATIAL :: Int\n_SHADER_SPATIAL = 0\n\n_SHADOW_CASTING_SETTING_SHADOWS_ONLY :: Int\n_SHADOW_CASTING_SETTING_SHADOWS_ONLY = 3\n\n_ARRAY_COMPRESS_NORMAL :: Int\n_ARRAY_COMPRESS_NORMAL = 1024\n\n_ARRAY_FORMAT_COLOR :: Int\n_ARRAY_FORMAT_COLOR = 8\n\n_VIEWPORT_CLEAR_NEVER :: Int\n_VIEWPORT_CLEAR_NEVER = 1\n\n_TEXTURE_TYPE_2D_ARRAY :: Int\n_TEXTURE_TYPE_2D_ARRAY = 2\n\n_INSTANCE_GEOMETRY_MASK :: Int\n_INSTANCE_GEOMETRY_MASK = 30\n\n_VIEWPORT_USAGE_2D :: Int\n_VIEWPORT_USAGE_2D = 0\n\n_INSTANCE_LIGHTMAP_CAPTURE :: Int\n_INSTANCE_LIGHTMAP_CAPTURE = 8\n\n_MULTIMESH_COLOR_FLOAT :: Int\n_MULTIMESH_COLOR_FLOAT = 2\n\n_LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS :: Int\n_LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS = 1\n\n_INSTANCE_IMMEDIATE :: Int\n_INSTANCE_IMMEDIATE = 3\n\n_CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE :: Int\n_CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE = 1\n\n_ARRAY_FORMAT_TEX_UV :: Int\n_ARRAY_FORMAT_TEX_UV = 16\n\n_CANVAS_OCCLUDER_POLYGON_CULL_DISABLED :: Int\n_CANVAS_OCCLUDER_POLYGON_CULL_DISABLED = 0\n\n_ARRAY_COMPRESS_VERTEX :: Int\n_ARRAY_COMPRESS_VERTEX = 512\n\n_SCENARIO_DEBUG_DISABLED :: Int\n_SCENARIO_DEBUG_DISABLED = 0\n\n_ENV_DOF_BLUR_QUALITY_HIGH :: Int\n_ENV_DOF_BLUR_QUALITY_HIGH = 2\n\n_LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL :: Int\n_LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL = 0\n\n_ARRAY_FORMAT_VERTEX :: Int\n_ARRAY_FORMAT_VERTEX = 1\n\n_SHADER_MAX :: Int\n_SHADER_MAX = 3\n\n_VIEWPORT_DEBUG_DRAW_DISABLED :: Int\n_VIEWPORT_DEBUG_DRAW_DISABLED = 0\n\n_CANVAS_ITEM_Z_MIN :: Int\n_CANVAS_ITEM_Z_MIN = -4096\n\n_VIEWPORT_MSAA_8X :: Int\n_VIEWPORT_MSAA_8X = 3\n\n_INFO_MATERIAL_CHANGES_IN_FRAME :: Int\n_INFO_MATERIAL_CHANGES_IN_FRAME = 2\n\n_MAX_GLOW_LEVELS :: Int\n_MAX_GLOW_LEVELS = 7\n\n_LIGHT_OMNI_SHADOW_DETAIL_HORIZONTAL :: Int\n_LIGHT_OMNI_SHADOW_DETAIL_HORIZONTAL = 1\n\n_TEXTURE_TYPE_CUBEMAP :: Int\n_TEXTURE_TYPE_CUBEMAP = 1\n\n_VIEWPORT_RENDER_INFO_SURFACE_CHANGES_IN_FRAME :: Int\n_VIEWPORT_RENDER_INFO_SURFACE_CHANGES_IN_FRAME = 4\n\n_ARRAY_COMPRESS_TEX_UV :: Int\n_ARRAY_COMPRESS_TEX_UV = 8192\n\n_ARRAY_COMPRESS_BONES :: Int\n_ARRAY_COMPRESS_BONES = 32768\n\n_REFLECTION_PROBE_UPDATE_ALWAYS :: Int\n_REFLECTION_PROBE_UPDATE_ALWAYS = 1\n\n_VIEWPORT_MSAA_DISABLED :: Int\n_VIEWPORT_MSAA_DISABLED = 0\n\n_CUBEMAP_RIGHT :: Int\n_CUBEMAP_RIGHT = 1\n\n_ARRAY_MAX :: Int\n_ARRAY_MAX = 9\n\n_LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET :: Int\n_LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET = 10\n\n_ENV_TONE_MAPPER_FILMIC :: Int\n_ENV_TONE_MAPPER_FILMIC = 2\n\n_PARTICLES_DRAW_ORDER_LIFETIME :: Int\n_PARTICLES_DRAW_ORDER_LIFETIME = 1\n\n_NINE_PATCH_STRETCH :: Int\n_NINE_PATCH_STRETCH = 0\n\n_INFO_USAGE_VIDEO_MEM_TOTAL :: Int\n_INFO_USAGE_VIDEO_MEM_TOTAL = 6\n\n_ARRAY_NORMAL :: Int\n_ARRAY_NORMAL = 1\n\n_MULTIMESH_COLOR_NONE :: Int\n_MULTIMESH_COLOR_NONE = 0\n\n_ARRAY_FORMAT_TEX_UV2 :: Int\n_ARRAY_FORMAT_TEX_UV2 = 32\n\n_ENV_SSAO_QUALITY_LOW :: Int\n_ENV_SSAO_QUALITY_LOW = 0\n\n_INSTANCE_MESH :: Int\n_INSTANCE_MESH = 1\n\n_MATERIAL_RENDER_PRIORITY_MAX :: Int\n_MATERIAL_RENDER_PRIORITY_MAX = 127\n\n_LIGHT_PARAM_SHADOW_MAX_DISTANCE :: Int\n_LIGHT_PARAM_SHADOW_MAX_DISTANCE = 8\n\n_VIEWPORT_MSAA_2X :: Int\n_VIEWPORT_MSAA_2X = 1\n\n_PARTICLES_DRAW_ORDER_INDEX :: Int\n_PARTICLES_DRAW_ORDER_INDEX = 0\n\n_ENV_DOF_BLUR_QUALITY_LOW :: Int\n_ENV_DOF_BLUR_QUALITY_LOW = 0\n\n_INFO_SHADER_CHANGES_IN_FRAME :: Int\n_INFO_SHADER_CHANGES_IN_FRAME = 3\n\n_GLOW_BLEND_MODE_ADDITIVE :: Int\n_GLOW_BLEND_MODE_ADDITIVE = 0\n\n_ENV_BG_CANVAS :: Int\n_ENV_BG_CANVAS = 4\n\n_LIGHT_OMNI_SHADOW_DUAL_PARABOLOID :: Int\n_LIGHT_OMNI_SHADOW_DUAL_PARABOLOID = 0\n\n_ARRAY_INDEX :: Int\n_ARRAY_INDEX = 8\n\n_LIGHT_PARAM_ENERGY :: Int\n_LIGHT_PARAM_ENERGY = 0\n\n_ARRAY_COLOR :: Int\n_ARRAY_COLOR = 3\n\n_LIGHT_OMNI_SHADOW_CUBE :: Int\n_LIGHT_OMNI_SHADOW_CUBE = 1\n\n_PRIMITIVE_TRIANGLE_STRIP :: Int\n_PRIMITIVE_TRIANGLE_STRIP = 5\n\n_VIEWPORT_RENDER_INFO_MAX :: Int\n_VIEWPORT_RENDER_INFO_MAX = 6\n\n_PRIMITIVE_TRIANGLES :: Int\n_PRIMITIVE_TRIANGLES = 4\n\n_TEXTURE_FLAGS_DEFAULT :: Int\n_TEXTURE_FLAGS_DEFAULT = 7\n\n_VIEWPORT_USAGE_3D_NO_EFFECTS :: Int\n_VIEWPORT_USAGE_3D_NO_EFFECTS = 3\n\n_ARRAY_TEX_UV :: Int\n_ARRAY_TEX_UV = 4\n\n_VIEWPORT_CLEAR_ONLY_NEXT_FRAME :: Int\n_VIEWPORT_CLEAR_ONLY_NEXT_FRAME = 2\n\n_CANVAS_LIGHT_FILTER_PCF7 :: Int\n_CANVAS_LIGHT_FILTER_PCF7 = 3\n\n_BLEND_SHAPE_MODE_NORMALIZED :: Int\n_BLEND_SHAPE_MODE_NORMALIZED = 0\n\n_ENV_BG_COLOR_SKY :: Int\n_ENV_BG_COLOR_SKY = 3\n\n_PRIMITIVE_LINE_LOOP :: Int\n_PRIMITIVE_LINE_LOOP = 3\n\n_LIGHT_PARAM_SPECULAR :: Int\n_LIGHT_PARAM_SPECULAR = 2\n\n_VIEWPORT_MSAA_EXT_2X :: Int\n_VIEWPORT_MSAA_EXT_2X = 5\n\n_CANVAS_LIGHT_MODE_SUB :: Int\n_CANVAS_LIGHT_MODE_SUB = 1\n\n_VIEWPORT_USAGE_3D :: Int\n_VIEWPORT_USAGE_3D = 2\n\n_GLOW_BLEND_MODE_SOFTLIGHT :: Int\n_GLOW_BLEND_MODE_SOFTLIGHT = 2\n\n_PRIMITIVE_TRIANGLE_FAN :: Int\n_PRIMITIVE_TRIANGLE_FAN = 6\n\n_VIEWPORT_DEBUG_DRAW_UNSHADED :: Int\n_VIEWPORT_DEBUG_DRAW_UNSHADED = 1\n\n_MATERIAL_RENDER_PRIORITY_MIN :: Int\n_MATERIAL_RENDER_PRIORITY_MIN = -128\n\n_LIGHT_OMNI_SHADOW_DETAIL_VERTICAL :: Int\n_LIGHT_OMNI_SHADOW_DETAIL_VERTICAL = 0\n\n_INSTANCE_FLAG_MAX :: Int\n_INSTANCE_FLAG_MAX = 2\n\n_MULTIMESH_TRANSFORM_3D :: Int\n_MULTIMESH_TRANSFORM_3D = 1\n\n_SCENARIO_DEBUG_OVERDRAW :: Int\n_SCENARIO_DEBUG_OVERDRAW = 2\n\n_ARRAY_FORMAT_NORMAL :: Int\n_ARRAY_FORMAT_NORMAL = 2\n\n_MULTIMESH_CUSTOM_DATA_8BIT :: Int\n_MULTIMESH_CUSTOM_DATA_8BIT = 1\n\n_ARRAY_TEX_UV2 :: Int\n_ARRAY_TEX_UV2 = 5\n\n_ENV_DOF_BLUR_QUALITY_MEDIUM :: Int\n_ENV_DOF_BLUR_QUALITY_MEDIUM = 1\n\n_TEXTURE_TYPE_2D :: Int\n_TEXTURE_TYPE_2D = 0\n\n_ENV_BG_SKY :: Int\n_ENV_BG_SKY = 2\n\n_FEATURE_SHADERS :: Int\n_FEATURE_SHADERS = 0\n\n_CUBEMAP_TOP :: Int\n_CUBEMAP_TOP = 3\n\n_PARTICLES_DRAW_ORDER_VIEW_DEPTH :: Int\n_PARTICLES_DRAW_ORDER_VIEW_DEPTH = 2\n\n_CUBEMAP_BACK :: Int\n_CUBEMAP_BACK = 5\n\n_LIGHT_SPOT :: Int\n_LIGHT_SPOT = 2\n\n_LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS :: Int\n_LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS = 2\n\n_INSTANCE_PARTICLES :: Int\n_INSTANCE_PARTICLES = 4\n\n_TEXTURE_FLAG_REPEAT :: Int\n_TEXTURE_FLAG_REPEAT = 2\n\n_LIGHT_PARAM_SPOT_ATTENUATION :: Int\n_LIGHT_PARAM_SPOT_ATTENUATION = 6\n\n_REFLECTION_PROBE_UPDATE_ONCE :: Int\n_REFLECTION_PROBE_UPDATE_ONCE = 0\n\n_ARRAY_COMPRESS_DEFAULT :: Int\n_ARRAY_COMPRESS_DEFAULT = 97280\n\n_CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE :: Int\n_CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE = 2\n\n_CANVAS_ITEM_Z_MAX :: Int\n_CANVAS_ITEM_Z_MAX = 4096\n\n_ENV_TONE_MAPPER_LINEAR :: Int\n_ENV_TONE_MAPPER_LINEAR = 0\n\n_LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET :: Int\n_LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET = 11\n\n_VIEWPORT_RENDER_INFO_VERTICES_IN_FRAME :: Int\n_VIEWPORT_RENDER_INFO_VERTICES_IN_FRAME = 1\n\n_MULTIMESH_CUSTOM_DATA_NONE :: Int\n_MULTIMESH_CUSTOM_DATA_NONE = 0\n\n_LIGHT_OMNI :: Int\n_LIGHT_OMNI = 1\n\n_ENV_BG_MAX :: Int\n_ENV_BG_MAX = 7\n\n_INSTANCE_REFLECTION_PROBE :: Int\n_INSTANCE_REFLECTION_PROBE = 6\n\n_INFO_TEXTURE_MEM_USED :: Int\n_INFO_TEXTURE_MEM_USED = 8\n\n_INSTANCE_NONE :: Int\n_INSTANCE_NONE = 0\n\n_SHADER_CANVAS_ITEM :: Int\n_SHADER_CANVAS_ITEM = 1\n\n_ENV_SSAO_QUALITY_MEDIUM :: Int\n_ENV_SSAO_QUALITY_MEDIUM = 1\n\n_CANVAS_LIGHT_FILTER_PCF3 :: Int\n_CANVAS_LIGHT_FILTER_PCF3 = 1\n\n_ARRAY_FORMAT_BONES :: Int\n_ARRAY_FORMAT_BONES = 64\n\n_LIGHT_PARAM_SPOT_ANGLE :: Int\n_LIGHT_PARAM_SPOT_ANGLE = 5\n\n_ARRAY_WEIGHTS_SIZE :: Int\n_ARRAY_WEIGHTS_SIZE = 4\n\n_SHADOW_CASTING_SETTING_DOUBLE_SIDED :: Int\n_SHADOW_CASTING_SETTING_DOUBLE_SIDED = 2\n\n_ENV_SSAO_QUALITY_HIGH :: Int\n_ENV_SSAO_QUALITY_HIGH = 2\n\n_INFO_VERTICES_IN_FRAME :: Int\n_INFO_VERTICES_IN_FRAME = 1\n\n_INFO_VIDEO_MEM_USED :: Int\n_INFO_VIDEO_MEM_USED = 7\n\n_GLOW_BLEND_MODE_REPLACE :: Int\n_GLOW_BLEND_MODE_REPLACE = 3\n\n_NINE_PATCH_TILE_FIT :: Int\n_NINE_PATCH_TILE_FIT = 2\n\n_VIEWPORT_UPDATE_ONCE :: Int\n_VIEWPORT_UPDATE_ONCE = 1\n\n_ARRAY_COMPRESS_COLOR :: Int\n_ARRAY_COMPRESS_COLOR = 4096\n\n_GLOW_BLEND_MODE_SCREEN :: Int\n_GLOW_BLEND_MODE_SCREEN = 1\n\n_MAX_CURSORS :: Int\n_MAX_CURSORS = 8\n\n_TEXTURE_FLAG_CONVERT_TO_LINEAR :: Int\n_TEXTURE_FLAG_CONVERT_TO_LINEAR = 16\n\n_PRIMITIVE_MAX :: Int\n_PRIMITIVE_MAX = 7\n\n_LIGHT_PARAM_CONTACT_SHADOW_SIZE :: Int\n_LIGHT_PARAM_CONTACT_SHADOW_SIZE = 7\n\n_INSTANCE_MAX :: Int\n_INSTANCE_MAX = 9\n\n_ENV_SSAO_BLUR_3x3 :: Int\n_ENV_SSAO_BLUR_3x3 = 3\n\n_ARRAY_WEIGHTS :: Int\n_ARRAY_WEIGHTS = 7\n\n_LIGHT_PARAM_MAX :: Int\n_LIGHT_PARAM_MAX = 15\n\n_CUBEMAP_BOTTOM :: Int\n_CUBEMAP_BOTTOM = 2\n\n_ARRAY_TANGENT :: Int\n_ARRAY_TANGENT = 2\n\n_SCENARIO_DEBUG_SHADELESS :: Int\n_SCENARIO_DEBUG_SHADELESS = 3\n\n_INFO_OBJECTS_IN_FRAME :: Int\n_INFO_OBJECTS_IN_FRAME = 0\n\n_INSTANCE_GI_PROBE :: Int\n_INSTANCE_GI_PROBE = 7\n\n_LIGHT_PARAM_SHADOW_NORMAL_BIAS :: Int\n_LIGHT_PARAM_SHADOW_NORMAL_BIAS = 12\n\n_VIEWPORT_USAGE_2D_NO_SAMPLING :: Int\n_VIEWPORT_USAGE_2D_NO_SAMPLING = 1\n\n_ENV_SSAO_BLUR_2x2 :: Int\n_ENV_SSAO_BLUR_2x2 = 2\n\n_VIEWPORT_UPDATE_DISABLED :: Int\n_VIEWPORT_UPDATE_DISABLED = 0\n\n_SHADOW_CASTING_SETTING_OFF :: Int\n_SHADOW_CASTING_SETTING_OFF = 0\n\n_VIEWPORT_MSAA_16X :: Int\n_VIEWPORT_MSAA_16X = 4\n\n_CANVAS_LIGHT_FILTER_PCF9 :: Int\n_CANVAS_LIGHT_FILTER_PCF9 = 4\n\n_ENV_SSAO_BLUR_DISABLED :: Int\n_ENV_SSAO_BLUR_DISABLED = 0\n\n_TEXTURE_FLAG_ANISOTROPIC_FILTER :: Int\n_TEXTURE_FLAG_ANISOTROPIC_FILTER = 8\n\n_FEATURE_MULTITHREADED :: Int\n_FEATURE_MULTITHREADED = 1\n\n_ENV_SSAO_BLUR_1x1 :: Int\n_ENV_SSAO_BLUR_1x1 = 1\n\n_INFO_DRAW_CALLS_IN_FRAME :: Int\n_INFO_DRAW_CALLS_IN_FRAME = 5\n\n_ENV_BG_COLOR :: Int\n_ENV_BG_COLOR = 1\n\n_ENV_TONE_MAPPER_ACES :: Int\n_ENV_TONE_MAPPER_ACES = 3\n\n_LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_STABLE :: Int\n_LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_STABLE = 0\n\n_LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_OPTIMIZED :: Int\n_LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_OPTIMIZED = 1\n\n_ARRAY_COMPRESS_TEX_UV2 :: Int\n_ARRAY_COMPRESS_TEX_UV2 = 16384\n\n_MULTIMESH_COLOR_8BIT :: Int\n_MULTIMESH_COLOR_8BIT = 1\n\n_MULTIMESH_TRANSFORM_2D :: Int\n_MULTIMESH_TRANSFORM_2D = 0\n\n_VIEWPORT_UPDATE_WHEN_VISIBLE :: Int\n_VIEWPORT_UPDATE_WHEN_VISIBLE = 2\n\n_VIEWPORT_MSAA_EXT_4X :: Int\n_VIEWPORT_MSAA_EXT_4X = 6\n\n_INSTANCE_LIGHT :: Int\n_INSTANCE_LIGHT = 5\n\n_TEXTURE_TYPE_3D :: Int\n_TEXTURE_TYPE_3D = 3\n\n_TEXTURE_FLAG_MIPMAPS :: Int\n_TEXTURE_FLAG_MIPMAPS = 1\n\n_PRIMITIVE_LINE_STRIP :: Int\n_PRIMITIVE_LINE_STRIP = 2\n\n_TEXTURE_FLAG_FILTER :: Int\n_TEXTURE_FLAG_FILTER = 4\n\n_ENV_BG_KEEP :: Int\n_ENV_BG_KEEP = 5\n\n_CANVAS_LIGHT_FILTER_NONE :: Int\n_CANVAS_LIGHT_FILTER_NONE = 0\n\n_CUBEMAP_FRONT :: Int\n_CUBEMAP_FRONT = 4\n\n_TEXTURE_FLAG_USED_FOR_STREAMING :: Int\n_TEXTURE_FLAG_USED_FOR_STREAMING = 2048\n\n_INFO_VERTEX_MEM_USED :: Int\n_INFO_VERTEX_MEM_USED = 9\n\n_TEXTURE_FLAG_MIRRORED_REPEAT :: Int\n_TEXTURE_FLAG_MIRRORED_REPEAT = 32\n\n_PRIMITIVE_LINES :: Int\n_PRIMITIVE_LINES = 1\n\n_VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME :: Int\n_VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME = 0\n\n_ENV_BG_CLEAR_COLOR :: Int\n_ENV_BG_CLEAR_COLOR = 0\n\n_SHADOW_CASTING_SETTING_ON :: Int\n_SHADOW_CASTING_SETTING_ON = 1\n\n_SCENARIO_DEBUG_WIREFRAME :: Int\n_SCENARIO_DEBUG_WIREFRAME = 1\n\n_CANVAS_LIGHT_MODE_ADD :: Int\n_CANVAS_LIGHT_MODE_ADD = 0\n\n_LIGHT_PARAM_SHADOW_BIAS_SPLIT_SCALE :: Int\n_LIGHT_PARAM_SHADOW_BIAS_SPLIT_SCALE = 14\n\n_VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME :: Int\n_VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME = 5\n\n_ARRAY_BONES :: Int\n_ARRAY_BONES = 6\n\n_LIGHT_PARAM_ATTENUATION :: Int\n_LIGHT_PARAM_ATTENUATION = 4\n\n_VIEWPORT_DEBUG_DRAW_WIREFRAME :: Int\n_VIEWPORT_DEBUG_DRAW_WIREFRAME = 3\n\n_CANVAS_LIGHT_MODE_MIX :: Int\n_CANVAS_LIGHT_MODE_MIX = 2\n\n_NINE_PATCH_TILE :: Int\n_NINE_PATCH_TILE = 1\n\n_VIEWPORT_RENDER_INFO_SHADER_CHANGES_IN_FRAME :: Int\n_VIEWPORT_RENDER_INFO_SHADER_CHANGES_IN_FRAME = 3\n\n_INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE :: Int\n_INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE = 1\n\n_CANVAS_LIGHT_MODE_MASK :: Int\n_CANVAS_LIGHT_MODE_MASK = 3\n\n_LIGHT_PARAM_RANGE :: Int\n_LIGHT_PARAM_RANGE = 3\n\n_BLEND_SHAPE_MODE_RELATIVE :: Int\n_BLEND_SHAPE_MODE_RELATIVE = 1\n\n_VIEWPORT_MSAA_4X :: Int\n_VIEWPORT_MSAA_4X = 2\n\n_LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET :: Int\n_LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET = 9\n\n_ENV_TONE_MAPPER_REINHARD :: Int\n_ENV_TONE_MAPPER_REINHARD = 1\n\n_CANVAS_LIGHT_FILTER_PCF13 :: Int\n_CANVAS_LIGHT_FILTER_PCF13 = 5\n\n_MULTIMESH_CUSTOM_DATA_FLOAT :: Int\n_MULTIMESH_CUSTOM_DATA_FLOAT = 2\n\n_NO_INDEX_ARRAY :: Int\n_NO_INDEX_ARRAY = -1\n\n_ARRAY_VERTEX :: Int\n_ARRAY_VERTEX = 0\n\n_ARRAY_FLAG_USE_2D_VERTICES :: Int\n_ARRAY_FLAG_USE_2D_VERTICES = 262144\n\n_CANVAS_LIGHT_FILTER_PCF5 :: Int\n_CANVAS_LIGHT_FILTER_PCF5 = 2\n\n_LIGHT_DIRECTIONAL :: Int\n_LIGHT_DIRECTIONAL = 0\n\n_ARRAY_COMPRESS_INDEX :: Int\n_ARRAY_COMPRESS_INDEX = 131072\n\n_INSTANCE_FLAG_USE_BAKED_LIGHT :: Int\n_INSTANCE_FLAG_USE_BAKED_LIGHT = 0\n\n_CUBEMAP_LEFT :: Int\n_CUBEMAP_LEFT = 0\n\n_LIGHT_PARAM_SHADOW_BIAS :: Int\n_LIGHT_PARAM_SHADOW_BIAS = 13\n\n_ARRAY_FORMAT_WEIGHTS :: Int\n_ARRAY_FORMAT_WEIGHTS = 128\n\n_SHADER_PARTICLES :: Int\n_SHADER_PARTICLES = 2\n\n_ARRAY_FORMAT_TANGENT :: Int\n_ARRAY_FORMAT_TANGENT = 4\n\n_PRIMITIVE_POINTS :: Int\n_PRIMITIVE_POINTS = 0\n\n-- | Emitted at the end of the frame, after the VisualServer has finished updating all the Viewports.\nsig_frame_post_draw :: Godot.Internal.Dispatch.Signal VisualServer\nsig_frame_post_draw\n  = Godot.Internal.Dispatch.Signal \"frame_post_draw\"\n\ninstance NodeSignal VisualServer \"frame_post_draw\" '[]\n\n-- | Emitted at the beginning of the frame, before the VisualServer updates all the Viewports.\nsig_frame_pre_draw :: Godot.Internal.Dispatch.Signal VisualServer\nsig_frame_pre_draw\n  = Godot.Internal.Dispatch.Signal \"frame_pre_draw\"\n\ninstance NodeSignal VisualServer \"frame_pre_draw\" '[]\n\n{-# NOINLINE bindVisualServer_black_bars_set_images #-}\n\n-- | Sets images to be rendered in the window margin.\nbindVisualServer_black_bars_set_images :: MethodBind\nbindVisualServer_black_bars_set_images\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"black_bars_set_images\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets images to be rendered in the window margin.\nblack_bars_set_images ::\n                        (VisualServer :< cls, Object :< cls) =>\n                        cls -> Rid -> Rid -> Rid -> Rid -> IO ()\nblack_bars_set_images cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_black_bars_set_images\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"black_bars_set_images\"\n           '[Rid, Rid, Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.black_bars_set_images\n\n{-# NOINLINE bindVisualServer_black_bars_set_margins #-}\n\n-- | Sets margin size, where black bars (or images, if @method black_bars_set_images@ was used) are rendered.\nbindVisualServer_black_bars_set_margins :: MethodBind\nbindVisualServer_black_bars_set_margins\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"black_bars_set_margins\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets margin size, where black bars (or images, if @method black_bars_set_images@ was used) are rendered.\nblack_bars_set_margins ::\n                         (VisualServer :< cls, Object :< cls) =>\n                         cls -> Int -> Int -> Int -> Int -> IO ()\nblack_bars_set_margins cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_black_bars_set_margins\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"black_bars_set_margins\"\n           '[Int, Int, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.black_bars_set_margins\n\n{-# NOINLINE bindVisualServer_camera_create #-}\n\n-- | Creates a camera and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @camera_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nbindVisualServer_camera_create :: MethodBind\nbindVisualServer_camera_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"camera_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a camera and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @camera_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\ncamera_create ::\n                (VisualServer :< cls, Object :< cls) => cls -> IO Rid\ncamera_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_camera_create (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"camera_create\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.VisualServer.camera_create\n\n{-# NOINLINE bindVisualServer_camera_set_cull_mask #-}\n\n-- | Sets the cull mask associated with this camera. The cull mask describes which 3D layers are rendered by this camera. Equivalent to @Camera.cull_mask@.\nbindVisualServer_camera_set_cull_mask :: MethodBind\nbindVisualServer_camera_set_cull_mask\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"camera_set_cull_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the cull mask associated with this camera. The cull mask describes which 3D layers are rendered by this camera. Equivalent to @Camera.cull_mask@.\ncamera_set_cull_mask ::\n                       (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\ncamera_set_cull_mask cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_camera_set_cull_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"camera_set_cull_mask\" '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.camera_set_cull_mask\n\n{-# NOINLINE bindVisualServer_camera_set_environment #-}\n\n-- | Sets the environment used by this camera. Equivalent to @Camera.environment@.\nbindVisualServer_camera_set_environment :: MethodBind\nbindVisualServer_camera_set_environment\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"camera_set_environment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the environment used by this camera. Equivalent to @Camera.environment@.\ncamera_set_environment ::\n                         (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\ncamera_set_environment cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_camera_set_environment\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"camera_set_environment\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.camera_set_environment\n\n{-# NOINLINE bindVisualServer_camera_set_frustum #-}\n\n-- | Sets camera to use frustum projection. This mode allows adjusting the @offset@ argument to create \"tilted frustum\" effects.\nbindVisualServer_camera_set_frustum :: MethodBind\nbindVisualServer_camera_set_frustum\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"camera_set_frustum\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets camera to use frustum projection. This mode allows adjusting the @offset@ argument to create \"tilted frustum\" effects.\ncamera_set_frustum ::\n                     (VisualServer :< cls, Object :< cls) =>\n                     cls -> Rid -> Float -> Vector2 -> Float -> Float -> IO ()\ncamera_set_frustum cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_camera_set_frustum\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"camera_set_frustum\"\n           '[Rid, Float, Vector2, Float, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.camera_set_frustum\n\n{-# NOINLINE bindVisualServer_camera_set_orthogonal #-}\n\n-- | Sets camera to use orthogonal projection, also known as orthographic projection. Objects remain the same size on the screen no matter how far away they are.\nbindVisualServer_camera_set_orthogonal :: MethodBind\nbindVisualServer_camera_set_orthogonal\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"camera_set_orthogonal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets camera to use orthogonal projection, also known as orthographic projection. Objects remain the same size on the screen no matter how far away they are.\ncamera_set_orthogonal ::\n                        (VisualServer :< cls, Object :< cls) =>\n                        cls -> Rid -> Float -> Float -> Float -> IO ()\ncamera_set_orthogonal cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_camera_set_orthogonal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"camera_set_orthogonal\"\n           '[Rid, Float, Float, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.camera_set_orthogonal\n\n{-# NOINLINE bindVisualServer_camera_set_perspective #-}\n\n-- | Sets camera to use perspective projection. Objects on the screen becomes smaller when they are far away.\nbindVisualServer_camera_set_perspective :: MethodBind\nbindVisualServer_camera_set_perspective\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"camera_set_perspective\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets camera to use perspective projection. Objects on the screen becomes smaller when they are far away.\ncamera_set_perspective ::\n                         (VisualServer :< cls, Object :< cls) =>\n                         cls -> Rid -> Float -> Float -> Float -> IO ()\ncamera_set_perspective cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_camera_set_perspective\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"camera_set_perspective\"\n           '[Rid, Float, Float, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.camera_set_perspective\n\n{-# NOINLINE bindVisualServer_camera_set_transform #-}\n\n-- | Sets @Transform@ of camera.\nbindVisualServer_camera_set_transform :: MethodBind\nbindVisualServer_camera_set_transform\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"camera_set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets @Transform@ of camera.\ncamera_set_transform ::\n                       (VisualServer :< cls, Object :< cls) =>\n                       cls -> Rid -> Transform -> IO ()\ncamera_set_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_camera_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"camera_set_transform\"\n           '[Rid, Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.camera_set_transform\n\n{-# NOINLINE bindVisualServer_camera_set_use_vertical_aspect #-}\n\n-- | If @true@, preserves the horizontal aspect ratio which is equivalent to @Camera.KEEP_WIDTH@. If @false@, preserves the vertical aspect ratio which is equivalent to @Camera.KEEP_HEIGHT@.\nbindVisualServer_camera_set_use_vertical_aspect :: MethodBind\nbindVisualServer_camera_set_use_vertical_aspect\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"camera_set_use_vertical_aspect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, preserves the horizontal aspect ratio which is equivalent to @Camera.KEEP_WIDTH@. If @false@, preserves the vertical aspect ratio which is equivalent to @Camera.KEEP_HEIGHT@.\ncamera_set_use_vertical_aspect ::\n                                 (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\ncamera_set_use_vertical_aspect cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_camera_set_use_vertical_aspect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"camera_set_use_vertical_aspect\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.camera_set_use_vertical_aspect\n\n{-# NOINLINE bindVisualServer_canvas_create #-}\n\n-- | Creates a canvas and returns the assigned @RID@. It can be accessed with the RID that is returned. This RID will be used in all @canvas_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nbindVisualServer_canvas_create :: MethodBind\nbindVisualServer_canvas_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a canvas and returns the assigned @RID@. It can be accessed with the RID that is returned. This RID will be used in all @canvas_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\ncanvas_create ::\n                (VisualServer :< cls, Object :< cls) => cls -> IO Rid\ncanvas_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_create (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_create\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.VisualServer.canvas_create\n\n{-# NOINLINE bindVisualServer_canvas_item_add_circle #-}\n\n-- | Adds a circle command to the @CanvasItem@'s draw commands.\nbindVisualServer_canvas_item_add_circle :: MethodBind\nbindVisualServer_canvas_item_add_circle\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_add_circle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a circle command to the @CanvasItem@'s draw commands.\ncanvas_item_add_circle ::\n                         (VisualServer :< cls, Object :< cls) =>\n                         cls -> Rid -> Vector2 -> Float -> Color -> IO ()\ncanvas_item_add_circle cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_add_circle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_add_circle\"\n           '[Rid, Vector2, Float, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_add_circle\n\n{-# NOINLINE bindVisualServer_canvas_item_add_clip_ignore #-}\n\n-- | If ignore is @true@, the VisualServer does not perform clipping.\nbindVisualServer_canvas_item_add_clip_ignore :: MethodBind\nbindVisualServer_canvas_item_add_clip_ignore\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_add_clip_ignore\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If ignore is @true@, the VisualServer does not perform clipping.\ncanvas_item_add_clip_ignore ::\n                              (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\ncanvas_item_add_clip_ignore cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_add_clip_ignore\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_add_clip_ignore\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_add_clip_ignore\n\n{-# NOINLINE bindVisualServer_canvas_item_add_line #-}\n\n-- | Adds a line command to the @CanvasItem@'s draw commands.\nbindVisualServer_canvas_item_add_line :: MethodBind\nbindVisualServer_canvas_item_add_line\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_add_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a line command to the @CanvasItem@'s draw commands.\ncanvas_item_add_line ::\n                       (VisualServer :< cls, Object :< cls) =>\n                       cls ->\n                         Rid ->\n                           Vector2 -> Vector2 -> Color -> Maybe Float -> Maybe Bool -> IO ()\ncanvas_item_add_line cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       maybe (VariantReal (1)) toVariant arg5,\n       maybe (VariantBool False) toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_add_line\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_add_line\"\n           '[Rid, Vector2, Vector2, Color, Maybe Float, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_add_line\n\n{-# NOINLINE bindVisualServer_canvas_item_add_mesh #-}\n\n-- | Adds a mesh command to the @CanvasItem@'s draw commands.\nbindVisualServer_canvas_item_add_mesh :: MethodBind\nbindVisualServer_canvas_item_add_mesh\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_add_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a mesh command to the @CanvasItem@'s draw commands.\ncanvas_item_add_mesh ::\n                       (VisualServer :< cls, Object :< cls) =>\n                       cls ->\n                         Rid ->\n                           Rid ->\n                             Maybe Transform2d -> Maybe Color -> Maybe Rid -> Maybe Rid -> IO ()\ncanvas_item_add_mesh cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantTransform2d\n         (TF2d (V2 1 0) (V2 0 1) (V2 0 0))\n         arg3,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg4,\n       maybe VariantNil toVariant arg5, maybe VariantNil toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_add_mesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_add_mesh\"\n           '[Rid, Rid, Maybe Transform2d, Maybe Color, Maybe Rid, Maybe Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_add_mesh\n\n{-# NOINLINE bindVisualServer_canvas_item_add_multimesh #-}\n\n-- | Adds a @MultiMesh@ to the @CanvasItem@'s draw commands. Only affects its aabb at the moment.\nbindVisualServer_canvas_item_add_multimesh :: MethodBind\nbindVisualServer_canvas_item_add_multimesh\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_add_multimesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @MultiMesh@ to the @CanvasItem@'s draw commands. Only affects its aabb at the moment.\ncanvas_item_add_multimesh ::\n                            (VisualServer :< cls, Object :< cls) =>\n                            cls -> Rid -> Rid -> Rid -> Maybe Rid -> IO ()\ncanvas_item_add_multimesh cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe VariantNil toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_add_multimesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_add_multimesh\"\n           '[Rid, Rid, Rid, Maybe Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_add_multimesh\n\n{-# NOINLINE bindVisualServer_canvas_item_add_nine_patch #-}\n\n-- | Adds a nine patch image to the @CanvasItem@'s draw commands.\n--   \t\t\t\tSee @NinePatchRect@ for more explanation.\nbindVisualServer_canvas_item_add_nine_patch :: MethodBind\nbindVisualServer_canvas_item_add_nine_patch\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_add_nine_patch\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a nine patch image to the @CanvasItem@'s draw commands.\n--   \t\t\t\tSee @NinePatchRect@ for more explanation.\ncanvas_item_add_nine_patch ::\n                             (VisualServer :< cls, Object :< cls) =>\n                             cls ->\n                               Rid ->\n                                 Rect2 ->\n                                   Rect2 ->\n                                     Rid ->\n                                       Vector2 ->\n                                         Vector2 ->\n                                           Maybe Int ->\n                                             Maybe Int ->\n                                               Maybe Bool -> Maybe Color -> Maybe Rid -> IO ()\ncanvas_item_add_nine_patch cls arg1 arg2 arg3 arg4 arg5 arg6 arg7\n  arg8 arg9 arg10 arg11\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6,\n       maybe (VariantInt (0)) toVariant arg7,\n       maybe (VariantInt (0)) toVariant arg8,\n       maybe (VariantBool True) toVariant arg9,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg10,\n       maybe VariantNil toVariant arg11]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_add_nine_patch\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_add_nine_patch\"\n           '[Rid, Rect2, Rect2, Rid, Vector2, Vector2, Maybe Int, Maybe Int,\n             Maybe Bool, Maybe Color, Maybe Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_add_nine_patch\n\n{-# NOINLINE bindVisualServer_canvas_item_add_particles #-}\n\n-- | Adds a particle system to the @CanvasItem@'s draw commands.\nbindVisualServer_canvas_item_add_particles :: MethodBind\nbindVisualServer_canvas_item_add_particles\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_add_particles\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a particle system to the @CanvasItem@'s draw commands.\ncanvas_item_add_particles ::\n                            (VisualServer :< cls, Object :< cls) =>\n                            cls -> Rid -> Rid -> Rid -> Rid -> IO ()\ncanvas_item_add_particles cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_add_particles\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_add_particles\"\n           '[Rid, Rid, Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_add_particles\n\n{-# NOINLINE bindVisualServer_canvas_item_add_polygon #-}\n\n-- | Adds a polygon to the @CanvasItem@'s draw commands.\nbindVisualServer_canvas_item_add_polygon :: MethodBind\nbindVisualServer_canvas_item_add_polygon\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_add_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a polygon to the @CanvasItem@'s draw commands.\ncanvas_item_add_polygon ::\n                          (VisualServer :< cls, Object :< cls) =>\n                          cls ->\n                            Rid ->\n                              PoolVector2Array ->\n                                PoolColorArray ->\n                                  Maybe PoolVector2Array ->\n                                    Maybe Rid -> Maybe Rid -> Maybe Bool -> IO ()\ncanvas_item_add_polygon cls arg1 arg2 arg3 arg4 arg5 arg6 arg7\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       defaultedVariant VariantPoolVector2Array V.empty arg4,\n       maybe VariantNil toVariant arg5, maybe VariantNil toVariant arg6,\n       maybe (VariantBool False) toVariant arg7]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_add_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_add_polygon\"\n           '[Rid, PoolVector2Array, PoolColorArray, Maybe PoolVector2Array,\n             Maybe Rid, Maybe Rid, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_add_polygon\n\n{-# NOINLINE bindVisualServer_canvas_item_add_polyline #-}\n\n-- | Adds a polyline, which is a line from multiple points with a width, to the @CanvasItem@'s draw commands.\nbindVisualServer_canvas_item_add_polyline :: MethodBind\nbindVisualServer_canvas_item_add_polyline\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_add_polyline\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a polyline, which is a line from multiple points with a width, to the @CanvasItem@'s draw commands.\ncanvas_item_add_polyline ::\n                           (VisualServer :< cls, Object :< cls) =>\n                           cls ->\n                             Rid ->\n                               PoolVector2Array ->\n                                 PoolColorArray -> Maybe Float -> Maybe Bool -> IO ()\ncanvas_item_add_polyline cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantReal (1)) toVariant arg4,\n       maybe (VariantBool False) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_add_polyline\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_add_polyline\"\n           '[Rid, PoolVector2Array, PoolColorArray, Maybe Float, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_add_polyline\n\n{-# NOINLINE bindVisualServer_canvas_item_add_primitive #-}\n\n-- | Adds a primitive to the @CanvasItem@'s draw commands.\nbindVisualServer_canvas_item_add_primitive :: MethodBind\nbindVisualServer_canvas_item_add_primitive\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_add_primitive\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a primitive to the @CanvasItem@'s draw commands.\ncanvas_item_add_primitive ::\n                            (VisualServer :< cls, Object :< cls) =>\n                            cls ->\n                              Rid ->\n                                PoolVector2Array ->\n                                  PoolColorArray ->\n                                    PoolVector2Array -> Rid -> Maybe Float -> Maybe Rid -> IO ()\ncanvas_item_add_primitive cls arg1 arg2 arg3 arg4 arg5 arg6 arg7\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, maybe (VariantReal (1)) toVariant arg6,\n       maybe VariantNil toVariant arg7]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_add_primitive\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_add_primitive\"\n           '[Rid, PoolVector2Array, PoolColorArray, PoolVector2Array, Rid,\n             Maybe Float, Maybe Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_add_primitive\n\n{-# NOINLINE bindVisualServer_canvas_item_add_rect #-}\n\n-- | Adds a rectangle to the @CanvasItem@'s draw commands.\nbindVisualServer_canvas_item_add_rect :: MethodBind\nbindVisualServer_canvas_item_add_rect\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_add_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a rectangle to the @CanvasItem@'s draw commands.\ncanvas_item_add_rect ::\n                       (VisualServer :< cls, Object :< cls) =>\n                       cls -> Rid -> Rect2 -> Color -> IO ()\ncanvas_item_add_rect cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_add_rect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_add_rect\"\n           '[Rid, Rect2, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_add_rect\n\n{-# NOINLINE bindVisualServer_canvas_item_add_set_transform #-}\n\n-- | Adds a @Transform2D@ command to the @CanvasItem@'s draw commands.\n--   \t\t\t\tThis sets the extra_matrix uniform when executed. This affects the later commands of the canvas item.\nbindVisualServer_canvas_item_add_set_transform :: MethodBind\nbindVisualServer_canvas_item_add_set_transform\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_add_set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a @Transform2D@ command to the @CanvasItem@'s draw commands.\n--   \t\t\t\tThis sets the extra_matrix uniform when executed. This affects the later commands of the canvas item.\ncanvas_item_add_set_transform ::\n                                (VisualServer :< cls, Object :< cls) =>\n                                cls -> Rid -> Transform2d -> IO ()\ncanvas_item_add_set_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_item_add_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_add_set_transform\"\n           '[Rid, Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_add_set_transform\n\n{-# NOINLINE bindVisualServer_canvas_item_add_texture_rect #-}\n\n-- | Adds a textured rect to the @CanvasItem@'s draw commands.\nbindVisualServer_canvas_item_add_texture_rect :: MethodBind\nbindVisualServer_canvas_item_add_texture_rect\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_add_texture_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a textured rect to the @CanvasItem@'s draw commands.\ncanvas_item_add_texture_rect ::\n                               (VisualServer :< cls, Object :< cls) =>\n                               cls ->\n                                 Rid ->\n                                   Rect2 ->\n                                     Rid ->\n                                       Maybe Bool -> Maybe Color -> Maybe Bool -> Maybe Rid -> IO ()\ncanvas_item_add_texture_rect cls arg1 arg2 arg3 arg4 arg5 arg6 arg7\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantBool False) toVariant arg4,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg5,\n       maybe (VariantBool False) toVariant arg6,\n       maybe VariantNil toVariant arg7]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_item_add_texture_rect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_add_texture_rect\"\n           '[Rid, Rect2, Rid, Maybe Bool, Maybe Color, Maybe Bool, Maybe Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_add_texture_rect\n\n{-# NOINLINE bindVisualServer_canvas_item_add_texture_rect_region\n             #-}\n\n-- | Adds a texture rect with region setting to the @CanvasItem@'s draw commands.\nbindVisualServer_canvas_item_add_texture_rect_region :: MethodBind\nbindVisualServer_canvas_item_add_texture_rect_region\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_add_texture_rect_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a texture rect with region setting to the @CanvasItem@'s draw commands.\ncanvas_item_add_texture_rect_region ::\n                                      (VisualServer :< cls, Object :< cls) =>\n                                      cls ->\n                                        Rid ->\n                                          Rect2 ->\n                                            Rid ->\n                                              Rect2 ->\n                                                Maybe Color ->\n                                                  Maybe Bool -> Maybe Rid -> Maybe Bool -> IO ()\ncanvas_item_add_texture_rect_region cls arg1 arg2 arg3 arg4 arg5\n  arg6 arg7 arg8\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg5,\n       maybe (VariantBool False) toVariant arg6,\n       maybe VariantNil toVariant arg7,\n       maybe (VariantBool True) toVariant arg8]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_item_add_texture_rect_region\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"canvas_item_add_texture_rect_region\"\n           '[Rid, Rect2, Rid, Rect2, Maybe Color, Maybe Bool, Maybe Rid,\n             Maybe Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_item_add_texture_rect_region\n\n{-# NOINLINE bindVisualServer_canvas_item_add_triangle_array #-}\n\n-- | Adds a triangle array to the @CanvasItem@'s draw commands.\nbindVisualServer_canvas_item_add_triangle_array :: MethodBind\nbindVisualServer_canvas_item_add_triangle_array\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_add_triangle_array\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a triangle array to the @CanvasItem@'s draw commands.\ncanvas_item_add_triangle_array ::\n                                 (VisualServer :< cls, Object :< cls) =>\n                                 cls ->\n                                   Rid ->\n                                     PoolIntArray ->\n                                       PoolVector2Array ->\n                                         PoolColorArray ->\n                                           Maybe PoolVector2Array ->\n                                             Maybe PoolIntArray ->\n                                               Maybe PoolRealArray ->\n                                                 Maybe Rid ->\n                                                   Maybe Int ->\n                                                     Maybe Rid -> Maybe Bool -> Maybe Bool -> IO ()\ncanvas_item_add_triangle_array cls arg1 arg2 arg3 arg4 arg5 arg6\n  arg7 arg8 arg9 arg10 arg11 arg12\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       defaultedVariant VariantPoolVector2Array V.empty arg5,\n       defaultedVariant VariantPoolIntArray V.empty arg6,\n       defaultedVariant VariantPoolRealArray V.empty arg7,\n       maybe VariantNil toVariant arg8,\n       maybe (VariantInt (-1)) toVariant arg9,\n       maybe VariantNil toVariant arg10,\n       maybe (VariantBool False) toVariant arg11,\n       maybe (VariantBool False) toVariant arg12]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_item_add_triangle_array\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_add_triangle_array\"\n           '[Rid, PoolIntArray, PoolVector2Array, PoolColorArray,\n             Maybe PoolVector2Array, Maybe PoolIntArray, Maybe PoolRealArray,\n             Maybe Rid, Maybe Int, Maybe Rid, Maybe Bool, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_add_triangle_array\n\n{-# NOINLINE bindVisualServer_canvas_item_clear #-}\n\n-- | Clears the @CanvasItem@ and removes all commands in it.\nbindVisualServer_canvas_item_clear :: MethodBind\nbindVisualServer_canvas_item_clear\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears the @CanvasItem@ and removes all commands in it.\ncanvas_item_clear ::\n                    (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO ()\ncanvas_item_clear cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_clear\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_clear\" '[Rid] (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_clear\n\n{-# NOINLINE bindVisualServer_canvas_item_create #-}\n\n-- | Creates a new @CanvasItem@ and returns its @RID@. It can be accessed with the RID that is returned. This RID will be used in all @canvas_item_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nbindVisualServer_canvas_item_create :: MethodBind\nbindVisualServer_canvas_item_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a new @CanvasItem@ and returns its @RID@. It can be accessed with the RID that is returned. This RID will be used in all @canvas_item_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\ncanvas_item_create ::\n                     (VisualServer :< cls, Object :< cls) => cls -> IO Rid\ncanvas_item_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_create\n\n{-# NOINLINE bindVisualServer_canvas_item_set_clip #-}\n\n-- | Sets clipping for the @CanvasItem@.\nbindVisualServer_canvas_item_set_clip :: MethodBind\nbindVisualServer_canvas_item_set_clip\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_set_clip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets clipping for the @CanvasItem@.\ncanvas_item_set_clip ::\n                       (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\ncanvas_item_set_clip cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_set_clip\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_set_clip\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_set_clip\n\n{-# NOINLINE bindVisualServer_canvas_item_set_copy_to_backbuffer\n             #-}\n\n-- | Sets the @CanvasItem@ to copy a rect to the backbuffer.\nbindVisualServer_canvas_item_set_copy_to_backbuffer :: MethodBind\nbindVisualServer_canvas_item_set_copy_to_backbuffer\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_set_copy_to_backbuffer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @CanvasItem@ to copy a rect to the backbuffer.\ncanvas_item_set_copy_to_backbuffer ::\n                                     (VisualServer :< cls, Object :< cls) =>\n                                     cls -> Rid -> Bool -> Rect2 -> IO ()\ncanvas_item_set_copy_to_backbuffer cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_item_set_copy_to_backbuffer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"canvas_item_set_copy_to_backbuffer\"\n           '[Rid, Bool, Rect2]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_item_set_copy_to_backbuffer\n\n{-# NOINLINE bindVisualServer_canvas_item_set_custom_rect #-}\n\n-- | Defines a custom drawing rectangle for the @CanvasItem@.\nbindVisualServer_canvas_item_set_custom_rect :: MethodBind\nbindVisualServer_canvas_item_set_custom_rect\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_set_custom_rect\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines a custom drawing rectangle for the @CanvasItem@.\ncanvas_item_set_custom_rect ::\n                              (VisualServer :< cls, Object :< cls) =>\n                              cls -> Rid -> Bool -> Maybe Rect2 -> IO ()\ncanvas_item_set_custom_rect cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantRect2 (V2 (V2 0 0) (V2 0 0)) arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_set_custom_rect\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_set_custom_rect\"\n           '[Rid, Bool, Maybe Rect2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_set_custom_rect\n\n{-# NOINLINE bindVisualServer_canvas_item_set_distance_field_mode\n             #-}\n\n-- | Enables the use of distance fields for GUI elements that are rendering distance field based fonts.\nbindVisualServer_canvas_item_set_distance_field_mode :: MethodBind\nbindVisualServer_canvas_item_set_distance_field_mode\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_set_distance_field_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables the use of distance fields for GUI elements that are rendering distance field based fonts.\ncanvas_item_set_distance_field_mode ::\n                                      (VisualServer :< cls, Object :< cls) =>\n                                      cls -> Rid -> Bool -> IO ()\ncanvas_item_set_distance_field_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_item_set_distance_field_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"canvas_item_set_distance_field_mode\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_item_set_distance_field_mode\n\n{-# NOINLINE bindVisualServer_canvas_item_set_draw_behind_parent\n             #-}\n\n-- | Sets @CanvasItem@ to be drawn behind its parent.\nbindVisualServer_canvas_item_set_draw_behind_parent :: MethodBind\nbindVisualServer_canvas_item_set_draw_behind_parent\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_set_draw_behind_parent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets @CanvasItem@ to be drawn behind its parent.\ncanvas_item_set_draw_behind_parent ::\n                                     (VisualServer :< cls, Object :< cls) =>\n                                     cls -> Rid -> Bool -> IO ()\ncanvas_item_set_draw_behind_parent cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_item_set_draw_behind_parent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"canvas_item_set_draw_behind_parent\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_item_set_draw_behind_parent\n\n{-# NOINLINE bindVisualServer_canvas_item_set_draw_index #-}\n\n-- | Sets the index for the @CanvasItem@.\nbindVisualServer_canvas_item_set_draw_index :: MethodBind\nbindVisualServer_canvas_item_set_draw_index\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_set_draw_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the index for the @CanvasItem@.\ncanvas_item_set_draw_index ::\n                             (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\ncanvas_item_set_draw_index cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_set_draw_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_set_draw_index\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_set_draw_index\n\n{-# NOINLINE bindVisualServer_canvas_item_set_light_mask #-}\n\n-- | The light mask. See @LightOccluder2D@ for more information on light masks.\nbindVisualServer_canvas_item_set_light_mask :: MethodBind\nbindVisualServer_canvas_item_set_light_mask\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_set_light_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The light mask. See @LightOccluder2D@ for more information on light masks.\ncanvas_item_set_light_mask ::\n                             (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\ncanvas_item_set_light_mask cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_set_light_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_set_light_mask\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_set_light_mask\n\n{-# NOINLINE bindVisualServer_canvas_item_set_material #-}\n\n-- | Sets a new material to the @CanvasItem@.\nbindVisualServer_canvas_item_set_material :: MethodBind\nbindVisualServer_canvas_item_set_material\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_set_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a new material to the @CanvasItem@.\ncanvas_item_set_material ::\n                           (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\ncanvas_item_set_material cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_set_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_set_material\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_set_material\n\n{-# NOINLINE bindVisualServer_canvas_item_set_modulate #-}\n\n-- | Sets the color that modulates the @CanvasItem@ and its children.\nbindVisualServer_canvas_item_set_modulate :: MethodBind\nbindVisualServer_canvas_item_set_modulate\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_set_modulate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the color that modulates the @CanvasItem@ and its children.\ncanvas_item_set_modulate ::\n                           (VisualServer :< cls, Object :< cls) =>\n                           cls -> Rid -> Color -> IO ()\ncanvas_item_set_modulate cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_set_modulate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_set_modulate\"\n           '[Rid, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_set_modulate\n\n{-# NOINLINE bindVisualServer_canvas_item_set_parent #-}\n\n-- | Sets the parent for the @CanvasItem@. The parent can be another canvas item, or it can be the root canvas that is attached to the viewport.\nbindVisualServer_canvas_item_set_parent :: MethodBind\nbindVisualServer_canvas_item_set_parent\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_set_parent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the parent for the @CanvasItem@. The parent can be another canvas item, or it can be the root canvas that is attached to the viewport.\ncanvas_item_set_parent ::\n                         (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\ncanvas_item_set_parent cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_set_parent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_set_parent\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_set_parent\n\n{-# NOINLINE bindVisualServer_canvas_item_set_self_modulate #-}\n\n-- | Sets the color that modulates the @CanvasItem@ without children.\nbindVisualServer_canvas_item_set_self_modulate :: MethodBind\nbindVisualServer_canvas_item_set_self_modulate\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_set_self_modulate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the color that modulates the @CanvasItem@ without children.\ncanvas_item_set_self_modulate ::\n                                (VisualServer :< cls, Object :< cls) =>\n                                cls -> Rid -> Color -> IO ()\ncanvas_item_set_self_modulate cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_item_set_self_modulate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_set_self_modulate\"\n           '[Rid, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_set_self_modulate\n\n{-# NOINLINE bindVisualServer_canvas_item_set_sort_children_by_y\n             #-}\n\n-- | Sets if @CanvasItem@'s children should be sorted by y-position.\nbindVisualServer_canvas_item_set_sort_children_by_y :: MethodBind\nbindVisualServer_canvas_item_set_sort_children_by_y\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_set_sort_children_by_y\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets if @CanvasItem@'s children should be sorted by y-position.\ncanvas_item_set_sort_children_by_y ::\n                                     (VisualServer :< cls, Object :< cls) =>\n                                     cls -> Rid -> Bool -> IO ()\ncanvas_item_set_sort_children_by_y cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_item_set_sort_children_by_y\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"canvas_item_set_sort_children_by_y\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_item_set_sort_children_by_y\n\n{-# NOINLINE bindVisualServer_canvas_item_set_transform #-}\n\n-- | Sets the @CanvasItem@'s @Transform2D@.\nbindVisualServer_canvas_item_set_transform :: MethodBind\nbindVisualServer_canvas_item_set_transform\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @CanvasItem@'s @Transform2D@.\ncanvas_item_set_transform ::\n                            (VisualServer :< cls, Object :< cls) =>\n                            cls -> Rid -> Transform2d -> IO ()\ncanvas_item_set_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_set_transform\"\n           '[Rid, Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_set_transform\n\n{-# NOINLINE bindVisualServer_canvas_item_set_use_parent_material\n             #-}\n\n-- | Sets if the @CanvasItem@ uses its parent's material.\nbindVisualServer_canvas_item_set_use_parent_material :: MethodBind\nbindVisualServer_canvas_item_set_use_parent_material\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_set_use_parent_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets if the @CanvasItem@ uses its parent's material.\ncanvas_item_set_use_parent_material ::\n                                      (VisualServer :< cls, Object :< cls) =>\n                                      cls -> Rid -> Bool -> IO ()\ncanvas_item_set_use_parent_material cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_item_set_use_parent_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"canvas_item_set_use_parent_material\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_item_set_use_parent_material\n\n{-# NOINLINE bindVisualServer_canvas_item_set_visible #-}\n\n-- | Sets if the canvas item (including its children) is visible.\nbindVisualServer_canvas_item_set_visible :: MethodBind\nbindVisualServer_canvas_item_set_visible\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_set_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets if the canvas item (including its children) is visible.\ncanvas_item_set_visible ::\n                          (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\ncanvas_item_set_visible cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_set_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_set_visible\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_set_visible\n\n{-# NOINLINE bindVisualServer_canvas_item_set_z_as_relative_to_parent\n             #-}\n\n-- | If this is enabled, the Z index of the parent will be added to the children's Z index.\nbindVisualServer_canvas_item_set_z_as_relative_to_parent ::\n                                                         MethodBind\nbindVisualServer_canvas_item_set_z_as_relative_to_parent\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_set_z_as_relative_to_parent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If this is enabled, the Z index of the parent will be added to the children's Z index.\ncanvas_item_set_z_as_relative_to_parent ::\n                                          (VisualServer :< cls, Object :< cls) =>\n                                          cls -> Rid -> Bool -> IO ()\ncanvas_item_set_z_as_relative_to_parent cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_item_set_z_as_relative_to_parent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"canvas_item_set_z_as_relative_to_parent\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_item_set_z_as_relative_to_parent\n\n{-# NOINLINE bindVisualServer_canvas_item_set_z_index #-}\n\n-- | Sets the @CanvasItem@'s Z index, i.e. its draw order (lower indexes are drawn first).\nbindVisualServer_canvas_item_set_z_index :: MethodBind\nbindVisualServer_canvas_item_set_z_index\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_item_set_z_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @CanvasItem@'s Z index, i.e. its draw order (lower indexes are drawn first).\ncanvas_item_set_z_index ::\n                          (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\ncanvas_item_set_z_index cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_item_set_z_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_item_set_z_index\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_item_set_z_index\n\n{-# NOINLINE bindVisualServer_canvas_light_attach_to_canvas #-}\n\n-- | Attaches the canvas light to the canvas. Removes it from its previous canvas.\nbindVisualServer_canvas_light_attach_to_canvas :: MethodBind\nbindVisualServer_canvas_light_attach_to_canvas\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_attach_to_canvas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Attaches the canvas light to the canvas. Removes it from its previous canvas.\ncanvas_light_attach_to_canvas ::\n                                (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\ncanvas_light_attach_to_canvas cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_light_attach_to_canvas\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_attach_to_canvas\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_light_attach_to_canvas\n\n{-# NOINLINE bindVisualServer_canvas_light_create #-}\n\n-- | Creates a canvas light and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @canvas_light_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nbindVisualServer_canvas_light_create :: MethodBind\nbindVisualServer_canvas_light_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a canvas light and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @canvas_light_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\ncanvas_light_create ::\n                      (VisualServer :< cls, Object :< cls) => cls -> IO Rid\ncanvas_light_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_light_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_light_create\n\n{-# NOINLINE bindVisualServer_canvas_light_occluder_attach_to_canvas\n             #-}\n\n-- | Attaches a light occluder to the canvas. Removes it from its previous canvas.\nbindVisualServer_canvas_light_occluder_attach_to_canvas ::\n                                                        MethodBind\nbindVisualServer_canvas_light_occluder_attach_to_canvas\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_occluder_attach_to_canvas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Attaches a light occluder to the canvas. Removes it from its previous canvas.\ncanvas_light_occluder_attach_to_canvas ::\n                                         (VisualServer :< cls, Object :< cls) =>\n                                         cls -> Rid -> Rid -> IO ()\ncanvas_light_occluder_attach_to_canvas cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_light_occluder_attach_to_canvas\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"canvas_light_occluder_attach_to_canvas\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_light_occluder_attach_to_canvas\n\n{-# NOINLINE bindVisualServer_canvas_light_occluder_create #-}\n\n-- | Creates a light occluder and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @canvas_light_ocluder_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nbindVisualServer_canvas_light_occluder_create :: MethodBind\nbindVisualServer_canvas_light_occluder_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_occluder_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a light occluder and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @canvas_light_ocluder_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\ncanvas_light_occluder_create ::\n                               (VisualServer :< cls, Object :< cls) => cls -> IO Rid\ncanvas_light_occluder_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_light_occluder_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_occluder_create\" '[]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_light_occluder_create\n\n{-# NOINLINE bindVisualServer_canvas_light_occluder_set_enabled #-}\n\n-- | Enables or disables light occluder.\nbindVisualServer_canvas_light_occluder_set_enabled :: MethodBind\nbindVisualServer_canvas_light_occluder_set_enabled\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_occluder_set_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables or disables light occluder.\ncanvas_light_occluder_set_enabled ::\n                                    (VisualServer :< cls, Object :< cls) =>\n                                    cls -> Rid -> Bool -> IO ()\ncanvas_light_occluder_set_enabled cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_light_occluder_set_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"canvas_light_occluder_set_enabled\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_light_occluder_set_enabled\n\n{-# NOINLINE bindVisualServer_canvas_light_occluder_set_light_mask\n             #-}\n\n-- | The light mask. See @LightOccluder2D@ for more information on light masks.\nbindVisualServer_canvas_light_occluder_set_light_mask :: MethodBind\nbindVisualServer_canvas_light_occluder_set_light_mask\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_occluder_set_light_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The light mask. See @LightOccluder2D@ for more information on light masks.\ncanvas_light_occluder_set_light_mask ::\n                                       (VisualServer :< cls, Object :< cls) =>\n                                       cls -> Rid -> Int -> IO ()\ncanvas_light_occluder_set_light_mask cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_light_occluder_set_light_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"canvas_light_occluder_set_light_mask\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_light_occluder_set_light_mask\n\n{-# NOINLINE bindVisualServer_canvas_light_occluder_set_polygon #-}\n\n-- | Sets a light occluder's polygon.\nbindVisualServer_canvas_light_occluder_set_polygon :: MethodBind\nbindVisualServer_canvas_light_occluder_set_polygon\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_occluder_set_polygon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a light occluder's polygon.\ncanvas_light_occluder_set_polygon ::\n                                    (VisualServer :< cls, Object :< cls) =>\n                                    cls -> Rid -> Rid -> IO ()\ncanvas_light_occluder_set_polygon cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_light_occluder_set_polygon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"canvas_light_occluder_set_polygon\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_light_occluder_set_polygon\n\n{-# NOINLINE bindVisualServer_canvas_light_occluder_set_transform\n             #-}\n\n-- | Sets a light occluder's @Transform2D@.\nbindVisualServer_canvas_light_occluder_set_transform :: MethodBind\nbindVisualServer_canvas_light_occluder_set_transform\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_occluder_set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a light occluder's @Transform2D@.\ncanvas_light_occluder_set_transform ::\n                                      (VisualServer :< cls, Object :< cls) =>\n                                      cls -> Rid -> Transform2d -> IO ()\ncanvas_light_occluder_set_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_light_occluder_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"canvas_light_occluder_set_transform\"\n           '[Rid, Transform2d]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_light_occluder_set_transform\n\n{-# NOINLINE bindVisualServer_canvas_light_set_color #-}\n\n-- | Sets the color for a light.\nbindVisualServer_canvas_light_set_color :: MethodBind\nbindVisualServer_canvas_light_set_color\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the color for a light.\ncanvas_light_set_color ::\n                         (VisualServer :< cls, Object :< cls) =>\n                         cls -> Rid -> Color -> IO ()\ncanvas_light_set_color cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_light_set_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_set_color\"\n           '[Rid, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_light_set_color\n\n{-# NOINLINE bindVisualServer_canvas_light_set_enabled #-}\n\n-- | Enables or disables a canvas light.\nbindVisualServer_canvas_light_set_enabled :: MethodBind\nbindVisualServer_canvas_light_set_enabled\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables or disables a canvas light.\ncanvas_light_set_enabled ::\n                           (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\ncanvas_light_set_enabled cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_light_set_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_set_enabled\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_light_set_enabled\n\n{-# NOINLINE bindVisualServer_canvas_light_set_energy #-}\n\n-- | Sets a canvas light's energy.\nbindVisualServer_canvas_light_set_energy :: MethodBind\nbindVisualServer_canvas_light_set_energy\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a canvas light's energy.\ncanvas_light_set_energy ::\n                          (VisualServer :< cls, Object :< cls) =>\n                          cls -> Rid -> Float -> IO ()\ncanvas_light_set_energy cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_light_set_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_set_energy\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_light_set_energy\n\n{-# NOINLINE bindVisualServer_canvas_light_set_height #-}\n\n-- | Sets a canvas light's height.\nbindVisualServer_canvas_light_set_height :: MethodBind\nbindVisualServer_canvas_light_set_height\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a canvas light's height.\ncanvas_light_set_height ::\n                          (VisualServer :< cls, Object :< cls) =>\n                          cls -> Rid -> Float -> IO ()\ncanvas_light_set_height cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_light_set_height\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_set_height\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_light_set_height\n\n{-# NOINLINE bindVisualServer_canvas_light_set_item_cull_mask #-}\n\n-- | The light mask. See @LightOccluder2D@ for more information on light masks.\nbindVisualServer_canvas_light_set_item_cull_mask :: MethodBind\nbindVisualServer_canvas_light_set_item_cull_mask\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_item_cull_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The light mask. See @LightOccluder2D@ for more information on light masks.\ncanvas_light_set_item_cull_mask ::\n                                  (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\ncanvas_light_set_item_cull_mask cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_light_set_item_cull_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_set_item_cull_mask\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_light_set_item_cull_mask\n\n{-# NOINLINE bindVisualServer_canvas_light_set_item_shadow_cull_mask\n             #-}\n\n-- | The binary mask used to determine which layers this canvas light's shadows affects. See @LightOccluder2D@ for more information on light masks.\nbindVisualServer_canvas_light_set_item_shadow_cull_mask ::\n                                                        MethodBind\nbindVisualServer_canvas_light_set_item_shadow_cull_mask\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_item_shadow_cull_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The binary mask used to determine which layers this canvas light's shadows affects. See @LightOccluder2D@ for more information on light masks.\ncanvas_light_set_item_shadow_cull_mask ::\n                                         (VisualServer :< cls, Object :< cls) =>\n                                         cls -> Rid -> Int -> IO ()\ncanvas_light_set_item_shadow_cull_mask cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_light_set_item_shadow_cull_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"canvas_light_set_item_shadow_cull_mask\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_light_set_item_shadow_cull_mask\n\n{-# NOINLINE bindVisualServer_canvas_light_set_layer_range #-}\n\n-- | The layer range that gets rendered with this light.\nbindVisualServer_canvas_light_set_layer_range :: MethodBind\nbindVisualServer_canvas_light_set_layer_range\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_layer_range\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The layer range that gets rendered with this light.\ncanvas_light_set_layer_range ::\n                               (VisualServer :< cls, Object :< cls) =>\n                               cls -> Rid -> Int -> Int -> IO ()\ncanvas_light_set_layer_range cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_light_set_layer_range\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_set_layer_range\"\n           '[Rid, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_light_set_layer_range\n\n{-# NOINLINE bindVisualServer_canvas_light_set_mode #-}\n\n-- | The mode of the light, see @enum CanvasLightMode@ constants.\nbindVisualServer_canvas_light_set_mode :: MethodBind\nbindVisualServer_canvas_light_set_mode\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The mode of the light, see @enum CanvasLightMode@ constants.\ncanvas_light_set_mode ::\n                        (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\ncanvas_light_set_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_light_set_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_set_mode\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_light_set_mode\n\n{-# NOINLINE bindVisualServer_canvas_light_set_scale #-}\n\n-- | Sets the texture's scale factor of the light. Equivalent to @Light2D.texture_scale@.\nbindVisualServer_canvas_light_set_scale :: MethodBind\nbindVisualServer_canvas_light_set_scale\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the texture's scale factor of the light. Equivalent to @Light2D.texture_scale@.\ncanvas_light_set_scale ::\n                         (VisualServer :< cls, Object :< cls) =>\n                         cls -> Rid -> Float -> IO ()\ncanvas_light_set_scale cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_light_set_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_set_scale\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_light_set_scale\n\n{-# NOINLINE bindVisualServer_canvas_light_set_shadow_buffer_size\n             #-}\n\n-- | Sets the width of the shadow buffer, size gets scaled to the next power of two for this.\nbindVisualServer_canvas_light_set_shadow_buffer_size :: MethodBind\nbindVisualServer_canvas_light_set_shadow_buffer_size\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_shadow_buffer_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the width of the shadow buffer, size gets scaled to the next power of two for this.\ncanvas_light_set_shadow_buffer_size ::\n                                      (VisualServer :< cls, Object :< cls) =>\n                                      cls -> Rid -> Int -> IO ()\ncanvas_light_set_shadow_buffer_size cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_light_set_shadow_buffer_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"canvas_light_set_shadow_buffer_size\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_light_set_shadow_buffer_size\n\n{-# NOINLINE bindVisualServer_canvas_light_set_shadow_color #-}\n\n-- | Sets the color of the canvas light's shadow.\nbindVisualServer_canvas_light_set_shadow_color :: MethodBind\nbindVisualServer_canvas_light_set_shadow_color\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_shadow_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the color of the canvas light's shadow.\ncanvas_light_set_shadow_color ::\n                                (VisualServer :< cls, Object :< cls) =>\n                                cls -> Rid -> Color -> IO ()\ncanvas_light_set_shadow_color cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_light_set_shadow_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_set_shadow_color\"\n           '[Rid, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_light_set_shadow_color\n\n{-# NOINLINE bindVisualServer_canvas_light_set_shadow_enabled #-}\n\n-- | Enables or disables the canvas light's shadow.\nbindVisualServer_canvas_light_set_shadow_enabled :: MethodBind\nbindVisualServer_canvas_light_set_shadow_enabled\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_shadow_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Enables or disables the canvas light's shadow.\ncanvas_light_set_shadow_enabled ::\n                                  (VisualServer :< cls, Object :< cls) =>\n                                  cls -> Rid -> Bool -> IO ()\ncanvas_light_set_shadow_enabled cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_light_set_shadow_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_set_shadow_enabled\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_light_set_shadow_enabled\n\n{-# NOINLINE bindVisualServer_canvas_light_set_shadow_filter #-}\n\n-- | Sets the canvas light's shadow's filter, see @enum CanvasLightShadowFilter@ constants.\nbindVisualServer_canvas_light_set_shadow_filter :: MethodBind\nbindVisualServer_canvas_light_set_shadow_filter\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_shadow_filter\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the canvas light's shadow's filter, see @enum CanvasLightShadowFilter@ constants.\ncanvas_light_set_shadow_filter ::\n                                 (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\ncanvas_light_set_shadow_filter cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_light_set_shadow_filter\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_set_shadow_filter\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_light_set_shadow_filter\n\n{-# NOINLINE bindVisualServer_canvas_light_set_shadow_gradient_length\n             #-}\n\n-- | Sets the length of the shadow's gradient.\nbindVisualServer_canvas_light_set_shadow_gradient_length ::\n                                                         MethodBind\nbindVisualServer_canvas_light_set_shadow_gradient_length\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_shadow_gradient_length\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the length of the shadow's gradient.\ncanvas_light_set_shadow_gradient_length ::\n                                          (VisualServer :< cls, Object :< cls) =>\n                                          cls -> Rid -> Float -> IO ()\ncanvas_light_set_shadow_gradient_length cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_light_set_shadow_gradient_length\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"canvas_light_set_shadow_gradient_length\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_light_set_shadow_gradient_length\n\n{-# NOINLINE bindVisualServer_canvas_light_set_shadow_smooth #-}\n\n-- | Smoothens the shadow. The lower, the smoother.\nbindVisualServer_canvas_light_set_shadow_smooth :: MethodBind\nbindVisualServer_canvas_light_set_shadow_smooth\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_shadow_smooth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Smoothens the shadow. The lower, the smoother.\ncanvas_light_set_shadow_smooth ::\n                                 (VisualServer :< cls, Object :< cls) =>\n                                 cls -> Rid -> Float -> IO ()\ncanvas_light_set_shadow_smooth cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_light_set_shadow_smooth\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_set_shadow_smooth\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_light_set_shadow_smooth\n\n{-# NOINLINE bindVisualServer_canvas_light_set_texture #-}\n\n-- | Sets texture to be used by light. Equivalent to @Light2D.texture@.\nbindVisualServer_canvas_light_set_texture :: MethodBind\nbindVisualServer_canvas_light_set_texture\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets texture to be used by light. Equivalent to @Light2D.texture@.\ncanvas_light_set_texture ::\n                           (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\ncanvas_light_set_texture cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_light_set_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_set_texture\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_light_set_texture\n\n{-# NOINLINE bindVisualServer_canvas_light_set_texture_offset #-}\n\n-- | Sets the offset of the light's texture. Equivalent to @Light2D.offset@.\nbindVisualServer_canvas_light_set_texture_offset :: MethodBind\nbindVisualServer_canvas_light_set_texture_offset\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_texture_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the offset of the light's texture. Equivalent to @Light2D.offset@.\ncanvas_light_set_texture_offset ::\n                                  (VisualServer :< cls, Object :< cls) =>\n                                  cls -> Rid -> Vector2 -> IO ()\ncanvas_light_set_texture_offset cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_light_set_texture_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_set_texture_offset\"\n           '[Rid, Vector2]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_light_set_texture_offset\n\n{-# NOINLINE bindVisualServer_canvas_light_set_transform #-}\n\n-- | Sets the canvas light's @Transform2D@.\nbindVisualServer_canvas_light_set_transform :: MethodBind\nbindVisualServer_canvas_light_set_transform\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the canvas light's @Transform2D@.\ncanvas_light_set_transform ::\n                             (VisualServer :< cls, Object :< cls) =>\n                             cls -> Rid -> Transform2d -> IO ()\ncanvas_light_set_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_light_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_set_transform\"\n           '[Rid, Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_light_set_transform\n\n{-# NOINLINE bindVisualServer_canvas_light_set_z_range #-}\n\n-- | Sets the Z range of objects that will be affected by this light. Equivalent to @Light2D.range_z_min@ and @Light2D.range_z_max@.\nbindVisualServer_canvas_light_set_z_range :: MethodBind\nbindVisualServer_canvas_light_set_z_range\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_light_set_z_range\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the Z range of objects that will be affected by this light. Equivalent to @Light2D.range_z_min@ and @Light2D.range_z_max@.\ncanvas_light_set_z_range ::\n                           (VisualServer :< cls, Object :< cls) =>\n                           cls -> Rid -> Int -> Int -> IO ()\ncanvas_light_set_z_range cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_light_set_z_range\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_light_set_z_range\"\n           '[Rid, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_light_set_z_range\n\n{-# NOINLINE bindVisualServer_canvas_occluder_polygon_create #-}\n\n-- | Creates a new light occluder polygon and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @canvas_occluder_polygon_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nbindVisualServer_canvas_occluder_polygon_create :: MethodBind\nbindVisualServer_canvas_occluder_polygon_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_occluder_polygon_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a new light occluder polygon and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @canvas_occluder_polygon_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\ncanvas_occluder_polygon_create ::\n                                 (VisualServer :< cls, Object :< cls) => cls -> IO Rid\ncanvas_occluder_polygon_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_occluder_polygon_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_occluder_polygon_create\"\n           '[]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_occluder_polygon_create\n\n{-# NOINLINE bindVisualServer_canvas_occluder_polygon_set_cull_mode\n             #-}\n\n-- | Sets an occluder polygons cull mode. See @enum CanvasOccluderPolygonCullMode@ constants.\nbindVisualServer_canvas_occluder_polygon_set_cull_mode ::\n                                                       MethodBind\nbindVisualServer_canvas_occluder_polygon_set_cull_mode\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_occluder_polygon_set_cull_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets an occluder polygons cull mode. See @enum CanvasOccluderPolygonCullMode@ constants.\ncanvas_occluder_polygon_set_cull_mode ::\n                                        (VisualServer :< cls, Object :< cls) =>\n                                        cls -> Rid -> Int -> IO ()\ncanvas_occluder_polygon_set_cull_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_occluder_polygon_set_cull_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"canvas_occluder_polygon_set_cull_mode\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_occluder_polygon_set_cull_mode\n\n{-# NOINLINE bindVisualServer_canvas_occluder_polygon_set_shape #-}\n\n-- | Sets the shape of the occluder polygon.\nbindVisualServer_canvas_occluder_polygon_set_shape :: MethodBind\nbindVisualServer_canvas_occluder_polygon_set_shape\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_occluder_polygon_set_shape\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the shape of the occluder polygon.\ncanvas_occluder_polygon_set_shape ::\n                                    (VisualServer :< cls, Object :< cls) =>\n                                    cls -> Rid -> PoolVector2Array -> Bool -> IO ()\ncanvas_occluder_polygon_set_shape cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_occluder_polygon_set_shape\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"canvas_occluder_polygon_set_shape\"\n           '[Rid, PoolVector2Array, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_occluder_polygon_set_shape\n\n{-# NOINLINE bindVisualServer_canvas_occluder_polygon_set_shape_as_lines\n             #-}\n\n-- | Sets the shape of the occluder polygon as lines.\nbindVisualServer_canvas_occluder_polygon_set_shape_as_lines ::\n                                                            MethodBind\nbindVisualServer_canvas_occluder_polygon_set_shape_as_lines\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_occluder_polygon_set_shape_as_lines\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the shape of the occluder polygon as lines.\ncanvas_occluder_polygon_set_shape_as_lines ::\n                                             (VisualServer :< cls, Object :< cls) =>\n                                             cls -> Rid -> PoolVector2Array -> IO ()\ncanvas_occluder_polygon_set_shape_as_lines cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_canvas_occluder_polygon_set_shape_as_lines\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"canvas_occluder_polygon_set_shape_as_lines\"\n           '[Rid, PoolVector2Array]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.canvas_occluder_polygon_set_shape_as_lines\n\n{-# NOINLINE bindVisualServer_canvas_set_item_mirroring #-}\n\n-- | A copy of the canvas item will be drawn with a local offset of the mirroring @Vector2@.\nbindVisualServer_canvas_set_item_mirroring :: MethodBind\nbindVisualServer_canvas_set_item_mirroring\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_set_item_mirroring\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A copy of the canvas item will be drawn with a local offset of the mirroring @Vector2@.\ncanvas_set_item_mirroring ::\n                            (VisualServer :< cls, Object :< cls) =>\n                            cls -> Rid -> Rid -> Vector2 -> IO ()\ncanvas_set_item_mirroring cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_set_item_mirroring\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_set_item_mirroring\"\n           '[Rid, Rid, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_set_item_mirroring\n\n{-# NOINLINE bindVisualServer_canvas_set_modulate #-}\n\n-- | Modulates all colors in the given canvas.\nbindVisualServer_canvas_set_modulate :: MethodBind\nbindVisualServer_canvas_set_modulate\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"canvas_set_modulate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Modulates all colors in the given canvas.\ncanvas_set_modulate ::\n                      (VisualServer :< cls, Object :< cls) =>\n                      cls -> Rid -> Color -> IO ()\ncanvas_set_modulate cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_canvas_set_modulate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"canvas_set_modulate\"\n           '[Rid, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.canvas_set_modulate\n\n{-# NOINLINE bindVisualServer_directional_light_create #-}\n\n-- | Creates a directional light and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID can be used in most @light_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach this directional light to an instance using @method instance_set_base@ using the returned RID.\nbindVisualServer_directional_light_create :: MethodBind\nbindVisualServer_directional_light_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"directional_light_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a directional light and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID can be used in most @light_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach this directional light to an instance using @method instance_set_base@ using the returned RID.\ndirectional_light_create ::\n                           (VisualServer :< cls, Object :< cls) => cls -> IO Rid\ndirectional_light_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_directional_light_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"directional_light_create\" '[]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.directional_light_create\n\n{-# NOINLINE bindVisualServer_draw #-}\n\n-- | Draws a frame. @i@This method is deprecated@/i@, please use @method force_draw@ instead.\nbindVisualServer_draw :: MethodBind\nbindVisualServer_draw\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"draw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Draws a frame. @i@This method is deprecated@/i@, please use @method force_draw@ instead.\ndraw ::\n       (VisualServer :< cls, Object :< cls) =>\n       cls -> Maybe Bool -> Maybe Float -> IO ()\ndraw cls arg1 arg2\n  = withVariantArray\n      [maybe (VariantBool True) toVariant arg1,\n       maybe (VariantReal (0)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_draw (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"draw\" '[Maybe Bool, Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.draw\n\n{-# NOINLINE bindVisualServer_environment_create #-}\n\n-- | Creates an environment and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @environment_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nbindVisualServer_environment_create :: MethodBind\nbindVisualServer_environment_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates an environment and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @environment_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nenvironment_create ::\n                     (VisualServer :< cls, Object :< cls) => cls -> IO Rid\nenvironment_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_environment_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.environment_create\n\n{-# NOINLINE bindVisualServer_environment_set_adjustment #-}\n\n-- | Sets the values to be used with the \"Adjustment\" post-process effect. See @Environment@ for more details.\nbindVisualServer_environment_set_adjustment :: MethodBind\nbindVisualServer_environment_set_adjustment\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_set_adjustment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the values to be used with the \"Adjustment\" post-process effect. See @Environment@ for more details.\nenvironment_set_adjustment ::\n                             (VisualServer :< cls, Object :< cls) =>\n                             cls -> Rid -> Bool -> Float -> Float -> Float -> Rid -> IO ()\nenvironment_set_adjustment cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_environment_set_adjustment\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_set_adjustment\"\n           '[Rid, Bool, Float, Float, Float, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.environment_set_adjustment\n\n{-# NOINLINE bindVisualServer_environment_set_ambient_light #-}\n\n-- | Sets the ambient light parameters. See @Environment@ for more details.\nbindVisualServer_environment_set_ambient_light :: MethodBind\nbindVisualServer_environment_set_ambient_light\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_set_ambient_light\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the ambient light parameters. See @Environment@ for more details.\nenvironment_set_ambient_light ::\n                                (VisualServer :< cls, Object :< cls) =>\n                                cls -> Rid -> Color -> Maybe Float -> Maybe Float -> IO ()\nenvironment_set_ambient_light cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantReal (1)) toVariant arg3,\n       maybe (VariantReal (0)) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_environment_set_ambient_light\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_set_ambient_light\"\n           '[Rid, Color, Maybe Float, Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.environment_set_ambient_light\n\n{-# NOINLINE bindVisualServer_environment_set_background #-}\n\n-- | Sets the @i@BGMode@/i@ of the environment. Equivalent to @Environment.background_mode@.\nbindVisualServer_environment_set_background :: MethodBind\nbindVisualServer_environment_set_background\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_set_background\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @i@BGMode@/i@ of the environment. Equivalent to @Environment.background_mode@.\nenvironment_set_background ::\n                             (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nenvironment_set_background cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_environment_set_background\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_set_background\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.environment_set_background\n\n{-# NOINLINE bindVisualServer_environment_set_bg_color #-}\n\n-- | Color displayed for clear areas of the scene (if using Custom color or Color+Sky background modes).\nbindVisualServer_environment_set_bg_color :: MethodBind\nbindVisualServer_environment_set_bg_color\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_set_bg_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Color displayed for clear areas of the scene (if using Custom color or Color+Sky background modes).\nenvironment_set_bg_color ::\n                           (VisualServer :< cls, Object :< cls) =>\n                           cls -> Rid -> Color -> IO ()\nenvironment_set_bg_color cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_environment_set_bg_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_set_bg_color\"\n           '[Rid, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.environment_set_bg_color\n\n{-# NOINLINE bindVisualServer_environment_set_bg_energy #-}\n\n-- | Sets the intensity of the background color.\nbindVisualServer_environment_set_bg_energy :: MethodBind\nbindVisualServer_environment_set_bg_energy\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_set_bg_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the intensity of the background color.\nenvironment_set_bg_energy ::\n                            (VisualServer :< cls, Object :< cls) =>\n                            cls -> Rid -> Float -> IO ()\nenvironment_set_bg_energy cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_environment_set_bg_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_set_bg_energy\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.environment_set_bg_energy\n\n{-# NOINLINE bindVisualServer_environment_set_canvas_max_layer #-}\n\n-- | Sets the maximum layer to use if using Canvas background mode.\nbindVisualServer_environment_set_canvas_max_layer :: MethodBind\nbindVisualServer_environment_set_canvas_max_layer\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_set_canvas_max_layer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the maximum layer to use if using Canvas background mode.\nenvironment_set_canvas_max_layer ::\n                                   (VisualServer :< cls, Object :< cls) =>\n                                   cls -> Rid -> Int -> IO ()\nenvironment_set_canvas_max_layer cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_environment_set_canvas_max_layer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_set_canvas_max_layer\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.environment_set_canvas_max_layer\n\n{-# NOINLINE bindVisualServer_environment_set_dof_blur_far #-}\n\n-- | Sets the values to be used with the \"DoF Far Blur\" post-process effect. See @Environment@ for more details.\nbindVisualServer_environment_set_dof_blur_far :: MethodBind\nbindVisualServer_environment_set_dof_blur_far\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_set_dof_blur_far\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the values to be used with the \"DoF Far Blur\" post-process effect. See @Environment@ for more details.\nenvironment_set_dof_blur_far ::\n                               (VisualServer :< cls, Object :< cls) =>\n                               cls -> Rid -> Bool -> Float -> Float -> Float -> Int -> IO ()\nenvironment_set_dof_blur_far cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_environment_set_dof_blur_far\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_set_dof_blur_far\"\n           '[Rid, Bool, Float, Float, Float, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.environment_set_dof_blur_far\n\n{-# NOINLINE bindVisualServer_environment_set_dof_blur_near #-}\n\n-- | Sets the values to be used with the \"DoF Near Blur\" post-process effect. See @Environment@ for more details.\nbindVisualServer_environment_set_dof_blur_near :: MethodBind\nbindVisualServer_environment_set_dof_blur_near\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_set_dof_blur_near\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the values to be used with the \"DoF Near Blur\" post-process effect. See @Environment@ for more details.\nenvironment_set_dof_blur_near ::\n                                (VisualServer :< cls, Object :< cls) =>\n                                cls -> Rid -> Bool -> Float -> Float -> Float -> Int -> IO ()\nenvironment_set_dof_blur_near cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_environment_set_dof_blur_near\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_set_dof_blur_near\"\n           '[Rid, Bool, Float, Float, Float, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.environment_set_dof_blur_near\n\n{-# NOINLINE bindVisualServer_environment_set_fog #-}\n\n-- | Sets the variables to be used with the scene fog. See @Environment@ for more details.\nbindVisualServer_environment_set_fog :: MethodBind\nbindVisualServer_environment_set_fog\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_set_fog\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the variables to be used with the scene fog. See @Environment@ for more details.\nenvironment_set_fog ::\n                      (VisualServer :< cls, Object :< cls) =>\n                      cls -> Rid -> Bool -> Color -> Color -> Float -> IO ()\nenvironment_set_fog cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_environment_set_fog\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_set_fog\"\n           '[Rid, Bool, Color, Color, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.environment_set_fog\n\n{-# NOINLINE bindVisualServer_environment_set_fog_depth #-}\n\n-- | Sets the variables to be used with the fog depth effect. See @Environment@ for more details.\nbindVisualServer_environment_set_fog_depth :: MethodBind\nbindVisualServer_environment_set_fog_depth\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_set_fog_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the variables to be used with the fog depth effect. See @Environment@ for more details.\nenvironment_set_fog_depth ::\n                            (VisualServer :< cls, Object :< cls) =>\n                            cls ->\n                              Rid -> Bool -> Float -> Float -> Float -> Bool -> Float -> IO ()\nenvironment_set_fog_depth cls arg1 arg2 arg3 arg4 arg5 arg6 arg7\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6, toVariant arg7]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_environment_set_fog_depth\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_set_fog_depth\"\n           '[Rid, Bool, Float, Float, Float, Bool, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.environment_set_fog_depth\n\n{-# NOINLINE bindVisualServer_environment_set_fog_height #-}\n\n-- | Sets the variables to be used with the fog height effect. See @Environment@ for more details.\nbindVisualServer_environment_set_fog_height :: MethodBind\nbindVisualServer_environment_set_fog_height\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_set_fog_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the variables to be used with the fog height effect. See @Environment@ for more details.\nenvironment_set_fog_height ::\n                             (VisualServer :< cls, Object :< cls) =>\n                             cls -> Rid -> Bool -> Float -> Float -> Float -> IO ()\nenvironment_set_fog_height cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_environment_set_fog_height\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_set_fog_height\"\n           '[Rid, Bool, Float, Float, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.environment_set_fog_height\n\n{-# NOINLINE bindVisualServer_environment_set_glow #-}\n\n-- | Sets the variables to be used with the \"glow\" post-process effect. See @Environment@ for more details.\nbindVisualServer_environment_set_glow :: MethodBind\nbindVisualServer_environment_set_glow\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_set_glow\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the variables to be used with the \"glow\" post-process effect. See @Environment@ for more details.\nenvironment_set_glow ::\n                       (VisualServer :< cls, Object :< cls) =>\n                       cls ->\n                         Rid ->\n                           Bool ->\n                             Int ->\n                               Float ->\n                                 Float -> Float -> Int -> Float -> Float -> Float -> Bool -> IO ()\nenvironment_set_glow cls arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8\n  arg9 arg10 arg11\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6, toVariant arg7, toVariant arg8,\n       toVariant arg9, toVariant arg10, toVariant arg11]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_environment_set_glow\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_set_glow\"\n           '[Rid, Bool, Int, Float, Float, Float, Int, Float, Float, Float,\n             Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.environment_set_glow\n\n{-# NOINLINE bindVisualServer_environment_set_sky #-}\n\n-- | Sets the @Sky@ to be used as the environment's background when using @i@BGMode@/i@ sky. Equivalent to @Environment.background_sky@.\nbindVisualServer_environment_set_sky :: MethodBind\nbindVisualServer_environment_set_sky\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_set_sky\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Sky@ to be used as the environment's background when using @i@BGMode@/i@ sky. Equivalent to @Environment.background_sky@.\nenvironment_set_sky ::\n                      (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\nenvironment_set_sky cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_environment_set_sky\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_set_sky\" '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.environment_set_sky\n\n{-# NOINLINE bindVisualServer_environment_set_sky_custom_fov #-}\n\n-- | Sets a custom field of view for the background @Sky@. Equivalent to @Environment.background_sky_custom_fov@.\nbindVisualServer_environment_set_sky_custom_fov :: MethodBind\nbindVisualServer_environment_set_sky_custom_fov\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_set_sky_custom_fov\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a custom field of view for the background @Sky@. Equivalent to @Environment.background_sky_custom_fov@.\nenvironment_set_sky_custom_fov ::\n                                 (VisualServer :< cls, Object :< cls) =>\n                                 cls -> Rid -> Float -> IO ()\nenvironment_set_sky_custom_fov cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_environment_set_sky_custom_fov\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_set_sky_custom_fov\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.environment_set_sky_custom_fov\n\n{-# NOINLINE bindVisualServer_environment_set_sky_orientation #-}\n\n-- | Sets the rotation of the background @Sky@ expressed as a @Basis@. Equivalent to @Environment.background_sky_orientation@.\nbindVisualServer_environment_set_sky_orientation :: MethodBind\nbindVisualServer_environment_set_sky_orientation\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_set_sky_orientation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the rotation of the background @Sky@ expressed as a @Basis@. Equivalent to @Environment.background_sky_orientation@.\nenvironment_set_sky_orientation ::\n                                  (VisualServer :< cls, Object :< cls) =>\n                                  cls -> Rid -> Basis -> IO ()\nenvironment_set_sky_orientation cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_environment_set_sky_orientation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_set_sky_orientation\"\n           '[Rid, Basis]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.environment_set_sky_orientation\n\n{-# NOINLINE bindVisualServer_environment_set_ssao #-}\n\n-- | Sets the variables to be used with the \"Screen Space Ambient Occlusion (SSAO)\" post-process effect. See @Environment@ for more details.\nbindVisualServer_environment_set_ssao :: MethodBind\nbindVisualServer_environment_set_ssao\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_set_ssao\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the variables to be used with the \"Screen Space Ambient Occlusion (SSAO)\" post-process effect. See @Environment@ for more details.\nenvironment_set_ssao ::\n                       (VisualServer :< cls, Object :< cls) =>\n                       cls ->\n                         Rid ->\n                           Bool ->\n                             Float ->\n                               Float ->\n                                 Float ->\n                                   Float ->\n                                     Float ->\n                                       Float -> Float -> Color -> Int -> Int -> Float -> IO ()\nenvironment_set_ssao cls arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8\n  arg9 arg10 arg11 arg12 arg13\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6, toVariant arg7, toVariant arg8,\n       toVariant arg9, toVariant arg10, toVariant arg11, toVariant arg12,\n       toVariant arg13]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_environment_set_ssao\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_set_ssao\"\n           '[Rid, Bool, Float, Float, Float, Float, Float, Float, Float,\n             Color, Int, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.environment_set_ssao\n\n{-# NOINLINE bindVisualServer_environment_set_ssr #-}\n\n-- | Sets the variables to be used with the \"screen space reflections\" post-process effect. See @Environment@ for more details.\nbindVisualServer_environment_set_ssr :: MethodBind\nbindVisualServer_environment_set_ssr\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_set_ssr\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the variables to be used with the \"screen space reflections\" post-process effect. See @Environment@ for more details.\nenvironment_set_ssr ::\n                      (VisualServer :< cls, Object :< cls) =>\n                      cls ->\n                        Rid -> Bool -> Int -> Float -> Float -> Float -> Bool -> IO ()\nenvironment_set_ssr cls arg1 arg2 arg3 arg4 arg5 arg6 arg7\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6, toVariant arg7]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_environment_set_ssr\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_set_ssr\"\n           '[Rid, Bool, Int, Float, Float, Float, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.environment_set_ssr\n\n{-# NOINLINE bindVisualServer_environment_set_tonemap #-}\n\n-- | Sets the variables to be used with the \"tonemap\" post-process effect. See @Environment@ for more details.\nbindVisualServer_environment_set_tonemap :: MethodBind\nbindVisualServer_environment_set_tonemap\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"environment_set_tonemap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the variables to be used with the \"tonemap\" post-process effect. See @Environment@ for more details.\nenvironment_set_tonemap ::\n                          (VisualServer :< cls, Object :< cls) =>\n                          cls ->\n                            Rid ->\n                              Int ->\n                                Float -> Float -> Bool -> Float -> Float -> Float -> Float -> IO ()\nenvironment_set_tonemap cls arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8\n  arg9\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6, toVariant arg7, toVariant arg8,\n       toVariant arg9]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_environment_set_tonemap\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"environment_set_tonemap\"\n           '[Rid, Int, Float, Float, Bool, Float, Float, Float, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.environment_set_tonemap\n\n{-# NOINLINE bindVisualServer_finish #-}\n\n-- | Removes buffers and clears testcubes.\nbindVisualServer_finish :: MethodBind\nbindVisualServer_finish\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"finish\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes buffers and clears testcubes.\nfinish :: (VisualServer :< cls, Object :< cls) => cls -> IO ()\nfinish cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_finish (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"finish\" '[] (IO ()) where\n        nodeMethod = Godot.Core.VisualServer.finish\n\n{-# NOINLINE bindVisualServer_force_draw #-}\n\n-- | Forces a frame to be drawn when the function is called. Drawing a frame updates all @Viewport@s that are set to update. Use with extreme caution.\nbindVisualServer_force_draw :: MethodBind\nbindVisualServer_force_draw\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"force_draw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Forces a frame to be drawn when the function is called. Drawing a frame updates all @Viewport@s that are set to update. Use with extreme caution.\nforce_draw ::\n             (VisualServer :< cls, Object :< cls) =>\n             cls -> Maybe Bool -> Maybe Float -> IO ()\nforce_draw cls arg1 arg2\n  = withVariantArray\n      [maybe (VariantBool True) toVariant arg1,\n       maybe (VariantReal (0)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_force_draw (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"force_draw\"\n           '[Maybe Bool, Maybe Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.force_draw\n\n{-# NOINLINE bindVisualServer_force_sync #-}\n\n-- | Synchronizes threads.\nbindVisualServer_force_sync :: MethodBind\nbindVisualServer_force_sync\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"force_sync\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Synchronizes threads.\nforce_sync :: (VisualServer :< cls, Object :< cls) => cls -> IO ()\nforce_sync cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_force_sync (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"force_sync\" '[] (IO ()) where\n        nodeMethod = Godot.Core.VisualServer.force_sync\n\n{-# NOINLINE bindVisualServer_free_rid #-}\n\n-- | Tries to free an object in the VisualServer.\nbindVisualServer_free_rid :: MethodBind\nbindVisualServer_free_rid\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"free_rid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Tries to free an object in the VisualServer.\nfree_rid ::\n           (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO ()\nfree_rid cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_free_rid (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"free_rid\" '[Rid] (IO ()) where\n        nodeMethod = Godot.Core.VisualServer.free_rid\n\n{-# NOINLINE bindVisualServer_get_render_info #-}\n\n-- | Returns a certain information, see @enum RenderInfo@ for options.\nbindVisualServer_get_render_info :: MethodBind\nbindVisualServer_get_render_info\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_render_info\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a certain information, see @enum RenderInfo@ for options.\nget_render_info ::\n                  (VisualServer :< cls, Object :< cls) => cls -> Int -> IO Int\nget_render_info cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_get_render_info\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"get_render_info\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.get_render_info\n\n{-# NOINLINE bindVisualServer_get_test_cube #-}\n\n-- | Returns the id of the test cube. Creates one if none exists.\nbindVisualServer_get_test_cube :: MethodBind\nbindVisualServer_get_test_cube\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_test_cube\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the id of the test cube. Creates one if none exists.\nget_test_cube ::\n                (VisualServer :< cls, Object :< cls) => cls -> IO Rid\nget_test_cube cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_get_test_cube (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"get_test_cube\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.VisualServer.get_test_cube\n\n{-# NOINLINE bindVisualServer_get_test_texture #-}\n\n-- | Returns the id of the test texture. Creates one if none exists.\nbindVisualServer_get_test_texture :: MethodBind\nbindVisualServer_get_test_texture\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_test_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the id of the test texture. Creates one if none exists.\nget_test_texture ::\n                   (VisualServer :< cls, Object :< cls) => cls -> IO Rid\nget_test_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_get_test_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"get_test_texture\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.get_test_texture\n\n{-# NOINLINE bindVisualServer_get_video_adapter_name #-}\n\n-- | Returns the name of the video adapter (e.g. \"GeForce GTX 1080/PCIe/SSE2\").\n--   \t\t\t\t__Note:__ When running a headless or server binary, this function returns an empty string.\nbindVisualServer_get_video_adapter_name :: MethodBind\nbindVisualServer_get_video_adapter_name\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_video_adapter_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of the video adapter (e.g. \"GeForce GTX 1080/PCIe/SSE2\").\n--   \t\t\t\t__Note:__ When running a headless or server binary, this function returns an empty string.\nget_video_adapter_name ::\n                         (VisualServer :< cls, Object :< cls) => cls -> IO GodotString\nget_video_adapter_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_get_video_adapter_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"get_video_adapter_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualServer.get_video_adapter_name\n\n{-# NOINLINE bindVisualServer_get_video_adapter_vendor #-}\n\n-- | Returns the vendor of the video adapter (e.g. \"NVIDIA Corporation\").\n--   \t\t\t\t__Note:__ When running a headless or server binary, this function returns an empty string.\nbindVisualServer_get_video_adapter_vendor :: MethodBind\nbindVisualServer_get_video_adapter_vendor\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_video_adapter_vendor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the vendor of the video adapter (e.g. \"NVIDIA Corporation\").\n--   \t\t\t\t__Note:__ When running a headless or server binary, this function returns an empty string.\nget_video_adapter_vendor ::\n                           (VisualServer :< cls, Object :< cls) => cls -> IO GodotString\nget_video_adapter_vendor cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_get_video_adapter_vendor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"get_video_adapter_vendor\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualServer.get_video_adapter_vendor\n\n{-# NOINLINE bindVisualServer_get_white_texture #-}\n\n-- | Returns the id of a white texture. Creates one if none exists.\nbindVisualServer_get_white_texture :: MethodBind\nbindVisualServer_get_white_texture\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_white_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the id of a white texture. Creates one if none exists.\nget_white_texture ::\n                    (VisualServer :< cls, Object :< cls) => cls -> IO Rid\nget_white_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_get_white_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"get_white_texture\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.get_white_texture\n\n{-# NOINLINE bindVisualServer_gi_probe_create #-}\n\n-- | Creates a GI probe and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @gi_probe_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach this GI probe to an instance using @method instance_set_base@ using the returned RID.\nbindVisualServer_gi_probe_create :: MethodBind\nbindVisualServer_gi_probe_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a GI probe and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @gi_probe_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach this GI probe to an instance using @method instance_set_base@ using the returned RID.\ngi_probe_create ::\n                  (VisualServer :< cls, Object :< cls) => cls -> IO Rid\ngi_probe_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_create\n\n{-# NOINLINE bindVisualServer_gi_probe_get_bias #-}\n\n-- | Returns the bias value for the GI probe. Bias is used to avoid self occlusion. Equivalent to @GIProbeData.bias@.\nbindVisualServer_gi_probe_get_bias :: MethodBind\nbindVisualServer_gi_probe_get_bias\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_get_bias\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the bias value for the GI probe. Bias is used to avoid self occlusion. Equivalent to @GIProbeData.bias@.\ngi_probe_get_bias ::\n                    (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Float\ngi_probe_get_bias cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_get_bias\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_get_bias\" '[Rid]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_get_bias\n\n{-# NOINLINE bindVisualServer_gi_probe_get_bounds #-}\n\n-- | Returns the axis-aligned bounding box that covers the full extent of the GI probe.\nbindVisualServer_gi_probe_get_bounds :: MethodBind\nbindVisualServer_gi_probe_get_bounds\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_get_bounds\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the axis-aligned bounding box that covers the full extent of the GI probe.\ngi_probe_get_bounds ::\n                      (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Aabb\ngi_probe_get_bounds cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_get_bounds\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_get_bounds\" '[Rid]\n           (IO Aabb)\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_get_bounds\n\n{-# NOINLINE bindVisualServer_gi_probe_get_cell_size #-}\n\n-- | Returns the cell size set by @method gi_probe_set_cell_size@.\nbindVisualServer_gi_probe_get_cell_size :: MethodBind\nbindVisualServer_gi_probe_get_cell_size\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_get_cell_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the cell size set by @method gi_probe_set_cell_size@.\ngi_probe_get_cell_size ::\n                         (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Float\ngi_probe_get_cell_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_get_cell_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_get_cell_size\" '[Rid]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_get_cell_size\n\n{-# NOINLINE bindVisualServer_gi_probe_get_dynamic_data #-}\n\n-- | Returns the data used by the GI probe.\nbindVisualServer_gi_probe_get_dynamic_data :: MethodBind\nbindVisualServer_gi_probe_get_dynamic_data\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_get_dynamic_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the data used by the GI probe.\ngi_probe_get_dynamic_data ::\n                            (VisualServer :< cls, Object :< cls) =>\n                            cls -> Rid -> IO PoolIntArray\ngi_probe_get_dynamic_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_get_dynamic_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_get_dynamic_data\" '[Rid]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_get_dynamic_data\n\n{-# NOINLINE bindVisualServer_gi_probe_get_dynamic_range #-}\n\n-- | Returns the dynamic range set for this GI probe. Equivalent to @GIProbe.dynamic_range@.\nbindVisualServer_gi_probe_get_dynamic_range :: MethodBind\nbindVisualServer_gi_probe_get_dynamic_range\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_get_dynamic_range\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the dynamic range set for this GI probe. Equivalent to @GIProbe.dynamic_range@.\ngi_probe_get_dynamic_range ::\n                             (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Int\ngi_probe_get_dynamic_range cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_get_dynamic_range\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_get_dynamic_range\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_get_dynamic_range\n\n{-# NOINLINE bindVisualServer_gi_probe_get_energy #-}\n\n-- | Returns the energy multiplier for this GI probe. Equivalent to @GIProbe.energy@.\nbindVisualServer_gi_probe_get_energy :: MethodBind\nbindVisualServer_gi_probe_get_energy\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_get_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the energy multiplier for this GI probe. Equivalent to @GIProbe.energy@.\ngi_probe_get_energy ::\n                      (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Float\ngi_probe_get_energy cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_get_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_get_energy\" '[Rid]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_get_energy\n\n{-# NOINLINE bindVisualServer_gi_probe_get_normal_bias #-}\n\n-- | Returns the normal bias for this GI probe. Equivalent to @GIProbe.normal_bias@.\nbindVisualServer_gi_probe_get_normal_bias :: MethodBind\nbindVisualServer_gi_probe_get_normal_bias\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_get_normal_bias\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the normal bias for this GI probe. Equivalent to @GIProbe.normal_bias@.\ngi_probe_get_normal_bias ::\n                           (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Float\ngi_probe_get_normal_bias cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_get_normal_bias\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_get_normal_bias\" '[Rid]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_get_normal_bias\n\n{-# NOINLINE bindVisualServer_gi_probe_get_propagation #-}\n\n-- | Returns the propagation value for this GI probe. Equivalent to @GIProbe.propagation@.\nbindVisualServer_gi_probe_get_propagation :: MethodBind\nbindVisualServer_gi_probe_get_propagation\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_get_propagation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the propagation value for this GI probe. Equivalent to @GIProbe.propagation@.\ngi_probe_get_propagation ::\n                           (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Float\ngi_probe_get_propagation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_get_propagation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_get_propagation\" '[Rid]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_get_propagation\n\n{-# NOINLINE bindVisualServer_gi_probe_get_to_cell_xform #-}\n\n-- | Returns the Transform set by @method gi_probe_set_to_cell_xform@.\nbindVisualServer_gi_probe_get_to_cell_xform :: MethodBind\nbindVisualServer_gi_probe_get_to_cell_xform\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_get_to_cell_xform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the Transform set by @method gi_probe_set_to_cell_xform@.\ngi_probe_get_to_cell_xform ::\n                             (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Transform\ngi_probe_get_to_cell_xform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_get_to_cell_xform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_get_to_cell_xform\"\n           '[Rid]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_get_to_cell_xform\n\n{-# NOINLINE bindVisualServer_gi_probe_is_compressed #-}\n\n-- | Returns @true@ if the GI probe data associated with this GI probe is compressed. Equivalent to @GIProbe.compress@.\nbindVisualServer_gi_probe_is_compressed :: MethodBind\nbindVisualServer_gi_probe_is_compressed\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_is_compressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the GI probe data associated with this GI probe is compressed. Equivalent to @GIProbe.compress@.\ngi_probe_is_compressed ::\n                         (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Bool\ngi_probe_is_compressed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_is_compressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_is_compressed\" '[Rid]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_is_compressed\n\n{-# NOINLINE bindVisualServer_gi_probe_is_interior #-}\n\n-- | Returns @true@ if the GI probe is set to interior, meaning it does not account for sky light. Equivalent to @GIProbe.interior@.\nbindVisualServer_gi_probe_is_interior :: MethodBind\nbindVisualServer_gi_probe_is_interior\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_is_interior\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the GI probe is set to interior, meaning it does not account for sky light. Equivalent to @GIProbe.interior@.\ngi_probe_is_interior ::\n                       (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Bool\ngi_probe_is_interior cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_is_interior\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_is_interior\" '[Rid]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_is_interior\n\n{-# NOINLINE bindVisualServer_gi_probe_set_bias #-}\n\n-- | Sets the bias value to avoid self-occlusion. Equivalent to @GIProbe.bias@.\nbindVisualServer_gi_probe_set_bias :: MethodBind\nbindVisualServer_gi_probe_set_bias\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_set_bias\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the bias value to avoid self-occlusion. Equivalent to @GIProbe.bias@.\ngi_probe_set_bias ::\n                    (VisualServer :< cls, Object :< cls) =>\n                    cls -> Rid -> Float -> IO ()\ngi_probe_set_bias cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_set_bias\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_set_bias\" '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_set_bias\n\n{-# NOINLINE bindVisualServer_gi_probe_set_bounds #-}\n\n-- | Sets the axis-aligned bounding box that covers the extent of the GI probe.\nbindVisualServer_gi_probe_set_bounds :: MethodBind\nbindVisualServer_gi_probe_set_bounds\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_set_bounds\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the axis-aligned bounding box that covers the extent of the GI probe.\ngi_probe_set_bounds ::\n                      (VisualServer :< cls, Object :< cls) => cls -> Rid -> Aabb -> IO ()\ngi_probe_set_bounds cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_set_bounds\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_set_bounds\" '[Rid, Aabb]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_set_bounds\n\n{-# NOINLINE bindVisualServer_gi_probe_set_cell_size #-}\n\n-- | Sets the size of individual cells within the GI probe.\nbindVisualServer_gi_probe_set_cell_size :: MethodBind\nbindVisualServer_gi_probe_set_cell_size\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_set_cell_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the size of individual cells within the GI probe.\ngi_probe_set_cell_size ::\n                         (VisualServer :< cls, Object :< cls) =>\n                         cls -> Rid -> Float -> IO ()\ngi_probe_set_cell_size cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_set_cell_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_set_cell_size\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_set_cell_size\n\n{-# NOINLINE bindVisualServer_gi_probe_set_compress #-}\n\n-- | Sets the compression setting for the GI probe data. Compressed data will take up less space but may look worse. Equivalent to @GIProbe.compress@.\nbindVisualServer_gi_probe_set_compress :: MethodBind\nbindVisualServer_gi_probe_set_compress\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_set_compress\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the compression setting for the GI probe data. Compressed data will take up less space but may look worse. Equivalent to @GIProbe.compress@.\ngi_probe_set_compress ::\n                        (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\ngi_probe_set_compress cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_set_compress\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_set_compress\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_set_compress\n\n{-# NOINLINE bindVisualServer_gi_probe_set_dynamic_data #-}\n\n-- | Sets the data to be used in the GI probe for lighting calculations. Normally this is created and called internally within the @GIProbe@ node. You should not try to set this yourself.\nbindVisualServer_gi_probe_set_dynamic_data :: MethodBind\nbindVisualServer_gi_probe_set_dynamic_data\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_set_dynamic_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the data to be used in the GI probe for lighting calculations. Normally this is created and called internally within the @GIProbe@ node. You should not try to set this yourself.\ngi_probe_set_dynamic_data ::\n                            (VisualServer :< cls, Object :< cls) =>\n                            cls -> Rid -> PoolIntArray -> IO ()\ngi_probe_set_dynamic_data cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_set_dynamic_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_set_dynamic_data\"\n           '[Rid, PoolIntArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_set_dynamic_data\n\n{-# NOINLINE bindVisualServer_gi_probe_set_dynamic_range #-}\n\n-- | Sets the dynamic range of the GI probe. Dynamic range sets the limit for how bright lights can be. A smaller range captures greater detail but limits how bright lights can be. Equivalent to @GIProbe.dynamic_range@.\nbindVisualServer_gi_probe_set_dynamic_range :: MethodBind\nbindVisualServer_gi_probe_set_dynamic_range\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_set_dynamic_range\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the dynamic range of the GI probe. Dynamic range sets the limit for how bright lights can be. A smaller range captures greater detail but limits how bright lights can be. Equivalent to @GIProbe.dynamic_range@.\ngi_probe_set_dynamic_range ::\n                             (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\ngi_probe_set_dynamic_range cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_set_dynamic_range\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_set_dynamic_range\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_set_dynamic_range\n\n{-# NOINLINE bindVisualServer_gi_probe_set_energy #-}\n\n-- | Sets the energy multiplier for this GI probe. A higher energy makes the indirect light from the GI probe brighter. Equivalent to @GIProbe.energy@.\nbindVisualServer_gi_probe_set_energy :: MethodBind\nbindVisualServer_gi_probe_set_energy\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_set_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the energy multiplier for this GI probe. A higher energy makes the indirect light from the GI probe brighter. Equivalent to @GIProbe.energy@.\ngi_probe_set_energy ::\n                      (VisualServer :< cls, Object :< cls) =>\n                      cls -> Rid -> Float -> IO ()\ngi_probe_set_energy cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_set_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_set_energy\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_set_energy\n\n{-# NOINLINE bindVisualServer_gi_probe_set_interior #-}\n\n-- | Sets the interior value of this GI probe. A GI probe set to interior does not include the sky when calculating lighting. Equivalent to @GIProbe.interior@.\nbindVisualServer_gi_probe_set_interior :: MethodBind\nbindVisualServer_gi_probe_set_interior\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_set_interior\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the interior value of this GI probe. A GI probe set to interior does not include the sky when calculating lighting. Equivalent to @GIProbe.interior@.\ngi_probe_set_interior ::\n                        (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\ngi_probe_set_interior cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_set_interior\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_set_interior\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_set_interior\n\n{-# NOINLINE bindVisualServer_gi_probe_set_normal_bias #-}\n\n-- | Sets the normal bias for this GI probe. Normal bias behaves similar to the other form of bias and may help reduce self-occlusion. Equivalent to @GIProbe.normal_bias@.\nbindVisualServer_gi_probe_set_normal_bias :: MethodBind\nbindVisualServer_gi_probe_set_normal_bias\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_set_normal_bias\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the normal bias for this GI probe. Normal bias behaves similar to the other form of bias and may help reduce self-occlusion. Equivalent to @GIProbe.normal_bias@.\ngi_probe_set_normal_bias ::\n                           (VisualServer :< cls, Object :< cls) =>\n                           cls -> Rid -> Float -> IO ()\ngi_probe_set_normal_bias cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_set_normal_bias\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_set_normal_bias\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_set_normal_bias\n\n{-# NOINLINE bindVisualServer_gi_probe_set_propagation #-}\n\n-- | Sets the propagation of light within this GI probe. Equivalent to @GIProbe.propagation@.\nbindVisualServer_gi_probe_set_propagation :: MethodBind\nbindVisualServer_gi_probe_set_propagation\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_set_propagation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the propagation of light within this GI probe. Equivalent to @GIProbe.propagation@.\ngi_probe_set_propagation ::\n                           (VisualServer :< cls, Object :< cls) =>\n                           cls -> Rid -> Float -> IO ()\ngi_probe_set_propagation cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_set_propagation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_set_propagation\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_set_propagation\n\n{-# NOINLINE bindVisualServer_gi_probe_set_to_cell_xform #-}\n\n-- | Sets the to cell @Transform@ for this GI probe.\nbindVisualServer_gi_probe_set_to_cell_xform :: MethodBind\nbindVisualServer_gi_probe_set_to_cell_xform\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"gi_probe_set_to_cell_xform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the to cell @Transform@ for this GI probe.\ngi_probe_set_to_cell_xform ::\n                             (VisualServer :< cls, Object :< cls) =>\n                             cls -> Rid -> Transform -> IO ()\ngi_probe_set_to_cell_xform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_gi_probe_set_to_cell_xform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"gi_probe_set_to_cell_xform\"\n           '[Rid, Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.gi_probe_set_to_cell_xform\n\n{-# NOINLINE bindVisualServer_has_changed #-}\n\n-- | Returns @true@ if changes have been made to the VisualServer's data. @method draw@ is usually called if this happens.\nbindVisualServer_has_changed :: MethodBind\nbindVisualServer_has_changed\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"has_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if changes have been made to the VisualServer's data. @method draw@ is usually called if this happens.\nhas_changed ::\n              (VisualServer :< cls, Object :< cls) => cls -> IO Bool\nhas_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_has_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"has_changed\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.VisualServer.has_changed\n\n{-# NOINLINE bindVisualServer_has_feature #-}\n\n-- | Not yet implemented. Always returns @false@.\nbindVisualServer_has_feature :: MethodBind\nbindVisualServer_has_feature\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"has_feature\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Not yet implemented. Always returns @false@.\nhas_feature ::\n              (VisualServer :< cls, Object :< cls) => cls -> Int -> IO Bool\nhas_feature cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_has_feature (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"has_feature\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualServer.has_feature\n\n{-# NOINLINE bindVisualServer_has_os_feature #-}\n\n-- | Returns @true@ if the OS supports a certain feature. Features might be @s3tc@, @etc@, @etc2@ and @pvrtc@.\nbindVisualServer_has_os_feature :: MethodBind\nbindVisualServer_has_os_feature\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"has_os_feature\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the OS supports a certain feature. Features might be @s3tc@, @etc@, @etc2@ and @pvrtc@.\nhas_os_feature ::\n                 (VisualServer :< cls, Object :< cls) =>\n                 cls -> GodotString -> IO Bool\nhas_os_feature cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_has_os_feature (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"has_os_feature\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualServer.has_os_feature\n\n{-# NOINLINE bindVisualServer_immediate_begin #-}\n\n-- | Sets up @ImmediateGeometry@ internals to prepare for drawing. Equivalent to @method ImmediateGeometry.begin@.\nbindVisualServer_immediate_begin :: MethodBind\nbindVisualServer_immediate_begin\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"immediate_begin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets up @ImmediateGeometry@ internals to prepare for drawing. Equivalent to @method ImmediateGeometry.begin@.\nimmediate_begin ::\n                  (VisualServer :< cls, Object :< cls) =>\n                  cls -> Rid -> Int -> Maybe Rid -> IO ()\nimmediate_begin cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, maybe VariantNil toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_immediate_begin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"immediate_begin\"\n           '[Rid, Int, Maybe Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.immediate_begin\n\n{-# NOINLINE bindVisualServer_immediate_clear #-}\n\n-- | Clears everything that was set up between @method immediate_begin@ and @method immediate_end@. Equivalent to @method ImmediateGeometry.clear@.\nbindVisualServer_immediate_clear :: MethodBind\nbindVisualServer_immediate_clear\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"immediate_clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clears everything that was set up between @method immediate_begin@ and @method immediate_end@. Equivalent to @method ImmediateGeometry.clear@.\nimmediate_clear ::\n                  (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO ()\nimmediate_clear cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_immediate_clear\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"immediate_clear\" '[Rid] (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.immediate_clear\n\n{-# NOINLINE bindVisualServer_immediate_color #-}\n\n-- | Sets the color to be used with next vertex. Equivalent to @method ImmediateGeometry.set_color@.\nbindVisualServer_immediate_color :: MethodBind\nbindVisualServer_immediate_color\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"immediate_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the color to be used with next vertex. Equivalent to @method ImmediateGeometry.set_color@.\nimmediate_color ::\n                  (VisualServer :< cls, Object :< cls) =>\n                  cls -> Rid -> Color -> IO ()\nimmediate_color cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_immediate_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"immediate_color\" '[Rid, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.immediate_color\n\n{-# NOINLINE bindVisualServer_immediate_create #-}\n\n-- | Creates an immediate geometry and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @immediate_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach this immediate geometry to an instance using @method instance_set_base@ using the returned RID.\nbindVisualServer_immediate_create :: MethodBind\nbindVisualServer_immediate_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"immediate_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates an immediate geometry and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @immediate_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach this immediate geometry to an instance using @method instance_set_base@ using the returned RID.\nimmediate_create ::\n                   (VisualServer :< cls, Object :< cls) => cls -> IO Rid\nimmediate_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_immediate_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"immediate_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.immediate_create\n\n{-# NOINLINE bindVisualServer_immediate_end #-}\n\n-- | Ends drawing the @ImmediateGeometry@ and displays it. Equivalent to @method ImmediateGeometry.end@.\nbindVisualServer_immediate_end :: MethodBind\nbindVisualServer_immediate_end\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"immediate_end\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Ends drawing the @ImmediateGeometry@ and displays it. Equivalent to @method ImmediateGeometry.end@.\nimmediate_end ::\n                (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO ()\nimmediate_end cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_immediate_end (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"immediate_end\" '[Rid] (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.immediate_end\n\n{-# NOINLINE bindVisualServer_immediate_get_material #-}\n\n-- | Returns the material assigned to the @ImmediateGeometry@.\nbindVisualServer_immediate_get_material :: MethodBind\nbindVisualServer_immediate_get_material\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"immediate_get_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the material assigned to the @ImmediateGeometry@.\nimmediate_get_material ::\n                         (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Rid\nimmediate_get_material cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_immediate_get_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"immediate_get_material\" '[Rid]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.immediate_get_material\n\n{-# NOINLINE bindVisualServer_immediate_normal #-}\n\n-- | Sets the normal to be used with next vertex. Equivalent to @method ImmediateGeometry.set_normal@.\nbindVisualServer_immediate_normal :: MethodBind\nbindVisualServer_immediate_normal\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"immediate_normal\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the normal to be used with next vertex. Equivalent to @method ImmediateGeometry.set_normal@.\nimmediate_normal ::\n                   (VisualServer :< cls, Object :< cls) =>\n                   cls -> Rid -> Vector3 -> IO ()\nimmediate_normal cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_immediate_normal\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"immediate_normal\" '[Rid, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.immediate_normal\n\n{-# NOINLINE bindVisualServer_immediate_set_material #-}\n\n-- | Sets the material to be used to draw the @ImmediateGeometry@.\nbindVisualServer_immediate_set_material :: MethodBind\nbindVisualServer_immediate_set_material\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"immediate_set_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the material to be used to draw the @ImmediateGeometry@.\nimmediate_set_material ::\n                         (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\nimmediate_set_material cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_immediate_set_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"immediate_set_material\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.immediate_set_material\n\n{-# NOINLINE bindVisualServer_immediate_tangent #-}\n\n-- | Sets the tangent to be used with next vertex. Equivalent to @method ImmediateGeometry.set_tangent@.\nbindVisualServer_immediate_tangent :: MethodBind\nbindVisualServer_immediate_tangent\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"immediate_tangent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the tangent to be used with next vertex. Equivalent to @method ImmediateGeometry.set_tangent@.\nimmediate_tangent ::\n                    (VisualServer :< cls, Object :< cls) =>\n                    cls -> Rid -> Plane -> IO ()\nimmediate_tangent cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_immediate_tangent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"immediate_tangent\" '[Rid, Plane]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.immediate_tangent\n\n{-# NOINLINE bindVisualServer_immediate_uv #-}\n\n-- | Sets the UV to be used with next vertex. Equivalent to @method ImmediateGeometry.set_uv@.\nbindVisualServer_immediate_uv :: MethodBind\nbindVisualServer_immediate_uv\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"immediate_uv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the UV to be used with next vertex. Equivalent to @method ImmediateGeometry.set_uv@.\nimmediate_uv ::\n               (VisualServer :< cls, Object :< cls) =>\n               cls -> Rid -> Vector2 -> IO ()\nimmediate_uv cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_immediate_uv (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"immediate_uv\" '[Rid, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.immediate_uv\n\n{-# NOINLINE bindVisualServer_immediate_uv2 #-}\n\n-- | Sets the UV2 to be used with next vertex. Equivalent to @method ImmediateGeometry.set_uv2@.\nbindVisualServer_immediate_uv2 :: MethodBind\nbindVisualServer_immediate_uv2\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"immediate_uv2\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the UV2 to be used with next vertex. Equivalent to @method ImmediateGeometry.set_uv2@.\nimmediate_uv2 ::\n                (VisualServer :< cls, Object :< cls) =>\n                cls -> Rid -> Vector2 -> IO ()\nimmediate_uv2 cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_immediate_uv2 (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"immediate_uv2\" '[Rid, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.immediate_uv2\n\n{-# NOINLINE bindVisualServer_immediate_vertex #-}\n\n-- | Adds the next vertex using the information provided in advance. Equivalent to @method ImmediateGeometry.add_vertex@.\nbindVisualServer_immediate_vertex :: MethodBind\nbindVisualServer_immediate_vertex\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"immediate_vertex\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds the next vertex using the information provided in advance. Equivalent to @method ImmediateGeometry.add_vertex@.\nimmediate_vertex ::\n                   (VisualServer :< cls, Object :< cls) =>\n                   cls -> Rid -> Vector3 -> IO ()\nimmediate_vertex cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_immediate_vertex\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"immediate_vertex\" '[Rid, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.immediate_vertex\n\n{-# NOINLINE bindVisualServer_immediate_vertex_2d #-}\n\n-- | Adds the next vertex using the information provided in advance. This is a helper class that calls @method immediate_vertex@ under the hood. Equivalent to @method ImmediateGeometry.add_vertex@.\nbindVisualServer_immediate_vertex_2d :: MethodBind\nbindVisualServer_immediate_vertex_2d\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"immediate_vertex_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds the next vertex using the information provided in advance. This is a helper class that calls @method immediate_vertex@ under the hood. Equivalent to @method ImmediateGeometry.add_vertex@.\nimmediate_vertex_2d ::\n                      (VisualServer :< cls, Object :< cls) =>\n                      cls -> Rid -> Vector2 -> IO ()\nimmediate_vertex_2d cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_immediate_vertex_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"immediate_vertex_2d\"\n           '[Rid, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.immediate_vertex_2d\n\n{-# NOINLINE bindVisualServer_init #-}\n\n-- | Initializes the visual server. This function is called internally by platform-dependent code during engine initialization. If called from a running game, it will not do anything.\nbindVisualServer_init :: MethodBind\nbindVisualServer_init\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"init\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Initializes the visual server. This function is called internally by platform-dependent code during engine initialization. If called from a running game, it will not do anything.\ninit :: (VisualServer :< cls, Object :< cls) => cls -> IO ()\ninit cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_init (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"init\" '[] (IO ()) where\n        nodeMethod = Godot.Core.VisualServer.init\n\n{-# NOINLINE bindVisualServer_instance_attach_object_instance_id\n             #-}\n\n-- | Attaches a unique Object ID to instance. Object ID must be attached to instance for proper culling with @method instances_cull_aabb@, @method instances_cull_convex@, and @method instances_cull_ray@.\nbindVisualServer_instance_attach_object_instance_id :: MethodBind\nbindVisualServer_instance_attach_object_instance_id\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_attach_object_instance_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Attaches a unique Object ID to instance. Object ID must be attached to instance for proper culling with @method instances_cull_aabb@, @method instances_cull_convex@, and @method instances_cull_ray@.\ninstance_attach_object_instance_id ::\n                                     (VisualServer :< cls, Object :< cls) =>\n                                     cls -> Rid -> Int -> IO ()\ninstance_attach_object_instance_id cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_instance_attach_object_instance_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"instance_attach_object_instance_id\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.instance_attach_object_instance_id\n\n{-# NOINLINE bindVisualServer_instance_attach_skeleton #-}\n\n-- | Attaches a skeleton to an instance. Removes the previous skeleton from the instance.\nbindVisualServer_instance_attach_skeleton :: MethodBind\nbindVisualServer_instance_attach_skeleton\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_attach_skeleton\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Attaches a skeleton to an instance. Removes the previous skeleton from the instance.\ninstance_attach_skeleton ::\n                           (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\ninstance_attach_skeleton cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_instance_attach_skeleton\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"instance_attach_skeleton\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.instance_attach_skeleton\n\n{-# NOINLINE bindVisualServer_instance_create #-}\n\n-- | Creates a visual instance and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @instance_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tAn instance is a way of placing a 3D object in the scenario. Objects like particles, meshes, and reflection probes need to be associated with an instance to be visible in the scenario using @method instance_set_base@.\nbindVisualServer_instance_create :: MethodBind\nbindVisualServer_instance_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a visual instance and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @instance_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tAn instance is a way of placing a 3D object in the scenario. Objects like particles, meshes, and reflection probes need to be associated with an instance to be visible in the scenario using @method instance_set_base@.\ninstance_create ::\n                  (VisualServer :< cls, Object :< cls) => cls -> IO Rid\ninstance_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_instance_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"instance_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.instance_create\n\n{-# NOINLINE bindVisualServer_instance_create2 #-}\n\n-- | Creates a visual instance, adds it to the VisualServer, and sets both base and scenario. It can be accessed with the RID that is returned. This RID will be used in all @instance_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nbindVisualServer_instance_create2 :: MethodBind\nbindVisualServer_instance_create2\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_create2\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a visual instance, adds it to the VisualServer, and sets both base and scenario. It can be accessed with the RID that is returned. This RID will be used in all @instance_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\ninstance_create2 ::\n                   (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO Rid\ninstance_create2 cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_instance_create2\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"instance_create2\" '[Rid, Rid]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.instance_create2\n\n{-# NOINLINE bindVisualServer_instance_geometry_set_as_instance_lod\n             #-}\n\n-- | Not implemented in Godot 3.x.\nbindVisualServer_instance_geometry_set_as_instance_lod ::\n                                                       MethodBind\nbindVisualServer_instance_geometry_set_as_instance_lod\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_geometry_set_as_instance_lod\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Not implemented in Godot 3.x.\ninstance_geometry_set_as_instance_lod ::\n                                        (VisualServer :< cls, Object :< cls) =>\n                                        cls -> Rid -> Rid -> IO ()\ninstance_geometry_set_as_instance_lod cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_instance_geometry_set_as_instance_lod\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"instance_geometry_set_as_instance_lod\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.instance_geometry_set_as_instance_lod\n\n{-# NOINLINE bindVisualServer_instance_geometry_set_cast_shadows_setting\n             #-}\n\n-- | Sets the shadow casting setting to one of @enum ShadowCastingSetting@. Equivalent to @GeometryInstance.cast_shadow@.\nbindVisualServer_instance_geometry_set_cast_shadows_setting ::\n                                                            MethodBind\nbindVisualServer_instance_geometry_set_cast_shadows_setting\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_geometry_set_cast_shadows_setting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the shadow casting setting to one of @enum ShadowCastingSetting@. Equivalent to @GeometryInstance.cast_shadow@.\ninstance_geometry_set_cast_shadows_setting ::\n                                             (VisualServer :< cls, Object :< cls) =>\n                                             cls -> Rid -> Int -> IO ()\ninstance_geometry_set_cast_shadows_setting cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_instance_geometry_set_cast_shadows_setting\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"instance_geometry_set_cast_shadows_setting\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.instance_geometry_set_cast_shadows_setting\n\n{-# NOINLINE bindVisualServer_instance_geometry_set_draw_range #-}\n\n-- | Not implemented in Godot 3.x.\nbindVisualServer_instance_geometry_set_draw_range :: MethodBind\nbindVisualServer_instance_geometry_set_draw_range\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_geometry_set_draw_range\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Not implemented in Godot 3.x.\ninstance_geometry_set_draw_range ::\n                                   (VisualServer :< cls, Object :< cls) =>\n                                   cls -> Rid -> Float -> Float -> Float -> Float -> IO ()\ninstance_geometry_set_draw_range cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_instance_geometry_set_draw_range\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"instance_geometry_set_draw_range\"\n           '[Rid, Float, Float, Float, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.instance_geometry_set_draw_range\n\n{-# NOINLINE bindVisualServer_instance_geometry_set_flag #-}\n\n-- | Sets the flag for a given @enum InstanceFlags@. See @enum InstanceFlags@ for more details.\nbindVisualServer_instance_geometry_set_flag :: MethodBind\nbindVisualServer_instance_geometry_set_flag\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_geometry_set_flag\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the flag for a given @enum InstanceFlags@. See @enum InstanceFlags@ for more details.\ninstance_geometry_set_flag ::\n                             (VisualServer :< cls, Object :< cls) =>\n                             cls -> Rid -> Int -> Bool -> IO ()\ninstance_geometry_set_flag cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_instance_geometry_set_flag\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"instance_geometry_set_flag\"\n           '[Rid, Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.instance_geometry_set_flag\n\n{-# NOINLINE bindVisualServer_instance_geometry_set_material_override\n             #-}\n\n-- | Sets a material that will override the material for all surfaces on the mesh associated with this instance. Equivalent to @GeometryInstance.material_override@.\nbindVisualServer_instance_geometry_set_material_override ::\n                                                         MethodBind\nbindVisualServer_instance_geometry_set_material_override\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_geometry_set_material_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a material that will override the material for all surfaces on the mesh associated with this instance. Equivalent to @GeometryInstance.material_override@.\ninstance_geometry_set_material_override ::\n                                          (VisualServer :< cls, Object :< cls) =>\n                                          cls -> Rid -> Rid -> IO ()\ninstance_geometry_set_material_override cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_instance_geometry_set_material_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"instance_geometry_set_material_override\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.instance_geometry_set_material_override\n\n{-# NOINLINE bindVisualServer_instance_set_base #-}\n\n-- | Sets the base of the instance. A base can be any of the 3D objects that are created in the VisualServer that can be displayed. For example, any of the light types, mesh, multimesh, immediate geometry, particle system, reflection probe, lightmap capture, and the GI probe are all types that can be set as the base of an instance in order to be displayed in the scenario.\nbindVisualServer_instance_set_base :: MethodBind\nbindVisualServer_instance_set_base\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_set_base\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the base of the instance. A base can be any of the 3D objects that are created in the VisualServer that can be displayed. For example, any of the light types, mesh, multimesh, immediate geometry, particle system, reflection probe, lightmap capture, and the GI probe are all types that can be set as the base of an instance in order to be displayed in the scenario.\ninstance_set_base ::\n                    (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\ninstance_set_base cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_instance_set_base\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"instance_set_base\" '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.instance_set_base\n\n{-# NOINLINE bindVisualServer_instance_set_blend_shape_weight #-}\n\n-- | Sets the weight for a given blend shape associated with this instance.\nbindVisualServer_instance_set_blend_shape_weight :: MethodBind\nbindVisualServer_instance_set_blend_shape_weight\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_set_blend_shape_weight\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the weight for a given blend shape associated with this instance.\ninstance_set_blend_shape_weight ::\n                                  (VisualServer :< cls, Object :< cls) =>\n                                  cls -> Rid -> Int -> Float -> IO ()\ninstance_set_blend_shape_weight cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_instance_set_blend_shape_weight\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"instance_set_blend_shape_weight\"\n           '[Rid, Int, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.instance_set_blend_shape_weight\n\n{-# NOINLINE bindVisualServer_instance_set_custom_aabb #-}\n\n-- | Sets a custom AABB to use when culling objects from the view frustum. Equivalent to @method GeometryInstance.set_custom_aabb@.\nbindVisualServer_instance_set_custom_aabb :: MethodBind\nbindVisualServer_instance_set_custom_aabb\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_set_custom_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a custom AABB to use when culling objects from the view frustum. Equivalent to @method GeometryInstance.set_custom_aabb@.\ninstance_set_custom_aabb ::\n                           (VisualServer :< cls, Object :< cls) => cls -> Rid -> Aabb -> IO ()\ninstance_set_custom_aabb cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_instance_set_custom_aabb\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"instance_set_custom_aabb\"\n           '[Rid, Aabb]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.instance_set_custom_aabb\n\n{-# NOINLINE bindVisualServer_instance_set_exterior #-}\n\n-- | Function not implemented in Godot 3.x.\nbindVisualServer_instance_set_exterior :: MethodBind\nbindVisualServer_instance_set_exterior\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_set_exterior\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Function not implemented in Godot 3.x.\ninstance_set_exterior ::\n                        (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\ninstance_set_exterior cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_instance_set_exterior\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"instance_set_exterior\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.instance_set_exterior\n\n{-# NOINLINE bindVisualServer_instance_set_extra_visibility_margin\n             #-}\n\n-- | Sets a margin to increase the size of the AABB when culling objects from the view frustum. This allows you avoid culling objects that fall outside the view frustum. Equivalent to @GeometryInstance.extra_cull_margin@.\nbindVisualServer_instance_set_extra_visibility_margin :: MethodBind\nbindVisualServer_instance_set_extra_visibility_margin\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_set_extra_visibility_margin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a margin to increase the size of the AABB when culling objects from the view frustum. This allows you avoid culling objects that fall outside the view frustum. Equivalent to @GeometryInstance.extra_cull_margin@.\ninstance_set_extra_visibility_margin ::\n                                       (VisualServer :< cls, Object :< cls) =>\n                                       cls -> Rid -> Float -> IO ()\ninstance_set_extra_visibility_margin cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_instance_set_extra_visibility_margin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"instance_set_extra_visibility_margin\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.instance_set_extra_visibility_margin\n\n{-# NOINLINE bindVisualServer_instance_set_layer_mask #-}\n\n-- | Sets the render layers that this instance will be drawn to. Equivalent to @VisualInstance.layers@.\nbindVisualServer_instance_set_layer_mask :: MethodBind\nbindVisualServer_instance_set_layer_mask\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_set_layer_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the render layers that this instance will be drawn to. Equivalent to @VisualInstance.layers@.\ninstance_set_layer_mask ::\n                          (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\ninstance_set_layer_mask cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_instance_set_layer_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"instance_set_layer_mask\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.instance_set_layer_mask\n\n{-# NOINLINE bindVisualServer_instance_set_scenario #-}\n\n-- | Sets the scenario that the instance is in. The scenario is the 3D world that the objects will be displayed in.\nbindVisualServer_instance_set_scenario :: MethodBind\nbindVisualServer_instance_set_scenario\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_set_scenario\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the scenario that the instance is in. The scenario is the 3D world that the objects will be displayed in.\ninstance_set_scenario ::\n                        (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\ninstance_set_scenario cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_instance_set_scenario\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"instance_set_scenario\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.instance_set_scenario\n\n{-# NOINLINE bindVisualServer_instance_set_surface_material #-}\n\n-- | Sets the material of a specific surface. Equivalent to @method MeshInstance.set_surface_material@.\nbindVisualServer_instance_set_surface_material :: MethodBind\nbindVisualServer_instance_set_surface_material\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_set_surface_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the material of a specific surface. Equivalent to @method MeshInstance.set_surface_material@.\ninstance_set_surface_material ::\n                                (VisualServer :< cls, Object :< cls) =>\n                                cls -> Rid -> Int -> Rid -> IO ()\ninstance_set_surface_material cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_instance_set_surface_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"instance_set_surface_material\"\n           '[Rid, Int, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.instance_set_surface_material\n\n{-# NOINLINE bindVisualServer_instance_set_transform #-}\n\n-- | Sets the world space transform of the instance. Equivalent to @Spatial.transform@.\nbindVisualServer_instance_set_transform :: MethodBind\nbindVisualServer_instance_set_transform\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the world space transform of the instance. Equivalent to @Spatial.transform@.\ninstance_set_transform ::\n                         (VisualServer :< cls, Object :< cls) =>\n                         cls -> Rid -> Transform -> IO ()\ninstance_set_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_instance_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"instance_set_transform\"\n           '[Rid, Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.instance_set_transform\n\n{-# NOINLINE bindVisualServer_instance_set_use_lightmap #-}\n\n-- | Sets the lightmap to use with this instance.\nbindVisualServer_instance_set_use_lightmap :: MethodBind\nbindVisualServer_instance_set_use_lightmap\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_set_use_lightmap\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the lightmap to use with this instance.\ninstance_set_use_lightmap ::\n                            (VisualServer :< cls, Object :< cls) =>\n                            cls -> Rid -> Rid -> Rid -> IO ()\ninstance_set_use_lightmap cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_instance_set_use_lightmap\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"instance_set_use_lightmap\"\n           '[Rid, Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.instance_set_use_lightmap\n\n{-# NOINLINE bindVisualServer_instance_set_visible #-}\n\n-- | Sets whether an instance is drawn or not. Equivalent to @Spatial.visible@.\nbindVisualServer_instance_set_visible :: MethodBind\nbindVisualServer_instance_set_visible\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instance_set_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether an instance is drawn or not. Equivalent to @Spatial.visible@.\ninstance_set_visible ::\n                       (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\ninstance_set_visible cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_instance_set_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"instance_set_visible\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.instance_set_visible\n\n{-# NOINLINE bindVisualServer_instances_cull_aabb #-}\n\n-- | Returns an array of object IDs intersecting with the provided AABB. Only visual 3D nodes are considered, such as @MeshInstance@ or @DirectionalLight@. Use @method @GDScript.instance_from_id@ to obtain the actual nodes. A scenario RID must be provided, which is available in the @World@ you want to query. This forces an update for all resources queued to update.\n--   \t\t\t\t__Warning:__ This function is primarily intended for editor usage. For in-game use cases, prefer physics collision.\nbindVisualServer_instances_cull_aabb :: MethodBind\nbindVisualServer_instances_cull_aabb\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instances_cull_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of object IDs intersecting with the provided AABB. Only visual 3D nodes are considered, such as @MeshInstance@ or @DirectionalLight@. Use @method @GDScript.instance_from_id@ to obtain the actual nodes. A scenario RID must be provided, which is available in the @World@ you want to query. This forces an update for all resources queued to update.\n--   \t\t\t\t__Warning:__ This function is primarily intended for editor usage. For in-game use cases, prefer physics collision.\ninstances_cull_aabb ::\n                      (VisualServer :< cls, Object :< cls) =>\n                      cls -> Aabb -> Maybe Rid -> IO Array\ninstances_cull_aabb cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe VariantNil toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_instances_cull_aabb\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"instances_cull_aabb\"\n           '[Aabb, Maybe Rid]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.VisualServer.instances_cull_aabb\n\n{-# NOINLINE bindVisualServer_instances_cull_convex #-}\n\n-- | Returns an array of object IDs intersecting with the provided convex shape. Only visual 3D nodes are considered, such as @MeshInstance@ or @DirectionalLight@. Use @method @GDScript.instance_from_id@ to obtain the actual nodes. A scenario RID must be provided, which is available in the @World@ you want to query. This forces an update for all resources queued to update.\n--   \t\t\t\t__Warning:__ This function is primarily intended for editor usage. For in-game use cases, prefer physics collision.\nbindVisualServer_instances_cull_convex :: MethodBind\nbindVisualServer_instances_cull_convex\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instances_cull_convex\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of object IDs intersecting with the provided convex shape. Only visual 3D nodes are considered, such as @MeshInstance@ or @DirectionalLight@. Use @method @GDScript.instance_from_id@ to obtain the actual nodes. A scenario RID must be provided, which is available in the @World@ you want to query. This forces an update for all resources queued to update.\n--   \t\t\t\t__Warning:__ This function is primarily intended for editor usage. For in-game use cases, prefer physics collision.\ninstances_cull_convex ::\n                        (VisualServer :< cls, Object :< cls) =>\n                        cls -> Array -> Maybe Rid -> IO Array\ninstances_cull_convex cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe VariantNil toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_instances_cull_convex\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"instances_cull_convex\"\n           '[Array, Maybe Rid]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.VisualServer.instances_cull_convex\n\n{-# NOINLINE bindVisualServer_instances_cull_ray #-}\n\n-- | Returns an array of object IDs intersecting with the provided 3D ray. Only visual 3D nodes are considered, such as @MeshInstance@ or @DirectionalLight@. Use @method @GDScript.instance_from_id@ to obtain the actual nodes. A scenario RID must be provided, which is available in the @World@ you want to query. This forces an update for all resources queued to update.\n--   \t\t\t\t__Warning:__ This function is primarily intended for editor usage. For in-game use cases, prefer physics collision.\nbindVisualServer_instances_cull_ray :: MethodBind\nbindVisualServer_instances_cull_ray\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"instances_cull_ray\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array of object IDs intersecting with the provided 3D ray. Only visual 3D nodes are considered, such as @MeshInstance@ or @DirectionalLight@. Use @method @GDScript.instance_from_id@ to obtain the actual nodes. A scenario RID must be provided, which is available in the @World@ you want to query. This forces an update for all resources queued to update.\n--   \t\t\t\t__Warning:__ This function is primarily intended for editor usage. For in-game use cases, prefer physics collision.\ninstances_cull_ray ::\n                     (VisualServer :< cls, Object :< cls) =>\n                     cls -> Vector3 -> Vector3 -> Maybe Rid -> IO Array\ninstances_cull_ray cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, maybe VariantNil toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_instances_cull_ray\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"instances_cull_ray\"\n           '[Vector3, Vector3, Maybe Rid]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.VisualServer.instances_cull_ray\n\n{-# NOINLINE bindVisualServer_light_directional_set_blend_splits\n             #-}\n\n-- | If @true@, this directional light will blend between shadow map splits resulting in a smoother transition between them. Equivalent to @DirectionalLight.directional_shadow_blend_splits@.\nbindVisualServer_light_directional_set_blend_splits :: MethodBind\nbindVisualServer_light_directional_set_blend_splits\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"light_directional_set_blend_splits\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, this directional light will blend between shadow map splits resulting in a smoother transition between them. Equivalent to @DirectionalLight.directional_shadow_blend_splits@.\nlight_directional_set_blend_splits ::\n                                     (VisualServer :< cls, Object :< cls) =>\n                                     cls -> Rid -> Bool -> IO ()\nlight_directional_set_blend_splits cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_light_directional_set_blend_splits\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"light_directional_set_blend_splits\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.light_directional_set_blend_splits\n\n{-# NOINLINE bindVisualServer_light_directional_set_shadow_depth_range_mode\n             #-}\n\n-- | Sets the shadow depth range mode for this directional light. Equivalent to @DirectionalLight.directional_shadow_depth_range@. See @enum LightDirectionalShadowDepthRangeMode@ for options.\nbindVisualServer_light_directional_set_shadow_depth_range_mode ::\n                                                               MethodBind\nbindVisualServer_light_directional_set_shadow_depth_range_mode\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"light_directional_set_shadow_depth_range_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the shadow depth range mode for this directional light. Equivalent to @DirectionalLight.directional_shadow_depth_range@. See @enum LightDirectionalShadowDepthRangeMode@ for options.\nlight_directional_set_shadow_depth_range_mode ::\n                                                (VisualServer :< cls, Object :< cls) =>\n                                                cls -> Rid -> Int -> IO ()\nlight_directional_set_shadow_depth_range_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_light_directional_set_shadow_depth_range_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"light_directional_set_shadow_depth_range_mode\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.light_directional_set_shadow_depth_range_mode\n\n{-# NOINLINE bindVisualServer_light_directional_set_shadow_mode #-}\n\n-- | Sets the shadow mode for this directional light. Equivalent to @DirectionalLight.directional_shadow_mode@. See @enum LightDirectionalShadowMode@ for options.\nbindVisualServer_light_directional_set_shadow_mode :: MethodBind\nbindVisualServer_light_directional_set_shadow_mode\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"light_directional_set_shadow_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the shadow mode for this directional light. Equivalent to @DirectionalLight.directional_shadow_mode@. See @enum LightDirectionalShadowMode@ for options.\nlight_directional_set_shadow_mode ::\n                                    (VisualServer :< cls, Object :< cls) =>\n                                    cls -> Rid -> Int -> IO ()\nlight_directional_set_shadow_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_light_directional_set_shadow_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"light_directional_set_shadow_mode\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.light_directional_set_shadow_mode\n\n{-# NOINLINE bindVisualServer_light_omni_set_shadow_detail #-}\n\n-- | Sets whether to use vertical or horizontal detail for this omni light. This can be used to alleviate artifacts in the shadow map. Equivalent to @OmniLight.omni_shadow_detail@.\nbindVisualServer_light_omni_set_shadow_detail :: MethodBind\nbindVisualServer_light_omni_set_shadow_detail\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"light_omni_set_shadow_detail\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether to use vertical or horizontal detail for this omni light. This can be used to alleviate artifacts in the shadow map. Equivalent to @OmniLight.omni_shadow_detail@.\nlight_omni_set_shadow_detail ::\n                               (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nlight_omni_set_shadow_detail cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_light_omni_set_shadow_detail\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"light_omni_set_shadow_detail\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.light_omni_set_shadow_detail\n\n{-# NOINLINE bindVisualServer_light_omni_set_shadow_mode #-}\n\n-- | Sets whether to use a dual paraboloid or a cubemap for the shadow map. Dual paraboloid is faster but may suffer from artifacts. Equivalent to @OmniLight.omni_shadow_mode@.\nbindVisualServer_light_omni_set_shadow_mode :: MethodBind\nbindVisualServer_light_omni_set_shadow_mode\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"light_omni_set_shadow_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether to use a dual paraboloid or a cubemap for the shadow map. Dual paraboloid is faster but may suffer from artifacts. Equivalent to @OmniLight.omni_shadow_mode@.\nlight_omni_set_shadow_mode ::\n                             (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nlight_omni_set_shadow_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_light_omni_set_shadow_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"light_omni_set_shadow_mode\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.light_omni_set_shadow_mode\n\n{-# NOINLINE bindVisualServer_light_set_color #-}\n\n-- | Sets the color of the light. Equivalent to @Light.light_color@.\nbindVisualServer_light_set_color :: MethodBind\nbindVisualServer_light_set_color\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"light_set_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the color of the light. Equivalent to @Light.light_color@.\nlight_set_color ::\n                  (VisualServer :< cls, Object :< cls) =>\n                  cls -> Rid -> Color -> IO ()\nlight_set_color cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_light_set_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"light_set_color\" '[Rid, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.light_set_color\n\n{-# NOINLINE bindVisualServer_light_set_cull_mask #-}\n\n-- | Sets the cull mask for this Light. Lights only affect objects in the selected layers. Equivalent to @Light.light_cull_mask@.\nbindVisualServer_light_set_cull_mask :: MethodBind\nbindVisualServer_light_set_cull_mask\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"light_set_cull_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the cull mask for this Light. Lights only affect objects in the selected layers. Equivalent to @Light.light_cull_mask@.\nlight_set_cull_mask ::\n                      (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nlight_set_cull_mask cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_light_set_cull_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"light_set_cull_mask\" '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.light_set_cull_mask\n\n{-# NOINLINE bindVisualServer_light_set_negative #-}\n\n-- | If @true@, light will subtract light instead of adding light. Equivalent to @Light.light_negative@.\nbindVisualServer_light_set_negative :: MethodBind\nbindVisualServer_light_set_negative\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"light_set_negative\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, light will subtract light instead of adding light. Equivalent to @Light.light_negative@.\nlight_set_negative ::\n                     (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\nlight_set_negative cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_light_set_negative\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"light_set_negative\" '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.light_set_negative\n\n{-# NOINLINE bindVisualServer_light_set_param #-}\n\n-- | Sets the specified light parameter. See @enum LightParam@ for options. Equivalent to @method Light.set_param@.\nbindVisualServer_light_set_param :: MethodBind\nbindVisualServer_light_set_param\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"light_set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the specified light parameter. See @enum LightParam@ for options. Equivalent to @method Light.set_param@.\nlight_set_param ::\n                  (VisualServer :< cls, Object :< cls) =>\n                  cls -> Rid -> Int -> Float -> IO ()\nlight_set_param cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_light_set_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"light_set_param\"\n           '[Rid, Int, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.light_set_param\n\n{-# NOINLINE bindVisualServer_light_set_projector #-}\n\n-- | Not implemented in Godot 3.x.\nbindVisualServer_light_set_projector :: MethodBind\nbindVisualServer_light_set_projector\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"light_set_projector\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Not implemented in Godot 3.x.\nlight_set_projector ::\n                      (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\nlight_set_projector cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_light_set_projector\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"light_set_projector\" '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.light_set_projector\n\n{-# NOINLINE bindVisualServer_light_set_reverse_cull_face_mode #-}\n\n-- | If @true@, reverses the backface culling of the mesh. This can be useful when you have a flat mesh that has a light behind it. If you need to cast a shadow on both sides of the mesh, set the mesh to use double sided shadows with @method instance_geometry_set_cast_shadows_setting@. Equivalent to @Light.shadow_reverse_cull_face@.\nbindVisualServer_light_set_reverse_cull_face_mode :: MethodBind\nbindVisualServer_light_set_reverse_cull_face_mode\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"light_set_reverse_cull_face_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, reverses the backface culling of the mesh. This can be useful when you have a flat mesh that has a light behind it. If you need to cast a shadow on both sides of the mesh, set the mesh to use double sided shadows with @method instance_geometry_set_cast_shadows_setting@. Equivalent to @Light.shadow_reverse_cull_face@.\nlight_set_reverse_cull_face_mode ::\n                                   (VisualServer :< cls, Object :< cls) =>\n                                   cls -> Rid -> Bool -> IO ()\nlight_set_reverse_cull_face_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_light_set_reverse_cull_face_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"light_set_reverse_cull_face_mode\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.light_set_reverse_cull_face_mode\n\n{-# NOINLINE bindVisualServer_light_set_shadow #-}\n\n-- | If @true@, light will cast shadows. Equivalent to @Light.shadow_enabled@.\nbindVisualServer_light_set_shadow :: MethodBind\nbindVisualServer_light_set_shadow\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"light_set_shadow\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, light will cast shadows. Equivalent to @Light.shadow_enabled@.\nlight_set_shadow ::\n                   (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\nlight_set_shadow cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_light_set_shadow\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"light_set_shadow\" '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.light_set_shadow\n\n{-# NOINLINE bindVisualServer_light_set_shadow_color #-}\n\n-- | Sets the color of the shadow cast by the light. Equivalent to @Light.shadow_color@.\nbindVisualServer_light_set_shadow_color :: MethodBind\nbindVisualServer_light_set_shadow_color\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"light_set_shadow_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the color of the shadow cast by the light. Equivalent to @Light.shadow_color@.\nlight_set_shadow_color ::\n                         (VisualServer :< cls, Object :< cls) =>\n                         cls -> Rid -> Color -> IO ()\nlight_set_shadow_color cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_light_set_shadow_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"light_set_shadow_color\"\n           '[Rid, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.light_set_shadow_color\n\n{-# NOINLINE bindVisualServer_light_set_use_gi #-}\n\n-- | Sets whether GI probes capture light information from this light.\nbindVisualServer_light_set_use_gi :: MethodBind\nbindVisualServer_light_set_use_gi\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"light_set_use_gi\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets whether GI probes capture light information from this light.\nlight_set_use_gi ::\n                   (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\nlight_set_use_gi cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_light_set_use_gi\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"light_set_use_gi\" '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.light_set_use_gi\n\n{-# NOINLINE bindVisualServer_lightmap_capture_create #-}\n\n-- | Creates a lightmap capture and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @lightmap_capture_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach this lightmap capture to an instance using @method instance_set_base@ using the returned RID.\nbindVisualServer_lightmap_capture_create :: MethodBind\nbindVisualServer_lightmap_capture_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"lightmap_capture_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a lightmap capture and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @lightmap_capture_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach this lightmap capture to an instance using @method instance_set_base@ using the returned RID.\nlightmap_capture_create ::\n                          (VisualServer :< cls, Object :< cls) => cls -> IO Rid\nlightmap_capture_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_lightmap_capture_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"lightmap_capture_create\" '[]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.lightmap_capture_create\n\n{-# NOINLINE bindVisualServer_lightmap_capture_get_bounds #-}\n\n-- | Returns the size of the lightmap capture area.\nbindVisualServer_lightmap_capture_get_bounds :: MethodBind\nbindVisualServer_lightmap_capture_get_bounds\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"lightmap_capture_get_bounds\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the size of the lightmap capture area.\nlightmap_capture_get_bounds ::\n                              (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Aabb\nlightmap_capture_get_bounds cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_lightmap_capture_get_bounds\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"lightmap_capture_get_bounds\"\n           '[Rid]\n           (IO Aabb)\n         where\n        nodeMethod = Godot.Core.VisualServer.lightmap_capture_get_bounds\n\n{-# NOINLINE bindVisualServer_lightmap_capture_get_energy #-}\n\n-- | Returns the energy multiplier used by the lightmap capture.\nbindVisualServer_lightmap_capture_get_energy :: MethodBind\nbindVisualServer_lightmap_capture_get_energy\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"lightmap_capture_get_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the energy multiplier used by the lightmap capture.\nlightmap_capture_get_energy ::\n                              (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Float\nlightmap_capture_get_energy cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_lightmap_capture_get_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"lightmap_capture_get_energy\"\n           '[Rid]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.VisualServer.lightmap_capture_get_energy\n\n{-# NOINLINE bindVisualServer_lightmap_capture_get_octree #-}\n\n-- | Returns the octree used by the lightmap capture.\nbindVisualServer_lightmap_capture_get_octree :: MethodBind\nbindVisualServer_lightmap_capture_get_octree\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"lightmap_capture_get_octree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the octree used by the lightmap capture.\nlightmap_capture_get_octree ::\n                              (VisualServer :< cls, Object :< cls) =>\n                              cls -> Rid -> IO PoolByteArray\nlightmap_capture_get_octree cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_lightmap_capture_get_octree\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"lightmap_capture_get_octree\"\n           '[Rid]\n           (IO PoolByteArray)\n         where\n        nodeMethod = Godot.Core.VisualServer.lightmap_capture_get_octree\n\n{-# NOINLINE bindVisualServer_lightmap_capture_get_octree_cell_subdiv\n             #-}\n\n-- | Returns the cell subdivision amount used by this lightmap capture's octree.\nbindVisualServer_lightmap_capture_get_octree_cell_subdiv ::\n                                                         MethodBind\nbindVisualServer_lightmap_capture_get_octree_cell_subdiv\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"lightmap_capture_get_octree_cell_subdiv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the cell subdivision amount used by this lightmap capture's octree.\nlightmap_capture_get_octree_cell_subdiv ::\n                                          (VisualServer :< cls, Object :< cls) =>\n                                          cls -> Rid -> IO Int\nlightmap_capture_get_octree_cell_subdiv cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_lightmap_capture_get_octree_cell_subdiv\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"lightmap_capture_get_octree_cell_subdiv\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.lightmap_capture_get_octree_cell_subdiv\n\n{-# NOINLINE bindVisualServer_lightmap_capture_get_octree_cell_transform\n             #-}\n\n-- | Returns the cell transform for this lightmap capture's octree.\nbindVisualServer_lightmap_capture_get_octree_cell_transform ::\n                                                            MethodBind\nbindVisualServer_lightmap_capture_get_octree_cell_transform\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"lightmap_capture_get_octree_cell_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the cell transform for this lightmap capture's octree.\nlightmap_capture_get_octree_cell_transform ::\n                                             (VisualServer :< cls, Object :< cls) =>\n                                             cls -> Rid -> IO Transform\nlightmap_capture_get_octree_cell_transform cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_lightmap_capture_get_octree_cell_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"lightmap_capture_get_octree_cell_transform\"\n           '[Rid]\n           (IO Transform)\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.lightmap_capture_get_octree_cell_transform\n\n{-# NOINLINE bindVisualServer_lightmap_capture_set_bounds #-}\n\n-- | Sets the size of the area covered by the lightmap capture. Equivalent to @BakedLightmapData.bounds@.\nbindVisualServer_lightmap_capture_set_bounds :: MethodBind\nbindVisualServer_lightmap_capture_set_bounds\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"lightmap_capture_set_bounds\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the size of the area covered by the lightmap capture. Equivalent to @BakedLightmapData.bounds@.\nlightmap_capture_set_bounds ::\n                              (VisualServer :< cls, Object :< cls) => cls -> Rid -> Aabb -> IO ()\nlightmap_capture_set_bounds cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_lightmap_capture_set_bounds\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"lightmap_capture_set_bounds\"\n           '[Rid, Aabb]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.lightmap_capture_set_bounds\n\n{-# NOINLINE bindVisualServer_lightmap_capture_set_energy #-}\n\n-- | Sets the energy multiplier for this lightmap capture. Equivalent to @BakedLightmapData.energy@.\nbindVisualServer_lightmap_capture_set_energy :: MethodBind\nbindVisualServer_lightmap_capture_set_energy\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"lightmap_capture_set_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the energy multiplier for this lightmap capture. Equivalent to @BakedLightmapData.energy@.\nlightmap_capture_set_energy ::\n                              (VisualServer :< cls, Object :< cls) =>\n                              cls -> Rid -> Float -> IO ()\nlightmap_capture_set_energy cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_lightmap_capture_set_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"lightmap_capture_set_energy\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.lightmap_capture_set_energy\n\n{-# NOINLINE bindVisualServer_lightmap_capture_set_octree #-}\n\n-- | Sets the octree to be used by this lightmap capture. This function is normally used by the @BakedLightmap@ node. Equivalent to @BakedLightmapData.octree@.\nbindVisualServer_lightmap_capture_set_octree :: MethodBind\nbindVisualServer_lightmap_capture_set_octree\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"lightmap_capture_set_octree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the octree to be used by this lightmap capture. This function is normally used by the @BakedLightmap@ node. Equivalent to @BakedLightmapData.octree@.\nlightmap_capture_set_octree ::\n                              (VisualServer :< cls, Object :< cls) =>\n                              cls -> Rid -> PoolByteArray -> IO ()\nlightmap_capture_set_octree cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_lightmap_capture_set_octree\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"lightmap_capture_set_octree\"\n           '[Rid, PoolByteArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.lightmap_capture_set_octree\n\n{-# NOINLINE bindVisualServer_lightmap_capture_set_octree_cell_subdiv\n             #-}\n\n-- | Sets the subdivision level of this lightmap capture's octree. Equivalent to @BakedLightmapData.cell_subdiv@.\nbindVisualServer_lightmap_capture_set_octree_cell_subdiv ::\n                                                         MethodBind\nbindVisualServer_lightmap_capture_set_octree_cell_subdiv\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"lightmap_capture_set_octree_cell_subdiv\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the subdivision level of this lightmap capture's octree. Equivalent to @BakedLightmapData.cell_subdiv@.\nlightmap_capture_set_octree_cell_subdiv ::\n                                          (VisualServer :< cls, Object :< cls) =>\n                                          cls -> Rid -> Int -> IO ()\nlightmap_capture_set_octree_cell_subdiv cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_lightmap_capture_set_octree_cell_subdiv\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"lightmap_capture_set_octree_cell_subdiv\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.lightmap_capture_set_octree_cell_subdiv\n\n{-# NOINLINE bindVisualServer_lightmap_capture_set_octree_cell_transform\n             #-}\n\n-- | Sets the octree cell transform for this lightmap capture's octree. Equivalent to @BakedLightmapData.cell_space_transform@.\nbindVisualServer_lightmap_capture_set_octree_cell_transform ::\n                                                            MethodBind\nbindVisualServer_lightmap_capture_set_octree_cell_transform\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"lightmap_capture_set_octree_cell_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the octree cell transform for this lightmap capture's octree. Equivalent to @BakedLightmapData.cell_space_transform@.\nlightmap_capture_set_octree_cell_transform ::\n                                             (VisualServer :< cls, Object :< cls) =>\n                                             cls -> Rid -> Transform -> IO ()\nlightmap_capture_set_octree_cell_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_lightmap_capture_set_octree_cell_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"lightmap_capture_set_octree_cell_transform\"\n           '[Rid, Transform]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.lightmap_capture_set_octree_cell_transform\n\n{-# NOINLINE bindVisualServer_make_sphere_mesh #-}\n\n-- | Returns a mesh of a sphere with the given amount of horizontal and vertical subdivisions.\nbindVisualServer_make_sphere_mesh :: MethodBind\nbindVisualServer_make_sphere_mesh\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"make_sphere_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a mesh of a sphere with the given amount of horizontal and vertical subdivisions.\nmake_sphere_mesh ::\n                   (VisualServer :< cls, Object :< cls) =>\n                   cls -> Int -> Int -> Float -> IO Rid\nmake_sphere_mesh cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_make_sphere_mesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"make_sphere_mesh\"\n           '[Int, Int, Float]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.make_sphere_mesh\n\n{-# NOINLINE bindVisualServer_material_create #-}\n\n-- | Creates an empty material and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @material_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nbindVisualServer_material_create :: MethodBind\nbindVisualServer_material_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"material_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates an empty material and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @material_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nmaterial_create ::\n                  (VisualServer :< cls, Object :< cls) => cls -> IO Rid\nmaterial_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_material_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"material_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.material_create\n\n{-# NOINLINE bindVisualServer_material_get_param #-}\n\n-- | Returns the value of a certain material's parameter.\nbindVisualServer_material_get_param :: MethodBind\nbindVisualServer_material_get_param\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"material_get_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of a certain material's parameter.\nmaterial_get_param ::\n                     (VisualServer :< cls, Object :< cls) =>\n                     cls -> Rid -> GodotString -> IO GodotVariant\nmaterial_get_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_material_get_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"material_get_param\"\n           '[Rid, GodotString]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.VisualServer.material_get_param\n\n{-# NOINLINE bindVisualServer_material_get_param_default #-}\n\n-- | Returns the default value for the param if available. Otherwise returns an empty @Variant@.\nbindVisualServer_material_get_param_default :: MethodBind\nbindVisualServer_material_get_param_default\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"material_get_param_default\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the default value for the param if available. Otherwise returns an empty @Variant@.\nmaterial_get_param_default ::\n                             (VisualServer :< cls, Object :< cls) =>\n                             cls -> Rid -> GodotString -> IO GodotVariant\nmaterial_get_param_default cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_material_get_param_default\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"material_get_param_default\"\n           '[Rid, GodotString]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Core.VisualServer.material_get_param_default\n\n{-# NOINLINE bindVisualServer_material_get_shader #-}\n\n-- | Returns the shader of a certain material's shader. Returns an empty RID if the material doesn't have a shader.\nbindVisualServer_material_get_shader :: MethodBind\nbindVisualServer_material_get_shader\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"material_get_shader\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the shader of a certain material's shader. Returns an empty RID if the material doesn't have a shader.\nmaterial_get_shader ::\n                      (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Rid\nmaterial_get_shader cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_material_get_shader\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"material_get_shader\" '[Rid]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.material_get_shader\n\n{-# NOINLINE bindVisualServer_material_set_line_width #-}\n\n-- | Sets a material's line width.\nbindVisualServer_material_set_line_width :: MethodBind\nbindVisualServer_material_set_line_width\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"material_set_line_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a material's line width.\nmaterial_set_line_width ::\n                          (VisualServer :< cls, Object :< cls) =>\n                          cls -> Rid -> Float -> IO ()\nmaterial_set_line_width cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_material_set_line_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"material_set_line_width\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.material_set_line_width\n\n{-# NOINLINE bindVisualServer_material_set_next_pass #-}\n\n-- | Sets an object's next material.\nbindVisualServer_material_set_next_pass :: MethodBind\nbindVisualServer_material_set_next_pass\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"material_set_next_pass\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets an object's next material.\nmaterial_set_next_pass ::\n                         (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\nmaterial_set_next_pass cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_material_set_next_pass\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"material_set_next_pass\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.material_set_next_pass\n\n{-# NOINLINE bindVisualServer_material_set_param #-}\n\n-- | Sets a material's parameter.\nbindVisualServer_material_set_param :: MethodBind\nbindVisualServer_material_set_param\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"material_set_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a material's parameter.\nmaterial_set_param ::\n                     (VisualServer :< cls, Object :< cls) =>\n                     cls -> Rid -> GodotString -> GodotVariant -> IO ()\nmaterial_set_param cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_material_set_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"material_set_param\"\n           '[Rid, GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.material_set_param\n\n{-# NOINLINE bindVisualServer_material_set_render_priority #-}\n\n-- | Sets a material's render priority.\nbindVisualServer_material_set_render_priority :: MethodBind\nbindVisualServer_material_set_render_priority\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"material_set_render_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a material's render priority.\nmaterial_set_render_priority ::\n                               (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nmaterial_set_render_priority cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_material_set_render_priority\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"material_set_render_priority\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.material_set_render_priority\n\n{-# NOINLINE bindVisualServer_material_set_shader #-}\n\n-- | Sets a shader material's shader.\nbindVisualServer_material_set_shader :: MethodBind\nbindVisualServer_material_set_shader\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"material_set_shader\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a shader material's shader.\nmaterial_set_shader ::\n                      (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\nmaterial_set_shader cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_material_set_shader\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"material_set_shader\" '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.material_set_shader\n\n{-# NOINLINE bindVisualServer_mesh_add_surface_from_arrays #-}\n\n-- | Adds a surface generated from the Arrays to a mesh. See @enum PrimitiveType@ constants for types.\nbindVisualServer_mesh_add_surface_from_arrays :: MethodBind\nbindVisualServer_mesh_add_surface_from_arrays\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_add_surface_from_arrays\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a surface generated from the Arrays to a mesh. See @enum PrimitiveType@ constants for types.\nmesh_add_surface_from_arrays ::\n                               (VisualServer :< cls, Object :< cls) =>\n                               cls -> Rid -> Int -> Array -> Maybe Array -> Maybe Int -> IO ()\nmesh_add_surface_from_arrays cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       defaultedVariant VariantArray V.empty arg4,\n       maybe (VariantInt (97280)) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_mesh_add_surface_from_arrays\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_add_surface_from_arrays\"\n           '[Rid, Int, Array, Maybe Array, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_add_surface_from_arrays\n\n{-# NOINLINE bindVisualServer_mesh_clear #-}\n\n-- | Removes all surfaces from a mesh.\nbindVisualServer_mesh_clear :: MethodBind\nbindVisualServer_mesh_clear\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all surfaces from a mesh.\nmesh_clear ::\n             (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO ()\nmesh_clear cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_mesh_clear (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_clear\" '[Rid] (IO ()) where\n        nodeMethod = Godot.Core.VisualServer.mesh_clear\n\n{-# NOINLINE bindVisualServer_mesh_create #-}\n\n-- | Creates a new mesh and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @mesh_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach this mesh to an instance using @method instance_set_base@ using the returned RID.\nbindVisualServer_mesh_create :: MethodBind\nbindVisualServer_mesh_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a new mesh and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @mesh_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach this mesh to an instance using @method instance_set_base@ using the returned RID.\nmesh_create ::\n              (VisualServer :< cls, Object :< cls) => cls -> IO Rid\nmesh_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_mesh_create (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_create\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.VisualServer.mesh_create\n\n{-# NOINLINE bindVisualServer_mesh_get_blend_shape_count #-}\n\n-- | Returns a mesh's blend shape count.\nbindVisualServer_mesh_get_blend_shape_count :: MethodBind\nbindVisualServer_mesh_get_blend_shape_count\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_get_blend_shape_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a mesh's blend shape count.\nmesh_get_blend_shape_count ::\n                             (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nmesh_get_blend_shape_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_mesh_get_blend_shape_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_get_blend_shape_count\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_get_blend_shape_count\n\n{-# NOINLINE bindVisualServer_mesh_get_blend_shape_mode #-}\n\n-- | Returns a mesh's blend shape mode.\nbindVisualServer_mesh_get_blend_shape_mode :: MethodBind\nbindVisualServer_mesh_get_blend_shape_mode\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_get_blend_shape_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a mesh's blend shape mode.\nmesh_get_blend_shape_mode ::\n                            (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nmesh_get_blend_shape_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_mesh_get_blend_shape_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_get_blend_shape_mode\" '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_get_blend_shape_mode\n\n{-# NOINLINE bindVisualServer_mesh_get_custom_aabb #-}\n\n-- | Returns a mesh's custom aabb.\nbindVisualServer_mesh_get_custom_aabb :: MethodBind\nbindVisualServer_mesh_get_custom_aabb\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_get_custom_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a mesh's custom aabb.\nmesh_get_custom_aabb ::\n                       (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Aabb\nmesh_get_custom_aabb cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_mesh_get_custom_aabb\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_get_custom_aabb\" '[Rid]\n           (IO Aabb)\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_get_custom_aabb\n\n{-# NOINLINE bindVisualServer_mesh_get_surface_count #-}\n\n-- | Returns a mesh's number of surfaces.\nbindVisualServer_mesh_get_surface_count :: MethodBind\nbindVisualServer_mesh_get_surface_count\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_get_surface_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a mesh's number of surfaces.\nmesh_get_surface_count ::\n                         (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nmesh_get_surface_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_mesh_get_surface_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_get_surface_count\" '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_get_surface_count\n\n{-# NOINLINE bindVisualServer_mesh_remove_surface #-}\n\n-- | Removes a mesh's surface.\nbindVisualServer_mesh_remove_surface :: MethodBind\nbindVisualServer_mesh_remove_surface\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_remove_surface\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a mesh's surface.\nmesh_remove_surface ::\n                      (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nmesh_remove_surface cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_mesh_remove_surface\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_remove_surface\" '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_remove_surface\n\n{-# NOINLINE bindVisualServer_mesh_set_blend_shape_count #-}\n\n-- | Sets a mesh's blend shape count.\nbindVisualServer_mesh_set_blend_shape_count :: MethodBind\nbindVisualServer_mesh_set_blend_shape_count\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_set_blend_shape_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a mesh's blend shape count.\nmesh_set_blend_shape_count ::\n                             (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nmesh_set_blend_shape_count cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_mesh_set_blend_shape_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_set_blend_shape_count\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_set_blend_shape_count\n\n{-# NOINLINE bindVisualServer_mesh_set_blend_shape_mode #-}\n\n-- | Sets a mesh's blend shape mode.\nbindVisualServer_mesh_set_blend_shape_mode :: MethodBind\nbindVisualServer_mesh_set_blend_shape_mode\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_set_blend_shape_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a mesh's blend shape mode.\nmesh_set_blend_shape_mode ::\n                            (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nmesh_set_blend_shape_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_mesh_set_blend_shape_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_set_blend_shape_mode\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_set_blend_shape_mode\n\n{-# NOINLINE bindVisualServer_mesh_set_custom_aabb #-}\n\n-- | Sets a mesh's custom aabb.\nbindVisualServer_mesh_set_custom_aabb :: MethodBind\nbindVisualServer_mesh_set_custom_aabb\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_set_custom_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a mesh's custom aabb.\nmesh_set_custom_aabb ::\n                       (VisualServer :< cls, Object :< cls) => cls -> Rid -> Aabb -> IO ()\nmesh_set_custom_aabb cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_mesh_set_custom_aabb\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_set_custom_aabb\"\n           '[Rid, Aabb]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_set_custom_aabb\n\n{-# NOINLINE bindVisualServer_mesh_surface_get_aabb #-}\n\n-- | Returns a mesh's surface's aabb.\nbindVisualServer_mesh_surface_get_aabb :: MethodBind\nbindVisualServer_mesh_surface_get_aabb\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_surface_get_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a mesh's surface's aabb.\nmesh_surface_get_aabb ::\n                        (VisualServer :< cls, Object :< cls) =>\n                        cls -> Rid -> Int -> IO Aabb\nmesh_surface_get_aabb cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_mesh_surface_get_aabb\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_surface_get_aabb\"\n           '[Rid, Int]\n           (IO Aabb)\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_surface_get_aabb\n\n{-# NOINLINE bindVisualServer_mesh_surface_get_array #-}\n\n-- | Returns a mesh's surface's vertex buffer.\nbindVisualServer_mesh_surface_get_array :: MethodBind\nbindVisualServer_mesh_surface_get_array\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_surface_get_array\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a mesh's surface's vertex buffer.\nmesh_surface_get_array ::\n                         (VisualServer :< cls, Object :< cls) =>\n                         cls -> Rid -> Int -> IO PoolByteArray\nmesh_surface_get_array cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_mesh_surface_get_array\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_surface_get_array\"\n           '[Rid, Int]\n           (IO PoolByteArray)\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_surface_get_array\n\n{-# NOINLINE bindVisualServer_mesh_surface_get_array_index_len #-}\n\n-- | Returns a mesh's surface's amount of indices.\nbindVisualServer_mesh_surface_get_array_index_len :: MethodBind\nbindVisualServer_mesh_surface_get_array_index_len\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_surface_get_array_index_len\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a mesh's surface's amount of indices.\nmesh_surface_get_array_index_len ::\n                                   (VisualServer :< cls, Object :< cls) =>\n                                   cls -> Rid -> Int -> IO Int\nmesh_surface_get_array_index_len cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_mesh_surface_get_array_index_len\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_surface_get_array_index_len\"\n           '[Rid, Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.mesh_surface_get_array_index_len\n\n{-# NOINLINE bindVisualServer_mesh_surface_get_array_len #-}\n\n-- | Returns a mesh's surface's amount of vertices.\nbindVisualServer_mesh_surface_get_array_len :: MethodBind\nbindVisualServer_mesh_surface_get_array_len\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_surface_get_array_len\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a mesh's surface's amount of vertices.\nmesh_surface_get_array_len ::\n                             (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO Int\nmesh_surface_get_array_len cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_mesh_surface_get_array_len\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_surface_get_array_len\"\n           '[Rid, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_surface_get_array_len\n\n{-# NOINLINE bindVisualServer_mesh_surface_get_arrays #-}\n\n-- | Returns a mesh's surface's buffer arrays.\nbindVisualServer_mesh_surface_get_arrays :: MethodBind\nbindVisualServer_mesh_surface_get_arrays\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_surface_get_arrays\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a mesh's surface's buffer arrays.\nmesh_surface_get_arrays ::\n                          (VisualServer :< cls, Object :< cls) =>\n                          cls -> Rid -> Int -> IO Array\nmesh_surface_get_arrays cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_mesh_surface_get_arrays\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_surface_get_arrays\"\n           '[Rid, Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_surface_get_arrays\n\n{-# NOINLINE bindVisualServer_mesh_surface_get_blend_shape_arrays\n             #-}\n\n-- | Returns a mesh's surface's arrays for blend shapes.\nbindVisualServer_mesh_surface_get_blend_shape_arrays :: MethodBind\nbindVisualServer_mesh_surface_get_blend_shape_arrays\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_surface_get_blend_shape_arrays\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a mesh's surface's arrays for blend shapes.\nmesh_surface_get_blend_shape_arrays ::\n                                      (VisualServer :< cls, Object :< cls) =>\n                                      cls -> Rid -> Int -> IO Array\nmesh_surface_get_blend_shape_arrays cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_mesh_surface_get_blend_shape_arrays\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"mesh_surface_get_blend_shape_arrays\"\n           '[Rid, Int]\n           (IO Array)\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.mesh_surface_get_blend_shape_arrays\n\n{-# NOINLINE bindVisualServer_mesh_surface_get_format #-}\n\n-- | Returns the format of a mesh's surface.\nbindVisualServer_mesh_surface_get_format :: MethodBind\nbindVisualServer_mesh_surface_get_format\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_surface_get_format\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the format of a mesh's surface.\nmesh_surface_get_format ::\n                          (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO Int\nmesh_surface_get_format cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_mesh_surface_get_format\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_surface_get_format\"\n           '[Rid, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_surface_get_format\n\n{-# NOINLINE bindVisualServer_mesh_surface_get_format_offset #-}\n\n-- | Function is unused in Godot 3.x.\nbindVisualServer_mesh_surface_get_format_offset :: MethodBind\nbindVisualServer_mesh_surface_get_format_offset\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_surface_get_format_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Function is unused in Godot 3.x.\nmesh_surface_get_format_offset ::\n                                 (VisualServer :< cls, Object :< cls) =>\n                                 cls -> Int -> Int -> Int -> Int -> IO Int\nmesh_surface_get_format_offset cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_mesh_surface_get_format_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_surface_get_format_offset\"\n           '[Int, Int, Int, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_surface_get_format_offset\n\n{-# NOINLINE bindVisualServer_mesh_surface_get_format_stride #-}\n\n-- | Function is unused in Godot 3.x.\nbindVisualServer_mesh_surface_get_format_stride :: MethodBind\nbindVisualServer_mesh_surface_get_format_stride\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_surface_get_format_stride\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Function is unused in Godot 3.x.\nmesh_surface_get_format_stride ::\n                                 (VisualServer :< cls, Object :< cls) =>\n                                 cls -> Int -> Int -> Int -> IO Int\nmesh_surface_get_format_stride cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_mesh_surface_get_format_stride\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_surface_get_format_stride\"\n           '[Int, Int, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_surface_get_format_stride\n\n{-# NOINLINE bindVisualServer_mesh_surface_get_index_array #-}\n\n-- | Returns a mesh's surface's index buffer.\nbindVisualServer_mesh_surface_get_index_array :: MethodBind\nbindVisualServer_mesh_surface_get_index_array\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_surface_get_index_array\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a mesh's surface's index buffer.\nmesh_surface_get_index_array ::\n                               (VisualServer :< cls, Object :< cls) =>\n                               cls -> Rid -> Int -> IO PoolByteArray\nmesh_surface_get_index_array cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_mesh_surface_get_index_array\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_surface_get_index_array\"\n           '[Rid, Int]\n           (IO PoolByteArray)\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_surface_get_index_array\n\n{-# NOINLINE bindVisualServer_mesh_surface_get_material #-}\n\n-- | Returns a mesh's surface's material.\nbindVisualServer_mesh_surface_get_material :: MethodBind\nbindVisualServer_mesh_surface_get_material\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_surface_get_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a mesh's surface's material.\nmesh_surface_get_material ::\n                            (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO Rid\nmesh_surface_get_material cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_mesh_surface_get_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_surface_get_material\"\n           '[Rid, Int]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_surface_get_material\n\n{-# NOINLINE bindVisualServer_mesh_surface_get_primitive_type #-}\n\n-- | Returns the primitive type of a mesh's surface.\nbindVisualServer_mesh_surface_get_primitive_type :: MethodBind\nbindVisualServer_mesh_surface_get_primitive_type\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_surface_get_primitive_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the primitive type of a mesh's surface.\nmesh_surface_get_primitive_type ::\n                                  (VisualServer :< cls, Object :< cls) =>\n                                  cls -> Rid -> Int -> IO Int\nmesh_surface_get_primitive_type cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_mesh_surface_get_primitive_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_surface_get_primitive_type\"\n           '[Rid, Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.mesh_surface_get_primitive_type\n\n{-# NOINLINE bindVisualServer_mesh_surface_get_skeleton_aabb #-}\n\n-- | Returns the aabb of a mesh's surface's skeleton.\nbindVisualServer_mesh_surface_get_skeleton_aabb :: MethodBind\nbindVisualServer_mesh_surface_get_skeleton_aabb\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_surface_get_skeleton_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the aabb of a mesh's surface's skeleton.\nmesh_surface_get_skeleton_aabb ::\n                                 (VisualServer :< cls, Object :< cls) =>\n                                 cls -> Rid -> Int -> IO Array\nmesh_surface_get_skeleton_aabb cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_mesh_surface_get_skeleton_aabb\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_surface_get_skeleton_aabb\"\n           '[Rid, Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_surface_get_skeleton_aabb\n\n{-# NOINLINE bindVisualServer_mesh_surface_set_material #-}\n\n-- | Sets a mesh's surface's material.\nbindVisualServer_mesh_surface_set_material :: MethodBind\nbindVisualServer_mesh_surface_set_material\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_surface_set_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a mesh's surface's material.\nmesh_surface_set_material ::\n                            (VisualServer :< cls, Object :< cls) =>\n                            cls -> Rid -> Int -> Rid -> IO ()\nmesh_surface_set_material cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_mesh_surface_set_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_surface_set_material\"\n           '[Rid, Int, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_surface_set_material\n\n{-# NOINLINE bindVisualServer_mesh_surface_update_region #-}\n\n-- | Updates a specific region of a vertex buffer for the specified surface. Warning: this function alters the vertex buffer directly with no safety mechanisms, you can easily corrupt your mesh.\nbindVisualServer_mesh_surface_update_region :: MethodBind\nbindVisualServer_mesh_surface_update_region\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"mesh_surface_update_region\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Updates a specific region of a vertex buffer for the specified surface. Warning: this function alters the vertex buffer directly with no safety mechanisms, you can easily corrupt your mesh.\nmesh_surface_update_region ::\n                             (VisualServer :< cls, Object :< cls) =>\n                             cls -> Rid -> Int -> Int -> PoolByteArray -> IO ()\nmesh_surface_update_region cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_mesh_surface_update_region\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"mesh_surface_update_region\"\n           '[Rid, Int, Int, PoolByteArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.mesh_surface_update_region\n\n{-# NOINLINE bindVisualServer_multimesh_allocate #-}\n\n-- | Allocates space for the multimesh data. Format parameters determine how the data will be stored by OpenGL. See @enum MultimeshTransformFormat@, @enum MultimeshColorFormat@, and @enum MultimeshCustomDataFormat@ for usage. Equivalent to @MultiMesh.instance_count@.\nbindVisualServer_multimesh_allocate :: MethodBind\nbindVisualServer_multimesh_allocate\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"multimesh_allocate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Allocates space for the multimesh data. Format parameters determine how the data will be stored by OpenGL. See @enum MultimeshTransformFormat@, @enum MultimeshColorFormat@, and @enum MultimeshCustomDataFormat@ for usage. Equivalent to @MultiMesh.instance_count@.\nmultimesh_allocate ::\n                     (VisualServer :< cls, Object :< cls) =>\n                     cls -> Rid -> Int -> Int -> Int -> Maybe Int -> IO ()\nmultimesh_allocate cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       maybe (VariantInt (0)) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_multimesh_allocate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"multimesh_allocate\"\n           '[Rid, Int, Int, Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.multimesh_allocate\n\n{-# NOINLINE bindVisualServer_multimesh_create #-}\n\n-- | Creates a new multimesh on the VisualServer and returns an @RID@ handle. This RID will be used in all @multimesh_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach this multimesh to an instance using @method instance_set_base@ using the returned RID.\nbindVisualServer_multimesh_create :: MethodBind\nbindVisualServer_multimesh_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"multimesh_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a new multimesh on the VisualServer and returns an @RID@ handle. This RID will be used in all @multimesh_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach this multimesh to an instance using @method instance_set_base@ using the returned RID.\nmultimesh_create ::\n                   (VisualServer :< cls, Object :< cls) => cls -> IO Rid\nmultimesh_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_multimesh_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"multimesh_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.multimesh_create\n\n{-# NOINLINE bindVisualServer_multimesh_get_aabb #-}\n\n-- | Calculates and returns the axis-aligned bounding box that encloses all instances within the multimesh.\nbindVisualServer_multimesh_get_aabb :: MethodBind\nbindVisualServer_multimesh_get_aabb\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"multimesh_get_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calculates and returns the axis-aligned bounding box that encloses all instances within the multimesh.\nmultimesh_get_aabb ::\n                     (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Aabb\nmultimesh_get_aabb cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_multimesh_get_aabb\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"multimesh_get_aabb\" '[Rid]\n           (IO Aabb)\n         where\n        nodeMethod = Godot.Core.VisualServer.multimesh_get_aabb\n\n{-# NOINLINE bindVisualServer_multimesh_get_instance_count #-}\n\n-- | Returns the number of instances allocated for this multimesh.\nbindVisualServer_multimesh_get_instance_count :: MethodBind\nbindVisualServer_multimesh_get_instance_count\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"multimesh_get_instance_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of instances allocated for this multimesh.\nmultimesh_get_instance_count ::\n                               (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nmultimesh_get_instance_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_multimesh_get_instance_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"multimesh_get_instance_count\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.multimesh_get_instance_count\n\n{-# NOINLINE bindVisualServer_multimesh_get_mesh #-}\n\n-- | Returns the RID of the mesh that will be used in drawing this multimesh.\nbindVisualServer_multimesh_get_mesh :: MethodBind\nbindVisualServer_multimesh_get_mesh\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"multimesh_get_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the RID of the mesh that will be used in drawing this multimesh.\nmultimesh_get_mesh ::\n                     (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Rid\nmultimesh_get_mesh cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_multimesh_get_mesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"multimesh_get_mesh\" '[Rid]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.multimesh_get_mesh\n\n{-# NOINLINE bindVisualServer_multimesh_get_visible_instances #-}\n\n-- | Returns the number of visible instances for this multimesh.\nbindVisualServer_multimesh_get_visible_instances :: MethodBind\nbindVisualServer_multimesh_get_visible_instances\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"multimesh_get_visible_instances\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of visible instances for this multimesh.\nmultimesh_get_visible_instances ::\n                                  (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nmultimesh_get_visible_instances cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_multimesh_get_visible_instances\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"multimesh_get_visible_instances\"\n           '[Rid]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.multimesh_get_visible_instances\n\n{-# NOINLINE bindVisualServer_multimesh_instance_get_color #-}\n\n-- | Returns the color by which the specified instance will be modulated.\nbindVisualServer_multimesh_instance_get_color :: MethodBind\nbindVisualServer_multimesh_instance_get_color\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"multimesh_instance_get_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the color by which the specified instance will be modulated.\nmultimesh_instance_get_color ::\n                               (VisualServer :< cls, Object :< cls) =>\n                               cls -> Rid -> Int -> IO Color\nmultimesh_instance_get_color cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_multimesh_instance_get_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"multimesh_instance_get_color\"\n           '[Rid, Int]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.VisualServer.multimesh_instance_get_color\n\n{-# NOINLINE bindVisualServer_multimesh_instance_get_custom_data\n             #-}\n\n-- | Returns the custom data associated with the specified instance.\nbindVisualServer_multimesh_instance_get_custom_data :: MethodBind\nbindVisualServer_multimesh_instance_get_custom_data\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"multimesh_instance_get_custom_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the custom data associated with the specified instance.\nmultimesh_instance_get_custom_data ::\n                                     (VisualServer :< cls, Object :< cls) =>\n                                     cls -> Rid -> Int -> IO Color\nmultimesh_instance_get_custom_data cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_multimesh_instance_get_custom_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"multimesh_instance_get_custom_data\"\n           '[Rid, Int]\n           (IO Color)\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.multimesh_instance_get_custom_data\n\n{-# NOINLINE bindVisualServer_multimesh_instance_get_transform #-}\n\n-- | Returns the @Transform@ of the specified instance.\nbindVisualServer_multimesh_instance_get_transform :: MethodBind\nbindVisualServer_multimesh_instance_get_transform\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"multimesh_instance_get_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Transform@ of the specified instance.\nmultimesh_instance_get_transform ::\n                                   (VisualServer :< cls, Object :< cls) =>\n                                   cls -> Rid -> Int -> IO Transform\nmultimesh_instance_get_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_multimesh_instance_get_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"multimesh_instance_get_transform\"\n           '[Rid, Int]\n           (IO Transform)\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.multimesh_instance_get_transform\n\n{-# NOINLINE bindVisualServer_multimesh_instance_get_transform_2d\n             #-}\n\n-- | Returns the @Transform2D@ of the specified instance. For use when the multimesh is set to use 2D transforms.\nbindVisualServer_multimesh_instance_get_transform_2d :: MethodBind\nbindVisualServer_multimesh_instance_get_transform_2d\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"multimesh_instance_get_transform_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Transform2D@ of the specified instance. For use when the multimesh is set to use 2D transforms.\nmultimesh_instance_get_transform_2d ::\n                                      (VisualServer :< cls, Object :< cls) =>\n                                      cls -> Rid -> Int -> IO Transform2d\nmultimesh_instance_get_transform_2d cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_multimesh_instance_get_transform_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"multimesh_instance_get_transform_2d\"\n           '[Rid, Int]\n           (IO Transform2d)\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.multimesh_instance_get_transform_2d\n\n{-# NOINLINE bindVisualServer_multimesh_instance_set_color #-}\n\n-- | Sets the color by which this instance will be modulated. Equivalent to @method MultiMesh.set_instance_color@.\nbindVisualServer_multimesh_instance_set_color :: MethodBind\nbindVisualServer_multimesh_instance_set_color\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"multimesh_instance_set_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the color by which this instance will be modulated. Equivalent to @method MultiMesh.set_instance_color@.\nmultimesh_instance_set_color ::\n                               (VisualServer :< cls, Object :< cls) =>\n                               cls -> Rid -> Int -> Color -> IO ()\nmultimesh_instance_set_color cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_multimesh_instance_set_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"multimesh_instance_set_color\"\n           '[Rid, Int, Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.multimesh_instance_set_color\n\n{-# NOINLINE bindVisualServer_multimesh_instance_set_custom_data\n             #-}\n\n-- | Sets the custom data for this instance. Custom data is passed as a @Color@, but is interpreted as a @vec4@ in the shader. Equivalent to @method MultiMesh.set_instance_custom_data@.\nbindVisualServer_multimesh_instance_set_custom_data :: MethodBind\nbindVisualServer_multimesh_instance_set_custom_data\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"multimesh_instance_set_custom_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the custom data for this instance. Custom data is passed as a @Color@, but is interpreted as a @vec4@ in the shader. Equivalent to @method MultiMesh.set_instance_custom_data@.\nmultimesh_instance_set_custom_data ::\n                                     (VisualServer :< cls, Object :< cls) =>\n                                     cls -> Rid -> Int -> Color -> IO ()\nmultimesh_instance_set_custom_data cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_multimesh_instance_set_custom_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"multimesh_instance_set_custom_data\"\n           '[Rid, Int, Color]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.multimesh_instance_set_custom_data\n\n{-# NOINLINE bindVisualServer_multimesh_instance_set_transform #-}\n\n-- | Sets the @Transform@ for this instance. Equivalent to @method MultiMesh.set_instance_transform@.\nbindVisualServer_multimesh_instance_set_transform :: MethodBind\nbindVisualServer_multimesh_instance_set_transform\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"multimesh_instance_set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Transform@ for this instance. Equivalent to @method MultiMesh.set_instance_transform@.\nmultimesh_instance_set_transform ::\n                                   (VisualServer :< cls, Object :< cls) =>\n                                   cls -> Rid -> Int -> Transform -> IO ()\nmultimesh_instance_set_transform cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_multimesh_instance_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"multimesh_instance_set_transform\"\n           '[Rid, Int, Transform]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.multimesh_instance_set_transform\n\n{-# NOINLINE bindVisualServer_multimesh_instance_set_transform_2d\n             #-}\n\n-- | Sets the @Transform2D@ for this instance. For use when multimesh is used in 2D. Equivalent to @method MultiMesh.set_instance_transform_2d@.\nbindVisualServer_multimesh_instance_set_transform_2d :: MethodBind\nbindVisualServer_multimesh_instance_set_transform_2d\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"multimesh_instance_set_transform_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Transform2D@ for this instance. For use when multimesh is used in 2D. Equivalent to @method MultiMesh.set_instance_transform_2d@.\nmultimesh_instance_set_transform_2d ::\n                                      (VisualServer :< cls, Object :< cls) =>\n                                      cls -> Rid -> Int -> Transform2d -> IO ()\nmultimesh_instance_set_transform_2d cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_multimesh_instance_set_transform_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"multimesh_instance_set_transform_2d\"\n           '[Rid, Int, Transform2d]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.multimesh_instance_set_transform_2d\n\n{-# NOINLINE bindVisualServer_multimesh_set_as_bulk_array #-}\n\n-- | Sets all data related to the instances in one go. This is especially useful when loading the data from disk or preparing the data from GDNative.\n--   \n--   \t\t\t\tAll data is packed in one large float array. An array may look like this: Transform for instance 1, color data for instance 1, custom data for instance 1, transform for instance 2, color data for instance 2, etc.\n--   \n--   \t\t\t\t@Transform@ is stored as 12 floats, @Transform2D@ is stored as 8 floats, @COLOR_8BIT@ / @CUSTOM_DATA_8BIT@ is stored as 1 float (4 bytes as is) and @COLOR_FLOAT@ / @CUSTOM_DATA_FLOAT@ is stored as 4 floats.\nbindVisualServer_multimesh_set_as_bulk_array :: MethodBind\nbindVisualServer_multimesh_set_as_bulk_array\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"multimesh_set_as_bulk_array\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets all data related to the instances in one go. This is especially useful when loading the data from disk or preparing the data from GDNative.\n--   \n--   \t\t\t\tAll data is packed in one large float array. An array may look like this: Transform for instance 1, color data for instance 1, custom data for instance 1, transform for instance 2, color data for instance 2, etc.\n--   \n--   \t\t\t\t@Transform@ is stored as 12 floats, @Transform2D@ is stored as 8 floats, @COLOR_8BIT@ / @CUSTOM_DATA_8BIT@ is stored as 1 float (4 bytes as is) and @COLOR_FLOAT@ / @CUSTOM_DATA_FLOAT@ is stored as 4 floats.\nmultimesh_set_as_bulk_array ::\n                              (VisualServer :< cls, Object :< cls) =>\n                              cls -> Rid -> PoolRealArray -> IO ()\nmultimesh_set_as_bulk_array cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_multimesh_set_as_bulk_array\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"multimesh_set_as_bulk_array\"\n           '[Rid, PoolRealArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.multimesh_set_as_bulk_array\n\n{-# NOINLINE bindVisualServer_multimesh_set_mesh #-}\n\n-- | Sets the mesh to be drawn by the multimesh. Equivalent to @MultiMesh.mesh@.\nbindVisualServer_multimesh_set_mesh :: MethodBind\nbindVisualServer_multimesh_set_mesh\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"multimesh_set_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the mesh to be drawn by the multimesh. Equivalent to @MultiMesh.mesh@.\nmultimesh_set_mesh ::\n                     (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\nmultimesh_set_mesh cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_multimesh_set_mesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"multimesh_set_mesh\" '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.multimesh_set_mesh\n\n{-# NOINLINE bindVisualServer_multimesh_set_visible_instances #-}\n\n-- | Sets the number of instances visible at a given time. If -1, all instances that have been allocated are drawn. Equivalent to @MultiMesh.visible_instance_count@.\nbindVisualServer_multimesh_set_visible_instances :: MethodBind\nbindVisualServer_multimesh_set_visible_instances\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"multimesh_set_visible_instances\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the number of instances visible at a given time. If -1, all instances that have been allocated are drawn. Equivalent to @MultiMesh.visible_instance_count@.\nmultimesh_set_visible_instances ::\n                                  (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nmultimesh_set_visible_instances cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_multimesh_set_visible_instances\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"multimesh_set_visible_instances\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.multimesh_set_visible_instances\n\n{-# NOINLINE bindVisualServer_omni_light_create #-}\n\n-- | Creates a new omni light and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID can be used in most @light_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach this omni light to an instance using @method instance_set_base@ using the returned RID.\nbindVisualServer_omni_light_create :: MethodBind\nbindVisualServer_omni_light_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"omni_light_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a new omni light and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID can be used in most @light_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach this omni light to an instance using @method instance_set_base@ using the returned RID.\nomni_light_create ::\n                    (VisualServer :< cls, Object :< cls) => cls -> IO Rid\nomni_light_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_omni_light_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"omni_light_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.omni_light_create\n\n{-# NOINLINE bindVisualServer_particles_create #-}\n\n-- | Creates a particle system and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @particles_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach these particles to an instance using @method instance_set_base@ using the returned RID.\nbindVisualServer_particles_create :: MethodBind\nbindVisualServer_particles_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a particle system and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @particles_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach these particles to an instance using @method instance_set_base@ using the returned RID.\nparticles_create ::\n                   (VisualServer :< cls, Object :< cls) => cls -> IO Rid\nparticles_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_particles_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_create\n\n{-# NOINLINE bindVisualServer_particles_get_current_aabb #-}\n\n-- | Calculates and returns the axis-aligned bounding box that contains all the particles. Equivalent to @method Particles.capture_aabb@.\nbindVisualServer_particles_get_current_aabb :: MethodBind\nbindVisualServer_particles_get_current_aabb\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_get_current_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Calculates and returns the axis-aligned bounding box that contains all the particles. Equivalent to @method Particles.capture_aabb@.\nparticles_get_current_aabb ::\n                             (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Aabb\nparticles_get_current_aabb cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_particles_get_current_aabb\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_get_current_aabb\"\n           '[Rid]\n           (IO Aabb)\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_get_current_aabb\n\n{-# NOINLINE bindVisualServer_particles_get_emitting #-}\n\n-- | Returns @true@ if particles are currently set to emitting.\nbindVisualServer_particles_get_emitting :: MethodBind\nbindVisualServer_particles_get_emitting\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_get_emitting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if particles are currently set to emitting.\nparticles_get_emitting ::\n                         (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Bool\nparticles_get_emitting cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_particles_get_emitting\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_get_emitting\" '[Rid]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_get_emitting\n\n{-# NOINLINE bindVisualServer_particles_is_inactive #-}\n\n-- | Returns @true@ if particles are not emitting and particles are set to inactive.\nbindVisualServer_particles_is_inactive :: MethodBind\nbindVisualServer_particles_is_inactive\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_is_inactive\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if particles are not emitting and particles are set to inactive.\nparticles_is_inactive ::\n                        (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Bool\nparticles_is_inactive cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_particles_is_inactive\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_is_inactive\" '[Rid]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_is_inactive\n\n{-# NOINLINE bindVisualServer_particles_request_process #-}\n\n-- | Add particle system to list of particle systems that need to be updated. Update will take place on the next frame, or on the next call to @method instances_cull_aabb@, @method instances_cull_convex@, or @method instances_cull_ray@.\nbindVisualServer_particles_request_process :: MethodBind\nbindVisualServer_particles_request_process\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_request_process\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Add particle system to list of particle systems that need to be updated. Update will take place on the next frame, or on the next call to @method instances_cull_aabb@, @method instances_cull_convex@, or @method instances_cull_ray@.\nparticles_request_process ::\n                            (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO ()\nparticles_request_process cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_particles_request_process\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_request_process\" '[Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_request_process\n\n{-# NOINLINE bindVisualServer_particles_restart #-}\n\n-- | Reset the particles on the next update. Equivalent to @method Particles.restart@.\nbindVisualServer_particles_restart :: MethodBind\nbindVisualServer_particles_restart\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_restart\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Reset the particles on the next update. Equivalent to @method Particles.restart@.\nparticles_restart ::\n                    (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO ()\nparticles_restart cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_particles_restart\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_restart\" '[Rid] (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_restart\n\n{-# NOINLINE bindVisualServer_particles_set_amount #-}\n\n-- | Sets the number of particles to be drawn and allocates the memory for them. Equivalent to @Particles.amount@.\nbindVisualServer_particles_set_amount :: MethodBind\nbindVisualServer_particles_set_amount\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_set_amount\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the number of particles to be drawn and allocates the memory for them. Equivalent to @Particles.amount@.\nparticles_set_amount ::\n                       (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nparticles_set_amount cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_particles_set_amount\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_set_amount\" '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_set_amount\n\n{-# NOINLINE bindVisualServer_particles_set_custom_aabb #-}\n\n-- | Sets a custom axis-aligned bounding box for the particle system. Equivalent to @Particles.visibility_aabb@.\nbindVisualServer_particles_set_custom_aabb :: MethodBind\nbindVisualServer_particles_set_custom_aabb\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_set_custom_aabb\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a custom axis-aligned bounding box for the particle system. Equivalent to @Particles.visibility_aabb@.\nparticles_set_custom_aabb ::\n                            (VisualServer :< cls, Object :< cls) => cls -> Rid -> Aabb -> IO ()\nparticles_set_custom_aabb cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_particles_set_custom_aabb\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_set_custom_aabb\"\n           '[Rid, Aabb]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_set_custom_aabb\n\n{-# NOINLINE bindVisualServer_particles_set_draw_order #-}\n\n-- | Sets the draw order of the particles to one of the named enums from @enum ParticlesDrawOrder@. See @enum ParticlesDrawOrder@ for options. Equivalent to @Particles.draw_order@.\nbindVisualServer_particles_set_draw_order :: MethodBind\nbindVisualServer_particles_set_draw_order\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_set_draw_order\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the draw order of the particles to one of the named enums from @enum ParticlesDrawOrder@. See @enum ParticlesDrawOrder@ for options. Equivalent to @Particles.draw_order@.\nparticles_set_draw_order ::\n                           (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nparticles_set_draw_order cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_particles_set_draw_order\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_set_draw_order\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_set_draw_order\n\n{-# NOINLINE bindVisualServer_particles_set_draw_pass_mesh #-}\n\n-- | Sets the mesh to be used for the specified draw pass. Equivalent to @Particles.draw_pass_1@, @Particles.draw_pass_2@, @Particles.draw_pass_3@, and @Particles.draw_pass_4@.\nbindVisualServer_particles_set_draw_pass_mesh :: MethodBind\nbindVisualServer_particles_set_draw_pass_mesh\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_set_draw_pass_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the mesh to be used for the specified draw pass. Equivalent to @Particles.draw_pass_1@, @Particles.draw_pass_2@, @Particles.draw_pass_3@, and @Particles.draw_pass_4@.\nparticles_set_draw_pass_mesh ::\n                               (VisualServer :< cls, Object :< cls) =>\n                               cls -> Rid -> Int -> Rid -> IO ()\nparticles_set_draw_pass_mesh cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_particles_set_draw_pass_mesh\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_set_draw_pass_mesh\"\n           '[Rid, Int, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_set_draw_pass_mesh\n\n{-# NOINLINE bindVisualServer_particles_set_draw_passes #-}\n\n-- | Sets the number of draw passes to use. Equivalent to @Particles.draw_passes@.\nbindVisualServer_particles_set_draw_passes :: MethodBind\nbindVisualServer_particles_set_draw_passes\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_set_draw_passes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the number of draw passes to use. Equivalent to @Particles.draw_passes@.\nparticles_set_draw_passes ::\n                            (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nparticles_set_draw_passes cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_particles_set_draw_passes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_set_draw_passes\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_set_draw_passes\n\n{-# NOINLINE bindVisualServer_particles_set_emission_transform #-}\n\n-- | Sets the @Transform@ that will be used by the particles when they first emit.\nbindVisualServer_particles_set_emission_transform :: MethodBind\nbindVisualServer_particles_set_emission_transform\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_set_emission_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Transform@ that will be used by the particles when they first emit.\nparticles_set_emission_transform ::\n                                   (VisualServer :< cls, Object :< cls) =>\n                                   cls -> Rid -> Transform -> IO ()\nparticles_set_emission_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_particles_set_emission_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_set_emission_transform\"\n           '[Rid, Transform]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.particles_set_emission_transform\n\n{-# NOINLINE bindVisualServer_particles_set_emitting #-}\n\n-- | If @true@, particles will emit over time. Setting to false does not reset the particles, but only stops their emission. Equivalent to @Particles.emitting@.\nbindVisualServer_particles_set_emitting :: MethodBind\nbindVisualServer_particles_set_emitting\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_set_emitting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles will emit over time. Setting to false does not reset the particles, but only stops their emission. Equivalent to @Particles.emitting@.\nparticles_set_emitting ::\n                         (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\nparticles_set_emitting cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_particles_set_emitting\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_set_emitting\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_set_emitting\n\n{-# NOINLINE bindVisualServer_particles_set_explosiveness_ratio #-}\n\n-- | Sets the explosiveness ratio. Equivalent to @Particles.explosiveness@.\nbindVisualServer_particles_set_explosiveness_ratio :: MethodBind\nbindVisualServer_particles_set_explosiveness_ratio\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_set_explosiveness_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the explosiveness ratio. Equivalent to @Particles.explosiveness@.\nparticles_set_explosiveness_ratio ::\n                                    (VisualServer :< cls, Object :< cls) =>\n                                    cls -> Rid -> Float -> IO ()\nparticles_set_explosiveness_ratio cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_particles_set_explosiveness_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"particles_set_explosiveness_ratio\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.particles_set_explosiveness_ratio\n\n{-# NOINLINE bindVisualServer_particles_set_fixed_fps #-}\n\n-- | Sets the frame rate that the particle system rendering will be fixed to. Equivalent to @Particles.fixed_fps@.\nbindVisualServer_particles_set_fixed_fps :: MethodBind\nbindVisualServer_particles_set_fixed_fps\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_set_fixed_fps\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the frame rate that the particle system rendering will be fixed to. Equivalent to @Particles.fixed_fps@.\nparticles_set_fixed_fps ::\n                          (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nparticles_set_fixed_fps cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_particles_set_fixed_fps\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_set_fixed_fps\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_set_fixed_fps\n\n{-# NOINLINE bindVisualServer_particles_set_fractional_delta #-}\n\n-- | If @true@, uses fractional delta which smooths the movement of the particles. Equivalent to @Particles.fract_delta@.\nbindVisualServer_particles_set_fractional_delta :: MethodBind\nbindVisualServer_particles_set_fractional_delta\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_set_fractional_delta\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, uses fractional delta which smooths the movement of the particles. Equivalent to @Particles.fract_delta@.\nparticles_set_fractional_delta ::\n                                 (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\nparticles_set_fractional_delta cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_particles_set_fractional_delta\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_set_fractional_delta\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_set_fractional_delta\n\n{-# NOINLINE bindVisualServer_particles_set_lifetime #-}\n\n-- | Sets the lifetime of each particle in the system. Equivalent to @Particles.lifetime@.\nbindVisualServer_particles_set_lifetime :: MethodBind\nbindVisualServer_particles_set_lifetime\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_set_lifetime\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the lifetime of each particle in the system. Equivalent to @Particles.lifetime@.\nparticles_set_lifetime ::\n                         (VisualServer :< cls, Object :< cls) =>\n                         cls -> Rid -> Float -> IO ()\nparticles_set_lifetime cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_particles_set_lifetime\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_set_lifetime\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_set_lifetime\n\n{-# NOINLINE bindVisualServer_particles_set_one_shot #-}\n\n-- | If @true@, particles will emit once and then stop. Equivalent to @Particles.one_shot@.\nbindVisualServer_particles_set_one_shot :: MethodBind\nbindVisualServer_particles_set_one_shot\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_set_one_shot\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles will emit once and then stop. Equivalent to @Particles.one_shot@.\nparticles_set_one_shot ::\n                         (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\nparticles_set_one_shot cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_particles_set_one_shot\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_set_one_shot\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_set_one_shot\n\n{-# NOINLINE bindVisualServer_particles_set_pre_process_time #-}\n\n-- | Sets the preprocess time for the particles animation. This lets you delay starting an animation until after the particles have begun emitting. Equivalent to @Particles.preprocess@.\nbindVisualServer_particles_set_pre_process_time :: MethodBind\nbindVisualServer_particles_set_pre_process_time\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_set_pre_process_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the preprocess time for the particles animation. This lets you delay starting an animation until after the particles have begun emitting. Equivalent to @Particles.preprocess@.\nparticles_set_pre_process_time ::\n                                 (VisualServer :< cls, Object :< cls) =>\n                                 cls -> Rid -> Float -> IO ()\nparticles_set_pre_process_time cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_particles_set_pre_process_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_set_pre_process_time\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_set_pre_process_time\n\n{-# NOINLINE bindVisualServer_particles_set_process_material #-}\n\n-- | Sets the material for processing the particles. Note: this is not the material used to draw the materials. Equivalent to @Particles.process_material@.\nbindVisualServer_particles_set_process_material :: MethodBind\nbindVisualServer_particles_set_process_material\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_set_process_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the material for processing the particles. Note: this is not the material used to draw the materials. Equivalent to @Particles.process_material@.\nparticles_set_process_material ::\n                                 (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\nparticles_set_process_material cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_particles_set_process_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_set_process_material\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_set_process_material\n\n{-# NOINLINE bindVisualServer_particles_set_randomness_ratio #-}\n\n-- | Sets the emission randomness ratio. This randomizes the emission of particles within their phase. Equivalent to @Particles.randomness@.\nbindVisualServer_particles_set_randomness_ratio :: MethodBind\nbindVisualServer_particles_set_randomness_ratio\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_set_randomness_ratio\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the emission randomness ratio. This randomizes the emission of particles within their phase. Equivalent to @Particles.randomness@.\nparticles_set_randomness_ratio ::\n                                 (VisualServer :< cls, Object :< cls) =>\n                                 cls -> Rid -> Float -> IO ()\nparticles_set_randomness_ratio cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_particles_set_randomness_ratio\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_set_randomness_ratio\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_set_randomness_ratio\n\n{-# NOINLINE bindVisualServer_particles_set_speed_scale #-}\n\n-- | Sets the speed scale of the particle system. Equivalent to @Particles.speed_scale@.\nbindVisualServer_particles_set_speed_scale :: MethodBind\nbindVisualServer_particles_set_speed_scale\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_set_speed_scale\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the speed scale of the particle system. Equivalent to @Particles.speed_scale@.\nparticles_set_speed_scale ::\n                            (VisualServer :< cls, Object :< cls) =>\n                            cls -> Rid -> Float -> IO ()\nparticles_set_speed_scale cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_particles_set_speed_scale\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"particles_set_speed_scale\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.particles_set_speed_scale\n\n{-# NOINLINE bindVisualServer_particles_set_use_local_coordinates\n             #-}\n\n-- | If @true@, particles use local coordinates. If @false@ they use global coordinates. Equivalent to @Particles.local_coords@.\nbindVisualServer_particles_set_use_local_coordinates :: MethodBind\nbindVisualServer_particles_set_use_local_coordinates\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"particles_set_use_local_coordinates\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, particles use local coordinates. If @false@ they use global coordinates. Equivalent to @Particles.local_coords@.\nparticles_set_use_local_coordinates ::\n                                      (VisualServer :< cls, Object :< cls) =>\n                                      cls -> Rid -> Bool -> IO ()\nparticles_set_use_local_coordinates cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_particles_set_use_local_coordinates\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"particles_set_use_local_coordinates\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.particles_set_use_local_coordinates\n\n{-# NOINLINE bindVisualServer_reflection_probe_create #-}\n\n-- | Creates a reflection probe and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @reflection_probe_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach this reflection probe to an instance using @method instance_set_base@ using the returned RID.\nbindVisualServer_reflection_probe_create :: MethodBind\nbindVisualServer_reflection_probe_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"reflection_probe_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a reflection probe and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @reflection_probe_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach this reflection probe to an instance using @method instance_set_base@ using the returned RID.\nreflection_probe_create ::\n                          (VisualServer :< cls, Object :< cls) => cls -> IO Rid\nreflection_probe_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_reflection_probe_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"reflection_probe_create\" '[]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.reflection_probe_create\n\n{-# NOINLINE bindVisualServer_reflection_probe_set_as_interior #-}\n\n-- | If @true@, reflections will ignore sky contribution. Equivalent to @ReflectionProbe.interior_enable@.\nbindVisualServer_reflection_probe_set_as_interior :: MethodBind\nbindVisualServer_reflection_probe_set_as_interior\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"reflection_probe_set_as_interior\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, reflections will ignore sky contribution. Equivalent to @ReflectionProbe.interior_enable@.\nreflection_probe_set_as_interior ::\n                                   (VisualServer :< cls, Object :< cls) =>\n                                   cls -> Rid -> Bool -> IO ()\nreflection_probe_set_as_interior cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_reflection_probe_set_as_interior\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"reflection_probe_set_as_interior\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.reflection_probe_set_as_interior\n\n{-# NOINLINE bindVisualServer_reflection_probe_set_cull_mask #-}\n\n-- | Sets the render cull mask for this reflection probe. Only instances with a matching cull mask will be rendered by this probe. Equivalent to @ReflectionProbe.cull_mask@.\nbindVisualServer_reflection_probe_set_cull_mask :: MethodBind\nbindVisualServer_reflection_probe_set_cull_mask\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"reflection_probe_set_cull_mask\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the render cull mask for this reflection probe. Only instances with a matching cull mask will be rendered by this probe. Equivalent to @ReflectionProbe.cull_mask@.\nreflection_probe_set_cull_mask ::\n                                 (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nreflection_probe_set_cull_mask cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_reflection_probe_set_cull_mask\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"reflection_probe_set_cull_mask\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.reflection_probe_set_cull_mask\n\n{-# NOINLINE bindVisualServer_reflection_probe_set_enable_box_projection\n             #-}\n\n-- | If @true@, uses box projection. This can make reflections look more correct in certain situations. Equivalent to @ReflectionProbe.box_projection@.\nbindVisualServer_reflection_probe_set_enable_box_projection ::\n                                                            MethodBind\nbindVisualServer_reflection_probe_set_enable_box_projection\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"reflection_probe_set_enable_box_projection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, uses box projection. This can make reflections look more correct in certain situations. Equivalent to @ReflectionProbe.box_projection@.\nreflection_probe_set_enable_box_projection ::\n                                             (VisualServer :< cls, Object :< cls) =>\n                                             cls -> Rid -> Bool -> IO ()\nreflection_probe_set_enable_box_projection cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_reflection_probe_set_enable_box_projection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"reflection_probe_set_enable_box_projection\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.reflection_probe_set_enable_box_projection\n\n{-# NOINLINE bindVisualServer_reflection_probe_set_enable_shadows\n             #-}\n\n-- | If @true@, computes shadows in the reflection probe. This makes the reflection much slower to compute. Equivalent to @ReflectionProbe.enable_shadows@.\nbindVisualServer_reflection_probe_set_enable_shadows :: MethodBind\nbindVisualServer_reflection_probe_set_enable_shadows\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"reflection_probe_set_enable_shadows\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, computes shadows in the reflection probe. This makes the reflection much slower to compute. Equivalent to @ReflectionProbe.enable_shadows@.\nreflection_probe_set_enable_shadows ::\n                                      (VisualServer :< cls, Object :< cls) =>\n                                      cls -> Rid -> Bool -> IO ()\nreflection_probe_set_enable_shadows cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_reflection_probe_set_enable_shadows\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"reflection_probe_set_enable_shadows\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.reflection_probe_set_enable_shadows\n\n{-# NOINLINE bindVisualServer_reflection_probe_set_extents #-}\n\n-- | Sets the size of the area that the reflection probe will capture. Equivalent to @ReflectionProbe.extents@.\nbindVisualServer_reflection_probe_set_extents :: MethodBind\nbindVisualServer_reflection_probe_set_extents\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"reflection_probe_set_extents\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the size of the area that the reflection probe will capture. Equivalent to @ReflectionProbe.extents@.\nreflection_probe_set_extents ::\n                               (VisualServer :< cls, Object :< cls) =>\n                               cls -> Rid -> Vector3 -> IO ()\nreflection_probe_set_extents cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_reflection_probe_set_extents\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"reflection_probe_set_extents\"\n           '[Rid, Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.reflection_probe_set_extents\n\n{-# NOINLINE bindVisualServer_reflection_probe_set_intensity #-}\n\n-- | Sets the intensity of the reflection probe. Intensity modulates the strength of the reflection. Equivalent to @ReflectionProbe.intensity@.\nbindVisualServer_reflection_probe_set_intensity :: MethodBind\nbindVisualServer_reflection_probe_set_intensity\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"reflection_probe_set_intensity\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the intensity of the reflection probe. Intensity modulates the strength of the reflection. Equivalent to @ReflectionProbe.intensity@.\nreflection_probe_set_intensity ::\n                                 (VisualServer :< cls, Object :< cls) =>\n                                 cls -> Rid -> Float -> IO ()\nreflection_probe_set_intensity cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_reflection_probe_set_intensity\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"reflection_probe_set_intensity\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.reflection_probe_set_intensity\n\n{-# NOINLINE bindVisualServer_reflection_probe_set_interior_ambient\n             #-}\n\n-- | Sets the ambient light color for this reflection probe when set to interior mode. Equivalent to @ReflectionProbe.interior_ambient_color@.\nbindVisualServer_reflection_probe_set_interior_ambient ::\n                                                       MethodBind\nbindVisualServer_reflection_probe_set_interior_ambient\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"reflection_probe_set_interior_ambient\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the ambient light color for this reflection probe when set to interior mode. Equivalent to @ReflectionProbe.interior_ambient_color@.\nreflection_probe_set_interior_ambient ::\n                                        (VisualServer :< cls, Object :< cls) =>\n                                        cls -> Rid -> Color -> IO ()\nreflection_probe_set_interior_ambient cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_reflection_probe_set_interior_ambient\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"reflection_probe_set_interior_ambient\"\n           '[Rid, Color]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.reflection_probe_set_interior_ambient\n\n{-# NOINLINE bindVisualServer_reflection_probe_set_interior_ambient_energy\n             #-}\n\n-- | Sets the energy multiplier for this reflection probes ambient light contribution when set to interior mode. Equivalent to @ReflectionProbe.interior_ambient_energy@.\nbindVisualServer_reflection_probe_set_interior_ambient_energy ::\n                                                              MethodBind\nbindVisualServer_reflection_probe_set_interior_ambient_energy\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"reflection_probe_set_interior_ambient_energy\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the energy multiplier for this reflection probes ambient light contribution when set to interior mode. Equivalent to @ReflectionProbe.interior_ambient_energy@.\nreflection_probe_set_interior_ambient_energy ::\n                                               (VisualServer :< cls, Object :< cls) =>\n                                               cls -> Rid -> Float -> IO ()\nreflection_probe_set_interior_ambient_energy cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_reflection_probe_set_interior_ambient_energy\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"reflection_probe_set_interior_ambient_energy\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.reflection_probe_set_interior_ambient_energy\n\n{-# NOINLINE bindVisualServer_reflection_probe_set_interior_ambient_probe_contribution\n             #-}\n\n-- | Sets the contribution value for how much the reflection affects the ambient light for this reflection probe when set to interior mode. Useful so that ambient light matches the color of the room. Equivalent to @ReflectionProbe.interior_ambient_contrib@.\nbindVisualServer_reflection_probe_set_interior_ambient_probe_contribution ::\n                                                                          MethodBind\nbindVisualServer_reflection_probe_set_interior_ambient_probe_contribution\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString\n            \"reflection_probe_set_interior_ambient_probe_contribution\"\n            $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the contribution value for how much the reflection affects the ambient light for this reflection probe when set to interior mode. Useful so that ambient light matches the color of the room. Equivalent to @ReflectionProbe.interior_ambient_contrib@.\nreflection_probe_set_interior_ambient_probe_contribution ::\n                                                           (VisualServer :< cls, Object :< cls) =>\n                                                           cls -> Rid -> Float -> IO ()\nreflection_probe_set_interior_ambient_probe_contribution cls arg1\n  arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_reflection_probe_set_interior_ambient_probe_contribution\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"reflection_probe_set_interior_ambient_probe_contribution\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.reflection_probe_set_interior_ambient_probe_contribution\n\n{-# NOINLINE bindVisualServer_reflection_probe_set_max_distance #-}\n\n-- | Sets the max distance away from the probe an object can be before it is culled. Equivalent to @ReflectionProbe.max_distance@.\nbindVisualServer_reflection_probe_set_max_distance :: MethodBind\nbindVisualServer_reflection_probe_set_max_distance\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"reflection_probe_set_max_distance\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the max distance away from the probe an object can be before it is culled. Equivalent to @ReflectionProbe.max_distance@.\nreflection_probe_set_max_distance ::\n                                    (VisualServer :< cls, Object :< cls) =>\n                                    cls -> Rid -> Float -> IO ()\nreflection_probe_set_max_distance cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_reflection_probe_set_max_distance\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"reflection_probe_set_max_distance\"\n           '[Rid, Float]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.reflection_probe_set_max_distance\n\n{-# NOINLINE bindVisualServer_reflection_probe_set_origin_offset\n             #-}\n\n-- | Sets the origin offset to be used when this reflection probe is in box project mode. Equivalent to @ReflectionProbe.origin_offset@.\nbindVisualServer_reflection_probe_set_origin_offset :: MethodBind\nbindVisualServer_reflection_probe_set_origin_offset\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"reflection_probe_set_origin_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the origin offset to be used when this reflection probe is in box project mode. Equivalent to @ReflectionProbe.origin_offset@.\nreflection_probe_set_origin_offset ::\n                                     (VisualServer :< cls, Object :< cls) =>\n                                     cls -> Rid -> Vector3 -> IO ()\nreflection_probe_set_origin_offset cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_reflection_probe_set_origin_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"reflection_probe_set_origin_offset\"\n           '[Rid, Vector3]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.reflection_probe_set_origin_offset\n\n{-# NOINLINE bindVisualServer_reflection_probe_set_update_mode #-}\n\n-- | Sets how often the reflection probe updates. Can either be once or every frame. See @enum ReflectionProbeUpdateMode@ for options.\nbindVisualServer_reflection_probe_set_update_mode :: MethodBind\nbindVisualServer_reflection_probe_set_update_mode\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"reflection_probe_set_update_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets how often the reflection probe updates. Can either be once or every frame. See @enum ReflectionProbeUpdateMode@ for options.\nreflection_probe_set_update_mode ::\n                                   (VisualServer :< cls, Object :< cls) =>\n                                   cls -> Rid -> Int -> IO ()\nreflection_probe_set_update_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_reflection_probe_set_update_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"reflection_probe_set_update_mode\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.reflection_probe_set_update_mode\n\n{-# NOINLINE bindVisualServer_request_frame_drawn_callback #-}\n\n-- | Schedules a callback to the corresponding named @method@ on @where@ after a frame has been drawn.\n--   \t\t\t\tThe callback method must use only 1 argument which will be called with @userdata@.\nbindVisualServer_request_frame_drawn_callback :: MethodBind\nbindVisualServer_request_frame_drawn_callback\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"request_frame_drawn_callback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Schedules a callback to the corresponding named @method@ on @where@ after a frame has been drawn.\n--   \t\t\t\tThe callback method must use only 1 argument which will be called with @userdata@.\nrequest_frame_drawn_callback ::\n                               (VisualServer :< cls, Object :< cls) =>\n                               cls -> Object -> GodotString -> GodotVariant -> IO ()\nrequest_frame_drawn_callback cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_request_frame_drawn_callback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"request_frame_drawn_callback\"\n           '[Object, GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.request_frame_drawn_callback\n\n{-# NOINLINE bindVisualServer_scenario_create #-}\n\n-- | Creates a scenario and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @scenario_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tThe scenario is the 3D world that all the visual instances exist in.\nbindVisualServer_scenario_create :: MethodBind\nbindVisualServer_scenario_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"scenario_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a scenario and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @scenario_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tThe scenario is the 3D world that all the visual instances exist in.\nscenario_create ::\n                  (VisualServer :< cls, Object :< cls) => cls -> IO Rid\nscenario_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_scenario_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"scenario_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.scenario_create\n\n{-# NOINLINE bindVisualServer_scenario_set_debug #-}\n\n-- | Sets the @enum ScenarioDebugMode@ for this scenario. See @enum ScenarioDebugMode@ for options.\nbindVisualServer_scenario_set_debug :: MethodBind\nbindVisualServer_scenario_set_debug\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"scenario_set_debug\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @enum ScenarioDebugMode@ for this scenario. See @enum ScenarioDebugMode@ for options.\nscenario_set_debug ::\n                     (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nscenario_set_debug cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_scenario_set_debug\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"scenario_set_debug\" '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.scenario_set_debug\n\n{-# NOINLINE bindVisualServer_scenario_set_environment #-}\n\n-- | Sets the environment that will be used with this scenario.\nbindVisualServer_scenario_set_environment :: MethodBind\nbindVisualServer_scenario_set_environment\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"scenario_set_environment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the environment that will be used with this scenario.\nscenario_set_environment ::\n                           (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\nscenario_set_environment cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_scenario_set_environment\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"scenario_set_environment\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.scenario_set_environment\n\n{-# NOINLINE bindVisualServer_scenario_set_fallback_environment #-}\n\n-- | Sets the fallback environment to be used by this scenario. The fallback environment is used if no environment is set. Internally, this is used by the editor to provide a default environment.\nbindVisualServer_scenario_set_fallback_environment :: MethodBind\nbindVisualServer_scenario_set_fallback_environment\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"scenario_set_fallback_environment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the fallback environment to be used by this scenario. The fallback environment is used if no environment is set. Internally, this is used by the editor to provide a default environment.\nscenario_set_fallback_environment ::\n                                    (VisualServer :< cls, Object :< cls) =>\n                                    cls -> Rid -> Rid -> IO ()\nscenario_set_fallback_environment cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_scenario_set_fallback_environment\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"scenario_set_fallback_environment\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.scenario_set_fallback_environment\n\n{-# NOINLINE bindVisualServer_scenario_set_reflection_atlas_size\n             #-}\n\n-- | Sets the size of the reflection atlas shared by all reflection probes in this scenario.\nbindVisualServer_scenario_set_reflection_atlas_size :: MethodBind\nbindVisualServer_scenario_set_reflection_atlas_size\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"scenario_set_reflection_atlas_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the size of the reflection atlas shared by all reflection probes in this scenario.\nscenario_set_reflection_atlas_size ::\n                                     (VisualServer :< cls, Object :< cls) =>\n                                     cls -> Rid -> Int -> Int -> IO ()\nscenario_set_reflection_atlas_size cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_scenario_set_reflection_atlas_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"scenario_set_reflection_atlas_size\"\n           '[Rid, Int, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.scenario_set_reflection_atlas_size\n\n{-# NOINLINE bindVisualServer_set_boot_image #-}\n\n-- | Sets a boot image. The color defines the background color. If @scale@ is @true@, the image will be scaled to fit the screen size. If @use_filter@ is @true@, the image will be scaled with linear interpolation. If @use_filter@ is @false@, the image will be scaled with nearest-neighbor interpolation.\nbindVisualServer_set_boot_image :: MethodBind\nbindVisualServer_set_boot_image\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_boot_image\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a boot image. The color defines the background color. If @scale@ is @true@, the image will be scaled to fit the screen size. If @use_filter@ is @true@, the image will be scaled with linear interpolation. If @use_filter@ is @false@, the image will be scaled with nearest-neighbor interpolation.\nset_boot_image ::\n                 (VisualServer :< cls, Object :< cls) =>\n                 cls -> Image -> Color -> Bool -> Maybe Bool -> IO ()\nset_boot_image cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe (VariantBool True) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_set_boot_image (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"set_boot_image\"\n           '[Image, Color, Bool, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.set_boot_image\n\n{-# NOINLINE bindVisualServer_set_debug_generate_wireframes #-}\n\n-- | If @true@, the engine will generate wireframes for use with the wireframe debug mode.\nbindVisualServer_set_debug_generate_wireframes :: MethodBind\nbindVisualServer_set_debug_generate_wireframes\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_debug_generate_wireframes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the engine will generate wireframes for use with the wireframe debug mode.\nset_debug_generate_wireframes ::\n                                (VisualServer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_debug_generate_wireframes cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_set_debug_generate_wireframes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"set_debug_generate_wireframes\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.set_debug_generate_wireframes\n\n{-# NOINLINE bindVisualServer_set_default_clear_color #-}\n\n-- | Sets the default clear color which is used when a specific clear color has not been selected.\nbindVisualServer_set_default_clear_color :: MethodBind\nbindVisualServer_set_default_clear_color\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_default_clear_color\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the default clear color which is used when a specific clear color has not been selected.\nset_default_clear_color ::\n                          (VisualServer :< cls, Object :< cls) => cls -> Color -> IO ()\nset_default_clear_color cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_set_default_clear_color\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"set_default_clear_color\" '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.set_default_clear_color\n\n{-# NOINLINE bindVisualServer_shader_create #-}\n\n-- | Creates an empty shader and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @shader_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nbindVisualServer_shader_create :: MethodBind\nbindVisualServer_shader_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"shader_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates an empty shader and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @shader_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nshader_create ::\n                (VisualServer :< cls, Object :< cls) => cls -> IO Rid\nshader_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_shader_create (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"shader_create\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.VisualServer.shader_create\n\n{-# NOINLINE bindVisualServer_shader_get_code #-}\n\n-- | Returns a shader's code.\nbindVisualServer_shader_get_code :: MethodBind\nbindVisualServer_shader_get_code\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"shader_get_code\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a shader's code.\nshader_get_code ::\n                  (VisualServer :< cls, Object :< cls) =>\n                  cls -> Rid -> IO GodotString\nshader_get_code cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_shader_get_code\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"shader_get_code\" '[Rid]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualServer.shader_get_code\n\n{-# NOINLINE bindVisualServer_shader_get_default_texture_param #-}\n\n-- | Returns a default texture from a shader searched by name.\nbindVisualServer_shader_get_default_texture_param :: MethodBind\nbindVisualServer_shader_get_default_texture_param\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"shader_get_default_texture_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a default texture from a shader searched by name.\nshader_get_default_texture_param ::\n                                   (VisualServer :< cls, Object :< cls) =>\n                                   cls -> Rid -> GodotString -> IO Rid\nshader_get_default_texture_param cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_shader_get_default_texture_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"shader_get_default_texture_param\"\n           '[Rid, GodotString]\n           (IO Rid)\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.shader_get_default_texture_param\n\n{-# NOINLINE bindVisualServer_shader_get_param_list #-}\n\n-- | Returns the parameters of a shader.\nbindVisualServer_shader_get_param_list :: MethodBind\nbindVisualServer_shader_get_param_list\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"shader_get_param_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the parameters of a shader.\nshader_get_param_list ::\n                        (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Array\nshader_get_param_list cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_shader_get_param_list\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"shader_get_param_list\" '[Rid]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.VisualServer.shader_get_param_list\n\n{-# NOINLINE bindVisualServer_shader_set_code #-}\n\n-- | Sets a shader's code.\nbindVisualServer_shader_set_code :: MethodBind\nbindVisualServer_shader_set_code\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"shader_set_code\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a shader's code.\nshader_set_code ::\n                  (VisualServer :< cls, Object :< cls) =>\n                  cls -> Rid -> GodotString -> IO ()\nshader_set_code cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_shader_set_code\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"shader_set_code\"\n           '[Rid, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.shader_set_code\n\n{-# NOINLINE bindVisualServer_shader_set_default_texture_param #-}\n\n-- | Sets a shader's default texture. Overwrites the texture given by name.\nbindVisualServer_shader_set_default_texture_param :: MethodBind\nbindVisualServer_shader_set_default_texture_param\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"shader_set_default_texture_param\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a shader's default texture. Overwrites the texture given by name.\nshader_set_default_texture_param ::\n                                   (VisualServer :< cls, Object :< cls) =>\n                                   cls -> Rid -> GodotString -> Rid -> IO ()\nshader_set_default_texture_param cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_shader_set_default_texture_param\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"shader_set_default_texture_param\"\n           '[Rid, GodotString, Rid]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.shader_set_default_texture_param\n\n{-# NOINLINE bindVisualServer_skeleton_allocate #-}\n\n-- | Allocates the GPU buffers for this skeleton.\nbindVisualServer_skeleton_allocate :: MethodBind\nbindVisualServer_skeleton_allocate\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"skeleton_allocate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Allocates the GPU buffers for this skeleton.\nskeleton_allocate ::\n                    (VisualServer :< cls, Object :< cls) =>\n                    cls -> Rid -> Int -> Maybe Bool -> IO ()\nskeleton_allocate cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool False) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_skeleton_allocate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"skeleton_allocate\"\n           '[Rid, Int, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.skeleton_allocate\n\n{-# NOINLINE bindVisualServer_skeleton_bone_get_transform #-}\n\n-- | Returns the @Transform@ set for a specific bone of this skeleton.\nbindVisualServer_skeleton_bone_get_transform :: MethodBind\nbindVisualServer_skeleton_bone_get_transform\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"skeleton_bone_get_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Transform@ set for a specific bone of this skeleton.\nskeleton_bone_get_transform ::\n                              (VisualServer :< cls, Object :< cls) =>\n                              cls -> Rid -> Int -> IO Transform\nskeleton_bone_get_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_skeleton_bone_get_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"skeleton_bone_get_transform\"\n           '[Rid, Int]\n           (IO Transform)\n         where\n        nodeMethod = Godot.Core.VisualServer.skeleton_bone_get_transform\n\n{-# NOINLINE bindVisualServer_skeleton_bone_get_transform_2d #-}\n\n-- | Returns the @Transform2D@ set for a specific bone of this skeleton.\nbindVisualServer_skeleton_bone_get_transform_2d :: MethodBind\nbindVisualServer_skeleton_bone_get_transform_2d\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"skeleton_bone_get_transform_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Transform2D@ set for a specific bone of this skeleton.\nskeleton_bone_get_transform_2d ::\n                                 (VisualServer :< cls, Object :< cls) =>\n                                 cls -> Rid -> Int -> IO Transform2d\nskeleton_bone_get_transform_2d cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_skeleton_bone_get_transform_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"skeleton_bone_get_transform_2d\"\n           '[Rid, Int]\n           (IO Transform2d)\n         where\n        nodeMethod = Godot.Core.VisualServer.skeleton_bone_get_transform_2d\n\n{-# NOINLINE bindVisualServer_skeleton_bone_set_transform #-}\n\n-- | Sets the @Transform@ for a specific bone of this skeleton.\nbindVisualServer_skeleton_bone_set_transform :: MethodBind\nbindVisualServer_skeleton_bone_set_transform\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"skeleton_bone_set_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Transform@ for a specific bone of this skeleton.\nskeleton_bone_set_transform ::\n                              (VisualServer :< cls, Object :< cls) =>\n                              cls -> Rid -> Int -> Transform -> IO ()\nskeleton_bone_set_transform cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_skeleton_bone_set_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"skeleton_bone_set_transform\"\n           '[Rid, Int, Transform]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.skeleton_bone_set_transform\n\n{-# NOINLINE bindVisualServer_skeleton_bone_set_transform_2d #-}\n\n-- | Sets the @Transform2D@ for a specific bone of this skeleton.\nbindVisualServer_skeleton_bone_set_transform_2d :: MethodBind\nbindVisualServer_skeleton_bone_set_transform_2d\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"skeleton_bone_set_transform_2d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @Transform2D@ for a specific bone of this skeleton.\nskeleton_bone_set_transform_2d ::\n                                 (VisualServer :< cls, Object :< cls) =>\n                                 cls -> Rid -> Int -> Transform2d -> IO ()\nskeleton_bone_set_transform_2d cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_skeleton_bone_set_transform_2d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"skeleton_bone_set_transform_2d\"\n           '[Rid, Int, Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.skeleton_bone_set_transform_2d\n\n{-# NOINLINE bindVisualServer_skeleton_create #-}\n\n-- | Creates a skeleton and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @skeleton_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nbindVisualServer_skeleton_create :: MethodBind\nbindVisualServer_skeleton_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"skeleton_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a skeleton and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @skeleton_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nskeleton_create ::\n                  (VisualServer :< cls, Object :< cls) => cls -> IO Rid\nskeleton_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_skeleton_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"skeleton_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.skeleton_create\n\n{-# NOINLINE bindVisualServer_skeleton_get_bone_count #-}\n\n-- | Returns the number of bones allocated for this skeleton.\nbindVisualServer_skeleton_get_bone_count :: MethodBind\nbindVisualServer_skeleton_get_bone_count\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"skeleton_get_bone_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of bones allocated for this skeleton.\nskeleton_get_bone_count ::\n                          (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Int\nskeleton_get_bone_count cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_skeleton_get_bone_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"skeleton_get_bone_count\" '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.skeleton_get_bone_count\n\n{-# NOINLINE bindVisualServer_sky_create #-}\n\n-- | Creates an empty sky and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @sky_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nbindVisualServer_sky_create :: MethodBind\nbindVisualServer_sky_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"sky_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates an empty sky and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @sky_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nsky_create :: (VisualServer :< cls, Object :< cls) => cls -> IO Rid\nsky_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_sky_create (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"sky_create\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.VisualServer.sky_create\n\n{-# NOINLINE bindVisualServer_sky_set_texture #-}\n\n-- | Sets a sky's texture.\nbindVisualServer_sky_set_texture :: MethodBind\nbindVisualServer_sky_set_texture\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"sky_set_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a sky's texture.\nsky_set_texture ::\n                  (VisualServer :< cls, Object :< cls) =>\n                  cls -> Rid -> Rid -> Int -> IO ()\nsky_set_texture cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_sky_set_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"sky_set_texture\" '[Rid, Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.sky_set_texture\n\n{-# NOINLINE bindVisualServer_spot_light_create #-}\n\n-- | Creates a spot light and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID can be used in most @light_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach this spot light to an instance using @method instance_set_base@ using the returned RID.\nbindVisualServer_spot_light_create :: MethodBind\nbindVisualServer_spot_light_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"spot_light_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a spot light and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID can be used in most @light_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\n--   \t\t\t\tTo place in a scene, attach this spot light to an instance using @method instance_set_base@ using the returned RID.\nspot_light_create ::\n                    (VisualServer :< cls, Object :< cls) => cls -> IO Rid\nspot_light_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_spot_light_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"spot_light_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.spot_light_create\n\n{-# NOINLINE bindVisualServer_sync #-}\n\n-- | Not implemented in Godot 3.x.\nbindVisualServer_sync :: MethodBind\nbindVisualServer_sync\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"sync\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Not implemented in Godot 3.x.\nsync :: (VisualServer :< cls, Object :< cls) => cls -> IO ()\nsync cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_sync (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"sync\" '[] (IO ()) where\n        nodeMethod = Godot.Core.VisualServer.sync\n\n{-# NOINLINE bindVisualServer_texture_allocate #-}\n\n-- | Allocates the GPU memory for the texture.\nbindVisualServer_texture_allocate :: MethodBind\nbindVisualServer_texture_allocate\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_allocate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Allocates the GPU memory for the texture.\ntexture_allocate ::\n                   (VisualServer :< cls, Object :< cls) =>\n                   cls -> Rid -> Int -> Int -> Int -> Int -> Int -> Maybe Int -> IO ()\ntexture_allocate cls arg1 arg2 arg3 arg4 arg5 arg6 arg7\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6,\n       maybe (VariantInt (7)) toVariant arg7]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_allocate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_allocate\"\n           '[Rid, Int, Int, Int, Int, Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_allocate\n\n{-# NOINLINE bindVisualServer_texture_bind #-}\n\n-- | Binds the texture to a texture slot.\nbindVisualServer_texture_bind :: MethodBind\nbindVisualServer_texture_bind\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_bind\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Binds the texture to a texture slot.\ntexture_bind ::\n               (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\ntexture_bind cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_bind (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_bind\" '[Rid, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_bind\n\n{-# NOINLINE bindVisualServer_texture_create #-}\n\n-- | Creates an empty texture and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @texture_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nbindVisualServer_texture_create :: MethodBind\nbindVisualServer_texture_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates an empty texture and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @texture_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\ntexture_create ::\n                 (VisualServer :< cls, Object :< cls) => cls -> IO Rid\ntexture_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_create (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_create\n\n{-# NOINLINE bindVisualServer_texture_create_from_image #-}\n\n-- | Creates a texture, allocates the space for an image, and fills in the image.\nbindVisualServer_texture_create_from_image :: MethodBind\nbindVisualServer_texture_create_from_image\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_create_from_image\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a texture, allocates the space for an image, and fills in the image.\ntexture_create_from_image ::\n                            (VisualServer :< cls, Object :< cls) =>\n                            cls -> Image -> Maybe Int -> IO Rid\ntexture_create_from_image cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (7)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_create_from_image\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_create_from_image\"\n           '[Image, Maybe Int]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_create_from_image\n\n{-# NOINLINE bindVisualServer_texture_debug_usage #-}\n\n-- | Returns a list of all the textures and their information.\nbindVisualServer_texture_debug_usage :: MethodBind\nbindVisualServer_texture_debug_usage\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_debug_usage\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a list of all the textures and their information.\ntexture_debug_usage ::\n                      (VisualServer :< cls, Object :< cls) => cls -> IO Array\ntexture_debug_usage cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_debug_usage\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_debug_usage\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_debug_usage\n\n{-# NOINLINE bindVisualServer_texture_get_data #-}\n\n-- | Returns a copy of a texture's image unless it's a CubeMap, in which case it returns the @RID@ of the image at one of the cubes sides.\nbindVisualServer_texture_get_data :: MethodBind\nbindVisualServer_texture_get_data\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_get_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a copy of a texture's image unless it's a CubeMap, in which case it returns the @RID@ of the image at one of the cubes sides.\ntexture_get_data ::\n                   (VisualServer :< cls, Object :< cls) =>\n                   cls -> Rid -> Maybe Int -> IO Image\ntexture_get_data cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (0)) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_get_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_get_data\"\n           '[Rid, Maybe Int]\n           (IO Image)\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_get_data\n\n{-# NOINLINE bindVisualServer_texture_get_depth #-}\n\n-- | Returns the depth of the texture.\nbindVisualServer_texture_get_depth :: MethodBind\nbindVisualServer_texture_get_depth\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_get_depth\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the depth of the texture.\ntexture_get_depth ::\n                    (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Int\ntexture_get_depth cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_get_depth\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_get_depth\" '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_get_depth\n\n{-# NOINLINE bindVisualServer_texture_get_flags #-}\n\n-- | Returns the flags of a texture.\nbindVisualServer_texture_get_flags :: MethodBind\nbindVisualServer_texture_get_flags\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_get_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the flags of a texture.\ntexture_get_flags ::\n                    (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Int\ntexture_get_flags cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_get_flags\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_get_flags\" '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_get_flags\n\n{-# NOINLINE bindVisualServer_texture_get_format #-}\n\n-- | Returns the format of the texture's image.\nbindVisualServer_texture_get_format :: MethodBind\nbindVisualServer_texture_get_format\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_get_format\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the format of the texture's image.\ntexture_get_format ::\n                     (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Int\ntexture_get_format cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_get_format\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_get_format\" '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_get_format\n\n{-# NOINLINE bindVisualServer_texture_get_height #-}\n\n-- | Returns the texture's height.\nbindVisualServer_texture_get_height :: MethodBind\nbindVisualServer_texture_get_height\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_get_height\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the texture's height.\ntexture_get_height ::\n                     (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Int\ntexture_get_height cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_get_height\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_get_height\" '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_get_height\n\n{-# NOINLINE bindVisualServer_texture_get_path #-}\n\n-- | Returns the texture's path.\nbindVisualServer_texture_get_path :: MethodBind\nbindVisualServer_texture_get_path\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_get_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the texture's path.\ntexture_get_path ::\n                   (VisualServer :< cls, Object :< cls) =>\n                   cls -> Rid -> IO GodotString\ntexture_get_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_get_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_get_path\" '[Rid]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_get_path\n\n{-# NOINLINE bindVisualServer_texture_get_texid #-}\n\n-- | Returns the opengl id of the texture's image.\nbindVisualServer_texture_get_texid :: MethodBind\nbindVisualServer_texture_get_texid\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_get_texid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the opengl id of the texture's image.\ntexture_get_texid ::\n                    (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Int\ntexture_get_texid cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_get_texid\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_get_texid\" '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_get_texid\n\n{-# NOINLINE bindVisualServer_texture_get_type #-}\n\n-- | Returns the type of the texture, can be any of the @enum TextureType@.\nbindVisualServer_texture_get_type :: MethodBind\nbindVisualServer_texture_get_type\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_get_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the type of the texture, can be any of the @enum TextureType@.\ntexture_get_type ::\n                   (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Int\ntexture_get_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_get_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_get_type\" '[Rid] (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_get_type\n\n{-# NOINLINE bindVisualServer_texture_get_width #-}\n\n-- | Returns the texture's width.\nbindVisualServer_texture_get_width :: MethodBind\nbindVisualServer_texture_get_width\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_get_width\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the texture's width.\ntexture_get_width ::\n                    (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Int\ntexture_get_width cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_get_width\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_get_width\" '[Rid]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_get_width\n\n{-# NOINLINE bindVisualServer_texture_set_data #-}\n\n-- | Sets the texture's image data. If it's a CubeMap, it sets the image data at a cube side.\nbindVisualServer_texture_set_data :: MethodBind\nbindVisualServer_texture_set_data\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_set_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the texture's image data. If it's a CubeMap, it sets the image data at a cube side.\ntexture_set_data ::\n                   (VisualServer :< cls, Object :< cls) =>\n                   cls -> Rid -> Image -> Maybe Int -> IO ()\ntexture_set_data cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (0)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_set_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_set_data\"\n           '[Rid, Image, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_set_data\n\n{-# NOINLINE bindVisualServer_texture_set_data_partial #-}\n\n-- | Sets a part of the data for a texture. Warning: this function calls the underlying graphics API directly and may corrupt your texture if used improperly.\nbindVisualServer_texture_set_data_partial :: MethodBind\nbindVisualServer_texture_set_data_partial\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_set_data_partial\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a part of the data for a texture. Warning: this function calls the underlying graphics API directly and may corrupt your texture if used improperly.\ntexture_set_data_partial ::\n                           (VisualServer :< cls, Object :< cls) =>\n                           cls ->\n                             Rid ->\n                               Image ->\n                                 Int -> Int -> Int -> Int -> Int -> Int -> Int -> Maybe Int -> IO ()\ntexture_set_data_partial cls arg1 arg2 arg3 arg4 arg5 arg6 arg7\n  arg8 arg9 arg10\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6, toVariant arg7, toVariant arg8,\n       toVariant arg9, maybe (VariantInt (0)) toVariant arg10]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_set_data_partial\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_set_data_partial\"\n           '[Rid, Image, Int, Int, Int, Int, Int, Int, Int, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_set_data_partial\n\n{-# NOINLINE bindVisualServer_texture_set_flags #-}\n\n-- | Sets the texture's flags. See @enum TextureFlags@ for options.\nbindVisualServer_texture_set_flags :: MethodBind\nbindVisualServer_texture_set_flags\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_set_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the texture's flags. See @enum TextureFlags@ for options.\ntexture_set_flags ::\n                    (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\ntexture_set_flags cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_set_flags\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_set_flags\" '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_set_flags\n\n{-# NOINLINE bindVisualServer_texture_set_path #-}\n\n-- | Sets the texture's path.\nbindVisualServer_texture_set_path :: MethodBind\nbindVisualServer_texture_set_path\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_set_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the texture's path.\ntexture_set_path ::\n                   (VisualServer :< cls, Object :< cls) =>\n                   cls -> Rid -> GodotString -> IO ()\ntexture_set_path cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_set_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_set_path\"\n           '[Rid, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_set_path\n\n{-# NOINLINE bindVisualServer_texture_set_shrink_all_x2_on_set_data\n             #-}\n\n-- | If @true@, sets internal processes to shrink all image data to half the size.\nbindVisualServer_texture_set_shrink_all_x2_on_set_data ::\n                                                       MethodBind\nbindVisualServer_texture_set_shrink_all_x2_on_set_data\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_set_shrink_all_x2_on_set_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, sets internal processes to shrink all image data to half the size.\ntexture_set_shrink_all_x2_on_set_data ::\n                                        (VisualServer :< cls, Object :< cls) => cls -> Bool -> IO ()\ntexture_set_shrink_all_x2_on_set_data cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_texture_set_shrink_all_x2_on_set_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"texture_set_shrink_all_x2_on_set_data\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.texture_set_shrink_all_x2_on_set_data\n\n{-# NOINLINE bindVisualServer_texture_set_size_override #-}\n\n-- | Resizes the texture to the specified dimensions.\nbindVisualServer_texture_set_size_override :: MethodBind\nbindVisualServer_texture_set_size_override\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"texture_set_size_override\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Resizes the texture to the specified dimensions.\ntexture_set_size_override ::\n                            (VisualServer :< cls, Object :< cls) =>\n                            cls -> Rid -> Int -> Int -> Int -> IO ()\ntexture_set_size_override cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_texture_set_size_override\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"texture_set_size_override\"\n           '[Rid, Int, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.texture_set_size_override\n\n{-# NOINLINE bindVisualServer_textures_keep_original #-}\n\n-- | If @true@, the image will be stored in the texture's images array if overwritten.\nbindVisualServer_textures_keep_original :: MethodBind\nbindVisualServer_textures_keep_original\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"textures_keep_original\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the image will be stored in the texture's images array if overwritten.\ntextures_keep_original ::\n                         (VisualServer :< cls, Object :< cls) => cls -> Bool -> IO ()\ntextures_keep_original cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_textures_keep_original\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"textures_keep_original\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.textures_keep_original\n\n{-# NOINLINE bindVisualServer_viewport_attach_camera #-}\n\n-- | Sets a viewport's camera.\nbindVisualServer_viewport_attach_camera :: MethodBind\nbindVisualServer_viewport_attach_camera\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_attach_camera\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a viewport's camera.\nviewport_attach_camera ::\n                         (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\nviewport_attach_camera cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_attach_camera\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_attach_camera\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_attach_camera\n\n{-# NOINLINE bindVisualServer_viewport_attach_canvas #-}\n\n-- | Sets a viewport's canvas.\nbindVisualServer_viewport_attach_canvas :: MethodBind\nbindVisualServer_viewport_attach_canvas\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_attach_canvas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a viewport's canvas.\nviewport_attach_canvas ::\n                         (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\nviewport_attach_canvas cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_attach_canvas\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_attach_canvas\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_attach_canvas\n\n{-# NOINLINE bindVisualServer_viewport_attach_to_screen #-}\n\n-- | Copies viewport to a region of the screen specified by @rect@. If @Viewport.render_direct_to_screen@ is @true@, then viewport does not use a framebuffer and the contents of the viewport are rendered directly to screen. However, note that the root viewport is drawn last, therefore it will draw over the screen. Accordingly, you must set the root viewport to an area that does not cover the area that you have attached this viewport to.\n--   \t\t\t\tFor example, you can set the root viewport to not render at all with the following code:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc _ready():\n--   \t\t\t\t    get_viewport().set_attach_to_screen_rect(Rect2())\n--   \t\t\t\t    $Viewport.set_attach_to_screen_rect(Rect2(0, 0, 600, 600))\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tUsing this can result in significant optimization, especially on lower-end devices. However, it comes at the cost of having to manage your viewports manually. For a further optimization see, @method viewport_set_render_direct_to_screen@.\nbindVisualServer_viewport_attach_to_screen :: MethodBind\nbindVisualServer_viewport_attach_to_screen\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_attach_to_screen\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Copies viewport to a region of the screen specified by @rect@. If @Viewport.render_direct_to_screen@ is @true@, then viewport does not use a framebuffer and the contents of the viewport are rendered directly to screen. However, note that the root viewport is drawn last, therefore it will draw over the screen. Accordingly, you must set the root viewport to an area that does not cover the area that you have attached this viewport to.\n--   \t\t\t\tFor example, you can set the root viewport to not render at all with the following code:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc _ready():\n--   \t\t\t\t    get_viewport().set_attach_to_screen_rect(Rect2())\n--   \t\t\t\t    $Viewport.set_attach_to_screen_rect(Rect2(0, 0, 600, 600))\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tUsing this can result in significant optimization, especially on lower-end devices. However, it comes at the cost of having to manage your viewports manually. For a further optimization see, @method viewport_set_render_direct_to_screen@.\nviewport_attach_to_screen ::\n                            (VisualServer :< cls, Object :< cls) =>\n                            cls -> Rid -> Maybe Rect2 -> Maybe Int -> IO ()\nviewport_attach_to_screen cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1,\n       defaultedVariant VariantRect2 (V2 (V2 0 0) (V2 0 0)) arg2,\n       maybe (VariantInt (0)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_attach_to_screen\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_attach_to_screen\"\n           '[Rid, Maybe Rect2, Maybe Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_attach_to_screen\n\n{-# NOINLINE bindVisualServer_viewport_create #-}\n\n-- | Creates an empty viewport and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @viewport_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nbindVisualServer_viewport_create :: MethodBind\nbindVisualServer_viewport_create\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates an empty viewport and adds it to the VisualServer. It can be accessed with the RID that is returned. This RID will be used in all @viewport_*@ VisualServer functions.\n--   \t\t\t\tOnce finished with your RID, you will want to free the RID using the VisualServer's @method free_rid@ static method.\nviewport_create ::\n                  (VisualServer :< cls, Object :< cls) => cls -> IO Rid\nviewport_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_create\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_create\" '[] (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_create\n\n{-# NOINLINE bindVisualServer_viewport_detach #-}\n\n-- | Detaches the viewport from the screen.\nbindVisualServer_viewport_detach :: MethodBind\nbindVisualServer_viewport_detach\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_detach\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Detaches the viewport from the screen.\nviewport_detach ::\n                  (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO ()\nviewport_detach cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_detach\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_detach\" '[Rid] (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_detach\n\n{-# NOINLINE bindVisualServer_viewport_get_render_info #-}\n\n-- | Returns a viewport's render information. For options, see the @enum ViewportRenderInfo@ constants.\nbindVisualServer_viewport_get_render_info :: MethodBind\nbindVisualServer_viewport_get_render_info\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_get_render_info\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a viewport's render information. For options, see the @enum ViewportRenderInfo@ constants.\nviewport_get_render_info ::\n                           (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO Int\nviewport_get_render_info cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_get_render_info\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_get_render_info\"\n           '[Rid, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_get_render_info\n\n{-# NOINLINE bindVisualServer_viewport_get_texture #-}\n\n-- | Returns the viewport's last rendered frame.\nbindVisualServer_viewport_get_texture :: MethodBind\nbindVisualServer_viewport_get_texture\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the viewport's last rendered frame.\nviewport_get_texture ::\n                       (VisualServer :< cls, Object :< cls) => cls -> Rid -> IO Rid\nviewport_get_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_get_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_get_texture\" '[Rid]\n           (IO Rid)\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_get_texture\n\n{-# NOINLINE bindVisualServer_viewport_remove_canvas #-}\n\n-- | Detaches a viewport from a canvas and vice versa.\nbindVisualServer_viewport_remove_canvas :: MethodBind\nbindVisualServer_viewport_remove_canvas\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_remove_canvas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Detaches a viewport from a canvas and vice versa.\nviewport_remove_canvas ::\n                         (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\nviewport_remove_canvas cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_remove_canvas\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_remove_canvas\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_remove_canvas\n\n{-# NOINLINE bindVisualServer_viewport_set_active #-}\n\n-- | If @true@, sets the viewport active, else sets it inactive.\nbindVisualServer_viewport_set_active :: MethodBind\nbindVisualServer_viewport_set_active\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_active\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, sets the viewport active, else sets it inactive.\nviewport_set_active ::\n                      (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\nviewport_set_active cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_set_active\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_active\" '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_set_active\n\n{-# NOINLINE bindVisualServer_viewport_set_canvas_stacking #-}\n\n-- | Sets the stacking order for a viewport's canvas.\n--   \t\t\t\t@layer@ is the actual canvas layer, while @sublayer@ specifies the stacking order of the canvas among those in the same layer.\nbindVisualServer_viewport_set_canvas_stacking :: MethodBind\nbindVisualServer_viewport_set_canvas_stacking\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_canvas_stacking\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the stacking order for a viewport's canvas.\n--   \t\t\t\t@layer@ is the actual canvas layer, while @sublayer@ specifies the stacking order of the canvas among those in the same layer.\nviewport_set_canvas_stacking ::\n                               (VisualServer :< cls, Object :< cls) =>\n                               cls -> Rid -> Rid -> Int -> Int -> IO ()\nviewport_set_canvas_stacking cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_viewport_set_canvas_stacking\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_canvas_stacking\"\n           '[Rid, Rid, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_set_canvas_stacking\n\n{-# NOINLINE bindVisualServer_viewport_set_canvas_transform #-}\n\n-- | Sets the transformation of a viewport's canvas.\nbindVisualServer_viewport_set_canvas_transform :: MethodBind\nbindVisualServer_viewport_set_canvas_transform\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_canvas_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the transformation of a viewport's canvas.\nviewport_set_canvas_transform ::\n                                (VisualServer :< cls, Object :< cls) =>\n                                cls -> Rid -> Rid -> Transform2d -> IO ()\nviewport_set_canvas_transform cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_viewport_set_canvas_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_canvas_transform\"\n           '[Rid, Rid, Transform2d]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_set_canvas_transform\n\n{-# NOINLINE bindVisualServer_viewport_set_clear_mode #-}\n\n-- | Sets the clear mode of a viewport. See @enum ViewportClearMode@ for options.\nbindVisualServer_viewport_set_clear_mode :: MethodBind\nbindVisualServer_viewport_set_clear_mode\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_clear_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the clear mode of a viewport. See @enum ViewportClearMode@ for options.\nviewport_set_clear_mode ::\n                          (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nviewport_set_clear_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_set_clear_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_clear_mode\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_set_clear_mode\n\n{-# NOINLINE bindVisualServer_viewport_set_debug_draw #-}\n\n-- | Sets the debug draw mode of a viewport. See @enum ViewportDebugDraw@ for options.\nbindVisualServer_viewport_set_debug_draw :: MethodBind\nbindVisualServer_viewport_set_debug_draw\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_debug_draw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the debug draw mode of a viewport. See @enum ViewportDebugDraw@ for options.\nviewport_set_debug_draw ::\n                          (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nviewport_set_debug_draw cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_set_debug_draw\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_debug_draw\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_set_debug_draw\n\n{-# NOINLINE bindVisualServer_viewport_set_disable_3d #-}\n\n-- | If @true@, a viewport's 3D rendering is disabled.\nbindVisualServer_viewport_set_disable_3d :: MethodBind\nbindVisualServer_viewport_set_disable_3d\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_disable_3d\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, a viewport's 3D rendering is disabled.\nviewport_set_disable_3d ::\n                          (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\nviewport_set_disable_3d cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_set_disable_3d\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_disable_3d\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_set_disable_3d\n\n{-# NOINLINE bindVisualServer_viewport_set_disable_environment #-}\n\n-- | If @true@, rendering of a viewport's environment is disabled.\nbindVisualServer_viewport_set_disable_environment :: MethodBind\nbindVisualServer_viewport_set_disable_environment\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_disable_environment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, rendering of a viewport's environment is disabled.\nviewport_set_disable_environment ::\n                                   (VisualServer :< cls, Object :< cls) =>\n                                   cls -> Rid -> Bool -> IO ()\nviewport_set_disable_environment cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_viewport_set_disable_environment\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_disable_environment\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.viewport_set_disable_environment\n\n{-# NOINLINE bindVisualServer_viewport_set_global_canvas_transform\n             #-}\n\n-- | Sets the viewport's global transformation matrix.\nbindVisualServer_viewport_set_global_canvas_transform :: MethodBind\nbindVisualServer_viewport_set_global_canvas_transform\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_global_canvas_transform\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the viewport's global transformation matrix.\nviewport_set_global_canvas_transform ::\n                                       (VisualServer :< cls, Object :< cls) =>\n                                       cls -> Rid -> Transform2d -> IO ()\nviewport_set_global_canvas_transform cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_viewport_set_global_canvas_transform\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"viewport_set_global_canvas_transform\"\n           '[Rid, Transform2d]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.viewport_set_global_canvas_transform\n\n{-# NOINLINE bindVisualServer_viewport_set_hdr #-}\n\n-- | If @true@, the viewport renders to hdr.\nbindVisualServer_viewport_set_hdr :: MethodBind\nbindVisualServer_viewport_set_hdr\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_hdr\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport renders to hdr.\nviewport_set_hdr ::\n                   (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\nviewport_set_hdr cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_set_hdr\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_hdr\" '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_set_hdr\n\n{-# NOINLINE bindVisualServer_viewport_set_hide_canvas #-}\n\n-- | If @true@, the viewport's canvas is not rendered.\nbindVisualServer_viewport_set_hide_canvas :: MethodBind\nbindVisualServer_viewport_set_hide_canvas\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_hide_canvas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport's canvas is not rendered.\nviewport_set_hide_canvas ::\n                           (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\nviewport_set_hide_canvas cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_set_hide_canvas\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_hide_canvas\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_set_hide_canvas\n\n{-# NOINLINE bindVisualServer_viewport_set_hide_scenario #-}\n\n-- | Currently unimplemented in Godot 3.x.\nbindVisualServer_viewport_set_hide_scenario :: MethodBind\nbindVisualServer_viewport_set_hide_scenario\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_hide_scenario\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Currently unimplemented in Godot 3.x.\nviewport_set_hide_scenario ::\n                             (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\nviewport_set_hide_scenario cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_set_hide_scenario\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_hide_scenario\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_set_hide_scenario\n\n{-# NOINLINE bindVisualServer_viewport_set_msaa #-}\n\n-- | Sets the anti-aliasing mode. See @enum ViewportMSAA@ for options.\nbindVisualServer_viewport_set_msaa :: MethodBind\nbindVisualServer_viewport_set_msaa\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_msaa\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the anti-aliasing mode. See @enum ViewportMSAA@ for options.\nviewport_set_msaa ::\n                    (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nviewport_set_msaa cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_set_msaa\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_msaa\" '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_set_msaa\n\n{-# NOINLINE bindVisualServer_viewport_set_parent_viewport #-}\n\n-- | Sets the viewport's parent to another viewport.\nbindVisualServer_viewport_set_parent_viewport :: MethodBind\nbindVisualServer_viewport_set_parent_viewport\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_parent_viewport\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the viewport's parent to another viewport.\nviewport_set_parent_viewport ::\n                               (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\nviewport_set_parent_viewport cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_viewport_set_parent_viewport\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_parent_viewport\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_set_parent_viewport\n\n{-# NOINLINE bindVisualServer_viewport_set_render_direct_to_screen\n             #-}\n\n-- | If @true@, render the contents of the viewport directly to screen. This allows a low-level optimization where you can skip drawing a viewport to the root viewport. While this optimization can result in a significant increase in speed (especially on older devices), it comes at a cost of usability. When this is enabled, you cannot read from the viewport or from the @SCREEN_TEXTURE@. You also lose the benefit of certain window settings, such as the various stretch modes. Another consequence to be aware of is that in 2D the rendering happens in window coordinates, so if you have a viewport that is double the size of the window, and you set this, then only the portion that fits within the window will be drawn, no automatic scaling is possible, even if your game scene is significantly larger than the window size.\nbindVisualServer_viewport_set_render_direct_to_screen :: MethodBind\nbindVisualServer_viewport_set_render_direct_to_screen\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_render_direct_to_screen\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, render the contents of the viewport directly to screen. This allows a low-level optimization where you can skip drawing a viewport to the root viewport. While this optimization can result in a significant increase in speed (especially on older devices), it comes at a cost of usability. When this is enabled, you cannot read from the viewport or from the @SCREEN_TEXTURE@. You also lose the benefit of certain window settings, such as the various stretch modes. Another consequence to be aware of is that in 2D the rendering happens in window coordinates, so if you have a viewport that is double the size of the window, and you set this, then only the portion that fits within the window will be drawn, no automatic scaling is possible, even if your game scene is significantly larger than the window size.\nviewport_set_render_direct_to_screen ::\n                                       (VisualServer :< cls, Object :< cls) =>\n                                       cls -> Rid -> Bool -> IO ()\nviewport_set_render_direct_to_screen cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_viewport_set_render_direct_to_screen\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"viewport_set_render_direct_to_screen\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.viewport_set_render_direct_to_screen\n\n{-# NOINLINE bindVisualServer_viewport_set_scenario #-}\n\n-- | Sets a viewport's scenario.\n--   \t\t\t\tThe scenario contains information about the @enum ScenarioDebugMode@, environment information, reflection atlas etc.\nbindVisualServer_viewport_set_scenario :: MethodBind\nbindVisualServer_viewport_set_scenario\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_scenario\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets a viewport's scenario.\n--   \t\t\t\tThe scenario contains information about the @enum ScenarioDebugMode@, environment information, reflection atlas etc.\nviewport_set_scenario ::\n                        (VisualServer :< cls, Object :< cls) => cls -> Rid -> Rid -> IO ()\nviewport_set_scenario cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_set_scenario\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_scenario\"\n           '[Rid, Rid]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_set_scenario\n\n{-# NOINLINE bindVisualServer_viewport_set_shadow_atlas_quadrant_subdivision\n             #-}\n\n-- | Sets the shadow atlas quadrant's subdivision.\nbindVisualServer_viewport_set_shadow_atlas_quadrant_subdivision ::\n                                                                MethodBind\nbindVisualServer_viewport_set_shadow_atlas_quadrant_subdivision\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_shadow_atlas_quadrant_subdivision\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the shadow atlas quadrant's subdivision.\nviewport_set_shadow_atlas_quadrant_subdivision ::\n                                                 (VisualServer :< cls, Object :< cls) =>\n                                                 cls -> Rid -> Int -> Int -> IO ()\nviewport_set_shadow_atlas_quadrant_subdivision cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_viewport_set_shadow_atlas_quadrant_subdivision\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"viewport_set_shadow_atlas_quadrant_subdivision\"\n           '[Rid, Int, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.viewport_set_shadow_atlas_quadrant_subdivision\n\n{-# NOINLINE bindVisualServer_viewport_set_shadow_atlas_size #-}\n\n-- | Sets the size of the shadow atlas's images (used for omni and spot lights). The value will be rounded up to the nearest power of 2.\nbindVisualServer_viewport_set_shadow_atlas_size :: MethodBind\nbindVisualServer_viewport_set_shadow_atlas_size\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_shadow_atlas_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the size of the shadow atlas's images (used for omni and spot lights). The value will be rounded up to the nearest power of 2.\nviewport_set_shadow_atlas_size ::\n                                 (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nviewport_set_shadow_atlas_size cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_viewport_set_shadow_atlas_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_shadow_atlas_size\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_set_shadow_atlas_size\n\n{-# NOINLINE bindVisualServer_viewport_set_size #-}\n\n-- | Sets the viewport's width and height.\nbindVisualServer_viewport_set_size :: MethodBind\nbindVisualServer_viewport_set_size\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the viewport's width and height.\nviewport_set_size ::\n                    (VisualServer :< cls, Object :< cls) =>\n                    cls -> Rid -> Int -> Int -> IO ()\nviewport_set_size cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_set_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_size\"\n           '[Rid, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_set_size\n\n{-# NOINLINE bindVisualServer_viewport_set_transparent_background\n             #-}\n\n-- | If @true@, the viewport renders its background as transparent.\nbindVisualServer_viewport_set_transparent_background :: MethodBind\nbindVisualServer_viewport_set_transparent_background\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_transparent_background\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport renders its background as transparent.\nviewport_set_transparent_background ::\n                                      (VisualServer :< cls, Object :< cls) =>\n                                      cls -> Rid -> Bool -> IO ()\nviewport_set_transparent_background cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualServer_viewport_set_transparent_background\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer\n           \"viewport_set_transparent_background\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualServer.viewport_set_transparent_background\n\n{-# NOINLINE bindVisualServer_viewport_set_update_mode #-}\n\n-- | Sets when the viewport should be updated. See @enum ViewportUpdateMode@ constants for options.\nbindVisualServer_viewport_set_update_mode :: MethodBind\nbindVisualServer_viewport_set_update_mode\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_update_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets when the viewport should be updated. See @enum ViewportUpdateMode@ constants for options.\nviewport_set_update_mode ::\n                           (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nviewport_set_update_mode cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_set_update_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_update_mode\"\n           '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_set_update_mode\n\n{-# NOINLINE bindVisualServer_viewport_set_usage #-}\n\n-- | Sets the viewport's 2D/3D mode. See @enum ViewportUsage@ constants for options.\nbindVisualServer_viewport_set_usage :: MethodBind\nbindVisualServer_viewport_set_usage\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_usage\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the viewport's 2D/3D mode. See @enum ViewportUsage@ constants for options.\nviewport_set_usage ::\n                     (VisualServer :< cls, Object :< cls) => cls -> Rid -> Int -> IO ()\nviewport_set_usage cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_set_usage\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_usage\" '[Rid, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_set_usage\n\n{-# NOINLINE bindVisualServer_viewport_set_use_arvr #-}\n\n-- | If @true@, the viewport uses augmented or virtual reality technologies. See @ARVRInterface@.\nbindVisualServer_viewport_set_use_arvr :: MethodBind\nbindVisualServer_viewport_set_use_arvr\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_use_arvr\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport uses augmented or virtual reality technologies. See @ARVRInterface@.\nviewport_set_use_arvr ::\n                        (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\nviewport_set_use_arvr cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_set_use_arvr\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_use_arvr\"\n           '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_set_use_arvr\n\n{-# NOINLINE bindVisualServer_viewport_set_vflip #-}\n\n-- | If @true@, the viewport's rendering is flipped vertically.\nbindVisualServer_viewport_set_vflip :: MethodBind\nbindVisualServer_viewport_set_vflip\n  = unsafePerformIO $\n      withCString \"VisualServer\" $\n        \\ clsNamePtr ->\n          withCString \"viewport_set_vflip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the viewport's rendering is flipped vertically.\nviewport_set_vflip ::\n                     (VisualServer :< cls, Object :< cls) => cls -> Rid -> Bool -> IO ()\nviewport_set_vflip cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualServer_viewport_set_vflip\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualServer \"viewport_set_vflip\" '[Rid, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualServer.viewport_set_vflip"
  },
  {
    "path": "src/Godot/Core/VisualShader.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShader\n       (Godot.Core.VisualShader._NODE_ID_INVALID,\n        Godot.Core.VisualShader._TYPE_VERTEX,\n        Godot.Core.VisualShader._TYPE_FRAGMENT,\n        Godot.Core.VisualShader._NODE_ID_OUTPUT,\n        Godot.Core.VisualShader._TYPE_MAX,\n        Godot.Core.VisualShader._TYPE_LIGHT,\n        Godot.Core.VisualShader._input_type_changed,\n        Godot.Core.VisualShader._queue_update,\n        Godot.Core.VisualShader._update_shader,\n        Godot.Core.VisualShader.add_node,\n        Godot.Core.VisualShader.can_connect_nodes,\n        Godot.Core.VisualShader.connect_nodes,\n        Godot.Core.VisualShader.connect_nodes_forced,\n        Godot.Core.VisualShader.disconnect_nodes,\n        Godot.Core.VisualShader.get_graph_offset,\n        Godot.Core.VisualShader.get_node,\n        Godot.Core.VisualShader.get_node_connections,\n        Godot.Core.VisualShader.get_node_list,\n        Godot.Core.VisualShader.get_node_position,\n        Godot.Core.VisualShader.get_valid_node_id,\n        Godot.Core.VisualShader.is_node_connection,\n        Godot.Core.VisualShader.remove_node,\n        Godot.Core.VisualShader.set_graph_offset,\n        Godot.Core.VisualShader.set_mode,\n        Godot.Core.VisualShader.set_node_position)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Shader()\n\n_NODE_ID_INVALID :: Int\n_NODE_ID_INVALID = -1\n\n_TYPE_VERTEX :: Int\n_TYPE_VERTEX = 0\n\n_TYPE_FRAGMENT :: Int\n_TYPE_FRAGMENT = 1\n\n_NODE_ID_OUTPUT :: Int\n_NODE_ID_OUTPUT = 0\n\n_TYPE_MAX :: Int\n_TYPE_MAX = 3\n\n_TYPE_LIGHT :: Int\n_TYPE_LIGHT = 2\n\ninstance NodeProperty VisualShader \"graph_offset\" Vector2 'False\n         where\n        nodeProperty\n          = (get_graph_offset, wrapDroppingSetter set_graph_offset, Nothing)\n\n{-# NOINLINE bindVisualShader__input_type_changed #-}\n\nbindVisualShader__input_type_changed :: MethodBind\nbindVisualShader__input_type_changed\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"_input_type_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_input_type_changed ::\n                      (VisualShader :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\n_input_type_changed cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader__input_type_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"_input_type_changed\" '[Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShader._input_type_changed\n\n{-# NOINLINE bindVisualShader__queue_update #-}\n\nbindVisualShader__queue_update :: MethodBind\nbindVisualShader__queue_update\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"_queue_update\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_queue_update ::\n                (VisualShader :< cls, Object :< cls) => cls -> IO ()\n_queue_update cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader__queue_update (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"_queue_update\" '[] (IO ()) where\n        nodeMethod = Godot.Core.VisualShader._queue_update\n\n{-# NOINLINE bindVisualShader__update_shader #-}\n\nbindVisualShader__update_shader :: MethodBind\nbindVisualShader__update_shader\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"_update_shader\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_shader ::\n                 (VisualShader :< cls, Object :< cls) => cls -> IO ()\n_update_shader cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader__update_shader (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"_update_shader\" '[] (IO ()) where\n        nodeMethod = Godot.Core.VisualShader._update_shader\n\n{-# NOINLINE bindVisualShader_add_node #-}\n\n-- | Adds the specified node to the shader.\nbindVisualShader_add_node :: MethodBind\nbindVisualShader_add_node\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"add_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds the specified node to the shader.\nadd_node ::\n           (VisualShader :< cls, Object :< cls) =>\n           cls -> Int -> VisualShaderNode -> Vector2 -> Int -> IO ()\nadd_node cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader_add_node (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"add_node\"\n           '[Int, VisualShaderNode, Vector2, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShader.add_node\n\n{-# NOINLINE bindVisualShader_can_connect_nodes #-}\n\n-- | Returns @true@ if the specified nodes and ports can be connected together.\nbindVisualShader_can_connect_nodes :: MethodBind\nbindVisualShader_can_connect_nodes\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"can_connect_nodes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the specified nodes and ports can be connected together.\ncan_connect_nodes ::\n                    (VisualShader :< cls, Object :< cls) =>\n                    cls -> Int -> Int -> Int -> Int -> Int -> IO Bool\ncan_connect_nodes cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader_can_connect_nodes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"can_connect_nodes\"\n           '[Int, Int, Int, Int, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualShader.can_connect_nodes\n\n{-# NOINLINE bindVisualShader_connect_nodes #-}\n\n-- | Connects the specified nodes and ports.\nbindVisualShader_connect_nodes :: MethodBind\nbindVisualShader_connect_nodes\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"connect_nodes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Connects the specified nodes and ports.\nconnect_nodes ::\n                (VisualShader :< cls, Object :< cls) =>\n                cls -> Int -> Int -> Int -> Int -> Int -> IO Int\nconnect_nodes cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader_connect_nodes (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"connect_nodes\"\n           '[Int, Int, Int, Int, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShader.connect_nodes\n\n{-# NOINLINE bindVisualShader_connect_nodes_forced #-}\n\n-- | Connects the specified nodes and ports, even if they can't be connected. Such connection is invalid and will not function properly.\nbindVisualShader_connect_nodes_forced :: MethodBind\nbindVisualShader_connect_nodes_forced\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"connect_nodes_forced\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Connects the specified nodes and ports, even if they can't be connected. Such connection is invalid and will not function properly.\nconnect_nodes_forced ::\n                       (VisualShader :< cls, Object :< cls) =>\n                       cls -> Int -> Int -> Int -> Int -> Int -> IO ()\nconnect_nodes_forced cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader_connect_nodes_forced\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"connect_nodes_forced\"\n           '[Int, Int, Int, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShader.connect_nodes_forced\n\n{-# NOINLINE bindVisualShader_disconnect_nodes #-}\n\n-- | Connects the specified nodes and ports.\nbindVisualShader_disconnect_nodes :: MethodBind\nbindVisualShader_disconnect_nodes\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"disconnect_nodes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Connects the specified nodes and ports.\ndisconnect_nodes ::\n                   (VisualShader :< cls, Object :< cls) =>\n                   cls -> Int -> Int -> Int -> Int -> Int -> IO ()\ndisconnect_nodes cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader_disconnect_nodes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"disconnect_nodes\"\n           '[Int, Int, Int, Int, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShader.disconnect_nodes\n\n{-# NOINLINE bindVisualShader_get_graph_offset #-}\n\n-- | The offset vector of the whole graph.\nbindVisualShader_get_graph_offset :: MethodBind\nbindVisualShader_get_graph_offset\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"get_graph_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The offset vector of the whole graph.\nget_graph_offset ::\n                   (VisualShader :< cls, Object :< cls) => cls -> IO Vector2\nget_graph_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader_get_graph_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"get_graph_offset\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.VisualShader.get_graph_offset\n\n{-# NOINLINE bindVisualShader_get_node #-}\n\n-- | Returns the shader node instance with specified @type@ and @id@.\nbindVisualShader_get_node :: MethodBind\nbindVisualShader_get_node\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"get_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the shader node instance with specified @type@ and @id@.\nget_node ::\n           (VisualShader :< cls, Object :< cls) =>\n           cls -> Int -> Int -> IO VisualShaderNode\nget_node cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader_get_node (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"get_node\" '[Int, Int]\n           (IO VisualShaderNode)\n         where\n        nodeMethod = Godot.Core.VisualShader.get_node\n\n{-# NOINLINE bindVisualShader_get_node_connections #-}\n\n-- | Returns the list of connected nodes with the specified type.\nbindVisualShader_get_node_connections :: MethodBind\nbindVisualShader_get_node_connections\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_connections\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the list of connected nodes with the specified type.\nget_node_connections ::\n                       (VisualShader :< cls, Object :< cls) => cls -> Int -> IO Array\nget_node_connections cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader_get_node_connections\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"get_node_connections\" '[Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.VisualShader.get_node_connections\n\n{-# NOINLINE bindVisualShader_get_node_list #-}\n\n-- | Returns the list of all nodes in the shader with the specified type.\nbindVisualShader_get_node_list :: MethodBind\nbindVisualShader_get_node_list\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the list of all nodes in the shader with the specified type.\nget_node_list ::\n                (VisualShader :< cls, Object :< cls) =>\n                cls -> Int -> IO PoolIntArray\nget_node_list cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader_get_node_list (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"get_node_list\" '[Int]\n           (IO PoolIntArray)\n         where\n        nodeMethod = Godot.Core.VisualShader.get_node_list\n\n{-# NOINLINE bindVisualShader_get_node_position #-}\n\n-- | Returns the position of the specified node within the shader graph.\nbindVisualShader_get_node_position :: MethodBind\nbindVisualShader_get_node_position\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the position of the specified node within the shader graph.\nget_node_position ::\n                    (VisualShader :< cls, Object :< cls) =>\n                    cls -> Int -> Int -> IO Vector2\nget_node_position cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader_get_node_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"get_node_position\" '[Int, Int]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.VisualShader.get_node_position\n\n{-# NOINLINE bindVisualShader_get_valid_node_id #-}\n\nbindVisualShader_get_valid_node_id :: MethodBind\nbindVisualShader_get_valid_node_id\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"get_valid_node_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_valid_node_id ::\n                    (VisualShader :< cls, Object :< cls) => cls -> Int -> IO Int\nget_valid_node_id cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader_get_valid_node_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"get_valid_node_id\" '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShader.get_valid_node_id\n\n{-# NOINLINE bindVisualShader_is_node_connection #-}\n\n-- | Returns @true@ if the specified node and port connection exist.\nbindVisualShader_is_node_connection :: MethodBind\nbindVisualShader_is_node_connection\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"is_node_connection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the specified node and port connection exist.\nis_node_connection ::\n                     (VisualShader :< cls, Object :< cls) =>\n                     cls -> Int -> Int -> Int -> Int -> Int -> IO Bool\nis_node_connection cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader_is_node_connection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"is_node_connection\"\n           '[Int, Int, Int, Int, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualShader.is_node_connection\n\n{-# NOINLINE bindVisualShader_remove_node #-}\n\n-- | Removes the specified node from the shader.\nbindVisualShader_remove_node :: MethodBind\nbindVisualShader_remove_node\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"remove_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the specified node from the shader.\nremove_node ::\n              (VisualShader :< cls, Object :< cls) => cls -> Int -> Int -> IO ()\nremove_node cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader_remove_node (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"remove_node\" '[Int, Int] (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShader.remove_node\n\n{-# NOINLINE bindVisualShader_set_graph_offset #-}\n\n-- | The offset vector of the whole graph.\nbindVisualShader_set_graph_offset :: MethodBind\nbindVisualShader_set_graph_offset\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"set_graph_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The offset vector of the whole graph.\nset_graph_offset ::\n                   (VisualShader :< cls, Object :< cls) => cls -> Vector2 -> IO ()\nset_graph_offset cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader_set_graph_offset\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"set_graph_offset\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShader.set_graph_offset\n\n{-# NOINLINE bindVisualShader_set_mode #-}\n\n-- | Sets the mode of this shader.\nbindVisualShader_set_mode :: MethodBind\nbindVisualShader_set_mode\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"set_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the mode of this shader.\nset_mode ::\n           (VisualShader :< cls, Object :< cls) => cls -> Int -> IO ()\nset_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader_set_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"set_mode\" '[Int] (IO ()) where\n        nodeMethod = Godot.Core.VisualShader.set_mode\n\n{-# NOINLINE bindVisualShader_set_node_position #-}\n\n-- | Sets the position of the specified node.\nbindVisualShader_set_node_position :: MethodBind\nbindVisualShader_set_node_position\n  = unsafePerformIO $\n      withCString \"VisualShader\" $\n        \\ clsNamePtr ->\n          withCString \"set_node_position\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the position of the specified node.\nset_node_position ::\n                    (VisualShader :< cls, Object :< cls) =>\n                    cls -> Int -> Int -> Vector2 -> IO ()\nset_node_position cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShader_set_node_position\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShader \"set_node_position\"\n           '[Int, Int, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShader.set_node_position"
  },
  {
    "path": "src/Godot/Core/VisualShaderNode.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNode\n       (Godot.Core.VisualShaderNode._PORT_TYPE_MAX,\n        Godot.Core.VisualShaderNode._PORT_TYPE_TRANSFORM,\n        Godot.Core.VisualShaderNode._PORT_TYPE_VECTOR,\n        Godot.Core.VisualShaderNode._PORT_TYPE_SCALAR,\n        Godot.Core.VisualShaderNode._PORT_TYPE_SAMPLER,\n        Godot.Core.VisualShaderNode._PORT_TYPE_BOOLEAN,\n        Godot.Core.VisualShaderNode.sig_editor_refresh_request,\n        Godot.Core.VisualShaderNode.get_default_input_values,\n        Godot.Core.VisualShaderNode.get_input_port_default_value,\n        Godot.Core.VisualShaderNode.get_output_port_for_preview,\n        Godot.Core.VisualShaderNode.set_default_input_values,\n        Godot.Core.VisualShaderNode.set_input_port_default_value,\n        Godot.Core.VisualShaderNode.set_output_port_for_preview)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_PORT_TYPE_MAX :: Int\n_PORT_TYPE_MAX = 5\n\n_PORT_TYPE_TRANSFORM :: Int\n_PORT_TYPE_TRANSFORM = 3\n\n_PORT_TYPE_VECTOR :: Int\n_PORT_TYPE_VECTOR = 1\n\n_PORT_TYPE_SCALAR :: Int\n_PORT_TYPE_SCALAR = 0\n\n_PORT_TYPE_SAMPLER :: Int\n_PORT_TYPE_SAMPLER = 4\n\n_PORT_TYPE_BOOLEAN :: Int\n_PORT_TYPE_BOOLEAN = 2\n\n-- | Emitted when the node requests an editor refresh. Currently called only in setter of @VisualShaderNodeTexture.source@, @VisualShaderNodeTexture@, and @VisualShaderNodeCubeMap@ (and their derivatives).\nsig_editor_refresh_request ::\n                           Godot.Internal.Dispatch.Signal VisualShaderNode\nsig_editor_refresh_request\n  = Godot.Internal.Dispatch.Signal \"editor_refresh_request\"\n\ninstance NodeSignal VisualShaderNode \"editor_refresh_request\" '[]\n\ninstance NodeProperty VisualShaderNode \"default_input_values\" Array\n           'False\n         where\n        nodeProperty\n          = (get_default_input_values,\n             wrapDroppingSetter set_default_input_values, Nothing)\n\ninstance NodeProperty VisualShaderNode \"output_port_for_preview\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_output_port_for_preview,\n             wrapDroppingSetter set_output_port_for_preview, Nothing)\n\n{-# NOINLINE bindVisualShaderNode_get_default_input_values #-}\n\n-- | Returns an @Array@ containing default values for all of the input ports of the node in the form @@index0, value0, index1, value1, ...@@.\nbindVisualShaderNode_get_default_input_values :: MethodBind\nbindVisualShaderNode_get_default_input_values\n  = unsafePerformIO $\n      withCString \"VisualShaderNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_default_input_values\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an @Array@ containing default values for all of the input ports of the node in the form @@index0, value0, index1, value1, ...@@.\nget_default_input_values ::\n                           (VisualShaderNode :< cls, Object :< cls) => cls -> IO Array\nget_default_input_values cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNode_get_default_input_values\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNode \"get_default_input_values\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Core.VisualShaderNode.get_default_input_values\n\n{-# NOINLINE bindVisualShaderNode_get_input_port_default_value #-}\n\n-- | Returns the default value of the input @port@.\nbindVisualShaderNode_get_input_port_default_value :: MethodBind\nbindVisualShaderNode_get_input_port_default_value\n  = unsafePerformIO $\n      withCString \"VisualShaderNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_input_port_default_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the default value of the input @port@.\nget_input_port_default_value ::\n                               (VisualShaderNode :< cls, Object :< cls) =>\n                               cls -> Int -> IO GodotVariant\nget_input_port_default_value cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNode_get_input_port_default_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNode \"get_input_port_default_value\"\n           '[Int]\n           (IO GodotVariant)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNode.get_input_port_default_value\n\n{-# NOINLINE bindVisualShaderNode_get_output_port_for_preview #-}\n\n-- | Sets the output port index which will be showed for preview. If set to @-1@ no port will be open for preview.\nbindVisualShaderNode_get_output_port_for_preview :: MethodBind\nbindVisualShaderNode_get_output_port_for_preview\n  = unsafePerformIO $\n      withCString \"VisualShaderNode\" $\n        \\ clsNamePtr ->\n          withCString \"get_output_port_for_preview\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the output port index which will be showed for preview. If set to @-1@ no port will be open for preview.\nget_output_port_for_preview ::\n                              (VisualShaderNode :< cls, Object :< cls) => cls -> IO Int\nget_output_port_for_preview cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNode_get_output_port_for_preview\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNode \"get_output_port_for_preview\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNode.get_output_port_for_preview\n\n{-# NOINLINE bindVisualShaderNode_set_default_input_values #-}\n\n-- | Sets the default input ports values using an @Array@ of the form @@index0, value0, index1, value1, ...@@. For example: @@0, Vector3(0, 0, 0), 1, Vector3(0, 0, 0)@@.\nbindVisualShaderNode_set_default_input_values :: MethodBind\nbindVisualShaderNode_set_default_input_values\n  = unsafePerformIO $\n      withCString \"VisualShaderNode\" $\n        \\ clsNamePtr ->\n          withCString \"set_default_input_values\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the default input ports values using an @Array@ of the form @@index0, value0, index1, value1, ...@@. For example: @@0, Vector3(0, 0, 0), 1, Vector3(0, 0, 0)@@.\nset_default_input_values ::\n                           (VisualShaderNode :< cls, Object :< cls) => cls -> Array -> IO ()\nset_default_input_values cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNode_set_default_input_values\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNode \"set_default_input_values\"\n           '[Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNode.set_default_input_values\n\n{-# NOINLINE bindVisualShaderNode_set_input_port_default_value #-}\n\n-- | Sets the default value for the selected input @port@.\nbindVisualShaderNode_set_input_port_default_value :: MethodBind\nbindVisualShaderNode_set_input_port_default_value\n  = unsafePerformIO $\n      withCString \"VisualShaderNode\" $\n        \\ clsNamePtr ->\n          withCString \"set_input_port_default_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the default value for the selected input @port@.\nset_input_port_default_value ::\n                               (VisualShaderNode :< cls, Object :< cls) =>\n                               cls -> Int -> GodotVariant -> IO ()\nset_input_port_default_value cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNode_set_input_port_default_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNode \"set_input_port_default_value\"\n           '[Int, GodotVariant]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNode.set_input_port_default_value\n\n{-# NOINLINE bindVisualShaderNode_set_output_port_for_preview #-}\n\n-- | Sets the output port index which will be showed for preview. If set to @-1@ no port will be open for preview.\nbindVisualShaderNode_set_output_port_for_preview :: MethodBind\nbindVisualShaderNode_set_output_port_for_preview\n  = unsafePerformIO $\n      withCString \"VisualShaderNode\" $\n        \\ clsNamePtr ->\n          withCString \"set_output_port_for_preview\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the output port index which will be showed for preview. If set to @-1@ no port will be open for preview.\nset_output_port_for_preview ::\n                              (VisualShaderNode :< cls, Object :< cls) => cls -> Int -> IO ()\nset_output_port_for_preview cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNode_set_output_port_for_preview\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNode \"set_output_port_for_preview\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNode.set_output_port_for_preview"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeBooleanConstant.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeBooleanConstant\n       (Godot.Core.VisualShaderNodeBooleanConstant.get_constant,\n        Godot.Core.VisualShaderNodeBooleanConstant.set_constant)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\ninstance NodeProperty VisualShaderNodeBooleanConstant \"constant\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (get_constant, wrapDroppingSetter set_constant, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeBooleanConstant_get_constant #-}\n\n-- | A boolean constant which represents a state of this node.\nbindVisualShaderNodeBooleanConstant_get_constant :: MethodBind\nbindVisualShaderNodeBooleanConstant_get_constant\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeBooleanConstant\" $\n        \\ clsNamePtr ->\n          withCString \"get_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A boolean constant which represents a state of this node.\nget_constant ::\n               (VisualShaderNodeBooleanConstant :< cls, Object :< cls) =>\n               cls -> IO Bool\nget_constant cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeBooleanConstant_get_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeBooleanConstant \"get_constant\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeBooleanConstant.get_constant\n\n{-# NOINLINE bindVisualShaderNodeBooleanConstant_set_constant #-}\n\n-- | A boolean constant which represents a state of this node.\nbindVisualShaderNodeBooleanConstant_set_constant :: MethodBind\nbindVisualShaderNodeBooleanConstant_set_constant\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeBooleanConstant\" $\n        \\ clsNamePtr ->\n          withCString \"set_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A boolean constant which represents a state of this node.\nset_constant ::\n               (VisualShaderNodeBooleanConstant :< cls, Object :< cls) =>\n               cls -> Bool -> IO ()\nset_constant cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeBooleanConstant_set_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeBooleanConstant \"set_constant\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeBooleanConstant.set_constant"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeBooleanUniform.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeBooleanUniform () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNodeUniform()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeColorConstant.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeColorConstant\n       (Godot.Core.VisualShaderNodeColorConstant.get_constant,\n        Godot.Core.VisualShaderNodeColorConstant.set_constant)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\ninstance NodeProperty VisualShaderNodeColorConstant \"constant\"\n           Color\n           'False\n         where\n        nodeProperty\n          = (get_constant, wrapDroppingSetter set_constant, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeColorConstant_get_constant #-}\n\n-- | A @Color@ constant which represents a state of this node.\nbindVisualShaderNodeColorConstant_get_constant :: MethodBind\nbindVisualShaderNodeColorConstant_get_constant\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeColorConstant\" $\n        \\ clsNamePtr ->\n          withCString \"get_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A @Color@ constant which represents a state of this node.\nget_constant ::\n               (VisualShaderNodeColorConstant :< cls, Object :< cls) =>\n               cls -> IO Color\nget_constant cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeColorConstant_get_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeColorConstant \"get_constant\"\n           '[]\n           (IO Color)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeColorConstant.get_constant\n\n{-# NOINLINE bindVisualShaderNodeColorConstant_set_constant #-}\n\n-- | A @Color@ constant which represents a state of this node.\nbindVisualShaderNodeColorConstant_set_constant :: MethodBind\nbindVisualShaderNodeColorConstant_set_constant\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeColorConstant\" $\n        \\ clsNamePtr ->\n          withCString \"set_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A @Color@ constant which represents a state of this node.\nset_constant ::\n               (VisualShaderNodeColorConstant :< cls, Object :< cls) =>\n               cls -> Color -> IO ()\nset_constant cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeColorConstant_set_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeColorConstant \"set_constant\"\n           '[Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeColorConstant.set_constant"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeColorFunc.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeColorFunc\n       (Godot.Core.VisualShaderNodeColorFunc._FUNC_GRAYSCALE,\n        Godot.Core.VisualShaderNodeColorFunc._FUNC_SEPIA,\n        Godot.Core.VisualShaderNodeColorFunc.get_function,\n        Godot.Core.VisualShaderNodeColorFunc.set_function)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\n_FUNC_GRAYSCALE :: Int\n_FUNC_GRAYSCALE = 0\n\n_FUNC_SEPIA :: Int\n_FUNC_SEPIA = 1\n\ninstance NodeProperty VisualShaderNodeColorFunc \"function\" Int\n           'False\n         where\n        nodeProperty\n          = (get_function, wrapDroppingSetter set_function, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeColorFunc_get_function #-}\n\n-- | A function to be applied to the input color. See @enum Function@ for options.\nbindVisualShaderNodeColorFunc_get_function :: MethodBind\nbindVisualShaderNodeColorFunc_get_function\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeColorFunc\" $\n        \\ clsNamePtr ->\n          withCString \"get_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A function to be applied to the input color. See @enum Function@ for options.\nget_function ::\n               (VisualShaderNodeColorFunc :< cls, Object :< cls) => cls -> IO Int\nget_function cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeColorFunc_get_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeColorFunc \"get_function\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeColorFunc.get_function\n\n{-# NOINLINE bindVisualShaderNodeColorFunc_set_function #-}\n\n-- | A function to be applied to the input color. See @enum Function@ for options.\nbindVisualShaderNodeColorFunc_set_function :: MethodBind\nbindVisualShaderNodeColorFunc_set_function\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeColorFunc\" $\n        \\ clsNamePtr ->\n          withCString \"set_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A function to be applied to the input color. See @enum Function@ for options.\nset_function ::\n               (VisualShaderNodeColorFunc :< cls, Object :< cls) =>\n               cls -> Int -> IO ()\nset_function cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeColorFunc_set_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeColorFunc \"set_function\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeColorFunc.set_function"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeColorOp.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeColorOp\n       (Godot.Core.VisualShaderNodeColorOp._OP_SCREEN,\n        Godot.Core.VisualShaderNodeColorOp._OP_SOFT_LIGHT,\n        Godot.Core.VisualShaderNodeColorOp._OP_DODGE,\n        Godot.Core.VisualShaderNodeColorOp._OP_BURN,\n        Godot.Core.VisualShaderNodeColorOp._OP_HARD_LIGHT,\n        Godot.Core.VisualShaderNodeColorOp._OP_DARKEN,\n        Godot.Core.VisualShaderNodeColorOp._OP_DIFFERENCE,\n        Godot.Core.VisualShaderNodeColorOp._OP_OVERLAY,\n        Godot.Core.VisualShaderNodeColorOp._OP_LIGHTEN,\n        Godot.Core.VisualShaderNodeColorOp.get_operator,\n        Godot.Core.VisualShaderNodeColorOp.set_operator)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\n_OP_SCREEN :: Int\n_OP_SCREEN = 0\n\n_OP_SOFT_LIGHT :: Int\n_OP_SOFT_LIGHT = 7\n\n_OP_DODGE :: Int\n_OP_DODGE = 5\n\n_OP_BURN :: Int\n_OP_BURN = 6\n\n_OP_HARD_LIGHT :: Int\n_OP_HARD_LIGHT = 8\n\n_OP_DARKEN :: Int\n_OP_DARKEN = 2\n\n_OP_DIFFERENCE :: Int\n_OP_DIFFERENCE = 1\n\n_OP_OVERLAY :: Int\n_OP_OVERLAY = 4\n\n_OP_LIGHTEN :: Int\n_OP_LIGHTEN = 3\n\ninstance NodeProperty VisualShaderNodeColorOp \"operator\" Int 'False\n         where\n        nodeProperty\n          = (get_operator, wrapDroppingSetter set_operator, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeColorOp_get_operator #-}\n\n-- | An operator to be applied to the inputs. See @enum Operator@ for options.\nbindVisualShaderNodeColorOp_get_operator :: MethodBind\nbindVisualShaderNodeColorOp_get_operator\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeColorOp\" $\n        \\ clsNamePtr ->\n          withCString \"get_operator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | An operator to be applied to the inputs. See @enum Operator@ for options.\nget_operator ::\n               (VisualShaderNodeColorOp :< cls, Object :< cls) => cls -> IO Int\nget_operator cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeColorOp_get_operator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeColorOp \"get_operator\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeColorOp.get_operator\n\n{-# NOINLINE bindVisualShaderNodeColorOp_set_operator #-}\n\n-- | An operator to be applied to the inputs. See @enum Operator@ for options.\nbindVisualShaderNodeColorOp_set_operator :: MethodBind\nbindVisualShaderNodeColorOp_set_operator\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeColorOp\" $\n        \\ clsNamePtr ->\n          withCString \"set_operator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | An operator to be applied to the inputs. See @enum Operator@ for options.\nset_operator ::\n               (VisualShaderNodeColorOp :< cls, Object :< cls) =>\n               cls -> Int -> IO ()\nset_operator cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeColorOp_set_operator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeColorOp \"set_operator\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeColorOp.set_operator"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeColorUniform.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeColorUniform () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNodeUniform()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeCompare.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeCompare\n       (Godot.Core.VisualShaderNodeCompare._FUNC_GREATER_THAN_EQUAL,\n        Godot.Core.VisualShaderNodeCompare._FUNC_GREATER_THAN,\n        Godot.Core.VisualShaderNodeCompare._CTYPE_SCALAR,\n        Godot.Core.VisualShaderNodeCompare._CTYPE_TRANSFORM,\n        Godot.Core.VisualShaderNodeCompare._FUNC_LESS_THAN,\n        Godot.Core.VisualShaderNodeCompare._FUNC_NOT_EQUAL,\n        Godot.Core.VisualShaderNodeCompare._COND_ANY,\n        Godot.Core.VisualShaderNodeCompare._FUNC_LESS_THAN_EQUAL,\n        Godot.Core.VisualShaderNodeCompare._CTYPE_VECTOR,\n        Godot.Core.VisualShaderNodeCompare._FUNC_EQUAL,\n        Godot.Core.VisualShaderNodeCompare._COND_ALL,\n        Godot.Core.VisualShaderNodeCompare._CTYPE_BOOLEAN,\n        Godot.Core.VisualShaderNodeCompare.get_comparison_type,\n        Godot.Core.VisualShaderNodeCompare.get_condition,\n        Godot.Core.VisualShaderNodeCompare.get_function,\n        Godot.Core.VisualShaderNodeCompare.set_comparison_type,\n        Godot.Core.VisualShaderNodeCompare.set_condition,\n        Godot.Core.VisualShaderNodeCompare.set_function)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\n_FUNC_GREATER_THAN_EQUAL :: Int\n_FUNC_GREATER_THAN_EQUAL = 3\n\n_FUNC_GREATER_THAN :: Int\n_FUNC_GREATER_THAN = 2\n\n_CTYPE_SCALAR :: Int\n_CTYPE_SCALAR = 0\n\n_CTYPE_TRANSFORM :: Int\n_CTYPE_TRANSFORM = 3\n\n_FUNC_LESS_THAN :: Int\n_FUNC_LESS_THAN = 4\n\n_FUNC_NOT_EQUAL :: Int\n_FUNC_NOT_EQUAL = 1\n\n_COND_ANY :: Int\n_COND_ANY = 1\n\n_FUNC_LESS_THAN_EQUAL :: Int\n_FUNC_LESS_THAN_EQUAL = 5\n\n_CTYPE_VECTOR :: Int\n_CTYPE_VECTOR = 1\n\n_FUNC_EQUAL :: Int\n_FUNC_EQUAL = 0\n\n_COND_ALL :: Int\n_COND_ALL = 0\n\n_CTYPE_BOOLEAN :: Int\n_CTYPE_BOOLEAN = 2\n\ninstance NodeProperty VisualShaderNodeCompare \"condition\" Int\n           'False\n         where\n        nodeProperty\n          = (get_condition, wrapDroppingSetter set_condition, Nothing)\n\ninstance NodeProperty VisualShaderNodeCompare \"function\" Int 'False\n         where\n        nodeProperty\n          = (get_function, wrapDroppingSetter set_function, Nothing)\n\ninstance NodeProperty VisualShaderNodeCompare \"type\" Int 'False\n         where\n        nodeProperty\n          = (get_comparison_type, wrapDroppingSetter set_comparison_type,\n             Nothing)\n\n{-# NOINLINE bindVisualShaderNodeCompare_get_comparison_type #-}\n\n-- | The type to be used in the comparison. See @enum ComparisonType@ for options.\nbindVisualShaderNodeCompare_get_comparison_type :: MethodBind\nbindVisualShaderNodeCompare_get_comparison_type\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCompare\" $\n        \\ clsNamePtr ->\n          withCString \"get_comparison_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The type to be used in the comparison. See @enum ComparisonType@ for options.\nget_comparison_type ::\n                      (VisualShaderNodeCompare :< cls, Object :< cls) => cls -> IO Int\nget_comparison_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeCompare_get_comparison_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCompare \"get_comparison_type\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCompare.get_comparison_type\n\n{-# NOINLINE bindVisualShaderNodeCompare_get_condition #-}\n\n-- | Extra condition which is applied if @type@ is set to @CTYPE_VECTOR@.\nbindVisualShaderNodeCompare_get_condition :: MethodBind\nbindVisualShaderNodeCompare_get_condition\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCompare\" $\n        \\ clsNamePtr ->\n          withCString \"get_condition\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Extra condition which is applied if @type@ is set to @CTYPE_VECTOR@.\nget_condition ::\n                (VisualShaderNodeCompare :< cls, Object :< cls) => cls -> IO Int\nget_condition cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeCompare_get_condition\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCompare \"get_condition\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCompare.get_condition\n\n{-# NOINLINE bindVisualShaderNodeCompare_get_function #-}\n\n-- | A comparison function. See @enum Function@ for options.\nbindVisualShaderNodeCompare_get_function :: MethodBind\nbindVisualShaderNodeCompare_get_function\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCompare\" $\n        \\ clsNamePtr ->\n          withCString \"get_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A comparison function. See @enum Function@ for options.\nget_function ::\n               (VisualShaderNodeCompare :< cls, Object :< cls) => cls -> IO Int\nget_function cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeCompare_get_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCompare \"get_function\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCompare.get_function\n\n{-# NOINLINE bindVisualShaderNodeCompare_set_comparison_type #-}\n\n-- | The type to be used in the comparison. See @enum ComparisonType@ for options.\nbindVisualShaderNodeCompare_set_comparison_type :: MethodBind\nbindVisualShaderNodeCompare_set_comparison_type\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCompare\" $\n        \\ clsNamePtr ->\n          withCString \"set_comparison_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The type to be used in the comparison. See @enum ComparisonType@ for options.\nset_comparison_type ::\n                      (VisualShaderNodeCompare :< cls, Object :< cls) =>\n                      cls -> Int -> IO ()\nset_comparison_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeCompare_set_comparison_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCompare \"set_comparison_type\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCompare.set_comparison_type\n\n{-# NOINLINE bindVisualShaderNodeCompare_set_condition #-}\n\n-- | Extra condition which is applied if @type@ is set to @CTYPE_VECTOR@.\nbindVisualShaderNodeCompare_set_condition :: MethodBind\nbindVisualShaderNodeCompare_set_condition\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCompare\" $\n        \\ clsNamePtr ->\n          withCString \"set_condition\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Extra condition which is applied if @type@ is set to @CTYPE_VECTOR@.\nset_condition ::\n                (VisualShaderNodeCompare :< cls, Object :< cls) =>\n                cls -> Int -> IO ()\nset_condition cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeCompare_set_condition\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCompare \"set_condition\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCompare.set_condition\n\n{-# NOINLINE bindVisualShaderNodeCompare_set_function #-}\n\n-- | A comparison function. See @enum Function@ for options.\nbindVisualShaderNodeCompare_set_function :: MethodBind\nbindVisualShaderNodeCompare_set_function\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCompare\" $\n        \\ clsNamePtr ->\n          withCString \"set_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A comparison function. See @enum Function@ for options.\nset_function ::\n               (VisualShaderNodeCompare :< cls, Object :< cls) =>\n               cls -> Int -> IO ()\nset_function cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeCompare_set_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCompare \"set_function\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCompare.set_function"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeCubeMap.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeCubeMap\n       (Godot.Core.VisualShaderNodeCubeMap._TYPE_DATA,\n        Godot.Core.VisualShaderNodeCubeMap._SOURCE_PORT,\n        Godot.Core.VisualShaderNodeCubeMap._TYPE_COLOR,\n        Godot.Core.VisualShaderNodeCubeMap._SOURCE_TEXTURE,\n        Godot.Core.VisualShaderNodeCubeMap._TYPE_NORMALMAP,\n        Godot.Core.VisualShaderNodeCubeMap.get_cube_map,\n        Godot.Core.VisualShaderNodeCubeMap.get_source,\n        Godot.Core.VisualShaderNodeCubeMap.get_texture_type,\n        Godot.Core.VisualShaderNodeCubeMap.set_cube_map,\n        Godot.Core.VisualShaderNodeCubeMap.set_source,\n        Godot.Core.VisualShaderNodeCubeMap.set_texture_type)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\n_TYPE_DATA :: Int\n_TYPE_DATA = 0\n\n_SOURCE_PORT :: Int\n_SOURCE_PORT = 1\n\n_TYPE_COLOR :: Int\n_TYPE_COLOR = 1\n\n_SOURCE_TEXTURE :: Int\n_SOURCE_TEXTURE = 0\n\n_TYPE_NORMALMAP :: Int\n_TYPE_NORMALMAP = 2\n\ninstance NodeProperty VisualShaderNodeCubeMap \"cube_map\" CubeMap\n           'False\n         where\n        nodeProperty\n          = (get_cube_map, wrapDroppingSetter set_cube_map, Nothing)\n\ninstance NodeProperty VisualShaderNodeCubeMap \"source\" Int 'False\n         where\n        nodeProperty = (get_source, wrapDroppingSetter set_source, Nothing)\n\ninstance NodeProperty VisualShaderNodeCubeMap \"texture_type\" Int\n           'False\n         where\n        nodeProperty\n          = (get_texture_type, wrapDroppingSetter set_texture_type, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeCubeMap_get_cube_map #-}\n\n-- | The @CubeMap@ texture to sample when using @SOURCE_TEXTURE@ as @source@.\nbindVisualShaderNodeCubeMap_get_cube_map :: MethodBind\nbindVisualShaderNodeCubeMap_get_cube_map\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCubeMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_cube_map\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @CubeMap@ texture to sample when using @SOURCE_TEXTURE@ as @source@.\nget_cube_map ::\n               (VisualShaderNodeCubeMap :< cls, Object :< cls) =>\n               cls -> IO CubeMap\nget_cube_map cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeCubeMap_get_cube_map\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCubeMap \"get_cube_map\" '[]\n           (IO CubeMap)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCubeMap.get_cube_map\n\n{-# NOINLINE bindVisualShaderNodeCubeMap_get_source #-}\n\n-- | Defines which source should be used for the sampling. See @enum Source@ for options.\nbindVisualShaderNodeCubeMap_get_source :: MethodBind\nbindVisualShaderNodeCubeMap_get_source\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCubeMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_source\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines which source should be used for the sampling. See @enum Source@ for options.\nget_source ::\n             (VisualShaderNodeCubeMap :< cls, Object :< cls) => cls -> IO Int\nget_source cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeCubeMap_get_source\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCubeMap \"get_source\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCubeMap.get_source\n\n{-# NOINLINE bindVisualShaderNodeCubeMap_get_texture_type #-}\n\n-- | Defines the type of data provided by the source texture. See @enum TextureType@ for options.\nbindVisualShaderNodeCubeMap_get_texture_type :: MethodBind\nbindVisualShaderNodeCubeMap_get_texture_type\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCubeMap\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines the type of data provided by the source texture. See @enum TextureType@ for options.\nget_texture_type ::\n                   (VisualShaderNodeCubeMap :< cls, Object :< cls) => cls -> IO Int\nget_texture_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeCubeMap_get_texture_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCubeMap \"get_texture_type\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCubeMap.get_texture_type\n\n{-# NOINLINE bindVisualShaderNodeCubeMap_set_cube_map #-}\n\n-- | The @CubeMap@ texture to sample when using @SOURCE_TEXTURE@ as @source@.\nbindVisualShaderNodeCubeMap_set_cube_map :: MethodBind\nbindVisualShaderNodeCubeMap_set_cube_map\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCubeMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_cube_map\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @CubeMap@ texture to sample when using @SOURCE_TEXTURE@ as @source@.\nset_cube_map ::\n               (VisualShaderNodeCubeMap :< cls, Object :< cls) =>\n               cls -> CubeMap -> IO ()\nset_cube_map cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeCubeMap_set_cube_map\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCubeMap \"set_cube_map\"\n           '[CubeMap]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCubeMap.set_cube_map\n\n{-# NOINLINE bindVisualShaderNodeCubeMap_set_source #-}\n\n-- | Defines which source should be used for the sampling. See @enum Source@ for options.\nbindVisualShaderNodeCubeMap_set_source :: MethodBind\nbindVisualShaderNodeCubeMap_set_source\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCubeMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_source\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines which source should be used for the sampling. See @enum Source@ for options.\nset_source ::\n             (VisualShaderNodeCubeMap :< cls, Object :< cls) =>\n             cls -> Int -> IO ()\nset_source cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeCubeMap_set_source\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCubeMap \"set_source\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCubeMap.set_source\n\n{-# NOINLINE bindVisualShaderNodeCubeMap_set_texture_type #-}\n\n-- | Defines the type of data provided by the source texture. See @enum TextureType@ for options.\nbindVisualShaderNodeCubeMap_set_texture_type :: MethodBind\nbindVisualShaderNodeCubeMap_set_texture_type\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCubeMap\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines the type of data provided by the source texture. See @enum TextureType@ for options.\nset_texture_type ::\n                   (VisualShaderNodeCubeMap :< cls, Object :< cls) =>\n                   cls -> Int -> IO ()\nset_texture_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeCubeMap_set_texture_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCubeMap \"set_texture_type\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCubeMap.set_texture_type"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeCubeMapUniform.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeCubeMapUniform () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNodeTextureUniform()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeCustom.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeCustom\n       (Godot.Core.VisualShaderNodeCustom._get_category,\n        Godot.Core.VisualShaderNodeCustom._get_code,\n        Godot.Core.VisualShaderNodeCustom._get_description,\n        Godot.Core.VisualShaderNodeCustom._get_global_code,\n        Godot.Core.VisualShaderNodeCustom._get_input_port_count,\n        Godot.Core.VisualShaderNodeCustom._get_input_port_name,\n        Godot.Core.VisualShaderNodeCustom._get_input_port_type,\n        Godot.Core.VisualShaderNodeCustom._get_name,\n        Godot.Core.VisualShaderNodeCustom._get_output_port_count,\n        Godot.Core.VisualShaderNodeCustom._get_output_port_name,\n        Godot.Core.VisualShaderNodeCustom._get_output_port_type,\n        Godot.Core.VisualShaderNodeCustom._get_return_icon_type,\n        Godot.Core.VisualShaderNodeCustom._get_subcategory)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\n{-# NOINLINE bindVisualShaderNodeCustom__get_category #-}\n\n-- | Override this method to define the category of the associated custom node in the Visual Shader Editor's members dialog.\n--   \t\t\t\tDefining this method is __optional__. If not overridden, the node will be filed under the \"Custom\" category.\nbindVisualShaderNodeCustom__get_category :: MethodBind\nbindVisualShaderNodeCustom__get_category\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCustom\" $\n        \\ clsNamePtr ->\n          withCString \"_get_category\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to define the category of the associated custom node in the Visual Shader Editor's members dialog.\n--   \t\t\t\tDefining this method is __optional__. If not overridden, the node will be filed under the \"Custom\" category.\n_get_category ::\n                (VisualShaderNodeCustom :< cls, Object :< cls) =>\n                cls -> IO GodotString\n_get_category cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeCustom__get_category\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCustom \"_get_category\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCustom._get_category\n\n{-# NOINLINE bindVisualShaderNodeCustom__get_code #-}\n\n-- | Override this method to define the actual shader code of the associated custom node. The shader code should be returned as a string, which can have multiple lines (the @\"\"\"@ multiline string construct can be used for convenience).\n--   \t\t\t\tThe @input_vars@ and @output_vars@ arrays contain the string names of the various input and output variables, as defined by @_get_input_*@ and @_get_output_*@ virtual methods in this class.\n--   \t\t\t\tThe output ports can be assigned values in the shader code. For example, @return output_vars@0@ + \" = \" + input_vars@0@ + \";\"@.\n--   \t\t\t\tYou can customize the generated code based on the shader @mode@ (see @enum Shader.Mode@) and/or @type@ (see @enum VisualShader.Type@).\n--   \t\t\t\tDefining this method is __required__.\nbindVisualShaderNodeCustom__get_code :: MethodBind\nbindVisualShaderNodeCustom__get_code\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCustom\" $\n        \\ clsNamePtr ->\n          withCString \"_get_code\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to define the actual shader code of the associated custom node. The shader code should be returned as a string, which can have multiple lines (the @\"\"\"@ multiline string construct can be used for convenience).\n--   \t\t\t\tThe @input_vars@ and @output_vars@ arrays contain the string names of the various input and output variables, as defined by @_get_input_*@ and @_get_output_*@ virtual methods in this class.\n--   \t\t\t\tThe output ports can be assigned values in the shader code. For example, @return output_vars@0@ + \" = \" + input_vars@0@ + \";\"@.\n--   \t\t\t\tYou can customize the generated code based on the shader @mode@ (see @enum Shader.Mode@) and/or @type@ (see @enum VisualShader.Type@).\n--   \t\t\t\tDefining this method is __required__.\n_get_code ::\n            (VisualShaderNodeCustom :< cls, Object :< cls) =>\n            cls -> Array -> Array -> Int -> Int -> IO GodotString\n_get_code cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeCustom__get_code\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCustom \"_get_code\"\n           '[Array, Array, Int, Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCustom._get_code\n\n{-# NOINLINE bindVisualShaderNodeCustom__get_description #-}\n\n-- | Override this method to define the description of the associated custom node in the Visual Shader Editor's members dialog.\n--   \t\t\t\tDefining this method is __optional__.\nbindVisualShaderNodeCustom__get_description :: MethodBind\nbindVisualShaderNodeCustom__get_description\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCustom\" $\n        \\ clsNamePtr ->\n          withCString \"_get_description\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to define the description of the associated custom node in the Visual Shader Editor's members dialog.\n--   \t\t\t\tDefining this method is __optional__.\n_get_description ::\n                   (VisualShaderNodeCustom :< cls, Object :< cls) =>\n                   cls -> IO GodotString\n_get_description cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeCustom__get_description\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCustom \"_get_description\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCustom._get_description\n\n{-# NOINLINE bindVisualShaderNodeCustom__get_global_code #-}\n\n-- | Override this method to add shader code on top of the global shader, to define your own standard library of reusable methods, varyings, constants, uniforms, etc. The shader code should be returned as a string, which can have multiple lines (the @\"\"\"@ multiline string construct can be used for convenience).\n--   \t\t\t\tBe careful with this functionality as it can cause name conflicts with other custom nodes, so be sure to give the defined entities unique names.\n--   \t\t\t\tYou can customize the generated code based on the shader @mode@ (see @enum Shader.Mode@).\n--   \t\t\t\tDefining this method is __optional__.\nbindVisualShaderNodeCustom__get_global_code :: MethodBind\nbindVisualShaderNodeCustom__get_global_code\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCustom\" $\n        \\ clsNamePtr ->\n          withCString \"_get_global_code\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to add shader code on top of the global shader, to define your own standard library of reusable methods, varyings, constants, uniforms, etc. The shader code should be returned as a string, which can have multiple lines (the @\"\"\"@ multiline string construct can be used for convenience).\n--   \t\t\t\tBe careful with this functionality as it can cause name conflicts with other custom nodes, so be sure to give the defined entities unique names.\n--   \t\t\t\tYou can customize the generated code based on the shader @mode@ (see @enum Shader.Mode@).\n--   \t\t\t\tDefining this method is __optional__.\n_get_global_code ::\n                   (VisualShaderNodeCustom :< cls, Object :< cls) =>\n                   cls -> Int -> IO GodotString\n_get_global_code cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeCustom__get_global_code\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCustom \"_get_global_code\"\n           '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCustom._get_global_code\n\n{-# NOINLINE bindVisualShaderNodeCustom__get_input_port_count #-}\n\n-- | Override this method to define the amount of input ports of the associated custom node.\n--   \t\t\t\tDefining this method is __required__. If not overridden, the node has no input ports.\nbindVisualShaderNodeCustom__get_input_port_count :: MethodBind\nbindVisualShaderNodeCustom__get_input_port_count\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCustom\" $\n        \\ clsNamePtr ->\n          withCString \"_get_input_port_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to define the amount of input ports of the associated custom node.\n--   \t\t\t\tDefining this method is __required__. If not overridden, the node has no input ports.\n_get_input_port_count ::\n                        (VisualShaderNodeCustom :< cls, Object :< cls) => cls -> IO Int\n_get_input_port_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeCustom__get_input_port_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCustom \"_get_input_port_count\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeCustom._get_input_port_count\n\n{-# NOINLINE bindVisualShaderNodeCustom__get_input_port_name #-}\n\n-- | Override this method to define the names of input ports of the associated custom node. The names are used both for the input slots in the editor and as identifiers in the shader code, and are passed in the @input_vars@ array in @method _get_code@.\n--   \t\t\t\tDefining this method is __optional__, but recommended. If not overridden, input ports are named as @\"in\" + str(port)@.\nbindVisualShaderNodeCustom__get_input_port_name :: MethodBind\nbindVisualShaderNodeCustom__get_input_port_name\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCustom\" $\n        \\ clsNamePtr ->\n          withCString \"_get_input_port_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to define the names of input ports of the associated custom node. The names are used both for the input slots in the editor and as identifiers in the shader code, and are passed in the @input_vars@ array in @method _get_code@.\n--   \t\t\t\tDefining this method is __optional__, but recommended. If not overridden, input ports are named as @\"in\" + str(port)@.\n_get_input_port_name ::\n                       (VisualShaderNodeCustom :< cls, Object :< cls) =>\n                       cls -> Int -> IO GodotString\n_get_input_port_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeCustom__get_input_port_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCustom \"_get_input_port_name\"\n           '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCustom._get_input_port_name\n\n{-# NOINLINE bindVisualShaderNodeCustom__get_input_port_type #-}\n\n-- | Override this method to define the returned type of each input port of the associated custom node (see @enum VisualShaderNode.PortType@ for possible types).\n--   \t\t\t\tDefining this method is __optional__, but recommended. If not overridden, input ports will return the @VisualShaderNode.PORT_TYPE_SCALAR@ type.\nbindVisualShaderNodeCustom__get_input_port_type :: MethodBind\nbindVisualShaderNodeCustom__get_input_port_type\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCustom\" $\n        \\ clsNamePtr ->\n          withCString \"_get_input_port_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to define the returned type of each input port of the associated custom node (see @enum VisualShaderNode.PortType@ for possible types).\n--   \t\t\t\tDefining this method is __optional__, but recommended. If not overridden, input ports will return the @VisualShaderNode.PORT_TYPE_SCALAR@ type.\n_get_input_port_type ::\n                       (VisualShaderNodeCustom :< cls, Object :< cls) =>\n                       cls -> Int -> IO Int\n_get_input_port_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeCustom__get_input_port_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCustom \"_get_input_port_type\"\n           '[Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCustom._get_input_port_type\n\n{-# NOINLINE bindVisualShaderNodeCustom__get_name #-}\n\n-- | Override this method to define the name of the associated custom node in the Visual Shader Editor's members dialog and graph.\n--   \t\t\t\tDefining this method is __optional__, but recommended. If not overridden, the node will be named as \"Unnamed\".\nbindVisualShaderNodeCustom__get_name :: MethodBind\nbindVisualShaderNodeCustom__get_name\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCustom\" $\n        \\ clsNamePtr ->\n          withCString \"_get_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to define the name of the associated custom node in the Visual Shader Editor's members dialog and graph.\n--   \t\t\t\tDefining this method is __optional__, but recommended. If not overridden, the node will be named as \"Unnamed\".\n_get_name ::\n            (VisualShaderNodeCustom :< cls, Object :< cls) =>\n            cls -> IO GodotString\n_get_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeCustom__get_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCustom \"_get_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCustom._get_name\n\n{-# NOINLINE bindVisualShaderNodeCustom__get_output_port_count #-}\n\n-- | Override this method to define the amount of output ports of the associated custom node.\n--   \t\t\t\tDefining this method is __required__. If not overridden, the node has no output ports.\nbindVisualShaderNodeCustom__get_output_port_count :: MethodBind\nbindVisualShaderNodeCustom__get_output_port_count\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCustom\" $\n        \\ clsNamePtr ->\n          withCString \"_get_output_port_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to define the amount of output ports of the associated custom node.\n--   \t\t\t\tDefining this method is __required__. If not overridden, the node has no output ports.\n_get_output_port_count ::\n                         (VisualShaderNodeCustom :< cls, Object :< cls) => cls -> IO Int\n_get_output_port_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeCustom__get_output_port_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCustom \"_get_output_port_count\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeCustom._get_output_port_count\n\n{-# NOINLINE bindVisualShaderNodeCustom__get_output_port_name #-}\n\n-- | Override this method to define the names of output ports of the associated custom node. The names are used both for the output slots in the editor and as identifiers in the shader code, and are passed in the @output_vars@ array in @method _get_code@.\n--   \t\t\t\tDefining this method is __optional__, but recommended. If not overridden, output ports are named as @\"out\" + str(port)@.\nbindVisualShaderNodeCustom__get_output_port_name :: MethodBind\nbindVisualShaderNodeCustom__get_output_port_name\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCustom\" $\n        \\ clsNamePtr ->\n          withCString \"_get_output_port_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to define the names of output ports of the associated custom node. The names are used both for the output slots in the editor and as identifiers in the shader code, and are passed in the @output_vars@ array in @method _get_code@.\n--   \t\t\t\tDefining this method is __optional__, but recommended. If not overridden, output ports are named as @\"out\" + str(port)@.\n_get_output_port_name ::\n                        (VisualShaderNodeCustom :< cls, Object :< cls) =>\n                        cls -> Int -> IO GodotString\n_get_output_port_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeCustom__get_output_port_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCustom \"_get_output_port_name\"\n           '[Int]\n           (IO GodotString)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeCustom._get_output_port_name\n\n{-# NOINLINE bindVisualShaderNodeCustom__get_output_port_type #-}\n\n-- | Override this method to define the returned type of each output port of the associated custom node (see @enum VisualShaderNode.PortType@ for possible types).\n--   \t\t\t\tDefining this method is __optional__, but recommended. If not overridden, output ports will return the @VisualShaderNode.PORT_TYPE_SCALAR@ type.\nbindVisualShaderNodeCustom__get_output_port_type :: MethodBind\nbindVisualShaderNodeCustom__get_output_port_type\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCustom\" $\n        \\ clsNamePtr ->\n          withCString \"_get_output_port_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to define the returned type of each output port of the associated custom node (see @enum VisualShaderNode.PortType@ for possible types).\n--   \t\t\t\tDefining this method is __optional__, but recommended. If not overridden, output ports will return the @VisualShaderNode.PORT_TYPE_SCALAR@ type.\n_get_output_port_type ::\n                        (VisualShaderNodeCustom :< cls, Object :< cls) =>\n                        cls -> Int -> IO Int\n_get_output_port_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeCustom__get_output_port_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCustom \"_get_output_port_type\"\n           '[Int]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeCustom._get_output_port_type\n\n{-# NOINLINE bindVisualShaderNodeCustom__get_return_icon_type #-}\n\n-- | Override this method to define the return icon of the associated custom node in the Visual Shader Editor's members dialog.\n--   \t\t\t\tDefining this method is __optional__. If not overridden, no return icon is shown.\nbindVisualShaderNodeCustom__get_return_icon_type :: MethodBind\nbindVisualShaderNodeCustom__get_return_icon_type\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCustom\" $\n        \\ clsNamePtr ->\n          withCString \"_get_return_icon_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to define the return icon of the associated custom node in the Visual Shader Editor's members dialog.\n--   \t\t\t\tDefining this method is __optional__. If not overridden, no return icon is shown.\n_get_return_icon_type ::\n                        (VisualShaderNodeCustom :< cls, Object :< cls) => cls -> IO Int\n_get_return_icon_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeCustom__get_return_icon_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCustom \"_get_return_icon_type\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeCustom._get_return_icon_type\n\n{-# NOINLINE bindVisualShaderNodeCustom__get_subcategory #-}\n\n-- | Override this method to define the subcategory of the associated custom node in the Visual Shader Editor's members dialog.\n--   \t\t\t\tDefining this method is __optional__. If not overridden, the node will be filed under the root of the main category (see @method _get_category@).\nbindVisualShaderNodeCustom__get_subcategory :: MethodBind\nbindVisualShaderNodeCustom__get_subcategory\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeCustom\" $\n        \\ clsNamePtr ->\n          withCString \"_get_subcategory\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to define the subcategory of the associated custom node in the Visual Shader Editor's members dialog.\n--   \t\t\t\tDefining this method is __optional__. If not overridden, the node will be filed under the root of the main category (see @method _get_category@).\n_get_subcategory ::\n                   (VisualShaderNodeCustom :< cls, Object :< cls) =>\n                   cls -> IO GodotString\n_get_subcategory cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeCustom__get_subcategory\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeCustom \"_get_subcategory\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeCustom._get_subcategory"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeDeterminant.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeDeterminant () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeDotProduct.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeDotProduct () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeExpression.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeExpression\n       (Godot.Core.VisualShaderNodeExpression.get_expression,\n        Godot.Core.VisualShaderNodeExpression.set_expression)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNodeGroupBase()\n\ninstance NodeProperty VisualShaderNodeExpression \"expression\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_expression, wrapDroppingSetter set_expression, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeExpression_get_expression #-}\n\n-- | An expression in Godot Shading Language, which will be injected at the start of the graph's matching shader function (@vertex@, @fragment@, or @light@), and thus cannot be used to declare functions, varyings, uniforms, or global constants.\nbindVisualShaderNodeExpression_get_expression :: MethodBind\nbindVisualShaderNodeExpression_get_expression\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeExpression\" $\n        \\ clsNamePtr ->\n          withCString \"get_expression\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | An expression in Godot Shading Language, which will be injected at the start of the graph's matching shader function (@vertex@, @fragment@, or @light@), and thus cannot be used to declare functions, varyings, uniforms, or global constants.\nget_expression ::\n                 (VisualShaderNodeExpression :< cls, Object :< cls) =>\n                 cls -> IO GodotString\nget_expression cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeExpression_get_expression\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeExpression \"get_expression\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeExpression.get_expression\n\n{-# NOINLINE bindVisualShaderNodeExpression_set_expression #-}\n\n-- | An expression in Godot Shading Language, which will be injected at the start of the graph's matching shader function (@vertex@, @fragment@, or @light@), and thus cannot be used to declare functions, varyings, uniforms, or global constants.\nbindVisualShaderNodeExpression_set_expression :: MethodBind\nbindVisualShaderNodeExpression_set_expression\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeExpression\" $\n        \\ clsNamePtr ->\n          withCString \"set_expression\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | An expression in Godot Shading Language, which will be injected at the start of the graph's matching shader function (@vertex@, @fragment@, or @light@), and thus cannot be used to declare functions, varyings, uniforms, or global constants.\nset_expression ::\n                 (VisualShaderNodeExpression :< cls, Object :< cls) =>\n                 cls -> GodotString -> IO ()\nset_expression cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeExpression_set_expression\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeExpression \"set_expression\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeExpression.set_expression"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeFaceForward.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeFaceForward () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeFresnel.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeFresnel () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeGlobalExpression.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeGlobalExpression () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNodeExpression()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeGroupBase.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeGroupBase\n       (Godot.Core.VisualShaderNodeGroupBase.add_input_port,\n        Godot.Core.VisualShaderNodeGroupBase.add_output_port,\n        Godot.Core.VisualShaderNodeGroupBase.clear_input_ports,\n        Godot.Core.VisualShaderNodeGroupBase.clear_output_ports,\n        Godot.Core.VisualShaderNodeGroupBase.get_free_input_port_id,\n        Godot.Core.VisualShaderNodeGroupBase.get_free_output_port_id,\n        Godot.Core.VisualShaderNodeGroupBase.get_input_port_count,\n        Godot.Core.VisualShaderNodeGroupBase.get_inputs,\n        Godot.Core.VisualShaderNodeGroupBase.get_output_port_count,\n        Godot.Core.VisualShaderNodeGroupBase.get_outputs,\n        Godot.Core.VisualShaderNodeGroupBase.get_size,\n        Godot.Core.VisualShaderNodeGroupBase.has_input_port,\n        Godot.Core.VisualShaderNodeGroupBase.has_output_port,\n        Godot.Core.VisualShaderNodeGroupBase.is_valid_port_name,\n        Godot.Core.VisualShaderNodeGroupBase.remove_input_port,\n        Godot.Core.VisualShaderNodeGroupBase.remove_output_port,\n        Godot.Core.VisualShaderNodeGroupBase.set_input_port_name,\n        Godot.Core.VisualShaderNodeGroupBase.set_input_port_type,\n        Godot.Core.VisualShaderNodeGroupBase.set_inputs,\n        Godot.Core.VisualShaderNodeGroupBase.set_output_port_name,\n        Godot.Core.VisualShaderNodeGroupBase.set_output_port_type,\n        Godot.Core.VisualShaderNodeGroupBase.set_outputs,\n        Godot.Core.VisualShaderNodeGroupBase.set_size)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\ninstance NodeProperty VisualShaderNodeGroupBase \"size\" Vector2\n           'False\n         where\n        nodeProperty = (get_size, wrapDroppingSetter set_size, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_add_input_port #-}\n\n-- | Adds an input port with the specified @type@ (see @enum VisualShaderNode.PortType@) and @name@.\nbindVisualShaderNodeGroupBase_add_input_port :: MethodBind\nbindVisualShaderNodeGroupBase_add_input_port\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"add_input_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an input port with the specified @type@ (see @enum VisualShaderNode.PortType@) and @name@.\nadd_input_port ::\n                 (VisualShaderNodeGroupBase :< cls, Object :< cls) =>\n                 cls -> Int -> Int -> GodotString -> IO ()\nadd_input_port cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeGroupBase_add_input_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase \"add_input_port\"\n           '[Int, Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeGroupBase.add_input_port\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_add_output_port #-}\n\n-- | Adds an output port with the specified @type@ (see @enum VisualShaderNode.PortType@) and @name@.\nbindVisualShaderNodeGroupBase_add_output_port :: MethodBind\nbindVisualShaderNodeGroupBase_add_output_port\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"add_output_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an output port with the specified @type@ (see @enum VisualShaderNode.PortType@) and @name@.\nadd_output_port ::\n                  (VisualShaderNodeGroupBase :< cls, Object :< cls) =>\n                  cls -> Int -> Int -> GodotString -> IO ()\nadd_output_port cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeGroupBase_add_output_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase \"add_output_port\"\n           '[Int, Int, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeGroupBase.add_output_port\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_clear_input_ports #-}\n\n-- | Removes all previously specified input ports.\nbindVisualShaderNodeGroupBase_clear_input_ports :: MethodBind\nbindVisualShaderNodeGroupBase_clear_input_ports\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"clear_input_ports\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all previously specified input ports.\nclear_input_ports ::\n                    (VisualShaderNodeGroupBase :< cls, Object :< cls) => cls -> IO ()\nclear_input_ports cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeGroupBase_clear_input_ports\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase \"clear_input_ports\"\n           '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeGroupBase.clear_input_ports\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_clear_output_ports #-}\n\n-- | Removes all previously specified output ports.\nbindVisualShaderNodeGroupBase_clear_output_ports :: MethodBind\nbindVisualShaderNodeGroupBase_clear_output_ports\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"clear_output_ports\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all previously specified output ports.\nclear_output_ports ::\n                     (VisualShaderNodeGroupBase :< cls, Object :< cls) => cls -> IO ()\nclear_output_ports cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeGroupBase_clear_output_ports\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase \"clear_output_ports\"\n           '[]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeGroupBase.clear_output_ports\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_get_free_input_port_id\n             #-}\n\n-- | Returns a free input port ID which can be used in @method add_input_port@.\nbindVisualShaderNodeGroupBase_get_free_input_port_id :: MethodBind\nbindVisualShaderNodeGroupBase_get_free_input_port_id\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"get_free_input_port_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a free input port ID which can be used in @method add_input_port@.\nget_free_input_port_id ::\n                         (VisualShaderNodeGroupBase :< cls, Object :< cls) => cls -> IO Int\nget_free_input_port_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeGroupBase_get_free_input_port_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase\n           \"get_free_input_port_id\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeGroupBase.get_free_input_port_id\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_get_free_output_port_id\n             #-}\n\n-- | Returns a free output port ID which can be used in @method add_output_port@.\nbindVisualShaderNodeGroupBase_get_free_output_port_id :: MethodBind\nbindVisualShaderNodeGroupBase_get_free_output_port_id\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"get_free_output_port_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a free output port ID which can be used in @method add_output_port@.\nget_free_output_port_id ::\n                          (VisualShaderNodeGroupBase :< cls, Object :< cls) => cls -> IO Int\nget_free_output_port_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeGroupBase_get_free_output_port_id\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase\n           \"get_free_output_port_id\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeGroupBase.get_free_output_port_id\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_get_input_port_count #-}\n\n-- | Returns the number of input ports in use. Alternative for @method get_free_input_port_id@.\nbindVisualShaderNodeGroupBase_get_input_port_count :: MethodBind\nbindVisualShaderNodeGroupBase_get_input_port_count\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"get_input_port_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of input ports in use. Alternative for @method get_free_input_port_id@.\nget_input_port_count ::\n                       (VisualShaderNodeGroupBase :< cls, Object :< cls) => cls -> IO Int\nget_input_port_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeGroupBase_get_input_port_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase\n           \"get_input_port_count\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeGroupBase.get_input_port_count\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_get_inputs #-}\n\n-- | Returns a @String@ description of the input ports as as colon-separated list using the format @id,type,name;@ (see @method add_input_port@).\nbindVisualShaderNodeGroupBase_get_inputs :: MethodBind\nbindVisualShaderNodeGroupBase_get_inputs\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"get_inputs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @String@ description of the input ports as as colon-separated list using the format @id,type,name;@ (see @method add_input_port@).\nget_inputs ::\n             (VisualShaderNodeGroupBase :< cls, Object :< cls) =>\n             cls -> IO GodotString\nget_inputs cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeGroupBase_get_inputs\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase \"get_inputs\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeGroupBase.get_inputs\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_get_output_port_count\n             #-}\n\n-- | Returns the number of output ports in use. Alternative for @method get_free_output_port_id@.\nbindVisualShaderNodeGroupBase_get_output_port_count :: MethodBind\nbindVisualShaderNodeGroupBase_get_output_port_count\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"get_output_port_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of output ports in use. Alternative for @method get_free_output_port_id@.\nget_output_port_count ::\n                        (VisualShaderNodeGroupBase :< cls, Object :< cls) => cls -> IO Int\nget_output_port_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeGroupBase_get_output_port_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase\n           \"get_output_port_count\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeGroupBase.get_output_port_count\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_get_outputs #-}\n\n-- | Returns a @String@ description of the output ports as as colon-separated list using the format @id,type,name;@ (see @method add_output_port@).\nbindVisualShaderNodeGroupBase_get_outputs :: MethodBind\nbindVisualShaderNodeGroupBase_get_outputs\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"get_outputs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @String@ description of the output ports as as colon-separated list using the format @id,type,name;@ (see @method add_output_port@).\nget_outputs ::\n              (VisualShaderNodeGroupBase :< cls, Object :< cls) =>\n              cls -> IO GodotString\nget_outputs cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeGroupBase_get_outputs\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase \"get_outputs\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeGroupBase.get_outputs\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_get_size #-}\n\n-- | The size of the node in the visual shader graph.\nbindVisualShaderNodeGroupBase_get_size :: MethodBind\nbindVisualShaderNodeGroupBase_get_size\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"get_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size of the node in the visual shader graph.\nget_size ::\n           (VisualShaderNodeGroupBase :< cls, Object :< cls) =>\n           cls -> IO Vector2\nget_size cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeGroupBase_get_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase \"get_size\" '[]\n           (IO Vector2)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeGroupBase.get_size\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_has_input_port #-}\n\n-- | Returns @true@ if the specified input port exists.\nbindVisualShaderNodeGroupBase_has_input_port :: MethodBind\nbindVisualShaderNodeGroupBase_has_input_port\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"has_input_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the specified input port exists.\nhas_input_port ::\n                 (VisualShaderNodeGroupBase :< cls, Object :< cls) =>\n                 cls -> Int -> IO Bool\nhas_input_port cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeGroupBase_has_input_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase \"has_input_port\"\n           '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeGroupBase.has_input_port\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_has_output_port #-}\n\n-- | Returns @true@ if the specified output port exists.\nbindVisualShaderNodeGroupBase_has_output_port :: MethodBind\nbindVisualShaderNodeGroupBase_has_output_port\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"has_output_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the specified output port exists.\nhas_output_port ::\n                  (VisualShaderNodeGroupBase :< cls, Object :< cls) =>\n                  cls -> Int -> IO Bool\nhas_output_port cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeGroupBase_has_output_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase \"has_output_port\"\n           '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeGroupBase.has_output_port\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_is_valid_port_name #-}\n\n-- | Returns @true@ if the specified port name does not override an existed port name and is valid within the shader.\nbindVisualShaderNodeGroupBase_is_valid_port_name :: MethodBind\nbindVisualShaderNodeGroupBase_is_valid_port_name\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"is_valid_port_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the specified port name does not override an existed port name and is valid within the shader.\nis_valid_port_name ::\n                     (VisualShaderNodeGroupBase :< cls, Object :< cls) =>\n                     cls -> GodotString -> IO Bool\nis_valid_port_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeGroupBase_is_valid_port_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase \"is_valid_port_name\"\n           '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeGroupBase.is_valid_port_name\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_remove_input_port #-}\n\n-- | Removes the specified input port.\nbindVisualShaderNodeGroupBase_remove_input_port :: MethodBind\nbindVisualShaderNodeGroupBase_remove_input_port\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"remove_input_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the specified input port.\nremove_input_port ::\n                    (VisualShaderNodeGroupBase :< cls, Object :< cls) =>\n                    cls -> Int -> IO ()\nremove_input_port cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeGroupBase_remove_input_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase \"remove_input_port\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeGroupBase.remove_input_port\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_remove_output_port #-}\n\n-- | Removes the specified output port.\nbindVisualShaderNodeGroupBase_remove_output_port :: MethodBind\nbindVisualShaderNodeGroupBase_remove_output_port\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"remove_output_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the specified output port.\nremove_output_port ::\n                     (VisualShaderNodeGroupBase :< cls, Object :< cls) =>\n                     cls -> Int -> IO ()\nremove_output_port cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeGroupBase_remove_output_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase \"remove_output_port\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeGroupBase.remove_output_port\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_set_input_port_name #-}\n\n-- | Renames the specified input port.\nbindVisualShaderNodeGroupBase_set_input_port_name :: MethodBind\nbindVisualShaderNodeGroupBase_set_input_port_name\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"set_input_port_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Renames the specified input port.\nset_input_port_name ::\n                      (VisualShaderNodeGroupBase :< cls, Object :< cls) =>\n                      cls -> Int -> GodotString -> IO ()\nset_input_port_name cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeGroupBase_set_input_port_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase \"set_input_port_name\"\n           '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeGroupBase.set_input_port_name\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_set_input_port_type #-}\n\n-- | Sets the specified input port's type (see @enum VisualShaderNode.PortType@).\nbindVisualShaderNodeGroupBase_set_input_port_type :: MethodBind\nbindVisualShaderNodeGroupBase_set_input_port_type\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"set_input_port_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the specified input port's type (see @enum VisualShaderNode.PortType@).\nset_input_port_type ::\n                      (VisualShaderNodeGroupBase :< cls, Object :< cls) =>\n                      cls -> Int -> Int -> IO ()\nset_input_port_type cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeGroupBase_set_input_port_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase \"set_input_port_type\"\n           '[Int, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeGroupBase.set_input_port_type\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_set_inputs #-}\n\n-- | Defines all input ports using a @String@ formatted as a colon-separated list: @id,type,name;@ (see @method add_input_port@).\nbindVisualShaderNodeGroupBase_set_inputs :: MethodBind\nbindVisualShaderNodeGroupBase_set_inputs\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"set_inputs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines all input ports using a @String@ formatted as a colon-separated list: @id,type,name;@ (see @method add_input_port@).\nset_inputs ::\n             (VisualShaderNodeGroupBase :< cls, Object :< cls) =>\n             cls -> GodotString -> IO ()\nset_inputs cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeGroupBase_set_inputs\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase \"set_inputs\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeGroupBase.set_inputs\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_set_output_port_name #-}\n\n-- | Renames the specified output port.\nbindVisualShaderNodeGroupBase_set_output_port_name :: MethodBind\nbindVisualShaderNodeGroupBase_set_output_port_name\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"set_output_port_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Renames the specified output port.\nset_output_port_name ::\n                       (VisualShaderNodeGroupBase :< cls, Object :< cls) =>\n                       cls -> Int -> GodotString -> IO ()\nset_output_port_name cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeGroupBase_set_output_port_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase\n           \"set_output_port_name\"\n           '[Int, GodotString]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeGroupBase.set_output_port_name\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_set_output_port_type #-}\n\n-- | Sets the specified output port's type (see @enum VisualShaderNode.PortType@).\nbindVisualShaderNodeGroupBase_set_output_port_type :: MethodBind\nbindVisualShaderNodeGroupBase_set_output_port_type\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"set_output_port_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the specified output port's type (see @enum VisualShaderNode.PortType@).\nset_output_port_type ::\n                       (VisualShaderNodeGroupBase :< cls, Object :< cls) =>\n                       cls -> Int -> Int -> IO ()\nset_output_port_type cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeGroupBase_set_output_port_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase\n           \"set_output_port_type\"\n           '[Int, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeGroupBase.set_output_port_type\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_set_outputs #-}\n\n-- | Defines all output ports using a @String@ formatted as a colon-separated list: @id,type,name;@ (see @method add_output_port@).\nbindVisualShaderNodeGroupBase_set_outputs :: MethodBind\nbindVisualShaderNodeGroupBase_set_outputs\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"set_outputs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines all output ports using a @String@ formatted as a colon-separated list: @id,type,name;@ (see @method add_output_port@).\nset_outputs ::\n              (VisualShaderNodeGroupBase :< cls, Object :< cls) =>\n              cls -> GodotString -> IO ()\nset_outputs cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeGroupBase_set_outputs\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase \"set_outputs\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeGroupBase.set_outputs\n\n{-# NOINLINE bindVisualShaderNodeGroupBase_set_size #-}\n\n-- | The size of the node in the visual shader graph.\nbindVisualShaderNodeGroupBase_set_size :: MethodBind\nbindVisualShaderNodeGroupBase_set_size\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeGroupBase\" $\n        \\ clsNamePtr ->\n          withCString \"set_size\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The size of the node in the visual shader graph.\nset_size ::\n           (VisualShaderNodeGroupBase :< cls, Object :< cls) =>\n           cls -> Vector2 -> IO ()\nset_size cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeGroupBase_set_size\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeGroupBase \"set_size\" '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeGroupBase.set_size"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeIf.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeIf () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeInput.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeInput\n       (Godot.Core.VisualShaderNodeInput.sig_input_type_changed,\n        Godot.Core.VisualShaderNodeInput.get_input_name,\n        Godot.Core.VisualShaderNodeInput.get_input_real_name,\n        Godot.Core.VisualShaderNodeInput.set_input_name)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\nsig_input_type_changed ::\n                       Godot.Internal.Dispatch.Signal VisualShaderNodeInput\nsig_input_type_changed\n  = Godot.Internal.Dispatch.Signal \"input_type_changed\"\n\ninstance NodeSignal VisualShaderNodeInput \"input_type_changed\" '[]\n\ninstance NodeProperty VisualShaderNodeInput \"input_name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_input_name, wrapDroppingSetter set_input_name, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeInput_get_input_name #-}\n\n-- | One of the several input constants in lower-case style like: \"vertex\"(@VERTEX@) or \"point_size\"(@POINT_SIZE@).\nbindVisualShaderNodeInput_get_input_name :: MethodBind\nbindVisualShaderNodeInput_get_input_name\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeInput\" $\n        \\ clsNamePtr ->\n          withCString \"get_input_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | One of the several input constants in lower-case style like: \"vertex\"(@VERTEX@) or \"point_size\"(@POINT_SIZE@).\nget_input_name ::\n                 (VisualShaderNodeInput :< cls, Object :< cls) =>\n                 cls -> IO GodotString\nget_input_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeInput_get_input_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeInput \"get_input_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeInput.get_input_name\n\n{-# NOINLINE bindVisualShaderNodeInput_get_input_real_name #-}\n\nbindVisualShaderNodeInput_get_input_real_name :: MethodBind\nbindVisualShaderNodeInput_get_input_real_name\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeInput\" $\n        \\ clsNamePtr ->\n          withCString \"get_input_real_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_input_real_name ::\n                      (VisualShaderNodeInput :< cls, Object :< cls) =>\n                      cls -> IO GodotString\nget_input_real_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeInput_get_input_real_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeInput \"get_input_real_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeInput.get_input_real_name\n\n{-# NOINLINE bindVisualShaderNodeInput_set_input_name #-}\n\n-- | One of the several input constants in lower-case style like: \"vertex\"(@VERTEX@) or \"point_size\"(@POINT_SIZE@).\nbindVisualShaderNodeInput_set_input_name :: MethodBind\nbindVisualShaderNodeInput_set_input_name\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeInput\" $\n        \\ clsNamePtr ->\n          withCString \"set_input_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | One of the several input constants in lower-case style like: \"vertex\"(@VERTEX@) or \"point_size\"(@POINT_SIZE@).\nset_input_name ::\n                 (VisualShaderNodeInput :< cls, Object :< cls) =>\n                 cls -> GodotString -> IO ()\nset_input_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeInput_set_input_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeInput \"set_input_name\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeInput.set_input_name"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeIs.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeIs\n       (Godot.Core.VisualShaderNodeIs._FUNC_IS_NAN,\n        Godot.Core.VisualShaderNodeIs._FUNC_IS_INF,\n        Godot.Core.VisualShaderNodeIs.get_function,\n        Godot.Core.VisualShaderNodeIs.set_function)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\n_FUNC_IS_NAN :: Int\n_FUNC_IS_NAN = 1\n\n_FUNC_IS_INF :: Int\n_FUNC_IS_INF = 0\n\ninstance NodeProperty VisualShaderNodeIs \"function\" Int 'False\n         where\n        nodeProperty\n          = (get_function, wrapDroppingSetter set_function, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeIs_get_function #-}\n\n-- | The comparison function. See @enum Function@ for options.\nbindVisualShaderNodeIs_get_function :: MethodBind\nbindVisualShaderNodeIs_get_function\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeIs\" $\n        \\ clsNamePtr ->\n          withCString \"get_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The comparison function. See @enum Function@ for options.\nget_function ::\n               (VisualShaderNodeIs :< cls, Object :< cls) => cls -> IO Int\nget_function cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeIs_get_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeIs \"get_function\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeIs.get_function\n\n{-# NOINLINE bindVisualShaderNodeIs_set_function #-}\n\n-- | The comparison function. See @enum Function@ for options.\nbindVisualShaderNodeIs_set_function :: MethodBind\nbindVisualShaderNodeIs_set_function\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeIs\" $\n        \\ clsNamePtr ->\n          withCString \"set_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The comparison function. See @enum Function@ for options.\nset_function ::\n               (VisualShaderNodeIs :< cls, Object :< cls) => cls -> Int -> IO ()\nset_function cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeIs_set_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeIs \"set_function\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeIs.set_function"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeOuterProduct.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeOuterProduct () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeOutput.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeOutput () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeScalarClamp.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeScalarClamp () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeScalarConstant.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeScalarConstant\n       (Godot.Core.VisualShaderNodeScalarConstant.get_constant,\n        Godot.Core.VisualShaderNodeScalarConstant.set_constant)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\ninstance NodeProperty VisualShaderNodeScalarConstant \"constant\"\n           Float\n           'False\n         where\n        nodeProperty\n          = (get_constant, wrapDroppingSetter set_constant, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeScalarConstant_get_constant #-}\n\nbindVisualShaderNodeScalarConstant_get_constant :: MethodBind\nbindVisualShaderNodeScalarConstant_get_constant\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeScalarConstant\" $\n        \\ clsNamePtr ->\n          withCString \"get_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_constant ::\n               (VisualShaderNodeScalarConstant :< cls, Object :< cls) =>\n               cls -> IO Float\nget_constant cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeScalarConstant_get_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeScalarConstant \"get_constant\"\n           '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeScalarConstant.get_constant\n\n{-# NOINLINE bindVisualShaderNodeScalarConstant_set_constant #-}\n\nbindVisualShaderNodeScalarConstant_set_constant :: MethodBind\nbindVisualShaderNodeScalarConstant_set_constant\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeScalarConstant\" $\n        \\ clsNamePtr ->\n          withCString \"set_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_constant ::\n               (VisualShaderNodeScalarConstant :< cls, Object :< cls) =>\n               cls -> Float -> IO ()\nset_constant cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeScalarConstant_set_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeScalarConstant \"set_constant\"\n           '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeScalarConstant.set_constant"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeScalarDerivativeFunc.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeScalarDerivativeFunc\n       (Godot.Core.VisualShaderNodeScalarDerivativeFunc._FUNC_SUM,\n        Godot.Core.VisualShaderNodeScalarDerivativeFunc._FUNC_Y,\n        Godot.Core.VisualShaderNodeScalarDerivativeFunc._FUNC_X,\n        Godot.Core.VisualShaderNodeScalarDerivativeFunc.get_function,\n        Godot.Core.VisualShaderNodeScalarDerivativeFunc.set_function)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\n_FUNC_SUM :: Int\n_FUNC_SUM = 0\n\n_FUNC_Y :: Int\n_FUNC_Y = 2\n\n_FUNC_X :: Int\n_FUNC_X = 1\n\ninstance NodeProperty VisualShaderNodeScalarDerivativeFunc\n           \"function\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_function, wrapDroppingSetter set_function, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeScalarDerivativeFunc_get_function\n             #-}\n\n-- | The derivative type. See @enum Function@ for options.\nbindVisualShaderNodeScalarDerivativeFunc_get_function :: MethodBind\nbindVisualShaderNodeScalarDerivativeFunc_get_function\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeScalarDerivativeFunc\" $\n        \\ clsNamePtr ->\n          withCString \"get_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The derivative type. See @enum Function@ for options.\nget_function ::\n               (VisualShaderNodeScalarDerivativeFunc :< cls, Object :< cls) =>\n               cls -> IO Int\nget_function cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeScalarDerivativeFunc_get_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeScalarDerivativeFunc\n           \"get_function\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeScalarDerivativeFunc.get_function\n\n{-# NOINLINE bindVisualShaderNodeScalarDerivativeFunc_set_function\n             #-}\n\n-- | The derivative type. See @enum Function@ for options.\nbindVisualShaderNodeScalarDerivativeFunc_set_function :: MethodBind\nbindVisualShaderNodeScalarDerivativeFunc_set_function\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeScalarDerivativeFunc\" $\n        \\ clsNamePtr ->\n          withCString \"set_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The derivative type. See @enum Function@ for options.\nset_function ::\n               (VisualShaderNodeScalarDerivativeFunc :< cls, Object :< cls) =>\n               cls -> Int -> IO ()\nset_function cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeScalarDerivativeFunc_set_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeScalarDerivativeFunc\n           \"set_function\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeScalarDerivativeFunc.set_function"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeScalarFunc.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeScalarFunc\n       (Godot.Core.VisualShaderNodeScalarFunc._FUNC_ASINH,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_RECIPROCAL,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_TRUNC,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_TAN,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_SQRT,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_ATANH,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_RADIANS,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_ATAN,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_ROUNDEVEN,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_COS,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_DEGREES,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_ASIN,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_EXP,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_LOG2,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_ACOSH,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_ACOS,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_FRAC,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_SIGN,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_INVERSE_SQRT,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_TANH,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_CEIL,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_LOG,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_SINH,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_NEGATE,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_SIN,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_SATURATE,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_ROUND,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_COSH,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_EXP2,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_ONEMINUS,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_ABS,\n        Godot.Core.VisualShaderNodeScalarFunc._FUNC_FLOOR,\n        Godot.Core.VisualShaderNodeScalarFunc.get_function,\n        Godot.Core.VisualShaderNodeScalarFunc.set_function)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\n_FUNC_ASINH :: Int\n_FUNC_ASINH = 21\n\n_FUNC_RECIPROCAL :: Int\n_FUNC_RECIPROCAL = 28\n\n_FUNC_TRUNC :: Int\n_FUNC_TRUNC = 30\n\n_FUNC_TAN :: Int\n_FUNC_TAN = 2\n\n_FUNC_SQRT :: Int\n_FUNC_SQRT = 11\n\n_FUNC_ATANH :: Int\n_FUNC_ATANH = 22\n\n_FUNC_RADIANS :: Int\n_FUNC_RADIANS = 27\n\n_FUNC_ATAN :: Int\n_FUNC_ATAN = 5\n\n_FUNC_ROUNDEVEN :: Int\n_FUNC_ROUNDEVEN = 29\n\n_FUNC_COS :: Int\n_FUNC_COS = 1\n\n_FUNC_DEGREES :: Int\n_FUNC_DEGREES = 23\n\n_FUNC_ASIN :: Int\n_FUNC_ASIN = 3\n\n_FUNC_EXP :: Int\n_FUNC_EXP = 10\n\n_FUNC_LOG2 :: Int\n_FUNC_LOG2 = 26\n\n_FUNC_ACOSH :: Int\n_FUNC_ACOSH = 20\n\n_FUNC_ACOS :: Int\n_FUNC_ACOS = 4\n\n_FUNC_FRAC :: Int\n_FUNC_FRAC = 17\n\n_FUNC_SIGN :: Int\n_FUNC_SIGN = 13\n\n_FUNC_INVERSE_SQRT :: Int\n_FUNC_INVERSE_SQRT = 25\n\n_FUNC_TANH :: Int\n_FUNC_TANH = 8\n\n_FUNC_CEIL :: Int\n_FUNC_CEIL = 16\n\n_FUNC_LOG :: Int\n_FUNC_LOG = 9\n\n_FUNC_SINH :: Int\n_FUNC_SINH = 6\n\n_FUNC_NEGATE :: Int\n_FUNC_NEGATE = 19\n\n_FUNC_SIN :: Int\n_FUNC_SIN = 0\n\n_FUNC_SATURATE :: Int\n_FUNC_SATURATE = 18\n\n_FUNC_ROUND :: Int\n_FUNC_ROUND = 15\n\n_FUNC_COSH :: Int\n_FUNC_COSH = 7\n\n_FUNC_EXP2 :: Int\n_FUNC_EXP2 = 24\n\n_FUNC_ONEMINUS :: Int\n_FUNC_ONEMINUS = 31\n\n_FUNC_ABS :: Int\n_FUNC_ABS = 12\n\n_FUNC_FLOOR :: Int\n_FUNC_FLOOR = 14\n\ninstance NodeProperty VisualShaderNodeScalarFunc \"function\" Int\n           'False\n         where\n        nodeProperty\n          = (get_function, wrapDroppingSetter set_function, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeScalarFunc_get_function #-}\n\nbindVisualShaderNodeScalarFunc_get_function :: MethodBind\nbindVisualShaderNodeScalarFunc_get_function\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeScalarFunc\" $\n        \\ clsNamePtr ->\n          withCString \"get_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_function ::\n               (VisualShaderNodeScalarFunc :< cls, Object :< cls) => cls -> IO Int\nget_function cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeScalarFunc_get_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeScalarFunc \"get_function\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeScalarFunc.get_function\n\n{-# NOINLINE bindVisualShaderNodeScalarFunc_set_function #-}\n\nbindVisualShaderNodeScalarFunc_set_function :: MethodBind\nbindVisualShaderNodeScalarFunc_set_function\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeScalarFunc\" $\n        \\ clsNamePtr ->\n          withCString \"set_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_function ::\n               (VisualShaderNodeScalarFunc :< cls, Object :< cls) =>\n               cls -> Int -> IO ()\nset_function cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeScalarFunc_set_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeScalarFunc \"set_function\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeScalarFunc.set_function"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeScalarInterp.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeScalarInterp () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeScalarOp.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeScalarOp\n       (Godot.Core.VisualShaderNodeScalarOp._OP_MUL,\n        Godot.Core.VisualShaderNodeScalarOp._OP_SUB,\n        Godot.Core.VisualShaderNodeScalarOp._OP_MAX,\n        Godot.Core.VisualShaderNodeScalarOp._OP_POW,\n        Godot.Core.VisualShaderNodeScalarOp._OP_MOD,\n        Godot.Core.VisualShaderNodeScalarOp._OP_ADD,\n        Godot.Core.VisualShaderNodeScalarOp._OP_STEP,\n        Godot.Core.VisualShaderNodeScalarOp._OP_MIN,\n        Godot.Core.VisualShaderNodeScalarOp._OP_ATAN2,\n        Godot.Core.VisualShaderNodeScalarOp._OP_DIV,\n        Godot.Core.VisualShaderNodeScalarOp.get_operator,\n        Godot.Core.VisualShaderNodeScalarOp.set_operator)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\n_OP_MUL :: Int\n_OP_MUL = 2\n\n_OP_SUB :: Int\n_OP_SUB = 1\n\n_OP_MAX :: Int\n_OP_MAX = 6\n\n_OP_POW :: Int\n_OP_POW = 5\n\n_OP_MOD :: Int\n_OP_MOD = 4\n\n_OP_ADD :: Int\n_OP_ADD = 0\n\n_OP_STEP :: Int\n_OP_STEP = 9\n\n_OP_MIN :: Int\n_OP_MIN = 7\n\n_OP_ATAN2 :: Int\n_OP_ATAN2 = 8\n\n_OP_DIV :: Int\n_OP_DIV = 3\n\ninstance NodeProperty VisualShaderNodeScalarOp \"operator\" Int\n           'False\n         where\n        nodeProperty\n          = (get_operator, wrapDroppingSetter set_operator, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeScalarOp_get_operator #-}\n\nbindVisualShaderNodeScalarOp_get_operator :: MethodBind\nbindVisualShaderNodeScalarOp_get_operator\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeScalarOp\" $\n        \\ clsNamePtr ->\n          withCString \"get_operator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_operator ::\n               (VisualShaderNodeScalarOp :< cls, Object :< cls) => cls -> IO Int\nget_operator cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeScalarOp_get_operator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeScalarOp \"get_operator\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeScalarOp.get_operator\n\n{-# NOINLINE bindVisualShaderNodeScalarOp_set_operator #-}\n\nbindVisualShaderNodeScalarOp_set_operator :: MethodBind\nbindVisualShaderNodeScalarOp_set_operator\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeScalarOp\" $\n        \\ clsNamePtr ->\n          withCString \"set_operator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_operator ::\n               (VisualShaderNodeScalarOp :< cls, Object :< cls) =>\n               cls -> Int -> IO ()\nset_operator cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeScalarOp_set_operator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeScalarOp \"set_operator\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeScalarOp.set_operator"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeScalarSmoothStep.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeScalarSmoothStep () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeScalarSwitch.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeScalarSwitch () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNodeSwitch()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeScalarUniform.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeScalarUniform () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNodeUniform()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeSwitch.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeSwitch () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeTexture.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeTexture\n       (Godot.Core.VisualShaderNodeTexture._SOURCE_DEPTH,\n        Godot.Core.VisualShaderNodeTexture._TYPE_DATA,\n        Godot.Core.VisualShaderNodeTexture._SOURCE_2D_NORMAL,\n        Godot.Core.VisualShaderNodeTexture._SOURCE_PORT,\n        Godot.Core.VisualShaderNodeTexture._SOURCE_SCREEN,\n        Godot.Core.VisualShaderNodeTexture._SOURCE_2D_TEXTURE,\n        Godot.Core.VisualShaderNodeTexture._TYPE_COLOR,\n        Godot.Core.VisualShaderNodeTexture._SOURCE_TEXTURE,\n        Godot.Core.VisualShaderNodeTexture._TYPE_NORMALMAP,\n        Godot.Core.VisualShaderNodeTexture.get_source,\n        Godot.Core.VisualShaderNodeTexture.get_texture,\n        Godot.Core.VisualShaderNodeTexture.get_texture_type,\n        Godot.Core.VisualShaderNodeTexture.set_source,\n        Godot.Core.VisualShaderNodeTexture.set_texture,\n        Godot.Core.VisualShaderNodeTexture.set_texture_type)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\n_SOURCE_DEPTH :: Int\n_SOURCE_DEPTH = 4\n\n_TYPE_DATA :: Int\n_TYPE_DATA = 0\n\n_SOURCE_2D_NORMAL :: Int\n_SOURCE_2D_NORMAL = 3\n\n_SOURCE_PORT :: Int\n_SOURCE_PORT = 5\n\n_SOURCE_SCREEN :: Int\n_SOURCE_SCREEN = 1\n\n_SOURCE_2D_TEXTURE :: Int\n_SOURCE_2D_TEXTURE = 2\n\n_TYPE_COLOR :: Int\n_TYPE_COLOR = 1\n\n_SOURCE_TEXTURE :: Int\n_SOURCE_TEXTURE = 0\n\n_TYPE_NORMALMAP :: Int\n_TYPE_NORMALMAP = 2\n\ninstance NodeProperty VisualShaderNodeTexture \"source\" Int 'False\n         where\n        nodeProperty = (get_source, wrapDroppingSetter set_source, Nothing)\n\ninstance NodeProperty VisualShaderNodeTexture \"texture\" Texture\n           'False\n         where\n        nodeProperty\n          = (get_texture, wrapDroppingSetter set_texture, Nothing)\n\ninstance NodeProperty VisualShaderNodeTexture \"texture_type\" Int\n           'False\n         where\n        nodeProperty\n          = (get_texture_type, wrapDroppingSetter set_texture_type, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeTexture_get_source #-}\n\n-- | Determines the source for the lookup. See @enum Source@ for options.\nbindVisualShaderNodeTexture_get_source :: MethodBind\nbindVisualShaderNodeTexture_get_source\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_source\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Determines the source for the lookup. See @enum Source@ for options.\nget_source ::\n             (VisualShaderNodeTexture :< cls, Object :< cls) => cls -> IO Int\nget_source cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeTexture_get_source\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeTexture \"get_source\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeTexture.get_source\n\n{-# NOINLINE bindVisualShaderNodeTexture_get_texture #-}\n\n-- | The source texture, if needed for the selected @source@.\nbindVisualShaderNodeTexture_get_texture :: MethodBind\nbindVisualShaderNodeTexture_get_texture\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The source texture, if needed for the selected @source@.\nget_texture ::\n              (VisualShaderNodeTexture :< cls, Object :< cls) =>\n              cls -> IO Texture\nget_texture cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeTexture_get_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeTexture \"get_texture\" '[]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeTexture.get_texture\n\n{-# NOINLINE bindVisualShaderNodeTexture_get_texture_type #-}\n\n-- | Specifies the type of the texture if @source@ is set to @SOURCE_TEXTURE@. See @enum TextureType@ for options.\nbindVisualShaderNodeTexture_get_texture_type :: MethodBind\nbindVisualShaderNodeTexture_get_texture_type\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeTexture\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies the type of the texture if @source@ is set to @SOURCE_TEXTURE@. See @enum TextureType@ for options.\nget_texture_type ::\n                   (VisualShaderNodeTexture :< cls, Object :< cls) => cls -> IO Int\nget_texture_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeTexture_get_texture_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeTexture \"get_texture_type\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeTexture.get_texture_type\n\n{-# NOINLINE bindVisualShaderNodeTexture_set_source #-}\n\n-- | Determines the source for the lookup. See @enum Source@ for options.\nbindVisualShaderNodeTexture_set_source :: MethodBind\nbindVisualShaderNodeTexture_set_source\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_source\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Determines the source for the lookup. See @enum Source@ for options.\nset_source ::\n             (VisualShaderNodeTexture :< cls, Object :< cls) =>\n             cls -> Int -> IO ()\nset_source cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeTexture_set_source\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeTexture \"set_source\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeTexture.set_source\n\n{-# NOINLINE bindVisualShaderNodeTexture_set_texture #-}\n\n-- | The source texture, if needed for the selected @source@.\nbindVisualShaderNodeTexture_set_texture :: MethodBind\nbindVisualShaderNodeTexture_set_texture\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The source texture, if needed for the selected @source@.\nset_texture ::\n              (VisualShaderNodeTexture :< cls, Object :< cls) =>\n              cls -> Texture -> IO ()\nset_texture cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeTexture_set_texture\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeTexture \"set_texture\"\n           '[Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeTexture.set_texture\n\n{-# NOINLINE bindVisualShaderNodeTexture_set_texture_type #-}\n\n-- | Specifies the type of the texture if @source@ is set to @SOURCE_TEXTURE@. See @enum TextureType@ for options.\nbindVisualShaderNodeTexture_set_texture_type :: MethodBind\nbindVisualShaderNodeTexture_set_texture_type\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeTexture\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Specifies the type of the texture if @source@ is set to @SOURCE_TEXTURE@. See @enum TextureType@ for options.\nset_texture_type ::\n                   (VisualShaderNodeTexture :< cls, Object :< cls) =>\n                   cls -> Int -> IO ()\nset_texture_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeTexture_set_texture_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeTexture \"set_texture_type\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeTexture.set_texture_type"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeTextureUniform.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeTextureUniform\n       (Godot.Core.VisualShaderNodeTextureUniform._TYPE_DATA,\n        Godot.Core.VisualShaderNodeTextureUniform._TYPE_ANISO,\n        Godot.Core.VisualShaderNodeTextureUniform._COLOR_DEFAULT_WHITE,\n        Godot.Core.VisualShaderNodeTextureUniform._TYPE_COLOR,\n        Godot.Core.VisualShaderNodeTextureUniform._TYPE_NORMALMAP,\n        Godot.Core.VisualShaderNodeTextureUniform._COLOR_DEFAULT_BLACK,\n        Godot.Core.VisualShaderNodeTextureUniform.get_color_default,\n        Godot.Core.VisualShaderNodeTextureUniform.get_texture_type,\n        Godot.Core.VisualShaderNodeTextureUniform.set_color_default,\n        Godot.Core.VisualShaderNodeTextureUniform.set_texture_type)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNodeUniform()\n\n_TYPE_DATA :: Int\n_TYPE_DATA = 0\n\n_TYPE_ANISO :: Int\n_TYPE_ANISO = 3\n\n_COLOR_DEFAULT_WHITE :: Int\n_COLOR_DEFAULT_WHITE = 0\n\n_TYPE_COLOR :: Int\n_TYPE_COLOR = 1\n\n_TYPE_NORMALMAP :: Int\n_TYPE_NORMALMAP = 2\n\n_COLOR_DEFAULT_BLACK :: Int\n_COLOR_DEFAULT_BLACK = 1\n\ninstance NodeProperty VisualShaderNodeTextureUniform\n           \"color_default\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_color_default, wrapDroppingSetter set_color_default,\n             Nothing)\n\ninstance NodeProperty VisualShaderNodeTextureUniform \"texture_type\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_texture_type, wrapDroppingSetter set_texture_type, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeTextureUniform_get_color_default\n             #-}\n\n-- | Sets the default color if no texture is assigned to the uniform.\nbindVisualShaderNodeTextureUniform_get_color_default :: MethodBind\nbindVisualShaderNodeTextureUniform_get_color_default\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeTextureUniform\" $\n        \\ clsNamePtr ->\n          withCString \"get_color_default\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the default color if no texture is assigned to the uniform.\nget_color_default ::\n                    (VisualShaderNodeTextureUniform :< cls, Object :< cls) =>\n                    cls -> IO Int\nget_color_default cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeTextureUniform_get_color_default\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeTextureUniform\n           \"get_color_default\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeTextureUniform.get_color_default\n\n{-# NOINLINE bindVisualShaderNodeTextureUniform_get_texture_type\n             #-}\n\n-- | Defines the type of data provided by the source texture. See @enum TextureType@ for options.\nbindVisualShaderNodeTextureUniform_get_texture_type :: MethodBind\nbindVisualShaderNodeTextureUniform_get_texture_type\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeTextureUniform\" $\n        \\ clsNamePtr ->\n          withCString \"get_texture_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines the type of data provided by the source texture. See @enum TextureType@ for options.\nget_texture_type ::\n                   (VisualShaderNodeTextureUniform :< cls, Object :< cls) =>\n                   cls -> IO Int\nget_texture_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeTextureUniform_get_texture_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeTextureUniform\n           \"get_texture_type\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeTextureUniform.get_texture_type\n\n{-# NOINLINE bindVisualShaderNodeTextureUniform_set_color_default\n             #-}\n\n-- | Sets the default color if no texture is assigned to the uniform.\nbindVisualShaderNodeTextureUniform_set_color_default :: MethodBind\nbindVisualShaderNodeTextureUniform_set_color_default\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeTextureUniform\" $\n        \\ clsNamePtr ->\n          withCString \"set_color_default\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the default color if no texture is assigned to the uniform.\nset_color_default ::\n                    (VisualShaderNodeTextureUniform :< cls, Object :< cls) =>\n                    cls -> Int -> IO ()\nset_color_default cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeTextureUniform_set_color_default\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeTextureUniform\n           \"set_color_default\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeTextureUniform.set_color_default\n\n{-# NOINLINE bindVisualShaderNodeTextureUniform_set_texture_type\n             #-}\n\n-- | Defines the type of data provided by the source texture. See @enum TextureType@ for options.\nbindVisualShaderNodeTextureUniform_set_texture_type :: MethodBind\nbindVisualShaderNodeTextureUniform_set_texture_type\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeTextureUniform\" $\n        \\ clsNamePtr ->\n          withCString \"set_texture_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Defines the type of data provided by the source texture. See @enum TextureType@ for options.\nset_texture_type ::\n                   (VisualShaderNodeTextureUniform :< cls, Object :< cls) =>\n                   cls -> Int -> IO ()\nset_texture_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeTextureUniform_set_texture_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeTextureUniform\n           \"set_texture_type\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeTextureUniform.set_texture_type"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeTextureUniformTriplanar.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeTextureUniformTriplanar () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNodeTextureUniform()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeTransformCompose.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeTransformCompose () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeTransformConstant.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeTransformConstant\n       (Godot.Core.VisualShaderNodeTransformConstant.get_constant,\n        Godot.Core.VisualShaderNodeTransformConstant.set_constant)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\ninstance NodeProperty VisualShaderNodeTransformConstant \"constant\"\n           Transform\n           'False\n         where\n        nodeProperty\n          = (get_constant, wrapDroppingSetter set_constant, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeTransformConstant_get_constant #-}\n\n-- | A @Transform@ constant which represents the state of this node.\nbindVisualShaderNodeTransformConstant_get_constant :: MethodBind\nbindVisualShaderNodeTransformConstant_get_constant\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeTransformConstant\" $\n        \\ clsNamePtr ->\n          withCString \"get_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A @Transform@ constant which represents the state of this node.\nget_constant ::\n               (VisualShaderNodeTransformConstant :< cls, Object :< cls) =>\n               cls -> IO Transform\nget_constant cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeTransformConstant_get_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeTransformConstant\n           \"get_constant\"\n           '[]\n           (IO Transform)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeTransformConstant.get_constant\n\n{-# NOINLINE bindVisualShaderNodeTransformConstant_set_constant #-}\n\n-- | A @Transform@ constant which represents the state of this node.\nbindVisualShaderNodeTransformConstant_set_constant :: MethodBind\nbindVisualShaderNodeTransformConstant_set_constant\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeTransformConstant\" $\n        \\ clsNamePtr ->\n          withCString \"set_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A @Transform@ constant which represents the state of this node.\nset_constant ::\n               (VisualShaderNodeTransformConstant :< cls, Object :< cls) =>\n               cls -> Transform -> IO ()\nset_constant cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeTransformConstant_set_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeTransformConstant\n           \"set_constant\"\n           '[Transform]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeTransformConstant.set_constant"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeTransformDecompose.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeTransformDecompose () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeTransformFunc.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeTransformFunc\n       (Godot.Core.VisualShaderNodeTransformFunc._FUNC_TRANSPOSE,\n        Godot.Core.VisualShaderNodeTransformFunc._FUNC_INVERSE,\n        Godot.Core.VisualShaderNodeTransformFunc.get_function,\n        Godot.Core.VisualShaderNodeTransformFunc.set_function)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\n_FUNC_TRANSPOSE :: Int\n_FUNC_TRANSPOSE = 1\n\n_FUNC_INVERSE :: Int\n_FUNC_INVERSE = 0\n\ninstance NodeProperty VisualShaderNodeTransformFunc \"function\" Int\n           'False\n         where\n        nodeProperty\n          = (get_function, wrapDroppingSetter set_function, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeTransformFunc_get_function #-}\n\n-- | The function to be computed. See @enum Function@ for options.\nbindVisualShaderNodeTransformFunc_get_function :: MethodBind\nbindVisualShaderNodeTransformFunc_get_function\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeTransformFunc\" $\n        \\ clsNamePtr ->\n          withCString \"get_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The function to be computed. See @enum Function@ for options.\nget_function ::\n               (VisualShaderNodeTransformFunc :< cls, Object :< cls) =>\n               cls -> IO Int\nget_function cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeTransformFunc_get_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeTransformFunc \"get_function\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeTransformFunc.get_function\n\n{-# NOINLINE bindVisualShaderNodeTransformFunc_set_function #-}\n\n-- | The function to be computed. See @enum Function@ for options.\nbindVisualShaderNodeTransformFunc_set_function :: MethodBind\nbindVisualShaderNodeTransformFunc_set_function\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeTransformFunc\" $\n        \\ clsNamePtr ->\n          withCString \"set_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The function to be computed. See @enum Function@ for options.\nset_function ::\n               (VisualShaderNodeTransformFunc :< cls, Object :< cls) =>\n               cls -> Int -> IO ()\nset_function cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeTransformFunc_set_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeTransformFunc \"set_function\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeTransformFunc.set_function"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeTransformMult.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeTransformMult\n       (Godot.Core.VisualShaderNodeTransformMult._OP_AxB_COMP,\n        Godot.Core.VisualShaderNodeTransformMult._OP_BxA_COMP,\n        Godot.Core.VisualShaderNodeTransformMult._OP_AxB,\n        Godot.Core.VisualShaderNodeTransformMult._OP_BxA,\n        Godot.Core.VisualShaderNodeTransformMult.get_operator,\n        Godot.Core.VisualShaderNodeTransformMult.set_operator)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\n_OP_AxB_COMP :: Int\n_OP_AxB_COMP = 2\n\n_OP_BxA_COMP :: Int\n_OP_BxA_COMP = 3\n\n_OP_AxB :: Int\n_OP_AxB = 0\n\n_OP_BxA :: Int\n_OP_BxA = 1\n\ninstance NodeProperty VisualShaderNodeTransformMult \"operator\" Int\n           'False\n         where\n        nodeProperty\n          = (get_operator, wrapDroppingSetter set_operator, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeTransformMult_get_operator #-}\n\n-- | The multiplication type to be performed on the transforms. See @enum Operator@ for options.\nbindVisualShaderNodeTransformMult_get_operator :: MethodBind\nbindVisualShaderNodeTransformMult_get_operator\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeTransformMult\" $\n        \\ clsNamePtr ->\n          withCString \"get_operator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The multiplication type to be performed on the transforms. See @enum Operator@ for options.\nget_operator ::\n               (VisualShaderNodeTransformMult :< cls, Object :< cls) =>\n               cls -> IO Int\nget_operator cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeTransformMult_get_operator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeTransformMult \"get_operator\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeTransformMult.get_operator\n\n{-# NOINLINE bindVisualShaderNodeTransformMult_set_operator #-}\n\n-- | The multiplication type to be performed on the transforms. See @enum Operator@ for options.\nbindVisualShaderNodeTransformMult_set_operator :: MethodBind\nbindVisualShaderNodeTransformMult_set_operator\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeTransformMult\" $\n        \\ clsNamePtr ->\n          withCString \"set_operator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The multiplication type to be performed on the transforms. See @enum Operator@ for options.\nset_operator ::\n               (VisualShaderNodeTransformMult :< cls, Object :< cls) =>\n               cls -> Int -> IO ()\nset_operator cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeTransformMult_set_operator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeTransformMult \"set_operator\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeTransformMult.set_operator"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeTransformUniform.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeTransformUniform () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNodeUniform()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeTransformVecMult.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeTransformVecMult\n       (Godot.Core.VisualShaderNodeTransformVecMult._OP_AxB,\n        Godot.Core.VisualShaderNodeTransformVecMult._OP_BxA,\n        Godot.Core.VisualShaderNodeTransformVecMult._OP_3x3_BxA,\n        Godot.Core.VisualShaderNodeTransformVecMult._OP_3x3_AxB,\n        Godot.Core.VisualShaderNodeTransformVecMult.get_operator,\n        Godot.Core.VisualShaderNodeTransformVecMult.set_operator)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\n_OP_AxB :: Int\n_OP_AxB = 0\n\n_OP_BxA :: Int\n_OP_BxA = 1\n\n_OP_3x3_BxA :: Int\n_OP_3x3_BxA = 3\n\n_OP_3x3_AxB :: Int\n_OP_3x3_AxB = 2\n\ninstance NodeProperty VisualShaderNodeTransformVecMult \"operator\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_operator, wrapDroppingSetter set_operator, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeTransformVecMult_get_operator #-}\n\n-- | The multiplication type to be performed. See @enum Operator@ for options.\nbindVisualShaderNodeTransformVecMult_get_operator :: MethodBind\nbindVisualShaderNodeTransformVecMult_get_operator\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeTransformVecMult\" $\n        \\ clsNamePtr ->\n          withCString \"get_operator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The multiplication type to be performed. See @enum Operator@ for options.\nget_operator ::\n               (VisualShaderNodeTransformVecMult :< cls, Object :< cls) =>\n               cls -> IO Int\nget_operator cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeTransformVecMult_get_operator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeTransformVecMult \"get_operator\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeTransformVecMult.get_operator\n\n{-# NOINLINE bindVisualShaderNodeTransformVecMult_set_operator #-}\n\n-- | The multiplication type to be performed. See @enum Operator@ for options.\nbindVisualShaderNodeTransformVecMult_set_operator :: MethodBind\nbindVisualShaderNodeTransformVecMult_set_operator\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeTransformVecMult\" $\n        \\ clsNamePtr ->\n          withCString \"set_operator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The multiplication type to be performed. See @enum Operator@ for options.\nset_operator ::\n               (VisualShaderNodeTransformVecMult :< cls, Object :< cls) =>\n               cls -> Int -> IO ()\nset_operator cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeTransformVecMult_set_operator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeTransformVecMult \"set_operator\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeTransformVecMult.set_operator"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeUniform.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeUniform\n       (Godot.Core.VisualShaderNodeUniform.get_uniform_name,\n        Godot.Core.VisualShaderNodeUniform.set_uniform_name)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\ninstance NodeProperty VisualShaderNodeUniform \"uniform_name\"\n           GodotString\n           'False\n         where\n        nodeProperty\n          = (get_uniform_name, wrapDroppingSetter set_uniform_name, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeUniform_get_uniform_name #-}\n\n-- | Name of the uniform, by which it can be accessed through the @ShaderMaterial@ properties.\nbindVisualShaderNodeUniform_get_uniform_name :: MethodBind\nbindVisualShaderNodeUniform_get_uniform_name\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeUniform\" $\n        \\ clsNamePtr ->\n          withCString \"get_uniform_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Name of the uniform, by which it can be accessed through the @ShaderMaterial@ properties.\nget_uniform_name ::\n                   (VisualShaderNodeUniform :< cls, Object :< cls) =>\n                   cls -> IO GodotString\nget_uniform_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeUniform_get_uniform_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeUniform \"get_uniform_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeUniform.get_uniform_name\n\n{-# NOINLINE bindVisualShaderNodeUniform_set_uniform_name #-}\n\n-- | Name of the uniform, by which it can be accessed through the @ShaderMaterial@ properties.\nbindVisualShaderNodeUniform_set_uniform_name :: MethodBind\nbindVisualShaderNodeUniform_set_uniform_name\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeUniform\" $\n        \\ clsNamePtr ->\n          withCString \"set_uniform_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Name of the uniform, by which it can be accessed through the @ShaderMaterial@ properties.\nset_uniform_name ::\n                   (VisualShaderNodeUniform :< cls, Object :< cls) =>\n                   cls -> GodotString -> IO ()\nset_uniform_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeUniform_set_uniform_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeUniform \"set_uniform_name\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeUniform.set_uniform_name"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeVec3Constant.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeVec3Constant\n       (Godot.Core.VisualShaderNodeVec3Constant.get_constant,\n        Godot.Core.VisualShaderNodeVec3Constant.set_constant)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\ninstance NodeProperty VisualShaderNodeVec3Constant \"constant\"\n           Vector3\n           'False\n         where\n        nodeProperty\n          = (get_constant, wrapDroppingSetter set_constant, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeVec3Constant_get_constant #-}\n\n-- | A @Vector3@ constant which represents the state of this node.\nbindVisualShaderNodeVec3Constant_get_constant :: MethodBind\nbindVisualShaderNodeVec3Constant_get_constant\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeVec3Constant\" $\n        \\ clsNamePtr ->\n          withCString \"get_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A @Vector3@ constant which represents the state of this node.\nget_constant ::\n               (VisualShaderNodeVec3Constant :< cls, Object :< cls) =>\n               cls -> IO Vector3\nget_constant cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeVec3Constant_get_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeVec3Constant \"get_constant\" '[]\n           (IO Vector3)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeVec3Constant.get_constant\n\n{-# NOINLINE bindVisualShaderNodeVec3Constant_set_constant #-}\n\n-- | A @Vector3@ constant which represents the state of this node.\nbindVisualShaderNodeVec3Constant_set_constant :: MethodBind\nbindVisualShaderNodeVec3Constant_set_constant\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeVec3Constant\" $\n        \\ clsNamePtr ->\n          withCString \"set_constant\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A @Vector3@ constant which represents the state of this node.\nset_constant ::\n               (VisualShaderNodeVec3Constant :< cls, Object :< cls) =>\n               cls -> Vector3 -> IO ()\nset_constant cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeVec3Constant_set_constant\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeVec3Constant \"set_constant\"\n           '[Vector3]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeVec3Constant.set_constant"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeVec3Uniform.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeVec3Uniform () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNodeUniform()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeVectorClamp.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeVectorClamp () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeVectorCompose.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeVectorCompose () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeVectorDecompose.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeVectorDecompose () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeVectorDerivativeFunc.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeVectorDerivativeFunc\n       (Godot.Core.VisualShaderNodeVectorDerivativeFunc._FUNC_SUM,\n        Godot.Core.VisualShaderNodeVectorDerivativeFunc._FUNC_Y,\n        Godot.Core.VisualShaderNodeVectorDerivativeFunc._FUNC_X,\n        Godot.Core.VisualShaderNodeVectorDerivativeFunc.get_function,\n        Godot.Core.VisualShaderNodeVectorDerivativeFunc.set_function)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\n_FUNC_SUM :: Int\n_FUNC_SUM = 0\n\n_FUNC_Y :: Int\n_FUNC_Y = 2\n\n_FUNC_X :: Int\n_FUNC_X = 1\n\ninstance NodeProperty VisualShaderNodeVectorDerivativeFunc\n           \"function\"\n           Int\n           'False\n         where\n        nodeProperty\n          = (get_function, wrapDroppingSetter set_function, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeVectorDerivativeFunc_get_function\n             #-}\n\n-- | A derivative type. See @enum Function@ for options.\nbindVisualShaderNodeVectorDerivativeFunc_get_function :: MethodBind\nbindVisualShaderNodeVectorDerivativeFunc_get_function\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeVectorDerivativeFunc\" $\n        \\ clsNamePtr ->\n          withCString \"get_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A derivative type. See @enum Function@ for options.\nget_function ::\n               (VisualShaderNodeVectorDerivativeFunc :< cls, Object :< cls) =>\n               cls -> IO Int\nget_function cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeVectorDerivativeFunc_get_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeVectorDerivativeFunc\n           \"get_function\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeVectorDerivativeFunc.get_function\n\n{-# NOINLINE bindVisualShaderNodeVectorDerivativeFunc_set_function\n             #-}\n\n-- | A derivative type. See @enum Function@ for options.\nbindVisualShaderNodeVectorDerivativeFunc_set_function :: MethodBind\nbindVisualShaderNodeVectorDerivativeFunc_set_function\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeVectorDerivativeFunc\" $\n        \\ clsNamePtr ->\n          withCString \"set_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | A derivative type. See @enum Function@ for options.\nset_function ::\n               (VisualShaderNodeVectorDerivativeFunc :< cls, Object :< cls) =>\n               cls -> Int -> IO ()\nset_function cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindVisualShaderNodeVectorDerivativeFunc_set_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeVectorDerivativeFunc\n           \"set_function\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Core.VisualShaderNodeVectorDerivativeFunc.set_function"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeVectorDistance.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeVectorDistance () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeVectorFunc.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeVectorFunc\n       (Godot.Core.VisualShaderNodeVectorFunc._FUNC_ASINH,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_NORMALIZE,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_RECIPROCAL,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_TRUNC,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_TAN,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_SQRT,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_ATANH,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_RADIANS,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_ATAN,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_ROUNDEVEN,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_COS,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_DEGREES,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_HSV2RGB,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_RGB2HSV,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_ASIN,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_EXP,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_LOG2,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_ACOSH,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_ACOS,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_FRAC,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_SIGN,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_INVERSE_SQRT,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_TANH,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_CEIL,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_LOG,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_SINH,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_NEGATE,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_SIN,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_SATURATE,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_ROUND,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_COSH,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_EXP2,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_ONEMINUS,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_ABS,\n        Godot.Core.VisualShaderNodeVectorFunc._FUNC_FLOOR,\n        Godot.Core.VisualShaderNodeVectorFunc.get_function,\n        Godot.Core.VisualShaderNodeVectorFunc.set_function)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\n_FUNC_ASINH :: Int\n_FUNC_ASINH = 10\n\n_FUNC_NORMALIZE :: Int\n_FUNC_NORMALIZE = 0\n\n_FUNC_RECIPROCAL :: Int\n_FUNC_RECIPROCAL = 3\n\n_FUNC_TRUNC :: Int\n_FUNC_TRUNC = 33\n\n_FUNC_TAN :: Int\n_FUNC_TAN = 31\n\n_FUNC_SQRT :: Int\n_FUNC_SQRT = 30\n\n_FUNC_ATANH :: Int\n_FUNC_ATANH = 12\n\n_FUNC_RADIANS :: Int\n_FUNC_RADIANS = 24\n\n_FUNC_ATAN :: Int\n_FUNC_ATAN = 11\n\n_FUNC_ROUNDEVEN :: Int\n_FUNC_ROUNDEVEN = 26\n\n_FUNC_COS :: Int\n_FUNC_COS = 14\n\n_FUNC_DEGREES :: Int\n_FUNC_DEGREES = 16\n\n_FUNC_HSV2RGB :: Int\n_FUNC_HSV2RGB = 5\n\n_FUNC_RGB2HSV :: Int\n_FUNC_RGB2HSV = 4\n\n_FUNC_ASIN :: Int\n_FUNC_ASIN = 9\n\n_FUNC_EXP :: Int\n_FUNC_EXP = 17\n\n_FUNC_LOG2 :: Int\n_FUNC_LOG2 = 23\n\n_FUNC_ACOSH :: Int\n_FUNC_ACOSH = 8\n\n_FUNC_ACOS :: Int\n_FUNC_ACOS = 7\n\n_FUNC_FRAC :: Int\n_FUNC_FRAC = 20\n\n_FUNC_SIGN :: Int\n_FUNC_SIGN = 27\n\n_FUNC_INVERSE_SQRT :: Int\n_FUNC_INVERSE_SQRT = 21\n\n_FUNC_TANH :: Int\n_FUNC_TANH = 32\n\n_FUNC_CEIL :: Int\n_FUNC_CEIL = 13\n\n_FUNC_LOG :: Int\n_FUNC_LOG = 22\n\n_FUNC_SINH :: Int\n_FUNC_SINH = 29\n\n_FUNC_NEGATE :: Int\n_FUNC_NEGATE = 2\n\n_FUNC_SIN :: Int\n_FUNC_SIN = 28\n\n_FUNC_SATURATE :: Int\n_FUNC_SATURATE = 1\n\n_FUNC_ROUND :: Int\n_FUNC_ROUND = 25\n\n_FUNC_COSH :: Int\n_FUNC_COSH = 15\n\n_FUNC_EXP2 :: Int\n_FUNC_EXP2 = 18\n\n_FUNC_ONEMINUS :: Int\n_FUNC_ONEMINUS = 34\n\n_FUNC_ABS :: Int\n_FUNC_ABS = 6\n\n_FUNC_FLOOR :: Int\n_FUNC_FLOOR = 19\n\ninstance NodeProperty VisualShaderNodeVectorFunc \"function\" Int\n           'False\n         where\n        nodeProperty\n          = (get_function, wrapDroppingSetter set_function, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeVectorFunc_get_function #-}\n\n-- | The function to be performed. See @enum Function@ for options.\nbindVisualShaderNodeVectorFunc_get_function :: MethodBind\nbindVisualShaderNodeVectorFunc_get_function\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeVectorFunc\" $\n        \\ clsNamePtr ->\n          withCString \"get_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The function to be performed. See @enum Function@ for options.\nget_function ::\n               (VisualShaderNodeVectorFunc :< cls, Object :< cls) => cls -> IO Int\nget_function cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeVectorFunc_get_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeVectorFunc \"get_function\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeVectorFunc.get_function\n\n{-# NOINLINE bindVisualShaderNodeVectorFunc_set_function #-}\n\n-- | The function to be performed. See @enum Function@ for options.\nbindVisualShaderNodeVectorFunc_set_function :: MethodBind\nbindVisualShaderNodeVectorFunc_set_function\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeVectorFunc\" $\n        \\ clsNamePtr ->\n          withCString \"set_function\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The function to be performed. See @enum Function@ for options.\nset_function ::\n               (VisualShaderNodeVectorFunc :< cls, Object :< cls) =>\n               cls -> Int -> IO ()\nset_function cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeVectorFunc_set_function\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeVectorFunc \"set_function\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeVectorFunc.set_function"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeVectorInterp.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeVectorInterp () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeVectorLen.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeVectorLen () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeVectorOp.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeVectorOp\n       (Godot.Core.VisualShaderNodeVectorOp._OP_MUL,\n        Godot.Core.VisualShaderNodeVectorOp._OP_SUB,\n        Godot.Core.VisualShaderNodeVectorOp._OP_MAX,\n        Godot.Core.VisualShaderNodeVectorOp._OP_POW,\n        Godot.Core.VisualShaderNodeVectorOp._OP_MOD,\n        Godot.Core.VisualShaderNodeVectorOp._OP_ADD,\n        Godot.Core.VisualShaderNodeVectorOp._OP_REFLECT,\n        Godot.Core.VisualShaderNodeVectorOp._OP_STEP,\n        Godot.Core.VisualShaderNodeVectorOp._OP_MIN,\n        Godot.Core.VisualShaderNodeVectorOp._OP_ATAN2,\n        Godot.Core.VisualShaderNodeVectorOp._OP_DIV,\n        Godot.Core.VisualShaderNodeVectorOp._OP_CROSS,\n        Godot.Core.VisualShaderNodeVectorOp.get_operator,\n        Godot.Core.VisualShaderNodeVectorOp.set_operator)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()\n\n_OP_MUL :: Int\n_OP_MUL = 2\n\n_OP_SUB :: Int\n_OP_SUB = 1\n\n_OP_MAX :: Int\n_OP_MAX = 6\n\n_OP_POW :: Int\n_OP_POW = 5\n\n_OP_MOD :: Int\n_OP_MOD = 4\n\n_OP_ADD :: Int\n_OP_ADD = 0\n\n_OP_REFLECT :: Int\n_OP_REFLECT = 10\n\n_OP_STEP :: Int\n_OP_STEP = 11\n\n_OP_MIN :: Int\n_OP_MIN = 7\n\n_OP_ATAN2 :: Int\n_OP_ATAN2 = 9\n\n_OP_DIV :: Int\n_OP_DIV = 3\n\n_OP_CROSS :: Int\n_OP_CROSS = 8\n\ninstance NodeProperty VisualShaderNodeVectorOp \"operator\" Int\n           'False\n         where\n        nodeProperty\n          = (get_operator, wrapDroppingSetter set_operator, Nothing)\n\n{-# NOINLINE bindVisualShaderNodeVectorOp_get_operator #-}\n\n-- | The operator to be used. See @enum Operator@ for options.\nbindVisualShaderNodeVectorOp_get_operator :: MethodBind\nbindVisualShaderNodeVectorOp_get_operator\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeVectorOp\" $\n        \\ clsNamePtr ->\n          withCString \"get_operator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The operator to be used. See @enum Operator@ for options.\nget_operator ::\n               (VisualShaderNodeVectorOp :< cls, Object :< cls) => cls -> IO Int\nget_operator cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeVectorOp_get_operator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeVectorOp \"get_operator\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeVectorOp.get_operator\n\n{-# NOINLINE bindVisualShaderNodeVectorOp_set_operator #-}\n\n-- | The operator to be used. See @enum Operator@ for options.\nbindVisualShaderNodeVectorOp_set_operator :: MethodBind\nbindVisualShaderNodeVectorOp_set_operator\n  = unsafePerformIO $\n      withCString \"VisualShaderNodeVectorOp\" $\n        \\ clsNamePtr ->\n          withCString \"set_operator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The operator to be used. See @enum Operator@ for options.\nset_operator ::\n               (VisualShaderNodeVectorOp :< cls, Object :< cls) =>\n               cls -> Int -> IO ()\nset_operator cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualShaderNodeVectorOp_set_operator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualShaderNodeVectorOp \"set_operator\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.VisualShaderNodeVectorOp.set_operator"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeVectorRefract.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeVectorRefract () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeVectorScalarMix.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeVectorScalarMix () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeVectorScalarSmoothStep.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeVectorScalarSmoothStep () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeVectorScalarStep.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeVectorScalarStep () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/VisualShaderNodeVectorSmoothStep.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.VisualShaderNodeVectorSmoothStep () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.VisualShaderNode()"
  },
  {
    "path": "src/Godot/Core/WeakRef.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.WeakRef (Godot.Core.WeakRef.get_ref) where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindWeakRef_get_ref #-}\n\n-- | Returns the @Object@ this weakref is referring to.\nbindWeakRef_get_ref :: MethodBind\nbindWeakRef_get_ref\n  = unsafePerformIO $\n      withCString \"WeakRef\" $\n        \\ clsNamePtr ->\n          withCString \"get_ref\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @Object@ this weakref is referring to.\nget_ref ::\n          (WeakRef :< cls, Object :< cls) => cls -> IO GodotVariant\nget_ref cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWeakRef_get_ref (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WeakRef \"get_ref\" '[] (IO GodotVariant) where\n        nodeMethod = Godot.Core.WeakRef.get_ref"
  },
  {
    "path": "src/Godot/Core/WebRTCDataChannel.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.WebRTCDataChannel\n       (Godot.Core.WebRTCDataChannel._STATE_CLOSED,\n        Godot.Core.WebRTCDataChannel._WRITE_MODE_TEXT,\n        Godot.Core.WebRTCDataChannel._STATE_CLOSING,\n        Godot.Core.WebRTCDataChannel._STATE_CONNECTING,\n        Godot.Core.WebRTCDataChannel._STATE_OPEN,\n        Godot.Core.WebRTCDataChannel._WRITE_MODE_BINARY,\n        Godot.Core.WebRTCDataChannel.close,\n        Godot.Core.WebRTCDataChannel.get_id,\n        Godot.Core.WebRTCDataChannel.get_label,\n        Godot.Core.WebRTCDataChannel.get_max_packet_life_time,\n        Godot.Core.WebRTCDataChannel.get_max_retransmits,\n        Godot.Core.WebRTCDataChannel.get_protocol,\n        Godot.Core.WebRTCDataChannel.get_ready_state,\n        Godot.Core.WebRTCDataChannel.get_write_mode,\n        Godot.Core.WebRTCDataChannel.is_negotiated,\n        Godot.Core.WebRTCDataChannel.is_ordered,\n        Godot.Core.WebRTCDataChannel.poll,\n        Godot.Core.WebRTCDataChannel.set_write_mode,\n        Godot.Core.WebRTCDataChannel.was_string_packet)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PacketPeer()\n\n_STATE_CLOSED :: Int\n_STATE_CLOSED = 3\n\n_WRITE_MODE_TEXT :: Int\n_WRITE_MODE_TEXT = 0\n\n_STATE_CLOSING :: Int\n_STATE_CLOSING = 2\n\n_STATE_CONNECTING :: Int\n_STATE_CONNECTING = 0\n\n_STATE_OPEN :: Int\n_STATE_OPEN = 1\n\n_WRITE_MODE_BINARY :: Int\n_WRITE_MODE_BINARY = 1\n\ninstance NodeProperty WebRTCDataChannel \"write_mode\" Int 'False\n         where\n        nodeProperty\n          = (get_write_mode, wrapDroppingSetter set_write_mode, Nothing)\n\n{-# NOINLINE bindWebRTCDataChannel_close #-}\n\nbindWebRTCDataChannel_close :: MethodBind\nbindWebRTCDataChannel_close\n  = unsafePerformIO $\n      withCString \"WebRTCDataChannel\" $\n        \\ clsNamePtr ->\n          withCString \"close\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nclose :: (WebRTCDataChannel :< cls, Object :< cls) => cls -> IO ()\nclose cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCDataChannel_close (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCDataChannel \"close\" '[] (IO ()) where\n        nodeMethod = Godot.Core.WebRTCDataChannel.close\n\n{-# NOINLINE bindWebRTCDataChannel_get_id #-}\n\nbindWebRTCDataChannel_get_id :: MethodBind\nbindWebRTCDataChannel_get_id\n  = unsafePerformIO $\n      withCString \"WebRTCDataChannel\" $\n        \\ clsNamePtr ->\n          withCString \"get_id\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_id ::\n         (WebRTCDataChannel :< cls, Object :< cls) => cls -> IO Int\nget_id cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCDataChannel_get_id (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCDataChannel \"get_id\" '[] (IO Int) where\n        nodeMethod = Godot.Core.WebRTCDataChannel.get_id\n\n{-# NOINLINE bindWebRTCDataChannel_get_label #-}\n\nbindWebRTCDataChannel_get_label :: MethodBind\nbindWebRTCDataChannel_get_label\n  = unsafePerformIO $\n      withCString \"WebRTCDataChannel\" $\n        \\ clsNamePtr ->\n          withCString \"get_label\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_label ::\n            (WebRTCDataChannel :< cls, Object :< cls) => cls -> IO GodotString\nget_label cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCDataChannel_get_label (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCDataChannel \"get_label\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.WebRTCDataChannel.get_label\n\n{-# NOINLINE bindWebRTCDataChannel_get_max_packet_life_time #-}\n\nbindWebRTCDataChannel_get_max_packet_life_time :: MethodBind\nbindWebRTCDataChannel_get_max_packet_life_time\n  = unsafePerformIO $\n      withCString \"WebRTCDataChannel\" $\n        \\ clsNamePtr ->\n          withCString \"get_max_packet_life_time\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_max_packet_life_time ::\n                           (WebRTCDataChannel :< cls, Object :< cls) => cls -> IO Int\nget_max_packet_life_time cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindWebRTCDataChannel_get_max_packet_life_time\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCDataChannel \"get_max_packet_life_time\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.WebRTCDataChannel.get_max_packet_life_time\n\n{-# NOINLINE bindWebRTCDataChannel_get_max_retransmits #-}\n\nbindWebRTCDataChannel_get_max_retransmits :: MethodBind\nbindWebRTCDataChannel_get_max_retransmits\n  = unsafePerformIO $\n      withCString \"WebRTCDataChannel\" $\n        \\ clsNamePtr ->\n          withCString \"get_max_retransmits\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_max_retransmits ::\n                      (WebRTCDataChannel :< cls, Object :< cls) => cls -> IO Int\nget_max_retransmits cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCDataChannel_get_max_retransmits\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCDataChannel \"get_max_retransmits\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.WebRTCDataChannel.get_max_retransmits\n\n{-# NOINLINE bindWebRTCDataChannel_get_protocol #-}\n\nbindWebRTCDataChannel_get_protocol :: MethodBind\nbindWebRTCDataChannel_get_protocol\n  = unsafePerformIO $\n      withCString \"WebRTCDataChannel\" $\n        \\ clsNamePtr ->\n          withCString \"get_protocol\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_protocol ::\n               (WebRTCDataChannel :< cls, Object :< cls) => cls -> IO GodotString\nget_protocol cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCDataChannel_get_protocol\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCDataChannel \"get_protocol\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.WebRTCDataChannel.get_protocol\n\n{-# NOINLINE bindWebRTCDataChannel_get_ready_state #-}\n\nbindWebRTCDataChannel_get_ready_state :: MethodBind\nbindWebRTCDataChannel_get_ready_state\n  = unsafePerformIO $\n      withCString \"WebRTCDataChannel\" $\n        \\ clsNamePtr ->\n          withCString \"get_ready_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_ready_state ::\n                  (WebRTCDataChannel :< cls, Object :< cls) => cls -> IO Int\nget_ready_state cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCDataChannel_get_ready_state\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCDataChannel \"get_ready_state\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.WebRTCDataChannel.get_ready_state\n\n{-# NOINLINE bindWebRTCDataChannel_get_write_mode #-}\n\nbindWebRTCDataChannel_get_write_mode :: MethodBind\nbindWebRTCDataChannel_get_write_mode\n  = unsafePerformIO $\n      withCString \"WebRTCDataChannel\" $\n        \\ clsNamePtr ->\n          withCString \"get_write_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_write_mode ::\n                 (WebRTCDataChannel :< cls, Object :< cls) => cls -> IO Int\nget_write_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCDataChannel_get_write_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCDataChannel \"get_write_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.WebRTCDataChannel.get_write_mode\n\n{-# NOINLINE bindWebRTCDataChannel_is_negotiated #-}\n\nbindWebRTCDataChannel_is_negotiated :: MethodBind\nbindWebRTCDataChannel_is_negotiated\n  = unsafePerformIO $\n      withCString \"WebRTCDataChannel\" $\n        \\ clsNamePtr ->\n          withCString \"is_negotiated\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_negotiated ::\n                (WebRTCDataChannel :< cls, Object :< cls) => cls -> IO Bool\nis_negotiated cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCDataChannel_is_negotiated\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCDataChannel \"is_negotiated\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.WebRTCDataChannel.is_negotiated\n\n{-# NOINLINE bindWebRTCDataChannel_is_ordered #-}\n\nbindWebRTCDataChannel_is_ordered :: MethodBind\nbindWebRTCDataChannel_is_ordered\n  = unsafePerformIO $\n      withCString \"WebRTCDataChannel\" $\n        \\ clsNamePtr ->\n          withCString \"is_ordered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_ordered ::\n             (WebRTCDataChannel :< cls, Object :< cls) => cls -> IO Bool\nis_ordered cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCDataChannel_is_ordered\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCDataChannel \"is_ordered\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.WebRTCDataChannel.is_ordered\n\n{-# NOINLINE bindWebRTCDataChannel_poll #-}\n\nbindWebRTCDataChannel_poll :: MethodBind\nbindWebRTCDataChannel_poll\n  = unsafePerformIO $\n      withCString \"WebRTCDataChannel\" $\n        \\ clsNamePtr ->\n          withCString \"poll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\npoll :: (WebRTCDataChannel :< cls, Object :< cls) => cls -> IO Int\npoll cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCDataChannel_poll (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCDataChannel \"poll\" '[] (IO Int) where\n        nodeMethod = Godot.Core.WebRTCDataChannel.poll\n\n{-# NOINLINE bindWebRTCDataChannel_set_write_mode #-}\n\nbindWebRTCDataChannel_set_write_mode :: MethodBind\nbindWebRTCDataChannel_set_write_mode\n  = unsafePerformIO $\n      withCString \"WebRTCDataChannel\" $\n        \\ clsNamePtr ->\n          withCString \"set_write_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_write_mode ::\n                 (WebRTCDataChannel :< cls, Object :< cls) => cls -> Int -> IO ()\nset_write_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCDataChannel_set_write_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCDataChannel \"set_write_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.WebRTCDataChannel.set_write_mode\n\n{-# NOINLINE bindWebRTCDataChannel_was_string_packet #-}\n\nbindWebRTCDataChannel_was_string_packet :: MethodBind\nbindWebRTCDataChannel_was_string_packet\n  = unsafePerformIO $\n      withCString \"WebRTCDataChannel\" $\n        \\ clsNamePtr ->\n          withCString \"was_string_packet\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nwas_string_packet ::\n                    (WebRTCDataChannel :< cls, Object :< cls) => cls -> IO Bool\nwas_string_packet cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCDataChannel_was_string_packet\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCDataChannel \"was_string_packet\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.WebRTCDataChannel.was_string_packet"
  },
  {
    "path": "src/Godot/Core/WebRTCDataChannelGDNative.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.WebRTCDataChannelGDNative () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.WebRTCDataChannel()"
  },
  {
    "path": "src/Godot/Core/WebRTCMultiplayer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.WebRTCMultiplayer\n       (Godot.Core.WebRTCMultiplayer.add_peer,\n        Godot.Core.WebRTCMultiplayer.close,\n        Godot.Core.WebRTCMultiplayer.get_peer,\n        Godot.Core.WebRTCMultiplayer.get_peers,\n        Godot.Core.WebRTCMultiplayer.has_peer,\n        Godot.Core.WebRTCMultiplayer.initialize,\n        Godot.Core.WebRTCMultiplayer.remove_peer)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.NetworkedMultiplayerPeer()\n\n{-# NOINLINE bindWebRTCMultiplayer_add_peer #-}\n\nbindWebRTCMultiplayer_add_peer :: MethodBind\nbindWebRTCMultiplayer_add_peer\n  = unsafePerformIO $\n      withCString \"WebRTCMultiplayer\" $\n        \\ clsNamePtr ->\n          withCString \"add_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_peer ::\n           (WebRTCMultiplayer :< cls, Object :< cls) =>\n           cls -> WebRTCPeerConnection -> Int -> Maybe Int -> IO Int\nadd_peer cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantInt (1)) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCMultiplayer_add_peer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCMultiplayer \"add_peer\"\n           '[WebRTCPeerConnection, Int, Maybe Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.WebRTCMultiplayer.add_peer\n\n{-# NOINLINE bindWebRTCMultiplayer_close #-}\n\nbindWebRTCMultiplayer_close :: MethodBind\nbindWebRTCMultiplayer_close\n  = unsafePerformIO $\n      withCString \"WebRTCMultiplayer\" $\n        \\ clsNamePtr ->\n          withCString \"close\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nclose :: (WebRTCMultiplayer :< cls, Object :< cls) => cls -> IO ()\nclose cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCMultiplayer_close (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCMultiplayer \"close\" '[] (IO ()) where\n        nodeMethod = Godot.Core.WebRTCMultiplayer.close\n\n{-# NOINLINE bindWebRTCMultiplayer_get_peer #-}\n\nbindWebRTCMultiplayer_get_peer :: MethodBind\nbindWebRTCMultiplayer_get_peer\n  = unsafePerformIO $\n      withCString \"WebRTCMultiplayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_peer ::\n           (WebRTCMultiplayer :< cls, Object :< cls) =>\n           cls -> Int -> IO Dictionary\nget_peer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCMultiplayer_get_peer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCMultiplayer \"get_peer\" '[Int]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.WebRTCMultiplayer.get_peer\n\n{-# NOINLINE bindWebRTCMultiplayer_get_peers #-}\n\nbindWebRTCMultiplayer_get_peers :: MethodBind\nbindWebRTCMultiplayer_get_peers\n  = unsafePerformIO $\n      withCString \"WebRTCMultiplayer\" $\n        \\ clsNamePtr ->\n          withCString \"get_peers\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_peers ::\n            (WebRTCMultiplayer :< cls, Object :< cls) => cls -> IO Dictionary\nget_peers cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCMultiplayer_get_peers (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCMultiplayer \"get_peers\" '[]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Core.WebRTCMultiplayer.get_peers\n\n{-# NOINLINE bindWebRTCMultiplayer_has_peer #-}\n\nbindWebRTCMultiplayer_has_peer :: MethodBind\nbindWebRTCMultiplayer_has_peer\n  = unsafePerformIO $\n      withCString \"WebRTCMultiplayer\" $\n        \\ clsNamePtr ->\n          withCString \"has_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nhas_peer ::\n           (WebRTCMultiplayer :< cls, Object :< cls) => cls -> Int -> IO Bool\nhas_peer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCMultiplayer_has_peer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCMultiplayer \"has_peer\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.WebRTCMultiplayer.has_peer\n\n{-# NOINLINE bindWebRTCMultiplayer_initialize #-}\n\nbindWebRTCMultiplayer_initialize :: MethodBind\nbindWebRTCMultiplayer_initialize\n  = unsafePerformIO $\n      withCString \"WebRTCMultiplayer\" $\n        \\ clsNamePtr ->\n          withCString \"initialize\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ninitialize ::\n             (WebRTCMultiplayer :< cls, Object :< cls) =>\n             cls -> Int -> Maybe Bool -> IO Int\ninitialize cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCMultiplayer_initialize\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCMultiplayer \"initialize\"\n           '[Int, Maybe Bool]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.WebRTCMultiplayer.initialize\n\n{-# NOINLINE bindWebRTCMultiplayer_remove_peer #-}\n\nbindWebRTCMultiplayer_remove_peer :: MethodBind\nbindWebRTCMultiplayer_remove_peer\n  = unsafePerformIO $\n      withCString \"WebRTCMultiplayer\" $\n        \\ clsNamePtr ->\n          withCString \"remove_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nremove_peer ::\n              (WebRTCMultiplayer :< cls, Object :< cls) => cls -> Int -> IO ()\nremove_peer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCMultiplayer_remove_peer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCMultiplayer \"remove_peer\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.WebRTCMultiplayer.remove_peer"
  },
  {
    "path": "src/Godot/Core/WebRTCPeerConnection.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.WebRTCPeerConnection\n       (Godot.Core.WebRTCPeerConnection._STATE_CONNECTED,\n        Godot.Core.WebRTCPeerConnection._STATE_CLOSED,\n        Godot.Core.WebRTCPeerConnection._STATE_CONNECTING,\n        Godot.Core.WebRTCPeerConnection._STATE_DISCONNECTED,\n        Godot.Core.WebRTCPeerConnection._STATE_NEW,\n        Godot.Core.WebRTCPeerConnection._STATE_FAILED,\n        Godot.Core.WebRTCPeerConnection.sig_data_channel_received,\n        Godot.Core.WebRTCPeerConnection.sig_ice_candidate_created,\n        Godot.Core.WebRTCPeerConnection.sig_session_description_created,\n        Godot.Core.WebRTCPeerConnection.add_ice_candidate,\n        Godot.Core.WebRTCPeerConnection.close,\n        Godot.Core.WebRTCPeerConnection.create_data_channel,\n        Godot.Core.WebRTCPeerConnection.create_offer,\n        Godot.Core.WebRTCPeerConnection.get_connection_state,\n        Godot.Core.WebRTCPeerConnection.initialize,\n        Godot.Core.WebRTCPeerConnection.poll,\n        Godot.Core.WebRTCPeerConnection.set_local_description,\n        Godot.Core.WebRTCPeerConnection.set_remote_description)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n_STATE_CONNECTED :: Int\n_STATE_CONNECTED = 2\n\n_STATE_CLOSED :: Int\n_STATE_CLOSED = 5\n\n_STATE_CONNECTING :: Int\n_STATE_CONNECTING = 1\n\n_STATE_DISCONNECTED :: Int\n_STATE_DISCONNECTED = 3\n\n_STATE_NEW :: Int\n_STATE_NEW = 0\n\n_STATE_FAILED :: Int\n_STATE_FAILED = 4\n\nsig_data_channel_received ::\n                          Godot.Internal.Dispatch.Signal WebRTCPeerConnection\nsig_data_channel_received\n  = Godot.Internal.Dispatch.Signal \"data_channel_received\"\n\ninstance NodeSignal WebRTCPeerConnection \"data_channel_received\"\n           '[Object]\n\nsig_ice_candidate_created ::\n                          Godot.Internal.Dispatch.Signal WebRTCPeerConnection\nsig_ice_candidate_created\n  = Godot.Internal.Dispatch.Signal \"ice_candidate_created\"\n\ninstance NodeSignal WebRTCPeerConnection \"ice_candidate_created\"\n           '[GodotString, Int, GodotString]\n\nsig_session_description_created ::\n                                Godot.Internal.Dispatch.Signal WebRTCPeerConnection\nsig_session_description_created\n  = Godot.Internal.Dispatch.Signal \"session_description_created\"\n\ninstance NodeSignal WebRTCPeerConnection\n           \"session_description_created\"\n           '[GodotString, GodotString]\n\n{-# NOINLINE bindWebRTCPeerConnection_add_ice_candidate #-}\n\nbindWebRTCPeerConnection_add_ice_candidate :: MethodBind\nbindWebRTCPeerConnection_add_ice_candidate\n  = unsafePerformIO $\n      withCString \"WebRTCPeerConnection\" $\n        \\ clsNamePtr ->\n          withCString \"add_ice_candidate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_ice_candidate ::\n                    (WebRTCPeerConnection :< cls, Object :< cls) =>\n                    cls -> GodotString -> Int -> GodotString -> IO Int\nadd_ice_candidate cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCPeerConnection_add_ice_candidate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCPeerConnection \"add_ice_candidate\"\n           '[GodotString, Int, GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.WebRTCPeerConnection.add_ice_candidate\n\n{-# NOINLINE bindWebRTCPeerConnection_close #-}\n\nbindWebRTCPeerConnection_close :: MethodBind\nbindWebRTCPeerConnection_close\n  = unsafePerformIO $\n      withCString \"WebRTCPeerConnection\" $\n        \\ clsNamePtr ->\n          withCString \"close\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nclose ::\n        (WebRTCPeerConnection :< cls, Object :< cls) => cls -> IO ()\nclose cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCPeerConnection_close (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCPeerConnection \"close\" '[] (IO ()) where\n        nodeMethod = Godot.Core.WebRTCPeerConnection.close\n\n{-# NOINLINE bindWebRTCPeerConnection_create_data_channel #-}\n\nbindWebRTCPeerConnection_create_data_channel :: MethodBind\nbindWebRTCPeerConnection_create_data_channel\n  = unsafePerformIO $\n      withCString \"WebRTCPeerConnection\" $\n        \\ clsNamePtr ->\n          withCString \"create_data_channel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncreate_data_channel ::\n                      (WebRTCPeerConnection :< cls, Object :< cls) =>\n                      cls -> GodotString -> Maybe Dictionary -> IO WebRTCDataChannel\ncreate_data_channel cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantDictionary V.empty arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCPeerConnection_create_data_channel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCPeerConnection \"create_data_channel\"\n           '[GodotString, Maybe Dictionary]\n           (IO WebRTCDataChannel)\n         where\n        nodeMethod = Godot.Core.WebRTCPeerConnection.create_data_channel\n\n{-# NOINLINE bindWebRTCPeerConnection_create_offer #-}\n\nbindWebRTCPeerConnection_create_offer :: MethodBind\nbindWebRTCPeerConnection_create_offer\n  = unsafePerformIO $\n      withCString \"WebRTCPeerConnection\" $\n        \\ clsNamePtr ->\n          withCString \"create_offer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncreate_offer ::\n               (WebRTCPeerConnection :< cls, Object :< cls) => cls -> IO Int\ncreate_offer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCPeerConnection_create_offer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCPeerConnection \"create_offer\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.WebRTCPeerConnection.create_offer\n\n{-# NOINLINE bindWebRTCPeerConnection_get_connection_state #-}\n\nbindWebRTCPeerConnection_get_connection_state :: MethodBind\nbindWebRTCPeerConnection_get_connection_state\n  = unsafePerformIO $\n      withCString \"WebRTCPeerConnection\" $\n        \\ clsNamePtr ->\n          withCString \"get_connection_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_connection_state ::\n                       (WebRTCPeerConnection :< cls, Object :< cls) => cls -> IO Int\nget_connection_state cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindWebRTCPeerConnection_get_connection_state\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCPeerConnection \"get_connection_state\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.WebRTCPeerConnection.get_connection_state\n\n{-# NOINLINE bindWebRTCPeerConnection_initialize #-}\n\nbindWebRTCPeerConnection_initialize :: MethodBind\nbindWebRTCPeerConnection_initialize\n  = unsafePerformIO $\n      withCString \"WebRTCPeerConnection\" $\n        \\ clsNamePtr ->\n          withCString \"initialize\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ninitialize ::\n             (WebRTCPeerConnection :< cls, Object :< cls) =>\n             cls -> Maybe Dictionary -> IO Int\ninitialize cls arg1\n  = withVariantArray\n      [defaultedVariant VariantDictionary V.empty arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCPeerConnection_initialize\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCPeerConnection \"initialize\"\n           '[Maybe Dictionary]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.WebRTCPeerConnection.initialize\n\n{-# NOINLINE bindWebRTCPeerConnection_poll #-}\n\nbindWebRTCPeerConnection_poll :: MethodBind\nbindWebRTCPeerConnection_poll\n  = unsafePerformIO $\n      withCString \"WebRTCPeerConnection\" $\n        \\ clsNamePtr ->\n          withCString \"poll\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\npoll ::\n       (WebRTCPeerConnection :< cls, Object :< cls) => cls -> IO Int\npoll cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebRTCPeerConnection_poll (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCPeerConnection \"poll\" '[] (IO Int) where\n        nodeMethod = Godot.Core.WebRTCPeerConnection.poll\n\n{-# NOINLINE bindWebRTCPeerConnection_set_local_description #-}\n\nbindWebRTCPeerConnection_set_local_description :: MethodBind\nbindWebRTCPeerConnection_set_local_description\n  = unsafePerformIO $\n      withCString \"WebRTCPeerConnection\" $\n        \\ clsNamePtr ->\n          withCString \"set_local_description\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_local_description ::\n                        (WebRTCPeerConnection :< cls, Object :< cls) =>\n                        cls -> GodotString -> GodotString -> IO Int\nset_local_description cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindWebRTCPeerConnection_set_local_description\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCPeerConnection \"set_local_description\"\n           '[GodotString, GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.WebRTCPeerConnection.set_local_description\n\n{-# NOINLINE bindWebRTCPeerConnection_set_remote_description #-}\n\nbindWebRTCPeerConnection_set_remote_description :: MethodBind\nbindWebRTCPeerConnection_set_remote_description\n  = unsafePerformIO $\n      withCString \"WebRTCPeerConnection\" $\n        \\ clsNamePtr ->\n          withCString \"set_remote_description\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_remote_description ::\n                         (WebRTCPeerConnection :< cls, Object :< cls) =>\n                         cls -> GodotString -> GodotString -> IO Int\nset_remote_description cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindWebRTCPeerConnection_set_remote_description\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebRTCPeerConnection \"set_remote_description\"\n           '[GodotString, GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.WebRTCPeerConnection.set_remote_description"
  },
  {
    "path": "src/Godot/Core/WebRTCPeerConnectionGDNative.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.WebRTCPeerConnectionGDNative () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.WebRTCPeerConnection()"
  },
  {
    "path": "src/Godot/Core/WebSocketClient.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.WebSocketClient\n       (Godot.Core.WebSocketClient.sig_connection_closed,\n        Godot.Core.WebSocketClient.sig_connection_error,\n        Godot.Core.WebSocketClient.sig_connection_established,\n        Godot.Core.WebSocketClient.sig_data_received,\n        Godot.Core.WebSocketClient.sig_server_close_request,\n        Godot.Core.WebSocketClient.connect_to_url,\n        Godot.Core.WebSocketClient.disconnect_from_host,\n        Godot.Core.WebSocketClient.get_connected_host,\n        Godot.Core.WebSocketClient.get_connected_port,\n        Godot.Core.WebSocketClient.get_trusted_ssl_certificate,\n        Godot.Core.WebSocketClient.is_verify_ssl_enabled,\n        Godot.Core.WebSocketClient.set_trusted_ssl_certificate,\n        Godot.Core.WebSocketClient.set_verify_ssl_enabled)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.WebSocketMultiplayerPeer()\n\nsig_connection_closed ::\n                      Godot.Internal.Dispatch.Signal WebSocketClient\nsig_connection_closed\n  = Godot.Internal.Dispatch.Signal \"connection_closed\"\n\ninstance NodeSignal WebSocketClient \"connection_closed\" '[Bool]\n\nsig_connection_error ::\n                     Godot.Internal.Dispatch.Signal WebSocketClient\nsig_connection_error\n  = Godot.Internal.Dispatch.Signal \"connection_error\"\n\ninstance NodeSignal WebSocketClient \"connection_error\" '[]\n\nsig_connection_established ::\n                           Godot.Internal.Dispatch.Signal WebSocketClient\nsig_connection_established\n  = Godot.Internal.Dispatch.Signal \"connection_established\"\n\ninstance NodeSignal WebSocketClient \"connection_established\"\n           '[GodotString]\n\nsig_data_received :: Godot.Internal.Dispatch.Signal WebSocketClient\nsig_data_received = Godot.Internal.Dispatch.Signal \"data_received\"\n\ninstance NodeSignal WebSocketClient \"data_received\" '[]\n\nsig_server_close_request ::\n                         Godot.Internal.Dispatch.Signal WebSocketClient\nsig_server_close_request\n  = Godot.Internal.Dispatch.Signal \"server_close_request\"\n\ninstance NodeSignal WebSocketClient \"server_close_request\"\n           '[Int, GodotString]\n\ninstance NodeProperty WebSocketClient \"trusted_ssl_certificate\"\n           X509Certificate\n           'False\n         where\n        nodeProperty\n          = (get_trusted_ssl_certificate,\n             wrapDroppingSetter set_trusted_ssl_certificate, Nothing)\n\ninstance NodeProperty WebSocketClient \"verify_ssl\" Bool 'False\n         where\n        nodeProperty\n          = (is_verify_ssl_enabled,\n             wrapDroppingSetter set_verify_ssl_enabled, Nothing)\n\n{-# NOINLINE bindWebSocketClient_connect_to_url #-}\n\nbindWebSocketClient_connect_to_url :: MethodBind\nbindWebSocketClient_connect_to_url\n  = unsafePerformIO $\n      withCString \"WebSocketClient\" $\n        \\ clsNamePtr ->\n          withCString \"connect_to_url\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nconnect_to_url ::\n                 (WebSocketClient :< cls, Object :< cls) =>\n                 cls ->\n                   GodotString ->\n                     Maybe PoolStringArray ->\n                       Maybe Bool -> Maybe PoolStringArray -> IO Int\nconnect_to_url cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1,\n       defaultedVariant VariantPoolStringArray V.empty arg2,\n       maybe (VariantBool False) toVariant arg3,\n       defaultedVariant VariantPoolStringArray V.empty arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketClient_connect_to_url\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketClient \"connect_to_url\"\n           '[GodotString, Maybe PoolStringArray, Maybe Bool,\n             Maybe PoolStringArray]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.WebSocketClient.connect_to_url\n\n{-# NOINLINE bindWebSocketClient_disconnect_from_host #-}\n\nbindWebSocketClient_disconnect_from_host :: MethodBind\nbindWebSocketClient_disconnect_from_host\n  = unsafePerformIO $\n      withCString \"WebSocketClient\" $\n        \\ clsNamePtr ->\n          withCString \"disconnect_from_host\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ndisconnect_from_host ::\n                       (WebSocketClient :< cls, Object :< cls) =>\n                       cls -> Maybe Int -> Maybe GodotString -> IO ()\ndisconnect_from_host cls arg1 arg2\n  = withVariantArray\n      [maybe (VariantInt (1000)) toVariant arg1,\n       defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketClient_disconnect_from_host\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketClient \"disconnect_from_host\"\n           '[Maybe Int, Maybe GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.WebSocketClient.disconnect_from_host\n\n{-# NOINLINE bindWebSocketClient_get_connected_host #-}\n\nbindWebSocketClient_get_connected_host :: MethodBind\nbindWebSocketClient_get_connected_host\n  = unsafePerformIO $\n      withCString \"WebSocketClient\" $\n        \\ clsNamePtr ->\n          withCString \"get_connected_host\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_connected_host ::\n                     (WebSocketClient :< cls, Object :< cls) => cls -> IO GodotString\nget_connected_host cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketClient_get_connected_host\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketClient \"get_connected_host\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.WebSocketClient.get_connected_host\n\n{-# NOINLINE bindWebSocketClient_get_connected_port #-}\n\nbindWebSocketClient_get_connected_port :: MethodBind\nbindWebSocketClient_get_connected_port\n  = unsafePerformIO $\n      withCString \"WebSocketClient\" $\n        \\ clsNamePtr ->\n          withCString \"get_connected_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_connected_port ::\n                     (WebSocketClient :< cls, Object :< cls) => cls -> IO Int\nget_connected_port cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketClient_get_connected_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketClient \"get_connected_port\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.WebSocketClient.get_connected_port\n\n{-# NOINLINE bindWebSocketClient_get_trusted_ssl_certificate #-}\n\nbindWebSocketClient_get_trusted_ssl_certificate :: MethodBind\nbindWebSocketClient_get_trusted_ssl_certificate\n  = unsafePerformIO $\n      withCString \"WebSocketClient\" $\n        \\ clsNamePtr ->\n          withCString \"get_trusted_ssl_certificate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_trusted_ssl_certificate ::\n                              (WebSocketClient :< cls, Object :< cls) =>\n                              cls -> IO X509Certificate\nget_trusted_ssl_certificate cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindWebSocketClient_get_trusted_ssl_certificate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketClient \"get_trusted_ssl_certificate\"\n           '[]\n           (IO X509Certificate)\n         where\n        nodeMethod = Godot.Core.WebSocketClient.get_trusted_ssl_certificate\n\n{-# NOINLINE bindWebSocketClient_is_verify_ssl_enabled #-}\n\nbindWebSocketClient_is_verify_ssl_enabled :: MethodBind\nbindWebSocketClient_is_verify_ssl_enabled\n  = unsafePerformIO $\n      withCString \"WebSocketClient\" $\n        \\ clsNamePtr ->\n          withCString \"is_verify_ssl_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_verify_ssl_enabled ::\n                        (WebSocketClient :< cls, Object :< cls) => cls -> IO Bool\nis_verify_ssl_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketClient_is_verify_ssl_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketClient \"is_verify_ssl_enabled\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.WebSocketClient.is_verify_ssl_enabled\n\n{-# NOINLINE bindWebSocketClient_set_trusted_ssl_certificate #-}\n\nbindWebSocketClient_set_trusted_ssl_certificate :: MethodBind\nbindWebSocketClient_set_trusted_ssl_certificate\n  = unsafePerformIO $\n      withCString \"WebSocketClient\" $\n        \\ clsNamePtr ->\n          withCString \"set_trusted_ssl_certificate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_trusted_ssl_certificate ::\n                              (WebSocketClient :< cls, Object :< cls) =>\n                              cls -> X509Certificate -> IO ()\nset_trusted_ssl_certificate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindWebSocketClient_set_trusted_ssl_certificate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketClient \"set_trusted_ssl_certificate\"\n           '[X509Certificate]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.WebSocketClient.set_trusted_ssl_certificate\n\n{-# NOINLINE bindWebSocketClient_set_verify_ssl_enabled #-}\n\nbindWebSocketClient_set_verify_ssl_enabled :: MethodBind\nbindWebSocketClient_set_verify_ssl_enabled\n  = unsafePerformIO $\n      withCString \"WebSocketClient\" $\n        \\ clsNamePtr ->\n          withCString \"set_verify_ssl_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_verify_ssl_enabled ::\n                         (WebSocketClient :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_verify_ssl_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketClient_set_verify_ssl_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketClient \"set_verify_ssl_enabled\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.WebSocketClient.set_verify_ssl_enabled"
  },
  {
    "path": "src/Godot/Core/WebSocketMultiplayerPeer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.WebSocketMultiplayerPeer\n       (Godot.Core.WebSocketMultiplayerPeer.sig_peer_packet,\n        Godot.Core.WebSocketMultiplayerPeer.get_peer,\n        Godot.Core.WebSocketMultiplayerPeer.set_buffers)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.NetworkedMultiplayerPeer()\n\nsig_peer_packet ::\n                Godot.Internal.Dispatch.Signal WebSocketMultiplayerPeer\nsig_peer_packet = Godot.Internal.Dispatch.Signal \"peer_packet\"\n\ninstance NodeSignal WebSocketMultiplayerPeer \"peer_packet\" '[Int]\n\n{-# NOINLINE bindWebSocketMultiplayerPeer_get_peer #-}\n\nbindWebSocketMultiplayerPeer_get_peer :: MethodBind\nbindWebSocketMultiplayerPeer_get_peer\n  = unsafePerformIO $\n      withCString \"WebSocketMultiplayerPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_peer ::\n           (WebSocketMultiplayerPeer :< cls, Object :< cls) =>\n           cls -> Int -> IO WebSocketPeer\nget_peer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketMultiplayerPeer_get_peer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketMultiplayerPeer \"get_peer\" '[Int]\n           (IO WebSocketPeer)\n         where\n        nodeMethod = Godot.Core.WebSocketMultiplayerPeer.get_peer\n\n{-# NOINLINE bindWebSocketMultiplayerPeer_set_buffers #-}\n\nbindWebSocketMultiplayerPeer_set_buffers :: MethodBind\nbindWebSocketMultiplayerPeer_set_buffers\n  = unsafePerformIO $\n      withCString \"WebSocketMultiplayerPeer\" $\n        \\ clsNamePtr ->\n          withCString \"set_buffers\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_buffers ::\n              (WebSocketMultiplayerPeer :< cls, Object :< cls) =>\n              cls -> Int -> Int -> Int -> Int -> IO Int\nset_buffers cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketMultiplayerPeer_set_buffers\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketMultiplayerPeer \"set_buffers\"\n           '[Int, Int, Int, Int]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.WebSocketMultiplayerPeer.set_buffers"
  },
  {
    "path": "src/Godot/Core/WebSocketPeer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.WebSocketPeer\n       (Godot.Core.WebSocketPeer._WRITE_MODE_TEXT,\n        Godot.Core.WebSocketPeer._WRITE_MODE_BINARY,\n        Godot.Core.WebSocketPeer.close,\n        Godot.Core.WebSocketPeer.get_connected_host,\n        Godot.Core.WebSocketPeer.get_connected_port,\n        Godot.Core.WebSocketPeer.get_write_mode,\n        Godot.Core.WebSocketPeer.is_connected_to_host,\n        Godot.Core.WebSocketPeer.set_no_delay,\n        Godot.Core.WebSocketPeer.set_write_mode,\n        Godot.Core.WebSocketPeer.was_string_packet)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PacketPeer()\n\n_WRITE_MODE_TEXT :: Int\n_WRITE_MODE_TEXT = 0\n\n_WRITE_MODE_BINARY :: Int\n_WRITE_MODE_BINARY = 1\n\n{-# NOINLINE bindWebSocketPeer_close #-}\n\nbindWebSocketPeer_close :: MethodBind\nbindWebSocketPeer_close\n  = unsafePerformIO $\n      withCString \"WebSocketPeer\" $\n        \\ clsNamePtr ->\n          withCString \"close\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nclose ::\n        (WebSocketPeer :< cls, Object :< cls) =>\n        cls -> Maybe Int -> Maybe GodotString -> IO ()\nclose cls arg1 arg2\n  = withVariantArray\n      [maybe (VariantInt (1000)) toVariant arg1,\n       defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketPeer_close (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketPeer \"close\"\n           '[Maybe Int, Maybe GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.WebSocketPeer.close\n\n{-# NOINLINE bindWebSocketPeer_get_connected_host #-}\n\nbindWebSocketPeer_get_connected_host :: MethodBind\nbindWebSocketPeer_get_connected_host\n  = unsafePerformIO $\n      withCString \"WebSocketPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_connected_host\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_connected_host ::\n                     (WebSocketPeer :< cls, Object :< cls) => cls -> IO GodotString\nget_connected_host cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketPeer_get_connected_host\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketPeer \"get_connected_host\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.WebSocketPeer.get_connected_host\n\n{-# NOINLINE bindWebSocketPeer_get_connected_port #-}\n\nbindWebSocketPeer_get_connected_port :: MethodBind\nbindWebSocketPeer_get_connected_port\n  = unsafePerformIO $\n      withCString \"WebSocketPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_connected_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_connected_port ::\n                     (WebSocketPeer :< cls, Object :< cls) => cls -> IO Int\nget_connected_port cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketPeer_get_connected_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketPeer \"get_connected_port\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.WebSocketPeer.get_connected_port\n\n{-# NOINLINE bindWebSocketPeer_get_write_mode #-}\n\nbindWebSocketPeer_get_write_mode :: MethodBind\nbindWebSocketPeer_get_write_mode\n  = unsafePerformIO $\n      withCString \"WebSocketPeer\" $\n        \\ clsNamePtr ->\n          withCString \"get_write_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_write_mode ::\n                 (WebSocketPeer :< cls, Object :< cls) => cls -> IO Int\nget_write_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketPeer_get_write_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketPeer \"get_write_mode\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.WebSocketPeer.get_write_mode\n\n{-# NOINLINE bindWebSocketPeer_is_connected_to_host #-}\n\nbindWebSocketPeer_is_connected_to_host :: MethodBind\nbindWebSocketPeer_is_connected_to_host\n  = unsafePerformIO $\n      withCString \"WebSocketPeer\" $\n        \\ clsNamePtr ->\n          withCString \"is_connected_to_host\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_connected_to_host ::\n                       (WebSocketPeer :< cls, Object :< cls) => cls -> IO Bool\nis_connected_to_host cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketPeer_is_connected_to_host\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketPeer \"is_connected_to_host\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.WebSocketPeer.is_connected_to_host\n\n{-# NOINLINE bindWebSocketPeer_set_no_delay #-}\n\nbindWebSocketPeer_set_no_delay :: MethodBind\nbindWebSocketPeer_set_no_delay\n  = unsafePerformIO $\n      withCString \"WebSocketPeer\" $\n        \\ clsNamePtr ->\n          withCString \"set_no_delay\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_no_delay ::\n               (WebSocketPeer :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_no_delay cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketPeer_set_no_delay (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketPeer \"set_no_delay\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.WebSocketPeer.set_no_delay\n\n{-# NOINLINE bindWebSocketPeer_set_write_mode #-}\n\nbindWebSocketPeer_set_write_mode :: MethodBind\nbindWebSocketPeer_set_write_mode\n  = unsafePerformIO $\n      withCString \"WebSocketPeer\" $\n        \\ clsNamePtr ->\n          withCString \"set_write_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_write_mode ::\n                 (WebSocketPeer :< cls, Object :< cls) => cls -> Int -> IO ()\nset_write_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketPeer_set_write_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketPeer \"set_write_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Core.WebSocketPeer.set_write_mode\n\n{-# NOINLINE bindWebSocketPeer_was_string_packet #-}\n\nbindWebSocketPeer_was_string_packet :: MethodBind\nbindWebSocketPeer_was_string_packet\n  = unsafePerformIO $\n      withCString \"WebSocketPeer\" $\n        \\ clsNamePtr ->\n          withCString \"was_string_packet\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nwas_string_packet ::\n                    (WebSocketPeer :< cls, Object :< cls) => cls -> IO Bool\nwas_string_packet cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketPeer_was_string_packet\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketPeer \"was_string_packet\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.WebSocketPeer.was_string_packet"
  },
  {
    "path": "src/Godot/Core/WebSocketServer.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.WebSocketServer\n       (Godot.Core.WebSocketServer.sig_client_close_request,\n        Godot.Core.WebSocketServer.sig_client_connected,\n        Godot.Core.WebSocketServer.sig_client_disconnected,\n        Godot.Core.WebSocketServer.sig_data_received,\n        Godot.Core.WebSocketServer.disconnect_peer,\n        Godot.Core.WebSocketServer.get_bind_ip,\n        Godot.Core.WebSocketServer.get_ca_chain,\n        Godot.Core.WebSocketServer.get_peer_address,\n        Godot.Core.WebSocketServer.get_peer_port,\n        Godot.Core.WebSocketServer.get_private_key,\n        Godot.Core.WebSocketServer.get_ssl_certificate,\n        Godot.Core.WebSocketServer.has_peer,\n        Godot.Core.WebSocketServer.is_listening,\n        Godot.Core.WebSocketServer.listen,\n        Godot.Core.WebSocketServer.set_bind_ip,\n        Godot.Core.WebSocketServer.set_ca_chain,\n        Godot.Core.WebSocketServer.set_private_key,\n        Godot.Core.WebSocketServer.set_ssl_certificate,\n        Godot.Core.WebSocketServer.stop)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.WebSocketMultiplayerPeer()\n\nsig_client_close_request ::\n                         Godot.Internal.Dispatch.Signal WebSocketServer\nsig_client_close_request\n  = Godot.Internal.Dispatch.Signal \"client_close_request\"\n\ninstance NodeSignal WebSocketServer \"client_close_request\"\n           '[Int, Int, GodotString]\n\nsig_client_connected ::\n                     Godot.Internal.Dispatch.Signal WebSocketServer\nsig_client_connected\n  = Godot.Internal.Dispatch.Signal \"client_connected\"\n\ninstance NodeSignal WebSocketServer \"client_connected\"\n           '[Int, GodotString]\n\nsig_client_disconnected ::\n                        Godot.Internal.Dispatch.Signal WebSocketServer\nsig_client_disconnected\n  = Godot.Internal.Dispatch.Signal \"client_disconnected\"\n\ninstance NodeSignal WebSocketServer \"client_disconnected\"\n           '[Int, Bool]\n\nsig_data_received :: Godot.Internal.Dispatch.Signal WebSocketServer\nsig_data_received = Godot.Internal.Dispatch.Signal \"data_received\"\n\ninstance NodeSignal WebSocketServer \"data_received\" '[Int]\n\ninstance NodeProperty WebSocketServer \"bind_ip\" GodotString 'False\n         where\n        nodeProperty\n          = (get_bind_ip, wrapDroppingSetter set_bind_ip, Nothing)\n\ninstance NodeProperty WebSocketServer \"ca_chain\" X509Certificate\n           'False\n         where\n        nodeProperty\n          = (get_ca_chain, wrapDroppingSetter set_ca_chain, Nothing)\n\ninstance NodeProperty WebSocketServer \"private_key\" CryptoKey\n           'False\n         where\n        nodeProperty\n          = (get_private_key, wrapDroppingSetter set_private_key, Nothing)\n\ninstance NodeProperty WebSocketServer \"ssl_certificate\"\n           X509Certificate\n           'False\n         where\n        nodeProperty\n          = (get_ssl_certificate, wrapDroppingSetter set_ssl_certificate,\n             Nothing)\n\n{-# NOINLINE bindWebSocketServer_disconnect_peer #-}\n\nbindWebSocketServer_disconnect_peer :: MethodBind\nbindWebSocketServer_disconnect_peer\n  = unsafePerformIO $\n      withCString \"WebSocketServer\" $\n        \\ clsNamePtr ->\n          withCString \"disconnect_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ndisconnect_peer ::\n                  (WebSocketServer :< cls, Object :< cls) =>\n                  cls -> Int -> Maybe Int -> Maybe GodotString -> IO ()\ndisconnect_peer cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe (VariantInt (1000)) toVariant arg2,\n       defaultedVariant VariantString \"\" arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketServer_disconnect_peer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketServer \"disconnect_peer\"\n           '[Int, Maybe Int, Maybe GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.WebSocketServer.disconnect_peer\n\n{-# NOINLINE bindWebSocketServer_get_bind_ip #-}\n\nbindWebSocketServer_get_bind_ip :: MethodBind\nbindWebSocketServer_get_bind_ip\n  = unsafePerformIO $\n      withCString \"WebSocketServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_bind_ip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_bind_ip ::\n              (WebSocketServer :< cls, Object :< cls) => cls -> IO GodotString\nget_bind_ip cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketServer_get_bind_ip (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketServer \"get_bind_ip\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.WebSocketServer.get_bind_ip\n\n{-# NOINLINE bindWebSocketServer_get_ca_chain #-}\n\nbindWebSocketServer_get_ca_chain :: MethodBind\nbindWebSocketServer_get_ca_chain\n  = unsafePerformIO $\n      withCString \"WebSocketServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_ca_chain\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_ca_chain ::\n               (WebSocketServer :< cls, Object :< cls) =>\n               cls -> IO X509Certificate\nget_ca_chain cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketServer_get_ca_chain\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketServer \"get_ca_chain\" '[]\n           (IO X509Certificate)\n         where\n        nodeMethod = Godot.Core.WebSocketServer.get_ca_chain\n\n{-# NOINLINE bindWebSocketServer_get_peer_address #-}\n\nbindWebSocketServer_get_peer_address :: MethodBind\nbindWebSocketServer_get_peer_address\n  = unsafePerformIO $\n      withCString \"WebSocketServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_peer_address\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_peer_address ::\n                   (WebSocketServer :< cls, Object :< cls) =>\n                   cls -> Int -> IO GodotString\nget_peer_address cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketServer_get_peer_address\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketServer \"get_peer_address\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.WebSocketServer.get_peer_address\n\n{-# NOINLINE bindWebSocketServer_get_peer_port #-}\n\nbindWebSocketServer_get_peer_port :: MethodBind\nbindWebSocketServer_get_peer_port\n  = unsafePerformIO $\n      withCString \"WebSocketServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_peer_port\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_peer_port ::\n                (WebSocketServer :< cls, Object :< cls) => cls -> Int -> IO Int\nget_peer_port cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketServer_get_peer_port\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketServer \"get_peer_port\" '[Int] (IO Int)\n         where\n        nodeMethod = Godot.Core.WebSocketServer.get_peer_port\n\n{-# NOINLINE bindWebSocketServer_get_private_key #-}\n\nbindWebSocketServer_get_private_key :: MethodBind\nbindWebSocketServer_get_private_key\n  = unsafePerformIO $\n      withCString \"WebSocketServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_private_key\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_private_key ::\n                  (WebSocketServer :< cls, Object :< cls) => cls -> IO CryptoKey\nget_private_key cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketServer_get_private_key\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketServer \"get_private_key\" '[]\n           (IO CryptoKey)\n         where\n        nodeMethod = Godot.Core.WebSocketServer.get_private_key\n\n{-# NOINLINE bindWebSocketServer_get_ssl_certificate #-}\n\nbindWebSocketServer_get_ssl_certificate :: MethodBind\nbindWebSocketServer_get_ssl_certificate\n  = unsafePerformIO $\n      withCString \"WebSocketServer\" $\n        \\ clsNamePtr ->\n          withCString \"get_ssl_certificate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_ssl_certificate ::\n                      (WebSocketServer :< cls, Object :< cls) =>\n                      cls -> IO X509Certificate\nget_ssl_certificate cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketServer_get_ssl_certificate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketServer \"get_ssl_certificate\" '[]\n           (IO X509Certificate)\n         where\n        nodeMethod = Godot.Core.WebSocketServer.get_ssl_certificate\n\n{-# NOINLINE bindWebSocketServer_has_peer #-}\n\nbindWebSocketServer_has_peer :: MethodBind\nbindWebSocketServer_has_peer\n  = unsafePerformIO $\n      withCString \"WebSocketServer\" $\n        \\ clsNamePtr ->\n          withCString \"has_peer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nhas_peer ::\n           (WebSocketServer :< cls, Object :< cls) => cls -> Int -> IO Bool\nhas_peer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketServer_has_peer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketServer \"has_peer\" '[Int] (IO Bool)\n         where\n        nodeMethod = Godot.Core.WebSocketServer.has_peer\n\n{-# NOINLINE bindWebSocketServer_is_listening #-}\n\nbindWebSocketServer_is_listening :: MethodBind\nbindWebSocketServer_is_listening\n  = unsafePerformIO $\n      withCString \"WebSocketServer\" $\n        \\ clsNamePtr ->\n          withCString \"is_listening\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_listening ::\n               (WebSocketServer :< cls, Object :< cls) => cls -> IO Bool\nis_listening cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketServer_is_listening\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketServer \"is_listening\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.WebSocketServer.is_listening\n\n{-# NOINLINE bindWebSocketServer_listen #-}\n\nbindWebSocketServer_listen :: MethodBind\nbindWebSocketServer_listen\n  = unsafePerformIO $\n      withCString \"WebSocketServer\" $\n        \\ clsNamePtr ->\n          withCString \"listen\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nlisten ::\n         (WebSocketServer :< cls, Object :< cls) =>\n         cls -> Int -> Maybe PoolStringArray -> Maybe Bool -> IO Int\nlisten cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1,\n       defaultedVariant VariantPoolStringArray V.empty arg2,\n       maybe (VariantBool False) toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketServer_listen (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketServer \"listen\"\n           '[Int, Maybe PoolStringArray, Maybe Bool]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.WebSocketServer.listen\n\n{-# NOINLINE bindWebSocketServer_set_bind_ip #-}\n\nbindWebSocketServer_set_bind_ip :: MethodBind\nbindWebSocketServer_set_bind_ip\n  = unsafePerformIO $\n      withCString \"WebSocketServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_bind_ip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_bind_ip ::\n              (WebSocketServer :< cls, Object :< cls) =>\n              cls -> GodotString -> IO ()\nset_bind_ip cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketServer_set_bind_ip (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketServer \"set_bind_ip\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.WebSocketServer.set_bind_ip\n\n{-# NOINLINE bindWebSocketServer_set_ca_chain #-}\n\nbindWebSocketServer_set_ca_chain :: MethodBind\nbindWebSocketServer_set_ca_chain\n  = unsafePerformIO $\n      withCString \"WebSocketServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_ca_chain\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_ca_chain ::\n               (WebSocketServer :< cls, Object :< cls) =>\n               cls -> X509Certificate -> IO ()\nset_ca_chain cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketServer_set_ca_chain\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketServer \"set_ca_chain\"\n           '[X509Certificate]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.WebSocketServer.set_ca_chain\n\n{-# NOINLINE bindWebSocketServer_set_private_key #-}\n\nbindWebSocketServer_set_private_key :: MethodBind\nbindWebSocketServer_set_private_key\n  = unsafePerformIO $\n      withCString \"WebSocketServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_private_key\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_private_key ::\n                  (WebSocketServer :< cls, Object :< cls) =>\n                  cls -> CryptoKey -> IO ()\nset_private_key cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketServer_set_private_key\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketServer \"set_private_key\" '[CryptoKey]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.WebSocketServer.set_private_key\n\n{-# NOINLINE bindWebSocketServer_set_ssl_certificate #-}\n\nbindWebSocketServer_set_ssl_certificate :: MethodBind\nbindWebSocketServer_set_ssl_certificate\n  = unsafePerformIO $\n      withCString \"WebSocketServer\" $\n        \\ clsNamePtr ->\n          withCString \"set_ssl_certificate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_ssl_certificate ::\n                      (WebSocketServer :< cls, Object :< cls) =>\n                      cls -> X509Certificate -> IO ()\nset_ssl_certificate cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketServer_set_ssl_certificate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketServer \"set_ssl_certificate\"\n           '[X509Certificate]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.WebSocketServer.set_ssl_certificate\n\n{-# NOINLINE bindWebSocketServer_stop #-}\n\nbindWebSocketServer_stop :: MethodBind\nbindWebSocketServer_stop\n  = unsafePerformIO $\n      withCString \"WebSocketServer\" $\n        \\ clsNamePtr ->\n          withCString \"stop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nstop :: (WebSocketServer :< cls, Object :< cls) => cls -> IO ()\nstop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWebSocketServer_stop (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WebSocketServer \"stop\" '[] (IO ()) where\n        nodeMethod = Godot.Core.WebSocketServer.stop"
  },
  {
    "path": "src/Godot/Core/WindowDialog.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.WindowDialog\n       (Godot.Core.WindowDialog._closed,\n        Godot.Core.WindowDialog._gui_input,\n        Godot.Core.WindowDialog.get_close_button,\n        Godot.Core.WindowDialog.get_resizable,\n        Godot.Core.WindowDialog.get_title,\n        Godot.Core.WindowDialog.set_resizable,\n        Godot.Core.WindowDialog.set_title)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Popup()\n\ninstance NodeProperty WindowDialog \"resizable\" Bool 'False where\n        nodeProperty\n          = (get_resizable, wrapDroppingSetter set_resizable, Nothing)\n\ninstance NodeProperty WindowDialog \"window_title\" GodotString\n           'False\n         where\n        nodeProperty = (get_title, wrapDroppingSetter set_title, Nothing)\n\n{-# NOINLINE bindWindowDialog__closed #-}\n\nbindWindowDialog__closed :: MethodBind\nbindWindowDialog__closed\n  = unsafePerformIO $\n      withCString \"WindowDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_closed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_closed :: (WindowDialog :< cls, Object :< cls) => cls -> IO ()\n_closed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWindowDialog__closed (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WindowDialog \"_closed\" '[] (IO ()) where\n        nodeMethod = Godot.Core.WindowDialog._closed\n\n{-# NOINLINE bindWindowDialog__gui_input #-}\n\nbindWindowDialog__gui_input :: MethodBind\nbindWindowDialog__gui_input\n  = unsafePerformIO $\n      withCString \"WindowDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (WindowDialog :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWindowDialog__gui_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WindowDialog \"_gui_input\" '[InputEvent] (IO ())\n         where\n        nodeMethod = Godot.Core.WindowDialog._gui_input\n\n{-# NOINLINE bindWindowDialog_get_close_button #-}\n\n-- | Returns the close @TextureButton@.\nbindWindowDialog_get_close_button :: MethodBind\nbindWindowDialog_get_close_button\n  = unsafePerformIO $\n      withCString \"WindowDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_close_button\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the close @TextureButton@.\nget_close_button ::\n                   (WindowDialog :< cls, Object :< cls) => cls -> IO TextureButton\nget_close_button cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWindowDialog_get_close_button\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WindowDialog \"get_close_button\" '[]\n           (IO TextureButton)\n         where\n        nodeMethod = Godot.Core.WindowDialog.get_close_button\n\n{-# NOINLINE bindWindowDialog_get_resizable #-}\n\n-- | If @true@, the user can resize the window.\nbindWindowDialog_get_resizable :: MethodBind\nbindWindowDialog_get_resizable\n  = unsafePerformIO $\n      withCString \"WindowDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_resizable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the user can resize the window.\nget_resizable ::\n                (WindowDialog :< cls, Object :< cls) => cls -> IO Bool\nget_resizable cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWindowDialog_get_resizable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WindowDialog \"get_resizable\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Core.WindowDialog.get_resizable\n\n{-# NOINLINE bindWindowDialog_get_title #-}\n\n-- | The text displayed in the window's title bar.\nbindWindowDialog_get_title :: MethodBind\nbindWindowDialog_get_title\n  = unsafePerformIO $\n      withCString \"WindowDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_title\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The text displayed in the window's title bar.\nget_title ::\n            (WindowDialog :< cls, Object :< cls) => cls -> IO GodotString\nget_title cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWindowDialog_get_title (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WindowDialog \"get_title\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.WindowDialog.get_title\n\n{-# NOINLINE bindWindowDialog_set_resizable #-}\n\n-- | If @true@, the user can resize the window.\nbindWindowDialog_set_resizable :: MethodBind\nbindWindowDialog_set_resizable\n  = unsafePerformIO $\n      withCString \"WindowDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_resizable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the user can resize the window.\nset_resizable ::\n                (WindowDialog :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_resizable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWindowDialog_set_resizable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WindowDialog \"set_resizable\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Core.WindowDialog.set_resizable\n\n{-# NOINLINE bindWindowDialog_set_title #-}\n\n-- | The text displayed in the window's title bar.\nbindWindowDialog_set_title :: MethodBind\nbindWindowDialog_set_title\n  = unsafePerformIO $\n      withCString \"WindowDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_title\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The text displayed in the window's title bar.\nset_title ::\n            (WindowDialog :< cls, Object :< cls) => cls -> GodotString -> IO ()\nset_title cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWindowDialog_set_title (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WindowDialog \"set_title\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Core.WindowDialog.set_title"
  },
  {
    "path": "src/Godot/Core/World.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.World\n       (Godot.Core.World.get_direct_space_state,\n        Godot.Core.World.get_environment,\n        Godot.Core.World.get_fallback_environment,\n        Godot.Core.World.get_scenario, Godot.Core.World.get_space,\n        Godot.Core.World.set_environment,\n        Godot.Core.World.set_fallback_environment)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty World \"direct_space_state\"\n           PhysicsDirectSpaceState\n           'True\n         where\n        nodeProperty = (get_direct_space_state, (), Nothing)\n\ninstance NodeProperty World \"environment\" Environment 'False where\n        nodeProperty\n          = (get_environment, wrapDroppingSetter set_environment, Nothing)\n\ninstance NodeProperty World \"fallback_environment\" Environment\n           'False\n         where\n        nodeProperty\n          = (get_fallback_environment,\n             wrapDroppingSetter set_fallback_environment, Nothing)\n\ninstance NodeProperty World \"scenario\" Rid 'True where\n        nodeProperty = (get_scenario, (), Nothing)\n\ninstance NodeProperty World \"space\" Rid 'True where\n        nodeProperty = (get_space, (), Nothing)\n\n{-# NOINLINE bindWorld_get_direct_space_state #-}\n\n-- | Direct access to the world's physics 3D space state. Used for querying current and potential collisions. Must only be accessed from within @_physics_process(delta)@.\nbindWorld_get_direct_space_state :: MethodBind\nbindWorld_get_direct_space_state\n  = unsafePerformIO $\n      withCString \"World\" $\n        \\ clsNamePtr ->\n          withCString \"get_direct_space_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Direct access to the world's physics 3D space state. Used for querying current and potential collisions. Must only be accessed from within @_physics_process(delta)@.\nget_direct_space_state ::\n                         (World :< cls, Object :< cls) => cls -> IO PhysicsDirectSpaceState\nget_direct_space_state cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWorld_get_direct_space_state\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod World \"get_direct_space_state\" '[]\n           (IO PhysicsDirectSpaceState)\n         where\n        nodeMethod = Godot.Core.World.get_direct_space_state\n\n{-# NOINLINE bindWorld_get_environment #-}\n\n-- | The World's @Environment@.\nbindWorld_get_environment :: MethodBind\nbindWorld_get_environment\n  = unsafePerformIO $\n      withCString \"World\" $\n        \\ clsNamePtr ->\n          withCString \"get_environment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The World's @Environment@.\nget_environment ::\n                  (World :< cls, Object :< cls) => cls -> IO Environment\nget_environment cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWorld_get_environment (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod World \"get_environment\" '[] (IO Environment)\n         where\n        nodeMethod = Godot.Core.World.get_environment\n\n{-# NOINLINE bindWorld_get_fallback_environment #-}\n\n-- | The World's fallback_environment will be used if the World's @Environment@ fails or is missing.\nbindWorld_get_fallback_environment :: MethodBind\nbindWorld_get_fallback_environment\n  = unsafePerformIO $\n      withCString \"World\" $\n        \\ clsNamePtr ->\n          withCString \"get_fallback_environment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The World's fallback_environment will be used if the World's @Environment@ fails or is missing.\nget_fallback_environment ::\n                           (World :< cls, Object :< cls) => cls -> IO Environment\nget_fallback_environment cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWorld_get_fallback_environment\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod World \"get_fallback_environment\" '[]\n           (IO Environment)\n         where\n        nodeMethod = Godot.Core.World.get_fallback_environment\n\n{-# NOINLINE bindWorld_get_scenario #-}\n\n-- | The World's visual scenario.\nbindWorld_get_scenario :: MethodBind\nbindWorld_get_scenario\n  = unsafePerformIO $\n      withCString \"World\" $\n        \\ clsNamePtr ->\n          withCString \"get_scenario\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The World's visual scenario.\nget_scenario :: (World :< cls, Object :< cls) => cls -> IO Rid\nget_scenario cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWorld_get_scenario (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod World \"get_scenario\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.World.get_scenario\n\n{-# NOINLINE bindWorld_get_space #-}\n\n-- | The World's physics space.\nbindWorld_get_space :: MethodBind\nbindWorld_get_space\n  = unsafePerformIO $\n      withCString \"World\" $\n        \\ clsNamePtr ->\n          withCString \"get_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The World's physics space.\nget_space :: (World :< cls, Object :< cls) => cls -> IO Rid\nget_space cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWorld_get_space (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod World \"get_space\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.World.get_space\n\n{-# NOINLINE bindWorld_set_environment #-}\n\n-- | The World's @Environment@.\nbindWorld_set_environment :: MethodBind\nbindWorld_set_environment\n  = unsafePerformIO $\n      withCString \"World\" $\n        \\ clsNamePtr ->\n          withCString \"set_environment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The World's @Environment@.\nset_environment ::\n                  (World :< cls, Object :< cls) => cls -> Environment -> IO ()\nset_environment cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWorld_set_environment (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod World \"set_environment\" '[Environment] (IO ())\n         where\n        nodeMethod = Godot.Core.World.set_environment\n\n{-# NOINLINE bindWorld_set_fallback_environment #-}\n\n-- | The World's fallback_environment will be used if the World's @Environment@ fails or is missing.\nbindWorld_set_fallback_environment :: MethodBind\nbindWorld_set_fallback_environment\n  = unsafePerformIO $\n      withCString \"World\" $\n        \\ clsNamePtr ->\n          withCString \"set_fallback_environment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The World's fallback_environment will be used if the World's @Environment@ fails or is missing.\nset_fallback_environment ::\n                           (World :< cls, Object :< cls) => cls -> Environment -> IO ()\nset_fallback_environment cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWorld_set_fallback_environment\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod World \"set_fallback_environment\" '[Environment]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.World.set_fallback_environment"
  },
  {
    "path": "src/Godot/Core/World2D.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.World2D\n       (Godot.Core.World2D.get_canvas,\n        Godot.Core.World2D.get_direct_space_state,\n        Godot.Core.World2D.get_space)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\ninstance NodeProperty World2D \"canvas\" Rid 'True where\n        nodeProperty = (get_canvas, (), Nothing)\n\ninstance NodeProperty World2D \"direct_space_state\"\n           Physics2DDirectSpaceState\n           'True\n         where\n        nodeProperty = (get_direct_space_state, (), Nothing)\n\ninstance NodeProperty World2D \"space\" Rid 'True where\n        nodeProperty = (get_space, (), Nothing)\n\n{-# NOINLINE bindWorld2D_get_canvas #-}\n\n-- | The @RID@ of this world's canvas resource. Used by the @VisualServer@ for 2D drawing.\nbindWorld2D_get_canvas :: MethodBind\nbindWorld2D_get_canvas\n  = unsafePerformIO $\n      withCString \"World2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_canvas\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @RID@ of this world's canvas resource. Used by the @VisualServer@ for 2D drawing.\nget_canvas :: (World2D :< cls, Object :< cls) => cls -> IO Rid\nget_canvas cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWorld2D_get_canvas (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod World2D \"get_canvas\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.World2D.get_canvas\n\n{-# NOINLINE bindWorld2D_get_direct_space_state #-}\n\n-- | Direct access to the world's physics 2D space state. Used for querying current and potential collisions. Must only be accessed from the main thread within @_physics_process(delta)@.\nbindWorld2D_get_direct_space_state :: MethodBind\nbindWorld2D_get_direct_space_state\n  = unsafePerformIO $\n      withCString \"World2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_direct_space_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Direct access to the world's physics 2D space state. Used for querying current and potential collisions. Must only be accessed from the main thread within @_physics_process(delta)@.\nget_direct_space_state ::\n                         (World2D :< cls, Object :< cls) =>\n                         cls -> IO Physics2DDirectSpaceState\nget_direct_space_state cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWorld2D_get_direct_space_state\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod World2D \"get_direct_space_state\" '[]\n           (IO Physics2DDirectSpaceState)\n         where\n        nodeMethod = Godot.Core.World2D.get_direct_space_state\n\n{-# NOINLINE bindWorld2D_get_space #-}\n\n-- | The @RID@ of this world's physics space resource. Used by the @Physics2DServer@ for 2D physics, treating it as both a space and an area.\nbindWorld2D_get_space :: MethodBind\nbindWorld2D_get_space\n  = unsafePerformIO $\n      withCString \"World2D\" $\n        \\ clsNamePtr ->\n          withCString \"get_space\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @RID@ of this world's physics space resource. Used by the @Physics2DServer@ for 2D physics, treating it as both a space and an area.\nget_space :: (World2D :< cls, Object :< cls) => cls -> IO Rid\nget_space cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWorld2D_get_space (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod World2D \"get_space\" '[] (IO Rid) where\n        nodeMethod = Godot.Core.World2D.get_space"
  },
  {
    "path": "src/Godot/Core/WorldEnvironment.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.WorldEnvironment\n       (Godot.Core.WorldEnvironment.get_environment,\n        Godot.Core.WorldEnvironment.set_environment)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\ninstance NodeProperty WorldEnvironment \"environment\" Environment\n           'False\n         where\n        nodeProperty\n          = (get_environment, wrapDroppingSetter set_environment, Nothing)\n\n{-# NOINLINE bindWorldEnvironment_get_environment #-}\n\n-- | The @Environment@ resource used by this @WorldEnvironment@, defining the default properties.\nbindWorldEnvironment_get_environment :: MethodBind\nbindWorldEnvironment_get_environment\n  = unsafePerformIO $\n      withCString \"WorldEnvironment\" $\n        \\ clsNamePtr ->\n          withCString \"get_environment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Environment@ resource used by this @WorldEnvironment@, defining the default properties.\nget_environment ::\n                  (WorldEnvironment :< cls, Object :< cls) => cls -> IO Environment\nget_environment cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWorldEnvironment_get_environment\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WorldEnvironment \"get_environment\" '[]\n           (IO Environment)\n         where\n        nodeMethod = Godot.Core.WorldEnvironment.get_environment\n\n{-# NOINLINE bindWorldEnvironment_set_environment #-}\n\n-- | The @Environment@ resource used by this @WorldEnvironment@, defining the default properties.\nbindWorldEnvironment_set_environment :: MethodBind\nbindWorldEnvironment_set_environment\n  = unsafePerformIO $\n      withCString \"WorldEnvironment\" $\n        \\ clsNamePtr ->\n          withCString \"set_environment\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The @Environment@ resource used by this @WorldEnvironment@, defining the default properties.\nset_environment ::\n                  (WorldEnvironment :< cls, Object :< cls) =>\n                  cls -> Environment -> IO ()\nset_environment cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindWorldEnvironment_set_environment\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod WorldEnvironment \"set_environment\"\n           '[Environment]\n           (IO ())\n         where\n        nodeMethod = Godot.Core.WorldEnvironment.set_environment"
  },
  {
    "path": "src/Godot/Core/X509Certificate.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.X509Certificate\n       (Godot.Core.X509Certificate.load, Godot.Core.X509Certificate.save)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n{-# NOINLINE bindX509Certificate_load #-}\n\n-- | Loads a certificate from @path@ (\"*.crt\" file).\nbindX509Certificate_load :: MethodBind\nbindX509Certificate_load\n  = unsafePerformIO $\n      withCString \"X509Certificate\" $\n        \\ clsNamePtr ->\n          withCString \"load\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Loads a certificate from @path@ (\"*.crt\" file).\nload ::\n       (X509Certificate :< cls, Object :< cls) =>\n       cls -> GodotString -> IO Int\nload cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindX509Certificate_load (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod X509Certificate \"load\" '[GodotString] (IO Int)\n         where\n        nodeMethod = Godot.Core.X509Certificate.load\n\n{-# NOINLINE bindX509Certificate_save #-}\n\n-- | Saves a certificate to the given @path@ (should be a \"*.crt\" file).\nbindX509Certificate_save :: MethodBind\nbindX509Certificate_save\n  = unsafePerformIO $\n      withCString \"X509Certificate\" $\n        \\ clsNamePtr ->\n          withCString \"save\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Saves a certificate to the given @path@ (should be a \"*.crt\" file).\nsave ::\n       (X509Certificate :< cls, Object :< cls) =>\n       cls -> GodotString -> IO Int\nsave cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindX509Certificate_save (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod X509Certificate \"save\" '[GodotString] (IO Int)\n         where\n        nodeMethod = Godot.Core.X509Certificate.save"
  },
  {
    "path": "src/Godot/Core/XMLParser.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.XMLParser\n       (Godot.Core.XMLParser._NODE_UNKNOWN,\n        Godot.Core.XMLParser._NODE_ELEMENT,\n        Godot.Core.XMLParser._NODE_CDATA,\n        Godot.Core.XMLParser._NODE_COMMENT,\n        Godot.Core.XMLParser._NODE_TEXT, Godot.Core.XMLParser._NODE_NONE,\n        Godot.Core.XMLParser._NODE_ELEMENT_END,\n        Godot.Core.XMLParser.get_attribute_count,\n        Godot.Core.XMLParser.get_attribute_name,\n        Godot.Core.XMLParser.get_attribute_value,\n        Godot.Core.XMLParser.get_current_line,\n        Godot.Core.XMLParser.get_named_attribute_value,\n        Godot.Core.XMLParser.get_named_attribute_value_safe,\n        Godot.Core.XMLParser.get_node_data,\n        Godot.Core.XMLParser.get_node_name,\n        Godot.Core.XMLParser.get_node_offset,\n        Godot.Core.XMLParser.get_node_type,\n        Godot.Core.XMLParser.has_attribute, Godot.Core.XMLParser.is_empty,\n        Godot.Core.XMLParser.open, Godot.Core.XMLParser.open_buffer,\n        Godot.Core.XMLParser.read, Godot.Core.XMLParser.seek,\n        Godot.Core.XMLParser.skip_section)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n_NODE_UNKNOWN :: Int\n_NODE_UNKNOWN = 6\n\n_NODE_ELEMENT :: Int\n_NODE_ELEMENT = 1\n\n_NODE_CDATA :: Int\n_NODE_CDATA = 5\n\n_NODE_COMMENT :: Int\n_NODE_COMMENT = 4\n\n_NODE_TEXT :: Int\n_NODE_TEXT = 3\n\n_NODE_NONE :: Int\n_NODE_NONE = 0\n\n_NODE_ELEMENT_END :: Int\n_NODE_ELEMENT_END = 2\n\n{-# NOINLINE bindXMLParser_get_attribute_count #-}\n\n-- | Gets the amount of attributes in the current element.\nbindXMLParser_get_attribute_count :: MethodBind\nbindXMLParser_get_attribute_count\n  = unsafePerformIO $\n      withCString \"XMLParser\" $\n        \\ clsNamePtr ->\n          withCString \"get_attribute_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the amount of attributes in the current element.\nget_attribute_count ::\n                      (XMLParser :< cls, Object :< cls) => cls -> IO Int\nget_attribute_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindXMLParser_get_attribute_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod XMLParser \"get_attribute_count\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Core.XMLParser.get_attribute_count\n\n{-# NOINLINE bindXMLParser_get_attribute_name #-}\n\n-- | Gets the name of the attribute specified by the index in @idx@ argument.\nbindXMLParser_get_attribute_name :: MethodBind\nbindXMLParser_get_attribute_name\n  = unsafePerformIO $\n      withCString \"XMLParser\" $\n        \\ clsNamePtr ->\n          withCString \"get_attribute_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the name of the attribute specified by the index in @idx@ argument.\nget_attribute_name ::\n                     (XMLParser :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_attribute_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindXMLParser_get_attribute_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod XMLParser \"get_attribute_name\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.XMLParser.get_attribute_name\n\n{-# NOINLINE bindXMLParser_get_attribute_value #-}\n\n-- | Gets the value of the attribute specified by the index in @idx@ argument.\nbindXMLParser_get_attribute_value :: MethodBind\nbindXMLParser_get_attribute_value\n  = unsafePerformIO $\n      withCString \"XMLParser\" $\n        \\ clsNamePtr ->\n          withCString \"get_attribute_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the value of the attribute specified by the index in @idx@ argument.\nget_attribute_value ::\n                      (XMLParser :< cls, Object :< cls) => cls -> Int -> IO GodotString\nget_attribute_value cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindXMLParser_get_attribute_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod XMLParser \"get_attribute_value\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.XMLParser.get_attribute_value\n\n{-# NOINLINE bindXMLParser_get_current_line #-}\n\n-- | Gets the current line in the parsed file (currently not implemented).\nbindXMLParser_get_current_line :: MethodBind\nbindXMLParser_get_current_line\n  = unsafePerformIO $\n      withCString \"XMLParser\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the current line in the parsed file (currently not implemented).\nget_current_line ::\n                   (XMLParser :< cls, Object :< cls) => cls -> IO Int\nget_current_line cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindXMLParser_get_current_line (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod XMLParser \"get_current_line\" '[] (IO Int) where\n        nodeMethod = Godot.Core.XMLParser.get_current_line\n\n{-# NOINLINE bindXMLParser_get_named_attribute_value #-}\n\n-- | Gets the value of a certain attribute of the current element by name. This will raise an error if the element has no such attribute.\nbindXMLParser_get_named_attribute_value :: MethodBind\nbindXMLParser_get_named_attribute_value\n  = unsafePerformIO $\n      withCString \"XMLParser\" $\n        \\ clsNamePtr ->\n          withCString \"get_named_attribute_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the value of a certain attribute of the current element by name. This will raise an error if the element has no such attribute.\nget_named_attribute_value ::\n                            (XMLParser :< cls, Object :< cls) =>\n                            cls -> GodotString -> IO GodotString\nget_named_attribute_value cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindXMLParser_get_named_attribute_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod XMLParser \"get_named_attribute_value\"\n           '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.XMLParser.get_named_attribute_value\n\n{-# NOINLINE bindXMLParser_get_named_attribute_value_safe #-}\n\n-- | Gets the value of a certain attribute of the current element by name. This will return an empty @String@ if the attribute is not found.\nbindXMLParser_get_named_attribute_value_safe :: MethodBind\nbindXMLParser_get_named_attribute_value_safe\n  = unsafePerformIO $\n      withCString \"XMLParser\" $\n        \\ clsNamePtr ->\n          withCString \"get_named_attribute_value_safe\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the value of a certain attribute of the current element by name. This will return an empty @String@ if the attribute is not found.\nget_named_attribute_value_safe ::\n                                 (XMLParser :< cls, Object :< cls) =>\n                                 cls -> GodotString -> IO GodotString\nget_named_attribute_value_safe cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindXMLParser_get_named_attribute_value_safe\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod XMLParser \"get_named_attribute_value_safe\"\n           '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Core.XMLParser.get_named_attribute_value_safe\n\n{-# NOINLINE bindXMLParser_get_node_data #-}\n\n-- | Gets the contents of a text node. This will raise an error in any other type of node.\nbindXMLParser_get_node_data :: MethodBind\nbindXMLParser_get_node_data\n  = unsafePerformIO $\n      withCString \"XMLParser\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the contents of a text node. This will raise an error in any other type of node.\nget_node_data ::\n                (XMLParser :< cls, Object :< cls) => cls -> IO GodotString\nget_node_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindXMLParser_get_node_data (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod XMLParser \"get_node_data\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.XMLParser.get_node_data\n\n{-# NOINLINE bindXMLParser_get_node_name #-}\n\n-- | Gets the name of the current element node. This will raise an error if the current node type is neither @NODE_ELEMENT@ nor @NODE_ELEMENT_END@.\nbindXMLParser_get_node_name :: MethodBind\nbindXMLParser_get_node_name\n  = unsafePerformIO $\n      withCString \"XMLParser\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the name of the current element node. This will raise an error if the current node type is neither @NODE_ELEMENT@ nor @NODE_ELEMENT_END@.\nget_node_name ::\n                (XMLParser :< cls, Object :< cls) => cls -> IO GodotString\nget_node_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindXMLParser_get_node_name (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod XMLParser \"get_node_name\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Core.XMLParser.get_node_name\n\n{-# NOINLINE bindXMLParser_get_node_offset #-}\n\n-- | Gets the byte offset of the current node since the beginning of the file or buffer.\nbindXMLParser_get_node_offset :: MethodBind\nbindXMLParser_get_node_offset\n  = unsafePerformIO $\n      withCString \"XMLParser\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_offset\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the byte offset of the current node since the beginning of the file or buffer.\nget_node_offset ::\n                  (XMLParser :< cls, Object :< cls) => cls -> IO Int\nget_node_offset cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindXMLParser_get_node_offset (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod XMLParser \"get_node_offset\" '[] (IO Int) where\n        nodeMethod = Godot.Core.XMLParser.get_node_offset\n\n{-# NOINLINE bindXMLParser_get_node_type #-}\n\n-- | Gets the type of the current node. Compare with @enum NodeType@ constants.\nbindXMLParser_get_node_type :: MethodBind\nbindXMLParser_get_node_type\n  = unsafePerformIO $\n      withCString \"XMLParser\" $\n        \\ clsNamePtr ->\n          withCString \"get_node_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the type of the current node. Compare with @enum NodeType@ constants.\nget_node_type :: (XMLParser :< cls, Object :< cls) => cls -> IO Int\nget_node_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindXMLParser_get_node_type (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod XMLParser \"get_node_type\" '[] (IO Int) where\n        nodeMethod = Godot.Core.XMLParser.get_node_type\n\n{-# NOINLINE bindXMLParser_has_attribute #-}\n\n-- | Check whether the current element has a certain attribute.\nbindXMLParser_has_attribute :: MethodBind\nbindXMLParser_has_attribute\n  = unsafePerformIO $\n      withCString \"XMLParser\" $\n        \\ clsNamePtr ->\n          withCString \"has_attribute\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Check whether the current element has a certain attribute.\nhas_attribute ::\n                (XMLParser :< cls, Object :< cls) => cls -> GodotString -> IO Bool\nhas_attribute cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindXMLParser_has_attribute (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod XMLParser \"has_attribute\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Core.XMLParser.has_attribute\n\n{-# NOINLINE bindXMLParser_is_empty #-}\n\n-- | Check whether the current element is empty (this only works for completely empty tags, e.g. @<element \\>@).\nbindXMLParser_is_empty :: MethodBind\nbindXMLParser_is_empty\n  = unsafePerformIO $\n      withCString \"XMLParser\" $\n        \\ clsNamePtr ->\n          withCString \"is_empty\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Check whether the current element is empty (this only works for completely empty tags, e.g. @<element \\>@).\nis_empty :: (XMLParser :< cls, Object :< cls) => cls -> IO Bool\nis_empty cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindXMLParser_is_empty (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod XMLParser \"is_empty\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.XMLParser.is_empty\n\n{-# NOINLINE bindXMLParser_open #-}\n\n-- | Opens an XML file for parsing. This returns an error code.\nbindXMLParser_open :: MethodBind\nbindXMLParser_open\n  = unsafePerformIO $\n      withCString \"XMLParser\" $\n        \\ clsNamePtr ->\n          withCString \"open\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Opens an XML file for parsing. This returns an error code.\nopen ::\n       (XMLParser :< cls, Object :< cls) => cls -> GodotString -> IO Int\nopen cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindXMLParser_open (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod XMLParser \"open\" '[GodotString] (IO Int) where\n        nodeMethod = Godot.Core.XMLParser.open\n\n{-# NOINLINE bindXMLParser_open_buffer #-}\n\n-- | Opens an XML raw buffer for parsing. This returns an error code.\nbindXMLParser_open_buffer :: MethodBind\nbindXMLParser_open_buffer\n  = unsafePerformIO $\n      withCString \"XMLParser\" $\n        \\ clsNamePtr ->\n          withCString \"open_buffer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Opens an XML raw buffer for parsing. This returns an error code.\nopen_buffer ::\n              (XMLParser :< cls, Object :< cls) => cls -> PoolByteArray -> IO Int\nopen_buffer cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindXMLParser_open_buffer (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod XMLParser \"open_buffer\" '[PoolByteArray]\n           (IO Int)\n         where\n        nodeMethod = Godot.Core.XMLParser.open_buffer\n\n{-# NOINLINE bindXMLParser_read #-}\n\n-- | Reads the next node of the file. This returns an error code.\nbindXMLParser_read :: MethodBind\nbindXMLParser_read\n  = unsafePerformIO $\n      withCString \"XMLParser\" $\n        \\ clsNamePtr ->\n          withCString \"read\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Reads the next node of the file. This returns an error code.\nread :: (XMLParser :< cls, Object :< cls) => cls -> IO Int\nread cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindXMLParser_read (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod XMLParser \"read\" '[] (IO Int) where\n        nodeMethod = Godot.Core.XMLParser.read\n\n{-# NOINLINE bindXMLParser_seek #-}\n\n-- | Moves the buffer cursor to a certain offset (since the beginning) and read the next node there. This returns an error code.\nbindXMLParser_seek :: MethodBind\nbindXMLParser_seek\n  = unsafePerformIO $\n      withCString \"XMLParser\" $\n        \\ clsNamePtr ->\n          withCString \"seek\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Moves the buffer cursor to a certain offset (since the beginning) and read the next node there. This returns an error code.\nseek :: (XMLParser :< cls, Object :< cls) => cls -> Int -> IO Int\nseek cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindXMLParser_seek (upcast cls) arrPtr len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod XMLParser \"seek\" '[Int] (IO Int) where\n        nodeMethod = Godot.Core.XMLParser.seek\n\n{-# NOINLINE bindXMLParser_skip_section #-}\n\n-- | Skips the current section. If the node contains other elements, they will be ignored and the cursor will go to the closing of the current element.\nbindXMLParser_skip_section :: MethodBind\nbindXMLParser_skip_section\n  = unsafePerformIO $\n      withCString \"XMLParser\" $\n        \\ clsNamePtr ->\n          withCString \"skip_section\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Skips the current section. If the node contains other elements, they will be ignored and the cursor will go to the closing of the current element.\nskip_section :: (XMLParser :< cls, Object :< cls) => cls -> IO ()\nskip_section cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindXMLParser_skip_section (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod XMLParser \"skip_section\" '[] (IO ()) where\n        nodeMethod = Godot.Core.XMLParser.skip_section"
  },
  {
    "path": "src/Godot/Core/YSort.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Core.YSort\n       (Godot.Core.YSort.is_sort_enabled,\n        Godot.Core.YSort.set_sort_enabled)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node2D()\n\ninstance NodeProperty YSort \"sort_enabled\" Bool 'False where\n        nodeProperty\n          = (is_sort_enabled, wrapDroppingSetter set_sort_enabled, Nothing)\n\n{-# NOINLINE bindYSort_is_sort_enabled #-}\n\n-- | If @true@, child nodes are sorted, otherwise sorting is disabled.\nbindYSort_is_sort_enabled :: MethodBind\nbindYSort_is_sort_enabled\n  = unsafePerformIO $\n      withCString \"YSort\" $\n        \\ clsNamePtr ->\n          withCString \"is_sort_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, child nodes are sorted, otherwise sorting is disabled.\nis_sort_enabled :: (YSort :< cls, Object :< cls) => cls -> IO Bool\nis_sort_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindYSort_is_sort_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod YSort \"is_sort_enabled\" '[] (IO Bool) where\n        nodeMethod = Godot.Core.YSort.is_sort_enabled\n\n{-# NOINLINE bindYSort_set_sort_enabled #-}\n\n-- | If @true@, child nodes are sorted, otherwise sorting is disabled.\nbindYSort_set_sort_enabled :: MethodBind\nbindYSort_set_sort_enabled\n  = unsafePerformIO $\n      withCString \"YSort\" $\n        \\ clsNamePtr ->\n          withCString \"set_sort_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, child nodes are sorted, otherwise sorting is disabled.\nset_sort_enabled ::\n                   (YSort :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_sort_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindYSort_set_sort_enabled (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod YSort \"set_sort_enabled\" '[Bool] (IO ()) where\n        nodeMethod = Godot.Core.YSort.set_sort_enabled"
  },
  {
    "path": "src/Godot/Gdnative/Internal/Api.hs",
    "content": "{-# LANGUAGE TemplateHaskell #-}\nmodule Godot.Gdnative.Internal.Api where\n\nimport Data.Aeson hiding (Array,Object)\nimport qualified Data.ByteString.Lazy as BL\nimport Data.IORef\n\nimport Foreign.C\n\nimport Language.Haskell.TH\n\nimport Data.ByteString.Internal (accursedUnutterablePerformIO)\n\nimport Godot.Gdnative.Internal.Gdnative\n\nimport Generate\n\ngdnativeCoreApiStruct :: GdnativeCoreApiStruct\ngdnativeCoreApiStruct = accursedUnutterablePerformIO $ readIORef gdnativeCoreApiStructRef\n\ngdnativeCore11ApiStruct :: GdnativeCore11ApiStruct\ngdnativeCore11ApiStruct = accursedUnutterablePerformIO $ readIORef gdnativeCore11ApiStructRef\n\ngdnativeCore12ApiStruct :: GdnativeCore12ApiStruct\ngdnativeCore12ApiStruct = accursedUnutterablePerformIO $ readIORef gdnativeCore12ApiStructRef\n\ngdnativeExtNativescriptApiStruct :: GdnativeExtNativescriptApiStruct\ngdnativeExtNativescriptApiStruct = accursedUnutterablePerformIO $ readIORef gdnativeExtNativescriptApiStructRef\n\ngdnativeExtNativescript11ApiStruct :: GdnativeExtNativescript11ApiStruct\ngdnativeExtNativescript11ApiStruct = accursedUnutterablePerformIO $ readIORef gdnativeExtNativescript11ApiStructRef\n\ngdnativeExtPluginscriptApiStruct :: GdnativeExtPluginscriptApiStruct\ngdnativeExtPluginscriptApiStruct = accursedUnutterablePerformIO $ readIORef gdnativeExtPluginscriptApiStructRef\n\ngdnativeExtArvrApiStruct :: GdnativeExtArvrApiStruct\ngdnativeExtArvrApiStruct = accursedUnutterablePerformIO $ readIORef gdnativeExtArvrApiStructRef\n\ngdnativeExtVideodecoderApiStruct :: GdnativeExtVideodecoderApiStruct\ngdnativeExtVideodecoderApiStruct = accursedUnutterablePerformIO $ readIORef gdnativeExtVideodecoderApiStructRef\n\ngdnativeExtNetApiStruct :: GdnativeExtNetApiStruct\ngdnativeExtNetApiStruct = accursedUnutterablePerformIO $ readIORef gdnativeExtNetApiStructRef\n\ngdnativeExtNet32ApiStruct :: GdnativeExtNet32ApiStruct\ngdnativeExtNet32ApiStruct = accursedUnutterablePerformIO $ readIORef gdnativeExtNet32ApiStructRef\n\n$(do\n    maybeApis <- eitherDecode <$> runIO (BL.readFile \"godot_headers/gdnative_api.json\")\n    case maybeApis of\n      Right apis -> apisToHs apis\n      Left err -> error err)\n"
  },
  {
    "path": "src/Godot/Gdnative/Internal/Gdnative.chs",
    "content": "{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE AllowAmbiguousTypes, ScopedTypeVariables, GADTs #-}\n{-# LANGUAGE UnboxedTuples, MagicHash #-}\n{-# LANGUAGE PatternSynonyms, RecordWildCards #-}\n{-# OPTIONS_GHC -Wno-name-shadowing #-}\nmodule Godot.Gdnative.Internal.Gdnative where\n\nimport Control.Exception\nimport Control.Monad\nimport Data.Bits\nimport Data.Coerce\nimport Data.IORef\nimport Foreign\nimport Foreign.C\nimport System.IO.Unsafe\n\n#include \"util.h\"\n#include \"gdnative_api_struct.gen.h\"\n\n{#context prefix = \"godot_\" #}\n\n{#enum godot_error as Error {underscoreToCase}\n  deriving (Show, Eq, Ord, Bounded) #}\n\n{#enum godot_variant_type as VariantType {underscoreToCase}\n  deriving (Show, Eq, Ord, Bounded) #}\n\n{#enum godot_variant_call_error_error as VariantCallErrorError {underscoreToCase}\n  deriving (Show, Eq, Ord, Bounded) #}\n\n{#enum godot_vector3_axis as Vector3Axis {underscoreToCase}\n deriving (Show, Eq, Ord, Bounded)#}\n\n{#enum godot_variant_operator as VariantOperator {underscoreToCase} \n deriving (Show, Eq, Ord, Bounded)#}\n  \n{#typedef godot_bool Bool #}\ntype GodotBool = {#type godot_bool#}\n{#typedef godot_int CInt #}\ntype GodotInt = {#type godot_int#}\n{#typedef godot_real CFloat #}\ntype GodotReal = {#type godot_real#}\n{#typedef godot_char_type CWchar #}\ntype CharType = {#type godot_char_type #}\n\n{#pointer *godot_aabb as Aabb foreign newtype #}\nderiving newtype instance Eq Aabb\n\n{#pointer *godot_array as Array foreign newtype #}\nderiving newtype instance Eq Array\n\n{#pointer *godot_basis as Basis foreign newtype #}\nderiving newtype instance Eq Basis\n\n{#pointer *godot_char_string as CharString foreign newtype #}\nderiving newtype instance Eq CharString\n\n{#pointer *godot_color as Color foreign newtype #}\nderiving newtype instance Eq Color\n\n{#pointer *godot_dictionary as Dictionary foreign newtype #}\nderiving newtype instance Eq Dictionary\n\n{#pointer *godot_method_bind as MethodBind foreign newtype #}\nderiving newtype instance Eq MethodBind\n\n{#pointer *godot_node_path as NodePath foreign newtype #}\nderiving newtype instance Eq NodePath\n\n{#pointer *godot_plane as Plane foreign newtype #}\nderiving newtype instance Eq Plane\n\n{#pointer *godot_pool_array_read_access as PoolArrayReadAccess foreign newtype #}\nderiving newtype instance Eq PoolArrayReadAccess\n\n{#pointer *godot_pool_array_write_access as PoolArrayWriteAccess foreign newtype #}\nderiving newtype instance Eq PoolArrayWriteAccess\n\n{#pointer *godot_pool_byte_array as PoolByteArray foreign newtype #}\nderiving newtype instance Eq PoolByteArray\n\n{#pointer *godot_pool_color_array as PoolColorArray foreign newtype #}\nderiving newtype instance Eq PoolColorArray\n\n{#pointer *godot_pool_int_array as PoolIntArray foreign newtype #}\nderiving newtype instance Eq PoolIntArray\n\n{#pointer *godot_pool_real_array as PoolRealArray foreign newtype #}\nderiving newtype instance Eq PoolRealArray\n\n{#pointer *godot_pool_string_array as PoolStringArray foreign newtype #}\nderiving newtype instance Eq PoolStringArray\n\n{#pointer *godot_pool_vector2_array as PoolVector2Array foreign newtype #}\nderiving newtype instance Eq PoolVector2Array\n\n{#pointer *godot_pool_vector3_array as PoolVector3Array foreign newtype #}\nderiving newtype instance Eq PoolVector3Array\n\n{#pointer *godot_quat as Quat foreign newtype #}\nderiving newtype instance Eq Quat\n\n{#pointer *godot_rect2 as Rect2 foreign newtype #}\nderiving newtype instance Eq Rect2\n\n{#pointer *godot_rid as Rid foreign newtype #}\nderiving newtype instance Eq Rid\n\n{#pointer *godot_string as GodotString foreign newtype #}\nderiving newtype instance Eq GodotString\n\n{#pointer *godot_string_name as StringName foreign newtype #}\nderiving newtype instance Eq StringName\n\n{#pointer *godot_transform as Transform foreign newtype #}\nderiving newtype instance Eq Transform\n\n{#pointer *godot_transform2d as Transform2d foreign newtype #}\nderiving newtype instance Eq Transform2d\n\n{#pointer *godot_variant as GodotVariant foreign newtype #}\nderiving newtype instance Eq GodotVariant\n\n{#pointer *godot_vector2 as Vector2 foreign newtype #}\nderiving newtype instance Eq Vector2\n\n{#pointer *godot_vector3 as Vector3 foreign newtype #}\nderiving newtype instance Eq Vector3\n\n\ntype PoolByteArrayReadAccess = PoolArrayReadAccess\ntype PoolByteArrayWriteAccess = PoolArrayWriteAccess\ntype PoolColorArrayReadAccess = PoolArrayReadAccess\ntype PoolColorArrayWriteAccess = PoolArrayWriteAccess\ntype PoolIntArrayReadAccess = PoolArrayReadAccess\ntype PoolIntArrayWriteAccess = PoolArrayWriteAccess\ntype PoolRealArrayReadAccess = PoolArrayReadAccess\ntype PoolRealArrayWriteAccess = PoolArrayWriteAccess\ntype PoolStringArrayReadAccess = PoolArrayReadAccess\ntype PoolStringArrayWriteAccess = PoolArrayWriteAccess\ntype PoolVector2ArrayReadAccess = PoolArrayReadAccess\ntype PoolVector2ArrayWriteAccess = PoolArrayWriteAccess\ntype PoolVector3ArrayReadAccess = PoolArrayReadAccess\ntype PoolVector3ArrayWriteAccess = PoolArrayWriteAccess\n\nclass OpaqueStorable a where\n  opaqueSizeOf :: Int\ninstance OpaqueStorable Aabb where\n  opaqueSizeOf = {#sizeof godot_aabb#}\n\n\ninstance OpaqueStorable Array where\n  opaqueSizeOf = {#sizeof godot_array#}\n\n\ninstance OpaqueStorable Basis where\n  opaqueSizeOf = {#sizeof godot_basis#}\n\n\ninstance OpaqueStorable CharString where\n  opaqueSizeOf = {#sizeof godot_char_string#}\n\n\ninstance OpaqueStorable Color where\n  opaqueSizeOf = {#sizeof godot_color#}\n\n\ninstance OpaqueStorable Dictionary where\n  opaqueSizeOf = {#sizeof godot_dictionary#}\n\n\ninstance OpaqueStorable MethodBind where\n  opaqueSizeOf = {#sizeof godot_method_bind#}\n\n\ninstance OpaqueStorable NodePath where\n  opaqueSizeOf = {#sizeof godot_node_path#}\n\n\ninstance OpaqueStorable Plane where\n  opaqueSizeOf = {#sizeof godot_plane#}\n\n\ninstance OpaqueStorable PoolArrayReadAccess where\n  opaqueSizeOf = {#sizeof godot_pool_array_read_access#}\n\n\ninstance OpaqueStorable PoolArrayWriteAccess where\n  opaqueSizeOf = {#sizeof godot_pool_array_write_access#}\n\n\ninstance OpaqueStorable PoolByteArray where\n  opaqueSizeOf = {#sizeof godot_pool_byte_array#}\n\n\ninstance OpaqueStorable PoolColorArray where\n  opaqueSizeOf = {#sizeof godot_pool_color_array#}\n\n\ninstance OpaqueStorable PoolIntArray where\n  opaqueSizeOf = {#sizeof godot_pool_int_array#}\n\n\ninstance OpaqueStorable PoolRealArray where\n  opaqueSizeOf = {#sizeof godot_pool_real_array#}\n\n\ninstance OpaqueStorable PoolStringArray where\n  opaqueSizeOf = {#sizeof godot_pool_string_array#}\n\n\ninstance OpaqueStorable PoolVector2Array where\n  opaqueSizeOf = {#sizeof godot_pool_vector2_array#}\n\n\ninstance OpaqueStorable PoolVector3Array where\n  opaqueSizeOf = {#sizeof godot_pool_vector3_array#}\n\n\ninstance OpaqueStorable Quat where\n  opaqueSizeOf = {#sizeof godot_quat#}\n\n\ninstance OpaqueStorable Rect2 where\n  opaqueSizeOf = {#sizeof godot_rect2#}\n\n\ninstance OpaqueStorable Rid where\n  opaqueSizeOf = {#sizeof godot_rid#}\n\n\ninstance OpaqueStorable GodotString where\n  opaqueSizeOf = {#sizeof godot_string#}\n\n\ninstance OpaqueStorable StringName where\n  opaqueSizeOf = {#sizeof godot_string_name#}\n\n\ninstance OpaqueStorable Transform where\n  opaqueSizeOf = {#sizeof godot_transform#}\n\n\ninstance OpaqueStorable Transform2d where\n  opaqueSizeOf = {#sizeof godot_transform2d#}\n\n\ninstance OpaqueStorable GodotVariant where\n  opaqueSizeOf = {#sizeof godot_variant#}\n\n\ninstance OpaqueStorable Vector2 where\n  opaqueSizeOf = {#sizeof godot_vector2#}\n\n\ninstance OpaqueStorable Vector3 where\n  opaqueSizeOf = {#sizeof godot_vector3#}\n\n\ndata VariantCallError = VariantCallError\n  { variantCallErrorError :: !VariantCallErrorError\n  , variantCallErrorArgument :: !(Maybe CInt)\n  , variantCallErrorExpected :: !(Maybe VariantType)\n  } deriving (Show, Eq, Ord)\n\ninstance Exception VariantCallError\n\n{#pointer *godot_variant_call_error as VariantCallErrorPtr -> VariantCallError#}\n\ninstance Storable VariantCallError where\n  sizeOf _ = {#sizeof godot_variant_call_error#}\n  alignment _ = {#alignof godot_variant_call_error#}\n  peek ptr = do\n    err <- (toEnum . fromIntegral) <$> {#get godot_variant_call_error->error #} ptr\n    case err of\n      CallErrorCallErrorInvalidArgument ->\n        VariantCallError err \n             <$> (Just <$> {#get godot_variant_call_error->argument #} ptr)\n             <*> ((Just . toEnum . fromIntegral) <$> {#get godot_variant_call_error->expected #} ptr)\n      _ -> return $ VariantCallError err Nothing Nothing\n  poke ptr a = error \"can't poke VariantCallError\"\n\n{#pointer *godot_gdnative_api_struct as GdnativeApiStruct newtype#}\nderiving newtype instance Eq GdnativeApiStruct\nderiving newtype instance Storable GdnativeApiStruct\n\n{#pointer *godot_gdnative_core_api_struct as GdnativeCoreApiStruct newtype#}\nderiving newtype instance Eq GdnativeCoreApiStruct\nderiving newtype instance Storable GdnativeCoreApiStruct\n\n{#pointer *godot_gdnative_core_1_1_api_struct as GdnativeCore11ApiStruct newtype#}\nderiving newtype instance Eq GdnativeCore11ApiStruct\nderiving newtype instance Storable GdnativeCore11ApiStruct\n\n{#pointer *godot_gdnative_core_1_2_api_struct as GdnativeCore12ApiStruct newtype#}\nderiving newtype instance Eq GdnativeCore12ApiStruct\nderiving newtype instance Storable GdnativeCore12ApiStruct\n\n{#pointer *godot_gdnative_ext_nativescript_api_struct as GdnativeExtNativescriptApiStruct newtype#}\nderiving newtype instance Eq GdnativeExtNativescriptApiStruct\nderiving newtype instance Storable GdnativeExtNativescriptApiStruct\n\n{#pointer *godot_gdnative_ext_nativescript_1_1_api_struct as GdnativeExtNativescript11ApiStruct newtype#}\nderiving newtype instance Eq GdnativeExtNativescript11ApiStruct\nderiving newtype instance Storable GdnativeExtNativescript11ApiStruct\n\n{#pointer *godot_gdnative_ext_pluginscript_api_struct as GdnativeExtPluginscriptApiStruct newtype#}\nderiving newtype instance Eq GdnativeExtPluginscriptApiStruct\nderiving newtype instance Storable GdnativeExtPluginscriptApiStruct\n\n{#pointer *godot_gdnative_ext_arvr_api_struct as GdnativeExtArvrApiStruct newtype#}\nderiving newtype instance Eq GdnativeExtArvrApiStruct\nderiving newtype instance Storable GdnativeExtArvrApiStruct\n\n{#pointer *godot_gdnative_ext_videodecoder_api_struct as GdnativeExtVideodecoderApiStruct newtype#}\nderiving newtype instance Eq GdnativeExtVideodecoderApiStruct\nderiving newtype instance Storable GdnativeExtVideodecoderApiStruct\n\n{#pointer *godot_gdnative_ext_net_api_struct as GdnativeExtNetApiStruct newtype#}\nderiving newtype instance Eq GdnativeExtNetApiStruct\nderiving newtype instance Storable GdnativeExtNetApiStruct\n\n{#pointer *godot_gdnative_ext_net_3_2_api_struct as GdnativeExtNet32ApiStruct newtype#}\nderiving newtype instance Eq GdnativeExtNet32ApiStruct\nderiving newtype instance Storable GdnativeExtNet32ApiStruct\n\n\ntype ReportVersionMismatchFunc = Object -> CString -> Word64 -> Word64 -> IO ()\ntype ReportLoadingErrorFunc = Object -> CString -> IO ()\n\n\n{#pointer *godot_object as Object newtype #}\nderiving newtype instance Show  Object\nderiving newtype instance Eq Object\nderiving newtype instance Storable Object\n\n\ndata GdnativeInitOptions = GdnativeInitOptions\n  { gdnativeInitOptionsInEditor :: !Bool\n  , gdnativeInitOptionsCoreApiHash :: !Word64\n  , gdnativeInitOptionsEditorApiHash :: !Word64\n  , gdnativeInitOptionsNoApiHash :: !Word64\n  , gdnativeInitOptionsReportVersionMismatch :: !ReportVersionMismatchFunc\n  , gdnativeInitOptionsReportLoadingError :: !ReportLoadingErrorFunc\n  , gdnativeInitOptionsGdNativeLibrary :: !Object\n  , gdnativeInitOptionsApiStruct :: !GdnativeCoreApiStruct\n  , gdnativeInitOptionsActiveLibraryPath :: !GodotString\n  }\n\nforeign import ccall \"dynamic\" mkReportVersionMismatchFunc :: FunPtr ReportVersionMismatchFunc -> ReportVersionMismatchFunc\n\nforeign import ccall \"dynamic\" mkReportLoadingErrorFunc :: FunPtr ReportLoadingErrorFunc -> ReportLoadingErrorFunc\n\ninstance Storable GdnativeInitOptions where\n  sizeOf _ = {#sizeof godot_gdnative_init_options#}\n  alignment _ = {#alignof godot_gdnative_init_options#}\n  peek ptr = GdnativeInitOptions\n             <$> {#get godot_gdnative_init_options->in_editor#} ptr\n             <*> (fromIntegral <$> {#get godot_gdnative_init_options->core_api_hash#} ptr)\n             <*> (fromIntegral <$> {#get godot_gdnative_init_options->editor_api_hash#} ptr)\n             <*> (fromIntegral <$> {#get godot_gdnative_init_options->no_api_hash#} ptr)\n             <*> ((mkReportVersionMismatchFunc . castFunPtrVersion) <$> {#get godot_gdnative_init_options->report_version_mismatch#} ptr)\n             <*> (mkReportLoadingErrorFunc <$> {#get godot_gdnative_init_options->report_loading_error#} ptr)\n             <*> {#get godot_gdnative_init_options->gd_native_library#} ptr\n             <*> {#get godot_gdnative_init_options->api_struct#} ptr\n             <*> (GodotString <$> ({#get godot_gdnative_init_options->active_library_path#} ptr >>= newForeignPtr_))\n    where\n      castFunPtrVersion :: FunPtr (Object -> Ptr CChar -> Ptr () -> Ptr () -> IO ()) -> FunPtr ReportVersionMismatchFunc\n      castFunPtrVersion = castFunPtr\n  poke _ _ = error \"Poking GdNativeInitOptions is unsupported\"\n\n{#pointer *godot_gdnative_init_options as GdnativeInitOptionsPtr -> GdnativeInitOptions#}\n\ndata GdnativeTerminateOptions = GdnativeTerminateOptions\n  { gdnativeTerminateOptionsInEditor :: Bool\n  } deriving (Show, Eq, Ord)\n\ninstance Storable GdnativeTerminateOptions where\n  sizeOf _ = {#sizeof godot_gdnative_terminate_options#}\n  alignment _ = {#alignof godot_gdnative_terminate_options#}\n  peek ptr = GdnativeTerminateOptions\n             <$> {#get godot_gdnative_terminate_options->in_editor#} ptr\n  poke ptr a = {#set godot_gdnative_terminate_options->in_editor#} ptr (gdnativeTerminateOptionsInEditor a)\n\n{#pointer *godot_gdnative_terminate_options as GdnativeTerminateOptionsPtr -> GdnativeTerminateOptions#}\n\n\n-- ok so:\n-- on both SysV x64 and Win64, structs larger than 64bits are passed by pointer\n-- i.e. the following two are equivalent:\n{-\ngodot_variant test() {\n    godot_variant var;\n    godot_variant_new_nil(&var);\n    return var;\n}\n\ngodot_variant* test2(godot_variant* ret) {\n    godot_variant_new_nil(ret);\n    return ret;\n}\n-}\n-- we're abusing this. remember to return the godotvariant!!\ntype NativeCallCb = FunPtr (Ptr GodotVariant -> Ptr () -> Array -> IO (Ptr GodotVariant))\n-- funptrs\ntype ClassConstructor = FunPtr (IO Object)\n\n-- stuff that's not opaque (i.e. needs to be Storable'd) but i don't want to deal w/ rn\n\n-- pluginscript\n-- TODO: we don't support pluginscript right now\ndata PluginscriptLanguageDesc\ninstance Storable PluginscriptLanguageDesc where\n  sizeOf _ = {#sizeof godot_pluginscript_language_desc#}\n  alignment _ = {#alignof godot_pluginscript_language_desc#}\n  peek = error \"PluginscriptLanguageDesc peek not implemented\"\n  poke = error \"PluginscriptLanguageDesc poke not implemented\"\n\n{#pointer *godot_pluginscript_language_desc as PluginscriptLanguageDescPtr -> PluginscriptLanguageDesc#}\n\n-- nativescript\n{#enum godot_property_hint as PropertyHint {underscoreToCase}\n  deriving (Show, Eq, Ord, Bounded) #}\n\n{#enum godot_method_rpc_mode as MethodRpcMode {underscoreToCase}\n  deriving (Show, Eq, Ord, Bounded) #}\n\nnewtype PropertyUsageFlags = PropertyUsageFlags { unPropertyUsageFlags :: CInt }\n  deriving newtype (Show, Eq, Ord, Bits, Storable)\n\npattern PropertyUsageStorage :: PropertyUsageFlags\npattern PropertyUsageStorage = PropertyUsageFlags 1\n\npattern PropertyUsageEditor :: PropertyUsageFlags\npattern PropertyUsageEditor = PropertyUsageFlags 2\n\npattern PropertyUsageNetwork :: PropertyUsageFlags\npattern PropertyUsageNetwork = PropertyUsageFlags 4\n\npattern PropertyUsageEditorHelper :: PropertyUsageFlags\npattern PropertyUsageEditorHelper = PropertyUsageFlags 8\n\npattern PropertyUsageCheckable :: PropertyUsageFlags\npattern PropertyUsageCheckable = PropertyUsageFlags 16\n\npattern PropertyUsageChecked :: PropertyUsageFlags\npattern PropertyUsageChecked = PropertyUsageFlags 32\n\npattern PropertyUsageInternationalized :: PropertyUsageFlags\npattern PropertyUsageInternationalized = PropertyUsageFlags 64\n\npattern PropertyUsageGroup :: PropertyUsageFlags\npattern PropertyUsageGroup = PropertyUsageFlags 128\n\npattern PropertyUsageCategory :: PropertyUsageFlags\npattern PropertyUsageCategory = PropertyUsageFlags 256\n\npattern PropertyUsageStoreIfNonzero :: PropertyUsageFlags\npattern PropertyUsageStoreIfNonzero = PropertyUsageFlags 512\n\npattern PropertyUsageStoreIfNonone :: PropertyUsageFlags\npattern PropertyUsageStoreIfNonone = PropertyUsageFlags 1024\n\npattern PropertyUsageNoInstanceState :: PropertyUsageFlags\npattern PropertyUsageNoInstanceState = PropertyUsageFlags 2048\n\npattern PropertyUsageRestartIfChanged :: PropertyUsageFlags\npattern PropertyUsageRestartIfChanged = PropertyUsageFlags 4096\n\npattern PropertyUsageScriptVariable :: PropertyUsageFlags\npattern PropertyUsageScriptVariable = PropertyUsageFlags 8192\n\npattern PropertyUsageStoreIfNull :: PropertyUsageFlags\npattern PropertyUsageStoreIfNull = PropertyUsageFlags 16384\n\npattern PropertyUsageAnimateAsTrigger :: PropertyUsageFlags\npattern PropertyUsageAnimateAsTrigger = PropertyUsageFlags 32768\n\npattern PropertyUsageUpdateAllIfModified :: PropertyUsageFlags\npattern PropertyUsageUpdateAllIfModified = PropertyUsageFlags 65536\n\ngodotPropertyUsageDefault :: PropertyUsageFlags\ngodotPropertyUsageDefault = PropertyUsageStorage .|. PropertyUsageEditor .|. PropertyUsageNetwork\n\ngodotPropertyUsageDefaultIntl :: PropertyUsageFlags\ngodotPropertyUsageDefaultIntl = godotPropertyUsageDefault .|. PropertyUsageInternationalized\n\ngodotPropertyUsageNoeditor :: PropertyUsageFlags\ngodotPropertyUsageNoeditor = PropertyUsageStorage .|. PropertyUsageNetwork\n\ntype InstanceCreateFun = Object -> Ptr () -> IO (Ptr ())\ntype InstanceDestroyFun = Object -> Ptr ()  -> Ptr () -> IO ()\ntype InstanceFreeFun = Ptr () -> IO ()\n\nforeign import ccall \"wrapper\" mkInstanceCreateFunPtr :: InstanceCreateFun -> IO (FunPtr InstanceCreateFun)\nforeign import ccall \"wrapper\" mkInstanceDestroyFunPtr :: InstanceDestroyFun -> IO (FunPtr InstanceDestroyFun)\nforeign import ccall \"wrapper\" mkInstanceFreeFunPtr :: InstanceFreeFun -> IO (FunPtr InstanceFreeFun)\n\ndata InstanceCreateFunc = InstanceCreateFunc\n  { godotInstanceCreateFunc :: !(FunPtr InstanceCreateFun)\n  , godotInstanceCreateMethodData :: !(Ptr ())\n  , godotInstanceCreateFreeFunc :: !(FunPtr InstanceFreeFun)\n  } deriving (Show, Eq)\ninstance Storable InstanceCreateFunc where\n  sizeOf _ = {#sizeof godot_instance_create_func#}\n  alignment _ = {#alignof godot_instance_create_func#}\n  peek ptr = InstanceCreateFunc\n             <$> {#get godot_instance_create_func->create_func#} ptr\n             <*> {#get godot_instance_create_func->method_data#} ptr\n             <*> {#get godot_instance_create_func->free_func#} ptr\n  poke ptr InstanceCreateFunc{..} = do\n    {#set godot_instance_create_func->create_func#} ptr godotInstanceCreateFunc\n    {#set godot_instance_create_func->method_data#} ptr godotInstanceCreateMethodData\n    {#set godot_instance_create_func->free_func#} ptr godotInstanceCreateFreeFunc\n\n{#pointer *godot_instance_create_func as InstanceCreateFuncPtr -> InstanceCreateFunc #}\n\ndata InstanceDestroyFunc = InstanceDestroyFunc\n  { godotInstanceDestroyFunc :: !(FunPtr InstanceDestroyFun)\n  , godotInstanceDestroyMethodData :: !(Ptr ())\n  , godotInstanceDestroyFreeFunc :: !(FunPtr InstanceFreeFun)\n  } deriving (Show, Eq)\ninstance Storable InstanceDestroyFunc where\n  sizeOf _ = {#sizeof godot_instance_destroy_func#}\n  alignment _ = {#alignof godot_instance_destroy_func#}\n  peek ptr = InstanceDestroyFunc\n             <$> {#get godot_instance_destroy_func->destroy_func#} ptr\n             <*> {#get godot_instance_destroy_func->method_data#} ptr\n             <*> {#get godot_instance_destroy_func->free_func#} ptr\n  poke ptr InstanceDestroyFunc{..} = do\n    {#set godot_instance_destroy_func->destroy_func#} ptr godotInstanceDestroyFunc\n    {#set godot_instance_destroy_func->method_data#} ptr godotInstanceDestroyMethodData\n    {#set godot_instance_destroy_func->free_func#} ptr godotInstanceDestroyFreeFunc\n\n{#pointer *godot_instance_destroy_func as InstanceDestroyFuncPtr -> InstanceDestroyFunc #}\n\ntype InstanceMethodFun = Ptr GodotVariant -> Object -> Ptr () -> Ptr () -> CInt \n                      -> Ptr (Ptr GodotVariant) -> IO (Ptr GodotVariant)\n\nforeign import ccall \"wrapper\" mkInstanceMethodFunPtr :: InstanceMethodFun -> IO (FunPtr InstanceMethodFun)\n\ndata InstanceMethod = InstanceMethod\n  { godotInstanceMethod :: !(FunPtr InstanceMethodFun)\n  , godotInstanceMethodData :: !(Ptr ())\n  , godotInstanceMethodFreeFunc :: !(FunPtr InstanceFreeFun)\n  } deriving (Show, Eq)\ninstance Storable InstanceMethod where\n    sizeOf _ = {#sizeof godot_instance_method#}\n    alignment _ = {#alignof godot_instance_method#}\n    peek ptr = InstanceMethod\n               <$> (castFunPtr <$> {#get godot_instance_method->method#} ptr)\n               <*> {#get godot_instance_method->method_data#} ptr\n               <*> {#get godot_instance_method->free_func#} ptr\n    poke ptr InstanceMethod{..} = do\n      {#set godot_instance_method->method#} ptr (castFunPtr godotInstanceMethod)\n      {#set godot_instance_method->method_data#} ptr godotInstanceMethodData\n      {#set godot_instance_method->free_func#} ptr godotInstanceMethodFreeFunc\n\n{#pointer *godot_instance_method as InstanceMethodPtr -> InstanceMethod #}\n\nnewtype MethodAttributes = MethodAttributes MethodRpcMode\n  deriving newtype (Show, Eq)\n\ninstance Storable MethodAttributes where\n  sizeOf _ = {#sizeof godot_method_attributes#}\n  alignment _ = {#alignof godot_method_attributes#}\n  peek ptr = (MethodAttributes . toEnum . fromIntegral) <$> {#get godot_method_attributes->rpc_type#} ptr\n  poke ptr (MethodAttributes rpcType) = {#set godot_method_attributes->rpc_type#} ptr (fromIntegral $ fromEnum rpcType)\n\n{#pointer *godot_method_attributes as MethodAttributesPtr -> MethodAttributes #}\n\ntype PropertyGetFun = Ptr GodotVariant -> Object -> Ptr () -> Ptr () -> IO (Ptr GodotVariant)\n\nforeign import ccall \"wrapper\" mkPropertyGetFunPtr :: PropertyGetFun -> IO (FunPtr PropertyGetFun)\n\ndata PropertyGetFunc = PropertyGetFunc\n  { godotPropertyGetFunc :: !(FunPtr PropertyGetFun)\n  , godotPropertyGetMethodData :: !(Ptr ())\n  , godotPropertyGetFreeFunc :: !(FunPtr InstanceFreeFun)\n  } deriving (Show, Eq)\n\ninstance Storable PropertyGetFunc where\n  sizeOf _ = {#sizeof godot_property_get_func#}\n  alignment _ = {#alignof godot_property_get_func#}\n  peek ptr = PropertyGetFunc\n             <$> (castFunPtr <$> {#get godot_property_get_func->get_func#} ptr)\n             <*> {#get godot_property_get_func->method_data#} ptr\n             <*> {#get godot_property_get_func->free_func#} ptr\n  poke ptr PropertyGetFunc{..} = do\n    {#set godot_property_get_func->get_func#} ptr (castFunPtr godotPropertyGetFunc)\n    {#set godot_property_get_func->method_data#} ptr godotPropertyGetMethodData\n    {#set godot_property_get_func->free_func#} ptr godotPropertyGetFreeFunc\n\n{#pointer *godot_property_get_func as PropertyGetFuncPtr -> PropertyGetFunc #}\n\ntype PropertySetFun = Object -> Ptr () -> Ptr () -> Ptr GodotVariant -> IO ()\n\nforeign import ccall \"wrapper\" mkPropertySetFunPtr :: PropertySetFun -> IO (FunPtr PropertySetFun)\n\ndata PropertySetFunc = PropertySetFunc\n  { godotPropertySetFunc :: !(FunPtr PropertySetFun)\n  , godotPropertySetMethodData :: !(Ptr ())\n  , godotPropertySetFreeFunc :: !(FunPtr InstanceFreeFun)\n  } deriving (Show, Eq)\n\ninstance Storable PropertySetFunc where\n    sizeOf _ = {#sizeof godot_property_set_func#}\n    alignment _ = {#alignof godot_property_set_func#}\n    peek ptr = PropertySetFunc\n               <$> {#get godot_property_set_func->set_func#} ptr\n               <*> {#get godot_property_set_func->method_data#} ptr\n               <*> {#get godot_property_set_func->free_func#} ptr\n    poke ptr PropertySetFunc{..} = do\n      {#set godot_property_set_func->set_func#} ptr godotPropertySetFunc\n      {#set godot_property_set_func->method_data#} ptr godotPropertySetMethodData\n      {#set godot_property_set_func->free_func#} ptr godotPropertySetFreeFunc\n\n{#pointer *godot_property_set_func as PropertySetFuncPtr -> PropertySetFunc #}\n\ngetOpaqueFromStruct :: forall a b. OpaqueStorable a => (ForeignPtr a -> a) -> Ptr b -> Int -> IO a\ngetOpaqueFromStruct con structPtr offset = do\n  let start = structPtr `plusPtr` offset\n  let size = opaqueSizeOf @a\n  (fptr :: ForeignPtr a) <- mallocForeignPtrBytes size\n  withForeignPtr fptr $ \\ptr -> copyBytes ptr start size\n  return $ con fptr\n\nsetOpaqueFromStruct :: forall a b. (Coercible a (ForeignPtr a), OpaqueStorable a) => Ptr b -> a -> Int -> IO ()\nsetOpaqueFromStruct structPtr fptr offset = do\n    let start = structPtr `plusPtr` offset\n    let size = opaqueSizeOf @a\n    withForeignPtr (coerce fptr :: ForeignPtr a) $ \\ptr -> copyBytes start ptr size\n\ndata PropertyAttributes = PropertyAttributes\n  { godotPropertyAttributesRsetType :: !MethodRpcMode\n  , godotPropertyAttributesType :: !GodotInt\n  , godotPropertyAttributesHint :: !PropertyHint\n  , godotPropertyAttributesHintString :: !GodotString\n  , godotPropertyAttributesUsage :: !PropertyUsageFlags\n  , godotPropertyAttributesDefaultValue :: !GodotVariant\n  }\ninstance Storable PropertyAttributes where\n  sizeOf _ = {#sizeof godot_property_attributes#}\n  alignment _ = {#alignof godot_property_attributes#}\n  peek ptr = do\n    godotPropertyAttributesRsetType <- (toEnum . fromIntegral) <$> {#get godot_property_attributes->rset_type#} ptr\n    godotPropertyAttributesType <- {#get godot_property_attributes->type#} ptr\n    godotPropertyAttributesHint <- (toEnum . fromIntegral) <$> {#get godot_property_attributes->hint#} ptr \n    godotPropertyAttributesHintString <- getOpaqueFromStruct GodotString ptr {#offsetof godot_property_attributes->hint_string#}\n    godotPropertyAttributesUsage <- PropertyUsageFlags <$> {#get godot_property_attributes->usage#} ptr\n    godotPropertyAttributesDefaultValue <- getOpaqueFromStruct GodotVariant ptr {#offsetof godot_property_attributes->default_value#}\n    return PropertyAttributes{..}\n  poke ptr PropertyAttributes{..} = do\n    {#set godot_property_attributes->rset_type#} ptr (fromIntegral . fromEnum $ godotPropertyAttributesRsetType)\n    {#set godot_property_attributes->type#} ptr godotPropertyAttributesType\n    {#set godot_property_attributes->hint#} ptr (fromIntegral . fromEnum $ godotPropertyAttributesHint)\n    setOpaqueFromStruct ptr godotPropertyAttributesHintString {#offsetof godot_property_attributes->hint_string#}\n    {#set godot_property_attributes->usage#} ptr (unPropertyUsageFlags godotPropertyAttributesUsage)\n    setOpaqueFromStruct ptr godotPropertyAttributesDefaultValue {#offsetof godot_property_attributes->default_value#}\n\n{#pointer *godot_property_attributes as PropertyAttributesPtr -> PropertyAttributes #}\n\n\ndata SignalArgument = SignalArgument\n  { godotSignalArgumentName :: !GodotString\n  , godotSignalArgumentType :: !GodotInt\n  , godotSignalArgumentHint :: !PropertyHint\n  , godotSignalArgumentHintString :: !GodotString\n  , godotSignalArgumentUsage :: !PropertyUsageFlags\n  , godotSignalArgumentDefaultValue :: !GodotVariant\n  }\ninstance Storable SignalArgument where\n  sizeOf _ = {#sizeof godot_signal_argument#}\n  alignment _ = {#alignof godot_signal_argument#}\n  peek ptr = do\n    godotSignalArgumentName <- getOpaqueFromStruct GodotString ptr {#offsetof godot_signal_argument->name#} \n    godotSignalArgumentType <- {#get godot_signal_argument->type#} ptr\n    godotSignalArgumentHint <- (toEnum . fromIntegral) <$> {#get godot_signal_argument->hint#} ptr \n    godotSignalArgumentHintString <- getOpaqueFromStruct GodotString ptr {#offsetof godot_signal_argument->hint_string#}\n    godotSignalArgumentUsage <- PropertyUsageFlags <$> {#get godot_signal_argument->usage#} ptr\n    godotSignalArgumentDefaultValue <- getOpaqueFromStruct GodotVariant ptr {#offsetof godot_signal_argument->default_value#}\n    return SignalArgument{..}\n  poke ptr SignalArgument{..} = do\n    setOpaqueFromStruct ptr godotSignalArgumentName {#offsetof godot_signal_argument->name#}\n    {#set godot_signal_argument->type#} ptr godotSignalArgumentType\n    {#set godot_signal_argument->hint#} ptr (fromIntegral . fromEnum $ godotSignalArgumentHint)\n    setOpaqueFromStruct ptr godotSignalArgumentHintString {#offsetof godot_signal_argument->hint_string#}\n    {#set godot_signal_argument->usage#} ptr (unPropertyUsageFlags godotSignalArgumentUsage)\n    setOpaqueFromStruct ptr godotSignalArgumentDefaultValue {#offsetof godot_signal_argument->default_value#}\n{#pointer *godot_signal_argument as SignalArgumentPtr -> SignalArgument#}\n\ndata Signal = Signal\n  { godotSignalName :: !GodotString\n  , godotSignalNumArgs :: !CInt\n  , godotSignalArgs :: !(Ptr SignalArgument)\n  , godotSignalNumDefaultArgs :: !CInt\n  , godotSignalDefaultArgs :: !(Ptr GodotVariant)\n  }\ninstance Storable Signal where\n  sizeOf _ = {#sizeof godot_signal#}\n  alignment _ = {#alignof godot_signal#}\n  peek ptr = do\n    godotSignalName <- getOpaqueFromStruct GodotString ptr {#offsetof godot_signal->name#} \n    godotSignalNumArgs <- {#get godot_signal->num_args#} ptr\n    godotSignalArgs <- {#get godot_signal->args#} ptr\n    godotSignalNumDefaultArgs <- {#get godot_signal->num_default_args#} ptr\n    godotSignalDefaultArgs <- {#get godot_signal->default_args#} ptr\n    return Signal{..}\n  poke ptr Signal{..} = do\n    setOpaqueFromStruct ptr godotSignalName {#offsetof godot_signal->name#}\n    {#set godot_signal->num_args#} ptr godotSignalNumArgs\n    {#set godot_signal->args#} ptr godotSignalArgs\n    {#set godot_signal->num_default_args#} ptr godotSignalNumDefaultArgs\n    {#set godot_signal->default_args#} ptr godotSignalDefaultArgs\n    \n{#pointer *godot_signal as SignalPtr -> Signal#}\n\n\n\ndata InstanceBindingFunctions\ninstance Storable InstanceBindingFunctions where\n  sizeOf _ = {#sizeof godot_instance_binding_functions#}\n  alignment _ = {#sizeof godot_instance_binding_functions#}\n  peek = error \"InstanceBindingFunctions peek not implemented\"\n  poke = error \"InstanceBindingFunctions poke not implemented\"\n{#pointer *godot_instance_binding_functions as InstanceBindingFunctionsPtr -> InstanceBindingFunctions #}\n\n\ndata MethodArg\ninstance Storable MethodArg where\n  sizeOf _ = {#sizeof godot_method_arg#}\n  alignment _ = {#sizeof godot_method_arg#}\n  peek = error \"MethodArg peek not implemented\"\n  poke = error \"MethodArg poke not implemented\"\n{#pointer *godot_method_arg as MethodArgPtr -> MethodArg #}\n\n\n--net\n\ndata NetStreamPeer\ninstance Storable NetStreamPeer where\n  sizeOf _ = {#sizeof godot_net_stream_peer#}\n  alignment _ = {#sizeof godot_net_stream_peer#}\n  peek = error \"NetStreamPeer peek not implemented\"\n  poke = error \"NetStreamPeer poke not implemented\"\n{#pointer *godot_net_stream_peer as NetStreamPeerPtr -> NetStreamPeer #}\n\ndata NetPacketPeer\ninstance Storable NetPacketPeer where\n  sizeOf _ = {#sizeof godot_net_packet_peer#}\n  alignment _ = {#sizeof godot_net_packet_peer#}\n  peek = error \"NetPacketPeer peek not implemented\"\n  poke = error \"NetPacketPeer poke not implemented\"\n{#pointer *godot_net_packet_peer as NetPacketPeerPtr -> NetPacketPeer #}\n\ndata NetMultiplayerPeer\ninstance Storable NetMultiplayerPeer where\n  sizeOf _ = {#sizeof godot_net_multiplayer_peer#}\n  alignment _ = {#sizeof godot_net_multiplayer_peer#}\n  peek = error \"NetMultiplayerPeer peek not implemented\"\n  poke = error \"NetMultiplayerPeer poke not implemented\"\n{#pointer *godot_net_multiplayer_peer as NetMultiplayerPeerPtr -> NetMultiplayerPeer #}\n\n-- net webrtc\n\ndata NetWebrtcLibrary\ninstance Storable NetWebrtcLibrary where\n  sizeOf _ = {#sizeof godot_net_webrtc_library#}\n  alignment _ = {#sizeof godot_net_webrtc_library#}\n  peek = error \"NetWebrtcLibrary peek not implemented\"\n  poke = error \"NetWebrtcLibrary poke not implemented\"\n{#pointer *godot_net_webrtc_library as NetWebrtcLibraryPtr -> NetWebrtcLibrary #}\n\ndata NetWebrtcPeerConnection\ninstance Storable NetWebrtcPeerConnection where\n  sizeOf _ = {#sizeof godot_net_webrtc_peer_connection#}\n  alignment _ = {#sizeof godot_net_webrtc_peer_connection#}\n  peek = error \"NetWebrtcPeerConnection peek not implemented\"\n  poke = error \"NetWebrtcPeerConnection poke not implemented\"\n{#pointer *godot_net_webrtc_peer_connection as NetWebrtcPeerConnectionPtr -> NetWebrtcPeerConnection #}\n\ndata NetWebrtcDataChannel\ninstance Storable NetWebrtcDataChannel where\n  sizeOf _ = {#sizeof godot_net_webrtc_data_channel#}\n  alignment _ = {#sizeof godot_net_webrtc_data_channel#}\n  peek = error \"NetWebrtcDataChannel peek not implemented\"\n  poke = error \"NetWebrtcDataChannel poke not implemented\"\n{#pointer *godot_net_webrtc_data_channel as NetWebrtcDataChannelPtr -> NetWebrtcDataChannel #}\n\n--videodecoder\n\ndata VideodecoderInterfaceGdnative\ninstance Storable VideodecoderInterfaceGdnative where\n  sizeOf _ = {#sizeof godot_videodecoder_interface_gdnative#}\n  alignment _ = {#sizeof godot_videodecoder_interface_gdnative#}\n  peek = error \"VideodecoderInterfaceGdnative peek not implemented\"\n  poke = error \"VideodecoderInterfaceGdnative poke not implemented\"\n{#pointer *godot_videodecoder_interface_gdnative as VideodecoderInterfaceGdnativePtr -> VideodecoderInterfaceGdnative #}\n\n\n--arvr\n\ndata ArvrInterfaceGdnative\ninstance Storable ArvrInterfaceGdnative where\n  sizeOf _ = {#sizeof godot_arvr_interface_gdnative#}\n  alignment _ = {#sizeof godot_arvr_interface_gdnative#}\n  peek = error \"ArvrInterfaceGdnative peek not implemented\"\n  poke = error \"ArvrInterfaceGdnative poke not implemented\"\n{#pointer *godot_arvr_interface_gdnative as ArvrInterfaceGdnativePtr -> ArvrInterfaceGdnative #}\n\n\n\n\ngdnativeCoreApiStructRef :: IORef GdnativeCoreApiStruct\ngdnativeCoreApiStructRef = unsafePerformIO $ newIORef $ \n  error \"attempted to get gdnativeCoreApiStructRef too early\"\n{-# NOINLINE gdnativeCoreApiStructRef #-}\n\ngdnativeCore11ApiStructRef :: IORef GdnativeCore11ApiStruct\ngdnativeCore11ApiStructRef = unsafePerformIO $ newIORef $ \n  error \"attempted to get gdnativeCore11ApiStructRef too early\"\n{-# NOINLINE gdnativeCore11ApiStructRef #-}\n\ngdnativeLibraryRef :: IORef Object\ngdnativeLibraryRef = unsafePerformIO $ newIORef $ \n  error \"attempted to get gdnativeLibraryRef too early\"\n{-# NOINLINE gdnativeLibraryRef #-}\n\ngdnativeCore12ApiStructRef :: IORef GdnativeCore12ApiStruct\ngdnativeCore12ApiStructRef = unsafePerformIO $ newIORef $ \n  error \"attempted to get gdnativeCore12ApiStructRef too early\"\n{-# NOINLINE gdnativeCore12ApiStructRef #-}\n\ngdnativeExtNativescriptApiStructRef :: IORef GdnativeExtNativescriptApiStruct\ngdnativeExtNativescriptApiStructRef = unsafePerformIO $ newIORef $ \n  error \"attempted to get gdnativeExtNativescriptApiStructRef too early\"\n{-# NOINLINE gdnativeExtNativescriptApiStructRef #-}\n\ngdnativeExtNativescript11ApiStructRef :: IORef GdnativeExtNativescript11ApiStruct\ngdnativeExtNativescript11ApiStructRef = unsafePerformIO $ newIORef $ \n  error \"attempted to get gdnativeExtNativescript11ApiStructRef too early\"\n{-# NOINLINE gdnativeExtNativescript11ApiStructRef #-}\n\ngdnativeExtPluginscriptApiStructRef :: IORef GdnativeExtPluginscriptApiStruct\ngdnativeExtPluginscriptApiStructRef = unsafePerformIO $ newIORef $ \n  error \"attempted to get gdnativeExtPluginscriptApiStructRef too early\"\n{-# NOINLINE gdnativeExtPluginscriptApiStructRef #-}\n\ngdnativeExtArvrApiStructRef :: IORef GdnativeExtArvrApiStruct\ngdnativeExtArvrApiStructRef = unsafePerformIO $ newIORef $ \n  error \"attempted to get gdnativeExtArvrApiStructRef too early\"\n{-# NOINLINE gdnativeExtArvrApiStructRef #-}\n\ngdnativeExtVideodecoderApiStructRef :: IORef GdnativeExtVideodecoderApiStruct\ngdnativeExtVideodecoderApiStructRef = unsafePerformIO $ newIORef $\n  error \"attempted to get gdnativeExtVideodecoderApiStructRef too early\"\n{-# NOINLINE gdnativeExtVideodecoderApiStructRef #-}\n\ngdnativeExtNetApiStructRef :: IORef GdnativeExtNetApiStruct\ngdnativeExtNetApiStructRef = unsafePerformIO $ newIORef $\n  error \"attempted to get gdnativeExtNetApiStructRef too early\"\n{-# NOINLINE gdnativeExtNetApiStructRef #-}\n\ngdnativeExtNet32ApiStructRef :: IORef GdnativeExtNet32ApiStruct\ngdnativeExtNet32ApiStructRef = unsafePerformIO $ newIORef $\n  error \"attempted to get gdnativeExtNet32ApiStructRef too early\"\n{-# NOINLINE gdnativeExtNet32ApiStructRef #-}\n\ninitApiStructs :: GdnativeInitOptions -> IO ()\ninitApiStructs opts = do\n  let coreApi = gdnativeInitOptionsApiStruct opts\n  writeIORef gdnativeCoreApiStructRef coreApi\n  writeIORef gdnativeLibraryRef $ gdnativeInitOptionsGdNativeLibrary opts\n\n  findExt GdnativeCore11ApiStruct gdnativeCore11ApiStructRef (coerce coreApi) 1 1\n  findExt GdnativeCore12ApiStruct gdnativeCore12ApiStructRef (coerce coreApi) 1 2\n\n  numExt <- {#get godot_gdnative_core_api_struct->num_extensions #} coreApi\n  extsPtr <- {#get godot_gdnative_core_api_struct->extensions #} coreApi\n  exts <- peekArray (fromIntegral numExt) (castPtr extsPtr :: Ptr GdnativeApiStruct)\n  forM_ exts $ \\ext -> do\n    ty <- {#get godot_gdnative_api_struct->type #} ext\n    -- HACK\n    case ty of\n      1 -> do -- nativescript\n        writeIORef gdnativeExtNativescriptApiStructRef (coerce ext)\n        findExt GdnativeExtNativescript11ApiStruct gdnativeExtNativescript11ApiStructRef (coerce ext) 1 1\n      2 -> do -- pluginscript\n        writeIORef gdnativeExtPluginscriptApiStructRef (coerce ext)\n      3 -> return () -- android\n      4 -> do -- arvr\n        writeIORef gdnativeExtArvrApiStructRef (coerce ext)\n      5 -> do -- videodecoder\n        writeIORef gdnativeExtVideodecoderApiStructRef (coerce ext)\n      6 -> do -- net\n        writeIORef gdnativeExtNetApiStructRef (coerce ext)\n        findExt GdnativeExtNet32ApiStruct gdnativeExtNet32ApiStructRef (coerce ext) 3 2\n      _ -> error $ \"Unknown API struct type \" ++ show ty\n  where\n    findExt con ref ext reqMajor reqMinor = do\n      next <- {#get godot_gdnative_api_struct->next #} ext\n      when (next /= coerce nullPtr) $ do\n        major <- {#get godot_gdnative_api_struct->version.major #} next\n        minor <- {#get godot_gdnative_api_struct->version.minor #} next\n        if major == reqMajor && minor == reqMinor then writeIORef ref (con $ coerce next)\n        else findExt con ref next reqMajor reqMinor\n\n\n"
  },
  {
    "path": "src/Godot/Gdnative/Internal/TH.hs",
    "content": "{-#LANGUAGE TemplateHaskell#-}\nmodule Godot.Gdnative.Internal.TH where\n\nimport Data.Maybe\nimport Godot.Gdnative.Internal.Gdnative\nimport Language.Haskell.TH\nimport Language.Haskell.TH.Syntax\nimport Foreign\nimport qualified Data.Text as T\n\ngenerateAsVariantInstances :: Q [Dec]\ngenerateAsVariantInstances = do\n  (TyConI (DataD _ _ bndrs _ cons _)) <- lookupTypeName \"Variant\" >>= \\(Just x) -> reify x\n  let tys = mapMaybe getCon cons\n  mapM mkInstance tys\n\n  where\n    getCon (NormalC name [(_, AppT (AppT _ _) ty)]) = Just (name, ty)\n    getCon (NormalC name [(_, ty)]) = Just (name, ty)\n    getCon _ = Nothing\n    mkInstance (name, ty)\n      = instanceD (cxt []) (appT (conT $ mkName \"AsVariant\") (return ty))\n          [ valD (varP $ mkName \"toVariant\") (normalB $ conE $ mkName $ nameBase name) []\n          , valD (varP $ mkName \"fromVariant\") (normalB\n              [| \\var -> case var of\n                   $(conP (mkName $ nameBase name) [varP $ mkName \"x\"]) -> Just x\n                   _ -> Nothing |]) []\n          , valD (varP $ mkName \"variantType\") (normalB\n              [| \\_ -> $(conE $ mkName $ T.unpack $ T.replace \"Variant\" \"VariantType\" $ T.pack $ nameBase name) |]) [] ]\n"
  },
  {
    "path": "src/Godot/Gdnative/Internal/Types.hs",
    "content": "{-# LANGUAGE BangPatterns, FunctionalDependencies, TypeFamilies, TypeInType, LambdaCase, TypeApplications, AllowAmbiguousTypes #-}\nmodule Godot.Gdnative.Internal.Types where\n\nimport Control.Exception\n\nimport qualified Data.ByteString as B\nimport qualified Data.ByteString.Unsafe as B\n\nimport Data.Text (Text)\nimport qualified Data.Text.Encoding as T\nimport Data.Colour\nimport Data.Colour.SRGB\nimport Data.Function ((&))\n\nimport Data.Typeable\nimport Data.Coerce\n\nimport Foreign\nimport Foreign.C\n\nimport Linear\nimport qualified Data.Vector as V\nimport qualified Data.Map as M\n\nimport Godot.Gdnative.Internal.Api as I hiding (Rect2,Basis,Transform,Transform2d,Color) \nimport Godot.Gdnative.Internal.Gdnative as I hiding (Rect2,Basis,Transform,Transform2d,Color) \nimport qualified Godot.Gdnative.Internal.Api as G\nimport qualified Godot.Gdnative.Internal.Gdnative as G\nimport Godot.Gdnative.Internal.TH\n\nimport System.IO.Unsafe\n\ndata LibType = GodotTy | HaskellTy\n\ntype family TypeOf (x :: LibType) a\n-- I'm torn about this instance. Need TH if not using this\ntype instance TypeOf 'GodotTy a = a\n\n-- |GodotFFI is a relation between low-level and high-level\n-- |Godot types, and conversions between them.\nclass GodotFFI low high | low -> high where\n  fromLowLevel :: low -> IO high\n  toLowLevel :: high -> IO low\n\ntype instance TypeOf 'HaskellTy G.Array = V.Vector GodotVariant\ninstance GodotFFI G.Array (V.Vector GodotVariant) where\n  fromLowLevel arr = do\n    len <- fromIntegral <$> godot_array_size arr\n    V.generateM len (godot_array_get arr . fromIntegral)\n  toLowLevel vec = do\n    arr <- godot_array_new\n    V.mapM_ (godot_array_append arr) vec\n    pure arr\n\ntype instance TypeOf 'HaskellTy GodotString = Text\ninstance GodotFFI GodotString Text where\n  fromLowLevel str = godot_string_utf8 str >>= \\cstr -> T.decodeUtf8 <$> fromCharString cstr\n    where\n      fromCharString cstr = do\n        len <- godot_char_string_length cstr\n        sptr <- godot_char_string_get_data cstr\n        B.packCStringLen (sptr, fromIntegral len)\n  toLowLevel txt = B.unsafeUseAsCStringLen bstr $ \\(ptr, len) ->\n    godot_string_chars_to_utf8_with_len ptr (fromIntegral len)\n    where\n      bstr = T.encodeUtf8 txt\n\ntype instance TypeOf 'HaskellTy Vector2 = V2 Float\ninstance GodotFFI Vector2 (V2 Float) where\n  fromLowLevel v = V2 \n                   <$> (realToFrac <$> godot_vector2_get_x v)\n                   <*> (realToFrac <$> godot_vector2_get_y v)\n  toLowLevel (V2 x y) = godot_vector2_new (realToFrac x) (realToFrac y)\n\n\ntype instance TypeOf 'HaskellTy Vector3 = V3 Float\ninstance GodotFFI Vector3 (V3 Float) where\n  fromLowLevel v = V3 \n                   <$> (realToFrac <$> godot_vector3_get_axis v Vector3AxisX)\n                   <*> (realToFrac <$> godot_vector3_get_axis v Vector3AxisY)\n                   <*> (realToFrac <$> godot_vector3_get_axis v Vector3AxisZ)\n  toLowLevel (V3 x y z) = godot_vector3_new (realToFrac x) (realToFrac y) (realToFrac z)\n\ntype instance TypeOf 'HaskellTy Quat = Quaternion Float\ninstance GodotFFI Quat (Quaternion Float) where\n  fromLowLevel q = Quaternion\n                   <$> (realToFrac <$> godot_quat_get_w q)\n                   <*> (V3\n                        <$> (realToFrac <$> godot_quat_get_x q)\n                        <*> (realToFrac <$> godot_quat_get_y q)\n                        <*> (realToFrac <$> godot_quat_get_z q))\n  toLowLevel (Quaternion w (V3 x y z)) = godot_quat_new (realToFrac x)\n                                                        (realToFrac y)\n                                                        (realToFrac z)\n                                                        (realToFrac w)\n\ntype Rect2 = M22 Float\ntype instance TypeOf 'HaskellTy G.Rect2 = Rect2\ninstance GodotFFI G.Rect2 Rect2 where\n  fromLowLevel r = V2\n                   <$> (fromLowLevel =<< godot_rect2_get_position r)\n                   <*> (fromLowLevel =<< godot_rect2_get_size r)\n  toLowLevel (V2 pos size) = do pos' <- toLowLevel pos\n                                size' <- toLowLevel size\n                                godot_rect2_new_with_position_and_size pos' size'\n\ntype AABB = M23 Float\ntype instance TypeOf 'HaskellTy Aabb = AABB\ninstance GodotFFI Aabb AABB where\n  fromLowLevel aabb = V2\n                      <$> (fromLowLevel =<< godot_aabb_get_position aabb)\n                      <*> (fromLowLevel =<< godot_aabb_get_size aabb)\n  toLowLevel (V2 pos size) = do pos'  <- toLowLevel pos\n                                size' <- toLowLevel size\n                                godot_aabb_new pos' size'\n\n-- Axes X, Y and Z are represented by the int constants 0, 1 and 2 respectively (at least for Vector3):\n-- https://godot.readthedocs.io/en/latest/classes/class_vector3.html?highlight=axis#numeric-constants\ntype Basis = M33 Float\ntype instance TypeOf 'HaskellTy G.Basis = Basis\ninstance GodotFFI G.Basis Basis where\n  fromLowLevel b = V3\n                   <$> (llAxis 0)\n                   <*> (llAxis 1)\n                   <*> (llAxis 2)\n                 where llAxis axis = fromLowLevel =<< godot_basis_get_axis b axis\n  toLowLevel (V3 x y z) = do x' <- toLowLevel x\n                             y' <- toLowLevel y\n                             z' <- toLowLevel z\n                             godot_basis_new_with_rows x' y' z'\n\ndata Transform = TF { _tfBasis :: Basis, _tfPosition :: V3 Float }\ntype instance TypeOf 'HaskellTy G.Transform = Transform\ninstance GodotFFI G.Transform Transform where\n  fromLowLevel tf = TF\n                    <$> (fromLowLevel =<< godot_transform_get_basis tf)\n                    <*> (fromLowLevel =<< godot_transform_get_origin tf)\n  toLowLevel (TF basis orig) = do basis' <- toLowLevel basis\n                                  orig'  <- toLowLevel orig\n                                  godot_transform_new basis' orig'\n\ntype Basis2d = M22 Float\ndata Transform2d = TF2d { _tf2dX :: V2 Float, _tf2dY :: V2 Float, _tf2dOrigin :: V2 Float }\ntype instance TypeOf 'HaskellTy G.Transform2d = Transform2d\ninstance GodotFFI G.Transform2d Transform2d where\n  fromLowLevel tf = do\n    x <- godot_transform2d_xform_vector2 tf =<< toLowLevel (V2 1 0)\n    y <- godot_transform2d_xform_vector2 tf =<< toLowLevel (V2 0 1)\n    TF2d <$> fromLowLevel x <*> fromLowLevel y <*> (fromLowLevel =<< godot_transform2d_get_origin tf)\n  toLowLevel (TF2d x y o) = do x' <- toLowLevel x\n                               y'  <- toLowLevel y\n                               o'  <- toLowLevel o\n                               godot_transform2d_new_axis_origin x' o' y'\n\n-- This should perhaps be better modeled - FilePath?\ntype instance TypeOf 'HaskellTy G.NodePath = Text\ninstance GodotFFI G.NodePath Text where\n  fromLowLevel np = fromLowLevel =<< godot_node_path_get_name np 0\n  toLowLevel np = godot_node_path_new =<< toLowLevel np\n\ntype instance TypeOf 'HaskellTy G.Color = AlphaColour Double\ninstance GodotFFI G.Color (AlphaColour Double) where\n  fromLowLevel c = withOpacity\n                   <$> (sRGB\n                        <$> (realToFrac <$> godot_color_get_r c)\n                        <*> (realToFrac <$> godot_color_get_g c)\n                        <*> (realToFrac <$> godot_color_get_b c))\n                   <*> (realToFrac <$> godot_color_get_a c)\n  toLowLevel rgba = toSRGB (rgba `over` black)\n                    & \\(RGB r g b) ->\n                        godot_color_new_rgba\n                          (realToFrac r)\n                          (realToFrac g)\n                          (realToFrac b)\n                          (realToFrac $ alphaChannel rgba)\n\ntype instance TypeOf 'HaskellTy G.PoolStringArray = V.Vector Text\ninstance GodotFFI G.PoolStringArray (V.Vector Text) where\n  fromLowLevel a = do\n    sz <- godot_pool_string_array_size a\n    V.generateM (fromIntegral sz) (\\x -> fromLowLevel =<< godot_pool_string_array_get a (fromIntegral x))\n  toLowLevel v = do\n    p <- godot_pool_string_array_new\n    V.mapM_ (\\e -> do\n               s <- toLowLevel e\n               godot_pool_string_array_append p s) v\n    pure p\n\ntype instance TypeOf 'HaskellTy G.PoolVector2Array = V.Vector (V2 Float)\ninstance GodotFFI G.PoolVector2Array (V.Vector (V2 Float)) where\n  fromLowLevel a = do\n    sz <- godot_pool_vector2_array_size a\n    V.generateM (fromIntegral sz) (\\x -> fromLowLevel =<< godot_pool_vector2_array_get a (fromIntegral x))\n  toLowLevel v = do\n    p <- godot_pool_vector2_array_new\n    V.mapM_ (\\e -> do\n               s <- toLowLevel e\n               godot_pool_vector2_array_append p s) v\n    pure p\n\ntype instance TypeOf 'HaskellTy G.PoolVector3Array = V.Vector (V3 Float)\ninstance GodotFFI G.PoolVector3Array (V.Vector (V3 Float)) where\n  fromLowLevel a = do\n    sz <- godot_pool_vector3_array_size a\n    V.generateM (fromIntegral sz) (\\x -> fromLowLevel =<< godot_pool_vector3_array_get a (fromIntegral x))\n  toLowLevel v = do\n    p <- godot_pool_vector3_array_new\n    V.mapM_ (\\e -> do\n               s <- toLowLevel e\n               godot_pool_vector3_array_append p s) v\n    pure p\n\ntype instance TypeOf 'HaskellTy G.PoolIntArray = V.Vector Int\ninstance GodotFFI G.PoolIntArray (V.Vector Int) where\n  fromLowLevel a = do\n    sz <- godot_pool_int_array_size a\n    V.generateM (fromIntegral sz) (\\x -> fromIntegral <$> godot_pool_int_array_get a (fromIntegral x))\n  toLowLevel v = do\n    p <- godot_pool_int_array_new\n    V.mapM_ (godot_pool_int_array_append p . fromIntegral) v\n    pure p\n\ntype instance TypeOf 'HaskellTy G.PoolRealArray = V.Vector Float\ninstance GodotFFI G.PoolRealArray (V.Vector Float) where\n  fromLowLevel a = do\n    sz <- godot_pool_real_array_size a\n    V.generateM (fromIntegral sz) (\\x -> coerce <$> godot_pool_real_array_get a (fromIntegral x))\n  toLowLevel v = do\n    p <- godot_pool_real_array_new\n    V.mapM_ (godot_pool_real_array_append p . coerce) v\n    pure p\n\ntype instance TypeOf 'HaskellTy G.PoolColorArray = V.Vector (AlphaColour Double)\ninstance GodotFFI G.PoolColorArray (V.Vector (AlphaColour Double)) where\n  fromLowLevel a = do\n    sz <- godot_pool_color_array_size a\n    V.generateM (fromIntegral sz) (\\x -> fromLowLevel =<< godot_pool_color_array_get a (fromIntegral x))\n  toLowLevel v = do\n    p <- godot_pool_color_array_new\n    V.mapM_ (\\e -> do\n               s <- toLowLevel e\n               godot_pool_color_array_append p s) v\n    pure p\n\ntype instance TypeOf 'HaskellTy G.Dictionary = V.Vector (GodotVariant, GodotVariant)\ninstance GodotFFI G.Dictionary (V.Vector (GodotVariant, GodotVariant)) where\n  fromLowLevel a = do\n    k <- fromLowLevel =<< godot_dictionary_keys a\n    v <- fromLowLevel =<< godot_dictionary_values a\n    pure $ V.zipWith (,) k v\n  toLowLevel v = do\n    d <- godot_dictionary_new\n    V.mapM_ (\\(k,v) -> godot_dictionary_set d k v) v\n    pure d\n\n-- Variants\n\ndata Variant (ty :: LibType)\n  = VariantNil\n  | VariantBool !Bool\n  | VariantInt !Int\n  | VariantReal !Float\n  | VariantString !(TypeOf ty GodotString)\n  | VariantVector2 !(TypeOf ty G.Vector2)\n  | VariantRect2 !(TypeOf ty G.Rect2)\n  | VariantVector3 !(TypeOf ty G.Vector3)\n  | VariantTransform2d !(TypeOf ty G.Transform2d)\n  | VariantPlane !(TypeOf ty G.Plane)\n  | VariantQuat !(TypeOf ty G.Quat)\n  | VariantAabb !(TypeOf ty Aabb)\n  | VariantBasis !(TypeOf ty G.Basis)\n  | VariantTransform !(TypeOf ty G.Transform)\n  | VariantColor !(TypeOf ty G.Color)\n  | VariantNodePath !(TypeOf ty G.NodePath)\n  | VariantRid !(TypeOf ty G.Rid)\n  | VariantObject !(TypeOf ty G.Object)\n  | VariantDictionary !(TypeOf ty G.Dictionary)\n  | VariantArray !(TypeOf ty G.Array)\n  | VariantPoolByteArray !(TypeOf ty G.PoolByteArray)\n  | VariantPoolIntArray !(TypeOf ty G.PoolIntArray)\n  | VariantPoolRealArray !(TypeOf ty G.PoolRealArray)\n  | VariantPoolStringArray !(TypeOf ty G.PoolStringArray)\n  | VariantPoolVector2Array !(TypeOf ty G.PoolVector2Array)\n  | VariantPoolVector3Array !(TypeOf ty G.PoolVector3Array)\n  | VariantPoolColorArray !(TypeOf ty G.PoolColorArray)\n\ninstance GodotFFI GodotVariant (Variant 'GodotTy) where\n  fromLowLevel var = godot_variant_get_type var >>= \\case\n      VariantTypeNil -> return VariantNil\n      VariantTypeBool -> VariantBool . (/= 0) <$> godot_variant_as_bool var\n      VariantTypeInt -> VariantInt . fromIntegral <$> godot_variant_as_int var\n      VariantTypeReal -> VariantReal . realToFrac <$> godot_variant_as_real var\n      VariantTypeString -> VariantString <$> godot_variant_as_string var\n      VariantTypeVector2 -> VariantVector2 <$> godot_variant_as_vector2 var\n      VariantTypeRect2 -> VariantRect2 <$> godot_variant_as_rect2 var\n      VariantTypeVector3 -> VariantVector3 <$> godot_variant_as_vector3 var\n      VariantTypeTransform2d -> VariantTransform2d <$> godot_variant_as_transform2d var\n      VariantTypePlane -> VariantPlane <$> godot_variant_as_plane var\n      VariantTypeQuat -> VariantQuat <$> godot_variant_as_quat var\n      VariantTypeAabb -> VariantAabb <$> godot_variant_as_aabb var\n      VariantTypeBasis -> VariantBasis <$> godot_variant_as_basis var\n      VariantTypeTransform -> VariantTransform <$> godot_variant_as_transform var\n      VariantTypeColor -> VariantColor <$> godot_variant_as_color var\n      VariantTypeNodePath -> VariantNodePath <$> godot_variant_as_node_path var\n      VariantTypeRid -> VariantRid <$> godot_variant_as_rid var\n      VariantTypeObject -> VariantObject <$> godot_variant_as_object var\n      VariantTypeDictionary -> VariantDictionary <$> godot_variant_as_dictionary var\n      VariantTypeArray -> VariantArray <$> godot_variant_as_array var\n      VariantTypePoolByteArray -> VariantPoolByteArray <$> godot_variant_as_pool_byte_array var\n      VariantTypePoolIntArray -> VariantPoolIntArray <$> godot_variant_as_pool_int_array var\n      VariantTypePoolRealArray -> VariantPoolRealArray <$> godot_variant_as_pool_real_array var\n      VariantTypePoolStringArray -> VariantPoolStringArray <$> godot_variant_as_pool_string_array var\n      VariantTypePoolVector2Array -> VariantPoolVector2Array <$> godot_variant_as_pool_vector2_array var\n      VariantTypePoolVector3Array -> VariantPoolVector3Array <$> godot_variant_as_pool_vector3_array var\n      VariantTypePoolColorArray -> VariantPoolColorArray <$> godot_variant_as_pool_color_array var\n  \n  toLowLevel VariantNil = godot_variant_new_nil\n  toLowLevel (VariantBool b) = godot_variant_new_bool . fromIntegral $ fromEnum b\n  toLowLevel (VariantInt i) = godot_variant_new_int (fromIntegral i)\n  toLowLevel (VariantReal r) = godot_variant_new_real (realToFrac r)\n  toLowLevel (VariantString x) = godot_variant_new_string x\n  toLowLevel (VariantVector2 x) = godot_variant_new_vector2 x\n  toLowLevel (VariantRect2 x) = godot_variant_new_rect2 x\n  toLowLevel (VariantVector3 x) = godot_variant_new_vector3 x\n  toLowLevel (VariantTransform2d x) = godot_variant_new_transform2d x\n  toLowLevel (VariantPlane x) = godot_variant_new_plane x\n  toLowLevel (VariantQuat x) = godot_variant_new_quat x\n  toLowLevel (VariantAabb x) = godot_variant_new_aabb x\n  toLowLevel (VariantBasis x) = godot_variant_new_basis x\n  toLowLevel (VariantTransform x) = godot_variant_new_transform x\n  toLowLevel (VariantColor x) = godot_variant_new_color x\n  toLowLevel (VariantNodePath x) = godot_variant_new_node_path x\n  toLowLevel (VariantRid x) = godot_variant_new_rid x\n  toLowLevel (VariantObject x) = godot_variant_new_object x\n  toLowLevel (VariantDictionary x) = godot_variant_new_dictionary x\n  toLowLevel (VariantArray x) = godot_variant_new_array x\n  toLowLevel (VariantPoolByteArray x) = godot_variant_new_pool_byte_array x\n  toLowLevel (VariantPoolIntArray x) = godot_variant_new_pool_int_array x\n  toLowLevel (VariantPoolRealArray x) = godot_variant_new_pool_real_array x\n  toLowLevel (VariantPoolStringArray x) = godot_variant_new_pool_string_array x\n  toLowLevel (VariantPoolVector2Array x) = godot_variant_new_pool_vector2_array x\n  toLowLevel (VariantPoolVector3Array x) = godot_variant_new_pool_vector3_array x\n  toLowLevel (VariantPoolColorArray x) = godot_variant_new_pool_color_array x\n\nwithVariantArray :: [Variant 'GodotTy] -> ((Ptr (Ptr GodotVariant), CInt) -> IO a) -> IO a\nwithVariantArray vars mtd =  allocaArray (length vars) $\n  \\arrPtr ->  withVars vars 0 arrPtr mtd\n  where\n    withVars (x:xs) n arrPtr mtd = do\n      vt <- toLowLevel x\n      res <- withGodotVariant vt $ \\vtPtr -> do\n        poke (advancePtr arrPtr n) vtPtr \n        withVars xs (n+1) arrPtr mtd\n      godot_variant_destroy vt\n      return res\n    withVars [] n arrPtr mtd = mtd (arrPtr, fromIntegral n)\n\ndefaultedVariant :: (GodotFFI t high, AsVariant a) => (t -> Variant 'GodotTy) -> high -> Maybe a -> Variant 'GodotTy\ndefaultedVariant ty o = maybe (ty $ unsafePerformIO $ toLowLevel o) toVariant\n{-# NOINLINE defaultedVariant #-}\n\nthrowIfErr :: VariantCallError -> IO ()\nthrowIfErr err = case variantCallErrorError err of\n  CallErrorCallOk -> return ()\n  _ -> throwIO err\n  \n\nclass AsVariant a where\n  toVariant :: a -> Variant 'GodotTy\n  fromVariant :: Variant 'GodotTy -> Maybe a\n  variantType :: a -> VariantType\n\ninstance AsVariant () where\n  toVariant _ = VariantNil\n  fromVariant VariantNil = Just ()\n  fromVariant _ = Nothing\n  variantType _ = VariantTypeNil\n\ninstance AsVariant GodotVariant where\n  toVariant v = let !res = unsafePerformIO $ fromLowLevel v in res\n  fromVariant v = let !res = unsafePerformIO $ toLowLevel v in Just res\n  variantType v = let !res = unsafePerformIO $ godot_variant_get_type v in res\n\n$(generateAsVariantInstances)\n\ntoGodotVariant :: forall a. (Typeable a, AsVariant a) => a -> IO GodotVariant\ntoGodotVariant = toLowLevel . toVariant\n\nfromGodotVariant :: forall a. (Typeable a, AsVariant a) => GodotVariant -> IO a\nfromGodotVariant var = do\n  res <- fromVariant <$> fromLowLevel var\n  case res of\n    Just x -> x `seq` return x\n    Nothing -> do\n      haveTy <-  godot_variant_get_type var \n      let expTy = typeOf (undefined :: a)\n      error $ \"Error in API: couldn't fromVariant. have: \" ++ show haveTy ++ \", expected: \" ++ show expTy\n"
  },
  {
    "path": "src/Godot/Gdnative/Internal.hs",
    "content": "module Godot.Gdnative.Internal (module M) where\n\nimport Godot.Gdnative.Internal.Gdnative as M\nimport Godot.Gdnative.Internal.Api as M\nimport Godot.Gdnative.Internal.Types as M hiding (Rect2,Basis,Transform,Transform2d,Color,Signal)\n"
  },
  {
    "path": "src/Godot/Gdnative.hs",
    "content": "module Godot.Gdnative(module T, module I) where\nimport Godot.Gdnative.Internal.Types as T\nimport Godot.Gdnative.Internal as I hiding (Rect2,Basis,Transform,Transform2d,NodePath,Color,Signal,PropertyAttributes,SignalArgument)\n"
  },
  {
    "path": "src/Godot/Internal/Dispatch.hs",
    "content": "{-# LANGUAGE TemplateHaskell, AllowAmbiguousTypes #-}\nmodule Godot.Internal.Dispatch(HasBaseClass(..),(:<)(..),Signal(..),deriveBase,NodeSignal,\n                               NodeMethod(..),NodeProperty(..),ListToFun(..),OptionalSetter(..),\n                               ClassProperty(..),PropertyAttributes(..),\n                               wrapIndexedGetter,wrapIndexedSetter, wrapDroppingSetter) where\nimport Data.Text (Text)\nimport GHC.TypeLits as T\nimport Godot.Gdnative.Internal.Gdnative hiding (Signal,PropertyAttributes)\nimport Godot.Gdnative.Internal.Types\nimport Language.Haskell.TH\nimport Language.Haskell.TH.Datatype\nimport Control.Monad\nimport Data.List\nimport Data.Typeable\n\n-- | Establishes 'child` as a child of BaseClass child`\nclass HasBaseClass child where\n  type BaseClass child\n  super :: child -> BaseClass child\n\n-- | This is here to make signals accessible to the type system\n-- You will have to define this for your own objects as well, eg:\n--    instance NodeSignal Player \"on_start\" []\nclass NodeSignal node (name :: Symbol) (args :: [*]) | node name -> args\n\ntype family ListToFun (l :: [*]) ret where\n  ListToFun (h:t) ret = h -> ListToFun t ret\n  ListToFun '[] ret = ret\n\n-- | This is here to make methods accessible to the type system\n-- You will have to define this for your own objects as well, eg:\n--    instance NodeMethod Player \"on_start\" [] Int where\n--          nodeMethod = on_start\nclass NodeMethod node (name :: Symbol) (args :: [*]) (ret :: *) | node name -> args, node name -> ret where\n  nodeMethod :: node -> ListToFun args ret\n\ntype family OptionalSetter (ro :: Bool) ty where\n  OptionalSetter 'True ty = ()\n  OptionalSetter 'False ty = ty\n\nwrapIndexedGetter :: Int -> (node -> Int -> IO ty) -> (node -> IO ty)\nwrapIndexedGetter i f node = f node i\n\nwrapIndexedSetter :: Int -> (node -> Int -> ty -> IO a) -> (node -> ty -> IO ())\nwrapIndexedSetter i f node ty = f node i ty >> pure ()\n\n-- | This exists because one property in api.json StreamTexture load_path\n-- doesn't obey the rules that al other functions do, its setter, @load@,\n-- returns (IO Int) instead of (IO ())\nwrapDroppingSetter :: (node -> ty -> IO a) -> (node -> ty -> IO ())\nwrapDroppingSetter f node ty = f node ty >> pure ()\n\ndata PropertyAttributes = PropertyAttributes\n  { propertySetType :: !MethodRpcMode\n  , propertyType :: !VariantType\n  , propertyHint :: !PropertyHint\n  , propertyHintString :: !Text\n  , propertyUsage :: !PropertyUsageFlags\n  , propertyDefaultValue :: !(Variant 'GodotTy)\n  }\n\ndata ClassProperty cls = ClassProperty\n  { propertyName :: Text\n  , propertyAttrs :: PropertyAttributes\n  , propertySetter :: Object -> cls -> GodotVariant -> IO ()\n  , propertyGetter :: Object -> cls -> IO GodotVariant\n  }\n\n-- | A setter and getter exposed to Haskell along with optional data need to implement this property in Godot.\n-- User-defined attributes must have this additioanl data, but properties that already exist in Godot do not.\nclass (Typeable ty, AsVariant ty) => NodeProperty node (name :: Symbol) ty (ro :: Bool) | node name -> ty, node name -> ro where\n  nodeProperty :: (node -> IO ty\n                 ,OptionalSetter ro (node -> ty -> IO ())\n                 ,Maybe (Object -> node -> IO GodotVariant\n                        ,Object -> node -> GodotVariant -> IO ()\n                        ,PropertyAttributes))\n\n-- | You should use this as @deriveBase ''Ty@ to create all the required parent\n-- instances of '(:<)' for upcasting your data.\nderiveBase :: Name -> Q [Dec]\nderiveBase ty = do\n  rdt <- reifyDatatype ty\n  let appliedTy = appsT (ConT ty)\n        [ case typeBinder of\n            PlainTV n -> VarT n\n            KindedTV n _ -> VarT n\n        | typeBinder <- datatypeVars rdt\n        ]\n  r <- reify ''BaseClass\n  case r of\n    FamilyI _ instDecs -> do\n      liftM nub $ concatQ (\\(child,parent) -> do\n                 liftM2 (++) [d|instance $(pure appliedTy) :< $(pure appliedTy) where upcast = id|]\n                            (parentInstances instDecs child child))\n          $ relevantTySynEqns (map (\\(TySynInstD eqn) -> eqn) instDecs) (ConT ty)\n\n-- | Subclass relation. Instances should be automatically derived with\n-- 'deriveBase'. You can define instances yourself, but you should ensure that\n-- they are transitive (if A :< B and B :< C then you should also define A :<\n-- C).\nclass parent :< child where\n  upcast :: child -> parent\n\ninstance Object :< Object where\n  upcast = id\n\nnewtype Signal a = Signal Text\n  deriving (Show, Eq)\n\nappsT :: Type -> [Type] -> Type\nappsT t [] = t\nappsT t (x:xs) = appsT (AppT t x) xs\n\nrelevantTySynEqns :: [TySynEqn] -> Type -> [(Type,Type)]\nrelevantTySynEqns [] _ = []\nrelevantTySynEqns (TySynEqn _ (AppT _ child) parent:ts) ty\n  | isRelevant child ty = (child,parent):relevantTySynEqns ts ty\n  | otherwise = relevantTySynEqns ts ty\n  where isRelevant (AppT t _) ty = isRelevant t ty\n        isRelevant t@(ConT _) ty = t == ty\n        isRelevant t ty = error $ \"Unhandled type family member \"\n                          ++ show t ++ \" when making parent instances for type \"\n                          ++ show ty\nrelevantTySynEqns x ty = error $ \"Unhandled type member \"\n                         ++ show x ++ \" when deriving parent instances for type \"\n                         ++ show ty\n\ncompatible :: Type -> Type -> Bool\ncompatible (AppT at at') (AppT bt bt') = compatible at bt && compatible at' bt'\ncompatible a@(ConT _) b@(ConT _) = a == b\n-- NB Only true because we don't handle foralls\ncompatible (VarT _) (VarT _) = True\ncompatible a b = a == b\n\nparentInstances :: [InstanceDec] -> Type -> Type -> Q [Dec]\nparentInstances instDecs superType targetType =\n     concat <$> (mapM (\\(child,parent) ->\n                         if parent == targetType then\n                           pure [] else\n                           (liftM2 (++) [d|instance $(pure parent) :< $(pure targetType) where upcast = upcast . super|]\n                                                    (if parent == superType then\n                                                       pure [] else\n                                                       (parentInstances instDecs parent targetType))))\n                          $ filter (\\(child,parent) -> compatible superType child)\n                          $ map (\\(TySynInstD (TySynEqn _ (AppT _ child) parent)) -> (child,parent)) instDecs)\n\nconcatQ f l = concat <$> mapM f l\n\n"
  },
  {
    "path": "src/Godot/Nativescript.hs",
    "content": "{-# LANGUAGE BangPatterns #-}\n{-# LANGUAGE UndecidableInstances #-}\n{-# LANGUAGE RecursiveDo #-}\n{-# LANGUAGE RecordWildCards #-}\n{-# LANGUAGE AllowAmbiguousTypes #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE LambdaCase #-}\nmodule Godot.Nativescript\n  ( ClassName\n  , GFunc\n  , GdnativeHandle\n  , NativeScript(..)\n  , ClassMethod(..)\n  , ClassProperty(..)\n  , ClassSignal(..)\n  , RPC(..)\n  , Registerer(..)\n  , PropertyAttributes(..)\n  , SignalArgument(..)\n  , deriveBase\n  , func\n  , method\n  , method0\n  , method1\n  , method2\n  , method3\n  , method4\n  , method5\n  , nameOf\n  , registerClass\n  , registerProperty\n  , registerSignal\n  , registerMethod\n  , signal\n  , tryCast\n  , tryCast'\n  , tryObjectCast\n  , asNativeScript\n  , convertClassName\n  , unConvertClassName\n  , getNode\n  , getNodeNativeScript\n  , new\n  , newNativeScript\n  , getSingleton\n  , getEngine\n  , copyVariant\n  , scriptDesc\n  , defaultExports\n  , await\n  , WrapperStablePtr(..)\n  , createMVarProperty\n  , guardError\n  , getError\n  , GodotError(..)\n  )\nwhere\n\nimport           Control.Monad\n\nimport           Data.Typeable\nimport           Data.Text                                ( Text )\nimport qualified Data.Text                     as T\nimport           Data.Vector                              ( Vector )\nimport qualified Data.Vector                   as Vec\nimport qualified Data.Vector                   as V\nimport           Data.Function                            ( (&) )\n\nimport qualified Data.Set                      as S\nimport           Control.Concurrent.MVar\n\nimport           Foreign                           hiding (void,new)\nimport           Foreign.C                         hiding (new)\n\nimport           System.Environment\nimport           System.IO.Unsafe\n\nimport qualified Godot.Gdnative.Internal as GNI\nimport           Godot.Gdnative\nimport           Godot.Internal.Dispatch\nimport           Data.Maybe                               ( fromMaybe )\nimport qualified Foreign.Marshal as F\nimport qualified Foreign.Marshal.Utils as F\nimport qualified Foreign.C                     as Foreign\n\nimport qualified Godot.Api                     as Api\nimport qualified Data.Map.Strict as M\nimport           Data.Coerce\nimport qualified Godot.Core.NativeScript as NativeScript\nimport           Godot.Core.GlobalConstants\nimport           Godot.Core.ClassDB\nimport           Godot.Core.Engine\nimport           Godot.Core.Node\nimport           Godot.Core.Object as Object\nimport           Godot.Core.Reference\nimport           Data.IORef\nimport           Foreign.StablePtr\nimport           Control.Monad.Extra\nimport           Control.Exception\nimport           Data.Maybe\n\ntype GdnativeHandle = Ptr ()\n\ndata GodotError = GFailed -- ^ Generic error.\n                | GUnavailable -- ^ Unavailable error.\n                | GUnconfigured -- ^ Unconfigured error.\n                | GUnauthorized -- ^ Unauthorized error.\n                | GParameterRangeError -- ^ Parameter range error.\n                | GOutOfMemory -- ^ Out of memory (OOM) error.\n                | GFileNotFound -- ^ File: Not found error.\n                | GFileBadDrive -- ^ File: Bad drive error.\n                | GFileBadPath -- ^ File: Bad path error.\n                | GFileNoPermission -- ^ File: No permission error.\n                | GFileAlreadyInUse -- ^ File: Already in use error.\n                | GFileCantOpen -- ^ File: Can't open error.\n                | GFileCantWrite -- ^ File: Can't write error.\n                | GFileCantRead -- ^ File: Can't read error.\n                | GFileUnrecognized -- ^ File: Unrecognized error.\n                | GFileCorrupt -- ^ File: Corrupt error.\n                | GFileMissingDependencies -- ^ File: Missing dependencies error.\n                | GFileEof -- ^ File: End of file (EOF) error.\n                | GCantOpen -- ^ Can't open error.\n                | GCantCreate -- ^ Can't create error.\n                | GQueryFailed -- ^ Query failed error.\n                | GAlreadyInUse -- ^ Already in use error.\n                | GLocked -- ^ Locked error.\n                | GTimeout -- ^ Timeout error.\n                | GCantConnect -- ^ Can't connect error.\n                | GCantResolve -- ^ Can't resolve error.\n                | GConnectionError -- ^ Connection error.\n                | GCantAcquireResource -- ^ Can't acquire resource error.\n                | GCantFork -- ^ Can't fork process error.\n                | GInvalidData -- ^ Invalid data error.\n                | GInvalidParameter -- ^ Invalid parameter error.\n                | GAlreadyExists -- ^ Already exists error.\n                | GDoesNotExist -- ^ Does not exist error.\n                | GDatabaseCantRead -- ^ Database: Read error.\n                | GDatabaseCantWrite -- ^ Database: Write error.\n                | GCompilationFailed -- ^ Compilation failed error.\n                | GMethodNotFound -- ^ Method not found error.\n                | GLinkFailed -- ^ Linking failed error.\n                | GScriptFailed -- ^ Script failed error.\n                | GCyclicLink -- ^ Cycling link (import cycle) error.\n                | GInvalidDeclaration -- ^ Invalid declaration error.\n                | GDuplicateSymbol -- ^ Duplicate symbol error.\n                | GParseError -- ^ Parse error.\n                | GBusy -- ^ Busy error.\n                | GSkip -- ^ Skip error.\n                | GHelp -- ^ Help error.\n                | GBug -- ^ Bug error.\n                | GPrinterOnFire -- ^ Printer on fire error. (This is an easter egg, no engine methods return this error code.)\n                deriving (Show, Eq, Typeable)\n\ninstance Exception GodotError\n\ngetError :: Int -> Maybe GodotError\ngetError e | e == _OK                             = Nothing\n           | e == _FAILED                         = Just GFailed                   \n           | e == _ERR_UNAVAILABLE                = Just GUnavailable              \n           | e == _ERR_UNCONFIGURED               = Just GUnconfigured             \n           | e == _ERR_UNAUTHORIZED               = Just GUnauthorized             \n           | e == _ERR_PARAMETER_RANGE_ERROR      = Just GParameterRangeError      \n           | e == _ERR_OUT_OF_MEMORY              = Just GOutOfMemory              \n           | e == _ERR_FILE_NOT_FOUND             = Just GFileNotFound             \n           | e == _ERR_FILE_BAD_DRIVE             = Just GFileBadDrive             \n           | e == _ERR_FILE_BAD_PATH              = Just GFileBadPath              \n           | e == _ERR_FILE_NO_PERMISSION         = Just GFileNoPermission         \n           | e == _ERR_FILE_ALREADY_IN_USE        = Just GFileAlreadyInUse         \n           | e == _ERR_FILE_CANT_OPEN             = Just GFileCantOpen             \n           | e == _ERR_FILE_CANT_WRITE            = Just GFileCantWrite            \n           | e == _ERR_FILE_CANT_READ             = Just GFileCantRead             \n           | e == _ERR_FILE_UNRECOGNIZED          = Just GFileUnrecognized         \n           | e == _ERR_FILE_CORRUPT               = Just GFileCorrupt              \n           | e == _ERR_FILE_MISSING_DEPENDENCIES  = Just GFileMissingDependencies  \n           | e == _ERR_FILE_EOF                   = Just GFileEof                  \n           | e == _ERR_CANT_OPEN                  = Just GCantOpen                 \n           | e == _ERR_CANT_CREATE                = Just GCantCreate               \n           | e == _ERR_QUERY_FAILED               = Just GQueryFailed              \n           | e == _ERR_ALREADY_IN_USE             = Just GAlreadyInUse             \n           | e == _ERR_LOCKED                     = Just GLocked                   \n           | e == _ERR_TIMEOUT                    = Just GTimeout                  \n           | e == _ERR_CANT_CONNECT               = Just GCantConnect              \n           | e == _ERR_CANT_RESOLVE               = Just GCantResolve              \n           | e == _ERR_CONNECTION_ERROR           = Just GConnectionError          \n           | e == _ERR_CANT_ACQUIRE_RESOURCE      = Just GCantAcquireResource      \n           | e == _ERR_CANT_FORK                  = Just GCantFork                 \n           | e == _ERR_INVALID_DATA               = Just GInvalidData              \n           | e == _ERR_INVALID_PARAMETER          = Just GInvalidParameter         \n           | e == _ERR_ALREADY_EXISTS             = Just GAlreadyExists            \n           | e == _ERR_DOES_NOT_EXIST             = Just GDoesNotExist             \n           | e == _ERR_DATABASE_CANT_READ         = Just GDatabaseCantRead         \n           | e == _ERR_DATABASE_CANT_WRITE        = Just GDatabaseCantWrite        \n           | e == _ERR_COMPILATION_FAILED         = Just GCompilationFailed        \n           | e == _ERR_METHOD_NOT_FOUND           = Just GMethodNotFound           \n           | e == _ERR_LINK_FAILED                = Just GLinkFailed               \n           | e == _ERR_SCRIPT_FAILED              = Just GScriptFailed             \n           | e == _ERR_CYCLIC_LINK                = Just GCyclicLink               \n           | e == _ERR_INVALID_DECLARATION        = Just GInvalidDeclaration       \n           | e == _ERR_DUPLICATE_SYMBOL           = Just GDuplicateSymbol          \n           | e == _ERR_PARSE_ERROR                = Just GParseError               \n           | e == _ERR_BUSY                       = Just GBusy                     \n           | e == _ERR_SKIP                       = Just GSkip                     \n           | e == _ERR_HELP                       = Just GHelp                     \n           | e == _ERR_BUG                        = Just GBug                      \n           | e == _ERR_PRINTER_ON_FIRE            = Just GPrinterOnFire            \n           | otherwise                            = error $ \"Unknown Godot error; this is a bug in the Haskell bindings: \" ++ show e\n\nguardError :: Int -> ()\nguardError = maybe () throw . getError\n\n{-| 'NativeScript' defines a new Godot class.\nFirst you must create an instance of 'HasBaseClass' for inheritance and\nupcasting to parent class. Then you'll need an instance of 'NativeScript'.\nFinally, the splice 'deriveBase' handles creating all the parent-child\nrelationships. To actually use your class, you'll need to register it with\n'registerClass'.\n\nTODO Check that this example still works\n\nExample usage:\n\n@\ndata MyClass1 = MyClass1\n  { _mc1Obj :: Node\n  , _mc1Time :: MVar Float\n  }\n\ninstance HasBaseClass MyClass1 where\n  type BaseClass MyClass1 = Node\n  super (MyClass1 p _) = p\ninstance NativeScript MyClass1 where\n  classInit p = MyClass1 p <$> newMVar 0\n  classMethods =\n    [ func NoRPC \"_ready\" $ \\self [] -> do\n        sigName <- toLowLevel \"on_MyClass1_ready\" :: IO GodotString\n        msg     <- toLowLevel (\"MyClass1 is ready\" :: Text) :: IO GodotString\n        let msgVt = toVariant msg\n        G.emit_signal (upcast self :: Object) sigName [msgVt]\n    , func NoRPC \"_process\" $ \\self [deltaVt] -> do\n        delta <- fromVariant deltaVt\n        atomically $ modifyMVar' (_mc1Time self) $ \\t -> t + delta\n    ]\n  classSignals =\n    [ signal \"on_MyClass1_ready\" [(\"msg\", VariantTypeString)]\n    ]\nderiveBase ''Myclass1\n@\n-}\nclass (HasBaseClass cls, Typeable cls, Typeable (BaseClass cls), Object :< cls)\n  => NativeScript cls where\n  classInit :: BaseClass cls -> IO cls\n  className :: ClassName cls\n  className = nameOf @cls\n  classMethods :: [ClassMethod cls]\n  classSignals :: [ClassSignal]\n  classSignals = []\n  classProperties :: [ClassProperty cls]\n  classProperties = []\n  asObj :: cls -> Object\n  asObj = upcast\n\ntype ClassSignal = (Text, [SignalArgument])\n\ntype ClassName a = Text\nnameOf :: forall a . Typeable a => ClassName a\nnameOf = T.pack\n    $ convertClassName\n    $ show\n    $ typeRep\n    $ Proxy @a\n\n\ntype GFunc cls = cls -> Vector GodotVariant -> IO GodotVariant\n\ndata ClassMethod cls where\n  ClassMethod\n    :: { methodRPCMode :: RPC\n       , methodName :: Text\n       , methodFunc :: GFunc cls\n       }\n    -> ClassMethod cls\n\n\ndata RPC\n  = NoRPC\n  | Remote\n  | Sync\n  | Master\n  | Slave\n\n\ndata RegTy\n  = GClass\n  | GMethod\n  | GSignal\n  | GProperty\n\ndata family Registerer (x :: RegTy) cls\n\ndata instance Registerer 'GClass cls = NativeScript cls =>\n  RegClass\n    GdnativeHandle\n    (BaseClass cls -> IO cls)\n\ndata instance Registerer 'GMethod cls = NativeScript cls =>\n  RegMethod\n    GdnativeHandle\n    (ClassMethod cls)\n\ndata instance Registerer 'GSignal cls = NativeScript cls =>\n  RegSignal\n    GdnativeHandle\n    (Text, [SignalArgument])\n\ndata instance Registerer 'GProperty cls = NativeScript cls =>\n  RegProperty\n    GdnativeHandle\n    (ClassProperty cls)\n\n\n-- | Convenient way of registering a class with all its methods.\n-- Used like: @registerClass $ RegClass desc $ classInit \\\\@MyClass@\nregisterClass\n  :: forall a\n   . (NativeScript a, Typeable (BaseClass a), AsVariant (BaseClass a))\n  => Registerer 'GClass a\n  -> IO ()\nregisterClass (RegClass desc constr) = do\n  regClass desc (nameOf @(BaseClass a)) clsInit $ \\_ _ -> return ()\n  forM_ (classMethods @a) regMtd\n  forM_ (classSignals @a) regSignal\n  forM_ (classProperties @a) regProperty\n where\n  clsInit :: Object -> IO a\n  clsInit obj = tryObjectCast obj >>= \\(Just a) -> constr (a :: BaseClass a)\n  clsName = className @a\n\n  regMtd mtd@ClassMethod {..} = do\n    registerMethod (RegMethod desc mtd :: Registerer 'GMethod a)\n    d <- isJust <$> lookupEnv \"HS_GODOT_DEBUG\"\n    when d $ putStrLn $ T.unpack $ T.unwords\n      [\"Registering method\", methodName, \"to class\", clsName]\n\n  regSignal sgn@(signalName, _) = do\n    registerSignal (RegSignal desc sgn :: Registerer 'GSignal a)\n    d <- isJust <$> lookupEnv \"HS_GODOT_DEBUG\"\n    when d $ putStrLn $ T.unpack $ T.unwords\n      [\"Registering signal\", signalName, \"to class\", clsName]\n\n  regProperty prp = do\n    registerProperty (RegProperty desc prp :: Registerer 'GProperty a)\n    d <- isJust <$> lookupEnv \"HS_GODOT_DEBUG\"\n    when d $ putStrLn $ T.unpack $ T.unwords\n      [\"Registering property\", propertyName prp, \"to class\", clsName]\n\n  regClass pHandle base create destroy = do\n    createFun <- mkInstanceCreateFunPtr\n      $ \\ins _ -> create ins >>= newStablePtr >>= (return . castStablePtrToPtr)\n    destroyFun <- mkInstanceDestroyFunPtr $ \\ins _ objPtr -> do\n      let stPtr = castPtrToStablePtr objPtr\n      obj <- deRefStablePtr stPtr\n      freeStablePtr stPtr\n      destroy ins obj\n    rec createFreeFun <- mkInstanceFreeFunPtr $ \\_ ->\n          freeHaskellFunPtr createFun >> freeHaskellFunPtr createFreeFun\n        destroyFreeFun <- mkInstanceFreeFunPtr $ \\_ ->\n          freeHaskellFunPtr destroyFun >> freeHaskellFunPtr destroyFreeFun\n\n    let createFunObj = InstanceCreateFunc createFun nullPtr createFreeFun\n    let destroyFunObj =\n          InstanceDestroyFunc destroyFun nullPtr destroyFreeFun\n\n    let tyFingerprint = typeRepFingerprint $ typeRep (Proxy @a)\n    tyPtr <- F.new tyFingerprint\n\n    d <- isJust <$> lookupEnv \"HS_GODOT_DEBUG\"\n    when d $ putStrLn $ T.unpack $ T.unwords [\"Registering class\", clsName]\n    withCString (T.unpack clsName)\n      $ \\namePtr -> withCString (T.unpack base) $ \\basePtr -> do\n          godot_nativescript_register_class pHandle\n                                            namePtr\n                                            basePtr\n                                            createFunObj\n                                            destroyFunObj\n          godot_nativescript_set_type_tag pHandle\n                                          namePtr\n                                          (castPtr tyPtr)\n\ntryCast\n  :: forall b a. (Object :< a, a :< b, Typeable b, AsVariant b) => a -> IO (Maybe b)\ntryCast = tryObjectCast . upcast\n\ntryCast' :: forall out x. (Typeable out, AsVariant out, Object :< x, x :< out) => x -> IO out\ntryCast' o = fromJust <$> tryCast o\n\nconvertClassName name =\n  case name of\n    -- TODO Derive these automatically. Don't think we store if a\n    -- class is a singleton anywhere.\n    \"ClassDB\" -> \"_ClassDB\"\n    \"Marshalls\" -> \"_Marshalls\"\n    \"VisualScriptEditor\" -> \"_VisualScriptEditor\"\n    \"OS\" -> \"_OS\"\n    \"Engine\" -> \"_Engine\"\n    \"Geometry\" -> \"_Geometry\"\n    \"JSON\" -> \"_JSON\"\n    \"ResourceLoader\" -> \"_ResourceLoader\"\n    \"ResourceSaver\" -> \"_ResourceSaver\"\n    x -> x\n\nunConvertClassName name =\n  case name of\n    -- TODO Derive these automatically. Don't think we store if a\n    -- class is a singleton anywhere.\n    \"_ClassDB\" -> \"ClassDB\"\n    \"_Marshalls\" -> \"Marshalls\"\n    \"_VisualScriptEditor\" -> \"VisualScriptEditor\"\n    \"_OS\" -> \"OS\"\n    \"_Engine\" -> \"Engine\"\n    \"_Geometry\" -> \"Geometry\"\n    \"_JSON\" -> \"JSON\"\n    \"_ResourceLoader\" -> \"ResourceLoader\"\n    \"_ResourceSaver\" -> \"ResourceSaver\"\n    x -> x\n\nsingletonTable :: MVar (M.Map Text Object)\nsingletonTable = unsafePerformIO $ newMVar M.empty\n\n-- | Godot exposes some functionality through singletons. You'll often need to\n-- talk to the GodotInput singeton for example. Use this as 'getSingleton @GodotInput'.\ngetSingleton\n  :: forall a . (Typeable a, AsVariant a, Object :< a) => IO (Maybe a)\ngetSingleton = do\n  let name = unConvertClassName $ nameOf @a\n  table <- readMVar singletonTable\n  case M.lookup name table of\n    Just o -> tryCast o\n    Nothing -> do\n      ge <- getEngine\n      -- FIXME ANDREI I don't understand what convertClassName is doing here? It seems wrong.\n      -- o <- get_singleton ge =<< toLowLevel (convertClassName name)\n      o <- get_singleton ge =<< toLowLevel name\n      modifyMVar_ singletonTable (\\m -> pure (M.insert name o m))\n      tryCast o\n\ngetEngine :: IO Api.Engine\ngetEngine =\n  GNI.godot_global_get_singleton\n    &   Foreign.withCString \"Engine\"\n    >>= \\o -> tryCast o >>= \\case\n          Just ge -> return ge\n          Nothing ->\n            (get_class o :: IO GodotString)\n              >>= fromLowLevel\n              >>= error\n              .   (\"Couldn't get Engine singleton :( got: \" ++)\n              .   T.unpack\n  \ntryObjectCast :: forall a . (Typeable a, AsVariant a) => Object -> IO (Maybe a)\ntryObjectCast obj = do\n  isCls <- Object.is_class obj =<< toLowLevel (nameOf @a)\n  if isCls\n    then do\n      asGVt <- toLowLevel $ toVariant obj :: IO GodotVariant\n      Just <$> fromGodotVariant asGVt\n    else return Nothing\n\n\nasNativeScript :: forall a . NativeScript a => Object -> IO (Maybe a)\nasNativeScript obj = do\n  tyPtr <- godot_nativescript_get_type_tag obj\n  tyFingerprint <- peek (castPtr tyPtr)\n  if tyFingerprint == typeRepFingerprint (typeRep (Proxy @a)) then\n    Just <$> (godot_nativescript_get_userdata obj\n               >>= (deRefStablePtr . castPtrToStablePtr))\n    else\n    pure Nothing\n\ncopyVariant\n  :: Ptr GodotVariant -- ^ destination\n  -> Ptr GodotVariant -- ^ source\n  -> IO ()\ncopyVariant dest src = copyBytes dest src (opaqueSizeOf @GodotVariant)\n\n\n{-| This makes defining class member methods much easier and similar to GDScript.\nWithout dependent types we can't enforce that the right number of arguments are\npassed. The pattern-match below is non-total for syntactic simplicity.\n\nExample usage:\n@\nfunc NoRPC \"_unhandled_input\" $ \\self [evObj] ->\n  (fromVariant evObj :: IO Object)\n    >>= asClass InputEventKey \"InputEventKey\"\n    >>= flip whenJust (handleInputKey self)\n@\n-}\nfunc\n  :: (NativeScript cls, AsVariant a)\n  => RPC\n  -> Text\n  -> (cls -> [GodotVariant] -> IO a)\n  -> ClassMethod cls\nfunc rpc mthdName fn = ClassMethod rpc mthdName\n  $ \\self args -> toLowLevel . toVariant =<< fn self (Vec.toList args)\n\n-- | Quick shortcut to make a new local method with arguments passed as\n-- 'Variant's in a list.\nmethod :: (NativeScript cls, AsVariant a)\n       => Text -> (cls -> [GodotVariant] -> IO a) -> ClassMethod cls\nmethod = func NoRPC\n\n-- | Quick shortcut to make a new local method with no argumnets.\nmethod0 :: (NativeScript cls, AsVariant a)\n       => Text -> (cls -> IO a) -> ClassMethod cls\nmethod0 name fn = func NoRPC name (\\s [] -> fn s)\n\n-- | Quick shortcut to make a new local method that takes 1 argument, 'Variant's\n-- are unwrapped into their types before being passed in.\nmethod1 :: (NativeScript cls, AsVariant a, AsVariant o1, Typeable o1)\n        => Text -> (cls -> o1 -> IO a) -> ClassMethod cls\nmethod1 name fn = func NoRPC name (\\s [o1] -> do\n                                      a1 <- fromGodotVariant o1\n                                      fn s a1)\n\n-- | Quick shortcut to make a new local method that takes 2 arguments, 'Variant's\n-- are unwrapped into their types before being passed in.\nmethod2 :: (NativeScript cls, AsVariant a, AsVariant o1, Typeable o1, AsVariant o2, Typeable o2)\n        => Text -> (cls -> o1 -> o2 -> IO a) -> ClassMethod cls\nmethod2 name fn = func NoRPC name (\\s [o1,o2] -> do\n                                      a1 <- fromGodotVariant o1\n                                      a2 <- fromGodotVariant o2\n                                      fn s a1 a2)\n\n-- | Quick shortcut to make a new local method that takes 3 arguments, 'Variant's\n-- are unwrapped into their types before being passed in.\nmethod3 :: (NativeScript cls, AsVariant a, AsVariant o1, Typeable o1, AsVariant o2, Typeable o2, AsVariant o3, Typeable o3)\n        => Text -> (cls -> o1 -> o2 -> o3 -> IO a) -> ClassMethod cls\nmethod3 name fn = func NoRPC name (\\s [o1,o2,o3] -> do\n                                      a1 <- fromGodotVariant o1\n                                      a2 <- fromGodotVariant o2\n                                      a3 <- fromGodotVariant o3\n                                      fn s a1 a2 a3)\n\n-- | Quick shortcut to make a new local method that takes 4 arguments, 'Variant's\n-- are unwrapped into their types before being passed in.\nmethod4 :: (NativeScript cls, AsVariant a, AsVariant o1, Typeable o1, AsVariant o2, Typeable o2\n          , AsVariant o3, Typeable o3, AsVariant o4, Typeable o4)\n        => Text -> (cls -> o1 -> o2 -> o3 -> o4 -> IO a) -> ClassMethod cls\nmethod4 name fn = func NoRPC name (\\s [o1,o2,o3,o4] -> do\n                                      a1 <- fromGodotVariant o1\n                                      a2 <- fromGodotVariant o2\n                                      a3 <- fromGodotVariant o3\n                                      a4 <- fromGodotVariant o4\n                                      fn s a1 a2 a3 a4)\n\n-- | Quick shortcut to make a new local method that takes 5 arguments, 'Variant's\n-- are unwrapped into their types before being passed in.\nmethod5 :: (NativeScript cls, AsVariant a, AsVariant o1, Typeable o1, AsVariant o2, Typeable o2\n          , AsVariant o3, Typeable o3, AsVariant o4, Typeable o4, AsVariant o5, Typeable o5)\n        => Text -> (cls -> o1 -> o2 -> o3 -> o4 -> o5 -> IO a) -> ClassMethod cls\nmethod5 name fn = func NoRPC name (\\s [o1,o2,o3,o4,o5] -> do\n                                      a1 <- fromGodotVariant o1\n                                      a2 <- fromGodotVariant o2\n                                      a3 <- fromGodotVariant o3\n                                      a4 <- fromGodotVariant o4\n                                      a5 <- fromGodotVariant o5\n                                      fn s a1 a2 a3 a4 a5)\n\n\nregisterMethod :: forall a . NativeScript a => Registerer 'GMethod a -> IO ()\nregisterMethod (RegMethod desc ClassMethod {..}) = do\n  methodFun <-\n    mkInstanceMethodFunPtr $ \\outPtr _ins _ objPtr numArgs argsPtr -> do\n      obj  <- deRefStablePtr $ castPtrToStablePtr objPtr\n      ptrs <- V.fromList <$> peekArray (fromIntegral numArgs) argsPtr\n      args <- V.forM ptrs $ \\ptr -> do\n        oldVar <- GodotVariant <$> newForeignPtr_ ptr\n        godot_variant_new_copy oldVar\n      res <- methodFunc obj args\n      withGodotVariant res $ copyVariant outPtr\n      return outPtr\n\n  rec methodFreeFun <- mkInstanceFreeFunPtr\n        $ \\_ -> freeHaskellFunPtr methodFun >> freeHaskellFunPtr methodFreeFun\n\n  let methodObj = InstanceMethod methodFun nullPtr methodFreeFun\n  withCString (T.unpack $ nameOf @a) $ \\clsNamePtr ->\n    withCString (T.unpack methodName)\n      $ \\mtdNamePtr -> godot_nativescript_register_method\n          desc\n          clsNamePtr\n          mtdNamePtr\n          (MethodAttributes rpcMode)\n          methodObj\n where\n  rpcMode = case methodRPCMode of\n    NoRPC  -> MethodRpcModeDisabled\n    Remote -> MethodRpcModeRemote\n    Sync   -> MethodRpcModeSync\n    Master -> MethodRpcModeMaster\n    Slave  -> MethodRpcModeSlave\n\nasPropertyAttributes :: PropertyAttributes -> IO GNI.PropertyAttributes\nasPropertyAttributes PropertyAttributes {..} = do\n  hintStr <- toLowLevel propertyHintString\n  def     <- toLowLevel propertyDefaultValue\n  return $ GNI.PropertyAttributes\n    { godotPropertyAttributesRsetType     = propertySetType\n    , godotPropertyAttributesType         = fromIntegral $ fromEnum propertyType\n    , godotPropertyAttributesHint         = propertyHint\n    , godotPropertyAttributesHintString   = hintStr\n    , godotPropertyAttributesUsage        = propertyUsage\n    , godotPropertyAttributesDefaultValue = def\n    }\n\nregisterProperty :: forall a . NativeScript a => Registerer 'GProperty a -> IO ()\nregisterProperty (RegProperty desc (ClassProperty path attr setter getter)) = do\n  setFun <- mkPropertySetFunPtr $ \\ins _ objPtr valPtr -> do\n    obj <- deRefStablePtr $ castPtrToStablePtr objPtr\n    val <- newForeignPtr_ valPtr\n    setter ins obj (GodotVariant val)\n  getFun <- mkPropertyGetFunPtr $ \\outPtr ins _ objPtr -> do\n    obj <- deRefStablePtr $ castPtrToStablePtr objPtr\n    res <- getter ins obj\n    withGodotVariant res $ copyVariant outPtr\n    return outPtr\n  rec setFreeFun <- mkInstanceFreeFunPtr\n        $ \\_ -> freeHaskellFunPtr setFun >> freeHaskellFunPtr setFreeFun\n      getFreeFun <- mkInstanceFreeFunPtr\n        $ \\_ -> freeHaskellFunPtr getFun >> freeHaskellFunPtr getFreeFun\n  godotAttr <- asPropertyAttributes attr\n  withCString (T.unpack $ nameOf @a) $ \\clsNamePtr ->\n    withCString (T.unpack path) $ \\pathPtr -> godot_nativescript_register_property\n      desc\n      clsNamePtr\n      pathPtr\n      godotAttr\n      (PropertySetFunc setFun nullPtr setFreeFun)\n      (PropertyGetFunc getFun nullPtr getFreeFun)\n\ncreateMVarProperty :: (Typeable v, AsVariant v) =>\n     Text\n     -> (t -> MVar v)\n     -- ^ We typically can't do IO (for initialisation) when calling this, in\n     -- which case we need to annotate the type without providing a value.\n     -> Either VariantType v\n     -> ClassProperty t\ncreateMVarProperty name fieldName tyOrVal = ClassProperty\n  { propertyName = name\n  , propertyAttrs = PropertyAttributes\n      MethodRpcModeDisabled\n      (fst vTyVt)\n      PropertyHintNone\n      \"\"\n      godotPropertyUsageDefault\n      (snd vTyVt)\n  , propertySetter = \\_ c (var :: GodotVariant) -> do\n        variant <- fromLowLevel var\n        -- TODO This is required to avoid memory corruption. Haskell cannot hold\n        -- pointers to Godot objects unless the runtime already has a live\n        -- reference to that object. It will otherwise be freed at some point!\n        --\n        -- This solution works, but only for most Godot Objects. We could add\n        -- more cases here, but a much better way would be to implement a Ref\n        -- type to hold such objects. Coming soon to stores near you.\n        case variant of\n          VariantObject o -> onRefObj reference o\n          _ -> pure False\n        obj <- fromGodotVariant var\n        let mvar = fieldName c\n        isEmpty <- isEmptyMVar mvar\n        if isEmpty\n          then putMVar mvar obj\n          else toVariant <$> swapMVar mvar obj >>= \\case\n            VariantObject oldObj@(Object ptr) -> do\n              unreffed <- onRefObj unreference oldObj -- lazy evaluation ftw\n              when (nullPtr /= ptr && unreffed) $\n                Object.free oldObj\n            _ -> pure ()\n  , propertyGetter = \\_ c -> toLowLevel . toVariant =<< readMVar (fieldName c)\n  }\n where\n   onRefObj :: (Api.Reference -> IO a) -> Object -> IO a\n   onRefObj f o = tryObjectCast @Api.Reference o >>= \\case\n      Just ref -> f ref\n      Nothing -> error \"Variant object not a reference\"\n   vTyVt :: (VariantType, Variant 'GodotTy)\n   vTyVt = case tyOrVal of\n     Left VariantTypeObject -> (VariantTypeObject, VariantObject (Object nullPtr))\n     Left vTy -> (vTy, VariantNil)\n     Right val -> (variantType val, toVariant val)\n\ndata SignalArgument = SignalArgument\n  { signalArgumentName :: !Text\n  , signalArgumentType :: !VariantType\n  , signalArgumentHint :: !PropertyHint\n  , signalArgumentHintString :: !Text\n  , signalArgumentUsage :: !PropertyUsageFlags\n  , signalArgumentDefaultValue :: !(Variant 'GodotTy)\n  }\n\nasSignalArgument :: SignalArgument -> IO GNI.SignalArgument\nasSignalArgument SignalArgument {..} = do\n  name <- toLowLevel signalArgumentName\n  let ty = fromIntegral $ fromEnum signalArgumentType\n  hintStr <- toLowLevel signalArgumentHintString\n  def     <- toLowLevel signalArgumentDefaultValue\n  return $ GNI.SignalArgument name\n                               ty\n                               signalArgumentHint\n                               hintStr\n                               signalArgumentUsage\n                               def\n\n\n-- | Example usage:\n-- @\n-- signal \"on_pulse\" [(\"source\", VariantTypeVector3), (\"affected\", VariantTypeObject)]\n-- @\nsignal :: Text -> [(Text, VariantType)] -> (Text, [SignalArgument])\nsignal sigName sigArgs = (sigName, uncurry toSigArg <$> sigArgs)\n where\n  toSigArg :: Text -> VariantType -> SignalArgument\n  toSigArg argName ty = do\n    SignalArgument\n      { signalArgumentName         = argName\n      , signalArgumentType         = ty\n      , signalArgumentHint         = PropertyHintNone\n      , signalArgumentHintString   = T.pack \"\"\n      , signalArgumentUsage        = godotPropertyUsageDefault\n      , signalArgumentDefaultValue = VariantNil\n      }\n\n-- TODO: Also allow hints and default args?\nregisterSignal :: forall a . NativeScript a => Registerer 'GSignal a -> IO ()\nregisterSignal (RegSignal desc (signalName, signalArgs)) = do\n  gdArgs <- mapM asSignalArgument signalArgs\n  let defaultArgs = []\n  withArrayLen gdArgs $ \\gdArgsLen gdArgsPtr ->\n    withVariantArray' defaultArgs $ \\(defArgsPtr, defArgsLen) ->\n      withCString (T.unpack $ nameOf @a) $ \\clsNamePtr -> do\n        gdSigName <- toLowLevel signalName\n        godot_nativescript_register_signal desc clsNamePtr $ GNI.Signal\n          gdSigName\n          (fromIntegral gdArgsLen)\n          gdArgsPtr\n          (fromIntegral defArgsLen)\n          defArgsPtr\n where\n  withVariantArray'\n    :: [Variant 'GodotTy] -> ((Ptr GodotVariant, CInt) -> IO b) -> IO b\n  withVariantArray' vars mtd =\n    allocaBytes (opaqueSizeOf @GodotVariant * length vars)\n      $ \\arrPtr -> withVars vars 0 arrPtr mtd\n\n  withVars (x : xs) n arrPtr mtd = do\n    vt <- toLowLevel x\n    withGodotVariant vt $ \\vtPtr -> do\n      copyVariant (arrPtr `plusPtr` (n * opaqueSizeOf @GodotVariant)) vtPtr\n      withVars xs (n + 1) arrPtr mtd\n  withVars [] n arrPtr mtd = mtd (arrPtr, fromIntegral n)\n\nforeign import ccall \"dynamic\"\n  call_godot_class_constructor_ :: FunPtr (IO (Object)) -> IO (Object)\n\n-- | Instantiate an object\nnew :: forall o. (Object :< o, Typeable o, AsVariant o) => IO (Maybe o)\nnew = do\n  con <- Foreign.withCString (T.unpack $ nameOf @o) godot_get_class_constructor\n  if con == nullFunPtr then\n    pure Nothing else\n    tryCast =<< call_godot_class_constructor_ con\n\nnewNativeScript :: forall a. NativeScript a => IO (Maybe a)\nnewNativeScript = do\n  let name = nameOf @a\n  Just nativescript <- new @Api.NativeScript\n  Just gdnlib <- tryCast @Api.GDNativeLibrary =<< readIORef gdnativeLibraryRef\n  NativeScript.set_library nativescript gdnlib\n  NativeScript.set_class_name nativescript =<< toLowLevel name\n  no <- fromGodotVariant =<< NativeScript.new nativescript []\n  asNativeScript no\n\ngetNode :: forall b cls. (Object :< cls, Api.Node :< cls,\n                    Api.Node :< b, Typeable b, AsVariant b)\n        => cls -> Text -> IO b\ngetNode self name = do\n  n :: Api.Node <- get_node_or_null self =<< toLowLevel name\n  x <- tryCast n\n  case x of\n    Just r -> pure r\n    _ -> error \"Error, getNode failed\"\n\ngetNodeNativeScript :: forall b child. (NativeScript b, Api.Node :< child, Object :< child)\n         => child -> Text -> IO b\ngetNodeNativeScript self name = do\n  n <- get_node self =<< toLowLevel name\n  x <- asNativeScript $ upcast @Object n\n  case x of\n    Just r -> pure r\n    _ -> error \"Error, getNode' failed\"\n\n-- | The descriptor, Godot file resource path, of the current script. Some\n-- GNative API functions need access to this.\nscriptDesc :: MVar GodotString\n{-# NOINLINE scriptDesc #-}\nscriptDesc = unsafePerformIO newEmptyMVar\n\n-- | Called for you in the setup code.\ndefaultExports :: GdnativeHandle -> IO ()\ndefaultExports desc = do\n  desc' <- newForeignPtr_ desc\n  cpy <- godot_string_new_copy (coerce desc' :: GodotString)\n  putMVar scriptDesc cpy\n  registerClass $ RegClass desc $ classInit @WrapperStablePtr\n  pure ()\n\n-- | Ask an object to wait for a signal on a target. When the signal is trigged call the given function\n-- For example, to get a callback when a timer fires you could do something like\n-- @ await self timer \"timeout\" (\\self -> print \"Timer fired!\") @\nawait :: forall cls source target a. (NativeScript cls, Object :< cls, Object :< target, AsVariant a)\n      => cls -> target -> Text -> (cls -> IO a) -> IO ()\nawait self target signal fn = do\n  desc <- readMVar scriptDesc\n  (Just w) <- newNativeScript @WrapperStablePtr\n  unlessM (has_method self =<< toLowLevel \"__script_callback\") $ do\n    withForeignPtr (coerce desc)\n      (\\rawDesc ->\n       registerMethod\n        (RegMethod (coerce rawDesc)\n         (method1 \"__script_callback\"\n          (\\self o -> do\n              (Just w) <- asNativeScript @WrapperStablePtr o\n              sptr <- takeMVar $ _wrapperStablePtr w\n              fn :: (cls -> IO a) <- deRefStablePtr (castPtrToStablePtr (castStablePtrToPtr sptr))\n              fn self\n              freeStablePtr sptr))))\n  fnptr <- newStablePtr fn\n  putMVar (_wrapperStablePtr w) (castPtrToStablePtr (castStablePtrToPtr fnptr))\n  fnBind <- toGodotVariant (upcast @Object w)\n  guardError <$> (join $ connect target\n    <$> toLowLevel signal\n    <*> pure (upcast self)\n    <*> toLowLevel \"__script_callback\"\n    <*> (Just <$> toLowLevel (V.singleton fnBind))\n    <*> pure (Just _CONNECT_ONESHOT))\n\n-- | Sometimes we really have to pass in a Haskell pointer to Godot,\n-- particularly for callbacks.\ndata WrapperStablePtr = WrapperStablePtr { _wrapperStablePtrBase :: Object\n                                , _wrapperStablePtr :: MVar (StablePtr ()) }\ninstance HasBaseClass WrapperStablePtr where\n  type BaseClass WrapperStablePtr = Object\n  super = _wrapperStablePtrBase\ninstance NativeScript WrapperStablePtr where\n  classInit base = WrapperStablePtr base <$> newEmptyMVar\n  classMethods = []\nderiveBase ''WrapperStablePtr\n"
  },
  {
    "path": "src/Godot/Tools/AnimationTrackEditPlugin.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.AnimationTrackEditPlugin () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()"
  },
  {
    "path": "src/Godot/Tools/EditorExportPlugin.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorExportPlugin\n       (Godot.Tools.EditorExportPlugin._export_begin,\n        Godot.Tools.EditorExportPlugin._export_end,\n        Godot.Tools.EditorExportPlugin._export_file,\n        Godot.Tools.EditorExportPlugin.add_file,\n        Godot.Tools.EditorExportPlugin.add_ios_bundle_file,\n        Godot.Tools.EditorExportPlugin.add_ios_cpp_code,\n        Godot.Tools.EditorExportPlugin.add_ios_framework,\n        Godot.Tools.EditorExportPlugin.add_ios_linker_flags,\n        Godot.Tools.EditorExportPlugin.add_ios_plist_content,\n        Godot.Tools.EditorExportPlugin.add_shared_object,\n        Godot.Tools.EditorExportPlugin.skip)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindEditorExportPlugin__export_begin #-}\n\n-- | Virtual method to be overridden by the user. It is called when the export starts and provides all information about the export.\nbindEditorExportPlugin__export_begin :: MethodBind\nbindEditorExportPlugin__export_begin\n  = unsafePerformIO $\n      withCString \"EditorExportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"_export_begin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Virtual method to be overridden by the user. It is called when the export starts and provides all information about the export.\n_export_begin ::\n                (EditorExportPlugin :< cls, Object :< cls) =>\n                cls -> PoolStringArray -> Bool -> GodotString -> Int -> IO ()\n_export_begin cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorExportPlugin__export_begin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorExportPlugin \"_export_begin\"\n           '[PoolStringArray, Bool, GodotString, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorExportPlugin._export_begin\n\n{-# NOINLINE bindEditorExportPlugin__export_end #-}\n\n-- | Virtual method to be overridden by the user. Called when the export is finished.\nbindEditorExportPlugin__export_end :: MethodBind\nbindEditorExportPlugin__export_end\n  = unsafePerformIO $\n      withCString \"EditorExportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"_export_end\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Virtual method to be overridden by the user. Called when the export is finished.\n_export_end ::\n              (EditorExportPlugin :< cls, Object :< cls) => cls -> IO ()\n_export_end cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorExportPlugin__export_end\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorExportPlugin \"_export_end\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorExportPlugin._export_end\n\n{-# NOINLINE bindEditorExportPlugin__export_file #-}\n\nbindEditorExportPlugin__export_file :: MethodBind\nbindEditorExportPlugin__export_file\n  = unsafePerformIO $\n      withCString \"EditorExportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"_export_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_export_file ::\n               (EditorExportPlugin :< cls, Object :< cls) =>\n               cls -> GodotString -> GodotString -> PoolStringArray -> IO ()\n_export_file cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorExportPlugin__export_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorExportPlugin \"_export_file\"\n           '[GodotString, GodotString, PoolStringArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorExportPlugin._export_file\n\n{-# NOINLINE bindEditorExportPlugin_add_file #-}\n\nbindEditorExportPlugin_add_file :: MethodBind\nbindEditorExportPlugin_add_file\n  = unsafePerformIO $\n      withCString \"EditorExportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_file ::\n           (EditorExportPlugin :< cls, Object :< cls) =>\n           cls -> GodotString -> PoolByteArray -> Bool -> IO ()\nadd_file cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorExportPlugin_add_file (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorExportPlugin \"add_file\"\n           '[GodotString, PoolByteArray, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorExportPlugin.add_file\n\n{-# NOINLINE bindEditorExportPlugin_add_ios_bundle_file #-}\n\nbindEditorExportPlugin_add_ios_bundle_file :: MethodBind\nbindEditorExportPlugin_add_ios_bundle_file\n  = unsafePerformIO $\n      withCString \"EditorExportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_ios_bundle_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_ios_bundle_file ::\n                      (EditorExportPlugin :< cls, Object :< cls) =>\n                      cls -> GodotString -> IO ()\nadd_ios_bundle_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorExportPlugin_add_ios_bundle_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorExportPlugin \"add_ios_bundle_file\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorExportPlugin.add_ios_bundle_file\n\n{-# NOINLINE bindEditorExportPlugin_add_ios_cpp_code #-}\n\nbindEditorExportPlugin_add_ios_cpp_code :: MethodBind\nbindEditorExportPlugin_add_ios_cpp_code\n  = unsafePerformIO $\n      withCString \"EditorExportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_ios_cpp_code\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_ios_cpp_code ::\n                   (EditorExportPlugin :< cls, Object :< cls) =>\n                   cls -> GodotString -> IO ()\nadd_ios_cpp_code cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorExportPlugin_add_ios_cpp_code\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorExportPlugin \"add_ios_cpp_code\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorExportPlugin.add_ios_cpp_code\n\n{-# NOINLINE bindEditorExportPlugin_add_ios_framework #-}\n\n-- | Adds a static library (*.a) or dynamic library (*.dylib, *.framework) to Linking Phase in iOS's Xcode project.\nbindEditorExportPlugin_add_ios_framework :: MethodBind\nbindEditorExportPlugin_add_ios_framework\n  = unsafePerformIO $\n      withCString \"EditorExportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_ios_framework\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a static library (*.a) or dynamic library (*.dylib, *.framework) to Linking Phase in iOS's Xcode project.\nadd_ios_framework ::\n                    (EditorExportPlugin :< cls, Object :< cls) =>\n                    cls -> GodotString -> IO ()\nadd_ios_framework cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorExportPlugin_add_ios_framework\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorExportPlugin \"add_ios_framework\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorExportPlugin.add_ios_framework\n\n{-# NOINLINE bindEditorExportPlugin_add_ios_linker_flags #-}\n\nbindEditorExportPlugin_add_ios_linker_flags :: MethodBind\nbindEditorExportPlugin_add_ios_linker_flags\n  = unsafePerformIO $\n      withCString \"EditorExportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_ios_linker_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_ios_linker_flags ::\n                       (EditorExportPlugin :< cls, Object :< cls) =>\n                       cls -> GodotString -> IO ()\nadd_ios_linker_flags cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorExportPlugin_add_ios_linker_flags\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorExportPlugin \"add_ios_linker_flags\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorExportPlugin.add_ios_linker_flags\n\n{-# NOINLINE bindEditorExportPlugin_add_ios_plist_content #-}\n\nbindEditorExportPlugin_add_ios_plist_content :: MethodBind\nbindEditorExportPlugin_add_ios_plist_content\n  = unsafePerformIO $\n      withCString \"EditorExportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_ios_plist_content\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_ios_plist_content ::\n                        (EditorExportPlugin :< cls, Object :< cls) =>\n                        cls -> GodotString -> IO ()\nadd_ios_plist_content cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorExportPlugin_add_ios_plist_content\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorExportPlugin \"add_ios_plist_content\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorExportPlugin.add_ios_plist_content\n\n{-# NOINLINE bindEditorExportPlugin_add_shared_object #-}\n\nbindEditorExportPlugin_add_shared_object :: MethodBind\nbindEditorExportPlugin_add_shared_object\n  = unsafePerformIO $\n      withCString \"EditorExportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_shared_object\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_shared_object ::\n                    (EditorExportPlugin :< cls, Object :< cls) =>\n                    cls -> GodotString -> PoolStringArray -> IO ()\nadd_shared_object cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorExportPlugin_add_shared_object\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorExportPlugin \"add_shared_object\"\n           '[GodotString, PoolStringArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorExportPlugin.add_shared_object\n\n{-# NOINLINE bindEditorExportPlugin_skip #-}\n\nbindEditorExportPlugin_skip :: MethodBind\nbindEditorExportPlugin_skip\n  = unsafePerformIO $\n      withCString \"EditorExportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"skip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nskip :: (EditorExportPlugin :< cls, Object :< cls) => cls -> IO ()\nskip cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorExportPlugin_skip (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorExportPlugin \"skip\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.EditorExportPlugin.skip"
  },
  {
    "path": "src/Godot/Tools/EditorFeatureProfile.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorFeatureProfile\n       (Godot.Tools.EditorFeatureProfile._FEATURE_FILESYSTEM_DOCK,\n        Godot.Tools.EditorFeatureProfile._FEATURE_3D,\n        Godot.Tools.EditorFeatureProfile._FEATURE_MAX,\n        Godot.Tools.EditorFeatureProfile._FEATURE_SCRIPT,\n        Godot.Tools.EditorFeatureProfile._FEATURE_SCENE_TREE,\n        Godot.Tools.EditorFeatureProfile._FEATURE_NODE_DOCK,\n        Godot.Tools.EditorFeatureProfile._FEATURE_IMPORT_DOCK,\n        Godot.Tools.EditorFeatureProfile._FEATURE_ASSET_LIB,\n        Godot.Tools.EditorFeatureProfile.get_feature_name,\n        Godot.Tools.EditorFeatureProfile.is_class_disabled,\n        Godot.Tools.EditorFeatureProfile.is_class_editor_disabled,\n        Godot.Tools.EditorFeatureProfile.is_class_property_disabled,\n        Godot.Tools.EditorFeatureProfile.is_feature_disabled,\n        Godot.Tools.EditorFeatureProfile.load_from_file,\n        Godot.Tools.EditorFeatureProfile.save_to_file,\n        Godot.Tools.EditorFeatureProfile.set_disable_class,\n        Godot.Tools.EditorFeatureProfile.set_disable_class_editor,\n        Godot.Tools.EditorFeatureProfile.set_disable_class_property,\n        Godot.Tools.EditorFeatureProfile.set_disable_feature)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n_FEATURE_FILESYSTEM_DOCK :: Int\n_FEATURE_FILESYSTEM_DOCK = 6\n\n_FEATURE_3D :: Int\n_FEATURE_3D = 0\n\n_FEATURE_MAX :: Int\n_FEATURE_MAX = 7\n\n_FEATURE_SCRIPT :: Int\n_FEATURE_SCRIPT = 1\n\n_FEATURE_SCENE_TREE :: Int\n_FEATURE_SCENE_TREE = 3\n\n_FEATURE_NODE_DOCK :: Int\n_FEATURE_NODE_DOCK = 5\n\n_FEATURE_IMPORT_DOCK :: Int\n_FEATURE_IMPORT_DOCK = 4\n\n_FEATURE_ASSET_LIB :: Int\n_FEATURE_ASSET_LIB = 2\n\n{-# NOINLINE bindEditorFeatureProfile_get_feature_name #-}\n\n-- | Returns the specified @feature@'s human-readable name.\nbindEditorFeatureProfile_get_feature_name :: MethodBind\nbindEditorFeatureProfile_get_feature_name\n  = unsafePerformIO $\n      withCString \"EditorFeatureProfile\" $\n        \\ clsNamePtr ->\n          withCString \"get_feature_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the specified @feature@'s human-readable name.\nget_feature_name ::\n                   (EditorFeatureProfile :< cls, Object :< cls) =>\n                   cls -> Int -> IO GodotString\nget_feature_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFeatureProfile_get_feature_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFeatureProfile \"get_feature_name\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorFeatureProfile.get_feature_name\n\n{-# NOINLINE bindEditorFeatureProfile_is_class_disabled #-}\n\n-- | Returns @true@ if the class specified by @class_name@ is disabled. When disabled, the class won't appear in the Create New Node dialog.\nbindEditorFeatureProfile_is_class_disabled :: MethodBind\nbindEditorFeatureProfile_is_class_disabled\n  = unsafePerformIO $\n      withCString \"EditorFeatureProfile\" $\n        \\ clsNamePtr ->\n          withCString \"is_class_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the class specified by @class_name@ is disabled. When disabled, the class won't appear in the Create New Node dialog.\nis_class_disabled ::\n                    (EditorFeatureProfile :< cls, Object :< cls) =>\n                    cls -> GodotString -> IO Bool\nis_class_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFeatureProfile_is_class_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFeatureProfile \"is_class_disabled\"\n           '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorFeatureProfile.is_class_disabled\n\n{-# NOINLINE bindEditorFeatureProfile_is_class_editor_disabled #-}\n\n-- | Returns @true@ if editing for the class specified by @class_name@ is disabled. When disabled, the class will still appear in the Create New Node dialog but the inspector will be read-only when selecting a node that extends the class.\nbindEditorFeatureProfile_is_class_editor_disabled :: MethodBind\nbindEditorFeatureProfile_is_class_editor_disabled\n  = unsafePerformIO $\n      withCString \"EditorFeatureProfile\" $\n        \\ clsNamePtr ->\n          withCString \"is_class_editor_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if editing for the class specified by @class_name@ is disabled. When disabled, the class will still appear in the Create New Node dialog but the inspector will be read-only when selecting a node that extends the class.\nis_class_editor_disabled ::\n                           (EditorFeatureProfile :< cls, Object :< cls) =>\n                           cls -> GodotString -> IO Bool\nis_class_editor_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorFeatureProfile_is_class_editor_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFeatureProfile \"is_class_editor_disabled\"\n           '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Tools.EditorFeatureProfile.is_class_editor_disabled\n\n{-# NOINLINE bindEditorFeatureProfile_is_class_property_disabled\n             #-}\n\n-- | Returns @true@ if @property@ is disabled in the class specified by @class_name@. When a property is disabled, it won't appear in the inspector when selecting a node that extends the class specified by @class_name@.\nbindEditorFeatureProfile_is_class_property_disabled :: MethodBind\nbindEditorFeatureProfile_is_class_property_disabled\n  = unsafePerformIO $\n      withCString \"EditorFeatureProfile\" $\n        \\ clsNamePtr ->\n          withCString \"is_class_property_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if @property@ is disabled in the class specified by @class_name@. When a property is disabled, it won't appear in the inspector when selecting a node that extends the class specified by @class_name@.\nis_class_property_disabled ::\n                             (EditorFeatureProfile :< cls, Object :< cls) =>\n                             cls -> GodotString -> GodotString -> IO Bool\nis_class_property_disabled cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorFeatureProfile_is_class_property_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFeatureProfile\n           \"is_class_property_disabled\"\n           '[GodotString, GodotString]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Tools.EditorFeatureProfile.is_class_property_disabled\n\n{-# NOINLINE bindEditorFeatureProfile_is_feature_disabled #-}\n\n-- | Returns @true@ if the @feature@ is disabled. When a feature is disabled, it will disappear from the editor entirely.\nbindEditorFeatureProfile_is_feature_disabled :: MethodBind\nbindEditorFeatureProfile_is_feature_disabled\n  = unsafePerformIO $\n      withCString \"EditorFeatureProfile\" $\n        \\ clsNamePtr ->\n          withCString \"is_feature_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the @feature@ is disabled. When a feature is disabled, it will disappear from the editor entirely.\nis_feature_disabled ::\n                      (EditorFeatureProfile :< cls, Object :< cls) =>\n                      cls -> Int -> IO Bool\nis_feature_disabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFeatureProfile_is_feature_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFeatureProfile \"is_feature_disabled\"\n           '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorFeatureProfile.is_feature_disabled\n\n{-# NOINLINE bindEditorFeatureProfile_load_from_file #-}\n\n-- | Loads an editor feature profile from a file. The file must follow the JSON format obtained by using the feature profile manager's __Export__ button or the @method save_to_file@ method.\nbindEditorFeatureProfile_load_from_file :: MethodBind\nbindEditorFeatureProfile_load_from_file\n  = unsafePerformIO $\n      withCString \"EditorFeatureProfile\" $\n        \\ clsNamePtr ->\n          withCString \"load_from_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Loads an editor feature profile from a file. The file must follow the JSON format obtained by using the feature profile manager's __Export__ button or the @method save_to_file@ method.\nload_from_file ::\n                 (EditorFeatureProfile :< cls, Object :< cls) =>\n                 cls -> GodotString -> IO Int\nload_from_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFeatureProfile_load_from_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFeatureProfile \"load_from_file\"\n           '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Tools.EditorFeatureProfile.load_from_file\n\n{-# NOINLINE bindEditorFeatureProfile_save_to_file #-}\n\n-- | Saves the editor feature profile to a file in JSON format. It can then be imported using the feature profile manager's __Import__ button or the @method load_from_file@ button.\nbindEditorFeatureProfile_save_to_file :: MethodBind\nbindEditorFeatureProfile_save_to_file\n  = unsafePerformIO $\n      withCString \"EditorFeatureProfile\" $\n        \\ clsNamePtr ->\n          withCString \"save_to_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Saves the editor feature profile to a file in JSON format. It can then be imported using the feature profile manager's __Import__ button or the @method load_from_file@ button.\nsave_to_file ::\n               (EditorFeatureProfile :< cls, Object :< cls) =>\n               cls -> GodotString -> IO Int\nsave_to_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFeatureProfile_save_to_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFeatureProfile \"save_to_file\"\n           '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Tools.EditorFeatureProfile.save_to_file\n\n{-# NOINLINE bindEditorFeatureProfile_set_disable_class #-}\n\n-- | If @disable@ is @true@, disables the class specified by @class_name@. When disabled, the class won't appear in the Create New Node dialog.\nbindEditorFeatureProfile_set_disable_class :: MethodBind\nbindEditorFeatureProfile_set_disable_class\n  = unsafePerformIO $\n      withCString \"EditorFeatureProfile\" $\n        \\ clsNamePtr ->\n          withCString \"set_disable_class\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @disable@ is @true@, disables the class specified by @class_name@. When disabled, the class won't appear in the Create New Node dialog.\nset_disable_class ::\n                    (EditorFeatureProfile :< cls, Object :< cls) =>\n                    cls -> GodotString -> Bool -> IO ()\nset_disable_class cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFeatureProfile_set_disable_class\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFeatureProfile \"set_disable_class\"\n           '[GodotString, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFeatureProfile.set_disable_class\n\n{-# NOINLINE bindEditorFeatureProfile_set_disable_class_editor #-}\n\n-- | If @disable@ is @true@, disables editing for the class specified by @class_name@. When disabled, the class will still appear in the Create New Node dialog but the inspector will be read-only when selecting a node that extends the class.\nbindEditorFeatureProfile_set_disable_class_editor :: MethodBind\nbindEditorFeatureProfile_set_disable_class_editor\n  = unsafePerformIO $\n      withCString \"EditorFeatureProfile\" $\n        \\ clsNamePtr ->\n          withCString \"set_disable_class_editor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @disable@ is @true@, disables editing for the class specified by @class_name@. When disabled, the class will still appear in the Create New Node dialog but the inspector will be read-only when selecting a node that extends the class.\nset_disable_class_editor ::\n                           (EditorFeatureProfile :< cls, Object :< cls) =>\n                           cls -> GodotString -> Bool -> IO ()\nset_disable_class_editor cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorFeatureProfile_set_disable_class_editor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFeatureProfile \"set_disable_class_editor\"\n           '[GodotString, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorFeatureProfile.set_disable_class_editor\n\n{-# NOINLINE bindEditorFeatureProfile_set_disable_class_property\n             #-}\n\n-- | If @disable@ is @true@, disables editing for @property@ in the class specified by @class_name@. When a property is disabled, it won't appear in the inspector when selecting a node that extends the class specified by @class_name@.\nbindEditorFeatureProfile_set_disable_class_property :: MethodBind\nbindEditorFeatureProfile_set_disable_class_property\n  = unsafePerformIO $\n      withCString \"EditorFeatureProfile\" $\n        \\ clsNamePtr ->\n          withCString \"set_disable_class_property\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @disable@ is @true@, disables editing for @property@ in the class specified by @class_name@. When a property is disabled, it won't appear in the inspector when selecting a node that extends the class specified by @class_name@.\nset_disable_class_property ::\n                             (EditorFeatureProfile :< cls, Object :< cls) =>\n                             cls -> GodotString -> GodotString -> Bool -> IO ()\nset_disable_class_property cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorFeatureProfile_set_disable_class_property\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFeatureProfile\n           \"set_disable_class_property\"\n           '[GodotString, GodotString, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorFeatureProfile.set_disable_class_property\n\n{-# NOINLINE bindEditorFeatureProfile_set_disable_feature #-}\n\n-- | If @disable@ is @true@, disables the editor feature specified in @feature@. When a feature is disabled, it will disappear from the editor entirely.\nbindEditorFeatureProfile_set_disable_feature :: MethodBind\nbindEditorFeatureProfile_set_disable_feature\n  = unsafePerformIO $\n      withCString \"EditorFeatureProfile\" $\n        \\ clsNamePtr ->\n          withCString \"set_disable_feature\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @disable@ is @true@, disables the editor feature specified in @feature@. When a feature is disabled, it will disappear from the editor entirely.\nset_disable_feature ::\n                      (EditorFeatureProfile :< cls, Object :< cls) =>\n                      cls -> Int -> Bool -> IO ()\nset_disable_feature cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFeatureProfile_set_disable_feature\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFeatureProfile \"set_disable_feature\"\n           '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFeatureProfile.set_disable_feature"
  },
  {
    "path": "src/Godot/Tools/EditorFileDialog.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorFileDialog\n       (Godot.Tools.EditorFileDialog._ACCESS_RESOURCES,\n        Godot.Tools.EditorFileDialog._DISPLAY_THUMBNAILS,\n        Godot.Tools.EditorFileDialog._MODE_OPEN_FILES,\n        Godot.Tools.EditorFileDialog._MODE_OPEN_FILE,\n        Godot.Tools.EditorFileDialog._MODE_SAVE_FILE,\n        Godot.Tools.EditorFileDialog._DISPLAY_LIST,\n        Godot.Tools.EditorFileDialog._ACCESS_USERDATA,\n        Godot.Tools.EditorFileDialog._ACCESS_FILESYSTEM,\n        Godot.Tools.EditorFileDialog._MODE_OPEN_DIR,\n        Godot.Tools.EditorFileDialog._MODE_OPEN_ANY,\n        Godot.Tools.EditorFileDialog.sig_dir_selected,\n        Godot.Tools.EditorFileDialog.sig_file_selected,\n        Godot.Tools.EditorFileDialog.sig_files_selected,\n        Godot.Tools.EditorFileDialog._action_pressed,\n        Godot.Tools.EditorFileDialog._cancel_pressed,\n        Godot.Tools.EditorFileDialog._dir_entered,\n        Godot.Tools.EditorFileDialog._favorite_move_down,\n        Godot.Tools.EditorFileDialog._favorite_move_up,\n        Godot.Tools.EditorFileDialog._favorite_pressed,\n        Godot.Tools.EditorFileDialog._favorite_selected,\n        Godot.Tools.EditorFileDialog._file_entered,\n        Godot.Tools.EditorFileDialog._filter_selected,\n        Godot.Tools.EditorFileDialog._go_back,\n        Godot.Tools.EditorFileDialog._go_forward,\n        Godot.Tools.EditorFileDialog._go_up,\n        Godot.Tools.EditorFileDialog._item_db_selected,\n        Godot.Tools.EditorFileDialog._item_list_item_rmb_selected,\n        Godot.Tools.EditorFileDialog._item_list_rmb_clicked,\n        Godot.Tools.EditorFileDialog._item_menu_id_pressed,\n        Godot.Tools.EditorFileDialog._item_selected,\n        Godot.Tools.EditorFileDialog._items_clear_selection,\n        Godot.Tools.EditorFileDialog._make_dir,\n        Godot.Tools.EditorFileDialog._make_dir_confirm,\n        Godot.Tools.EditorFileDialog._multi_selected,\n        Godot.Tools.EditorFileDialog._recent_selected,\n        Godot.Tools.EditorFileDialog._save_confirm_pressed,\n        Godot.Tools.EditorFileDialog._select_drive,\n        Godot.Tools.EditorFileDialog._thumbnail_done,\n        Godot.Tools.EditorFileDialog._thumbnail_result,\n        Godot.Tools.EditorFileDialog._unhandled_input,\n        Godot.Tools.EditorFileDialog._update_dir,\n        Godot.Tools.EditorFileDialog._update_file_list,\n        Godot.Tools.EditorFileDialog._update_file_name,\n        Godot.Tools.EditorFileDialog.add_filter,\n        Godot.Tools.EditorFileDialog.clear_filters,\n        Godot.Tools.EditorFileDialog.get_access,\n        Godot.Tools.EditorFileDialog.get_current_dir,\n        Godot.Tools.EditorFileDialog.get_current_file,\n        Godot.Tools.EditorFileDialog.get_current_path,\n        Godot.Tools.EditorFileDialog.get_display_mode,\n        Godot.Tools.EditorFileDialog.get_mode,\n        Godot.Tools.EditorFileDialog.get_vbox,\n        Godot.Tools.EditorFileDialog.invalidate,\n        Godot.Tools.EditorFileDialog.is_overwrite_warning_disabled,\n        Godot.Tools.EditorFileDialog.is_showing_hidden_files,\n        Godot.Tools.EditorFileDialog.set_access,\n        Godot.Tools.EditorFileDialog.set_current_dir,\n        Godot.Tools.EditorFileDialog.set_current_file,\n        Godot.Tools.EditorFileDialog.set_current_path,\n        Godot.Tools.EditorFileDialog.set_disable_overwrite_warning,\n        Godot.Tools.EditorFileDialog.set_display_mode,\n        Godot.Tools.EditorFileDialog.set_mode,\n        Godot.Tools.EditorFileDialog.set_show_hidden_files)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.ConfirmationDialog()\n\n_ACCESS_RESOURCES :: Int\n_ACCESS_RESOURCES = 0\n\n_DISPLAY_THUMBNAILS :: Int\n_DISPLAY_THUMBNAILS = 0\n\n_MODE_OPEN_FILES :: Int\n_MODE_OPEN_FILES = 1\n\n_MODE_OPEN_FILE :: Int\n_MODE_OPEN_FILE = 0\n\n_MODE_SAVE_FILE :: Int\n_MODE_SAVE_FILE = 4\n\n_DISPLAY_LIST :: Int\n_DISPLAY_LIST = 1\n\n_ACCESS_USERDATA :: Int\n_ACCESS_USERDATA = 1\n\n_ACCESS_FILESYSTEM :: Int\n_ACCESS_FILESYSTEM = 2\n\n_MODE_OPEN_DIR :: Int\n_MODE_OPEN_DIR = 2\n\n_MODE_OPEN_ANY :: Int\n_MODE_OPEN_ANY = 3\n\n-- | Emitted when a directory is selected.\nsig_dir_selected :: Godot.Internal.Dispatch.Signal EditorFileDialog\nsig_dir_selected = Godot.Internal.Dispatch.Signal \"dir_selected\"\n\ninstance NodeSignal EditorFileDialog \"dir_selected\" '[GodotString]\n\n-- | Emitted when a file is selected.\nsig_file_selected ::\n                  Godot.Internal.Dispatch.Signal EditorFileDialog\nsig_file_selected = Godot.Internal.Dispatch.Signal \"file_selected\"\n\ninstance NodeSignal EditorFileDialog \"file_selected\" '[GodotString]\n\n-- | Emitted when multiple files are selected.\nsig_files_selected ::\n                   Godot.Internal.Dispatch.Signal EditorFileDialog\nsig_files_selected\n  = Godot.Internal.Dispatch.Signal \"files_selected\"\n\ninstance NodeSignal EditorFileDialog \"files_selected\"\n           '[PoolStringArray]\n\ninstance NodeProperty EditorFileDialog \"access\" Int 'False where\n        nodeProperty = (get_access, wrapDroppingSetter set_access, Nothing)\n\ninstance NodeProperty EditorFileDialog \"current_dir\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_current_dir, wrapDroppingSetter set_current_dir, Nothing)\n\ninstance NodeProperty EditorFileDialog \"current_file\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_current_file, wrapDroppingSetter set_current_file, Nothing)\n\ninstance NodeProperty EditorFileDialog \"current_path\" GodotString\n           'False\n         where\n        nodeProperty\n          = (get_current_path, wrapDroppingSetter set_current_path, Nothing)\n\ninstance NodeProperty EditorFileDialog \"disable_overwrite_warning\"\n           Bool\n           'False\n         where\n        nodeProperty\n          = (is_overwrite_warning_disabled,\n             wrapDroppingSetter set_disable_overwrite_warning, Nothing)\n\ninstance NodeProperty EditorFileDialog \"display_mode\" Int 'False\n         where\n        nodeProperty\n          = (get_display_mode, wrapDroppingSetter set_display_mode, Nothing)\n\ninstance NodeProperty EditorFileDialog \"mode\" Int 'False where\n        nodeProperty = (get_mode, wrapDroppingSetter set_mode, Nothing)\n\ninstance NodeProperty EditorFileDialog \"show_hidden_files\" Bool\n           'False\n         where\n        nodeProperty\n          = (is_showing_hidden_files,\n             wrapDroppingSetter set_show_hidden_files, Nothing)\n\n{-# NOINLINE bindEditorFileDialog__action_pressed #-}\n\nbindEditorFileDialog__action_pressed :: MethodBind\nbindEditorFileDialog__action_pressed\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_action_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_action_pressed ::\n                  (EditorFileDialog :< cls, Object :< cls) => cls -> IO ()\n_action_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__action_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_action_pressed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._action_pressed\n\n{-# NOINLINE bindEditorFileDialog__cancel_pressed #-}\n\nbindEditorFileDialog__cancel_pressed :: MethodBind\nbindEditorFileDialog__cancel_pressed\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_cancel_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_cancel_pressed ::\n                  (EditorFileDialog :< cls, Object :< cls) => cls -> IO ()\n_cancel_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__cancel_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_cancel_pressed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._cancel_pressed\n\n{-# NOINLINE bindEditorFileDialog__dir_entered #-}\n\nbindEditorFileDialog__dir_entered :: MethodBind\nbindEditorFileDialog__dir_entered\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_dir_entered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_dir_entered ::\n               (EditorFileDialog :< cls, Object :< cls) =>\n               cls -> GodotString -> IO ()\n_dir_entered cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__dir_entered\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_dir_entered\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._dir_entered\n\n{-# NOINLINE bindEditorFileDialog__favorite_move_down #-}\n\nbindEditorFileDialog__favorite_move_down :: MethodBind\nbindEditorFileDialog__favorite_move_down\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_favorite_move_down\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_favorite_move_down ::\n                      (EditorFileDialog :< cls, Object :< cls) => cls -> IO ()\n_favorite_move_down cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__favorite_move_down\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_favorite_move_down\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._favorite_move_down\n\n{-# NOINLINE bindEditorFileDialog__favorite_move_up #-}\n\nbindEditorFileDialog__favorite_move_up :: MethodBind\nbindEditorFileDialog__favorite_move_up\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_favorite_move_up\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_favorite_move_up ::\n                    (EditorFileDialog :< cls, Object :< cls) => cls -> IO ()\n_favorite_move_up cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__favorite_move_up\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_favorite_move_up\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._favorite_move_up\n\n{-# NOINLINE bindEditorFileDialog__favorite_pressed #-}\n\nbindEditorFileDialog__favorite_pressed :: MethodBind\nbindEditorFileDialog__favorite_pressed\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_favorite_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_favorite_pressed ::\n                    (EditorFileDialog :< cls, Object :< cls) => cls -> IO ()\n_favorite_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__favorite_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_favorite_pressed\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._favorite_pressed\n\n{-# NOINLINE bindEditorFileDialog__favorite_selected #-}\n\nbindEditorFileDialog__favorite_selected :: MethodBind\nbindEditorFileDialog__favorite_selected\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_favorite_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_favorite_selected ::\n                     (EditorFileDialog :< cls, Object :< cls) => cls -> Int -> IO ()\n_favorite_selected cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__favorite_selected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_favorite_selected\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._favorite_selected\n\n{-# NOINLINE bindEditorFileDialog__file_entered #-}\n\nbindEditorFileDialog__file_entered :: MethodBind\nbindEditorFileDialog__file_entered\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_file_entered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_file_entered ::\n                (EditorFileDialog :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\n_file_entered cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__file_entered\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_file_entered\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._file_entered\n\n{-# NOINLINE bindEditorFileDialog__filter_selected #-}\n\nbindEditorFileDialog__filter_selected :: MethodBind\nbindEditorFileDialog__filter_selected\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_filter_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_filter_selected ::\n                   (EditorFileDialog :< cls, Object :< cls) => cls -> Int -> IO ()\n_filter_selected cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__filter_selected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_filter_selected\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._filter_selected\n\n{-# NOINLINE bindEditorFileDialog__go_back #-}\n\nbindEditorFileDialog__go_back :: MethodBind\nbindEditorFileDialog__go_back\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_go_back\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_go_back ::\n           (EditorFileDialog :< cls, Object :< cls) => cls -> IO ()\n_go_back cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__go_back (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_go_back\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.EditorFileDialog._go_back\n\n{-# NOINLINE bindEditorFileDialog__go_forward #-}\n\nbindEditorFileDialog__go_forward :: MethodBind\nbindEditorFileDialog__go_forward\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_go_forward\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_go_forward ::\n              (EditorFileDialog :< cls, Object :< cls) => cls -> IO ()\n_go_forward cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__go_forward\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_go_forward\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._go_forward\n\n{-# NOINLINE bindEditorFileDialog__go_up #-}\n\nbindEditorFileDialog__go_up :: MethodBind\nbindEditorFileDialog__go_up\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_go_up\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_go_up :: (EditorFileDialog :< cls, Object :< cls) => cls -> IO ()\n_go_up cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__go_up (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_go_up\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.EditorFileDialog._go_up\n\n{-# NOINLINE bindEditorFileDialog__item_db_selected #-}\n\nbindEditorFileDialog__item_db_selected :: MethodBind\nbindEditorFileDialog__item_db_selected\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_item_db_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_item_db_selected ::\n                    (EditorFileDialog :< cls, Object :< cls) => cls -> Int -> IO ()\n_item_db_selected cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__item_db_selected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_item_db_selected\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._item_db_selected\n\n{-# NOINLINE bindEditorFileDialog__item_list_item_rmb_selected #-}\n\nbindEditorFileDialog__item_list_item_rmb_selected :: MethodBind\nbindEditorFileDialog__item_list_item_rmb_selected\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_item_list_item_rmb_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_item_list_item_rmb_selected ::\n                               (EditorFileDialog :< cls, Object :< cls) =>\n                               cls -> Int -> Vector2 -> IO ()\n_item_list_item_rmb_selected cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorFileDialog__item_list_item_rmb_selected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_item_list_item_rmb_selected\"\n           '[Int, Vector2]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorFileDialog._item_list_item_rmb_selected\n\n{-# NOINLINE bindEditorFileDialog__item_list_rmb_clicked #-}\n\nbindEditorFileDialog__item_list_rmb_clicked :: MethodBind\nbindEditorFileDialog__item_list_rmb_clicked\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_item_list_rmb_clicked\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_item_list_rmb_clicked ::\n                         (EditorFileDialog :< cls, Object :< cls) => cls -> Vector2 -> IO ()\n_item_list_rmb_clicked cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__item_list_rmb_clicked\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_item_list_rmb_clicked\"\n           '[Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._item_list_rmb_clicked\n\n{-# NOINLINE bindEditorFileDialog__item_menu_id_pressed #-}\n\nbindEditorFileDialog__item_menu_id_pressed :: MethodBind\nbindEditorFileDialog__item_menu_id_pressed\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_item_menu_id_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_item_menu_id_pressed ::\n                        (EditorFileDialog :< cls, Object :< cls) => cls -> Int -> IO ()\n_item_menu_id_pressed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__item_menu_id_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_item_menu_id_pressed\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._item_menu_id_pressed\n\n{-# NOINLINE bindEditorFileDialog__item_selected #-}\n\nbindEditorFileDialog__item_selected :: MethodBind\nbindEditorFileDialog__item_selected\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_item_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_item_selected ::\n                 (EditorFileDialog :< cls, Object :< cls) => cls -> Int -> IO ()\n_item_selected cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__item_selected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_item_selected\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._item_selected\n\n{-# NOINLINE bindEditorFileDialog__items_clear_selection #-}\n\nbindEditorFileDialog__items_clear_selection :: MethodBind\nbindEditorFileDialog__items_clear_selection\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_items_clear_selection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_items_clear_selection ::\n                         (EditorFileDialog :< cls, Object :< cls) => cls -> IO ()\n_items_clear_selection cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__items_clear_selection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_items_clear_selection\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._items_clear_selection\n\n{-# NOINLINE bindEditorFileDialog__make_dir #-}\n\nbindEditorFileDialog__make_dir :: MethodBind\nbindEditorFileDialog__make_dir\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_make_dir\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_make_dir ::\n            (EditorFileDialog :< cls, Object :< cls) => cls -> IO ()\n_make_dir cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__make_dir (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_make_dir\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.EditorFileDialog._make_dir\n\n{-# NOINLINE bindEditorFileDialog__make_dir_confirm #-}\n\nbindEditorFileDialog__make_dir_confirm :: MethodBind\nbindEditorFileDialog__make_dir_confirm\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_make_dir_confirm\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_make_dir_confirm ::\n                    (EditorFileDialog :< cls, Object :< cls) => cls -> IO ()\n_make_dir_confirm cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__make_dir_confirm\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_make_dir_confirm\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._make_dir_confirm\n\n{-# NOINLINE bindEditorFileDialog__multi_selected #-}\n\nbindEditorFileDialog__multi_selected :: MethodBind\nbindEditorFileDialog__multi_selected\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_multi_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_multi_selected ::\n                  (EditorFileDialog :< cls, Object :< cls) =>\n                  cls -> Int -> Bool -> IO ()\n_multi_selected cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__multi_selected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_multi_selected\" '[Int, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._multi_selected\n\n{-# NOINLINE bindEditorFileDialog__recent_selected #-}\n\nbindEditorFileDialog__recent_selected :: MethodBind\nbindEditorFileDialog__recent_selected\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_recent_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_recent_selected ::\n                   (EditorFileDialog :< cls, Object :< cls) => cls -> Int -> IO ()\n_recent_selected cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__recent_selected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_recent_selected\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._recent_selected\n\n{-# NOINLINE bindEditorFileDialog__save_confirm_pressed #-}\n\nbindEditorFileDialog__save_confirm_pressed :: MethodBind\nbindEditorFileDialog__save_confirm_pressed\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_save_confirm_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_save_confirm_pressed ::\n                        (EditorFileDialog :< cls, Object :< cls) => cls -> IO ()\n_save_confirm_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__save_confirm_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_save_confirm_pressed\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._save_confirm_pressed\n\n{-# NOINLINE bindEditorFileDialog__select_drive #-}\n\nbindEditorFileDialog__select_drive :: MethodBind\nbindEditorFileDialog__select_drive\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_select_drive\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_select_drive ::\n                (EditorFileDialog :< cls, Object :< cls) => cls -> Int -> IO ()\n_select_drive cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__select_drive\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_select_drive\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._select_drive\n\n{-# NOINLINE bindEditorFileDialog__thumbnail_done #-}\n\nbindEditorFileDialog__thumbnail_done :: MethodBind\nbindEditorFileDialog__thumbnail_done\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_thumbnail_done\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_thumbnail_done ::\n                  (EditorFileDialog :< cls, Object :< cls) =>\n                  cls -> GodotString -> Texture -> Texture -> GodotVariant -> IO ()\n_thumbnail_done cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__thumbnail_done\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_thumbnail_done\"\n           '[GodotString, Texture, Texture, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._thumbnail_done\n\n{-# NOINLINE bindEditorFileDialog__thumbnail_result #-}\n\nbindEditorFileDialog__thumbnail_result :: MethodBind\nbindEditorFileDialog__thumbnail_result\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_thumbnail_result\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_thumbnail_result ::\n                    (EditorFileDialog :< cls, Object :< cls) =>\n                    cls -> GodotString -> Texture -> Texture -> GodotVariant -> IO ()\n_thumbnail_result cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__thumbnail_result\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_thumbnail_result\"\n           '[GodotString, Texture, Texture, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._thumbnail_result\n\n{-# NOINLINE bindEditorFileDialog__unhandled_input #-}\n\nbindEditorFileDialog__unhandled_input :: MethodBind\nbindEditorFileDialog__unhandled_input\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_unhandled_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_unhandled_input ::\n                   (EditorFileDialog :< cls, Object :< cls) =>\n                   cls -> InputEvent -> IO ()\n_unhandled_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__unhandled_input\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_unhandled_input\"\n           '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._unhandled_input\n\n{-# NOINLINE bindEditorFileDialog__update_dir #-}\n\nbindEditorFileDialog__update_dir :: MethodBind\nbindEditorFileDialog__update_dir\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_update_dir\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_dir ::\n              (EditorFileDialog :< cls, Object :< cls) => cls -> IO ()\n_update_dir cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__update_dir\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_update_dir\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._update_dir\n\n{-# NOINLINE bindEditorFileDialog__update_file_list #-}\n\nbindEditorFileDialog__update_file_list :: MethodBind\nbindEditorFileDialog__update_file_list\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_update_file_list\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_file_list ::\n                    (EditorFileDialog :< cls, Object :< cls) => cls -> IO ()\n_update_file_list cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__update_file_list\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_update_file_list\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._update_file_list\n\n{-# NOINLINE bindEditorFileDialog__update_file_name #-}\n\nbindEditorFileDialog__update_file_name :: MethodBind\nbindEditorFileDialog__update_file_name\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_update_file_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_file_name ::\n                    (EditorFileDialog :< cls, Object :< cls) => cls -> IO ()\n_update_file_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog__update_file_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"_update_file_name\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog._update_file_name\n\n{-# NOINLINE bindEditorFileDialog_add_filter #-}\n\n-- | Adds a comma-delimited file extension filter option to the @EditorFileDialog@ with an optional semi-colon-delimited label.\n--   \t\t\t\tFor example, @\"*.tscn, *.scn; Scenes\"@ results in filter text \"Scenes (*.tscn, *.scn)\".\nbindEditorFileDialog_add_filter :: MethodBind\nbindEditorFileDialog_add_filter\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"add_filter\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a comma-delimited file extension filter option to the @EditorFileDialog@ with an optional semi-colon-delimited label.\n--   \t\t\t\tFor example, @\"*.tscn, *.scn; Scenes\"@ results in filter text \"Scenes (*.tscn, *.scn)\".\nadd_filter ::\n             (EditorFileDialog :< cls, Object :< cls) =>\n             cls -> GodotString -> IO ()\nadd_filter cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog_add_filter (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"add_filter\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog.add_filter\n\n{-# NOINLINE bindEditorFileDialog_clear_filters #-}\n\n-- | Removes all filters except for \"All Files (*)\".\nbindEditorFileDialog_clear_filters :: MethodBind\nbindEditorFileDialog_clear_filters\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"clear_filters\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes all filters except for \"All Files (*)\".\nclear_filters ::\n                (EditorFileDialog :< cls, Object :< cls) => cls -> IO ()\nclear_filters cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog_clear_filters\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"clear_filters\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog.clear_filters\n\n{-# NOINLINE bindEditorFileDialog_get_access #-}\n\n-- | The location from which the user may select a file, including @res://@, @user://@, and the local file system.\nbindEditorFileDialog_get_access :: MethodBind\nbindEditorFileDialog_get_access\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_access\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The location from which the user may select a file, including @res://@, @user://@, and the local file system.\nget_access ::\n             (EditorFileDialog :< cls, Object :< cls) => cls -> IO Int\nget_access cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog_get_access (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"get_access\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog.get_access\n\n{-# NOINLINE bindEditorFileDialog_get_current_dir #-}\n\n-- | The currently occupied directory.\nbindEditorFileDialog_get_current_dir :: MethodBind\nbindEditorFileDialog_get_current_dir\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_dir\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The currently occupied directory.\nget_current_dir ::\n                  (EditorFileDialog :< cls, Object :< cls) => cls -> IO GodotString\nget_current_dir cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog_get_current_dir\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"get_current_dir\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog.get_current_dir\n\n{-# NOINLINE bindEditorFileDialog_get_current_file #-}\n\n-- | The currently selected file.\nbindEditorFileDialog_get_current_file :: MethodBind\nbindEditorFileDialog_get_current_file\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The currently selected file.\nget_current_file ::\n                   (EditorFileDialog :< cls, Object :< cls) => cls -> IO GodotString\nget_current_file cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog_get_current_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"get_current_file\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog.get_current_file\n\n{-# NOINLINE bindEditorFileDialog_get_current_path #-}\n\n-- | The file system path in the address bar.\nbindEditorFileDialog_get_current_path :: MethodBind\nbindEditorFileDialog_get_current_path\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The file system path in the address bar.\nget_current_path ::\n                   (EditorFileDialog :< cls, Object :< cls) => cls -> IO GodotString\nget_current_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog_get_current_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"get_current_path\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog.get_current_path\n\n{-# NOINLINE bindEditorFileDialog_get_display_mode #-}\n\n-- | The view format in which the @EditorFileDialog@ displays resources to the user.\nbindEditorFileDialog_get_display_mode :: MethodBind\nbindEditorFileDialog_get_display_mode\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_display_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The view format in which the @EditorFileDialog@ displays resources to the user.\nget_display_mode ::\n                   (EditorFileDialog :< cls, Object :< cls) => cls -> IO Int\nget_display_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog_get_display_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"get_display_mode\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog.get_display_mode\n\n{-# NOINLINE bindEditorFileDialog_get_mode #-}\n\n-- | The purpose of the @EditorFileDialog@, which defines the allowed behaviors.\nbindEditorFileDialog_get_mode :: MethodBind\nbindEditorFileDialog_get_mode\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The purpose of the @EditorFileDialog@, which defines the allowed behaviors.\nget_mode ::\n           (EditorFileDialog :< cls, Object :< cls) => cls -> IO Int\nget_mode cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog_get_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"get_mode\" '[] (IO Int) where\n        nodeMethod = Godot.Tools.EditorFileDialog.get_mode\n\n{-# NOINLINE bindEditorFileDialog_get_vbox #-}\n\n-- | Returns the @VBoxContainer@ used to display the file system.\nbindEditorFileDialog_get_vbox :: MethodBind\nbindEditorFileDialog_get_vbox\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"get_vbox\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @VBoxContainer@ used to display the file system.\nget_vbox ::\n           (EditorFileDialog :< cls, Object :< cls) => cls -> IO VBoxContainer\nget_vbox cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog_get_vbox (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"get_vbox\" '[]\n           (IO VBoxContainer)\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog.get_vbox\n\n{-# NOINLINE bindEditorFileDialog_invalidate #-}\n\n-- | Notify the @EditorFileDialog@ that its view of the data is no longer accurate. Updates the view contents on next view update.\nbindEditorFileDialog_invalidate :: MethodBind\nbindEditorFileDialog_invalidate\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"invalidate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Notify the @EditorFileDialog@ that its view of the data is no longer accurate. Updates the view contents on next view update.\ninvalidate ::\n             (EditorFileDialog :< cls, Object :< cls) => cls -> IO ()\ninvalidate cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog_invalidate (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"invalidate\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.EditorFileDialog.invalidate\n\n{-# NOINLINE bindEditorFileDialog_is_overwrite_warning_disabled #-}\n\n-- | If @true@, the @EditorFileDialog@ will not warn the user before overwriting files.\nbindEditorFileDialog_is_overwrite_warning_disabled :: MethodBind\nbindEditorFileDialog_is_overwrite_warning_disabled\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"is_overwrite_warning_disabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @EditorFileDialog@ will not warn the user before overwriting files.\nis_overwrite_warning_disabled ::\n                                (EditorFileDialog :< cls, Object :< cls) => cls -> IO Bool\nis_overwrite_warning_disabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorFileDialog_is_overwrite_warning_disabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog\n           \"is_overwrite_warning_disabled\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Tools.EditorFileDialog.is_overwrite_warning_disabled\n\n{-# NOINLINE bindEditorFileDialog_is_showing_hidden_files #-}\n\n-- | If @true@, hidden files and directories will be visible in the @EditorFileDialog@.\nbindEditorFileDialog_is_showing_hidden_files :: MethodBind\nbindEditorFileDialog_is_showing_hidden_files\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"is_showing_hidden_files\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, hidden files and directories will be visible in the @EditorFileDialog@.\nis_showing_hidden_files ::\n                          (EditorFileDialog :< cls, Object :< cls) => cls -> IO Bool\nis_showing_hidden_files cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog_is_showing_hidden_files\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"is_showing_hidden_files\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog.is_showing_hidden_files\n\n{-# NOINLINE bindEditorFileDialog_set_access #-}\n\n-- | The location from which the user may select a file, including @res://@, @user://@, and the local file system.\nbindEditorFileDialog_set_access :: MethodBind\nbindEditorFileDialog_set_access\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_access\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The location from which the user may select a file, including @res://@, @user://@, and the local file system.\nset_access ::\n             (EditorFileDialog :< cls, Object :< cls) => cls -> Int -> IO ()\nset_access cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog_set_access (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"set_access\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog.set_access\n\n{-# NOINLINE bindEditorFileDialog_set_current_dir #-}\n\n-- | The currently occupied directory.\nbindEditorFileDialog_set_current_dir :: MethodBind\nbindEditorFileDialog_set_current_dir\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_current_dir\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The currently occupied directory.\nset_current_dir ::\n                  (EditorFileDialog :< cls, Object :< cls) =>\n                  cls -> GodotString -> IO ()\nset_current_dir cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog_set_current_dir\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"set_current_dir\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog.set_current_dir\n\n{-# NOINLINE bindEditorFileDialog_set_current_file #-}\n\n-- | The currently selected file.\nbindEditorFileDialog_set_current_file :: MethodBind\nbindEditorFileDialog_set_current_file\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_current_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The currently selected file.\nset_current_file ::\n                   (EditorFileDialog :< cls, Object :< cls) =>\n                   cls -> GodotString -> IO ()\nset_current_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog_set_current_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"set_current_file\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog.set_current_file\n\n{-# NOINLINE bindEditorFileDialog_set_current_path #-}\n\n-- | The file system path in the address bar.\nbindEditorFileDialog_set_current_path :: MethodBind\nbindEditorFileDialog_set_current_path\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_current_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The file system path in the address bar.\nset_current_path ::\n                   (EditorFileDialog :< cls, Object :< cls) =>\n                   cls -> GodotString -> IO ()\nset_current_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog_set_current_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"set_current_path\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog.set_current_path\n\n{-# NOINLINE bindEditorFileDialog_set_disable_overwrite_warning #-}\n\n-- | If @true@, the @EditorFileDialog@ will not warn the user before overwriting files.\nbindEditorFileDialog_set_disable_overwrite_warning :: MethodBind\nbindEditorFileDialog_set_disable_overwrite_warning\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_disable_overwrite_warning\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, the @EditorFileDialog@ will not warn the user before overwriting files.\nset_disable_overwrite_warning ::\n                                (EditorFileDialog :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_disable_overwrite_warning cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorFileDialog_set_disable_overwrite_warning\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog\n           \"set_disable_overwrite_warning\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorFileDialog.set_disable_overwrite_warning\n\n{-# NOINLINE bindEditorFileDialog_set_display_mode #-}\n\n-- | The view format in which the @EditorFileDialog@ displays resources to the user.\nbindEditorFileDialog_set_display_mode :: MethodBind\nbindEditorFileDialog_set_display_mode\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_display_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The view format in which the @EditorFileDialog@ displays resources to the user.\nset_display_mode ::\n                   (EditorFileDialog :< cls, Object :< cls) => cls -> Int -> IO ()\nset_display_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog_set_display_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"set_display_mode\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog.set_display_mode\n\n{-# NOINLINE bindEditorFileDialog_set_mode #-}\n\n-- | The purpose of the @EditorFileDialog@, which defines the allowed behaviors.\nbindEditorFileDialog_set_mode :: MethodBind\nbindEditorFileDialog_set_mode\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | The purpose of the @EditorFileDialog@, which defines the allowed behaviors.\nset_mode ::\n           (EditorFileDialog :< cls, Object :< cls) => cls -> Int -> IO ()\nset_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog_set_mode (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"set_mode\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog.set_mode\n\n{-# NOINLINE bindEditorFileDialog_set_show_hidden_files #-}\n\n-- | If @true@, hidden files and directories will be visible in the @EditorFileDialog@.\nbindEditorFileDialog_set_show_hidden_files :: MethodBind\nbindEditorFileDialog_set_show_hidden_files\n  = unsafePerformIO $\n      withCString \"EditorFileDialog\" $\n        \\ clsNamePtr ->\n          withCString \"set_show_hidden_files\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, hidden files and directories will be visible in the @EditorFileDialog@.\nset_show_hidden_files ::\n                        (EditorFileDialog :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_show_hidden_files cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileDialog_set_show_hidden_files\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileDialog \"set_show_hidden_files\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileDialog.set_show_hidden_files"
  },
  {
    "path": "src/Godot/Tools/EditorFileSystem.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorFileSystem\n       (Godot.Tools.EditorFileSystem.sig_filesystem_changed,\n        Godot.Tools.EditorFileSystem.sig_resources_reimported,\n        Godot.Tools.EditorFileSystem.sig_resources_reload,\n        Godot.Tools.EditorFileSystem.sig_sources_changed,\n        Godot.Tools.EditorFileSystem.get_file_type,\n        Godot.Tools.EditorFileSystem.get_filesystem,\n        Godot.Tools.EditorFileSystem.get_filesystem_path,\n        Godot.Tools.EditorFileSystem.get_scanning_progress,\n        Godot.Tools.EditorFileSystem.is_scanning,\n        Godot.Tools.EditorFileSystem.scan,\n        Godot.Tools.EditorFileSystem.scan_sources,\n        Godot.Tools.EditorFileSystem.update_file,\n        Godot.Tools.EditorFileSystem.update_script_classes)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\n-- | Emitted if the filesystem changed.\nsig_filesystem_changed ::\n                       Godot.Internal.Dispatch.Signal EditorFileSystem\nsig_filesystem_changed\n  = Godot.Internal.Dispatch.Signal \"filesystem_changed\"\n\ninstance NodeSignal EditorFileSystem \"filesystem_changed\" '[]\n\n-- | Remitted if a resource is reimported.\nsig_resources_reimported ::\n                         Godot.Internal.Dispatch.Signal EditorFileSystem\nsig_resources_reimported\n  = Godot.Internal.Dispatch.Signal \"resources_reimported\"\n\ninstance NodeSignal EditorFileSystem \"resources_reimported\"\n           '[PoolStringArray]\n\n-- | Emitted if at least one resource is reloaded when the filesystem is scanned.\nsig_resources_reload ::\n                     Godot.Internal.Dispatch.Signal EditorFileSystem\nsig_resources_reload\n  = Godot.Internal.Dispatch.Signal \"resources_reload\"\n\ninstance NodeSignal EditorFileSystem \"resources_reload\"\n           '[PoolStringArray]\n\n-- | Emitted if the source of any imported file changed.\nsig_sources_changed ::\n                    Godot.Internal.Dispatch.Signal EditorFileSystem\nsig_sources_changed\n  = Godot.Internal.Dispatch.Signal \"sources_changed\"\n\ninstance NodeSignal EditorFileSystem \"sources_changed\" '[Bool]\n\n{-# NOINLINE bindEditorFileSystem_get_file_type #-}\n\n-- | Gets the type of the file, given the full path.\nbindEditorFileSystem_get_file_type :: MethodBind\nbindEditorFileSystem_get_file_type\n  = unsafePerformIO $\n      withCString \"EditorFileSystem\" $\n        \\ clsNamePtr ->\n          withCString \"get_file_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the type of the file, given the full path.\nget_file_type ::\n                (EditorFileSystem :< cls, Object :< cls) =>\n                cls -> GodotString -> IO GodotString\nget_file_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileSystem_get_file_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystem \"get_file_type\" '[GodotString]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorFileSystem.get_file_type\n\n{-# NOINLINE bindEditorFileSystem_get_filesystem #-}\n\n-- | Gets the root directory object.\nbindEditorFileSystem_get_filesystem :: MethodBind\nbindEditorFileSystem_get_filesystem\n  = unsafePerformIO $\n      withCString \"EditorFileSystem\" $\n        \\ clsNamePtr ->\n          withCString \"get_filesystem\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the root directory object.\nget_filesystem ::\n                 (EditorFileSystem :< cls, Object :< cls) =>\n                 cls -> IO EditorFileSystemDirectory\nget_filesystem cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileSystem_get_filesystem\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystem \"get_filesystem\" '[]\n           (IO EditorFileSystemDirectory)\n         where\n        nodeMethod = Godot.Tools.EditorFileSystem.get_filesystem\n\n{-# NOINLINE bindEditorFileSystem_get_filesystem_path #-}\n\n-- | Returns a view into the filesystem at @path@.\nbindEditorFileSystem_get_filesystem_path :: MethodBind\nbindEditorFileSystem_get_filesystem_path\n  = unsafePerformIO $\n      withCString \"EditorFileSystem\" $\n        \\ clsNamePtr ->\n          withCString \"get_filesystem_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a view into the filesystem at @path@.\nget_filesystem_path ::\n                      (EditorFileSystem :< cls, Object :< cls) =>\n                      cls -> GodotString -> IO EditorFileSystemDirectory\nget_filesystem_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileSystem_get_filesystem_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystem \"get_filesystem_path\"\n           '[GodotString]\n           (IO EditorFileSystemDirectory)\n         where\n        nodeMethod = Godot.Tools.EditorFileSystem.get_filesystem_path\n\n{-# NOINLINE bindEditorFileSystem_get_scanning_progress #-}\n\n-- | Returns the scan progress for 0 to 1 if the FS is being scanned.\nbindEditorFileSystem_get_scanning_progress :: MethodBind\nbindEditorFileSystem_get_scanning_progress\n  = unsafePerformIO $\n      withCString \"EditorFileSystem\" $\n        \\ clsNamePtr ->\n          withCString \"get_scanning_progress\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the scan progress for 0 to 1 if the FS is being scanned.\nget_scanning_progress ::\n                        (EditorFileSystem :< cls, Object :< cls) => cls -> IO Float\nget_scanning_progress cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileSystem_get_scanning_progress\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystem \"get_scanning_progress\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Tools.EditorFileSystem.get_scanning_progress\n\n{-# NOINLINE bindEditorFileSystem_is_scanning #-}\n\n-- | Returns @true@ of the filesystem is being scanned.\nbindEditorFileSystem_is_scanning :: MethodBind\nbindEditorFileSystem_is_scanning\n  = unsafePerformIO $\n      withCString \"EditorFileSystem\" $\n        \\ clsNamePtr ->\n          withCString \"is_scanning\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ of the filesystem is being scanned.\nis_scanning ::\n              (EditorFileSystem :< cls, Object :< cls) => cls -> IO Bool\nis_scanning cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileSystem_is_scanning\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystem \"is_scanning\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorFileSystem.is_scanning\n\n{-# NOINLINE bindEditorFileSystem_scan #-}\n\n-- | Scan the filesystem for changes.\nbindEditorFileSystem_scan :: MethodBind\nbindEditorFileSystem_scan\n  = unsafePerformIO $\n      withCString \"EditorFileSystem\" $\n        \\ clsNamePtr ->\n          withCString \"scan\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Scan the filesystem for changes.\nscan :: (EditorFileSystem :< cls, Object :< cls) => cls -> IO ()\nscan cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileSystem_scan (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystem \"scan\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.EditorFileSystem.scan\n\n{-# NOINLINE bindEditorFileSystem_scan_sources #-}\n\n-- | Check if the source of any imported resource changed.\nbindEditorFileSystem_scan_sources :: MethodBind\nbindEditorFileSystem_scan_sources\n  = unsafePerformIO $\n      withCString \"EditorFileSystem\" $\n        \\ clsNamePtr ->\n          withCString \"scan_sources\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Check if the source of any imported resource changed.\nscan_sources ::\n               (EditorFileSystem :< cls, Object :< cls) => cls -> IO ()\nscan_sources cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileSystem_scan_sources\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystem \"scan_sources\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileSystem.scan_sources\n\n{-# NOINLINE bindEditorFileSystem_update_file #-}\n\n-- | Update a file information. Call this if an external program (not Godot) modified the file.\nbindEditorFileSystem_update_file :: MethodBind\nbindEditorFileSystem_update_file\n  = unsafePerformIO $\n      withCString \"EditorFileSystem\" $\n        \\ clsNamePtr ->\n          withCString \"update_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Update a file information. Call this if an external program (not Godot) modified the file.\nupdate_file ::\n              (EditorFileSystem :< cls, Object :< cls) =>\n              cls -> GodotString -> IO ()\nupdate_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileSystem_update_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystem \"update_file\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileSystem.update_file\n\n{-# NOINLINE bindEditorFileSystem_update_script_classes #-}\n\n-- | Scans the script files and updates the list of custom class names.\nbindEditorFileSystem_update_script_classes :: MethodBind\nbindEditorFileSystem_update_script_classes\n  = unsafePerformIO $\n      withCString \"EditorFileSystem\" $\n        \\ clsNamePtr ->\n          withCString \"update_script_classes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Scans the script files and updates the list of custom class names.\nupdate_script_classes ::\n                        (EditorFileSystem :< cls, Object :< cls) => cls -> IO ()\nupdate_script_classes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileSystem_update_script_classes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystem \"update_script_classes\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorFileSystem.update_script_classes"
  },
  {
    "path": "src/Godot/Tools/EditorFileSystemDirectory.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorFileSystemDirectory\n       (Godot.Tools.EditorFileSystemDirectory.find_dir_index,\n        Godot.Tools.EditorFileSystemDirectory.find_file_index,\n        Godot.Tools.EditorFileSystemDirectory.get_file,\n        Godot.Tools.EditorFileSystemDirectory.get_file_count,\n        Godot.Tools.EditorFileSystemDirectory.get_file_import_is_valid,\n        Godot.Tools.EditorFileSystemDirectory.get_file_path,\n        Godot.Tools.EditorFileSystemDirectory.get_file_script_class_extends,\n        Godot.Tools.EditorFileSystemDirectory.get_file_script_class_name,\n        Godot.Tools.EditorFileSystemDirectory.get_file_type,\n        Godot.Tools.EditorFileSystemDirectory.get_name,\n        Godot.Tools.EditorFileSystemDirectory.get_parent,\n        Godot.Tools.EditorFileSystemDirectory.get_path,\n        Godot.Tools.EditorFileSystemDirectory.get_subdir,\n        Godot.Tools.EditorFileSystemDirectory.get_subdir_count)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n{-# NOINLINE bindEditorFileSystemDirectory_find_dir_index #-}\n\n-- | Returns the index of the directory with name @name@ or @-1@ if not found.\nbindEditorFileSystemDirectory_find_dir_index :: MethodBind\nbindEditorFileSystemDirectory_find_dir_index\n  = unsafePerformIO $\n      withCString \"EditorFileSystemDirectory\" $\n        \\ clsNamePtr ->\n          withCString \"find_dir_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the index of the directory with name @name@ or @-1@ if not found.\nfind_dir_index ::\n                 (EditorFileSystemDirectory :< cls, Object :< cls) =>\n                 cls -> GodotString -> IO Int\nfind_dir_index cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileSystemDirectory_find_dir_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystemDirectory \"find_dir_index\"\n           '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Tools.EditorFileSystemDirectory.find_dir_index\n\n{-# NOINLINE bindEditorFileSystemDirectory_find_file_index #-}\n\n-- | Returns the index of the file with name @name@ or @-1@ if not found.\nbindEditorFileSystemDirectory_find_file_index :: MethodBind\nbindEditorFileSystemDirectory_find_file_index\n  = unsafePerformIO $\n      withCString \"EditorFileSystemDirectory\" $\n        \\ clsNamePtr ->\n          withCString \"find_file_index\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the index of the file with name @name@ or @-1@ if not found.\nfind_file_index ::\n                  (EditorFileSystemDirectory :< cls, Object :< cls) =>\n                  cls -> GodotString -> IO Int\nfind_file_index cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorFileSystemDirectory_find_file_index\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystemDirectory \"find_file_index\"\n           '[GodotString]\n           (IO Int)\n         where\n        nodeMethod = Godot.Tools.EditorFileSystemDirectory.find_file_index\n\n{-# NOINLINE bindEditorFileSystemDirectory_get_file #-}\n\n-- | Returns the name of the file at index @idx@.\nbindEditorFileSystemDirectory_get_file :: MethodBind\nbindEditorFileSystemDirectory_get_file\n  = unsafePerformIO $\n      withCString \"EditorFileSystemDirectory\" $\n        \\ clsNamePtr ->\n          withCString \"get_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of the file at index @idx@.\nget_file ::\n           (EditorFileSystemDirectory :< cls, Object :< cls) =>\n           cls -> Int -> IO GodotString\nget_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileSystemDirectory_get_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystemDirectory \"get_file\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorFileSystemDirectory.get_file\n\n{-# NOINLINE bindEditorFileSystemDirectory_get_file_count #-}\n\n-- | Returns the number of files in this directory.\nbindEditorFileSystemDirectory_get_file_count :: MethodBind\nbindEditorFileSystemDirectory_get_file_count\n  = unsafePerformIO $\n      withCString \"EditorFileSystemDirectory\" $\n        \\ clsNamePtr ->\n          withCString \"get_file_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of files in this directory.\nget_file_count ::\n                 (EditorFileSystemDirectory :< cls, Object :< cls) => cls -> IO Int\nget_file_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileSystemDirectory_get_file_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystemDirectory \"get_file_count\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Tools.EditorFileSystemDirectory.get_file_count\n\n{-# NOINLINE bindEditorFileSystemDirectory_get_file_import_is_valid\n             #-}\n\n-- | Returns @true@ if the file at index @idx@ imported properly.\nbindEditorFileSystemDirectory_get_file_import_is_valid ::\n                                                       MethodBind\nbindEditorFileSystemDirectory_get_file_import_is_valid\n  = unsafePerformIO $\n      withCString \"EditorFileSystemDirectory\" $\n        \\ clsNamePtr ->\n          withCString \"get_file_import_is_valid\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the file at index @idx@ imported properly.\nget_file_import_is_valid ::\n                           (EditorFileSystemDirectory :< cls, Object :< cls) =>\n                           cls -> Int -> IO Bool\nget_file_import_is_valid cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorFileSystemDirectory_get_file_import_is_valid\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystemDirectory\n           \"get_file_import_is_valid\"\n           '[Int]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Tools.EditorFileSystemDirectory.get_file_import_is_valid\n\n{-# NOINLINE bindEditorFileSystemDirectory_get_file_path #-}\n\n-- | Returns the path to the file at index @idx@.\nbindEditorFileSystemDirectory_get_file_path :: MethodBind\nbindEditorFileSystemDirectory_get_file_path\n  = unsafePerformIO $\n      withCString \"EditorFileSystemDirectory\" $\n        \\ clsNamePtr ->\n          withCString \"get_file_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the path to the file at index @idx@.\nget_file_path ::\n                (EditorFileSystemDirectory :< cls, Object :< cls) =>\n                cls -> Int -> IO GodotString\nget_file_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileSystemDirectory_get_file_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystemDirectory \"get_file_path\"\n           '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorFileSystemDirectory.get_file_path\n\n{-# NOINLINE bindEditorFileSystemDirectory_get_file_script_class_extends\n             #-}\n\n-- | Returns the base class of the script class defined in the file at index @idx@. If the file doesn't define a script class using the @class_name@ syntax, this will return an empty string.\nbindEditorFileSystemDirectory_get_file_script_class_extends ::\n                                                            MethodBind\nbindEditorFileSystemDirectory_get_file_script_class_extends\n  = unsafePerformIO $\n      withCString \"EditorFileSystemDirectory\" $\n        \\ clsNamePtr ->\n          withCString \"get_file_script_class_extends\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the base class of the script class defined in the file at index @idx@. If the file doesn't define a script class using the @class_name@ syntax, this will return an empty string.\nget_file_script_class_extends ::\n                                (EditorFileSystemDirectory :< cls, Object :< cls) =>\n                                cls -> Int -> IO GodotString\nget_file_script_class_extends cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorFileSystemDirectory_get_file_script_class_extends\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystemDirectory\n           \"get_file_script_class_extends\"\n           '[Int]\n           (IO GodotString)\n         where\n        nodeMethod\n          = Godot.Tools.EditorFileSystemDirectory.get_file_script_class_extends\n\n{-# NOINLINE bindEditorFileSystemDirectory_get_file_script_class_name\n             #-}\n\n-- | Returns the name of the script class defined in the file at index @idx@. If the file doesn't define a script class using the @class_name@ syntax, this will return an empty string.\nbindEditorFileSystemDirectory_get_file_script_class_name ::\n                                                         MethodBind\nbindEditorFileSystemDirectory_get_file_script_class_name\n  = unsafePerformIO $\n      withCString \"EditorFileSystemDirectory\" $\n        \\ clsNamePtr ->\n          withCString \"get_file_script_class_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of the script class defined in the file at index @idx@. If the file doesn't define a script class using the @class_name@ syntax, this will return an empty string.\nget_file_script_class_name ::\n                             (EditorFileSystemDirectory :< cls, Object :< cls) =>\n                             cls -> Int -> IO GodotString\nget_file_script_class_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorFileSystemDirectory_get_file_script_class_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystemDirectory\n           \"get_file_script_class_name\"\n           '[Int]\n           (IO GodotString)\n         where\n        nodeMethod\n          = Godot.Tools.EditorFileSystemDirectory.get_file_script_class_name\n\n{-# NOINLINE bindEditorFileSystemDirectory_get_file_type #-}\n\n-- | Returns the file extension of the file at index @idx@.\nbindEditorFileSystemDirectory_get_file_type :: MethodBind\nbindEditorFileSystemDirectory_get_file_type\n  = unsafePerformIO $\n      withCString \"EditorFileSystemDirectory\" $\n        \\ clsNamePtr ->\n          withCString \"get_file_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the file extension of the file at index @idx@.\nget_file_type ::\n                (EditorFileSystemDirectory :< cls, Object :< cls) =>\n                cls -> Int -> IO GodotString\nget_file_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileSystemDirectory_get_file_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystemDirectory \"get_file_type\"\n           '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorFileSystemDirectory.get_file_type\n\n{-# NOINLINE bindEditorFileSystemDirectory_get_name #-}\n\n-- | Returns the name of this directory.\nbindEditorFileSystemDirectory_get_name :: MethodBind\nbindEditorFileSystemDirectory_get_name\n  = unsafePerformIO $\n      withCString \"EditorFileSystemDirectory\" $\n        \\ clsNamePtr ->\n          withCString \"get_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of this directory.\nget_name ::\n           (EditorFileSystemDirectory :< cls, Object :< cls) =>\n           cls -> IO GodotString\nget_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileSystemDirectory_get_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystemDirectory \"get_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorFileSystemDirectory.get_name\n\n{-# NOINLINE bindEditorFileSystemDirectory_get_parent #-}\n\n-- | Returns the parent directory for this directory or @null@ if called on a directory at @res://@ or @user://@.\nbindEditorFileSystemDirectory_get_parent :: MethodBind\nbindEditorFileSystemDirectory_get_parent\n  = unsafePerformIO $\n      withCString \"EditorFileSystemDirectory\" $\n        \\ clsNamePtr ->\n          withCString \"get_parent\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the parent directory for this directory or @null@ if called on a directory at @res://@ or @user://@.\nget_parent ::\n             (EditorFileSystemDirectory :< cls, Object :< cls) =>\n             cls -> IO EditorFileSystemDirectory\nget_parent cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileSystemDirectory_get_parent\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystemDirectory \"get_parent\" '[]\n           (IO EditorFileSystemDirectory)\n         where\n        nodeMethod = Godot.Tools.EditorFileSystemDirectory.get_parent\n\n{-# NOINLINE bindEditorFileSystemDirectory_get_path #-}\n\n-- | Returns the path to this directory.\nbindEditorFileSystemDirectory_get_path :: MethodBind\nbindEditorFileSystemDirectory_get_path\n  = unsafePerformIO $\n      withCString \"EditorFileSystemDirectory\" $\n        \\ clsNamePtr ->\n          withCString \"get_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the path to this directory.\nget_path ::\n           (EditorFileSystemDirectory :< cls, Object :< cls) =>\n           cls -> IO GodotString\nget_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileSystemDirectory_get_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystemDirectory \"get_path\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorFileSystemDirectory.get_path\n\n{-# NOINLINE bindEditorFileSystemDirectory_get_subdir #-}\n\n-- | Returns the subdirectory at index @idx@.\nbindEditorFileSystemDirectory_get_subdir :: MethodBind\nbindEditorFileSystemDirectory_get_subdir\n  = unsafePerformIO $\n      withCString \"EditorFileSystemDirectory\" $\n        \\ clsNamePtr ->\n          withCString \"get_subdir\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the subdirectory at index @idx@.\nget_subdir ::\n             (EditorFileSystemDirectory :< cls, Object :< cls) =>\n             cls -> Int -> IO EditorFileSystemDirectory\nget_subdir cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorFileSystemDirectory_get_subdir\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystemDirectory \"get_subdir\" '[Int]\n           (IO EditorFileSystemDirectory)\n         where\n        nodeMethod = Godot.Tools.EditorFileSystemDirectory.get_subdir\n\n{-# NOINLINE bindEditorFileSystemDirectory_get_subdir_count #-}\n\n-- | Returns the number of subdirectories in this directory.\nbindEditorFileSystemDirectory_get_subdir_count :: MethodBind\nbindEditorFileSystemDirectory_get_subdir_count\n  = unsafePerformIO $\n      withCString \"EditorFileSystemDirectory\" $\n        \\ clsNamePtr ->\n          withCString \"get_subdir_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the number of subdirectories in this directory.\nget_subdir_count ::\n                   (EditorFileSystemDirectory :< cls, Object :< cls) => cls -> IO Int\nget_subdir_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorFileSystemDirectory_get_subdir_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorFileSystemDirectory \"get_subdir_count\"\n           '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Tools.EditorFileSystemDirectory.get_subdir_count"
  },
  {
    "path": "src/Godot/Tools/EditorImportPlugin.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorImportPlugin\n       (Godot.Tools.EditorImportPlugin.get_import_options,\n        Godot.Tools.EditorImportPlugin.get_import_order,\n        Godot.Tools.EditorImportPlugin.get_importer_name,\n        Godot.Tools.EditorImportPlugin.get_option_visibility,\n        Godot.Tools.EditorImportPlugin.get_preset_count,\n        Godot.Tools.EditorImportPlugin.get_preset_name,\n        Godot.Tools.EditorImportPlugin.get_priority,\n        Godot.Tools.EditorImportPlugin.get_recognized_extensions,\n        Godot.Tools.EditorImportPlugin.get_resource_type,\n        Godot.Tools.EditorImportPlugin.get_save_extension,\n        Godot.Tools.EditorImportPlugin.get_visible_name,\n        Godot.Tools.EditorImportPlugin.import')\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.ResourceImporter()\n\n{-# NOINLINE bindEditorImportPlugin_get_import_options #-}\n\n-- | Gets the options and default values for the preset at this index. Returns an Array of Dictionaries with the following keys: @name@, @default_value@, @property_hint@ (optional), @hint_string@ (optional), @usage@ (optional).\nbindEditorImportPlugin_get_import_options :: MethodBind\nbindEditorImportPlugin_get_import_options\n  = unsafePerformIO $\n      withCString \"EditorImportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_import_options\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the options and default values for the preset at this index. Returns an Array of Dictionaries with the following keys: @name@, @default_value@, @property_hint@ (optional), @hint_string@ (optional), @usage@ (optional).\nget_import_options ::\n                     (EditorImportPlugin :< cls, Object :< cls) =>\n                     cls -> Int -> IO Array\nget_import_options cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorImportPlugin_get_import_options\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorImportPlugin \"get_import_options\" '[Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Tools.EditorImportPlugin.get_import_options\n\n{-# NOINLINE bindEditorImportPlugin_get_import_order #-}\n\n-- | Gets the order of this importer to be run when importing resources. Higher values will be called later. Use this to ensure the importer runs after the dependencies are already imported.\nbindEditorImportPlugin_get_import_order :: MethodBind\nbindEditorImportPlugin_get_import_order\n  = unsafePerformIO $\n      withCString \"EditorImportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_import_order\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the order of this importer to be run when importing resources. Higher values will be called later. Use this to ensure the importer runs after the dependencies are already imported.\nget_import_order ::\n                   (EditorImportPlugin :< cls, Object :< cls) => cls -> IO Int\nget_import_order cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorImportPlugin_get_import_order\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorImportPlugin \"get_import_order\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Tools.EditorImportPlugin.get_import_order\n\n{-# NOINLINE bindEditorImportPlugin_get_importer_name #-}\n\n-- | Gets the unique name of the importer.\nbindEditorImportPlugin_get_importer_name :: MethodBind\nbindEditorImportPlugin_get_importer_name\n  = unsafePerformIO $\n      withCString \"EditorImportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_importer_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the unique name of the importer.\nget_importer_name ::\n                    (EditorImportPlugin :< cls, Object :< cls) => cls -> IO GodotString\nget_importer_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorImportPlugin_get_importer_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorImportPlugin \"get_importer_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorImportPlugin.get_importer_name\n\n{-# NOINLINE bindEditorImportPlugin_get_option_visibility #-}\n\n-- | This method can be overridden to hide specific import options if conditions are met. This is mainly useful for hiding options that depend on others if one of them is disabled. For example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc get_option_visibility(option, options):\n--   \t\t\t\t    # Only show the lossy quality setting if the compression mode is set to \"Lossy\".\n--   \t\t\t\t    if option == \"compress/lossy_quality\" and options.has(\"compress/mode\"):\n--   \t\t\t\t        return int(options@\"compress/mode\"@) == COMPRESS_LOSSY\n--   \n--   \t\t\t\t    return true\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tReturn @true@ to make all options always visible.\nbindEditorImportPlugin_get_option_visibility :: MethodBind\nbindEditorImportPlugin_get_option_visibility\n  = unsafePerformIO $\n      withCString \"EditorImportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_option_visibility\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This method can be overridden to hide specific import options if conditions are met. This is mainly useful for hiding options that depend on others if one of them is disabled. For example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc get_option_visibility(option, options):\n--   \t\t\t\t    # Only show the lossy quality setting if the compression mode is set to \"Lossy\".\n--   \t\t\t\t    if option == \"compress/lossy_quality\" and options.has(\"compress/mode\"):\n--   \t\t\t\t        return int(options@\"compress/mode\"@) == COMPRESS_LOSSY\n--   \n--   \t\t\t\t    return true\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tReturn @true@ to make all options always visible.\nget_option_visibility ::\n                        (EditorImportPlugin :< cls, Object :< cls) =>\n                        cls -> GodotString -> Dictionary -> IO Bool\nget_option_visibility cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorImportPlugin_get_option_visibility\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorImportPlugin \"get_option_visibility\"\n           '[GodotString, Dictionary]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorImportPlugin.get_option_visibility\n\n{-# NOINLINE bindEditorImportPlugin_get_preset_count #-}\n\n-- | Gets the number of initial presets defined by the plugin. Use @method get_import_options@ to get the default options for the preset and @method get_preset_name@ to get the name of the preset.\nbindEditorImportPlugin_get_preset_count :: MethodBind\nbindEditorImportPlugin_get_preset_count\n  = unsafePerformIO $\n      withCString \"EditorImportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_preset_count\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the number of initial presets defined by the plugin. Use @method get_import_options@ to get the default options for the preset and @method get_preset_name@ to get the name of the preset.\nget_preset_count ::\n                   (EditorImportPlugin :< cls, Object :< cls) => cls -> IO Int\nget_preset_count cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorImportPlugin_get_preset_count\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorImportPlugin \"get_preset_count\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Tools.EditorImportPlugin.get_preset_count\n\n{-# NOINLINE bindEditorImportPlugin_get_preset_name #-}\n\n-- | Gets the name of the options preset at this index.\nbindEditorImportPlugin_get_preset_name :: MethodBind\nbindEditorImportPlugin_get_preset_name\n  = unsafePerformIO $\n      withCString \"EditorImportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_preset_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the name of the options preset at this index.\nget_preset_name ::\n                  (EditorImportPlugin :< cls, Object :< cls) =>\n                  cls -> Int -> IO GodotString\nget_preset_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorImportPlugin_get_preset_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorImportPlugin \"get_preset_name\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorImportPlugin.get_preset_name\n\n{-# NOINLINE bindEditorImportPlugin_get_priority #-}\n\n-- | Gets the priority of this plugin for the recognized extension. Higher priority plugins will be preferred. The default priority is @1.0@.\nbindEditorImportPlugin_get_priority :: MethodBind\nbindEditorImportPlugin_get_priority\n  = unsafePerformIO $\n      withCString \"EditorImportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the priority of this plugin for the recognized extension. Higher priority plugins will be preferred. The default priority is @1.0@.\nget_priority ::\n               (EditorImportPlugin :< cls, Object :< cls) => cls -> IO Float\nget_priority cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorImportPlugin_get_priority\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorImportPlugin \"get_priority\" '[]\n           (IO Float)\n         where\n        nodeMethod = Godot.Tools.EditorImportPlugin.get_priority\n\n{-# NOINLINE bindEditorImportPlugin_get_recognized_extensions #-}\n\n-- | Gets the list of file extensions to associate with this loader (case-insensitive). e.g. @@\"obj\"@@.\nbindEditorImportPlugin_get_recognized_extensions :: MethodBind\nbindEditorImportPlugin_get_recognized_extensions\n  = unsafePerformIO $\n      withCString \"EditorImportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_recognized_extensions\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the list of file extensions to associate with this loader (case-insensitive). e.g. @@\"obj\"@@.\nget_recognized_extensions ::\n                            (EditorImportPlugin :< cls, Object :< cls) => cls -> IO Array\nget_recognized_extensions cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorImportPlugin_get_recognized_extensions\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorImportPlugin \"get_recognized_extensions\"\n           '[]\n           (IO Array)\n         where\n        nodeMethod\n          = Godot.Tools.EditorImportPlugin.get_recognized_extensions\n\n{-# NOINLINE bindEditorImportPlugin_get_resource_type #-}\n\n-- | Gets the Godot resource type associated with this loader. e.g. @\"Mesh\"@ or @\"Animation\"@.\nbindEditorImportPlugin_get_resource_type :: MethodBind\nbindEditorImportPlugin_get_resource_type\n  = unsafePerformIO $\n      withCString \"EditorImportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_resource_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the Godot resource type associated with this loader. e.g. @\"Mesh\"@ or @\"Animation\"@.\nget_resource_type ::\n                    (EditorImportPlugin :< cls, Object :< cls) => cls -> IO GodotString\nget_resource_type cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorImportPlugin_get_resource_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorImportPlugin \"get_resource_type\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorImportPlugin.get_resource_type\n\n{-# NOINLINE bindEditorImportPlugin_get_save_extension #-}\n\n-- | Gets the extension used to save this resource in the @.import@ directory.\nbindEditorImportPlugin_get_save_extension :: MethodBind\nbindEditorImportPlugin_get_save_extension\n  = unsafePerformIO $\n      withCString \"EditorImportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_save_extension\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the extension used to save this resource in the @.import@ directory.\nget_save_extension ::\n                     (EditorImportPlugin :< cls, Object :< cls) => cls -> IO GodotString\nget_save_extension cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorImportPlugin_get_save_extension\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorImportPlugin \"get_save_extension\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorImportPlugin.get_save_extension\n\n{-# NOINLINE bindEditorImportPlugin_get_visible_name #-}\n\n-- | Gets the name to display in the import window.\nbindEditorImportPlugin_get_visible_name :: MethodBind\nbindEditorImportPlugin_get_visible_name\n  = unsafePerformIO $\n      withCString \"EditorImportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_visible_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the name to display in the import window.\nget_visible_name ::\n                   (EditorImportPlugin :< cls, Object :< cls) => cls -> IO GodotString\nget_visible_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorImportPlugin_get_visible_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorImportPlugin \"get_visible_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorImportPlugin.get_visible_name\n\n{-# NOINLINE bindEditorImportPlugin_import' #-}\n\n-- | Imports @source_file@ into @save_path@ with the import @options@ specified. The @platform_variants@ and @gen_files@ arrays will be modified by this function.\n--   \t\t\t\tThis method must be overridden to do the actual importing work. See this class' description for an example of overriding this method.\nbindEditorImportPlugin_import' :: MethodBind\nbindEditorImportPlugin_import'\n  = unsafePerformIO $\n      withCString \"EditorImportPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"import\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Imports @source_file@ into @save_path@ with the import @options@ specified. The @platform_variants@ and @gen_files@ arrays will be modified by this function.\n--   \t\t\t\tThis method must be overridden to do the actual importing work. See this class' description for an example of overriding this method.\nimport' ::\n          (EditorImportPlugin :< cls, Object :< cls) =>\n          cls ->\n            GodotString ->\n              GodotString -> Dictionary -> Array -> Array -> IO Int\nimport' cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorImportPlugin_import' (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorImportPlugin \"import\"\n           '[GodotString, GodotString, Dictionary, Array, Array]\n           (IO Int)\n         where\n        nodeMethod = Godot.Tools.EditorImportPlugin.import'"
  },
  {
    "path": "src/Godot/Tools/EditorInspector.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorInspector\n       (Godot.Tools.EditorInspector.sig_object_id_selected,\n        Godot.Tools.EditorInspector.sig_property_edited,\n        Godot.Tools.EditorInspector.sig_property_keyed,\n        Godot.Tools.EditorInspector.sig_property_selected,\n        Godot.Tools.EditorInspector.sig_property_toggled,\n        Godot.Tools.EditorInspector.sig_resource_selected,\n        Godot.Tools.EditorInspector.sig_restart_requested,\n        Godot.Tools.EditorInspector._edit_request_change,\n        Godot.Tools.EditorInspector._feature_profile_changed,\n        Godot.Tools.EditorInspector._filter_changed,\n        Godot.Tools.EditorInspector._multiple_properties_changed,\n        Godot.Tools.EditorInspector._node_removed,\n        Godot.Tools.EditorInspector._object_id_selected,\n        Godot.Tools.EditorInspector._property_changed,\n        Godot.Tools.EditorInspector._property_changed_update_all,\n        Godot.Tools.EditorInspector._property_checked,\n        Godot.Tools.EditorInspector._property_keyed,\n        Godot.Tools.EditorInspector._property_keyed_with_value,\n        Godot.Tools.EditorInspector._property_selected,\n        Godot.Tools.EditorInspector._resource_selected,\n        Godot.Tools.EditorInspector._vscroll_changed,\n        Godot.Tools.EditorInspector.refresh)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.ScrollContainer()\n\n-- | Emitted when the Edit button of an @Object@ has been pressed in the inspector. This is mainly used in the remote scene tree inspector.\nsig_object_id_selected ::\n                       Godot.Internal.Dispatch.Signal EditorInspector\nsig_object_id_selected\n  = Godot.Internal.Dispatch.Signal \"object_id_selected\"\n\ninstance NodeSignal EditorInspector \"object_id_selected\" '[Int]\n\n-- | Emitted when a property is edited in the inspector.\nsig_property_edited ::\n                    Godot.Internal.Dispatch.Signal EditorInspector\nsig_property_edited\n  = Godot.Internal.Dispatch.Signal \"property_edited\"\n\ninstance NodeSignal EditorInspector \"property_edited\"\n           '[GodotString]\n\n-- | Emitted when a property is keyed in the inspector. Properties can be keyed by clicking the \"key\" icon next to a property when the Animation panel is toggled.\nsig_property_keyed ::\n                   Godot.Internal.Dispatch.Signal EditorInspector\nsig_property_keyed\n  = Godot.Internal.Dispatch.Signal \"property_keyed\"\n\ninstance NodeSignal EditorInspector \"property_keyed\" '[GodotString]\n\n-- | Emitted when a property is selected in the inspector.\nsig_property_selected ::\n                      Godot.Internal.Dispatch.Signal EditorInspector\nsig_property_selected\n  = Godot.Internal.Dispatch.Signal \"property_selected\"\n\ninstance NodeSignal EditorInspector \"property_selected\"\n           '[GodotString]\n\n-- | Emitted when a boolean property is toggled in the inspector.\n--   \t\t\t\t__Note:__ This signal is never emitted if the internal @autoclear@ property enabled. Since this property is always enabled in the editor inspector, this signal is never emitted by the editor itself.\nsig_property_toggled ::\n                     Godot.Internal.Dispatch.Signal EditorInspector\nsig_property_toggled\n  = Godot.Internal.Dispatch.Signal \"property_toggled\"\n\ninstance NodeSignal EditorInspector \"property_toggled\"\n           '[GodotString, Bool]\n\n-- | Emitted when a resource is selected in the inspector.\nsig_resource_selected ::\n                      Godot.Internal.Dispatch.Signal EditorInspector\nsig_resource_selected\n  = Godot.Internal.Dispatch.Signal \"resource_selected\"\n\ninstance NodeSignal EditorInspector \"resource_selected\"\n           '[Object, GodotString]\n\n-- | Emitted when a property that requires a restart to be applied is edited in the inspector. This is only used in the Project Settings and Editor Settings.\nsig_restart_requested ::\n                      Godot.Internal.Dispatch.Signal EditorInspector\nsig_restart_requested\n  = Godot.Internal.Dispatch.Signal \"restart_requested\"\n\ninstance NodeSignal EditorInspector \"restart_requested\" '[]\n\n{-# NOINLINE bindEditorInspector__edit_request_change #-}\n\nbindEditorInspector__edit_request_change :: MethodBind\nbindEditorInspector__edit_request_change\n  = unsafePerformIO $\n      withCString \"EditorInspector\" $\n        \\ clsNamePtr ->\n          withCString \"_edit_request_change\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_edit_request_change ::\n                       (EditorInspector :< cls, Object :< cls) =>\n                       cls -> Object -> GodotString -> IO ()\n_edit_request_change cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInspector__edit_request_change\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspector \"_edit_request_change\"\n           '[Object, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInspector._edit_request_change\n\n{-# NOINLINE bindEditorInspector__feature_profile_changed #-}\n\nbindEditorInspector__feature_profile_changed :: MethodBind\nbindEditorInspector__feature_profile_changed\n  = unsafePerformIO $\n      withCString \"EditorInspector\" $\n        \\ clsNamePtr ->\n          withCString \"_feature_profile_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_feature_profile_changed ::\n                           (EditorInspector :< cls, Object :< cls) => cls -> IO ()\n_feature_profile_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInspector__feature_profile_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspector \"_feature_profile_changed\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInspector._feature_profile_changed\n\n{-# NOINLINE bindEditorInspector__filter_changed #-}\n\nbindEditorInspector__filter_changed :: MethodBind\nbindEditorInspector__filter_changed\n  = unsafePerformIO $\n      withCString \"EditorInspector\" $\n        \\ clsNamePtr ->\n          withCString \"_filter_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_filter_changed ::\n                  (EditorInspector :< cls, Object :< cls) =>\n                  cls -> GodotString -> IO ()\n_filter_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInspector__filter_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspector \"_filter_changed\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInspector._filter_changed\n\n{-# NOINLINE bindEditorInspector__multiple_properties_changed #-}\n\nbindEditorInspector__multiple_properties_changed :: MethodBind\nbindEditorInspector__multiple_properties_changed\n  = unsafePerformIO $\n      withCString \"EditorInspector\" $\n        \\ clsNamePtr ->\n          withCString \"_multiple_properties_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_multiple_properties_changed ::\n                               (EditorInspector :< cls, Object :< cls) =>\n                               cls -> PoolStringArray -> Array -> IO ()\n_multiple_properties_changed cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorInspector__multiple_properties_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspector \"_multiple_properties_changed\"\n           '[PoolStringArray, Array]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorInspector._multiple_properties_changed\n\n{-# NOINLINE bindEditorInspector__node_removed #-}\n\nbindEditorInspector__node_removed :: MethodBind\nbindEditorInspector__node_removed\n  = unsafePerformIO $\n      withCString \"EditorInspector\" $\n        \\ clsNamePtr ->\n          withCString \"_node_removed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_node_removed ::\n                (EditorInspector :< cls, Object :< cls) => cls -> Node -> IO ()\n_node_removed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInspector__node_removed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspector \"_node_removed\" '[Node] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInspector._node_removed\n\n{-# NOINLINE bindEditorInspector__object_id_selected #-}\n\nbindEditorInspector__object_id_selected :: MethodBind\nbindEditorInspector__object_id_selected\n  = unsafePerformIO $\n      withCString \"EditorInspector\" $\n        \\ clsNamePtr ->\n          withCString \"_object_id_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_object_id_selected ::\n                      (EditorInspector :< cls, Object :< cls) =>\n                      cls -> GodotString -> Int -> IO ()\n_object_id_selected cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInspector__object_id_selected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspector \"_object_id_selected\"\n           '[GodotString, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInspector._object_id_selected\n\n{-# NOINLINE bindEditorInspector__property_changed #-}\n\nbindEditorInspector__property_changed :: MethodBind\nbindEditorInspector__property_changed\n  = unsafePerformIO $\n      withCString \"EditorInspector\" $\n        \\ clsNamePtr ->\n          withCString \"_property_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_property_changed ::\n                    (EditorInspector :< cls, Object :< cls) =>\n                    cls ->\n                      GodotString ->\n                        GodotVariant -> Maybe GodotString -> Maybe Bool -> IO ()\n_property_changed cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantString \"\" arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInspector__property_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspector \"_property_changed\"\n           '[GodotString, GodotVariant, Maybe GodotString, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInspector._property_changed\n\n{-# NOINLINE bindEditorInspector__property_changed_update_all #-}\n\nbindEditorInspector__property_changed_update_all :: MethodBind\nbindEditorInspector__property_changed_update_all\n  = unsafePerformIO $\n      withCString \"EditorInspector\" $\n        \\ clsNamePtr ->\n          withCString \"_property_changed_update_all\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_property_changed_update_all ::\n                               (EditorInspector :< cls, Object :< cls) =>\n                               cls -> GodotString -> GodotVariant -> GodotString -> Bool -> IO ()\n_property_changed_update_all cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorInspector__property_changed_update_all\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspector \"_property_changed_update_all\"\n           '[GodotString, GodotVariant, GodotString, Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorInspector._property_changed_update_all\n\n{-# NOINLINE bindEditorInspector__property_checked #-}\n\nbindEditorInspector__property_checked :: MethodBind\nbindEditorInspector__property_checked\n  = unsafePerformIO $\n      withCString \"EditorInspector\" $\n        \\ clsNamePtr ->\n          withCString \"_property_checked\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_property_checked ::\n                    (EditorInspector :< cls, Object :< cls) =>\n                    cls -> GodotString -> Bool -> IO ()\n_property_checked cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInspector__property_checked\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspector \"_property_checked\"\n           '[GodotString, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInspector._property_checked\n\n{-# NOINLINE bindEditorInspector__property_keyed #-}\n\nbindEditorInspector__property_keyed :: MethodBind\nbindEditorInspector__property_keyed\n  = unsafePerformIO $\n      withCString \"EditorInspector\" $\n        \\ clsNamePtr ->\n          withCString \"_property_keyed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_property_keyed ::\n                  (EditorInspector :< cls, Object :< cls) =>\n                  cls -> GodotString -> Bool -> IO ()\n_property_keyed cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInspector__property_keyed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspector \"_property_keyed\"\n           '[GodotString, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInspector._property_keyed\n\n{-# NOINLINE bindEditorInspector__property_keyed_with_value #-}\n\nbindEditorInspector__property_keyed_with_value :: MethodBind\nbindEditorInspector__property_keyed_with_value\n  = unsafePerformIO $\n      withCString \"EditorInspector\" $\n        \\ clsNamePtr ->\n          withCString \"_property_keyed_with_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_property_keyed_with_value ::\n                             (EditorInspector :< cls, Object :< cls) =>\n                             cls -> GodotString -> GodotVariant -> Bool -> IO ()\n_property_keyed_with_value cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorInspector__property_keyed_with_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspector \"_property_keyed_with_value\"\n           '[GodotString, GodotVariant, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInspector._property_keyed_with_value\n\n{-# NOINLINE bindEditorInspector__property_selected #-}\n\nbindEditorInspector__property_selected :: MethodBind\nbindEditorInspector__property_selected\n  = unsafePerformIO $\n      withCString \"EditorInspector\" $\n        \\ clsNamePtr ->\n          withCString \"_property_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_property_selected ::\n                     (EditorInspector :< cls, Object :< cls) =>\n                     cls -> GodotString -> Int -> IO ()\n_property_selected cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInspector__property_selected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspector \"_property_selected\"\n           '[GodotString, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInspector._property_selected\n\n{-# NOINLINE bindEditorInspector__resource_selected #-}\n\nbindEditorInspector__resource_selected :: MethodBind\nbindEditorInspector__resource_selected\n  = unsafePerformIO $\n      withCString \"EditorInspector\" $\n        \\ clsNamePtr ->\n          withCString \"_resource_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_resource_selected ::\n                     (EditorInspector :< cls, Object :< cls) =>\n                     cls -> GodotString -> Resource -> IO ()\n_resource_selected cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInspector__resource_selected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspector \"_resource_selected\"\n           '[GodotString, Resource]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInspector._resource_selected\n\n{-# NOINLINE bindEditorInspector__vscroll_changed #-}\n\nbindEditorInspector__vscroll_changed :: MethodBind\nbindEditorInspector__vscroll_changed\n  = unsafePerformIO $\n      withCString \"EditorInspector\" $\n        \\ clsNamePtr ->\n          withCString \"_vscroll_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_vscroll_changed ::\n                   (EditorInspector :< cls, Object :< cls) => cls -> Float -> IO ()\n_vscroll_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInspector__vscroll_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspector \"_vscroll_changed\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInspector._vscroll_changed\n\n{-# NOINLINE bindEditorInspector_refresh #-}\n\n-- | Refreshes the inspector.\n--   \t\t\t\t__Note:__ To save on CPU resources, calling this method will do nothing if the time specified in @docks/property_editor/auto_refresh_interval@ editor setting hasn't passed yet since this method was last called. (By default, this interval is set to 0.3 seconds.)\nbindEditorInspector_refresh :: MethodBind\nbindEditorInspector_refresh\n  = unsafePerformIO $\n      withCString \"EditorInspector\" $\n        \\ clsNamePtr ->\n          withCString \"refresh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Refreshes the inspector.\n--   \t\t\t\t__Note:__ To save on CPU resources, calling this method will do nothing if the time specified in @docks/property_editor/auto_refresh_interval@ editor setting hasn't passed yet since this method was last called. (By default, this interval is set to 0.3 seconds.)\nrefresh :: (EditorInspector :< cls, Object :< cls) => cls -> IO ()\nrefresh cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInspector_refresh (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspector \"refresh\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.EditorInspector.refresh"
  },
  {
    "path": "src/Godot/Tools/EditorInspectorPlugin.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorInspectorPlugin\n       (Godot.Tools.EditorInspectorPlugin.add_custom_control,\n        Godot.Tools.EditorInspectorPlugin.add_property_editor,\n        Godot.Tools.EditorInspectorPlugin.add_property_editor_for_multiple_properties,\n        Godot.Tools.EditorInspectorPlugin.can_handle,\n        Godot.Tools.EditorInspectorPlugin.parse_begin,\n        Godot.Tools.EditorInspectorPlugin.parse_category,\n        Godot.Tools.EditorInspectorPlugin.parse_end,\n        Godot.Tools.EditorInspectorPlugin.parse_property)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindEditorInspectorPlugin_add_custom_control #-}\n\n-- | Adds a custom control, not necessarily a property editor.\nbindEditorInspectorPlugin_add_custom_control :: MethodBind\nbindEditorInspectorPlugin_add_custom_control\n  = unsafePerformIO $\n      withCString \"EditorInspectorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_custom_control\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a custom control, not necessarily a property editor.\nadd_custom_control ::\n                     (EditorInspectorPlugin :< cls, Object :< cls) =>\n                     cls -> Control -> IO ()\nadd_custom_control cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInspectorPlugin_add_custom_control\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspectorPlugin \"add_custom_control\"\n           '[Control]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInspectorPlugin.add_custom_control\n\n{-# NOINLINE bindEditorInspectorPlugin_add_property_editor #-}\n\n-- | Adds a property editor, this must inherit @EditorProperty@.\nbindEditorInspectorPlugin_add_property_editor :: MethodBind\nbindEditorInspectorPlugin_add_property_editor\n  = unsafePerformIO $\n      withCString \"EditorInspectorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_property_editor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a property editor, this must inherit @EditorProperty@.\nadd_property_editor ::\n                      (EditorInspectorPlugin :< cls, Object :< cls) =>\n                      cls -> GodotString -> Control -> IO ()\nadd_property_editor cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorInspectorPlugin_add_property_editor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspectorPlugin \"add_property_editor\"\n           '[GodotString, Control]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInspectorPlugin.add_property_editor\n\n{-# NOINLINE bindEditorInspectorPlugin_add_property_editor_for_multiple_properties\n             #-}\n\n-- | Adds an editor that allows modifying multiple properties, this must inherit @EditorProperty@.\nbindEditorInspectorPlugin_add_property_editor_for_multiple_properties ::\n                                                                      MethodBind\nbindEditorInspectorPlugin_add_property_editor_for_multiple_properties\n  = unsafePerformIO $\n      withCString \"EditorInspectorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_property_editor_for_multiple_properties\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an editor that allows modifying multiple properties, this must inherit @EditorProperty@.\nadd_property_editor_for_multiple_properties ::\n                                              (EditorInspectorPlugin :< cls, Object :< cls) =>\n                                              cls ->\n                                                GodotString -> PoolStringArray -> Control -> IO ()\nadd_property_editor_for_multiple_properties cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorInspectorPlugin_add_property_editor_for_multiple_properties\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspectorPlugin\n           \"add_property_editor_for_multiple_properties\"\n           '[GodotString, PoolStringArray, Control]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorInspectorPlugin.add_property_editor_for_multiple_properties\n\n{-# NOINLINE bindEditorInspectorPlugin_can_handle #-}\n\n-- | Returns @true@ if this object can be handled by this plugin.\nbindEditorInspectorPlugin_can_handle :: MethodBind\nbindEditorInspectorPlugin_can_handle\n  = unsafePerformIO $\n      withCString \"EditorInspectorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"can_handle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this object can be handled by this plugin.\ncan_handle ::\n             (EditorInspectorPlugin :< cls, Object :< cls) =>\n             cls -> Object -> IO Bool\ncan_handle cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInspectorPlugin_can_handle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspectorPlugin \"can_handle\" '[Object]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorInspectorPlugin.can_handle\n\n{-# NOINLINE bindEditorInspectorPlugin_parse_begin #-}\n\n-- | Called to allow adding controls at the beginning of the list.\nbindEditorInspectorPlugin_parse_begin :: MethodBind\nbindEditorInspectorPlugin_parse_begin\n  = unsafePerformIO $\n      withCString \"EditorInspectorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"parse_begin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called to allow adding controls at the beginning of the list.\nparse_begin ::\n              (EditorInspectorPlugin :< cls, Object :< cls) =>\n              cls -> Object -> IO ()\nparse_begin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInspectorPlugin_parse_begin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspectorPlugin \"parse_begin\" '[Object]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInspectorPlugin.parse_begin\n\n{-# NOINLINE bindEditorInspectorPlugin_parse_category #-}\n\n-- | Called to allow adding controls at the beginning of the category.\nbindEditorInspectorPlugin_parse_category :: MethodBind\nbindEditorInspectorPlugin_parse_category\n  = unsafePerformIO $\n      withCString \"EditorInspectorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"parse_category\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called to allow adding controls at the beginning of the category.\nparse_category ::\n                 (EditorInspectorPlugin :< cls, Object :< cls) =>\n                 cls -> Object -> GodotString -> IO ()\nparse_category cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInspectorPlugin_parse_category\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspectorPlugin \"parse_category\"\n           '[Object, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInspectorPlugin.parse_category\n\n{-# NOINLINE bindEditorInspectorPlugin_parse_end #-}\n\n-- | Called to allow adding controls at the end of the list.\nbindEditorInspectorPlugin_parse_end :: MethodBind\nbindEditorInspectorPlugin_parse_end\n  = unsafePerformIO $\n      withCString \"EditorInspectorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"parse_end\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called to allow adding controls at the end of the list.\nparse_end ::\n            (EditorInspectorPlugin :< cls, Object :< cls) => cls -> IO ()\nparse_end cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInspectorPlugin_parse_end\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspectorPlugin \"parse_end\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInspectorPlugin.parse_end\n\n{-# NOINLINE bindEditorInspectorPlugin_parse_property #-}\n\n-- | Called to allow adding property specific editors to the inspector. Usually these inherit @EditorProperty@. Returning @true@ removes the built-in editor for this property, otherwise allows to insert a custom editor before the built-in one.\nbindEditorInspectorPlugin_parse_property :: MethodBind\nbindEditorInspectorPlugin_parse_property\n  = unsafePerformIO $\n      withCString \"EditorInspectorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"parse_property\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called to allow adding property specific editors to the inspector. Usually these inherit @EditorProperty@. Returning @true@ removes the built-in editor for this property, otherwise allows to insert a custom editor before the built-in one.\nparse_property ::\n                 (EditorInspectorPlugin :< cls, Object :< cls) =>\n                 cls ->\n                   Object ->\n                     Int -> GodotString -> Int -> GodotString -> Int -> IO Bool\nparse_property cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInspectorPlugin_parse_property\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInspectorPlugin \"parse_property\"\n           '[Object, Int, GodotString, Int, GodotString, Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorInspectorPlugin.parse_property"
  },
  {
    "path": "src/Godot/Tools/EditorInterface.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorInterface\n       (Godot.Tools.EditorInterface.edit_resource,\n        Godot.Tools.EditorInterface.get_base_control,\n        Godot.Tools.EditorInterface.get_current_path,\n        Godot.Tools.EditorInterface.get_edited_scene_root,\n        Godot.Tools.EditorInterface.get_editor_settings,\n        Godot.Tools.EditorInterface.get_editor_viewport,\n        Godot.Tools.EditorInterface.get_inspector,\n        Godot.Tools.EditorInterface.get_open_scenes,\n        Godot.Tools.EditorInterface.get_resource_filesystem,\n        Godot.Tools.EditorInterface.get_resource_previewer,\n        Godot.Tools.EditorInterface.get_script_editor,\n        Godot.Tools.EditorInterface.get_selected_path,\n        Godot.Tools.EditorInterface.get_selection,\n        Godot.Tools.EditorInterface.inspect_object,\n        Godot.Tools.EditorInterface.is_plugin_enabled,\n        Godot.Tools.EditorInterface.make_mesh_previews,\n        Godot.Tools.EditorInterface.open_scene_from_path,\n        Godot.Tools.EditorInterface.reload_scene_from_path,\n        Godot.Tools.EditorInterface.save_scene,\n        Godot.Tools.EditorInterface.save_scene_as,\n        Godot.Tools.EditorInterface.select_file,\n        Godot.Tools.EditorInterface.set_distraction_free_mode,\n        Godot.Tools.EditorInterface.set_main_screen_editor,\n        Godot.Tools.EditorInterface.set_plugin_enabled)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\n{-# NOINLINE bindEditorInterface_edit_resource #-}\n\n-- | Edits the given @Resource@.\nbindEditorInterface_edit_resource :: MethodBind\nbindEditorInterface_edit_resource\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"edit_resource\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Edits the given @Resource@.\nedit_resource ::\n                (EditorInterface :< cls, Object :< cls) => cls -> Resource -> IO ()\nedit_resource cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_edit_resource\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"edit_resource\" '[Resource]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInterface.edit_resource\n\n{-# NOINLINE bindEditorInterface_get_base_control #-}\n\n-- | Returns the main container of Godot editor's window. For example, you can use it to retrieve the size of the container and place your controls accordingly.\nbindEditorInterface_get_base_control :: MethodBind\nbindEditorInterface_get_base_control\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_base_control\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the main container of Godot editor's window. For example, you can use it to retrieve the size of the container and place your controls accordingly.\nget_base_control ::\n                   (EditorInterface :< cls, Object :< cls) => cls -> IO Control\nget_base_control cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_get_base_control\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"get_base_control\" '[]\n           (IO Control)\n         where\n        nodeMethod = Godot.Tools.EditorInterface.get_base_control\n\n{-# NOINLINE bindEditorInterface_get_current_path #-}\n\n-- | Returns the current path being viewed in the @FileSystemDock@.\nbindEditorInterface_get_current_path :: MethodBind\nbindEditorInterface_get_current_path\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the current path being viewed in the @FileSystemDock@.\nget_current_path ::\n                   (EditorInterface :< cls, Object :< cls) => cls -> IO GodotString\nget_current_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_get_current_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"get_current_path\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorInterface.get_current_path\n\n{-# NOINLINE bindEditorInterface_get_edited_scene_root #-}\n\n-- | Returns the edited (current) scene's root @Node@.\nbindEditorInterface_get_edited_scene_root :: MethodBind\nbindEditorInterface_get_edited_scene_root\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_edited_scene_root\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the edited (current) scene's root @Node@.\nget_edited_scene_root ::\n                        (EditorInterface :< cls, Object :< cls) => cls -> IO Node\nget_edited_scene_root cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_get_edited_scene_root\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"get_edited_scene_root\" '[]\n           (IO Node)\n         where\n        nodeMethod = Godot.Tools.EditorInterface.get_edited_scene_root\n\n{-# NOINLINE bindEditorInterface_get_editor_settings #-}\n\n-- | Returns the editor's @EditorSettings@ instance.\nbindEditorInterface_get_editor_settings :: MethodBind\nbindEditorInterface_get_editor_settings\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_editor_settings\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the editor's @EditorSettings@ instance.\nget_editor_settings ::\n                      (EditorInterface :< cls, Object :< cls) => cls -> IO EditorSettings\nget_editor_settings cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_get_editor_settings\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"get_editor_settings\" '[]\n           (IO EditorSettings)\n         where\n        nodeMethod = Godot.Tools.EditorInterface.get_editor_settings\n\n{-# NOINLINE bindEditorInterface_get_editor_viewport #-}\n\n-- | Returns the main editor control. Use this as a parent for main screens.\n--   \t\t\t\t__Note:__ This returns the main editor control containing the whole editor, not the 2D or 3D viewports specifically.\nbindEditorInterface_get_editor_viewport :: MethodBind\nbindEditorInterface_get_editor_viewport\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_editor_viewport\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the main editor control. Use this as a parent for main screens.\n--   \t\t\t\t__Note:__ This returns the main editor control containing the whole editor, not the 2D or 3D viewports specifically.\nget_editor_viewport ::\n                      (EditorInterface :< cls, Object :< cls) => cls -> IO Control\nget_editor_viewport cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_get_editor_viewport\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"get_editor_viewport\" '[]\n           (IO Control)\n         where\n        nodeMethod = Godot.Tools.EditorInterface.get_editor_viewport\n\n{-# NOINLINE bindEditorInterface_get_inspector #-}\n\n-- | Returns the editor's @EditorInspector@ instance.\nbindEditorInterface_get_inspector :: MethodBind\nbindEditorInterface_get_inspector\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_inspector\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the editor's @EditorInspector@ instance.\nget_inspector ::\n                (EditorInterface :< cls, Object :< cls) =>\n                cls -> IO EditorInspector\nget_inspector cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_get_inspector\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"get_inspector\" '[]\n           (IO EditorInspector)\n         where\n        nodeMethod = Godot.Tools.EditorInterface.get_inspector\n\n{-# NOINLINE bindEditorInterface_get_open_scenes #-}\n\n-- | Returns an @Array@ with the file paths of the currently opened scenes.\nbindEditorInterface_get_open_scenes :: MethodBind\nbindEditorInterface_get_open_scenes\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_open_scenes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an @Array@ with the file paths of the currently opened scenes.\nget_open_scenes ::\n                  (EditorInterface :< cls, Object :< cls) => cls -> IO Array\nget_open_scenes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_get_open_scenes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"get_open_scenes\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Tools.EditorInterface.get_open_scenes\n\n{-# NOINLINE bindEditorInterface_get_resource_filesystem #-}\n\n-- | Returns the editor's @EditorFileSystem@ instance.\nbindEditorInterface_get_resource_filesystem :: MethodBind\nbindEditorInterface_get_resource_filesystem\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_resource_filesystem\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the editor's @EditorFileSystem@ instance.\nget_resource_filesystem ::\n                          (EditorInterface :< cls, Object :< cls) =>\n                          cls -> IO EditorFileSystem\nget_resource_filesystem cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_get_resource_filesystem\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"get_resource_filesystem\" '[]\n           (IO EditorFileSystem)\n         where\n        nodeMethod = Godot.Tools.EditorInterface.get_resource_filesystem\n\n{-# NOINLINE bindEditorInterface_get_resource_previewer #-}\n\n-- | Returns the editor's @EditorResourcePreview@ instance.\nbindEditorInterface_get_resource_previewer :: MethodBind\nbindEditorInterface_get_resource_previewer\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_resource_previewer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the editor's @EditorResourcePreview@ instance.\nget_resource_previewer ::\n                         (EditorInterface :< cls, Object :< cls) =>\n                         cls -> IO EditorResourcePreview\nget_resource_previewer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_get_resource_previewer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"get_resource_previewer\" '[]\n           (IO EditorResourcePreview)\n         where\n        nodeMethod = Godot.Tools.EditorInterface.get_resource_previewer\n\n{-# NOINLINE bindEditorInterface_get_script_editor #-}\n\n-- | Returns the editor's @ScriptEditor@ instance.\nbindEditorInterface_get_script_editor :: MethodBind\nbindEditorInterface_get_script_editor\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_script_editor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the editor's @ScriptEditor@ instance.\nget_script_editor ::\n                    (EditorInterface :< cls, Object :< cls) => cls -> IO ScriptEditor\nget_script_editor cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_get_script_editor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"get_script_editor\" '[]\n           (IO ScriptEditor)\n         where\n        nodeMethod = Godot.Tools.EditorInterface.get_script_editor\n\n{-# NOINLINE bindEditorInterface_get_selected_path #-}\n\n-- | Returns the path of the directory currently selected in the @FileSystemDock@. If a file is selected, its base directory will be returned using @method String.get_base_dir@ instead.\nbindEditorInterface_get_selected_path :: MethodBind\nbindEditorInterface_get_selected_path\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_selected_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the path of the directory currently selected in the @FileSystemDock@. If a file is selected, its base directory will be returned using @method String.get_base_dir@ instead.\nget_selected_path ::\n                    (EditorInterface :< cls, Object :< cls) => cls -> IO GodotString\nget_selected_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_get_selected_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"get_selected_path\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorInterface.get_selected_path\n\n{-# NOINLINE bindEditorInterface_get_selection #-}\n\n-- | Returns the editor's @EditorSelection@ instance.\nbindEditorInterface_get_selection :: MethodBind\nbindEditorInterface_get_selection\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_selection\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the editor's @EditorSelection@ instance.\nget_selection ::\n                (EditorInterface :< cls, Object :< cls) =>\n                cls -> IO EditorSelection\nget_selection cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_get_selection\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"get_selection\" '[]\n           (IO EditorSelection)\n         where\n        nodeMethod = Godot.Tools.EditorInterface.get_selection\n\n{-# NOINLINE bindEditorInterface_inspect_object #-}\n\n-- | Shows the given property on the given @object@ in the editor's Inspector dock.\nbindEditorInterface_inspect_object :: MethodBind\nbindEditorInterface_inspect_object\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"inspect_object\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Shows the given property on the given @object@ in the editor's Inspector dock.\ninspect_object ::\n                 (EditorInterface :< cls, Object :< cls) =>\n                 cls -> Object -> Maybe GodotString -> IO ()\ninspect_object cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, defaultedVariant VariantString \"\" arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_inspect_object\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"inspect_object\"\n           '[Object, Maybe GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInterface.inspect_object\n\n{-# NOINLINE bindEditorInterface_is_plugin_enabled #-}\n\n-- | Returns @true@ if the specified @plugin@ is enabled. The plugin name is the same as its directory name.\nbindEditorInterface_is_plugin_enabled :: MethodBind\nbindEditorInterface_is_plugin_enabled\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"is_plugin_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the specified @plugin@ is enabled. The plugin name is the same as its directory name.\nis_plugin_enabled ::\n                    (EditorInterface :< cls, Object :< cls) =>\n                    cls -> GodotString -> IO Bool\nis_plugin_enabled cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_is_plugin_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"is_plugin_enabled\"\n           '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorInterface.is_plugin_enabled\n\n{-# NOINLINE bindEditorInterface_make_mesh_previews #-}\n\n-- | Returns mesh previews rendered at the given size as an @Array@ of @Texture@s.\nbindEditorInterface_make_mesh_previews :: MethodBind\nbindEditorInterface_make_mesh_previews\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"make_mesh_previews\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns mesh previews rendered at the given size as an @Array@ of @Texture@s.\nmake_mesh_previews ::\n                     (EditorInterface :< cls, Object :< cls) =>\n                     cls -> Array -> Int -> IO Array\nmake_mesh_previews cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_make_mesh_previews\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"make_mesh_previews\"\n           '[Array, Int]\n           (IO Array)\n         where\n        nodeMethod = Godot.Tools.EditorInterface.make_mesh_previews\n\n{-# NOINLINE bindEditorInterface_open_scene_from_path #-}\n\n-- | Opens the scene at the given path.\nbindEditorInterface_open_scene_from_path :: MethodBind\nbindEditorInterface_open_scene_from_path\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"open_scene_from_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Opens the scene at the given path.\nopen_scene_from_path ::\n                       (EditorInterface :< cls, Object :< cls) =>\n                       cls -> GodotString -> IO ()\nopen_scene_from_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_open_scene_from_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"open_scene_from_path\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInterface.open_scene_from_path\n\n{-# NOINLINE bindEditorInterface_reload_scene_from_path #-}\n\n-- | Reloads the scene at the given path.\nbindEditorInterface_reload_scene_from_path :: MethodBind\nbindEditorInterface_reload_scene_from_path\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"reload_scene_from_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Reloads the scene at the given path.\nreload_scene_from_path ::\n                         (EditorInterface :< cls, Object :< cls) =>\n                         cls -> GodotString -> IO ()\nreload_scene_from_path cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_reload_scene_from_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"reload_scene_from_path\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInterface.reload_scene_from_path\n\n{-# NOINLINE bindEditorInterface_save_scene #-}\n\n-- | Saves the scene. Returns either @OK@ or @ERR_CANT_CREATE@ (see @@GlobalScope@ constants).\nbindEditorInterface_save_scene :: MethodBind\nbindEditorInterface_save_scene\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"save_scene\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Saves the scene. Returns either @OK@ or @ERR_CANT_CREATE@ (see @@GlobalScope@ constants).\nsave_scene ::\n             (EditorInterface :< cls, Object :< cls) => cls -> IO Int\nsave_scene cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_save_scene (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"save_scene\" '[] (IO Int) where\n        nodeMethod = Godot.Tools.EditorInterface.save_scene\n\n{-# NOINLINE bindEditorInterface_save_scene_as #-}\n\n-- | Saves the scene as a file at @path@.\nbindEditorInterface_save_scene_as :: MethodBind\nbindEditorInterface_save_scene_as\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"save_scene_as\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Saves the scene as a file at @path@.\nsave_scene_as ::\n                (EditorInterface :< cls, Object :< cls) =>\n                cls -> GodotString -> Maybe Bool -> IO ()\nsave_scene_as cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool True) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_save_scene_as\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"save_scene_as\"\n           '[GodotString, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInterface.save_scene_as\n\n{-# NOINLINE bindEditorInterface_select_file #-}\n\n-- | Selects the file, with the path provided by @file@, in the FileSystem dock.\nbindEditorInterface_select_file :: MethodBind\nbindEditorInterface_select_file\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"select_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Selects the file, with the path provided by @file@, in the FileSystem dock.\nselect_file ::\n              (EditorInterface :< cls, Object :< cls) =>\n              cls -> GodotString -> IO ()\nselect_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_select_file (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"select_file\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInterface.select_file\n\n{-# NOINLINE bindEditorInterface_set_distraction_free_mode #-}\n\n-- | If @true@, enables distraction-free mode which hides side docks to increase the space available for the main view.\nbindEditorInterface_set_distraction_free_mode :: MethodBind\nbindEditorInterface_set_distraction_free_mode\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"set_distraction_free_mode\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If @true@, enables distraction-free mode which hides side docks to increase the space available for the main view.\nset_distraction_free_mode ::\n                            (EditorInterface :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_distraction_free_mode cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorInterface_set_distraction_free_mode\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"set_distraction_free_mode\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInterface.set_distraction_free_mode\n\n{-# NOINLINE bindEditorInterface_set_main_screen_editor #-}\n\n-- | Sets the editor's current main screen to the one specified in @name@. @name@ must match the text of the tab in question exactly (@2D@, @3D@, @Script@, @AssetLib@).\nbindEditorInterface_set_main_screen_editor :: MethodBind\nbindEditorInterface_set_main_screen_editor\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"set_main_screen_editor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the editor's current main screen to the one specified in @name@. @name@ must match the text of the tab in question exactly (@2D@, @3D@, @Script@, @AssetLib@).\nset_main_screen_editor ::\n                         (EditorInterface :< cls, Object :< cls) =>\n                         cls -> GodotString -> IO ()\nset_main_screen_editor cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_set_main_screen_editor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"set_main_screen_editor\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInterface.set_main_screen_editor\n\n{-# NOINLINE bindEditorInterface_set_plugin_enabled #-}\n\n-- | Sets the enabled status of a plugin. The plugin name is the same as its directory name.\nbindEditorInterface_set_plugin_enabled :: MethodBind\nbindEditorInterface_set_plugin_enabled\n  = unsafePerformIO $\n      withCString \"EditorInterface\" $\n        \\ clsNamePtr ->\n          withCString \"set_plugin_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the enabled status of a plugin. The plugin name is the same as its directory name.\nset_plugin_enabled ::\n                     (EditorInterface :< cls, Object :< cls) =>\n                     cls -> GodotString -> Bool -> IO ()\nset_plugin_enabled cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorInterface_set_plugin_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorInterface \"set_plugin_enabled\"\n           '[GodotString, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorInterface.set_plugin_enabled"
  },
  {
    "path": "src/Godot/Tools/EditorNavigationMeshGenerator.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorNavigationMeshGenerator\n       (Godot.Tools.EditorNavigationMeshGenerator.bake,\n        Godot.Tools.EditorNavigationMeshGenerator.clear)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n{-# NOINLINE bindEditorNavigationMeshGenerator_bake #-}\n\nbindEditorNavigationMeshGenerator_bake :: MethodBind\nbindEditorNavigationMeshGenerator_bake\n  = unsafePerformIO $\n      withCString \"EditorNavigationMeshGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"bake\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nbake ::\n       (EditorNavigationMeshGenerator :< cls, Object :< cls) =>\n       cls -> NavigationMesh -> Node -> IO ()\nbake cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorNavigationMeshGenerator_bake\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorNavigationMeshGenerator \"bake\"\n           '[NavigationMesh, Node]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorNavigationMeshGenerator.bake\n\n{-# NOINLINE bindEditorNavigationMeshGenerator_clear #-}\n\nbindEditorNavigationMeshGenerator_clear :: MethodBind\nbindEditorNavigationMeshGenerator_clear\n  = unsafePerformIO $\n      withCString \"EditorNavigationMeshGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nclear ::\n        (EditorNavigationMeshGenerator :< cls, Object :< cls) =>\n        cls -> NavigationMesh -> IO ()\nclear cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorNavigationMeshGenerator_clear\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorNavigationMeshGenerator \"clear\"\n           '[NavigationMesh]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorNavigationMeshGenerator.clear"
  },
  {
    "path": "src/Godot/Tools/EditorPlugin.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorPlugin\n       (Godot.Tools.EditorPlugin._CONTAINER_SPATIAL_EDITOR_SIDE_LEFT,\n        Godot.Tools.EditorPlugin._CONTAINER_SPATIAL_EDITOR_BOTTOM,\n        Godot.Tools.EditorPlugin._DOCK_SLOT_LEFT_UR,\n        Godot.Tools.EditorPlugin._CONTAINER_SPATIAL_EDITOR_SIDE_RIGHT,\n        Godot.Tools.EditorPlugin._DOCK_SLOT_LEFT_BL,\n        Godot.Tools.EditorPlugin._CONTAINER_PROJECT_SETTING_TAB_LEFT,\n        Godot.Tools.EditorPlugin._CONTAINER_SPATIAL_EDITOR_MENU,\n        Godot.Tools.EditorPlugin._DOCK_SLOT_RIGHT_BR,\n        Godot.Tools.EditorPlugin._CONTAINER_PROJECT_SETTING_TAB_RIGHT,\n        Godot.Tools.EditorPlugin._DOCK_SLOT_RIGHT_BL,\n        Godot.Tools.EditorPlugin._CONTAINER_CANVAS_EDITOR_BOTTOM,\n        Godot.Tools.EditorPlugin._CONTAINER_CANVAS_EDITOR_SIDE_LEFT,\n        Godot.Tools.EditorPlugin._CONTAINER_PROPERTY_EDITOR_BOTTOM,\n        Godot.Tools.EditorPlugin._CONTAINER_TOOLBAR,\n        Godot.Tools.EditorPlugin._DOCK_SLOT_RIGHT_UL,\n        Godot.Tools.EditorPlugin._DOCK_SLOT_RIGHT_UR,\n        Godot.Tools.EditorPlugin._DOCK_SLOT_LEFT_UL,\n        Godot.Tools.EditorPlugin._CONTAINER_CANVAS_EDITOR_MENU,\n        Godot.Tools.EditorPlugin._CONTAINER_CANVAS_EDITOR_SIDE_RIGHT,\n        Godot.Tools.EditorPlugin._DOCK_SLOT_LEFT_BR,\n        Godot.Tools.EditorPlugin._DOCK_SLOT_MAX,\n        Godot.Tools.EditorPlugin.sig_main_screen_changed,\n        Godot.Tools.EditorPlugin.sig_resource_saved,\n        Godot.Tools.EditorPlugin.sig_scene_changed,\n        Godot.Tools.EditorPlugin.sig_scene_closed,\n        Godot.Tools.EditorPlugin.add_autoload_singleton,\n        Godot.Tools.EditorPlugin.add_control_to_bottom_panel,\n        Godot.Tools.EditorPlugin.add_control_to_container,\n        Godot.Tools.EditorPlugin.add_control_to_dock,\n        Godot.Tools.EditorPlugin.add_custom_type,\n        Godot.Tools.EditorPlugin.add_export_plugin,\n        Godot.Tools.EditorPlugin.add_import_plugin,\n        Godot.Tools.EditorPlugin.add_inspector_plugin,\n        Godot.Tools.EditorPlugin.add_scene_import_plugin,\n        Godot.Tools.EditorPlugin.add_spatial_gizmo_plugin,\n        Godot.Tools.EditorPlugin.add_tool_menu_item,\n        Godot.Tools.EditorPlugin.add_tool_submenu_item,\n        Godot.Tools.EditorPlugin.apply_changes,\n        Godot.Tools.EditorPlugin.build, Godot.Tools.EditorPlugin.clear,\n        Godot.Tools.EditorPlugin.disable_plugin,\n        Godot.Tools.EditorPlugin.edit,\n        Godot.Tools.EditorPlugin.enable_plugin,\n        Godot.Tools.EditorPlugin.forward_canvas_draw_over_viewport,\n        Godot.Tools.EditorPlugin.forward_canvas_force_draw_over_viewport,\n        Godot.Tools.EditorPlugin.forward_canvas_gui_input,\n        Godot.Tools.EditorPlugin.forward_spatial_gui_input,\n        Godot.Tools.EditorPlugin.get_breakpoints,\n        Godot.Tools.EditorPlugin.get_editor_interface,\n        Godot.Tools.EditorPlugin.get_plugin_icon,\n        Godot.Tools.EditorPlugin.get_plugin_name,\n        Godot.Tools.EditorPlugin.get_script_create_dialog,\n        Godot.Tools.EditorPlugin.get_state,\n        Godot.Tools.EditorPlugin.get_undo_redo,\n        Godot.Tools.EditorPlugin.get_window_layout,\n        Godot.Tools.EditorPlugin.handles,\n        Godot.Tools.EditorPlugin.has_main_screen,\n        Godot.Tools.EditorPlugin.hide_bottom_panel,\n        Godot.Tools.EditorPlugin.make_bottom_panel_item_visible,\n        Godot.Tools.EditorPlugin.make_visible,\n        Godot.Tools.EditorPlugin.queue_save_layout,\n        Godot.Tools.EditorPlugin.remove_autoload_singleton,\n        Godot.Tools.EditorPlugin.remove_control_from_bottom_panel,\n        Godot.Tools.EditorPlugin.remove_control_from_container,\n        Godot.Tools.EditorPlugin.remove_control_from_docks,\n        Godot.Tools.EditorPlugin.remove_custom_type,\n        Godot.Tools.EditorPlugin.remove_export_plugin,\n        Godot.Tools.EditorPlugin.remove_import_plugin,\n        Godot.Tools.EditorPlugin.remove_inspector_plugin,\n        Godot.Tools.EditorPlugin.remove_scene_import_plugin,\n        Godot.Tools.EditorPlugin.remove_spatial_gizmo_plugin,\n        Godot.Tools.EditorPlugin.remove_tool_menu_item,\n        Godot.Tools.EditorPlugin.save_external_data,\n        Godot.Tools.EditorPlugin.set_force_draw_over_forwarding_enabled,\n        Godot.Tools.EditorPlugin.set_input_event_forwarding_always_enabled,\n        Godot.Tools.EditorPlugin.set_state,\n        Godot.Tools.EditorPlugin.set_window_layout,\n        Godot.Tools.EditorPlugin.update_overlays)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\n_CONTAINER_SPATIAL_EDITOR_SIDE_LEFT :: Int\n_CONTAINER_SPATIAL_EDITOR_SIDE_LEFT = 2\n\n_CONTAINER_SPATIAL_EDITOR_BOTTOM :: Int\n_CONTAINER_SPATIAL_EDITOR_BOTTOM = 4\n\n_DOCK_SLOT_LEFT_UR :: Int\n_DOCK_SLOT_LEFT_UR = 2\n\n_CONTAINER_SPATIAL_EDITOR_SIDE_RIGHT :: Int\n_CONTAINER_SPATIAL_EDITOR_SIDE_RIGHT = 3\n\n_DOCK_SLOT_LEFT_BL :: Int\n_DOCK_SLOT_LEFT_BL = 1\n\n_CONTAINER_PROJECT_SETTING_TAB_LEFT :: Int\n_CONTAINER_PROJECT_SETTING_TAB_LEFT = 10\n\n_CONTAINER_SPATIAL_EDITOR_MENU :: Int\n_CONTAINER_SPATIAL_EDITOR_MENU = 1\n\n_DOCK_SLOT_RIGHT_BR :: Int\n_DOCK_SLOT_RIGHT_BR = 7\n\n_CONTAINER_PROJECT_SETTING_TAB_RIGHT :: Int\n_CONTAINER_PROJECT_SETTING_TAB_RIGHT = 11\n\n_DOCK_SLOT_RIGHT_BL :: Int\n_DOCK_SLOT_RIGHT_BL = 5\n\n_CONTAINER_CANVAS_EDITOR_BOTTOM :: Int\n_CONTAINER_CANVAS_EDITOR_BOTTOM = 8\n\n_CONTAINER_CANVAS_EDITOR_SIDE_LEFT :: Int\n_CONTAINER_CANVAS_EDITOR_SIDE_LEFT = 6\n\n_CONTAINER_PROPERTY_EDITOR_BOTTOM :: Int\n_CONTAINER_PROPERTY_EDITOR_BOTTOM = 9\n\n_CONTAINER_TOOLBAR :: Int\n_CONTAINER_TOOLBAR = 0\n\n_DOCK_SLOT_RIGHT_UL :: Int\n_DOCK_SLOT_RIGHT_UL = 4\n\n_DOCK_SLOT_RIGHT_UR :: Int\n_DOCK_SLOT_RIGHT_UR = 6\n\n_DOCK_SLOT_LEFT_UL :: Int\n_DOCK_SLOT_LEFT_UL = 0\n\n_CONTAINER_CANVAS_EDITOR_MENU :: Int\n_CONTAINER_CANVAS_EDITOR_MENU = 5\n\n_CONTAINER_CANVAS_EDITOR_SIDE_RIGHT :: Int\n_CONTAINER_CANVAS_EDITOR_SIDE_RIGHT = 7\n\n_DOCK_SLOT_LEFT_BR :: Int\n_DOCK_SLOT_LEFT_BR = 3\n\n_DOCK_SLOT_MAX :: Int\n_DOCK_SLOT_MAX = 8\n\n-- | Emitted when user changes the workspace (__2D__, __3D__, __Script__, __AssetLib__). Also works with custom screens defined by plugins.\nsig_main_screen_changed ::\n                        Godot.Internal.Dispatch.Signal EditorPlugin\nsig_main_screen_changed\n  = Godot.Internal.Dispatch.Signal \"main_screen_changed\"\n\ninstance NodeSignal EditorPlugin \"main_screen_changed\"\n           '[GodotString]\n\nsig_resource_saved :: Godot.Internal.Dispatch.Signal EditorPlugin\nsig_resource_saved\n  = Godot.Internal.Dispatch.Signal \"resource_saved\"\n\ninstance NodeSignal EditorPlugin \"resource_saved\" '[Resource]\n\n-- | Emitted when the scene is changed in the editor. The argument will return the root node of the scene that has just become active. If this scene is new and empty, the argument will be @null@.\nsig_scene_changed :: Godot.Internal.Dispatch.Signal EditorPlugin\nsig_scene_changed = Godot.Internal.Dispatch.Signal \"scene_changed\"\n\ninstance NodeSignal EditorPlugin \"scene_changed\" '[Node]\n\n-- | Emitted when user closes a scene. The argument is file path to a closed scene.\nsig_scene_closed :: Godot.Internal.Dispatch.Signal EditorPlugin\nsig_scene_closed = Godot.Internal.Dispatch.Signal \"scene_closed\"\n\ninstance NodeSignal EditorPlugin \"scene_closed\" '[GodotString]\n\n{-# NOINLINE bindEditorPlugin_add_autoload_singleton #-}\n\n-- | Adds a script at @path@ to the Autoload list as @name@.\nbindEditorPlugin_add_autoload_singleton :: MethodBind\nbindEditorPlugin_add_autoload_singleton\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_autoload_singleton\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a script at @path@ to the Autoload list as @name@.\nadd_autoload_singleton ::\n                         (EditorPlugin :< cls, Object :< cls) =>\n                         cls -> GodotString -> GodotString -> IO ()\nadd_autoload_singleton cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_add_autoload_singleton\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"add_autoload_singleton\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.add_autoload_singleton\n\n{-# NOINLINE bindEditorPlugin_add_control_to_bottom_panel #-}\n\n-- | Adds a control to the bottom panel (together with Output, Debug, Animation, etc). Returns a reference to the button added. It's up to you to hide/show the button when needed. When your plugin is deactivated, make sure to remove your custom control with @method remove_control_from_bottom_panel@ and free it with @method Node.queue_free@.\nbindEditorPlugin_add_control_to_bottom_panel :: MethodBind\nbindEditorPlugin_add_control_to_bottom_panel\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_control_to_bottom_panel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a control to the bottom panel (together with Output, Debug, Animation, etc). Returns a reference to the button added. It's up to you to hide/show the button when needed. When your plugin is deactivated, make sure to remove your custom control with @method remove_control_from_bottom_panel@ and free it with @method Node.queue_free@.\nadd_control_to_bottom_panel ::\n                              (EditorPlugin :< cls, Object :< cls) =>\n                              cls -> Control -> GodotString -> IO ToolButton\nadd_control_to_bottom_panel cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_add_control_to_bottom_panel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"add_control_to_bottom_panel\"\n           '[Control, GodotString]\n           (IO ToolButton)\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.add_control_to_bottom_panel\n\n{-# NOINLINE bindEditorPlugin_add_control_to_container #-}\n\n-- | Adds a custom control to a container (see @enum CustomControlContainer@). There are many locations where custom controls can be added in the editor UI.\n--   \t\t\t\tPlease remember that you have to manage the visibility of your custom controls yourself (and likely hide it after adding it).\n--   \t\t\t\tWhen your plugin is deactivated, make sure to remove your custom control with @method remove_control_from_container@ and free it with @method Node.queue_free@.\nbindEditorPlugin_add_control_to_container :: MethodBind\nbindEditorPlugin_add_control_to_container\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_control_to_container\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a custom control to a container (see @enum CustomControlContainer@). There are many locations where custom controls can be added in the editor UI.\n--   \t\t\t\tPlease remember that you have to manage the visibility of your custom controls yourself (and likely hide it after adding it).\n--   \t\t\t\tWhen your plugin is deactivated, make sure to remove your custom control with @method remove_control_from_container@ and free it with @method Node.queue_free@.\nadd_control_to_container ::\n                           (EditorPlugin :< cls, Object :< cls) =>\n                           cls -> Int -> Control -> IO ()\nadd_control_to_container cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_add_control_to_container\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"add_control_to_container\"\n           '[Int, Control]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.add_control_to_container\n\n{-# NOINLINE bindEditorPlugin_add_control_to_dock #-}\n\n-- | Adds the control to a specific dock slot (see @enum DockSlot@ for options).\n--   \t\t\t\tIf the dock is repositioned and as long as the plugin is active, the editor will save the dock position on further sessions.\n--   \t\t\t\tWhen your plugin is deactivated, make sure to remove your custom control with @method remove_control_from_docks@ and free it with @method Node.queue_free@.\nbindEditorPlugin_add_control_to_dock :: MethodBind\nbindEditorPlugin_add_control_to_dock\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_control_to_dock\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds the control to a specific dock slot (see @enum DockSlot@ for options).\n--   \t\t\t\tIf the dock is repositioned and as long as the plugin is active, the editor will save the dock position on further sessions.\n--   \t\t\t\tWhen your plugin is deactivated, make sure to remove your custom control with @method remove_control_from_docks@ and free it with @method Node.queue_free@.\nadd_control_to_dock ::\n                      (EditorPlugin :< cls, Object :< cls) =>\n                      cls -> Int -> Control -> IO ()\nadd_control_to_dock cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_add_control_to_dock\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"add_control_to_dock\"\n           '[Int, Control]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.add_control_to_dock\n\n{-# NOINLINE bindEditorPlugin_add_custom_type #-}\n\n-- | Adds a custom type, which will appear in the list of nodes or resources. An icon can be optionally passed.\n--   \t\t\t\tWhen given node or resource is selected, the base type will be instanced (ie, \"Spatial\", \"Control\", \"Resource\"), then the script will be loaded and set to this object.\n--   \t\t\t\tYou can use the virtual method @method handles@ to check if your custom object is being edited by checking the script or using the @is@ keyword.\n--   \t\t\t\tDuring run-time, this will be a simple object with a script so this function does not need to be called then.\nbindEditorPlugin_add_custom_type :: MethodBind\nbindEditorPlugin_add_custom_type\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_custom_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a custom type, which will appear in the list of nodes or resources. An icon can be optionally passed.\n--   \t\t\t\tWhen given node or resource is selected, the base type will be instanced (ie, \"Spatial\", \"Control\", \"Resource\"), then the script will be loaded and set to this object.\n--   \t\t\t\tYou can use the virtual method @method handles@ to check if your custom object is being edited by checking the script or using the @is@ keyword.\n--   \t\t\t\tDuring run-time, this will be a simple object with a script so this function does not need to be called then.\nadd_custom_type ::\n                  (EditorPlugin :< cls, Object :< cls) =>\n                  cls -> GodotString -> GodotString -> Script -> Texture -> IO ()\nadd_custom_type cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_add_custom_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"add_custom_type\"\n           '[GodotString, GodotString, Script, Texture]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.add_custom_type\n\n{-# NOINLINE bindEditorPlugin_add_export_plugin #-}\n\nbindEditorPlugin_add_export_plugin :: MethodBind\nbindEditorPlugin_add_export_plugin\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_export_plugin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_export_plugin ::\n                    (EditorPlugin :< cls, Object :< cls) =>\n                    cls -> EditorExportPlugin -> IO ()\nadd_export_plugin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_add_export_plugin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"add_export_plugin\"\n           '[EditorExportPlugin]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.add_export_plugin\n\n{-# NOINLINE bindEditorPlugin_add_import_plugin #-}\n\nbindEditorPlugin_add_import_plugin :: MethodBind\nbindEditorPlugin_add_import_plugin\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_import_plugin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_import_plugin ::\n                    (EditorPlugin :< cls, Object :< cls) =>\n                    cls -> EditorImportPlugin -> IO ()\nadd_import_plugin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_add_import_plugin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"add_import_plugin\"\n           '[EditorImportPlugin]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.add_import_plugin\n\n{-# NOINLINE bindEditorPlugin_add_inspector_plugin #-}\n\nbindEditorPlugin_add_inspector_plugin :: MethodBind\nbindEditorPlugin_add_inspector_plugin\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_inspector_plugin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_inspector_plugin ::\n                       (EditorPlugin :< cls, Object :< cls) =>\n                       cls -> EditorInspectorPlugin -> IO ()\nadd_inspector_plugin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_add_inspector_plugin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"add_inspector_plugin\"\n           '[EditorInspectorPlugin]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.add_inspector_plugin\n\n{-# NOINLINE bindEditorPlugin_add_scene_import_plugin #-}\n\nbindEditorPlugin_add_scene_import_plugin :: MethodBind\nbindEditorPlugin_add_scene_import_plugin\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_scene_import_plugin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_scene_import_plugin ::\n                          (EditorPlugin :< cls, Object :< cls) =>\n                          cls -> EditorSceneImporter -> IO ()\nadd_scene_import_plugin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_add_scene_import_plugin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"add_scene_import_plugin\"\n           '[EditorSceneImporter]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.add_scene_import_plugin\n\n{-# NOINLINE bindEditorPlugin_add_spatial_gizmo_plugin #-}\n\nbindEditorPlugin_add_spatial_gizmo_plugin :: MethodBind\nbindEditorPlugin_add_spatial_gizmo_plugin\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_spatial_gizmo_plugin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_spatial_gizmo_plugin ::\n                           (EditorPlugin :< cls, Object :< cls) =>\n                           cls -> EditorSpatialGizmoPlugin -> IO ()\nadd_spatial_gizmo_plugin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_add_spatial_gizmo_plugin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"add_spatial_gizmo_plugin\"\n           '[EditorSpatialGizmoPlugin]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.add_spatial_gizmo_plugin\n\n{-# NOINLINE bindEditorPlugin_add_tool_menu_item #-}\n\n-- | Adds a custom menu item to __Project > Tools__ as @name@ that calls @callback@ on an instance of @handler@ with a parameter @ud@ when user activates it.\nbindEditorPlugin_add_tool_menu_item :: MethodBind\nbindEditorPlugin_add_tool_menu_item\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_tool_menu_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a custom menu item to __Project > Tools__ as @name@ that calls @callback@ on an instance of @handler@ with a parameter @ud@ when user activates it.\nadd_tool_menu_item ::\n                     (EditorPlugin :< cls, Object :< cls) =>\n                     cls ->\n                       GodotString -> Object -> GodotString -> Maybe GodotVariant -> IO ()\nadd_tool_menu_item cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3,\n       maybe VariantNil toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_add_tool_menu_item\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"add_tool_menu_item\"\n           '[GodotString, Object, GodotString, Maybe GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.add_tool_menu_item\n\n{-# NOINLINE bindEditorPlugin_add_tool_submenu_item #-}\n\n-- | Adds a custom submenu under __Project > Tools >__ @name@. @submenu@ should be an object of class @PopupMenu@. This submenu should be cleaned up using @remove_tool_menu_item(name)@.\nbindEditorPlugin_add_tool_submenu_item :: MethodBind\nbindEditorPlugin_add_tool_submenu_item\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_tool_submenu_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a custom submenu under __Project > Tools >__ @name@. @submenu@ should be an object of class @PopupMenu@. This submenu should be cleaned up using @remove_tool_menu_item(name)@.\nadd_tool_submenu_item ::\n                        (EditorPlugin :< cls, Object :< cls) =>\n                        cls -> GodotString -> Object -> IO ()\nadd_tool_submenu_item cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_add_tool_submenu_item\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"add_tool_submenu_item\"\n           '[GodotString, Object]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.add_tool_submenu_item\n\n{-# NOINLINE bindEditorPlugin_apply_changes #-}\n\n-- | This method is called when the editor is about to save the project, switch to another tab, etc. It asks the plugin to apply any pending state changes to ensure consistency.\n--   \t\t\t\tThis is used, for example, in shader editors to let the plugin know that it must apply the shader code being written by the user to the object.\nbindEditorPlugin_apply_changes :: MethodBind\nbindEditorPlugin_apply_changes\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"apply_changes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This method is called when the editor is about to save the project, switch to another tab, etc. It asks the plugin to apply any pending state changes to ensure consistency.\n--   \t\t\t\tThis is used, for example, in shader editors to let the plugin know that it must apply the shader code being written by the user to the object.\napply_changes ::\n                (EditorPlugin :< cls, Object :< cls) => cls -> IO ()\napply_changes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_apply_changes (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"apply_changes\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.EditorPlugin.apply_changes\n\n{-# NOINLINE bindEditorPlugin_build #-}\n\nbindEditorPlugin_build :: MethodBind\nbindEditorPlugin_build\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"build\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nbuild :: (EditorPlugin :< cls, Object :< cls) => cls -> IO Bool\nbuild cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_build (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"build\" '[] (IO Bool) where\n        nodeMethod = Godot.Tools.EditorPlugin.build\n\n{-# NOINLINE bindEditorPlugin_clear #-}\n\n-- | Clear all the state and reset the object being edited to zero. This ensures your plugin does not keep editing a currently existing node, or a node from the wrong scene.\nbindEditorPlugin_clear :: MethodBind\nbindEditorPlugin_clear\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clear all the state and reset the object being edited to zero. This ensures your plugin does not keep editing a currently existing node, or a node from the wrong scene.\nclear :: (EditorPlugin :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_clear (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.EditorPlugin.clear\n\n{-# NOINLINE bindEditorPlugin_disable_plugin #-}\n\n-- | Called by the engine when the user disables the @EditorPlugin@ in the Plugin tab of the project settings window.\nbindEditorPlugin_disable_plugin :: MethodBind\nbindEditorPlugin_disable_plugin\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"disable_plugin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called by the engine when the user disables the @EditorPlugin@ in the Plugin tab of the project settings window.\ndisable_plugin ::\n                 (EditorPlugin :< cls, Object :< cls) => cls -> IO ()\ndisable_plugin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_disable_plugin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"disable_plugin\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.EditorPlugin.disable_plugin\n\n{-# NOINLINE bindEditorPlugin_edit #-}\n\n-- | This function is used for plugins that edit specific object types (nodes or resources). It requests the editor to edit the given object.\nbindEditorPlugin_edit :: MethodBind\nbindEditorPlugin_edit\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"edit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This function is used for plugins that edit specific object types (nodes or resources). It requests the editor to edit the given object.\nedit ::\n       (EditorPlugin :< cls, Object :< cls) => cls -> Object -> IO ()\nedit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_edit (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"edit\" '[Object] (IO ()) where\n        nodeMethod = Godot.Tools.EditorPlugin.edit\n\n{-# NOINLINE bindEditorPlugin_enable_plugin #-}\n\n-- | Called by the engine when the user enables the @EditorPlugin@ in the Plugin tab of the project settings window.\nbindEditorPlugin_enable_plugin :: MethodBind\nbindEditorPlugin_enable_plugin\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"enable_plugin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called by the engine when the user enables the @EditorPlugin@ in the Plugin tab of the project settings window.\nenable_plugin ::\n                (EditorPlugin :< cls, Object :< cls) => cls -> IO ()\nenable_plugin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_enable_plugin (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"enable_plugin\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.EditorPlugin.enable_plugin\n\n{-# NOINLINE bindEditorPlugin_forward_canvas_draw_over_viewport #-}\n\nbindEditorPlugin_forward_canvas_draw_over_viewport :: MethodBind\nbindEditorPlugin_forward_canvas_draw_over_viewport\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"forward_canvas_draw_over_viewport\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nforward_canvas_draw_over_viewport ::\n                                    (EditorPlugin :< cls, Object :< cls) => cls -> Control -> IO ()\nforward_canvas_draw_over_viewport cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorPlugin_forward_canvas_draw_over_viewport\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin\n           \"forward_canvas_draw_over_viewport\"\n           '[Control]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorPlugin.forward_canvas_draw_over_viewport\n\n{-# NOINLINE bindEditorPlugin_forward_canvas_force_draw_over_viewport\n             #-}\n\nbindEditorPlugin_forward_canvas_force_draw_over_viewport ::\n                                                         MethodBind\nbindEditorPlugin_forward_canvas_force_draw_over_viewport\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"forward_canvas_force_draw_over_viewport\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nforward_canvas_force_draw_over_viewport ::\n                                          (EditorPlugin :< cls, Object :< cls) =>\n                                          cls -> Control -> IO ()\nforward_canvas_force_draw_over_viewport cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorPlugin_forward_canvas_force_draw_over_viewport\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin\n           \"forward_canvas_force_draw_over_viewport\"\n           '[Control]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorPlugin.forward_canvas_force_draw_over_viewport\n\n{-# NOINLINE bindEditorPlugin_forward_canvas_gui_input #-}\n\n-- | Called when there is a root node in the current edited scene, @method handles@ is implemented and an @InputEvent@ happens in the 2D viewport. Intercepts the @InputEvent@, if @return true@ @EditorPlugin@ consumes the @event@, otherwise forwards @event@ to other Editor classes. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t# Prevents the InputEvent to reach other Editor classes\n--   \t\t\t\tfunc forward_canvas_gui_input(event):\n--   \t\t\t\t    var forward = true\n--   \t\t\t\t    return forward\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tMust @return false@ in order to forward the @InputEvent@ to other Editor classes. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t# Consumes InputEventMouseMotion and forwards other InputEvent types\n--   \t\t\t\tfunc forward_canvas_gui_input(event):\n--   \t\t\t\t    var forward = false\n--   \t\t\t\t    if event is InputEventMouseMotion:\n--   \t\t\t\t        forward = true\n--   \t\t\t\t    return forward\n--   \t\t\t\t\n--   @\nbindEditorPlugin_forward_canvas_gui_input :: MethodBind\nbindEditorPlugin_forward_canvas_gui_input\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"forward_canvas_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called when there is a root node in the current edited scene, @method handles@ is implemented and an @InputEvent@ happens in the 2D viewport. Intercepts the @InputEvent@, if @return true@ @EditorPlugin@ consumes the @event@, otherwise forwards @event@ to other Editor classes. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t# Prevents the InputEvent to reach other Editor classes\n--   \t\t\t\tfunc forward_canvas_gui_input(event):\n--   \t\t\t\t    var forward = true\n--   \t\t\t\t    return forward\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tMust @return false@ in order to forward the @InputEvent@ to other Editor classes. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t# Consumes InputEventMouseMotion and forwards other InputEvent types\n--   \t\t\t\tfunc forward_canvas_gui_input(event):\n--   \t\t\t\t    var forward = false\n--   \t\t\t\t    if event is InputEventMouseMotion:\n--   \t\t\t\t        forward = true\n--   \t\t\t\t    return forward\n--   \t\t\t\t\n--   @\nforward_canvas_gui_input ::\n                           (EditorPlugin :< cls, Object :< cls) =>\n                           cls -> InputEvent -> IO Bool\nforward_canvas_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_forward_canvas_gui_input\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"forward_canvas_gui_input\"\n           '[InputEvent]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.forward_canvas_gui_input\n\n{-# NOINLINE bindEditorPlugin_forward_spatial_gui_input #-}\n\n-- | Called when there is a root node in the current edited scene, @method handles@ is implemented and an @InputEvent@ happens in the 3D viewport. Intercepts the @InputEvent@, if @return true@ @EditorPlugin@ consumes the @event@, otherwise forwards @event@ to other Editor classes. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t# Prevents the InputEvent to reach other Editor classes\n--   \t\t\t\tfunc forward_spatial_gui_input(camera, event):\n--   \t\t\t\t    var forward = true\n--   \t\t\t\t    return forward\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tMust @return false@ in order to forward the @InputEvent@ to other Editor classes. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t# Consumes InputEventMouseMotion and forwards other InputEvent types\n--   \t\t\t\tfunc forward_spatial_gui_input(camera, event):\n--   \t\t\t\t    var forward = false\n--   \t\t\t\t    if event is InputEventMouseMotion:\n--   \t\t\t\t        forward = true\n--   \t\t\t\t    return forward\n--   \t\t\t\t\n--   @\nbindEditorPlugin_forward_spatial_gui_input :: MethodBind\nbindEditorPlugin_forward_spatial_gui_input\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"forward_spatial_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called when there is a root node in the current edited scene, @method handles@ is implemented and an @InputEvent@ happens in the 3D viewport. Intercepts the @InputEvent@, if @return true@ @EditorPlugin@ consumes the @event@, otherwise forwards @event@ to other Editor classes. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t# Prevents the InputEvent to reach other Editor classes\n--   \t\t\t\tfunc forward_spatial_gui_input(camera, event):\n--   \t\t\t\t    var forward = true\n--   \t\t\t\t    return forward\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tMust @return false@ in order to forward the @InputEvent@ to other Editor classes. Example:\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\t# Consumes InputEventMouseMotion and forwards other InputEvent types\n--   \t\t\t\tfunc forward_spatial_gui_input(camera, event):\n--   \t\t\t\t    var forward = false\n--   \t\t\t\t    if event is InputEventMouseMotion:\n--   \t\t\t\t        forward = true\n--   \t\t\t\t    return forward\n--   \t\t\t\t\n--   @\nforward_spatial_gui_input ::\n                            (EditorPlugin :< cls, Object :< cls) =>\n                            cls -> Camera -> InputEvent -> IO Bool\nforward_spatial_gui_input cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_forward_spatial_gui_input\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"forward_spatial_gui_input\"\n           '[Camera, InputEvent]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.forward_spatial_gui_input\n\n{-# NOINLINE bindEditorPlugin_get_breakpoints #-}\n\n-- | This is for editors that edit script-based objects. You can return a list of breakpoints in the format (@script:line@), for example: @res://path_to_script.gd:25@.\nbindEditorPlugin_get_breakpoints :: MethodBind\nbindEditorPlugin_get_breakpoints\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_breakpoints\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This is for editors that edit script-based objects. You can return a list of breakpoints in the format (@script:line@), for example: @res://path_to_script.gd:25@.\nget_breakpoints ::\n                  (EditorPlugin :< cls, Object :< cls) => cls -> IO PoolStringArray\nget_breakpoints cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_get_breakpoints\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"get_breakpoints\" '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.get_breakpoints\n\n{-# NOINLINE bindEditorPlugin_get_editor_interface #-}\n\n-- | Returns the @EditorInterface@ object that gives you control over Godot editor's window and its functionalities.\nbindEditorPlugin_get_editor_interface :: MethodBind\nbindEditorPlugin_get_editor_interface\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_editor_interface\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @EditorInterface@ object that gives you control over Godot editor's window and its functionalities.\nget_editor_interface ::\n                       (EditorPlugin :< cls, Object :< cls) => cls -> IO EditorInterface\nget_editor_interface cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_get_editor_interface\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"get_editor_interface\" '[]\n           (IO EditorInterface)\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.get_editor_interface\n\n{-# NOINLINE bindEditorPlugin_get_plugin_icon #-}\n\n-- | Override this method in your plugin to return a @Texture@ in order to give it an icon.\n--   \t\t\t\tFor main screen plugins, this appears at the top of the screen, to the right of the \"2D\", \"3D\", \"Script\", and \"AssetLib\" buttons.\n--   \t\t\t\tIdeally, the plugin icon should be white with a transparent background and 16x16 pixels in size.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc get_plugin_icon():\n--   \t\t\t\t    # You can use a custom icon:\n--   \t\t\t\t    return preload(\"res://addons/my_plugin/my_plugin_icon.svg\")\n--   \t\t\t\t    # Or use a built-in icon:\n--   \t\t\t\t    return get_editor_interface().get_base_control().get_icon(\"Node\", \"EditorIcons\")\n--   \t\t\t\t\n--   @\nbindEditorPlugin_get_plugin_icon :: MethodBind\nbindEditorPlugin_get_plugin_icon\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_plugin_icon\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method in your plugin to return a @Texture@ in order to give it an icon.\n--   \t\t\t\tFor main screen plugins, this appears at the top of the screen, to the right of the \"2D\", \"3D\", \"Script\", and \"AssetLib\" buttons.\n--   \t\t\t\tIdeally, the plugin icon should be white with a transparent background and 16x16 pixels in size.\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\tfunc get_plugin_icon():\n--   \t\t\t\t    # You can use a custom icon:\n--   \t\t\t\t    return preload(\"res://addons/my_plugin/my_plugin_icon.svg\")\n--   \t\t\t\t    # Or use a built-in icon:\n--   \t\t\t\t    return get_editor_interface().get_base_control().get_icon(\"Node\", \"EditorIcons\")\n--   \t\t\t\t\n--   @\nget_plugin_icon ::\n                  (EditorPlugin :< cls, Object :< cls) => cls -> IO Object\nget_plugin_icon cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_get_plugin_icon\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"get_plugin_icon\" '[] (IO Object)\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.get_plugin_icon\n\n{-# NOINLINE bindEditorPlugin_get_plugin_name #-}\n\n-- | Override this method in your plugin to provide the name of the plugin when displayed in the Godot editor.\n--   \t\t\t\tFor main screen plugins, this appears at the top of the screen, to the right of the \"2D\", \"3D\", \"Script\", and \"AssetLib\" buttons.\nbindEditorPlugin_get_plugin_name :: MethodBind\nbindEditorPlugin_get_plugin_name\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_plugin_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method in your plugin to provide the name of the plugin when displayed in the Godot editor.\n--   \t\t\t\tFor main screen plugins, this appears at the top of the screen, to the right of the \"2D\", \"3D\", \"Script\", and \"AssetLib\" buttons.\nget_plugin_name ::\n                  (EditorPlugin :< cls, Object :< cls) => cls -> IO GodotString\nget_plugin_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_get_plugin_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"get_plugin_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.get_plugin_name\n\n{-# NOINLINE bindEditorPlugin_get_script_create_dialog #-}\n\n-- | Gets the Editor's dialogue used for making scripts.\n--   \t\t\t\t__Note:__ Users can configure it before use.\nbindEditorPlugin_get_script_create_dialog :: MethodBind\nbindEditorPlugin_get_script_create_dialog\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_script_create_dialog\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the Editor's dialogue used for making scripts.\n--   \t\t\t\t__Note:__ Users can configure it before use.\nget_script_create_dialog ::\n                           (EditorPlugin :< cls, Object :< cls) =>\n                           cls -> IO ScriptCreateDialog\nget_script_create_dialog cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_get_script_create_dialog\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"get_script_create_dialog\" '[]\n           (IO ScriptCreateDialog)\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.get_script_create_dialog\n\n{-# NOINLINE bindEditorPlugin_get_state #-}\n\n-- | Gets the state of your plugin editor. This is used when saving the scene (so state is kept when opening it again) and for switching tabs (so state can be restored when the tab returns).\nbindEditorPlugin_get_state :: MethodBind\nbindEditorPlugin_get_state\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the state of your plugin editor. This is used when saving the scene (so state is kept when opening it again) and for switching tabs (so state can be restored when the tab returns).\nget_state ::\n            (EditorPlugin :< cls, Object :< cls) => cls -> IO Dictionary\nget_state cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_get_state (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"get_state\" '[] (IO Dictionary)\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.get_state\n\n{-# NOINLINE bindEditorPlugin_get_undo_redo #-}\n\n-- | Gets the undo/redo object. Most actions in the editor can be undoable, so use this object to make sure this happens when it's worth it.\nbindEditorPlugin_get_undo_redo :: MethodBind\nbindEditorPlugin_get_undo_redo\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_undo_redo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the undo/redo object. Most actions in the editor can be undoable, so use this object to make sure this happens when it's worth it.\nget_undo_redo ::\n                (EditorPlugin :< cls, Object :< cls) => cls -> IO UndoRedo\nget_undo_redo cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_get_undo_redo (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"get_undo_redo\" '[] (IO UndoRedo)\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.get_undo_redo\n\n{-# NOINLINE bindEditorPlugin_get_window_layout #-}\n\n-- | Gets the GUI layout of the plugin. This is used to save the project's editor layout when @method queue_save_layout@ is called or the editor layout was changed(For example changing the position of a dock).\nbindEditorPlugin_get_window_layout :: MethodBind\nbindEditorPlugin_get_window_layout\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_window_layout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the GUI layout of the plugin. This is used to save the project's editor layout when @method queue_save_layout@ is called or the editor layout was changed(For example changing the position of a dock).\nget_window_layout ::\n                    (EditorPlugin :< cls, Object :< cls) => cls -> ConfigFile -> IO ()\nget_window_layout cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_get_window_layout\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"get_window_layout\" '[ConfigFile]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.get_window_layout\n\n{-# NOINLINE bindEditorPlugin_handles #-}\n\n-- | Implement this function if your plugin edits a specific type of object (Resource or Node). If you return @true@, then you will get the functions @method edit@ and @method make_visible@ called when the editor requests them. If you have declared the methods @method forward_canvas_gui_input@ and @method forward_spatial_gui_input@ these will be called too.\nbindEditorPlugin_handles :: MethodBind\nbindEditorPlugin_handles\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"handles\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Implement this function if your plugin edits a specific type of object (Resource or Node). If you return @true@, then you will get the functions @method edit@ and @method make_visible@ called when the editor requests them. If you have declared the methods @method forward_canvas_gui_input@ and @method forward_spatial_gui_input@ these will be called too.\nhandles ::\n          (EditorPlugin :< cls, Object :< cls) => cls -> Object -> IO Bool\nhandles cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_handles (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"handles\" '[Object] (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.handles\n\n{-# NOINLINE bindEditorPlugin_has_main_screen #-}\n\n-- | Returns @true@ if this is a main screen editor plugin (it goes in the workspace selector together with __2D__, __3D__, __Script__ and __AssetLib__).\nbindEditorPlugin_has_main_screen :: MethodBind\nbindEditorPlugin_has_main_screen\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"has_main_screen\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if this is a main screen editor plugin (it goes in the workspace selector together with __2D__, __3D__, __Script__ and __AssetLib__).\nhas_main_screen ::\n                  (EditorPlugin :< cls, Object :< cls) => cls -> IO Bool\nhas_main_screen cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_has_main_screen\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"has_main_screen\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.has_main_screen\n\n{-# NOINLINE bindEditorPlugin_hide_bottom_panel #-}\n\nbindEditorPlugin_hide_bottom_panel :: MethodBind\nbindEditorPlugin_hide_bottom_panel\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"hide_bottom_panel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nhide_bottom_panel ::\n                    (EditorPlugin :< cls, Object :< cls) => cls -> IO ()\nhide_bottom_panel cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_hide_bottom_panel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"hide_bottom_panel\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.hide_bottom_panel\n\n{-# NOINLINE bindEditorPlugin_make_bottom_panel_item_visible #-}\n\nbindEditorPlugin_make_bottom_panel_item_visible :: MethodBind\nbindEditorPlugin_make_bottom_panel_item_visible\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"make_bottom_panel_item_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nmake_bottom_panel_item_visible ::\n                                 (EditorPlugin :< cls, Object :< cls) => cls -> Control -> IO ()\nmake_bottom_panel_item_visible cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorPlugin_make_bottom_panel_item_visible\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"make_bottom_panel_item_visible\"\n           '[Control]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorPlugin.make_bottom_panel_item_visible\n\n{-# NOINLINE bindEditorPlugin_make_visible #-}\n\n-- | This function will be called when the editor is requested to become visible. It is used for plugins that edit a specific object type.\n--   \t\t\t\tRemember that you have to manage the visibility of all your editor controls manually.\nbindEditorPlugin_make_visible :: MethodBind\nbindEditorPlugin_make_visible\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"make_visible\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This function will be called when the editor is requested to become visible. It is used for plugins that edit a specific object type.\n--   \t\t\t\tRemember that you have to manage the visibility of all your editor controls manually.\nmake_visible ::\n               (EditorPlugin :< cls, Object :< cls) => cls -> Bool -> IO ()\nmake_visible cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_make_visible (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"make_visible\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.make_visible\n\n{-# NOINLINE bindEditorPlugin_queue_save_layout #-}\n\n-- | Queue save the project's editor layout.\nbindEditorPlugin_queue_save_layout :: MethodBind\nbindEditorPlugin_queue_save_layout\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"queue_save_layout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Queue save the project's editor layout.\nqueue_save_layout ::\n                    (EditorPlugin :< cls, Object :< cls) => cls -> IO ()\nqueue_save_layout cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_queue_save_layout\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"queue_save_layout\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.queue_save_layout\n\n{-# NOINLINE bindEditorPlugin_remove_autoload_singleton #-}\n\n-- | Removes an Autoload @name@ from the list.\nbindEditorPlugin_remove_autoload_singleton :: MethodBind\nbindEditorPlugin_remove_autoload_singleton\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"remove_autoload_singleton\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes an Autoload @name@ from the list.\nremove_autoload_singleton ::\n                            (EditorPlugin :< cls, Object :< cls) => cls -> GodotString -> IO ()\nremove_autoload_singleton cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_remove_autoload_singleton\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"remove_autoload_singleton\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.remove_autoload_singleton\n\n{-# NOINLINE bindEditorPlugin_remove_control_from_bottom_panel #-}\n\n-- | Removes the control from the bottom panel. You have to manually @method Node.queue_free@ the control.\nbindEditorPlugin_remove_control_from_bottom_panel :: MethodBind\nbindEditorPlugin_remove_control_from_bottom_panel\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"remove_control_from_bottom_panel\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the control from the bottom panel. You have to manually @method Node.queue_free@ the control.\nremove_control_from_bottom_panel ::\n                                   (EditorPlugin :< cls, Object :< cls) => cls -> Control -> IO ()\nremove_control_from_bottom_panel cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorPlugin_remove_control_from_bottom_panel\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"remove_control_from_bottom_panel\"\n           '[Control]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorPlugin.remove_control_from_bottom_panel\n\n{-# NOINLINE bindEditorPlugin_remove_control_from_container #-}\n\n-- | Removes the control from the specified container. You have to manually @method Node.queue_free@ the control.\nbindEditorPlugin_remove_control_from_container :: MethodBind\nbindEditorPlugin_remove_control_from_container\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"remove_control_from_container\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the control from the specified container. You have to manually @method Node.queue_free@ the control.\nremove_control_from_container ::\n                                (EditorPlugin :< cls, Object :< cls) =>\n                                cls -> Int -> Control -> IO ()\nremove_control_from_container cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorPlugin_remove_control_from_container\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"remove_control_from_container\"\n           '[Int, Control]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.remove_control_from_container\n\n{-# NOINLINE bindEditorPlugin_remove_control_from_docks #-}\n\n-- | Removes the control from the dock. You have to manually @method Node.queue_free@ the control.\nbindEditorPlugin_remove_control_from_docks :: MethodBind\nbindEditorPlugin_remove_control_from_docks\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"remove_control_from_docks\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes the control from the dock. You have to manually @method Node.queue_free@ the control.\nremove_control_from_docks ::\n                            (EditorPlugin :< cls, Object :< cls) => cls -> Control -> IO ()\nremove_control_from_docks cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_remove_control_from_docks\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"remove_control_from_docks\"\n           '[Control]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.remove_control_from_docks\n\n{-# NOINLINE bindEditorPlugin_remove_custom_type #-}\n\n-- | Removes a custom type added by @method add_custom_type@.\nbindEditorPlugin_remove_custom_type :: MethodBind\nbindEditorPlugin_remove_custom_type\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"remove_custom_type\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a custom type added by @method add_custom_type@.\nremove_custom_type ::\n                     (EditorPlugin :< cls, Object :< cls) => cls -> GodotString -> IO ()\nremove_custom_type cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_remove_custom_type\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"remove_custom_type\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.remove_custom_type\n\n{-# NOINLINE bindEditorPlugin_remove_export_plugin #-}\n\nbindEditorPlugin_remove_export_plugin :: MethodBind\nbindEditorPlugin_remove_export_plugin\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"remove_export_plugin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nremove_export_plugin ::\n                       (EditorPlugin :< cls, Object :< cls) =>\n                       cls -> EditorExportPlugin -> IO ()\nremove_export_plugin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_remove_export_plugin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"remove_export_plugin\"\n           '[EditorExportPlugin]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.remove_export_plugin\n\n{-# NOINLINE bindEditorPlugin_remove_import_plugin #-}\n\nbindEditorPlugin_remove_import_plugin :: MethodBind\nbindEditorPlugin_remove_import_plugin\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"remove_import_plugin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nremove_import_plugin ::\n                       (EditorPlugin :< cls, Object :< cls) =>\n                       cls -> EditorImportPlugin -> IO ()\nremove_import_plugin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_remove_import_plugin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"remove_import_plugin\"\n           '[EditorImportPlugin]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.remove_import_plugin\n\n{-# NOINLINE bindEditorPlugin_remove_inspector_plugin #-}\n\nbindEditorPlugin_remove_inspector_plugin :: MethodBind\nbindEditorPlugin_remove_inspector_plugin\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"remove_inspector_plugin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nremove_inspector_plugin ::\n                          (EditorPlugin :< cls, Object :< cls) =>\n                          cls -> EditorInspectorPlugin -> IO ()\nremove_inspector_plugin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_remove_inspector_plugin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"remove_inspector_plugin\"\n           '[EditorInspectorPlugin]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.remove_inspector_plugin\n\n{-# NOINLINE bindEditorPlugin_remove_scene_import_plugin #-}\n\nbindEditorPlugin_remove_scene_import_plugin :: MethodBind\nbindEditorPlugin_remove_scene_import_plugin\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"remove_scene_import_plugin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nremove_scene_import_plugin ::\n                             (EditorPlugin :< cls, Object :< cls) =>\n                             cls -> EditorSceneImporter -> IO ()\nremove_scene_import_plugin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_remove_scene_import_plugin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"remove_scene_import_plugin\"\n           '[EditorSceneImporter]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.remove_scene_import_plugin\n\n{-# NOINLINE bindEditorPlugin_remove_spatial_gizmo_plugin #-}\n\nbindEditorPlugin_remove_spatial_gizmo_plugin :: MethodBind\nbindEditorPlugin_remove_spatial_gizmo_plugin\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"remove_spatial_gizmo_plugin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nremove_spatial_gizmo_plugin ::\n                              (EditorPlugin :< cls, Object :< cls) =>\n                              cls -> EditorSpatialGizmoPlugin -> IO ()\nremove_spatial_gizmo_plugin cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_remove_spatial_gizmo_plugin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"remove_spatial_gizmo_plugin\"\n           '[EditorSpatialGizmoPlugin]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.remove_spatial_gizmo_plugin\n\n{-# NOINLINE bindEditorPlugin_remove_tool_menu_item #-}\n\n-- | Removes a menu @name@ from __Project > Tools__.\nbindEditorPlugin_remove_tool_menu_item :: MethodBind\nbindEditorPlugin_remove_tool_menu_item\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"remove_tool_menu_item\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a menu @name@ from __Project > Tools__.\nremove_tool_menu_item ::\n                        (EditorPlugin :< cls, Object :< cls) => cls -> GodotString -> IO ()\nremove_tool_menu_item cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_remove_tool_menu_item\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"remove_tool_menu_item\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.remove_tool_menu_item\n\n{-# NOINLINE bindEditorPlugin_save_external_data #-}\n\n-- | This method is called after the editor saves the project or when it's closed. It asks the plugin to save edited external scenes/resources.\nbindEditorPlugin_save_external_data :: MethodBind\nbindEditorPlugin_save_external_data\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"save_external_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This method is called after the editor saves the project or when it's closed. It asks the plugin to save edited external scenes/resources.\nsave_external_data ::\n                     (EditorPlugin :< cls, Object :< cls) => cls -> IO ()\nsave_external_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_save_external_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"save_external_data\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.save_external_data\n\n{-# NOINLINE bindEditorPlugin_set_force_draw_over_forwarding_enabled\n             #-}\n\nbindEditorPlugin_set_force_draw_over_forwarding_enabled ::\n                                                        MethodBind\nbindEditorPlugin_set_force_draw_over_forwarding_enabled\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"set_force_draw_over_forwarding_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_force_draw_over_forwarding_enabled ::\n                                         (EditorPlugin :< cls, Object :< cls) => cls -> IO ()\nset_force_draw_over_forwarding_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorPlugin_set_force_draw_over_forwarding_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin\n           \"set_force_draw_over_forwarding_enabled\"\n           '[]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorPlugin.set_force_draw_over_forwarding_enabled\n\n{-# NOINLINE bindEditorPlugin_set_input_event_forwarding_always_enabled\n             #-}\n\n-- | Use this method if you always want to receive inputs from 3D view screen inside @method forward_spatial_gui_input@. It might be especially usable if your plugin will want to use raycast in the scene.\nbindEditorPlugin_set_input_event_forwarding_always_enabled ::\n                                                           MethodBind\nbindEditorPlugin_set_input_event_forwarding_always_enabled\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"set_input_event_forwarding_always_enabled\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Use this method if you always want to receive inputs from 3D view screen inside @method forward_spatial_gui_input@. It might be especially usable if your plugin will want to use raycast in the scene.\nset_input_event_forwarding_always_enabled ::\n                                            (EditorPlugin :< cls, Object :< cls) => cls -> IO ()\nset_input_event_forwarding_always_enabled cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorPlugin_set_input_event_forwarding_always_enabled\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin\n           \"set_input_event_forwarding_always_enabled\"\n           '[]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorPlugin.set_input_event_forwarding_always_enabled\n\n{-# NOINLINE bindEditorPlugin_set_state #-}\n\n-- | Restore the state saved by @method get_state@.\nbindEditorPlugin_set_state :: MethodBind\nbindEditorPlugin_set_state\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"set_state\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Restore the state saved by @method get_state@.\nset_state ::\n            (EditorPlugin :< cls, Object :< cls) => cls -> Dictionary -> IO ()\nset_state cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_set_state (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"set_state\" '[Dictionary] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.set_state\n\n{-# NOINLINE bindEditorPlugin_set_window_layout #-}\n\n-- | Restore the plugin GUI layout saved by @method get_window_layout@.\nbindEditorPlugin_set_window_layout :: MethodBind\nbindEditorPlugin_set_window_layout\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"set_window_layout\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Restore the plugin GUI layout saved by @method get_window_layout@.\nset_window_layout ::\n                    (EditorPlugin :< cls, Object :< cls) => cls -> ConfigFile -> IO ()\nset_window_layout cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_set_window_layout\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"set_window_layout\" '[ConfigFile]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.set_window_layout\n\n{-# NOINLINE bindEditorPlugin_update_overlays #-}\n\n-- | Updates the overlays of the editor (2D/3D) viewport.\nbindEditorPlugin_update_overlays :: MethodBind\nbindEditorPlugin_update_overlays\n  = unsafePerformIO $\n      withCString \"EditorPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"update_overlays\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Updates the overlays of the editor (2D/3D) viewport.\nupdate_overlays ::\n                  (EditorPlugin :< cls, Object :< cls) => cls -> IO Int\nupdate_overlays cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorPlugin_update_overlays\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorPlugin \"update_overlays\" '[] (IO Int)\n         where\n        nodeMethod = Godot.Tools.EditorPlugin.update_overlays"
  },
  {
    "path": "src/Godot/Tools/EditorProperty.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorProperty\n       (Godot.Tools.EditorProperty.sig_multiple_properties_changed,\n        Godot.Tools.EditorProperty.sig_object_id_selected,\n        Godot.Tools.EditorProperty.sig_property_changed,\n        Godot.Tools.EditorProperty.sig_property_checked,\n        Godot.Tools.EditorProperty.sig_property_keyed,\n        Godot.Tools.EditorProperty.sig_property_keyed_with_value,\n        Godot.Tools.EditorProperty.sig_resource_selected,\n        Godot.Tools.EditorProperty.sig_selected,\n        Godot.Tools.EditorProperty._focusable_focused,\n        Godot.Tools.EditorProperty._gui_input,\n        Godot.Tools.EditorProperty.add_focusable,\n        Godot.Tools.EditorProperty.emit_changed,\n        Godot.Tools.EditorProperty.get_edited_object,\n        Godot.Tools.EditorProperty.get_edited_property,\n        Godot.Tools.EditorProperty.get_label,\n        Godot.Tools.EditorProperty.get_tooltip_text,\n        Godot.Tools.EditorProperty.is_checkable,\n        Godot.Tools.EditorProperty.is_checked,\n        Godot.Tools.EditorProperty.is_draw_red,\n        Godot.Tools.EditorProperty.is_keying,\n        Godot.Tools.EditorProperty.is_read_only,\n        Godot.Tools.EditorProperty.set_bottom_editor,\n        Godot.Tools.EditorProperty.set_checkable,\n        Godot.Tools.EditorProperty.set_checked,\n        Godot.Tools.EditorProperty.set_draw_red,\n        Godot.Tools.EditorProperty.set_keying,\n        Godot.Tools.EditorProperty.set_label,\n        Godot.Tools.EditorProperty.set_read_only,\n        Godot.Tools.EditorProperty.update_property)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Container()\n\n-- | Emit it if you want multiple properties modified at the same time. Do not use if added via @method EditorInspectorPlugin.parse_property@.\nsig_multiple_properties_changed ::\n                                Godot.Internal.Dispatch.Signal EditorProperty\nsig_multiple_properties_changed\n  = Godot.Internal.Dispatch.Signal \"multiple_properties_changed\"\n\ninstance NodeSignal EditorProperty \"multiple_properties_changed\"\n           '[PoolStringArray, Array]\n\n-- | Used by sub-inspectors. Emit it if what was selected was an Object ID.\nsig_object_id_selected ::\n                       Godot.Internal.Dispatch.Signal EditorProperty\nsig_object_id_selected\n  = Godot.Internal.Dispatch.Signal \"object_id_selected\"\n\ninstance NodeSignal EditorProperty \"object_id_selected\"\n           '[GodotString, Int]\n\n-- | Do not emit this manually, use the @method emit_changed@ method instead.\nsig_property_changed ::\n                     Godot.Internal.Dispatch.Signal EditorProperty\nsig_property_changed\n  = Godot.Internal.Dispatch.Signal \"property_changed\"\n\ninstance NodeSignal EditorProperty \"property_changed\"\n           '[GodotString, GodotVariant]\n\n-- | Emitted when a property was checked. Used internally.\nsig_property_checked ::\n                     Godot.Internal.Dispatch.Signal EditorProperty\nsig_property_checked\n  = Godot.Internal.Dispatch.Signal \"property_checked\"\n\ninstance NodeSignal EditorProperty \"property_checked\"\n           '[GodotString, GodotString]\n\n-- | Emit it if you want to add this value as an animation key (check for keying being enabled first).\nsig_property_keyed :: Godot.Internal.Dispatch.Signal EditorProperty\nsig_property_keyed\n  = Godot.Internal.Dispatch.Signal \"property_keyed\"\n\ninstance NodeSignal EditorProperty \"property_keyed\" '[GodotString]\n\n-- | Emit it if you want to key a property with a single value.\nsig_property_keyed_with_value ::\n                              Godot.Internal.Dispatch.Signal EditorProperty\nsig_property_keyed_with_value\n  = Godot.Internal.Dispatch.Signal \"property_keyed_with_value\"\n\ninstance NodeSignal EditorProperty \"property_keyed_with_value\"\n           '[GodotString, GodotVariant]\n\n-- | If you want a sub-resource to be edited, emit this signal with the resource.\nsig_resource_selected ::\n                      Godot.Internal.Dispatch.Signal EditorProperty\nsig_resource_selected\n  = Godot.Internal.Dispatch.Signal \"resource_selected\"\n\ninstance NodeSignal EditorProperty \"resource_selected\"\n           '[GodotString, Resource]\n\n-- | Emitted when selected. Used internally.\nsig_selected :: Godot.Internal.Dispatch.Signal EditorProperty\nsig_selected = Godot.Internal.Dispatch.Signal \"selected\"\n\ninstance NodeSignal EditorProperty \"selected\" '[GodotString, Int]\n\ninstance NodeProperty EditorProperty \"checkable\" Bool 'False where\n        nodeProperty\n          = (is_checkable, wrapDroppingSetter set_checkable, Nothing)\n\ninstance NodeProperty EditorProperty \"checked\" Bool 'False where\n        nodeProperty\n          = (is_checked, wrapDroppingSetter set_checked, Nothing)\n\ninstance NodeProperty EditorProperty \"draw_red\" Bool 'False where\n        nodeProperty\n          = (is_draw_red, wrapDroppingSetter set_draw_red, Nothing)\n\ninstance NodeProperty EditorProperty \"keying\" Bool 'False where\n        nodeProperty = (is_keying, wrapDroppingSetter set_keying, Nothing)\n\ninstance NodeProperty EditorProperty \"label\" GodotString 'False\n         where\n        nodeProperty = (get_label, wrapDroppingSetter set_label, Nothing)\n\ninstance NodeProperty EditorProperty \"read_only\" Bool 'False where\n        nodeProperty\n          = (is_read_only, wrapDroppingSetter set_read_only, Nothing)\n\n{-# NOINLINE bindEditorProperty__focusable_focused #-}\n\nbindEditorProperty__focusable_focused :: MethodBind\nbindEditorProperty__focusable_focused\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"_focusable_focused\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_focusable_focused ::\n                     (EditorProperty :< cls, Object :< cls) => cls -> Int -> IO ()\n_focusable_focused cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty__focusable_focused\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"_focusable_focused\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorProperty._focusable_focused\n\n{-# NOINLINE bindEditorProperty__gui_input #-}\n\nbindEditorProperty__gui_input :: MethodBind\nbindEditorProperty__gui_input\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (EditorProperty :< cls, Object :< cls) =>\n             cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty__gui_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"_gui_input\" '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorProperty._gui_input\n\n{-# NOINLINE bindEditorProperty_add_focusable #-}\n\n-- | If any of the controls added can gain keyboard focus, add it here. This ensures that focus will be restored if the inspector is refreshed.\nbindEditorProperty_add_focusable :: MethodBind\nbindEditorProperty_add_focusable\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"add_focusable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If any of the controls added can gain keyboard focus, add it here. This ensures that focus will be restored if the inspector is refreshed.\nadd_focusable ::\n                (EditorProperty :< cls, Object :< cls) => cls -> Control -> IO ()\nadd_focusable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_add_focusable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"add_focusable\" '[Control]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorProperty.add_focusable\n\n{-# NOINLINE bindEditorProperty_emit_changed #-}\n\n-- | If one or several properties have changed, this must be called. @field@ is used in case your editor can modify fields separately (as an example, Vector3.x). The @changing@ argument avoids the editor requesting this property to be refreshed (leave as @false@ if unsure).\nbindEditorProperty_emit_changed :: MethodBind\nbindEditorProperty_emit_changed\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"emit_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If one or several properties have changed, this must be called. @field@ is used in case your editor can modify fields separately (as an example, Vector3.x). The @changing@ argument avoids the editor requesting this property to be refreshed (leave as @false@ if unsure).\nemit_changed ::\n               (EditorProperty :< cls, Object :< cls) =>\n               cls ->\n                 GodotString ->\n                   GodotVariant -> Maybe GodotString -> Maybe Bool -> IO ()\nemit_changed cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       defaultedVariant VariantString \"\" arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_emit_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"emit_changed\"\n           '[GodotString, GodotVariant, Maybe GodotString, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorProperty.emit_changed\n\n{-# NOINLINE bindEditorProperty_get_edited_object #-}\n\n-- | Gets the edited object.\nbindEditorProperty_get_edited_object :: MethodBind\nbindEditorProperty_get_edited_object\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"get_edited_object\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the edited object.\nget_edited_object ::\n                    (EditorProperty :< cls, Object :< cls) => cls -> IO Object\nget_edited_object cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_get_edited_object\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"get_edited_object\" '[]\n           (IO Object)\n         where\n        nodeMethod = Godot.Tools.EditorProperty.get_edited_object\n\n{-# NOINLINE bindEditorProperty_get_edited_property #-}\n\n-- | Gets the edited property. If your editor is for a single property (added via @method EditorInspectorPlugin.parse_property@), then this will return the property.\nbindEditorProperty_get_edited_property :: MethodBind\nbindEditorProperty_get_edited_property\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"get_edited_property\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the edited property. If your editor is for a single property (added via @method EditorInspectorPlugin.parse_property@), then this will return the property.\nget_edited_property ::\n                      (EditorProperty :< cls, Object :< cls) => cls -> IO GodotString\nget_edited_property cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_get_edited_property\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"get_edited_property\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorProperty.get_edited_property\n\n{-# NOINLINE bindEditorProperty_get_label #-}\n\n-- | Set this property to change the label (if you want to show one).\nbindEditorProperty_get_label :: MethodBind\nbindEditorProperty_get_label\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"get_label\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Set this property to change the label (if you want to show one).\nget_label ::\n            (EditorProperty :< cls, Object :< cls) => cls -> IO GodotString\nget_label cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_get_label (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"get_label\" '[] (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorProperty.get_label\n\n{-# NOINLINE bindEditorProperty_get_tooltip_text #-}\n\n-- | Override if you want to allow a custom tooltip over your property.\nbindEditorProperty_get_tooltip_text :: MethodBind\nbindEditorProperty_get_tooltip_text\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"get_tooltip_text\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override if you want to allow a custom tooltip over your property.\nget_tooltip_text ::\n                   (EditorProperty :< cls, Object :< cls) => cls -> IO GodotString\nget_tooltip_text cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_get_tooltip_text\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"get_tooltip_text\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorProperty.get_tooltip_text\n\n{-# NOINLINE bindEditorProperty_is_checkable #-}\n\n-- | Used by the inspector, set to @true@ when the property is checkable.\nbindEditorProperty_is_checkable :: MethodBind\nbindEditorProperty_is_checkable\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"is_checkable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Used by the inspector, set to @true@ when the property is checkable.\nis_checkable ::\n               (EditorProperty :< cls, Object :< cls) => cls -> IO Bool\nis_checkable cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_is_checkable (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"is_checkable\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorProperty.is_checkable\n\n{-# NOINLINE bindEditorProperty_is_checked #-}\n\n-- | Used by the inspector, set to @true@ when the property is checked.\nbindEditorProperty_is_checked :: MethodBind\nbindEditorProperty_is_checked\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"is_checked\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Used by the inspector, set to @true@ when the property is checked.\nis_checked ::\n             (EditorProperty :< cls, Object :< cls) => cls -> IO Bool\nis_checked cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_is_checked (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"is_checked\" '[] (IO Bool) where\n        nodeMethod = Godot.Tools.EditorProperty.is_checked\n\n{-# NOINLINE bindEditorProperty_is_draw_red #-}\n\n-- | Used by the inspector, set to @true@ when the property must draw with error color. This is used for editable children's properties.\nbindEditorProperty_is_draw_red :: MethodBind\nbindEditorProperty_is_draw_red\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"is_draw_red\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Used by the inspector, set to @true@ when the property must draw with error color. This is used for editable children's properties.\nis_draw_red ::\n              (EditorProperty :< cls, Object :< cls) => cls -> IO Bool\nis_draw_red cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_is_draw_red (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"is_draw_red\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorProperty.is_draw_red\n\n{-# NOINLINE bindEditorProperty_is_keying #-}\n\n-- | Used by the inspector, set to @true@ when the property can add keys for animation.\nbindEditorProperty_is_keying :: MethodBind\nbindEditorProperty_is_keying\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"is_keying\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Used by the inspector, set to @true@ when the property can add keys for animation.\nis_keying ::\n            (EditorProperty :< cls, Object :< cls) => cls -> IO Bool\nis_keying cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_is_keying (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"is_keying\" '[] (IO Bool) where\n        nodeMethod = Godot.Tools.EditorProperty.is_keying\n\n{-# NOINLINE bindEditorProperty_is_read_only #-}\n\n-- | Used by the inspector, set to @true@ when the property is read-only.\nbindEditorProperty_is_read_only :: MethodBind\nbindEditorProperty_is_read_only\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"is_read_only\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Used by the inspector, set to @true@ when the property is read-only.\nis_read_only ::\n               (EditorProperty :< cls, Object :< cls) => cls -> IO Bool\nis_read_only cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_is_read_only (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"is_read_only\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorProperty.is_read_only\n\n{-# NOINLINE bindEditorProperty_set_bottom_editor #-}\n\n-- | Adds controls with this function if you want them on the bottom (below the label).\nbindEditorProperty_set_bottom_editor :: MethodBind\nbindEditorProperty_set_bottom_editor\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"set_bottom_editor\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds controls with this function if you want them on the bottom (below the label).\nset_bottom_editor ::\n                    (EditorProperty :< cls, Object :< cls) => cls -> Control -> IO ()\nset_bottom_editor cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_set_bottom_editor\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"set_bottom_editor\" '[Control]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorProperty.set_bottom_editor\n\n{-# NOINLINE bindEditorProperty_set_checkable #-}\n\n-- | Used by the inspector, set to @true@ when the property is checkable.\nbindEditorProperty_set_checkable :: MethodBind\nbindEditorProperty_set_checkable\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"set_checkable\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Used by the inspector, set to @true@ when the property is checkable.\nset_checkable ::\n                (EditorProperty :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_checkable cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_set_checkable\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"set_checkable\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorProperty.set_checkable\n\n{-# NOINLINE bindEditorProperty_set_checked #-}\n\n-- | Used by the inspector, set to @true@ when the property is checked.\nbindEditorProperty_set_checked :: MethodBind\nbindEditorProperty_set_checked\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"set_checked\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Used by the inspector, set to @true@ when the property is checked.\nset_checked ::\n              (EditorProperty :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_checked cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_set_checked (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"set_checked\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorProperty.set_checked\n\n{-# NOINLINE bindEditorProperty_set_draw_red #-}\n\n-- | Used by the inspector, set to @true@ when the property must draw with error color. This is used for editable children's properties.\nbindEditorProperty_set_draw_red :: MethodBind\nbindEditorProperty_set_draw_red\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"set_draw_red\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Used by the inspector, set to @true@ when the property must draw with error color. This is used for editable children's properties.\nset_draw_red ::\n               (EditorProperty :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_draw_red cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_set_draw_red (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"set_draw_red\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorProperty.set_draw_red\n\n{-# NOINLINE bindEditorProperty_set_keying #-}\n\n-- | Used by the inspector, set to @true@ when the property can add keys for animation.\nbindEditorProperty_set_keying :: MethodBind\nbindEditorProperty_set_keying\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"set_keying\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Used by the inspector, set to @true@ when the property can add keys for animation.\nset_keying ::\n             (EditorProperty :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_keying cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_set_keying (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"set_keying\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorProperty.set_keying\n\n{-# NOINLINE bindEditorProperty_set_label #-}\n\n-- | Set this property to change the label (if you want to show one).\nbindEditorProperty_set_label :: MethodBind\nbindEditorProperty_set_label\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"set_label\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Set this property to change the label (if you want to show one).\nset_label ::\n            (EditorProperty :< cls, Object :< cls) =>\n            cls -> GodotString -> IO ()\nset_label cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_set_label (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"set_label\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorProperty.set_label\n\n{-# NOINLINE bindEditorProperty_set_read_only #-}\n\n-- | Used by the inspector, set to @true@ when the property is read-only.\nbindEditorProperty_set_read_only :: MethodBind\nbindEditorProperty_set_read_only\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"set_read_only\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Used by the inspector, set to @true@ when the property is read-only.\nset_read_only ::\n                (EditorProperty :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_read_only cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_set_read_only\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"set_read_only\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorProperty.set_read_only\n\n{-# NOINLINE bindEditorProperty_update_property #-}\n\n-- | When this virtual function is called, you must update your editor.\nbindEditorProperty_update_property :: MethodBind\nbindEditorProperty_update_property\n  = unsafePerformIO $\n      withCString \"EditorProperty\" $\n        \\ clsNamePtr ->\n          withCString \"update_property\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | When this virtual function is called, you must update your editor.\nupdate_property ::\n                  (EditorProperty :< cls, Object :< cls) => cls -> IO ()\nupdate_property cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorProperty_update_property\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorProperty \"update_property\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorProperty.update_property"
  },
  {
    "path": "src/Godot/Tools/EditorResourceConversionPlugin.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorResourceConversionPlugin\n       (Godot.Tools.EditorResourceConversionPlugin._convert,\n        Godot.Tools.EditorResourceConversionPlugin._converts_to)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindEditorResourceConversionPlugin__convert #-}\n\nbindEditorResourceConversionPlugin__convert :: MethodBind\nbindEditorResourceConversionPlugin__convert\n  = unsafePerformIO $\n      withCString \"EditorResourceConversionPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"_convert\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_convert ::\n           (EditorResourceConversionPlugin :< cls, Object :< cls) =>\n           cls -> Resource -> IO Resource\n_convert cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorResourceConversionPlugin__convert\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorResourceConversionPlugin \"_convert\"\n           '[Resource]\n           (IO Resource)\n         where\n        nodeMethod = Godot.Tools.EditorResourceConversionPlugin._convert\n\n{-# NOINLINE bindEditorResourceConversionPlugin__converts_to #-}\n\nbindEditorResourceConversionPlugin__converts_to :: MethodBind\nbindEditorResourceConversionPlugin__converts_to\n  = unsafePerformIO $\n      withCString \"EditorResourceConversionPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"_converts_to\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_converts_to ::\n               (EditorResourceConversionPlugin :< cls, Object :< cls) =>\n               cls -> IO GodotString\n_converts_to cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorResourceConversionPlugin__converts_to\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorResourceConversionPlugin \"_converts_to\"\n           '[]\n           (IO GodotString)\n         where\n        nodeMethod\n          = Godot.Tools.EditorResourceConversionPlugin._converts_to"
  },
  {
    "path": "src/Godot/Tools/EditorResourcePreview.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorResourcePreview\n       (Godot.Tools.EditorResourcePreview.sig_preview_invalidated,\n        Godot.Tools.EditorResourcePreview._preview_ready,\n        Godot.Tools.EditorResourcePreview.add_preview_generator,\n        Godot.Tools.EditorResourcePreview.check_for_invalidation,\n        Godot.Tools.EditorResourcePreview.queue_edited_resource_preview,\n        Godot.Tools.EditorResourcePreview.queue_resource_preview,\n        Godot.Tools.EditorResourcePreview.remove_preview_generator)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Node()\n\n-- | Emitted if a preview was invalidated (changed). @path@ corresponds to the path of the preview.\nsig_preview_invalidated ::\n                        Godot.Internal.Dispatch.Signal EditorResourcePreview\nsig_preview_invalidated\n  = Godot.Internal.Dispatch.Signal \"preview_invalidated\"\n\ninstance NodeSignal EditorResourcePreview \"preview_invalidated\"\n           '[GodotString]\n\n{-# NOINLINE bindEditorResourcePreview__preview_ready #-}\n\nbindEditorResourcePreview__preview_ready :: MethodBind\nbindEditorResourcePreview__preview_ready\n  = unsafePerformIO $\n      withCString \"EditorResourcePreview\" $\n        \\ clsNamePtr ->\n          withCString \"_preview_ready\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_preview_ready ::\n                 (EditorResourcePreview :< cls, Object :< cls) =>\n                 cls ->\n                   GodotString ->\n                     Texture -> Texture -> Int -> GodotString -> GodotVariant -> IO ()\n_preview_ready cls arg1 arg2 arg3 arg4 arg5 arg6\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4,\n       toVariant arg5, toVariant arg6]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorResourcePreview__preview_ready\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorResourcePreview \"_preview_ready\"\n           '[GodotString, Texture, Texture, Int, GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorResourcePreview._preview_ready\n\n{-# NOINLINE bindEditorResourcePreview_add_preview_generator #-}\n\n-- | Create an own, custom preview generator.\nbindEditorResourcePreview_add_preview_generator :: MethodBind\nbindEditorResourcePreview_add_preview_generator\n  = unsafePerformIO $\n      withCString \"EditorResourcePreview\" $\n        \\ clsNamePtr ->\n          withCString \"add_preview_generator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Create an own, custom preview generator.\nadd_preview_generator ::\n                        (EditorResourcePreview :< cls, Object :< cls) =>\n                        cls -> EditorResourcePreviewGenerator -> IO ()\nadd_preview_generator cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorResourcePreview_add_preview_generator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorResourcePreview \"add_preview_generator\"\n           '[EditorResourcePreviewGenerator]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorResourcePreview.add_preview_generator\n\n{-# NOINLINE bindEditorResourcePreview_check_for_invalidation #-}\n\n-- | Check if the resource changed, if so, it will be invalidated and the corresponding signal emitted.\nbindEditorResourcePreview_check_for_invalidation :: MethodBind\nbindEditorResourcePreview_check_for_invalidation\n  = unsafePerformIO $\n      withCString \"EditorResourcePreview\" $\n        \\ clsNamePtr ->\n          withCString \"check_for_invalidation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Check if the resource changed, if so, it will be invalidated and the corresponding signal emitted.\ncheck_for_invalidation ::\n                         (EditorResourcePreview :< cls, Object :< cls) =>\n                         cls -> GodotString -> IO ()\ncheck_for_invalidation cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorResourcePreview_check_for_invalidation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorResourcePreview \"check_for_invalidation\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorResourcePreview.check_for_invalidation\n\n{-# NOINLINE bindEditorResourcePreview_queue_edited_resource_preview\n             #-}\n\n-- | Queue a resource being edited for preview (using an instance). Once the preview is ready, your receiver.receiver_func will be called either containing the preview texture or an empty texture (if no preview was possible). Callback must have the format: (path,texture,userdata). Userdata can be anything.\nbindEditorResourcePreview_queue_edited_resource_preview ::\n                                                        MethodBind\nbindEditorResourcePreview_queue_edited_resource_preview\n  = unsafePerformIO $\n      withCString \"EditorResourcePreview\" $\n        \\ clsNamePtr ->\n          withCString \"queue_edited_resource_preview\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Queue a resource being edited for preview (using an instance). Once the preview is ready, your receiver.receiver_func will be called either containing the preview texture or an empty texture (if no preview was possible). Callback must have the format: (path,texture,userdata). Userdata can be anything.\nqueue_edited_resource_preview ::\n                                (EditorResourcePreview :< cls, Object :< cls) =>\n                                cls -> Resource -> Object -> GodotString -> GodotVariant -> IO ()\nqueue_edited_resource_preview cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorResourcePreview_queue_edited_resource_preview\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorResourcePreview\n           \"queue_edited_resource_preview\"\n           '[Resource, Object, GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorResourcePreview.queue_edited_resource_preview\n\n{-# NOINLINE bindEditorResourcePreview_queue_resource_preview #-}\n\n-- | Queue a resource file for preview (using a path). Once the preview is ready, your receiver.receiver_func will be called either containing the preview texture or an empty texture (if no preview was possible). Callback must have the format: (path,texture,userdata). Userdata can be anything.\nbindEditorResourcePreview_queue_resource_preview :: MethodBind\nbindEditorResourcePreview_queue_resource_preview\n  = unsafePerformIO $\n      withCString \"EditorResourcePreview\" $\n        \\ clsNamePtr ->\n          withCString \"queue_resource_preview\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Queue a resource file for preview (using a path). Once the preview is ready, your receiver.receiver_func will be called either containing the preview texture or an empty texture (if no preview was possible). Callback must have the format: (path,texture,userdata). Userdata can be anything.\nqueue_resource_preview ::\n                         (EditorResourcePreview :< cls, Object :< cls) =>\n                         cls ->\n                           GodotString -> Object -> GodotString -> GodotVariant -> IO ()\nqueue_resource_preview cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorResourcePreview_queue_resource_preview\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorResourcePreview \"queue_resource_preview\"\n           '[GodotString, Object, GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorResourcePreview.queue_resource_preview\n\n{-# NOINLINE bindEditorResourcePreview_remove_preview_generator #-}\n\n-- | Removes a custom preview generator.\nbindEditorResourcePreview_remove_preview_generator :: MethodBind\nbindEditorResourcePreview_remove_preview_generator\n  = unsafePerformIO $\n      withCString \"EditorResourcePreview\" $\n        \\ clsNamePtr ->\n          withCString \"remove_preview_generator\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a custom preview generator.\nremove_preview_generator ::\n                           (EditorResourcePreview :< cls, Object :< cls) =>\n                           cls -> EditorResourcePreviewGenerator -> IO ()\nremove_preview_generator cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorResourcePreview_remove_preview_generator\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorResourcePreview\n           \"remove_preview_generator\"\n           '[EditorResourcePreviewGenerator]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorResourcePreview.remove_preview_generator"
  },
  {
    "path": "src/Godot/Tools/EditorResourcePreviewGenerator.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorResourcePreviewGenerator\n       (Godot.Tools.EditorResourcePreviewGenerator.can_generate_small_preview,\n        Godot.Tools.EditorResourcePreviewGenerator.generate,\n        Godot.Tools.EditorResourcePreviewGenerator.generate_from_path,\n        Godot.Tools.EditorResourcePreviewGenerator.generate_small_preview_automatically,\n        Godot.Tools.EditorResourcePreviewGenerator.handles)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindEditorResourcePreviewGenerator_can_generate_small_preview\n             #-}\n\n-- | If this function returns @true@, the generator will call @method generate@ or @method generate_from_path@ for small previews as well.\n--   \t\t\t\tBy default, it returns @false@.\nbindEditorResourcePreviewGenerator_can_generate_small_preview ::\n                                                              MethodBind\nbindEditorResourcePreviewGenerator_can_generate_small_preview\n  = unsafePerformIO $\n      withCString \"EditorResourcePreviewGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"can_generate_small_preview\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If this function returns @true@, the generator will call @method generate@ or @method generate_from_path@ for small previews as well.\n--   \t\t\t\tBy default, it returns @false@.\ncan_generate_small_preview ::\n                             (EditorResourcePreviewGenerator :< cls, Object :< cls) =>\n                             cls -> IO Bool\ncan_generate_small_preview cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorResourcePreviewGenerator_can_generate_small_preview\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorResourcePreviewGenerator\n           \"can_generate_small_preview\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Tools.EditorResourcePreviewGenerator.can_generate_small_preview\n\n{-# NOINLINE bindEditorResourcePreviewGenerator_generate #-}\n\n-- | Generate a preview from a given resource with the specified size. This must always be implemented.\n--   \t\t\t\tReturning an empty texture is an OK way to fail and let another generator take care.\n--   \t\t\t\tCare must be taken because this function is always called from a thread (not the main thread).\nbindEditorResourcePreviewGenerator_generate :: MethodBind\nbindEditorResourcePreviewGenerator_generate\n  = unsafePerformIO $\n      withCString \"EditorResourcePreviewGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"generate\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Generate a preview from a given resource with the specified size. This must always be implemented.\n--   \t\t\t\tReturning an empty texture is an OK way to fail and let another generator take care.\n--   \t\t\t\tCare must be taken because this function is always called from a thread (not the main thread).\ngenerate ::\n           (EditorResourcePreviewGenerator :< cls, Object :< cls) =>\n           cls -> Resource -> Vector2 -> IO Texture\ngenerate cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorResourcePreviewGenerator_generate\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorResourcePreviewGenerator \"generate\"\n           '[Resource, Vector2]\n           (IO Texture)\n         where\n        nodeMethod = Godot.Tools.EditorResourcePreviewGenerator.generate\n\n{-# NOINLINE bindEditorResourcePreviewGenerator_generate_from_path\n             #-}\n\n-- | Generate a preview directly from a path with the specified size. Implementing this is optional, as default code will load and call @method generate@.\n--   \t\t\t\tReturning an empty texture is an OK way to fail and let another generator take care.\n--   \t\t\t\tCare must be taken because this function is always called from a thread (not the main thread).\nbindEditorResourcePreviewGenerator_generate_from_path :: MethodBind\nbindEditorResourcePreviewGenerator_generate_from_path\n  = unsafePerformIO $\n      withCString \"EditorResourcePreviewGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"generate_from_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Generate a preview directly from a path with the specified size. Implementing this is optional, as default code will load and call @method generate@.\n--   \t\t\t\tReturning an empty texture is an OK way to fail and let another generator take care.\n--   \t\t\t\tCare must be taken because this function is always called from a thread (not the main thread).\ngenerate_from_path ::\n                     (EditorResourcePreviewGenerator :< cls, Object :< cls) =>\n                     cls -> GodotString -> Vector2 -> IO Texture\ngenerate_from_path cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorResourcePreviewGenerator_generate_from_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorResourcePreviewGenerator\n           \"generate_from_path\"\n           '[GodotString, Vector2]\n           (IO Texture)\n         where\n        nodeMethod\n          = Godot.Tools.EditorResourcePreviewGenerator.generate_from_path\n\n{-# NOINLINE bindEditorResourcePreviewGenerator_generate_small_preview_automatically\n             #-}\n\n-- | If this function returns @true@, the generator will automatically generate the small previews from the normal preview texture generated by the methods @method generate@ or @method generate_from_path@.\n--   \t\t\t\tBy default, it returns @false@.\nbindEditorResourcePreviewGenerator_generate_small_preview_automatically ::\n                                                                        MethodBind\nbindEditorResourcePreviewGenerator_generate_small_preview_automatically\n  = unsafePerformIO $\n      withCString \"EditorResourcePreviewGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"generate_small_preview_automatically\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | If this function returns @true@, the generator will automatically generate the small previews from the normal preview texture generated by the methods @method generate@ or @method generate_from_path@.\n--   \t\t\t\tBy default, it returns @false@.\ngenerate_small_preview_automatically ::\n                                       (EditorResourcePreviewGenerator :< cls, Object :< cls) =>\n                                       cls -> IO Bool\ngenerate_small_preview_automatically cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorResourcePreviewGenerator_generate_small_preview_automatically\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorResourcePreviewGenerator\n           \"generate_small_preview_automatically\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Tools.EditorResourcePreviewGenerator.generate_small_preview_automatically\n\n{-# NOINLINE bindEditorResourcePreviewGenerator_handles #-}\n\n-- | Returns @true@ if your generator supports the resource of type @type@.\nbindEditorResourcePreviewGenerator_handles :: MethodBind\nbindEditorResourcePreviewGenerator_handles\n  = unsafePerformIO $\n      withCString \"EditorResourcePreviewGenerator\" $\n        \\ clsNamePtr ->\n          withCString \"handles\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if your generator supports the resource of type @type@.\nhandles ::\n          (EditorResourcePreviewGenerator :< cls, Object :< cls) =>\n          cls -> GodotString -> IO Bool\nhandles cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorResourcePreviewGenerator_handles\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorResourcePreviewGenerator \"handles\"\n           '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorResourcePreviewGenerator.handles"
  },
  {
    "path": "src/Godot/Tools/EditorSceneImporter.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorSceneImporter\n       (Godot.Tools.EditorSceneImporter._IMPORT_MATERIALS_IN_INSTANCES,\n        Godot.Tools.EditorSceneImporter._IMPORT_ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS,\n        Godot.Tools.EditorSceneImporter._IMPORT_USE_COMPRESSION,\n        Godot.Tools.EditorSceneImporter._IMPORT_FAIL_ON_MISSING_DEPENDENCIES,\n        Godot.Tools.EditorSceneImporter._IMPORT_ANIMATION,\n        Godot.Tools.EditorSceneImporter._IMPORT_SCENE,\n        Godot.Tools.EditorSceneImporter._IMPORT_ANIMATION_KEEP_VALUE_TRACKS,\n        Godot.Tools.EditorSceneImporter._IMPORT_ANIMATION_DETECT_LOOP,\n        Godot.Tools.EditorSceneImporter._IMPORT_ANIMATION_OPTIMIZE,\n        Godot.Tools.EditorSceneImporter._IMPORT_GENERATE_TANGENT_ARRAYS,\n        Godot.Tools.EditorSceneImporter._get_extensions,\n        Godot.Tools.EditorSceneImporter._get_import_flags,\n        Godot.Tools.EditorSceneImporter._import_animation,\n        Godot.Tools.EditorSceneImporter._import_scene,\n        Godot.Tools.EditorSceneImporter.import_animation_from_other_importer,\n        Godot.Tools.EditorSceneImporter.import_scene_from_other_importer)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n_IMPORT_MATERIALS_IN_INSTANCES :: Int\n_IMPORT_MATERIALS_IN_INSTANCES = 1024\n\n_IMPORT_ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS :: Int\n_IMPORT_ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS = 16\n\n_IMPORT_USE_COMPRESSION :: Int\n_IMPORT_USE_COMPRESSION = 2048\n\n_IMPORT_FAIL_ON_MISSING_DEPENDENCIES :: Int\n_IMPORT_FAIL_ON_MISSING_DEPENDENCIES = 512\n\n_IMPORT_ANIMATION :: Int\n_IMPORT_ANIMATION = 2\n\n_IMPORT_SCENE :: Int\n_IMPORT_SCENE = 1\n\n_IMPORT_ANIMATION_KEEP_VALUE_TRACKS :: Int\n_IMPORT_ANIMATION_KEEP_VALUE_TRACKS = 32\n\n_IMPORT_ANIMATION_DETECT_LOOP :: Int\n_IMPORT_ANIMATION_DETECT_LOOP = 4\n\n_IMPORT_ANIMATION_OPTIMIZE :: Int\n_IMPORT_ANIMATION_OPTIMIZE = 8\n\n_IMPORT_GENERATE_TANGENT_ARRAYS :: Int\n_IMPORT_GENERATE_TANGENT_ARRAYS = 256\n\n{-# NOINLINE bindEditorSceneImporter__get_extensions #-}\n\nbindEditorSceneImporter__get_extensions :: MethodBind\nbindEditorSceneImporter__get_extensions\n  = unsafePerformIO $\n      withCString \"EditorSceneImporter\" $\n        \\ clsNamePtr ->\n          withCString \"_get_extensions\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_extensions ::\n                  (EditorSceneImporter :< cls, Object :< cls) => cls -> IO Array\n_get_extensions cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSceneImporter__get_extensions\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSceneImporter \"_get_extensions\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Tools.EditorSceneImporter._get_extensions\n\n{-# NOINLINE bindEditorSceneImporter__get_import_flags #-}\n\nbindEditorSceneImporter__get_import_flags :: MethodBind\nbindEditorSceneImporter__get_import_flags\n  = unsafePerformIO $\n      withCString \"EditorSceneImporter\" $\n        \\ clsNamePtr ->\n          withCString \"_get_import_flags\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_import_flags ::\n                    (EditorSceneImporter :< cls, Object :< cls) => cls -> IO Int\n_get_import_flags cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSceneImporter__get_import_flags\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSceneImporter \"_get_import_flags\" '[]\n           (IO Int)\n         where\n        nodeMethod = Godot.Tools.EditorSceneImporter._get_import_flags\n\n{-# NOINLINE bindEditorSceneImporter__import_animation #-}\n\nbindEditorSceneImporter__import_animation :: MethodBind\nbindEditorSceneImporter__import_animation\n  = unsafePerformIO $\n      withCString \"EditorSceneImporter\" $\n        \\ clsNamePtr ->\n          withCString \"_import_animation\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_import_animation ::\n                    (EditorSceneImporter :< cls, Object :< cls) =>\n                    cls -> GodotString -> Int -> Int -> IO Animation\n_import_animation cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSceneImporter__import_animation\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSceneImporter \"_import_animation\"\n           '[GodotString, Int, Int]\n           (IO Animation)\n         where\n        nodeMethod = Godot.Tools.EditorSceneImporter._import_animation\n\n{-# NOINLINE bindEditorSceneImporter__import_scene #-}\n\nbindEditorSceneImporter__import_scene :: MethodBind\nbindEditorSceneImporter__import_scene\n  = unsafePerformIO $\n      withCString \"EditorSceneImporter\" $\n        \\ clsNamePtr ->\n          withCString \"_import_scene\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_import_scene ::\n                (EditorSceneImporter :< cls, Object :< cls) =>\n                cls -> GodotString -> Int -> Int -> IO Node\n_import_scene cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSceneImporter__import_scene\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSceneImporter \"_import_scene\"\n           '[GodotString, Int, Int]\n           (IO Node)\n         where\n        nodeMethod = Godot.Tools.EditorSceneImporter._import_scene\n\n{-# NOINLINE bindEditorSceneImporter_import_animation_from_other_importer\n             #-}\n\nbindEditorSceneImporter_import_animation_from_other_importer ::\n                                                             MethodBind\nbindEditorSceneImporter_import_animation_from_other_importer\n  = unsafePerformIO $\n      withCString \"EditorSceneImporter\" $\n        \\ clsNamePtr ->\n          withCString \"import_animation_from_other_importer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nimport_animation_from_other_importer ::\n                                       (EditorSceneImporter :< cls, Object :< cls) =>\n                                       cls -> GodotString -> Int -> Int -> IO Animation\nimport_animation_from_other_importer cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorSceneImporter_import_animation_from_other_importer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSceneImporter\n           \"import_animation_from_other_importer\"\n           '[GodotString, Int, Int]\n           (IO Animation)\n         where\n        nodeMethod\n          = Godot.Tools.EditorSceneImporter.import_animation_from_other_importer\n\n{-# NOINLINE bindEditorSceneImporter_import_scene_from_other_importer\n             #-}\n\nbindEditorSceneImporter_import_scene_from_other_importer ::\n                                                         MethodBind\nbindEditorSceneImporter_import_scene_from_other_importer\n  = unsafePerformIO $\n      withCString \"EditorSceneImporter\" $\n        \\ clsNamePtr ->\n          withCString \"import_scene_from_other_importer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nimport_scene_from_other_importer ::\n                                   (EditorSceneImporter :< cls, Object :< cls) =>\n                                   cls -> GodotString -> Int -> Int -> IO Node\nimport_scene_from_other_importer cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorSceneImporter_import_scene_from_other_importer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSceneImporter\n           \"import_scene_from_other_importer\"\n           '[GodotString, Int, Int]\n           (IO Node)\n         where\n        nodeMethod\n          = Godot.Tools.EditorSceneImporter.import_scene_from_other_importer"
  },
  {
    "path": "src/Godot/Tools/EditorSceneImporterAssimp.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorSceneImporterAssimp () where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Tools.EditorSceneImporter()"
  },
  {
    "path": "src/Godot/Tools/EditorScenePostImport.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorScenePostImport\n       (Godot.Tools.EditorScenePostImport.get_source_file,\n        Godot.Tools.EditorScenePostImport.get_source_folder,\n        Godot.Tools.EditorScenePostImport.post_import)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindEditorScenePostImport_get_source_file #-}\n\n-- | Returns the source file path which got imported (e.g. @res://scene.dae@).\nbindEditorScenePostImport_get_source_file :: MethodBind\nbindEditorScenePostImport_get_source_file\n  = unsafePerformIO $\n      withCString \"EditorScenePostImport\" $\n        \\ clsNamePtr ->\n          withCString \"get_source_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the source file path which got imported (e.g. @res://scene.dae@).\nget_source_file ::\n                  (EditorScenePostImport :< cls, Object :< cls) =>\n                  cls -> IO GodotString\nget_source_file cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorScenePostImport_get_source_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorScenePostImport \"get_source_file\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorScenePostImport.get_source_file\n\n{-# NOINLINE bindEditorScenePostImport_get_source_folder #-}\n\n-- | Returns the resource folder the imported scene file is located in.\nbindEditorScenePostImport_get_source_folder :: MethodBind\nbindEditorScenePostImport_get_source_folder\n  = unsafePerformIO $\n      withCString \"EditorScenePostImport\" $\n        \\ clsNamePtr ->\n          withCString \"get_source_folder\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the resource folder the imported scene file is located in.\nget_source_folder ::\n                    (EditorScenePostImport :< cls, Object :< cls) =>\n                    cls -> IO GodotString\nget_source_folder cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorScenePostImport_get_source_folder\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorScenePostImport \"get_source_folder\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorScenePostImport.get_source_folder\n\n{-# NOINLINE bindEditorScenePostImport_post_import #-}\n\n-- | Called after the scene was imported. This method must return the modified version of the scene.\nbindEditorScenePostImport_post_import :: MethodBind\nbindEditorScenePostImport_post_import\n  = unsafePerformIO $\n      withCString \"EditorScenePostImport\" $\n        \\ clsNamePtr ->\n          withCString \"post_import\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Called after the scene was imported. This method must return the modified version of the scene.\npost_import ::\n              (EditorScenePostImport :< cls, Object :< cls) =>\n              cls -> Object -> IO Object\npost_import cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorScenePostImport_post_import\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorScenePostImport \"post_import\" '[Object]\n           (IO Object)\n         where\n        nodeMethod = Godot.Tools.EditorScenePostImport.post_import"
  },
  {
    "path": "src/Godot/Tools/EditorScript.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorScript\n       (Godot.Tools.EditorScript._run,\n        Godot.Tools.EditorScript.add_root_node,\n        Godot.Tools.EditorScript.get_editor_interface,\n        Godot.Tools.EditorScript.get_scene)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Reference()\n\n{-# NOINLINE bindEditorScript__run #-}\n\n-- | This method is executed by the Editor when __File > Run__ is used.\nbindEditorScript__run :: MethodBind\nbindEditorScript__run\n  = unsafePerformIO $\n      withCString \"EditorScript\" $\n        \\ clsNamePtr ->\n          withCString \"_run\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This method is executed by the Editor when __File > Run__ is used.\n_run :: (EditorScript :< cls, Object :< cls) => cls -> IO ()\n_run cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorScript__run (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorScript \"_run\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.EditorScript._run\n\n{-# NOINLINE bindEditorScript_add_root_node #-}\n\n-- | Adds @node@ as a child of the root node in the editor context.\n--   \t\t\t\t__Warning:__ The implementation of this method is currently disabled.\nbindEditorScript_add_root_node :: MethodBind\nbindEditorScript_add_root_node\n  = unsafePerformIO $\n      withCString \"EditorScript\" $\n        \\ clsNamePtr ->\n          withCString \"add_root_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds @node@ as a child of the root node in the editor context.\n--   \t\t\t\t__Warning:__ The implementation of this method is currently disabled.\nadd_root_node ::\n                (EditorScript :< cls, Object :< cls) => cls -> Node -> IO ()\nadd_root_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorScript_add_root_node (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorScript \"add_root_node\" '[Node] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorScript.add_root_node\n\n{-# NOINLINE bindEditorScript_get_editor_interface #-}\n\n-- | Returns the @EditorInterface@ singleton instance.\nbindEditorScript_get_editor_interface :: MethodBind\nbindEditorScript_get_editor_interface\n  = unsafePerformIO $\n      withCString \"EditorScript\" $\n        \\ clsNamePtr ->\n          withCString \"get_editor_interface\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @EditorInterface@ singleton instance.\nget_editor_interface ::\n                       (EditorScript :< cls, Object :< cls) => cls -> IO EditorInterface\nget_editor_interface cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorScript_get_editor_interface\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorScript \"get_editor_interface\" '[]\n           (IO EditorInterface)\n         where\n        nodeMethod = Godot.Tools.EditorScript.get_editor_interface\n\n{-# NOINLINE bindEditorScript_get_scene #-}\n\n-- | Returns the Editor's currently active scene.\nbindEditorScript_get_scene :: MethodBind\nbindEditorScript_get_scene\n  = unsafePerformIO $\n      withCString \"EditorScript\" $\n        \\ clsNamePtr ->\n          withCString \"get_scene\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the Editor's currently active scene.\nget_scene :: (EditorScript :< cls, Object :< cls) => cls -> IO Node\nget_scene cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorScript_get_scene (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorScript \"get_scene\" '[] (IO Node) where\n        nodeMethod = Godot.Tools.EditorScript.get_scene"
  },
  {
    "path": "src/Godot/Tools/EditorSelection.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorSelection\n       (Godot.Tools.EditorSelection.sig_selection_changed,\n        Godot.Tools.EditorSelection._emit_change,\n        Godot.Tools.EditorSelection._node_removed,\n        Godot.Tools.EditorSelection.add_node,\n        Godot.Tools.EditorSelection.clear,\n        Godot.Tools.EditorSelection.get_selected_nodes,\n        Godot.Tools.EditorSelection.get_transformable_selected_nodes,\n        Godot.Tools.EditorSelection.remove_node)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n-- | Emitted when the selection changes.\nsig_selection_changed ::\n                      Godot.Internal.Dispatch.Signal EditorSelection\nsig_selection_changed\n  = Godot.Internal.Dispatch.Signal \"selection_changed\"\n\ninstance NodeSignal EditorSelection \"selection_changed\" '[]\n\n{-# NOINLINE bindEditorSelection__emit_change #-}\n\nbindEditorSelection__emit_change :: MethodBind\nbindEditorSelection__emit_change\n  = unsafePerformIO $\n      withCString \"EditorSelection\" $\n        \\ clsNamePtr ->\n          withCString \"_emit_change\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_emit_change ::\n               (EditorSelection :< cls, Object :< cls) => cls -> IO ()\n_emit_change cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSelection__emit_change\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSelection \"_emit_change\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSelection._emit_change\n\n{-# NOINLINE bindEditorSelection__node_removed #-}\n\nbindEditorSelection__node_removed :: MethodBind\nbindEditorSelection__node_removed\n  = unsafePerformIO $\n      withCString \"EditorSelection\" $\n        \\ clsNamePtr ->\n          withCString \"_node_removed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_node_removed ::\n                (EditorSelection :< cls, Object :< cls) => cls -> Node -> IO ()\n_node_removed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSelection__node_removed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSelection \"_node_removed\" '[Node] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSelection._node_removed\n\n{-# NOINLINE bindEditorSelection_add_node #-}\n\n-- | Adds a node to the selection.\nbindEditorSelection_add_node :: MethodBind\nbindEditorSelection_add_node\n  = unsafePerformIO $\n      withCString \"EditorSelection\" $\n        \\ clsNamePtr ->\n          withCString \"add_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a node to the selection.\nadd_node ::\n           (EditorSelection :< cls, Object :< cls) => cls -> Node -> IO ()\nadd_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSelection_add_node (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSelection \"add_node\" '[Node] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSelection.add_node\n\n{-# NOINLINE bindEditorSelection_clear #-}\n\n-- | Clear the selection.\nbindEditorSelection_clear :: MethodBind\nbindEditorSelection_clear\n  = unsafePerformIO $\n      withCString \"EditorSelection\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Clear the selection.\nclear :: (EditorSelection :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSelection_clear (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSelection \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.EditorSelection.clear\n\n{-# NOINLINE bindEditorSelection_get_selected_nodes #-}\n\n-- | Gets the list of selected nodes.\nbindEditorSelection_get_selected_nodes :: MethodBind\nbindEditorSelection_get_selected_nodes\n  = unsafePerformIO $\n      withCString \"EditorSelection\" $\n        \\ clsNamePtr ->\n          withCString \"get_selected_nodes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the list of selected nodes.\nget_selected_nodes ::\n                     (EditorSelection :< cls, Object :< cls) => cls -> IO Array\nget_selected_nodes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSelection_get_selected_nodes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSelection \"get_selected_nodes\" '[]\n           (IO Array)\n         where\n        nodeMethod = Godot.Tools.EditorSelection.get_selected_nodes\n\n{-# NOINLINE bindEditorSelection_get_transformable_selected_nodes\n             #-}\n\n-- | Gets the list of selected nodes, optimized for transform operations (i.e. moving them, rotating, etc). This list avoids situations where a node is selected and also child/grandchild.\nbindEditorSelection_get_transformable_selected_nodes :: MethodBind\nbindEditorSelection_get_transformable_selected_nodes\n  = unsafePerformIO $\n      withCString \"EditorSelection\" $\n        \\ clsNamePtr ->\n          withCString \"get_transformable_selected_nodes\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the list of selected nodes, optimized for transform operations (i.e. moving them, rotating, etc). This list avoids situations where a node is selected and also child/grandchild.\nget_transformable_selected_nodes ::\n                                   (EditorSelection :< cls, Object :< cls) => cls -> IO Array\nget_transformable_selected_nodes cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorSelection_get_transformable_selected_nodes\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSelection\n           \"get_transformable_selected_nodes\"\n           '[]\n           (IO Array)\n         where\n        nodeMethod\n          = Godot.Tools.EditorSelection.get_transformable_selected_nodes\n\n{-# NOINLINE bindEditorSelection_remove_node #-}\n\n-- | Removes a node from the selection.\nbindEditorSelection_remove_node :: MethodBind\nbindEditorSelection_remove_node\n  = unsafePerformIO $\n      withCString \"EditorSelection\" $\n        \\ clsNamePtr ->\n          withCString \"remove_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes a node from the selection.\nremove_node ::\n              (EditorSelection :< cls, Object :< cls) => cls -> Node -> IO ()\nremove_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSelection_remove_node (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSelection \"remove_node\" '[Node] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSelection.remove_node"
  },
  {
    "path": "src/Godot/Tools/EditorSettings.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorSettings\n       (Godot.Tools.EditorSettings._NOTIFICATION_EDITOR_SETTINGS_CHANGED,\n        Godot.Tools.EditorSettings.sig_settings_changed,\n        Godot.Tools.EditorSettings.add_property_info,\n        Godot.Tools.EditorSettings.erase,\n        Godot.Tools.EditorSettings.get_favorites,\n        Godot.Tools.EditorSettings.get_project_metadata,\n        Godot.Tools.EditorSettings.get_project_settings_dir,\n        Godot.Tools.EditorSettings.get_recent_dirs,\n        Godot.Tools.EditorSettings.get_setting,\n        Godot.Tools.EditorSettings.get_settings_dir,\n        Godot.Tools.EditorSettings.has_setting,\n        Godot.Tools.EditorSettings.property_can_revert,\n        Godot.Tools.EditorSettings.property_get_revert,\n        Godot.Tools.EditorSettings.set_favorites,\n        Godot.Tools.EditorSettings.set_initial_value,\n        Godot.Tools.EditorSettings.set_project_metadata,\n        Godot.Tools.EditorSettings.set_recent_dirs,\n        Godot.Tools.EditorSettings.set_setting)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n_NOTIFICATION_EDITOR_SETTINGS_CHANGED :: Int\n_NOTIFICATION_EDITOR_SETTINGS_CHANGED = 10000\n\n-- | Emitted after any editor setting has changed.\nsig_settings_changed ::\n                     Godot.Internal.Dispatch.Signal EditorSettings\nsig_settings_changed\n  = Godot.Internal.Dispatch.Signal \"settings_changed\"\n\ninstance NodeSignal EditorSettings \"settings_changed\" '[]\n\n{-# NOINLINE bindEditorSettings_add_property_info #-}\n\n-- | Adds a custom property info to a property. The dictionary must contain:\n--   \t\t\t\t- @name@: @String@ (the name of the property)\n--   \t\t\t\t- @type@: @int@ (see @enum Variant.Type@)\n--   \t\t\t\t- optionally @hint@: @int@ (see @enum PropertyHint@) and @hint_string@: @String@\n--   \t\t\t\t__Example:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\teditor_settings.set(\"category/property_name\", 0)\n--   \n--   \t\t\t\tvar property_info = {\n--   \t\t\t\t    \"name\": \"category/property_name\",\n--   \t\t\t\t    \"type\": TYPE_INT,\n--   \t\t\t\t    \"hint\": PROPERTY_HINT_ENUM,\n--   \t\t\t\t    \"hint_string\": \"one,two,three\"\n--   \t\t\t\t}\n--   \n--   \t\t\t\teditor_settings.add_property_info(property_info)\n--   \t\t\t\t\n--   @\nbindEditorSettings_add_property_info :: MethodBind\nbindEditorSettings_add_property_info\n  = unsafePerformIO $\n      withCString \"EditorSettings\" $\n        \\ clsNamePtr ->\n          withCString \"add_property_info\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a custom property info to a property. The dictionary must contain:\n--   \t\t\t\t- @name@: @String@ (the name of the property)\n--   \t\t\t\t- @type@: @int@ (see @enum Variant.Type@)\n--   \t\t\t\t- optionally @hint@: @int@ (see @enum PropertyHint@) and @hint_string@: @String@\n--   \t\t\t\t__Example:__\n--   \t\t\t\t\n--   @\n--   \n--   \t\t\t\teditor_settings.set(\"category/property_name\", 0)\n--   \n--   \t\t\t\tvar property_info = {\n--   \t\t\t\t    \"name\": \"category/property_name\",\n--   \t\t\t\t    \"type\": TYPE_INT,\n--   \t\t\t\t    \"hint\": PROPERTY_HINT_ENUM,\n--   \t\t\t\t    \"hint_string\": \"one,two,three\"\n--   \t\t\t\t}\n--   \n--   \t\t\t\teditor_settings.add_property_info(property_info)\n--   \t\t\t\t\n--   @\nadd_property_info ::\n                    (EditorSettings :< cls, Object :< cls) =>\n                    cls -> Dictionary -> IO ()\nadd_property_info cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSettings_add_property_info\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSettings \"add_property_info\"\n           '[Dictionary]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSettings.add_property_info\n\n{-# NOINLINE bindEditorSettings_erase #-}\n\n-- | Erases the setting whose name is specified by @property@.\nbindEditorSettings_erase :: MethodBind\nbindEditorSettings_erase\n  = unsafePerformIO $\n      withCString \"EditorSettings\" $\n        \\ clsNamePtr ->\n          withCString \"erase\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Erases the setting whose name is specified by @property@.\nerase ::\n        (EditorSettings :< cls, Object :< cls) =>\n        cls -> GodotString -> IO ()\nerase cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSettings_erase (upcast cls) arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSettings \"erase\" '[GodotString] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSettings.erase\n\n{-# NOINLINE bindEditorSettings_get_favorites #-}\n\n-- | Returns the list of favorite files and directories for this project.\nbindEditorSettings_get_favorites :: MethodBind\nbindEditorSettings_get_favorites\n  = unsafePerformIO $\n      withCString \"EditorSettings\" $\n        \\ clsNamePtr ->\n          withCString \"get_favorites\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the list of favorite files and directories for this project.\nget_favorites ::\n                (EditorSettings :< cls, Object :< cls) => cls -> IO PoolStringArray\nget_favorites cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSettings_get_favorites\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSettings \"get_favorites\" '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Tools.EditorSettings.get_favorites\n\n{-# NOINLINE bindEditorSettings_get_project_metadata #-}\n\n-- | Returns project-specific metadata for the @section@ and @key@ specified. If the metadata doesn't exist, @default@ will be returned instead. See also @method set_project_metadata@.\nbindEditorSettings_get_project_metadata :: MethodBind\nbindEditorSettings_get_project_metadata\n  = unsafePerformIO $\n      withCString \"EditorSettings\" $\n        \\ clsNamePtr ->\n          withCString \"get_project_metadata\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns project-specific metadata for the @section@ and @key@ specified. If the metadata doesn't exist, @default@ will be returned instead. See also @method set_project_metadata@.\nget_project_metadata ::\n                       (EditorSettings :< cls, Object :< cls) =>\n                       cls ->\n                         GodotString -> GodotString -> Maybe GodotVariant -> IO GodotVariant\nget_project_metadata cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, maybe VariantNil toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSettings_get_project_metadata\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSettings \"get_project_metadata\"\n           '[GodotString, GodotString, Maybe GodotVariant]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Tools.EditorSettings.get_project_metadata\n\n{-# NOINLINE bindEditorSettings_get_project_settings_dir #-}\n\n-- | Returns the project-specific settings path. Projects all have a unique subdirectory inside the settings path where project-specific settings are saved.\nbindEditorSettings_get_project_settings_dir :: MethodBind\nbindEditorSettings_get_project_settings_dir\n  = unsafePerformIO $\n      withCString \"EditorSettings\" $\n        \\ clsNamePtr ->\n          withCString \"get_project_settings_dir\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the project-specific settings path. Projects all have a unique subdirectory inside the settings path where project-specific settings are saved.\nget_project_settings_dir ::\n                           (EditorSettings :< cls, Object :< cls) => cls -> IO GodotString\nget_project_settings_dir cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSettings_get_project_settings_dir\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSettings \"get_project_settings_dir\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorSettings.get_project_settings_dir\n\n{-# NOINLINE bindEditorSettings_get_recent_dirs #-}\n\n-- | Returns the list of recently visited folders in the file dialog for this project.\nbindEditorSettings_get_recent_dirs :: MethodBind\nbindEditorSettings_get_recent_dirs\n  = unsafePerformIO $\n      withCString \"EditorSettings\" $\n        \\ clsNamePtr ->\n          withCString \"get_recent_dirs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the list of recently visited folders in the file dialog for this project.\nget_recent_dirs ::\n                  (EditorSettings :< cls, Object :< cls) => cls -> IO PoolStringArray\nget_recent_dirs cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSettings_get_recent_dirs\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSettings \"get_recent_dirs\" '[]\n           (IO PoolStringArray)\n         where\n        nodeMethod = Godot.Tools.EditorSettings.get_recent_dirs\n\n{-# NOINLINE bindEditorSettings_get_setting #-}\n\n-- | Returns the value of the setting specified by @name@. This is equivalent to using @method Object.get@ on the EditorSettings instance.\nbindEditorSettings_get_setting :: MethodBind\nbindEditorSettings_get_setting\n  = unsafePerformIO $\n      withCString \"EditorSettings\" $\n        \\ clsNamePtr ->\n          withCString \"get_setting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the value of the setting specified by @name@. This is equivalent to using @method Object.get@ on the EditorSettings instance.\nget_setting ::\n              (EditorSettings :< cls, Object :< cls) =>\n              cls -> GodotString -> IO GodotVariant\nget_setting cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSettings_get_setting (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSettings \"get_setting\" '[GodotString]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Tools.EditorSettings.get_setting\n\n{-# NOINLINE bindEditorSettings_get_settings_dir #-}\n\n-- | Gets the global settings path for the engine. Inside this path, you can find some standard paths such as:\n--   \t\t\t\t@settings/tmp@ - Used for temporary storage of files\n--   \t\t\t\t@settings/templates@ - Where export templates are located\nbindEditorSettings_get_settings_dir :: MethodBind\nbindEditorSettings_get_settings_dir\n  = unsafePerformIO $\n      withCString \"EditorSettings\" $\n        \\ clsNamePtr ->\n          withCString \"get_settings_dir\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the global settings path for the engine. Inside this path, you can find some standard paths such as:\n--   \t\t\t\t@settings/tmp@ - Used for temporary storage of files\n--   \t\t\t\t@settings/templates@ - Where export templates are located\nget_settings_dir ::\n                   (EditorSettings :< cls, Object :< cls) => cls -> IO GodotString\nget_settings_dir cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSettings_get_settings_dir\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSettings \"get_settings_dir\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorSettings.get_settings_dir\n\n{-# NOINLINE bindEditorSettings_has_setting #-}\n\n-- | Returns @true@ if the setting specified by @name@ exists, @false@ otherwise.\nbindEditorSettings_has_setting :: MethodBind\nbindEditorSettings_has_setting\n  = unsafePerformIO $\n      withCString \"EditorSettings\" $\n        \\ clsNamePtr ->\n          withCString \"has_setting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the setting specified by @name@ exists, @false@ otherwise.\nhas_setting ::\n              (EditorSettings :< cls, Object :< cls) =>\n              cls -> GodotString -> IO Bool\nhas_setting cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSettings_has_setting (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSettings \"has_setting\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorSettings.has_setting\n\n{-# NOINLINE bindEditorSettings_property_can_revert #-}\n\n-- | Returns @true@ if the setting specified by @name@ can have its value reverted to the default value, @false@ otherwise. When this method returns @true@, a Revert button will display next to the setting in the Editor Settings.\nbindEditorSettings_property_can_revert :: MethodBind\nbindEditorSettings_property_can_revert\n  = unsafePerformIO $\n      withCString \"EditorSettings\" $\n        \\ clsNamePtr ->\n          withCString \"property_can_revert\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the setting specified by @name@ can have its value reverted to the default value, @false@ otherwise. When this method returns @true@, a Revert button will display next to the setting in the Editor Settings.\nproperty_can_revert ::\n                      (EditorSettings :< cls, Object :< cls) =>\n                      cls -> GodotString -> IO Bool\nproperty_can_revert cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSettings_property_can_revert\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSettings \"property_can_revert\"\n           '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorSettings.property_can_revert\n\n{-# NOINLINE bindEditorSettings_property_get_revert #-}\n\n-- | Returns the default value of the setting specified by @name@. This is the value that would be applied when clicking the Revert button in the Editor Settings.\nbindEditorSettings_property_get_revert :: MethodBind\nbindEditorSettings_property_get_revert\n  = unsafePerformIO $\n      withCString \"EditorSettings\" $\n        \\ clsNamePtr ->\n          withCString \"property_get_revert\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the default value of the setting specified by @name@. This is the value that would be applied when clicking the Revert button in the Editor Settings.\nproperty_get_revert ::\n                      (EditorSettings :< cls, Object :< cls) =>\n                      cls -> GodotString -> IO GodotVariant\nproperty_get_revert cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSettings_property_get_revert\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSettings \"property_get_revert\"\n           '[GodotString]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Tools.EditorSettings.property_get_revert\n\n{-# NOINLINE bindEditorSettings_set_favorites #-}\n\n-- | Sets the list of favorite files and directories for this project.\nbindEditorSettings_set_favorites :: MethodBind\nbindEditorSettings_set_favorites\n  = unsafePerformIO $\n      withCString \"EditorSettings\" $\n        \\ clsNamePtr ->\n          withCString \"set_favorites\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the list of favorite files and directories for this project.\nset_favorites ::\n                (EditorSettings :< cls, Object :< cls) =>\n                cls -> PoolStringArray -> IO ()\nset_favorites cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSettings_set_favorites\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSettings \"set_favorites\"\n           '[PoolStringArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSettings.set_favorites\n\n{-# NOINLINE bindEditorSettings_set_initial_value #-}\n\n-- | Sets the initial value of the setting specified by @name@ to @value@. This is used to provide a value for the Revert button in the Editor Settings. If @update_current@ is true, the current value of the setting will be set to @value@ as well.\nbindEditorSettings_set_initial_value :: MethodBind\nbindEditorSettings_set_initial_value\n  = unsafePerformIO $\n      withCString \"EditorSettings\" $\n        \\ clsNamePtr ->\n          withCString \"set_initial_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the initial value of the setting specified by @name@ to @value@. This is used to provide a value for the Revert button in the Editor Settings. If @update_current@ is true, the current value of the setting will be set to @value@ as well.\nset_initial_value ::\n                    (EditorSettings :< cls, Object :< cls) =>\n                    cls -> GodotString -> GodotVariant -> Bool -> IO ()\nset_initial_value cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSettings_set_initial_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSettings \"set_initial_value\"\n           '[GodotString, GodotVariant, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSettings.set_initial_value\n\n{-# NOINLINE bindEditorSettings_set_project_metadata #-}\n\n-- | Sets project-specific metadata with the @section@, @key@ and @data@ specified. This metadata is stored outside the project folder and therefore won't be checked into version control. See also @method get_project_metadata@.\nbindEditorSettings_set_project_metadata :: MethodBind\nbindEditorSettings_set_project_metadata\n  = unsafePerformIO $\n      withCString \"EditorSettings\" $\n        \\ clsNamePtr ->\n          withCString \"set_project_metadata\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets project-specific metadata with the @section@, @key@ and @data@ specified. This metadata is stored outside the project folder and therefore won't be checked into version control. See also @method get_project_metadata@.\nset_project_metadata ::\n                       (EditorSettings :< cls, Object :< cls) =>\n                       cls -> GodotString -> GodotString -> GodotVariant -> IO ()\nset_project_metadata cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSettings_set_project_metadata\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSettings \"set_project_metadata\"\n           '[GodotString, GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSettings.set_project_metadata\n\n{-# NOINLINE bindEditorSettings_set_recent_dirs #-}\n\n-- | Sets the list of recently visited folders in the file dialog for this project.\nbindEditorSettings_set_recent_dirs :: MethodBind\nbindEditorSettings_set_recent_dirs\n  = unsafePerformIO $\n      withCString \"EditorSettings\" $\n        \\ clsNamePtr ->\n          withCString \"set_recent_dirs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the list of recently visited folders in the file dialog for this project.\nset_recent_dirs ::\n                  (EditorSettings :< cls, Object :< cls) =>\n                  cls -> PoolStringArray -> IO ()\nset_recent_dirs cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSettings_set_recent_dirs\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSettings \"set_recent_dirs\"\n           '[PoolStringArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSettings.set_recent_dirs\n\n{-# NOINLINE bindEditorSettings_set_setting #-}\n\n-- | Sets the @value@ of the setting specified by @name@. This is equivalent to using @method Object.set@ on the EditorSettings instance.\nbindEditorSettings_set_setting :: MethodBind\nbindEditorSettings_set_setting\n  = unsafePerformIO $\n      withCString \"EditorSettings\" $\n        \\ clsNamePtr ->\n          withCString \"set_setting\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the @value@ of the setting specified by @name@. This is equivalent to using @method Object.set@ on the EditorSettings instance.\nset_setting ::\n              (EditorSettings :< cls, Object :< cls) =>\n              cls -> GodotString -> GodotVariant -> IO ()\nset_setting cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSettings_set_setting (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSettings \"set_setting\"\n           '[GodotString, GodotVariant]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSettings.set_setting"
  },
  {
    "path": "src/Godot/Tools/EditorSpatialGizmo.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorSpatialGizmo\n       (Godot.Tools.EditorSpatialGizmo.add_collision_segments,\n        Godot.Tools.EditorSpatialGizmo.add_collision_triangles,\n        Godot.Tools.EditorSpatialGizmo.add_handles,\n        Godot.Tools.EditorSpatialGizmo.add_lines,\n        Godot.Tools.EditorSpatialGizmo.add_mesh,\n        Godot.Tools.EditorSpatialGizmo.add_unscaled_billboard,\n        Godot.Tools.EditorSpatialGizmo.clear,\n        Godot.Tools.EditorSpatialGizmo.commit_handle,\n        Godot.Tools.EditorSpatialGizmo.get_handle_name,\n        Godot.Tools.EditorSpatialGizmo.get_handle_value,\n        Godot.Tools.EditorSpatialGizmo.get_plugin,\n        Godot.Tools.EditorSpatialGizmo.get_spatial_node,\n        Godot.Tools.EditorSpatialGizmo.is_handle_highlighted,\n        Godot.Tools.EditorSpatialGizmo.redraw,\n        Godot.Tools.EditorSpatialGizmo.set_handle,\n        Godot.Tools.EditorSpatialGizmo.set_hidden,\n        Godot.Tools.EditorSpatialGizmo.set_spatial_node)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.SpatialGizmo()\n\n{-# NOINLINE bindEditorSpatialGizmo_add_collision_segments #-}\n\n-- | Adds the specified @segments@ to the gizmo's collision shape for picking. Call this function during @method redraw@.\nbindEditorSpatialGizmo_add_collision_segments :: MethodBind\nbindEditorSpatialGizmo_add_collision_segments\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmo\" $\n        \\ clsNamePtr ->\n          withCString \"add_collision_segments\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds the specified @segments@ to the gizmo's collision shape for picking. Call this function during @method redraw@.\nadd_collision_segments ::\n                         (EditorSpatialGizmo :< cls, Object :< cls) =>\n                         cls -> PoolVector3Array -> IO ()\nadd_collision_segments cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorSpatialGizmo_add_collision_segments\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmo \"add_collision_segments\"\n           '[PoolVector3Array]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmo.add_collision_segments\n\n{-# NOINLINE bindEditorSpatialGizmo_add_collision_triangles #-}\n\n-- | Adds collision triangles to the gizmo for picking. A @TriangleMesh@ can be generated from a regular @Mesh@ too. Call this function during @method redraw@.\nbindEditorSpatialGizmo_add_collision_triangles :: MethodBind\nbindEditorSpatialGizmo_add_collision_triangles\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmo\" $\n        \\ clsNamePtr ->\n          withCString \"add_collision_triangles\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds collision triangles to the gizmo for picking. A @TriangleMesh@ can be generated from a regular @Mesh@ too. Call this function during @method redraw@.\nadd_collision_triangles ::\n                          (EditorSpatialGizmo :< cls, Object :< cls) =>\n                          cls -> TriangleMesh -> IO ()\nadd_collision_triangles cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorSpatialGizmo_add_collision_triangles\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmo \"add_collision_triangles\"\n           '[TriangleMesh]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmo.add_collision_triangles\n\n{-# NOINLINE bindEditorSpatialGizmo_add_handles #-}\n\n-- | Adds a list of handles (points) which can be used to deform the object being edited.\n--   \t\t\t\tThere are virtual functions which will be called upon editing of these handles. Call this function during @method redraw@.\nbindEditorSpatialGizmo_add_handles :: MethodBind\nbindEditorSpatialGizmo_add_handles\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmo\" $\n        \\ clsNamePtr ->\n          withCString \"add_handles\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a list of handles (points) which can be used to deform the object being edited.\n--   \t\t\t\tThere are virtual functions which will be called upon editing of these handles. Call this function during @method redraw@.\nadd_handles ::\n              (EditorSpatialGizmo :< cls, Object :< cls) =>\n              cls ->\n                PoolVector3Array -> Material -> Maybe Bool -> Maybe Bool -> IO ()\nadd_handles cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool False) toVariant arg3,\n       maybe (VariantBool False) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmo_add_handles\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmo \"add_handles\"\n           '[PoolVector3Array, Material, Maybe Bool, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmo.add_handles\n\n{-# NOINLINE bindEditorSpatialGizmo_add_lines #-}\n\n-- | Adds lines to the gizmo (as sets of 2 points), with a given material. The lines are used for visualizing the gizmo. Call this function during @method redraw@.\nbindEditorSpatialGizmo_add_lines :: MethodBind\nbindEditorSpatialGizmo_add_lines\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmo\" $\n        \\ clsNamePtr ->\n          withCString \"add_lines\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds lines to the gizmo (as sets of 2 points), with a given material. The lines are used for visualizing the gizmo. Call this function during @method redraw@.\nadd_lines ::\n            (EditorSpatialGizmo :< cls, Object :< cls) =>\n            cls ->\n              PoolVector3Array -> Material -> Maybe Bool -> Maybe Color -> IO ()\nadd_lines cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool False) toVariant arg3,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmo_add_lines\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmo \"add_lines\"\n           '[PoolVector3Array, Material, Maybe Bool, Maybe Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmo.add_lines\n\n{-# NOINLINE bindEditorSpatialGizmo_add_mesh #-}\n\n-- | Adds a mesh to the gizmo with the specified @billboard@ state, @skeleton@ and @material@. If @billboard@ is @true@, the mesh will rotate to always face the camera. Call this function during @method redraw@.\nbindEditorSpatialGizmo_add_mesh :: MethodBind\nbindEditorSpatialGizmo_add_mesh\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmo\" $\n        \\ clsNamePtr ->\n          withCString \"add_mesh\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a mesh to the gizmo with the specified @billboard@ state, @skeleton@ and @material@. If @billboard@ is @true@, the mesh will rotate to always face the camera. Call this function during @method redraw@.\nadd_mesh ::\n           (EditorSpatialGizmo :< cls, Object :< cls) =>\n           cls ->\n             ArrayMesh ->\n               Maybe Bool -> Maybe SkinReference -> Maybe Material -> IO ()\nadd_mesh cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2,\n       maybe VariantNil toVariant arg3, maybe VariantNil toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmo_add_mesh (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmo \"add_mesh\"\n           '[ArrayMesh, Maybe Bool, Maybe SkinReference, Maybe Material]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmo.add_mesh\n\n{-# NOINLINE bindEditorSpatialGizmo_add_unscaled_billboard #-}\n\n-- | Adds an unscaled billboard for visualization. Call this function during @method redraw@.\nbindEditorSpatialGizmo_add_unscaled_billboard :: MethodBind\nbindEditorSpatialGizmo_add_unscaled_billboard\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmo\" $\n        \\ clsNamePtr ->\n          withCString \"add_unscaled_billboard\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds an unscaled billboard for visualization. Call this function during @method redraw@.\nadd_unscaled_billboard ::\n                         (EditorSpatialGizmo :< cls, Object :< cls) =>\n                         cls -> Material -> Maybe Float -> Maybe Color -> IO ()\nadd_unscaled_billboard cls arg1 arg2 arg3\n  = withVariantArray\n      [toVariant arg1, maybe (VariantReal (1)) toVariant arg2,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorSpatialGizmo_add_unscaled_billboard\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmo \"add_unscaled_billboard\"\n           '[Material, Maybe Float, Maybe Color]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmo.add_unscaled_billboard\n\n{-# NOINLINE bindEditorSpatialGizmo_clear #-}\n\n-- | Removes everything in the gizmo including meshes, collisions and handles.\nbindEditorSpatialGizmo_clear :: MethodBind\nbindEditorSpatialGizmo_clear\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmo\" $\n        \\ clsNamePtr ->\n          withCString \"clear\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Removes everything in the gizmo including meshes, collisions and handles.\nclear :: (EditorSpatialGizmo :< cls, Object :< cls) => cls -> IO ()\nclear cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmo_clear (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmo \"clear\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.EditorSpatialGizmo.clear\n\n{-# NOINLINE bindEditorSpatialGizmo_commit_handle #-}\n\n-- | Commit a handle being edited (handles must have been previously added by @method add_handles@).\n--   \t\t\t\tIf the @cancel@ parameter is @true@, an option to restore the edited value to the original is provided.\nbindEditorSpatialGizmo_commit_handle :: MethodBind\nbindEditorSpatialGizmo_commit_handle\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmo\" $\n        \\ clsNamePtr ->\n          withCString \"commit_handle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Commit a handle being edited (handles must have been previously added by @method add_handles@).\n--   \t\t\t\tIf the @cancel@ parameter is @true@, an option to restore the edited value to the original is provided.\ncommit_handle ::\n                (EditorSpatialGizmo :< cls, Object :< cls) =>\n                cls -> Int -> GodotVariant -> Bool -> IO ()\ncommit_handle cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmo_commit_handle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmo \"commit_handle\"\n           '[Int, GodotVariant, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmo.commit_handle\n\n{-# NOINLINE bindEditorSpatialGizmo_get_handle_name #-}\n\n-- | Gets the name of an edited handle (handles must have been previously added by @method add_handles@).\n--   \t\t\t\tHandles can be named for reference to the user when editing.\nbindEditorSpatialGizmo_get_handle_name :: MethodBind\nbindEditorSpatialGizmo_get_handle_name\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmo\" $\n        \\ clsNamePtr ->\n          withCString \"get_handle_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets the name of an edited handle (handles must have been previously added by @method add_handles@).\n--   \t\t\t\tHandles can be named for reference to the user when editing.\nget_handle_name ::\n                  (EditorSpatialGizmo :< cls, Object :< cls) =>\n                  cls -> Int -> IO GodotString\nget_handle_name cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmo_get_handle_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmo \"get_handle_name\" '[Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmo.get_handle_name\n\n{-# NOINLINE bindEditorSpatialGizmo_get_handle_value #-}\n\n-- | Gets actual value of a handle. This value can be anything and used for eventually undoing the motion when calling @method commit_handle@.\nbindEditorSpatialGizmo_get_handle_value :: MethodBind\nbindEditorSpatialGizmo_get_handle_value\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmo\" $\n        \\ clsNamePtr ->\n          withCString \"get_handle_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets actual value of a handle. This value can be anything and used for eventually undoing the motion when calling @method commit_handle@.\nget_handle_value ::\n                   (EditorSpatialGizmo :< cls, Object :< cls) =>\n                   cls -> Int -> IO GodotVariant\nget_handle_value cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmo_get_handle_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmo \"get_handle_value\" '[Int]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmo.get_handle_value\n\n{-# NOINLINE bindEditorSpatialGizmo_get_plugin #-}\n\n-- | Returns the @EditorSpatialGizmoPlugin@ that owns this gizmo. It's useful to retrieve materials using @method EditorSpatialGizmoPlugin.get_material@.\nbindEditorSpatialGizmo_get_plugin :: MethodBind\nbindEditorSpatialGizmo_get_plugin\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmo\" $\n        \\ clsNamePtr ->\n          withCString \"get_plugin\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the @EditorSpatialGizmoPlugin@ that owns this gizmo. It's useful to retrieve materials using @method EditorSpatialGizmoPlugin.get_material@.\nget_plugin ::\n             (EditorSpatialGizmo :< cls, Object :< cls) =>\n             cls -> IO EditorSpatialGizmoPlugin\nget_plugin cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmo_get_plugin\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmo \"get_plugin\" '[]\n           (IO EditorSpatialGizmoPlugin)\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmo.get_plugin\n\n{-# NOINLINE bindEditorSpatialGizmo_get_spatial_node #-}\n\n-- | Returns the Spatial node associated with this gizmo.\nbindEditorSpatialGizmo_get_spatial_node :: MethodBind\nbindEditorSpatialGizmo_get_spatial_node\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmo\" $\n        \\ clsNamePtr ->\n          withCString \"get_spatial_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the Spatial node associated with this gizmo.\nget_spatial_node ::\n                   (EditorSpatialGizmo :< cls, Object :< cls) => cls -> IO Spatial\nget_spatial_node cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmo_get_spatial_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmo \"get_spatial_node\" '[]\n           (IO Spatial)\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmo.get_spatial_node\n\n{-# NOINLINE bindEditorSpatialGizmo_is_handle_highlighted #-}\n\n-- | Returns @true@ if the handle at index @index@ is highlighted by being hovered with the mouse.\nbindEditorSpatialGizmo_is_handle_highlighted :: MethodBind\nbindEditorSpatialGizmo_is_handle_highlighted\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmo\" $\n        \\ clsNamePtr ->\n          withCString \"is_handle_highlighted\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the handle at index @index@ is highlighted by being hovered with the mouse.\nis_handle_highlighted ::\n                        (EditorSpatialGizmo :< cls, Object :< cls) => cls -> Int -> IO Bool\nis_handle_highlighted cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmo_is_handle_highlighted\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmo \"is_handle_highlighted\"\n           '[Int]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmo.is_handle_highlighted\n\n{-# NOINLINE bindEditorSpatialGizmo_redraw #-}\n\n-- | This function is called when the @Spatial@ this gizmo refers to changes (the @method Spatial.update_gizmo@ is called).\nbindEditorSpatialGizmo_redraw :: MethodBind\nbindEditorSpatialGizmo_redraw\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmo\" $\n        \\ clsNamePtr ->\n          withCString \"redraw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This function is called when the @Spatial@ this gizmo refers to changes (the @method Spatial.update_gizmo@ is called).\nredraw ::\n         (EditorSpatialGizmo :< cls, Object :< cls) => cls -> IO ()\nredraw cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmo_redraw (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmo \"redraw\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.EditorSpatialGizmo.redraw\n\n{-# NOINLINE bindEditorSpatialGizmo_set_handle #-}\n\n-- | This function is used when the user drags a gizmo handle (previously added with @method add_handles@) in screen coordinates.\n--   \t\t\t\tThe @Camera@ is also provided so screen coordinates can be converted to raycasts.\nbindEditorSpatialGizmo_set_handle :: MethodBind\nbindEditorSpatialGizmo_set_handle\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmo\" $\n        \\ clsNamePtr ->\n          withCString \"set_handle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | This function is used when the user drags a gizmo handle (previously added with @method add_handles@) in screen coordinates.\n--   \t\t\t\tThe @Camera@ is also provided so screen coordinates can be converted to raycasts.\nset_handle ::\n             (EditorSpatialGizmo :< cls, Object :< cls) =>\n             cls -> Int -> Camera -> Vector2 -> IO ()\nset_handle cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmo_set_handle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmo \"set_handle\"\n           '[Int, Camera, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmo.set_handle\n\n{-# NOINLINE bindEditorSpatialGizmo_set_hidden #-}\n\n-- | Sets the gizmo's hidden state. If @true@, the gizmo will be hidden. If @false@, it will be shown.\nbindEditorSpatialGizmo_set_hidden :: MethodBind\nbindEditorSpatialGizmo_set_hidden\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmo\" $\n        \\ clsNamePtr ->\n          withCString \"set_hidden\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the gizmo's hidden state. If @true@, the gizmo will be hidden. If @false@, it will be shown.\nset_hidden ::\n             (EditorSpatialGizmo :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_hidden cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmo_set_hidden\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmo \"set_hidden\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmo.set_hidden\n\n{-# NOINLINE bindEditorSpatialGizmo_set_spatial_node #-}\n\n-- | Sets the reference @Spatial@ node for the gizmo. @node@ must inherit from @Spatial@.\nbindEditorSpatialGizmo_set_spatial_node :: MethodBind\nbindEditorSpatialGizmo_set_spatial_node\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmo\" $\n        \\ clsNamePtr ->\n          withCString \"set_spatial_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Sets the reference @Spatial@ node for the gizmo. @node@ must inherit from @Spatial@.\nset_spatial_node ::\n                   (EditorSpatialGizmo :< cls, Object :< cls) => cls -> Node -> IO ()\nset_spatial_node cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmo_set_spatial_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmo \"set_spatial_node\" '[Node]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmo.set_spatial_node"
  },
  {
    "path": "src/Godot/Tools/EditorSpatialGizmoPlugin.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorSpatialGizmoPlugin\n       (Godot.Tools.EditorSpatialGizmoPlugin.add_material,\n        Godot.Tools.EditorSpatialGizmoPlugin.can_be_hidden,\n        Godot.Tools.EditorSpatialGizmoPlugin.commit_handle,\n        Godot.Tools.EditorSpatialGizmoPlugin.create_gizmo,\n        Godot.Tools.EditorSpatialGizmoPlugin.create_handle_material,\n        Godot.Tools.EditorSpatialGizmoPlugin.create_icon_material,\n        Godot.Tools.EditorSpatialGizmoPlugin.create_material,\n        Godot.Tools.EditorSpatialGizmoPlugin.get_handle_name,\n        Godot.Tools.EditorSpatialGizmoPlugin.get_handle_value,\n        Godot.Tools.EditorSpatialGizmoPlugin.get_material,\n        Godot.Tools.EditorSpatialGizmoPlugin.get_name,\n        Godot.Tools.EditorSpatialGizmoPlugin.get_priority,\n        Godot.Tools.EditorSpatialGizmoPlugin.has_gizmo,\n        Godot.Tools.EditorSpatialGizmoPlugin.is_handle_highlighted,\n        Godot.Tools.EditorSpatialGizmoPlugin.is_selectable_when_hidden,\n        Godot.Tools.EditorSpatialGizmoPlugin.redraw,\n        Godot.Tools.EditorSpatialGizmoPlugin.set_handle)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Resource()\n\n{-# NOINLINE bindEditorSpatialGizmoPlugin_add_material #-}\n\n-- | Adds a new material to the internal material list for the plugin. It can then be accessed with @method get_material@. Should not be overridden.\nbindEditorSpatialGizmoPlugin_add_material :: MethodBind\nbindEditorSpatialGizmoPlugin_add_material\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmoPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"add_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Adds a new material to the internal material list for the plugin. It can then be accessed with @method get_material@. Should not be overridden.\nadd_material ::\n               (EditorSpatialGizmoPlugin :< cls, Object :< cls) =>\n               cls -> GodotString -> SpatialMaterial -> IO ()\nadd_material cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmoPlugin_add_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmoPlugin \"add_material\"\n           '[GodotString, SpatialMaterial]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmoPlugin.add_material\n\n{-# NOINLINE bindEditorSpatialGizmoPlugin_can_be_hidden #-}\n\n-- | Override this method to define whether the gizmo can be hidden or not. Returns @true@ if not overridden.\nbindEditorSpatialGizmoPlugin_can_be_hidden :: MethodBind\nbindEditorSpatialGizmoPlugin_can_be_hidden\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmoPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"can_be_hidden\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to define whether the gizmo can be hidden or not. Returns @true@ if not overridden.\ncan_be_hidden ::\n                (EditorSpatialGizmoPlugin :< cls, Object :< cls) => cls -> IO Bool\ncan_be_hidden cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmoPlugin_can_be_hidden\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmoPlugin \"can_be_hidden\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmoPlugin.can_be_hidden\n\n{-# NOINLINE bindEditorSpatialGizmoPlugin_commit_handle #-}\n\n-- | Override this method to commit gizmo handles. Called for this plugin's active gizmos.\nbindEditorSpatialGizmoPlugin_commit_handle :: MethodBind\nbindEditorSpatialGizmoPlugin_commit_handle\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmoPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"commit_handle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to commit gizmo handles. Called for this plugin's active gizmos.\ncommit_handle ::\n                (EditorSpatialGizmoPlugin :< cls, Object :< cls) =>\n                cls -> EditorSpatialGizmo -> Int -> GodotVariant -> Bool -> IO ()\ncommit_handle cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmoPlugin_commit_handle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmoPlugin \"commit_handle\"\n           '[EditorSpatialGizmo, Int, GodotVariant, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmoPlugin.commit_handle\n\n{-# NOINLINE bindEditorSpatialGizmoPlugin_create_gizmo #-}\n\n-- | Override this method to return a custom @EditorSpatialGizmo@ for the spatial nodes of your choice, return @null@ for the rest of nodes. See also @method has_gizmo@.\nbindEditorSpatialGizmoPlugin_create_gizmo :: MethodBind\nbindEditorSpatialGizmoPlugin_create_gizmo\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmoPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"create_gizmo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to return a custom @EditorSpatialGizmo@ for the spatial nodes of your choice, return @null@ for the rest of nodes. See also @method has_gizmo@.\ncreate_gizmo ::\n               (EditorSpatialGizmoPlugin :< cls, Object :< cls) =>\n               cls -> Spatial -> IO EditorSpatialGizmo\ncreate_gizmo cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmoPlugin_create_gizmo\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmoPlugin \"create_gizmo\"\n           '[Spatial]\n           (IO EditorSpatialGizmo)\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmoPlugin.create_gizmo\n\n{-# NOINLINE bindEditorSpatialGizmoPlugin_create_handle_material\n             #-}\n\n-- | Creates a handle material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with @method get_material@ and used in @method EditorSpatialGizmo.add_handles@. Should not be overridden.\nbindEditorSpatialGizmoPlugin_create_handle_material :: MethodBind\nbindEditorSpatialGizmoPlugin_create_handle_material\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmoPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"create_handle_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a handle material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with @method get_material@ and used in @method EditorSpatialGizmo.add_handles@. Should not be overridden.\ncreate_handle_material ::\n                         (EditorSpatialGizmoPlugin :< cls, Object :< cls) =>\n                         cls -> GodotString -> Maybe Bool -> IO ()\ncreate_handle_material cls arg1 arg2\n  = withVariantArray\n      [toVariant arg1, maybe (VariantBool False) toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorSpatialGizmoPlugin_create_handle_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmoPlugin\n           \"create_handle_material\"\n           '[GodotString, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorSpatialGizmoPlugin.create_handle_material\n\n{-# NOINLINE bindEditorSpatialGizmoPlugin_create_icon_material #-}\n\n-- | Creates an icon material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with @method get_material@ and used in @method EditorSpatialGizmo.add_unscaled_billboard@. Should not be overridden.\nbindEditorSpatialGizmoPlugin_create_icon_material :: MethodBind\nbindEditorSpatialGizmoPlugin_create_icon_material\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmoPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"create_icon_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates an icon material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with @method get_material@ and used in @method EditorSpatialGizmo.add_unscaled_billboard@. Should not be overridden.\ncreate_icon_material ::\n                       (EditorSpatialGizmoPlugin :< cls, Object :< cls) =>\n                       cls -> GodotString -> Texture -> Maybe Bool -> Maybe Color -> IO ()\ncreate_icon_material cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool False) toVariant arg3,\n       defaultedVariant VariantColor (withOpacity (sRGB 1 1 1) 1) arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorSpatialGizmoPlugin_create_icon_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmoPlugin \"create_icon_material\"\n           '[GodotString, Texture, Maybe Bool, Maybe Color]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.EditorSpatialGizmoPlugin.create_icon_material\n\n{-# NOINLINE bindEditorSpatialGizmoPlugin_create_material #-}\n\n-- | Creates an unshaded material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with @method get_material@ and used in @method EditorSpatialGizmo.add_mesh@ and @method EditorSpatialGizmo.add_lines@. Should not be overridden.\nbindEditorSpatialGizmoPlugin_create_material :: MethodBind\nbindEditorSpatialGizmoPlugin_create_material\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmoPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"create_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates an unshaded material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with @method get_material@ and used in @method EditorSpatialGizmo.add_mesh@ and @method EditorSpatialGizmo.add_lines@. Should not be overridden.\ncreate_material ::\n                  (EditorSpatialGizmoPlugin :< cls, Object :< cls) =>\n                  cls ->\n                    GodotString ->\n                      Color -> Maybe Bool -> Maybe Bool -> Maybe Bool -> IO ()\ncreate_material cls arg1 arg2 arg3 arg4 arg5\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool False) toVariant arg3,\n       maybe (VariantBool False) toVariant arg4,\n       maybe (VariantBool False) toVariant arg5]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmoPlugin_create_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmoPlugin \"create_material\"\n           '[GodotString, Color, Maybe Bool, Maybe Bool, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmoPlugin.create_material\n\n{-# NOINLINE bindEditorSpatialGizmoPlugin_get_handle_name #-}\n\n-- | Override this method to provide gizmo's handle names. Called for this plugin's active gizmos.\nbindEditorSpatialGizmoPlugin_get_handle_name :: MethodBind\nbindEditorSpatialGizmoPlugin_get_handle_name\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmoPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_handle_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to provide gizmo's handle names. Called for this plugin's active gizmos.\nget_handle_name ::\n                  (EditorSpatialGizmoPlugin :< cls, Object :< cls) =>\n                  cls -> EditorSpatialGizmo -> Int -> IO GodotString\nget_handle_name cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmoPlugin_get_handle_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmoPlugin \"get_handle_name\"\n           '[EditorSpatialGizmo, Int]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmoPlugin.get_handle_name\n\n{-# NOINLINE bindEditorSpatialGizmoPlugin_get_handle_value #-}\n\n-- | Gets actual value of a handle from gizmo. Called for this plugin's active gizmos.\nbindEditorSpatialGizmoPlugin_get_handle_value :: MethodBind\nbindEditorSpatialGizmoPlugin_get_handle_value\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmoPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_handle_value\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets actual value of a handle from gizmo. Called for this plugin's active gizmos.\nget_handle_value ::\n                   (EditorSpatialGizmoPlugin :< cls, Object :< cls) =>\n                   cls -> EditorSpatialGizmo -> Int -> IO GodotVariant\nget_handle_value cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorSpatialGizmoPlugin_get_handle_value\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmoPlugin \"get_handle_value\"\n           '[EditorSpatialGizmo, Int]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmoPlugin.get_handle_value\n\n{-# NOINLINE bindEditorSpatialGizmoPlugin_get_material #-}\n\n-- | Gets material from the internal list of materials. If an @EditorSpatialGizmo@ is provided, it will try to get the corresponding variant (selected and/or editable).\nbindEditorSpatialGizmoPlugin_get_material :: MethodBind\nbindEditorSpatialGizmoPlugin_get_material\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmoPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_material\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets material from the internal list of materials. If an @EditorSpatialGizmo@ is provided, it will try to get the corresponding variant (selected and/or editable).\nget_material ::\n               (EditorSpatialGizmoPlugin :< cls, Object :< cls) =>\n               cls -> GodotString -> EditorSpatialGizmo -> IO SpatialMaterial\nget_material cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmoPlugin_get_material\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmoPlugin \"get_material\"\n           '[GodotString, EditorSpatialGizmo]\n           (IO SpatialMaterial)\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmoPlugin.get_material\n\n{-# NOINLINE bindEditorSpatialGizmoPlugin_get_name #-}\n\n-- | Override this method to provide the name that will appear in the gizmo visibility menu.\nbindEditorSpatialGizmoPlugin_get_name :: MethodBind\nbindEditorSpatialGizmoPlugin_get_name\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmoPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to provide the name that will appear in the gizmo visibility menu.\nget_name ::\n           (EditorSpatialGizmoPlugin :< cls, Object :< cls) =>\n           cls -> IO GodotString\nget_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmoPlugin_get_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmoPlugin \"get_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmoPlugin.get_name\n\n{-# NOINLINE bindEditorSpatialGizmoPlugin_get_priority #-}\n\n-- | Override this method to set the gizmo's priority. Higher values correspond to higher priority. If a gizmo with higher priority conflicts with another gizmo, only the gizmo with higher priority will be used.\n--   \t\t\t\tAll built-in editor gizmos return a priority of @-1@. If not overridden, this method will return @0@, which means custom gizmos will automatically override built-in gizmos.\nbindEditorSpatialGizmoPlugin_get_priority :: MethodBind\nbindEditorSpatialGizmoPlugin_get_priority\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmoPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"get_priority\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to set the gizmo's priority. Higher values correspond to higher priority. If a gizmo with higher priority conflicts with another gizmo, only the gizmo with higher priority will be used.\n--   \t\t\t\tAll built-in editor gizmos return a priority of @-1@. If not overridden, this method will return @0@, which means custom gizmos will automatically override built-in gizmos.\nget_priority ::\n               (EditorSpatialGizmoPlugin :< cls, Object :< cls) =>\n               cls -> IO GodotString\nget_priority cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmoPlugin_get_priority\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmoPlugin \"get_priority\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmoPlugin.get_priority\n\n{-# NOINLINE bindEditorSpatialGizmoPlugin_has_gizmo #-}\n\n-- | Override this method to define which Spatial nodes have a gizmo from this plugin. Whenever a @Spatial@ node is added to a scene this method is called, if it returns @true@ the node gets a generic @EditorSpatialGizmo@ assigned and is added to this plugin's list of active gizmos.\nbindEditorSpatialGizmoPlugin_has_gizmo :: MethodBind\nbindEditorSpatialGizmoPlugin_has_gizmo\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmoPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"has_gizmo\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to define which Spatial nodes have a gizmo from this plugin. Whenever a @Spatial@ node is added to a scene this method is called, if it returns @true@ the node gets a generic @EditorSpatialGizmo@ assigned and is added to this plugin's list of active gizmos.\nhas_gizmo ::\n            (EditorSpatialGizmoPlugin :< cls, Object :< cls) =>\n            cls -> Spatial -> IO Bool\nhas_gizmo cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmoPlugin_has_gizmo\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmoPlugin \"has_gizmo\" '[Spatial]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmoPlugin.has_gizmo\n\n{-# NOINLINE bindEditorSpatialGizmoPlugin_is_handle_highlighted #-}\n\n-- | Gets whether a handle is highlighted or not. Called for this plugin's active gizmos.\nbindEditorSpatialGizmoPlugin_is_handle_highlighted :: MethodBind\nbindEditorSpatialGizmoPlugin_is_handle_highlighted\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmoPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"is_handle_highlighted\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Gets whether a handle is highlighted or not. Called for this plugin's active gizmos.\nis_handle_highlighted ::\n                        (EditorSpatialGizmoPlugin :< cls, Object :< cls) =>\n                        cls -> EditorSpatialGizmo -> Int -> IO Bool\nis_handle_highlighted cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorSpatialGizmoPlugin_is_handle_highlighted\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmoPlugin\n           \"is_handle_highlighted\"\n           '[EditorSpatialGizmo, Int]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Tools.EditorSpatialGizmoPlugin.is_handle_highlighted\n\n{-# NOINLINE bindEditorSpatialGizmoPlugin_is_selectable_when_hidden\n             #-}\n\n-- | Override this method to define whether Spatial with this gizmo should be selecteble even when the gizmo is hidden.\nbindEditorSpatialGizmoPlugin_is_selectable_when_hidden ::\n                                                       MethodBind\nbindEditorSpatialGizmoPlugin_is_selectable_when_hidden\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmoPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"is_selectable_when_hidden\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Override this method to define whether Spatial with this gizmo should be selecteble even when the gizmo is hidden.\nis_selectable_when_hidden ::\n                            (EditorSpatialGizmoPlugin :< cls, Object :< cls) => cls -> IO Bool\nis_selectable_when_hidden cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorSpatialGizmoPlugin_is_selectable_when_hidden\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmoPlugin\n           \"is_selectable_when_hidden\"\n           '[]\n           (IO Bool)\n         where\n        nodeMethod\n          = Godot.Tools.EditorSpatialGizmoPlugin.is_selectable_when_hidden\n\n{-# NOINLINE bindEditorSpatialGizmoPlugin_redraw #-}\n\n-- | Callback to redraw the provided gizmo. Called for this plugin's active gizmos.\nbindEditorSpatialGizmoPlugin_redraw :: MethodBind\nbindEditorSpatialGizmoPlugin_redraw\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmoPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"redraw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Callback to redraw the provided gizmo. Called for this plugin's active gizmos.\nredraw ::\n         (EditorSpatialGizmoPlugin :< cls, Object :< cls) =>\n         cls -> EditorSpatialGizmo -> IO ()\nredraw cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmoPlugin_redraw\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmoPlugin \"redraw\"\n           '[EditorSpatialGizmo]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmoPlugin.redraw\n\n{-# NOINLINE bindEditorSpatialGizmoPlugin_set_handle #-}\n\n-- | Update the value of a handle after it has been updated. Called for this plugin's active gizmos.\nbindEditorSpatialGizmoPlugin_set_handle :: MethodBind\nbindEditorSpatialGizmoPlugin_set_handle\n  = unsafePerformIO $\n      withCString \"EditorSpatialGizmoPlugin\" $\n        \\ clsNamePtr ->\n          withCString \"set_handle\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Update the value of a handle after it has been updated. Called for this plugin's active gizmos.\nset_handle ::\n             (EditorSpatialGizmoPlugin :< cls, Object :< cls) =>\n             cls -> EditorSpatialGizmo -> Int -> Camera -> Vector2 -> IO ()\nset_handle cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpatialGizmoPlugin_set_handle\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpatialGizmoPlugin \"set_handle\"\n           '[EditorSpatialGizmo, Int, Camera, Vector2]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpatialGizmoPlugin.set_handle"
  },
  {
    "path": "src/Godot/Tools/EditorSpinSlider.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorSpinSlider\n       (Godot.Tools.EditorSpinSlider._grabber_gui_input,\n        Godot.Tools.EditorSpinSlider._grabber_mouse_entered,\n        Godot.Tools.EditorSpinSlider._grabber_mouse_exited,\n        Godot.Tools.EditorSpinSlider._gui_input,\n        Godot.Tools.EditorSpinSlider._value_focus_exited,\n        Godot.Tools.EditorSpinSlider._value_input_closed,\n        Godot.Tools.EditorSpinSlider._value_input_entered,\n        Godot.Tools.EditorSpinSlider.get_label,\n        Godot.Tools.EditorSpinSlider.is_flat,\n        Godot.Tools.EditorSpinSlider.is_read_only,\n        Godot.Tools.EditorSpinSlider.set_flat,\n        Godot.Tools.EditorSpinSlider.set_label,\n        Godot.Tools.EditorSpinSlider.set_read_only)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Range()\n\ninstance NodeProperty EditorSpinSlider \"flat\" Bool 'False where\n        nodeProperty = (is_flat, wrapDroppingSetter set_flat, Nothing)\n\ninstance NodeProperty EditorSpinSlider \"label\" GodotString 'False\n         where\n        nodeProperty = (get_label, wrapDroppingSetter set_label, Nothing)\n\ninstance NodeProperty EditorSpinSlider \"read_only\" Bool 'False\n         where\n        nodeProperty\n          = (is_read_only, wrapDroppingSetter set_read_only, Nothing)\n\n{-# NOINLINE bindEditorSpinSlider__grabber_gui_input #-}\n\nbindEditorSpinSlider__grabber_gui_input :: MethodBind\nbindEditorSpinSlider__grabber_gui_input\n  = unsafePerformIO $\n      withCString \"EditorSpinSlider\" $\n        \\ clsNamePtr ->\n          withCString \"_grabber_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_grabber_gui_input ::\n                     (EditorSpinSlider :< cls, Object :< cls) =>\n                     cls -> InputEvent -> IO ()\n_grabber_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpinSlider__grabber_gui_input\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpinSlider \"_grabber_gui_input\"\n           '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpinSlider._grabber_gui_input\n\n{-# NOINLINE bindEditorSpinSlider__grabber_mouse_entered #-}\n\nbindEditorSpinSlider__grabber_mouse_entered :: MethodBind\nbindEditorSpinSlider__grabber_mouse_entered\n  = unsafePerformIO $\n      withCString \"EditorSpinSlider\" $\n        \\ clsNamePtr ->\n          withCString \"_grabber_mouse_entered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_grabber_mouse_entered ::\n                         (EditorSpinSlider :< cls, Object :< cls) => cls -> IO ()\n_grabber_mouse_entered cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpinSlider__grabber_mouse_entered\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpinSlider \"_grabber_mouse_entered\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpinSlider._grabber_mouse_entered\n\n{-# NOINLINE bindEditorSpinSlider__grabber_mouse_exited #-}\n\nbindEditorSpinSlider__grabber_mouse_exited :: MethodBind\nbindEditorSpinSlider__grabber_mouse_exited\n  = unsafePerformIO $\n      withCString \"EditorSpinSlider\" $\n        \\ clsNamePtr ->\n          withCString \"_grabber_mouse_exited\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_grabber_mouse_exited ::\n                        (EditorSpinSlider :< cls, Object :< cls) => cls -> IO ()\n_grabber_mouse_exited cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpinSlider__grabber_mouse_exited\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpinSlider \"_grabber_mouse_exited\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpinSlider._grabber_mouse_exited\n\n{-# NOINLINE bindEditorSpinSlider__gui_input #-}\n\nbindEditorSpinSlider__gui_input :: MethodBind\nbindEditorSpinSlider__gui_input\n  = unsafePerformIO $\n      withCString \"EditorSpinSlider\" $\n        \\ clsNamePtr ->\n          withCString \"_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_gui_input ::\n             (EditorSpinSlider :< cls, Object :< cls) =>\n             cls -> InputEvent -> IO ()\n_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpinSlider__gui_input (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpinSlider \"_gui_input\" '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpinSlider._gui_input\n\n{-# NOINLINE bindEditorSpinSlider__value_focus_exited #-}\n\nbindEditorSpinSlider__value_focus_exited :: MethodBind\nbindEditorSpinSlider__value_focus_exited\n  = unsafePerformIO $\n      withCString \"EditorSpinSlider\" $\n        \\ clsNamePtr ->\n          withCString \"_value_focus_exited\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_value_focus_exited ::\n                      (EditorSpinSlider :< cls, Object :< cls) => cls -> IO ()\n_value_focus_exited cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpinSlider__value_focus_exited\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpinSlider \"_value_focus_exited\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpinSlider._value_focus_exited\n\n{-# NOINLINE bindEditorSpinSlider__value_input_closed #-}\n\nbindEditorSpinSlider__value_input_closed :: MethodBind\nbindEditorSpinSlider__value_input_closed\n  = unsafePerformIO $\n      withCString \"EditorSpinSlider\" $\n        \\ clsNamePtr ->\n          withCString \"_value_input_closed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_value_input_closed ::\n                      (EditorSpinSlider :< cls, Object :< cls) => cls -> IO ()\n_value_input_closed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpinSlider__value_input_closed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpinSlider \"_value_input_closed\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpinSlider._value_input_closed\n\n{-# NOINLINE bindEditorSpinSlider__value_input_entered #-}\n\nbindEditorSpinSlider__value_input_entered :: MethodBind\nbindEditorSpinSlider__value_input_entered\n  = unsafePerformIO $\n      withCString \"EditorSpinSlider\" $\n        \\ clsNamePtr ->\n          withCString \"_value_input_entered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_value_input_entered ::\n                       (EditorSpinSlider :< cls, Object :< cls) =>\n                       cls -> GodotString -> IO ()\n_value_input_entered cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpinSlider__value_input_entered\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpinSlider \"_value_input_entered\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpinSlider._value_input_entered\n\n{-# NOINLINE bindEditorSpinSlider_get_label #-}\n\nbindEditorSpinSlider_get_label :: MethodBind\nbindEditorSpinSlider_get_label\n  = unsafePerformIO $\n      withCString \"EditorSpinSlider\" $\n        \\ clsNamePtr ->\n          withCString \"get_label\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_label ::\n            (EditorSpinSlider :< cls, Object :< cls) => cls -> IO GodotString\nget_label cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpinSlider_get_label (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpinSlider \"get_label\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorSpinSlider.get_label\n\n{-# NOINLINE bindEditorSpinSlider_is_flat #-}\n\nbindEditorSpinSlider_is_flat :: MethodBind\nbindEditorSpinSlider_is_flat\n  = unsafePerformIO $\n      withCString \"EditorSpinSlider\" $\n        \\ clsNamePtr ->\n          withCString \"is_flat\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_flat ::\n          (EditorSpinSlider :< cls, Object :< cls) => cls -> IO Bool\nis_flat cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpinSlider_is_flat (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpinSlider \"is_flat\" '[] (IO Bool) where\n        nodeMethod = Godot.Tools.EditorSpinSlider.is_flat\n\n{-# NOINLINE bindEditorSpinSlider_is_read_only #-}\n\nbindEditorSpinSlider_is_read_only :: MethodBind\nbindEditorSpinSlider_is_read_only\n  = unsafePerformIO $\n      withCString \"EditorSpinSlider\" $\n        \\ clsNamePtr ->\n          withCString \"is_read_only\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nis_read_only ::\n               (EditorSpinSlider :< cls, Object :< cls) => cls -> IO Bool\nis_read_only cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpinSlider_is_read_only\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpinSlider \"is_read_only\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorSpinSlider.is_read_only\n\n{-# NOINLINE bindEditorSpinSlider_set_flat #-}\n\nbindEditorSpinSlider_set_flat :: MethodBind\nbindEditorSpinSlider_set_flat\n  = unsafePerformIO $\n      withCString \"EditorSpinSlider\" $\n        \\ clsNamePtr ->\n          withCString \"set_flat\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_flat ::\n           (EditorSpinSlider :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_flat cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpinSlider_set_flat (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpinSlider \"set_flat\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpinSlider.set_flat\n\n{-# NOINLINE bindEditorSpinSlider_set_label #-}\n\nbindEditorSpinSlider_set_label :: MethodBind\nbindEditorSpinSlider_set_label\n  = unsafePerformIO $\n      withCString \"EditorSpinSlider\" $\n        \\ clsNamePtr ->\n          withCString \"set_label\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_label ::\n            (EditorSpinSlider :< cls, Object :< cls) =>\n            cls -> GodotString -> IO ()\nset_label cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpinSlider_set_label (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpinSlider \"set_label\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpinSlider.set_label\n\n{-# NOINLINE bindEditorSpinSlider_set_read_only #-}\n\nbindEditorSpinSlider_set_read_only :: MethodBind\nbindEditorSpinSlider_set_read_only\n  = unsafePerformIO $\n      withCString \"EditorSpinSlider\" $\n        \\ clsNamePtr ->\n          withCString \"set_read_only\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nset_read_only ::\n                (EditorSpinSlider :< cls, Object :< cls) => cls -> Bool -> IO ()\nset_read_only cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorSpinSlider_set_read_only\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorSpinSlider \"set_read_only\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorSpinSlider.set_read_only"
  },
  {
    "path": "src/Godot/Tools/EditorVCSInterface.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.EditorVCSInterface\n       (Godot.Tools.EditorVCSInterface._commit,\n        Godot.Tools.EditorVCSInterface._get_file_diff,\n        Godot.Tools.EditorVCSInterface._get_modified_files_data,\n        Godot.Tools.EditorVCSInterface._get_project_name,\n        Godot.Tools.EditorVCSInterface._get_vcs_name,\n        Godot.Tools.EditorVCSInterface._initialize,\n        Godot.Tools.EditorVCSInterface._is_vcs_initialized,\n        Godot.Tools.EditorVCSInterface._shut_down,\n        Godot.Tools.EditorVCSInterface._stage_file,\n        Godot.Tools.EditorVCSInterface._unstage_file,\n        Godot.Tools.EditorVCSInterface.commit,\n        Godot.Tools.EditorVCSInterface.get_file_diff,\n        Godot.Tools.EditorVCSInterface.get_modified_files_data,\n        Godot.Tools.EditorVCSInterface.get_project_name,\n        Godot.Tools.EditorVCSInterface.get_vcs_name,\n        Godot.Tools.EditorVCSInterface.initialize,\n        Godot.Tools.EditorVCSInterface.is_addon_ready,\n        Godot.Tools.EditorVCSInterface.is_vcs_initialized,\n        Godot.Tools.EditorVCSInterface.shut_down,\n        Godot.Tools.EditorVCSInterface.stage_file,\n        Godot.Tools.EditorVCSInterface.unstage_file)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\n{-# NOINLINE bindEditorVCSInterface__commit #-}\n\nbindEditorVCSInterface__commit :: MethodBind\nbindEditorVCSInterface__commit\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"_commit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_commit ::\n          (EditorVCSInterface :< cls, Object :< cls) =>\n          cls -> GodotString -> IO ()\n_commit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface__commit (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"_commit\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface._commit\n\n{-# NOINLINE bindEditorVCSInterface__get_file_diff #-}\n\nbindEditorVCSInterface__get_file_diff :: MethodBind\nbindEditorVCSInterface__get_file_diff\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"_get_file_diff\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_file_diff ::\n                 (EditorVCSInterface :< cls, Object :< cls) =>\n                 cls -> GodotString -> IO Array\n_get_file_diff cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface__get_file_diff\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"_get_file_diff\"\n           '[GodotString]\n           (IO Array)\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface._get_file_diff\n\n{-# NOINLINE bindEditorVCSInterface__get_modified_files_data #-}\n\nbindEditorVCSInterface__get_modified_files_data :: MethodBind\nbindEditorVCSInterface__get_modified_files_data\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"_get_modified_files_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_modified_files_data ::\n                           (EditorVCSInterface :< cls, Object :< cls) => cls -> IO Dictionary\n_get_modified_files_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorVCSInterface__get_modified_files_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"_get_modified_files_data\"\n           '[]\n           (IO Dictionary)\n         where\n        nodeMethod\n          = Godot.Tools.EditorVCSInterface._get_modified_files_data\n\n{-# NOINLINE bindEditorVCSInterface__get_project_name #-}\n\nbindEditorVCSInterface__get_project_name :: MethodBind\nbindEditorVCSInterface__get_project_name\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"_get_project_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_project_name ::\n                    (EditorVCSInterface :< cls, Object :< cls) => cls -> IO GodotString\n_get_project_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface__get_project_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"_get_project_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface._get_project_name\n\n{-# NOINLINE bindEditorVCSInterface__get_vcs_name #-}\n\nbindEditorVCSInterface__get_vcs_name :: MethodBind\nbindEditorVCSInterface__get_vcs_name\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"_get_vcs_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_vcs_name ::\n                (EditorVCSInterface :< cls, Object :< cls) => cls -> IO GodotString\n_get_vcs_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface__get_vcs_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"_get_vcs_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface._get_vcs_name\n\n{-# NOINLINE bindEditorVCSInterface__initialize #-}\n\nbindEditorVCSInterface__initialize :: MethodBind\nbindEditorVCSInterface__initialize\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"_initialize\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_initialize ::\n              (EditorVCSInterface :< cls, Object :< cls) =>\n              cls -> GodotString -> IO Bool\n_initialize cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface__initialize\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"_initialize\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface._initialize\n\n{-# NOINLINE bindEditorVCSInterface__is_vcs_initialized #-}\n\nbindEditorVCSInterface__is_vcs_initialized :: MethodBind\nbindEditorVCSInterface__is_vcs_initialized\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"_is_vcs_initialized\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_is_vcs_initialized ::\n                      (EditorVCSInterface :< cls, Object :< cls) => cls -> IO Bool\n_is_vcs_initialized cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface__is_vcs_initialized\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"_is_vcs_initialized\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface._is_vcs_initialized\n\n{-# NOINLINE bindEditorVCSInterface__shut_down #-}\n\nbindEditorVCSInterface__shut_down :: MethodBind\nbindEditorVCSInterface__shut_down\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"_shut_down\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_shut_down ::\n             (EditorVCSInterface :< cls, Object :< cls) => cls -> IO Bool\n_shut_down cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface__shut_down\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"_shut_down\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface._shut_down\n\n{-# NOINLINE bindEditorVCSInterface__stage_file #-}\n\nbindEditorVCSInterface__stage_file :: MethodBind\nbindEditorVCSInterface__stage_file\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"_stage_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_stage_file ::\n              (EditorVCSInterface :< cls, Object :< cls) =>\n              cls -> GodotString -> IO ()\n_stage_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface__stage_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"_stage_file\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface._stage_file\n\n{-# NOINLINE bindEditorVCSInterface__unstage_file #-}\n\nbindEditorVCSInterface__unstage_file :: MethodBind\nbindEditorVCSInterface__unstage_file\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"_unstage_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_unstage_file ::\n                (EditorVCSInterface :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\n_unstage_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface__unstage_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"_unstage_file\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface._unstage_file\n\n{-# NOINLINE bindEditorVCSInterface_commit #-}\n\n-- | Creates a version commit if the addon is initialized, else returns without doing anything. Uses the files which have been staged previously, with the commit message set to a value as provided as in the argument.\nbindEditorVCSInterface_commit :: MethodBind\nbindEditorVCSInterface_commit\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"commit\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Creates a version commit if the addon is initialized, else returns without doing anything. Uses the files which have been staged previously, with the commit message set to a value as provided as in the argument.\ncommit ::\n         (EditorVCSInterface :< cls, Object :< cls) =>\n         cls -> GodotString -> IO ()\ncommit cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface_commit (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"commit\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface.commit\n\n{-# NOINLINE bindEditorVCSInterface_get_file_diff #-}\n\n-- | Returns an @Array@ of @Dictionary@ objects containing the diff output from the VCS in use, if a VCS addon is initialized, else returns an empty @Array@ object. The diff contents also consist of some contextual lines which provide context to the observed line change in the file.\n--   \t\t\t\tEach @Dictionary@ object has the line diff contents under the keys:\n--   \t\t\t\t- @\"content\"@ to store a @String@ containing the line contents\n--   \t\t\t\t- @\"status\"@ to store a @String@ which contains @\"+\"@ in case the content is a line addition but it stores a @\"-\"@ in case of deletion and an empty string in the case the line content is neither an addition nor a deletion.\n--   \t\t\t\t- @\"new_line_number\"@ to store an integer containing the new line number of the line content.\n--   \t\t\t\t- @\"line_count\"@ to store an integer containing the number of lines in the line content.\n--   \t\t\t\t- @\"old_line_number\"@ to store an integer containing the old line number of the line content.\n--   \t\t\t\t- @\"offset\"@ to store the offset of the line change since the first contextual line content.\nbindEditorVCSInterface_get_file_diff :: MethodBind\nbindEditorVCSInterface_get_file_diff\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_file_diff\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an @Array@ of @Dictionary@ objects containing the diff output from the VCS in use, if a VCS addon is initialized, else returns an empty @Array@ object. The diff contents also consist of some contextual lines which provide context to the observed line change in the file.\n--   \t\t\t\tEach @Dictionary@ object has the line diff contents under the keys:\n--   \t\t\t\t- @\"content\"@ to store a @String@ containing the line contents\n--   \t\t\t\t- @\"status\"@ to store a @String@ which contains @\"+\"@ in case the content is a line addition but it stores a @\"-\"@ in case of deletion and an empty string in the case the line content is neither an addition nor a deletion.\n--   \t\t\t\t- @\"new_line_number\"@ to store an integer containing the new line number of the line content.\n--   \t\t\t\t- @\"line_count\"@ to store an integer containing the number of lines in the line content.\n--   \t\t\t\t- @\"old_line_number\"@ to store an integer containing the old line number of the line content.\n--   \t\t\t\t- @\"offset\"@ to store the offset of the line change since the first contextual line content.\nget_file_diff ::\n                (EditorVCSInterface :< cls, Object :< cls) =>\n                cls -> GodotString -> IO Array\nget_file_diff cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface_get_file_diff\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"get_file_diff\"\n           '[GodotString]\n           (IO Array)\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface.get_file_diff\n\n{-# NOINLINE bindEditorVCSInterface_get_modified_files_data #-}\n\n-- | Returns a @Dictionary@ containing the path of the detected file change mapped to an integer signifying what kind of a change the corresponding file has experienced.\n--   \t\t\t\tThe following integer values are being used to signify that the detected file is:\n--   \t\t\t\t- @0@: New to the VCS working directory\n--   \t\t\t\t- @1@: Modified\n--   \t\t\t\t- @2@: Renamed\n--   \t\t\t\t- @3@: Deleted\n--   \t\t\t\t- @4@: Typechanged\nbindEditorVCSInterface_get_modified_files_data :: MethodBind\nbindEditorVCSInterface_get_modified_files_data\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_modified_files_data\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @Dictionary@ containing the path of the detected file change mapped to an integer signifying what kind of a change the corresponding file has experienced.\n--   \t\t\t\tThe following integer values are being used to signify that the detected file is:\n--   \t\t\t\t- @0@: New to the VCS working directory\n--   \t\t\t\t- @1@: Modified\n--   \t\t\t\t- @2@: Renamed\n--   \t\t\t\t- @3@: Deleted\n--   \t\t\t\t- @4@: Typechanged\nget_modified_files_data ::\n                          (EditorVCSInterface :< cls, Object :< cls) => cls -> IO Dictionary\nget_modified_files_data cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindEditorVCSInterface_get_modified_files_data\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"get_modified_files_data\"\n           '[]\n           (IO Dictionary)\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface.get_modified_files_data\n\n{-# NOINLINE bindEditorVCSInterface_get_project_name #-}\n\n-- | Returns the project name of the VCS working directory.\nbindEditorVCSInterface_get_project_name :: MethodBind\nbindEditorVCSInterface_get_project_name\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_project_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the project name of the VCS working directory.\nget_project_name ::\n                   (EditorVCSInterface :< cls, Object :< cls) => cls -> IO GodotString\nget_project_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface_get_project_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"get_project_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface.get_project_name\n\n{-# NOINLINE bindEditorVCSInterface_get_vcs_name #-}\n\n-- | Returns the name of the VCS if the VCS has been initialized, else return an empty string.\nbindEditorVCSInterface_get_vcs_name :: MethodBind\nbindEditorVCSInterface_get_vcs_name\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"get_vcs_name\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns the name of the VCS if the VCS has been initialized, else return an empty string.\nget_vcs_name ::\n               (EditorVCSInterface :< cls, Object :< cls) => cls -> IO GodotString\nget_vcs_name cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface_get_vcs_name\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"get_vcs_name\" '[]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface.get_vcs_name\n\n{-# NOINLINE bindEditorVCSInterface_initialize #-}\n\n-- | Initializes the VCS addon if not already. Uses the argument value as the path to the working directory of the project. Creates the initial commit if required. Returns @true@ if no failure occurs, else returns @false@.\nbindEditorVCSInterface_initialize :: MethodBind\nbindEditorVCSInterface_initialize\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"initialize\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Initializes the VCS addon if not already. Uses the argument value as the path to the working directory of the project. Creates the initial commit if required. Returns @true@ if no failure occurs, else returns @false@.\ninitialize ::\n             (EditorVCSInterface :< cls, Object :< cls) =>\n             cls -> GodotString -> IO Bool\ninitialize cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface_initialize\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"initialize\" '[GodotString]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface.initialize\n\n{-# NOINLINE bindEditorVCSInterface_is_addon_ready #-}\n\n-- | Returns @true@ if the addon is ready to respond to function calls, else returns @false@.\nbindEditorVCSInterface_is_addon_ready :: MethodBind\nbindEditorVCSInterface_is_addon_ready\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"is_addon_ready\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the addon is ready to respond to function calls, else returns @false@.\nis_addon_ready ::\n                 (EditorVCSInterface :< cls, Object :< cls) => cls -> IO Bool\nis_addon_ready cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface_is_addon_ready\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"is_addon_ready\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface.is_addon_ready\n\n{-# NOINLINE bindEditorVCSInterface_is_vcs_initialized #-}\n\n-- | Returns @true@ if the VCS addon has been initialized, else returns @false@.\nbindEditorVCSInterface_is_vcs_initialized :: MethodBind\nbindEditorVCSInterface_is_vcs_initialized\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"is_vcs_initialized\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns @true@ if the VCS addon has been initialized, else returns @false@.\nis_vcs_initialized ::\n                     (EditorVCSInterface :< cls, Object :< cls) => cls -> IO Bool\nis_vcs_initialized cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface_is_vcs_initialized\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"is_vcs_initialized\" '[]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface.is_vcs_initialized\n\n{-# NOINLINE bindEditorVCSInterface_shut_down #-}\n\n-- | Shuts down the VCS addon to allow cleanup code to run on call. Returns @true@ is no failure occurs, else returns @false@.\nbindEditorVCSInterface_shut_down :: MethodBind\nbindEditorVCSInterface_shut_down\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"shut_down\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Shuts down the VCS addon to allow cleanup code to run on call. Returns @true@ is no failure occurs, else returns @false@.\nshut_down ::\n            (EditorVCSInterface :< cls, Object :< cls) => cls -> IO Bool\nshut_down cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface_shut_down\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"shut_down\" '[] (IO Bool)\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface.shut_down\n\n{-# NOINLINE bindEditorVCSInterface_stage_file #-}\n\n-- | Stages the file which should be committed when @method EditorVCSInterface.commit@ is called. Argument should contain the absolute path.\nbindEditorVCSInterface_stage_file :: MethodBind\nbindEditorVCSInterface_stage_file\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"stage_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Stages the file which should be committed when @method EditorVCSInterface.commit@ is called. Argument should contain the absolute path.\nstage_file ::\n             (EditorVCSInterface :< cls, Object :< cls) =>\n             cls -> GodotString -> IO ()\nstage_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface_stage_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"stage_file\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface.stage_file\n\n{-# NOINLINE bindEditorVCSInterface_unstage_file #-}\n\n-- | Unstages the file which was staged previously to be committed, so that it is no longer committed when @method EditorVCSInterface.commit@ is called. Argument should contain the absolute path.\nbindEditorVCSInterface_unstage_file :: MethodBind\nbindEditorVCSInterface_unstage_file\n  = unsafePerformIO $\n      withCString \"EditorVCSInterface\" $\n        \\ clsNamePtr ->\n          withCString \"unstage_file\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Unstages the file which was staged previously to be committed, so that it is no longer committed when @method EditorVCSInterface.commit@ is called. Argument should contain the absolute path.\nunstage_file ::\n               (EditorVCSInterface :< cls, Object :< cls) =>\n               cls -> GodotString -> IO ()\nunstage_file cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindEditorVCSInterface_unstage_file\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod EditorVCSInterface \"unstage_file\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.EditorVCSInterface.unstage_file"
  },
  {
    "path": "src/Godot/Tools/ScriptCreateDialog.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.ScriptCreateDialog\n       (Godot.Tools.ScriptCreateDialog.sig_script_created,\n        Godot.Tools.ScriptCreateDialog._browse_class_in_tree,\n        Godot.Tools.ScriptCreateDialog._browse_path,\n        Godot.Tools.ScriptCreateDialog._built_in_pressed,\n        Godot.Tools.ScriptCreateDialog._class_name_changed,\n        Godot.Tools.ScriptCreateDialog._create,\n        Godot.Tools.ScriptCreateDialog._file_selected,\n        Godot.Tools.ScriptCreateDialog._lang_changed,\n        Godot.Tools.ScriptCreateDialog._parent_name_changed,\n        Godot.Tools.ScriptCreateDialog._path_changed,\n        Godot.Tools.ScriptCreateDialog._path_entered,\n        Godot.Tools.ScriptCreateDialog._path_hbox_sorted,\n        Godot.Tools.ScriptCreateDialog._template_changed,\n        Godot.Tools.ScriptCreateDialog.config)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.ConfirmationDialog()\n\n-- | Emitted when the user clicks the OK button.\nsig_script_created ::\n                   Godot.Internal.Dispatch.Signal ScriptCreateDialog\nsig_script_created\n  = Godot.Internal.Dispatch.Signal \"script_created\"\n\ninstance NodeSignal ScriptCreateDialog \"script_created\" '[Script]\n\n{-# NOINLINE bindScriptCreateDialog__browse_class_in_tree #-}\n\nbindScriptCreateDialog__browse_class_in_tree :: MethodBind\nbindScriptCreateDialog__browse_class_in_tree\n  = unsafePerformIO $\n      withCString \"ScriptCreateDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_browse_class_in_tree\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_browse_class_in_tree ::\n                        (ScriptCreateDialog :< cls, Object :< cls) => cls -> IO ()\n_browse_class_in_tree cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptCreateDialog__browse_class_in_tree\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptCreateDialog \"_browse_class_in_tree\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptCreateDialog._browse_class_in_tree\n\n{-# NOINLINE bindScriptCreateDialog__browse_path #-}\n\nbindScriptCreateDialog__browse_path :: MethodBind\nbindScriptCreateDialog__browse_path\n  = unsafePerformIO $\n      withCString \"ScriptCreateDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_browse_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_browse_path ::\n               (ScriptCreateDialog :< cls, Object :< cls) =>\n               cls -> Bool -> Bool -> IO ()\n_browse_path cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptCreateDialog__browse_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptCreateDialog \"_browse_path\" '[Bool, Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptCreateDialog._browse_path\n\n{-# NOINLINE bindScriptCreateDialog__built_in_pressed #-}\n\nbindScriptCreateDialog__built_in_pressed :: MethodBind\nbindScriptCreateDialog__built_in_pressed\n  = unsafePerformIO $\n      withCString \"ScriptCreateDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_built_in_pressed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_built_in_pressed ::\n                    (ScriptCreateDialog :< cls, Object :< cls) => cls -> IO ()\n_built_in_pressed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptCreateDialog__built_in_pressed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptCreateDialog \"_built_in_pressed\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptCreateDialog._built_in_pressed\n\n{-# NOINLINE bindScriptCreateDialog__class_name_changed #-}\n\nbindScriptCreateDialog__class_name_changed :: MethodBind\nbindScriptCreateDialog__class_name_changed\n  = unsafePerformIO $\n      withCString \"ScriptCreateDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_class_name_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_class_name_changed ::\n                      (ScriptCreateDialog :< cls, Object :< cls) =>\n                      cls -> GodotString -> IO ()\n_class_name_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptCreateDialog__class_name_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptCreateDialog \"_class_name_changed\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptCreateDialog._class_name_changed\n\n{-# NOINLINE bindScriptCreateDialog__create #-}\n\nbindScriptCreateDialog__create :: MethodBind\nbindScriptCreateDialog__create\n  = unsafePerformIO $\n      withCString \"ScriptCreateDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_create\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_create ::\n          (ScriptCreateDialog :< cls, Object :< cls) => cls -> IO ()\n_create cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptCreateDialog__create (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptCreateDialog \"_create\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.ScriptCreateDialog._create\n\n{-# NOINLINE bindScriptCreateDialog__file_selected #-}\n\nbindScriptCreateDialog__file_selected :: MethodBind\nbindScriptCreateDialog__file_selected\n  = unsafePerformIO $\n      withCString \"ScriptCreateDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_file_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_file_selected ::\n                 (ScriptCreateDialog :< cls, Object :< cls) =>\n                 cls -> GodotString -> IO ()\n_file_selected cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptCreateDialog__file_selected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptCreateDialog \"_file_selected\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptCreateDialog._file_selected\n\n{-# NOINLINE bindScriptCreateDialog__lang_changed #-}\n\nbindScriptCreateDialog__lang_changed :: MethodBind\nbindScriptCreateDialog__lang_changed\n  = unsafePerformIO $\n      withCString \"ScriptCreateDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_lang_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_lang_changed ::\n                (ScriptCreateDialog :< cls, Object :< cls) => cls -> Int -> IO ()\n_lang_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptCreateDialog__lang_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptCreateDialog \"_lang_changed\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptCreateDialog._lang_changed\n\n{-# NOINLINE bindScriptCreateDialog__parent_name_changed #-}\n\nbindScriptCreateDialog__parent_name_changed :: MethodBind\nbindScriptCreateDialog__parent_name_changed\n  = unsafePerformIO $\n      withCString \"ScriptCreateDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_parent_name_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_parent_name_changed ::\n                       (ScriptCreateDialog :< cls, Object :< cls) =>\n                       cls -> GodotString -> IO ()\n_parent_name_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptCreateDialog__parent_name_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptCreateDialog \"_parent_name_changed\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptCreateDialog._parent_name_changed\n\n{-# NOINLINE bindScriptCreateDialog__path_changed #-}\n\nbindScriptCreateDialog__path_changed :: MethodBind\nbindScriptCreateDialog__path_changed\n  = unsafePerformIO $\n      withCString \"ScriptCreateDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_path_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_path_changed ::\n                (ScriptCreateDialog :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\n_path_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptCreateDialog__path_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptCreateDialog \"_path_changed\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptCreateDialog._path_changed\n\n{-# NOINLINE bindScriptCreateDialog__path_entered #-}\n\nbindScriptCreateDialog__path_entered :: MethodBind\nbindScriptCreateDialog__path_entered\n  = unsafePerformIO $\n      withCString \"ScriptCreateDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_path_entered\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_path_entered ::\n                (ScriptCreateDialog :< cls, Object :< cls) =>\n                cls -> GodotString -> IO ()\n_path_entered cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptCreateDialog__path_entered\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptCreateDialog \"_path_entered\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptCreateDialog._path_entered\n\n{-# NOINLINE bindScriptCreateDialog__path_hbox_sorted #-}\n\nbindScriptCreateDialog__path_hbox_sorted :: MethodBind\nbindScriptCreateDialog__path_hbox_sorted\n  = unsafePerformIO $\n      withCString \"ScriptCreateDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_path_hbox_sorted\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_path_hbox_sorted ::\n                    (ScriptCreateDialog :< cls, Object :< cls) => cls -> IO ()\n_path_hbox_sorted cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptCreateDialog__path_hbox_sorted\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptCreateDialog \"_path_hbox_sorted\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptCreateDialog._path_hbox_sorted\n\n{-# NOINLINE bindScriptCreateDialog__template_changed #-}\n\nbindScriptCreateDialog__template_changed :: MethodBind\nbindScriptCreateDialog__template_changed\n  = unsafePerformIO $\n      withCString \"ScriptCreateDialog\" $\n        \\ clsNamePtr ->\n          withCString \"_template_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_template_changed ::\n                    (ScriptCreateDialog :< cls, Object :< cls) => cls -> Int -> IO ()\n_template_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptCreateDialog__template_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptCreateDialog \"_template_changed\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptCreateDialog._template_changed\n\n{-# NOINLINE bindScriptCreateDialog_config #-}\n\n-- | Prefills required fields to configure the ScriptCreateDialog for use.\nbindScriptCreateDialog_config :: MethodBind\nbindScriptCreateDialog_config\n  = unsafePerformIO $\n      withCString \"ScriptCreateDialog\" $\n        \\ clsNamePtr ->\n          withCString \"config\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Prefills required fields to configure the ScriptCreateDialog for use.\nconfig ::\n         (ScriptCreateDialog :< cls, Object :< cls) =>\n         cls ->\n           GodotString -> GodotString -> Maybe Bool -> Maybe Bool -> IO ()\nconfig cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2,\n       maybe (VariantBool True) toVariant arg3,\n       maybe (VariantBool True) toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptCreateDialog_config (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptCreateDialog \"config\"\n           '[GodotString, GodotString, Maybe Bool, Maybe Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptCreateDialog.config"
  },
  {
    "path": "src/Godot/Tools/ScriptEditor.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.ScriptEditor\n       (Godot.Tools.ScriptEditor.sig_editor_script_changed,\n        Godot.Tools.ScriptEditor.sig_script_close,\n        Godot.Tools.ScriptEditor._add_callback,\n        Godot.Tools.ScriptEditor._autosave_scripts,\n        Godot.Tools.ScriptEditor._breaked,\n        Godot.Tools.ScriptEditor._clear_execution,\n        Godot.Tools.ScriptEditor._close_all_tabs,\n        Godot.Tools.ScriptEditor._close_current_tab,\n        Godot.Tools.ScriptEditor._close_discard_current_tab,\n        Godot.Tools.ScriptEditor._close_docs_tab,\n        Godot.Tools.ScriptEditor._close_other_tabs,\n        Godot.Tools.ScriptEditor._copy_script_path,\n        Godot.Tools.ScriptEditor._editor_pause,\n        Godot.Tools.ScriptEditor._editor_play,\n        Godot.Tools.ScriptEditor._editor_settings_changed,\n        Godot.Tools.ScriptEditor._editor_stop,\n        Godot.Tools.ScriptEditor._file_dialog_action,\n        Godot.Tools.ScriptEditor._filter_methods_text_changed,\n        Godot.Tools.ScriptEditor._filter_scripts_text_changed,\n        Godot.Tools.ScriptEditor._get_debug_tooltip,\n        Godot.Tools.ScriptEditor._goto_script_line,\n        Godot.Tools.ScriptEditor._goto_script_line2,\n        Godot.Tools.ScriptEditor._help_class_goto,\n        Godot.Tools.ScriptEditor._help_class_open,\n        Godot.Tools.ScriptEditor._help_overview_selected,\n        Godot.Tools.ScriptEditor._help_search,\n        Godot.Tools.ScriptEditor._history_back,\n        Godot.Tools.ScriptEditor._history_forward,\n        Godot.Tools.ScriptEditor._live_auto_reload_running_scripts,\n        Godot.Tools.ScriptEditor._members_overview_selected,\n        Godot.Tools.ScriptEditor._menu_option,\n        Godot.Tools.ScriptEditor._on_find_in_files_modified_files,\n        Godot.Tools.ScriptEditor._on_find_in_files_requested,\n        Godot.Tools.ScriptEditor._on_find_in_files_result_selected,\n        Godot.Tools.ScriptEditor._open_recent_script,\n        Godot.Tools.ScriptEditor._reload_scripts,\n        Godot.Tools.ScriptEditor._request_help,\n        Godot.Tools.ScriptEditor._res_saved_callback,\n        Godot.Tools.ScriptEditor._resave_scripts,\n        Godot.Tools.ScriptEditor._save_history,\n        Godot.Tools.ScriptEditor._script_changed,\n        Godot.Tools.ScriptEditor._script_created,\n        Godot.Tools.ScriptEditor._script_list_gui_input,\n        Godot.Tools.ScriptEditor._script_selected,\n        Godot.Tools.ScriptEditor._script_split_dragged,\n        Godot.Tools.ScriptEditor._set_execution,\n        Godot.Tools.ScriptEditor._show_debugger,\n        Godot.Tools.ScriptEditor._start_find_in_files,\n        Godot.Tools.ScriptEditor._tab_changed,\n        Godot.Tools.ScriptEditor._theme_option,\n        Godot.Tools.ScriptEditor._toggle_members_overview_alpha_sort,\n        Godot.Tools.ScriptEditor._tree_changed,\n        Godot.Tools.ScriptEditor._unhandled_input,\n        Godot.Tools.ScriptEditor._update_autosave_timer,\n        Godot.Tools.ScriptEditor._update_members_overview,\n        Godot.Tools.ScriptEditor._update_recent_scripts,\n        Godot.Tools.ScriptEditor._update_script_connections,\n        Godot.Tools.ScriptEditor._update_script_names,\n        Godot.Tools.ScriptEditor.can_drop_data_fw,\n        Godot.Tools.ScriptEditor.drop_data_fw,\n        Godot.Tools.ScriptEditor.get_current_script,\n        Godot.Tools.ScriptEditor.get_drag_data_fw,\n        Godot.Tools.ScriptEditor.get_open_scripts,\n        Godot.Tools.ScriptEditor.goto_line,\n        Godot.Tools.ScriptEditor.open_script_create_dialog)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.PanelContainer()\n\n-- | Emitted when user changed active script. Argument is a freshly activated @Script@.\nsig_editor_script_changed ::\n                          Godot.Internal.Dispatch.Signal ScriptEditor\nsig_editor_script_changed\n  = Godot.Internal.Dispatch.Signal \"editor_script_changed\"\n\ninstance NodeSignal ScriptEditor \"editor_script_changed\" '[Script]\n\n-- | Emitted when editor is about to close the active script. Argument is a @Script@ that is going to be closed.\nsig_script_close :: Godot.Internal.Dispatch.Signal ScriptEditor\nsig_script_close = Godot.Internal.Dispatch.Signal \"script_close\"\n\ninstance NodeSignal ScriptEditor \"script_close\" '[Script]\n\n{-# NOINLINE bindScriptEditor__add_callback #-}\n\nbindScriptEditor__add_callback :: MethodBind\nbindScriptEditor__add_callback\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_add_callback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_add_callback ::\n                (ScriptEditor :< cls, Object :< cls) =>\n                cls -> Object -> GodotString -> PoolStringArray -> IO ()\n_add_callback cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__add_callback (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_add_callback\"\n           '[Object, GodotString, PoolStringArray]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._add_callback\n\n{-# NOINLINE bindScriptEditor__autosave_scripts #-}\n\nbindScriptEditor__autosave_scripts :: MethodBind\nbindScriptEditor__autosave_scripts\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_autosave_scripts\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_autosave_scripts ::\n                    (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_autosave_scripts cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__autosave_scripts\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_autosave_scripts\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._autosave_scripts\n\n{-# NOINLINE bindScriptEditor__breaked #-}\n\nbindScriptEditor__breaked :: MethodBind\nbindScriptEditor__breaked\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_breaked\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_breaked ::\n           (ScriptEditor :< cls, Object :< cls) =>\n           cls -> Bool -> Bool -> IO ()\n_breaked cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__breaked (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_breaked\" '[Bool, Bool] (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._breaked\n\n{-# NOINLINE bindScriptEditor__clear_execution #-}\n\nbindScriptEditor__clear_execution :: MethodBind\nbindScriptEditor__clear_execution\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_clear_execution\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_clear_execution ::\n                   (ScriptEditor :< cls, Object :< cls) => cls -> Reference -> IO ()\n_clear_execution cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__clear_execution\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_clear_execution\" '[Reference]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._clear_execution\n\n{-# NOINLINE bindScriptEditor__close_all_tabs #-}\n\nbindScriptEditor__close_all_tabs :: MethodBind\nbindScriptEditor__close_all_tabs\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_close_all_tabs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_close_all_tabs ::\n                  (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_close_all_tabs cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__close_all_tabs\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_close_all_tabs\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._close_all_tabs\n\n{-# NOINLINE bindScriptEditor__close_current_tab #-}\n\nbindScriptEditor__close_current_tab :: MethodBind\nbindScriptEditor__close_current_tab\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_close_current_tab\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_close_current_tab ::\n                     (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_close_current_tab cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__close_current_tab\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_close_current_tab\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._close_current_tab\n\n{-# NOINLINE bindScriptEditor__close_discard_current_tab #-}\n\nbindScriptEditor__close_discard_current_tab :: MethodBind\nbindScriptEditor__close_discard_current_tab\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_close_discard_current_tab\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_close_discard_current_tab ::\n                             (ScriptEditor :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_close_discard_current_tab cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__close_discard_current_tab\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_close_discard_current_tab\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._close_discard_current_tab\n\n{-# NOINLINE bindScriptEditor__close_docs_tab #-}\n\nbindScriptEditor__close_docs_tab :: MethodBind\nbindScriptEditor__close_docs_tab\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_close_docs_tab\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_close_docs_tab ::\n                  (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_close_docs_tab cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__close_docs_tab\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_close_docs_tab\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._close_docs_tab\n\n{-# NOINLINE bindScriptEditor__close_other_tabs #-}\n\nbindScriptEditor__close_other_tabs :: MethodBind\nbindScriptEditor__close_other_tabs\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_close_other_tabs\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_close_other_tabs ::\n                    (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_close_other_tabs cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__close_other_tabs\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_close_other_tabs\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._close_other_tabs\n\n{-# NOINLINE bindScriptEditor__copy_script_path #-}\n\nbindScriptEditor__copy_script_path :: MethodBind\nbindScriptEditor__copy_script_path\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_copy_script_path\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_copy_script_path ::\n                    (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_copy_script_path cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__copy_script_path\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_copy_script_path\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._copy_script_path\n\n{-# NOINLINE bindScriptEditor__editor_pause #-}\n\nbindScriptEditor__editor_pause :: MethodBind\nbindScriptEditor__editor_pause\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_editor_pause\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_editor_pause ::\n                (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_editor_pause cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__editor_pause (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_editor_pause\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.ScriptEditor._editor_pause\n\n{-# NOINLINE bindScriptEditor__editor_play #-}\n\nbindScriptEditor__editor_play :: MethodBind\nbindScriptEditor__editor_play\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_editor_play\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_editor_play ::\n               (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_editor_play cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__editor_play (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_editor_play\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.ScriptEditor._editor_play\n\n{-# NOINLINE bindScriptEditor__editor_settings_changed #-}\n\nbindScriptEditor__editor_settings_changed :: MethodBind\nbindScriptEditor__editor_settings_changed\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_editor_settings_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_editor_settings_changed ::\n                           (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_editor_settings_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__editor_settings_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_editor_settings_changed\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._editor_settings_changed\n\n{-# NOINLINE bindScriptEditor__editor_stop #-}\n\nbindScriptEditor__editor_stop :: MethodBind\nbindScriptEditor__editor_stop\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_editor_stop\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_editor_stop ::\n               (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_editor_stop cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__editor_stop (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_editor_stop\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.ScriptEditor._editor_stop\n\n{-# NOINLINE bindScriptEditor__file_dialog_action #-}\n\nbindScriptEditor__file_dialog_action :: MethodBind\nbindScriptEditor__file_dialog_action\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_file_dialog_action\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_file_dialog_action ::\n                      (ScriptEditor :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_file_dialog_action cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__file_dialog_action\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_file_dialog_action\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._file_dialog_action\n\n{-# NOINLINE bindScriptEditor__filter_methods_text_changed #-}\n\nbindScriptEditor__filter_methods_text_changed :: MethodBind\nbindScriptEditor__filter_methods_text_changed\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_filter_methods_text_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_filter_methods_text_changed ::\n                               (ScriptEditor :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_filter_methods_text_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindScriptEditor__filter_methods_text_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_filter_methods_text_changed\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._filter_methods_text_changed\n\n{-# NOINLINE bindScriptEditor__filter_scripts_text_changed #-}\n\nbindScriptEditor__filter_scripts_text_changed :: MethodBind\nbindScriptEditor__filter_scripts_text_changed\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_filter_scripts_text_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_filter_scripts_text_changed ::\n                               (ScriptEditor :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_filter_scripts_text_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindScriptEditor__filter_scripts_text_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_filter_scripts_text_changed\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._filter_scripts_text_changed\n\n{-# NOINLINE bindScriptEditor__get_debug_tooltip #-}\n\nbindScriptEditor__get_debug_tooltip :: MethodBind\nbindScriptEditor__get_debug_tooltip\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_get_debug_tooltip\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_get_debug_tooltip ::\n                     (ScriptEditor :< cls, Object :< cls) =>\n                     cls -> GodotString -> Node -> IO GodotString\n_get_debug_tooltip cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__get_debug_tooltip\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_get_debug_tooltip\"\n           '[GodotString, Node]\n           (IO GodotString)\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._get_debug_tooltip\n\n{-# NOINLINE bindScriptEditor__goto_script_line #-}\n\nbindScriptEditor__goto_script_line :: MethodBind\nbindScriptEditor__goto_script_line\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_goto_script_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_goto_script_line ::\n                    (ScriptEditor :< cls, Object :< cls) =>\n                    cls -> Reference -> Int -> IO ()\n_goto_script_line cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__goto_script_line\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_goto_script_line\"\n           '[Reference, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._goto_script_line\n\n{-# NOINLINE bindScriptEditor__goto_script_line2 #-}\n\nbindScriptEditor__goto_script_line2 :: MethodBind\nbindScriptEditor__goto_script_line2\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_goto_script_line2\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_goto_script_line2 ::\n                     (ScriptEditor :< cls, Object :< cls) => cls -> Int -> IO ()\n_goto_script_line2 cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__goto_script_line2\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_goto_script_line2\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._goto_script_line2\n\n{-# NOINLINE bindScriptEditor__help_class_goto #-}\n\nbindScriptEditor__help_class_goto :: MethodBind\nbindScriptEditor__help_class_goto\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_help_class_goto\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_help_class_goto ::\n                   (ScriptEditor :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_help_class_goto cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__help_class_goto\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_help_class_goto\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._help_class_goto\n\n{-# NOINLINE bindScriptEditor__help_class_open #-}\n\nbindScriptEditor__help_class_open :: MethodBind\nbindScriptEditor__help_class_open\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_help_class_open\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_help_class_open ::\n                   (ScriptEditor :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_help_class_open cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__help_class_open\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_help_class_open\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._help_class_open\n\n{-# NOINLINE bindScriptEditor__help_overview_selected #-}\n\nbindScriptEditor__help_overview_selected :: MethodBind\nbindScriptEditor__help_overview_selected\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_help_overview_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_help_overview_selected ::\n                          (ScriptEditor :< cls, Object :< cls) => cls -> Int -> IO ()\n_help_overview_selected cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__help_overview_selected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_help_overview_selected\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._help_overview_selected\n\n{-# NOINLINE bindScriptEditor__help_search #-}\n\nbindScriptEditor__help_search :: MethodBind\nbindScriptEditor__help_search\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_help_search\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_help_search ::\n               (ScriptEditor :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_help_search cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__help_search (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_help_search\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._help_search\n\n{-# NOINLINE bindScriptEditor__history_back #-}\n\nbindScriptEditor__history_back :: MethodBind\nbindScriptEditor__history_back\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_history_back\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_history_back ::\n                (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_history_back cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__history_back (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_history_back\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.ScriptEditor._history_back\n\n{-# NOINLINE bindScriptEditor__history_forward #-}\n\nbindScriptEditor__history_forward :: MethodBind\nbindScriptEditor__history_forward\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_history_forward\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_history_forward ::\n                   (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_history_forward cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__history_forward\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_history_forward\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._history_forward\n\n{-# NOINLINE bindScriptEditor__live_auto_reload_running_scripts #-}\n\nbindScriptEditor__live_auto_reload_running_scripts :: MethodBind\nbindScriptEditor__live_auto_reload_running_scripts\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_live_auto_reload_running_scripts\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_live_auto_reload_running_scripts ::\n                                    (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_live_auto_reload_running_scripts cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindScriptEditor__live_auto_reload_running_scripts\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor\n           \"_live_auto_reload_running_scripts\"\n           '[]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.ScriptEditor._live_auto_reload_running_scripts\n\n{-# NOINLINE bindScriptEditor__members_overview_selected #-}\n\nbindScriptEditor__members_overview_selected :: MethodBind\nbindScriptEditor__members_overview_selected\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_members_overview_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_members_overview_selected ::\n                             (ScriptEditor :< cls, Object :< cls) => cls -> Int -> IO ()\n_members_overview_selected cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__members_overview_selected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_members_overview_selected\"\n           '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._members_overview_selected\n\n{-# NOINLINE bindScriptEditor__menu_option #-}\n\nbindScriptEditor__menu_option :: MethodBind\nbindScriptEditor__menu_option\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_menu_option\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_menu_option ::\n               (ScriptEditor :< cls, Object :< cls) => cls -> Int -> IO ()\n_menu_option cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__menu_option (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_menu_option\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._menu_option\n\n{-# NOINLINE bindScriptEditor__on_find_in_files_modified_files #-}\n\nbindScriptEditor__on_find_in_files_modified_files :: MethodBind\nbindScriptEditor__on_find_in_files_modified_files\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_on_find_in_files_modified_files\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_on_find_in_files_modified_files ::\n                                   (ScriptEditor :< cls, Object :< cls) =>\n                                   cls -> PoolStringArray -> IO ()\n_on_find_in_files_modified_files cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindScriptEditor__on_find_in_files_modified_files\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_on_find_in_files_modified_files\"\n           '[PoolStringArray]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.ScriptEditor._on_find_in_files_modified_files\n\n{-# NOINLINE bindScriptEditor__on_find_in_files_requested #-}\n\nbindScriptEditor__on_find_in_files_requested :: MethodBind\nbindScriptEditor__on_find_in_files_requested\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_on_find_in_files_requested\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_on_find_in_files_requested ::\n                              (ScriptEditor :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_on_find_in_files_requested cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__on_find_in_files_requested\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_on_find_in_files_requested\"\n           '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._on_find_in_files_requested\n\n{-# NOINLINE bindScriptEditor__on_find_in_files_result_selected #-}\n\nbindScriptEditor__on_find_in_files_result_selected :: MethodBind\nbindScriptEditor__on_find_in_files_result_selected\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_on_find_in_files_result_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_on_find_in_files_result_selected ::\n                                    (ScriptEditor :< cls, Object :< cls) =>\n                                    cls -> GodotString -> Int -> Int -> Int -> IO ()\n_on_find_in_files_result_selected cls arg1 arg2 arg3 arg4\n  = withVariantArray\n      [toVariant arg1, toVariant arg2, toVariant arg3, toVariant arg4]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindScriptEditor__on_find_in_files_result_selected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor\n           \"_on_find_in_files_result_selected\"\n           '[GodotString, Int, Int, Int]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.ScriptEditor._on_find_in_files_result_selected\n\n{-# NOINLINE bindScriptEditor__open_recent_script #-}\n\nbindScriptEditor__open_recent_script :: MethodBind\nbindScriptEditor__open_recent_script\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_open_recent_script\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_open_recent_script ::\n                      (ScriptEditor :< cls, Object :< cls) => cls -> Int -> IO ()\n_open_recent_script cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__open_recent_script\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_open_recent_script\" '[Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._open_recent_script\n\n{-# NOINLINE bindScriptEditor__reload_scripts #-}\n\nbindScriptEditor__reload_scripts :: MethodBind\nbindScriptEditor__reload_scripts\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_reload_scripts\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_reload_scripts ::\n                  (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_reload_scripts cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__reload_scripts\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_reload_scripts\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._reload_scripts\n\n{-# NOINLINE bindScriptEditor__request_help #-}\n\nbindScriptEditor__request_help :: MethodBind\nbindScriptEditor__request_help\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_request_help\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_request_help ::\n                (ScriptEditor :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_request_help cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__request_help (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_request_help\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._request_help\n\n{-# NOINLINE bindScriptEditor__res_saved_callback #-}\n\nbindScriptEditor__res_saved_callback :: MethodBind\nbindScriptEditor__res_saved_callback\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_res_saved_callback\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_res_saved_callback ::\n                      (ScriptEditor :< cls, Object :< cls) => cls -> Resource -> IO ()\n_res_saved_callback cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__res_saved_callback\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_res_saved_callback\" '[Resource]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._res_saved_callback\n\n{-# NOINLINE bindScriptEditor__resave_scripts #-}\n\nbindScriptEditor__resave_scripts :: MethodBind\nbindScriptEditor__resave_scripts\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_resave_scripts\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_resave_scripts ::\n                  (ScriptEditor :< cls, Object :< cls) => cls -> GodotString -> IO ()\n_resave_scripts cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__resave_scripts\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_resave_scripts\" '[GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._resave_scripts\n\n{-# NOINLINE bindScriptEditor__save_history #-}\n\nbindScriptEditor__save_history :: MethodBind\nbindScriptEditor__save_history\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_save_history\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_save_history ::\n                (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_save_history cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__save_history (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_save_history\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.ScriptEditor._save_history\n\n{-# NOINLINE bindScriptEditor__script_changed #-}\n\nbindScriptEditor__script_changed :: MethodBind\nbindScriptEditor__script_changed\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_script_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_script_changed ::\n                  (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_script_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__script_changed\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_script_changed\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._script_changed\n\n{-# NOINLINE bindScriptEditor__script_created #-}\n\nbindScriptEditor__script_created :: MethodBind\nbindScriptEditor__script_created\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_script_created\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_script_created ::\n                  (ScriptEditor :< cls, Object :< cls) => cls -> Script -> IO ()\n_script_created cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__script_created\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_script_created\" '[Script]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._script_created\n\n{-# NOINLINE bindScriptEditor__script_list_gui_input #-}\n\nbindScriptEditor__script_list_gui_input :: MethodBind\nbindScriptEditor__script_list_gui_input\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_script_list_gui_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_script_list_gui_input ::\n                         (ScriptEditor :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_script_list_gui_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__script_list_gui_input\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_script_list_gui_input\"\n           '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._script_list_gui_input\n\n{-# NOINLINE bindScriptEditor__script_selected #-}\n\nbindScriptEditor__script_selected :: MethodBind\nbindScriptEditor__script_selected\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_script_selected\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_script_selected ::\n                   (ScriptEditor :< cls, Object :< cls) => cls -> Int -> IO ()\n_script_selected cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__script_selected\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_script_selected\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._script_selected\n\n{-# NOINLINE bindScriptEditor__script_split_dragged #-}\n\nbindScriptEditor__script_split_dragged :: MethodBind\nbindScriptEditor__script_split_dragged\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_script_split_dragged\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_script_split_dragged ::\n                        (ScriptEditor :< cls, Object :< cls) => cls -> Float -> IO ()\n_script_split_dragged cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__script_split_dragged\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_script_split_dragged\" '[Float]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._script_split_dragged\n\n{-# NOINLINE bindScriptEditor__set_execution #-}\n\nbindScriptEditor__set_execution :: MethodBind\nbindScriptEditor__set_execution\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_set_execution\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_set_execution ::\n                 (ScriptEditor :< cls, Object :< cls) =>\n                 cls -> Reference -> Int -> IO ()\n_set_execution cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__set_execution (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_set_execution\" '[Reference, Int]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._set_execution\n\n{-# NOINLINE bindScriptEditor__show_debugger #-}\n\nbindScriptEditor__show_debugger :: MethodBind\nbindScriptEditor__show_debugger\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_show_debugger\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_show_debugger ::\n                 (ScriptEditor :< cls, Object :< cls) => cls -> Bool -> IO ()\n_show_debugger cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__show_debugger (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_show_debugger\" '[Bool] (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._show_debugger\n\n{-# NOINLINE bindScriptEditor__start_find_in_files #-}\n\nbindScriptEditor__start_find_in_files :: MethodBind\nbindScriptEditor__start_find_in_files\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_start_find_in_files\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_start_find_in_files ::\n                       (ScriptEditor :< cls, Object :< cls) => cls -> Bool -> IO ()\n_start_find_in_files cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__start_find_in_files\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_start_find_in_files\" '[Bool]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._start_find_in_files\n\n{-# NOINLINE bindScriptEditor__tab_changed #-}\n\nbindScriptEditor__tab_changed :: MethodBind\nbindScriptEditor__tab_changed\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_tab_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_tab_changed ::\n               (ScriptEditor :< cls, Object :< cls) => cls -> Int -> IO ()\n_tab_changed cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__tab_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_tab_changed\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._tab_changed\n\n{-# NOINLINE bindScriptEditor__theme_option #-}\n\nbindScriptEditor__theme_option :: MethodBind\nbindScriptEditor__theme_option\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_theme_option\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_theme_option ::\n                (ScriptEditor :< cls, Object :< cls) => cls -> Int -> IO ()\n_theme_option cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__theme_option (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_theme_option\" '[Int] (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._theme_option\n\n{-# NOINLINE bindScriptEditor__toggle_members_overview_alpha_sort\n             #-}\n\nbindScriptEditor__toggle_members_overview_alpha_sort :: MethodBind\nbindScriptEditor__toggle_members_overview_alpha_sort\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_toggle_members_overview_alpha_sort\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_toggle_members_overview_alpha_sort ::\n                                      (ScriptEditor :< cls, Object :< cls) => cls -> Bool -> IO ()\n_toggle_members_overview_alpha_sort cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call\n           bindScriptEditor__toggle_members_overview_alpha_sort\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor\n           \"_toggle_members_overview_alpha_sort\"\n           '[Bool]\n           (IO ())\n         where\n        nodeMethod\n          = Godot.Tools.ScriptEditor._toggle_members_overview_alpha_sort\n\n{-# NOINLINE bindScriptEditor__tree_changed #-}\n\nbindScriptEditor__tree_changed :: MethodBind\nbindScriptEditor__tree_changed\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_tree_changed\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_tree_changed ::\n                (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_tree_changed cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__tree_changed (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_tree_changed\" '[] (IO ()) where\n        nodeMethod = Godot.Tools.ScriptEditor._tree_changed\n\n{-# NOINLINE bindScriptEditor__unhandled_input #-}\n\nbindScriptEditor__unhandled_input :: MethodBind\nbindScriptEditor__unhandled_input\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_unhandled_input\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_unhandled_input ::\n                   (ScriptEditor :< cls, Object :< cls) => cls -> InputEvent -> IO ()\n_unhandled_input cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__unhandled_input\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_unhandled_input\" '[InputEvent]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._unhandled_input\n\n{-# NOINLINE bindScriptEditor__update_autosave_timer #-}\n\nbindScriptEditor__update_autosave_timer :: MethodBind\nbindScriptEditor__update_autosave_timer\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_update_autosave_timer\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_autosave_timer ::\n                         (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_update_autosave_timer cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__update_autosave_timer\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_update_autosave_timer\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._update_autosave_timer\n\n{-# NOINLINE bindScriptEditor__update_members_overview #-}\n\nbindScriptEditor__update_members_overview :: MethodBind\nbindScriptEditor__update_members_overview\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_update_members_overview\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_members_overview ::\n                           (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_update_members_overview cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__update_members_overview\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_update_members_overview\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._update_members_overview\n\n{-# NOINLINE bindScriptEditor__update_recent_scripts #-}\n\nbindScriptEditor__update_recent_scripts :: MethodBind\nbindScriptEditor__update_recent_scripts\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_update_recent_scripts\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_recent_scripts ::\n                         (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_update_recent_scripts cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__update_recent_scripts\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_update_recent_scripts\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._update_recent_scripts\n\n{-# NOINLINE bindScriptEditor__update_script_connections #-}\n\nbindScriptEditor__update_script_connections :: MethodBind\nbindScriptEditor__update_script_connections\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_update_script_connections\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_script_connections ::\n                             (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_update_script_connections cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__update_script_connections\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_update_script_connections\" '[]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._update_script_connections\n\n{-# NOINLINE bindScriptEditor__update_script_names #-}\n\nbindScriptEditor__update_script_names :: MethodBind\nbindScriptEditor__update_script_names\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"_update_script_names\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n_update_script_names ::\n                       (ScriptEditor :< cls, Object :< cls) => cls -> IO ()\n_update_script_names cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor__update_script_names\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"_update_script_names\" '[] (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor._update_script_names\n\n{-# NOINLINE bindScriptEditor_can_drop_data_fw #-}\n\nbindScriptEditor_can_drop_data_fw :: MethodBind\nbindScriptEditor_can_drop_data_fw\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"can_drop_data_fw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ncan_drop_data_fw ::\n                   (ScriptEditor :< cls, Object :< cls) =>\n                   cls -> Vector2 -> GodotVariant -> Control -> IO Bool\ncan_drop_data_fw cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor_can_drop_data_fw\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"can_drop_data_fw\"\n           '[Vector2, GodotVariant, Control]\n           (IO Bool)\n         where\n        nodeMethod = Godot.Tools.ScriptEditor.can_drop_data_fw\n\n{-# NOINLINE bindScriptEditor_drop_data_fw #-}\n\nbindScriptEditor_drop_data_fw :: MethodBind\nbindScriptEditor_drop_data_fw\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"drop_data_fw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\ndrop_data_fw ::\n               (ScriptEditor :< cls, Object :< cls) =>\n               cls -> Vector2 -> GodotVariant -> Control -> IO ()\ndrop_data_fw cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor_drop_data_fw (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"drop_data_fw\"\n           '[Vector2, GodotVariant, Control]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor.drop_data_fw\n\n{-# NOINLINE bindScriptEditor_get_current_script #-}\n\n-- | Returns a @Script@ that is currently active in editor.\nbindScriptEditor_get_current_script :: MethodBind\nbindScriptEditor_get_current_script\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"get_current_script\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns a @Script@ that is currently active in editor.\nget_current_script ::\n                     (ScriptEditor :< cls, Object :< cls) => cls -> IO Script\nget_current_script cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor_get_current_script\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"get_current_script\" '[]\n           (IO Script)\n         where\n        nodeMethod = Godot.Tools.ScriptEditor.get_current_script\n\n{-# NOINLINE bindScriptEditor_get_drag_data_fw #-}\n\nbindScriptEditor_get_drag_data_fw :: MethodBind\nbindScriptEditor_get_drag_data_fw\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"get_drag_data_fw\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nget_drag_data_fw ::\n                   (ScriptEditor :< cls, Object :< cls) =>\n                   cls -> Vector2 -> Control -> IO GodotVariant\nget_drag_data_fw cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor_get_drag_data_fw\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"get_drag_data_fw\"\n           '[Vector2, Control]\n           (IO GodotVariant)\n         where\n        nodeMethod = Godot.Tools.ScriptEditor.get_drag_data_fw\n\n{-# NOINLINE bindScriptEditor_get_open_scripts #-}\n\n-- | Returns an array with all @Script@ objects which are currently open in editor.\nbindScriptEditor_get_open_scripts :: MethodBind\nbindScriptEditor_get_open_scripts\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"get_open_scripts\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Returns an array with all @Script@ objects which are currently open in editor.\nget_open_scripts ::\n                   (ScriptEditor :< cls, Object :< cls) => cls -> IO Array\nget_open_scripts cls\n  = withVariantArray []\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor_get_open_scripts\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"get_open_scripts\" '[] (IO Array)\n         where\n        nodeMethod = Godot.Tools.ScriptEditor.get_open_scripts\n\n{-# NOINLINE bindScriptEditor_goto_line #-}\n\n-- | Goes to the specified line in the current script.\nbindScriptEditor_goto_line :: MethodBind\nbindScriptEditor_goto_line\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"goto_line\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\n-- | Goes to the specified line in the current script.\ngoto_line ::\n            (ScriptEditor :< cls, Object :< cls) => cls -> Int -> IO ()\ngoto_line cls arg1\n  = withVariantArray [toVariant arg1]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor_goto_line (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"goto_line\" '[Int] (IO ()) where\n        nodeMethod = Godot.Tools.ScriptEditor.goto_line\n\n{-# NOINLINE bindScriptEditor_open_script_create_dialog #-}\n\nbindScriptEditor_open_script_create_dialog :: MethodBind\nbindScriptEditor_open_script_create_dialog\n  = unsafePerformIO $\n      withCString \"ScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"open_script_create_dialog\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nopen_script_create_dialog ::\n                            (ScriptEditor :< cls, Object :< cls) =>\n                            cls -> GodotString -> GodotString -> IO ()\nopen_script_create_dialog cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindScriptEditor_open_script_create_dialog\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod ScriptEditor \"open_script_create_dialog\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.ScriptEditor.open_script_create_dialog"
  },
  {
    "path": "src/Godot/Tools/VisualScriptEditor.hs",
    "content": "{-# LANGUAGE DerivingStrategies, GeneralizedNewtypeDeriving,\n  TypeFamilies, TypeOperators, FlexibleContexts, DataKinds,\n  MultiParamTypeClasses #-}\nmodule Godot.Tools.VisualScriptEditor\n       (Godot.Tools.VisualScriptEditor.sig_custom_nodes_updated,\n        Godot.Tools.VisualScriptEditor.add_custom_node,\n        Godot.Tools.VisualScriptEditor.remove_custom_node)\n       where\nimport Data.Coerce\nimport Foreign.C\nimport Godot.Internal.Dispatch\nimport qualified Data.Vector as V\nimport Linear(V2(..),V3(..),M22)\nimport Data.Colour(withOpacity)\nimport Data.Colour.SRGB(sRGB)\nimport System.IO.Unsafe\nimport Godot.Gdnative.Internal\nimport Godot.Api.Types\nimport Godot.Core.Object()\n\nsig_custom_nodes_updated ::\n                         Godot.Internal.Dispatch.Signal VisualScriptEditor\nsig_custom_nodes_updated\n  = Godot.Internal.Dispatch.Signal \"custom_nodes_updated\"\n\ninstance NodeSignal VisualScriptEditor \"custom_nodes_updated\" '[]\n\n{-# NOINLINE bindVisualScriptEditor_add_custom_node #-}\n\nbindVisualScriptEditor_add_custom_node :: MethodBind\nbindVisualScriptEditor_add_custom_node\n  = unsafePerformIO $\n      withCString \"_VisualScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"add_custom_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nadd_custom_node ::\n                  (VisualScriptEditor :< cls, Object :< cls) =>\n                  cls -> GodotString -> GodotString -> Script -> IO ()\nadd_custom_node cls arg1 arg2 arg3\n  = withVariantArray [toVariant arg1, toVariant arg2, toVariant arg3]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptEditor_add_custom_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptEditor \"add_custom_node\"\n           '[GodotString, GodotString, Script]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.VisualScriptEditor.add_custom_node\n\n{-# NOINLINE bindVisualScriptEditor_remove_custom_node #-}\n\nbindVisualScriptEditor_remove_custom_node :: MethodBind\nbindVisualScriptEditor_remove_custom_node\n  = unsafePerformIO $\n      withCString \"_VisualScriptEditor\" $\n        \\ clsNamePtr ->\n          withCString \"remove_custom_node\" $\n            \\ methodNamePtr ->\n              godot_method_bind_get_method clsNamePtr methodNamePtr\n\nremove_custom_node ::\n                     (VisualScriptEditor :< cls, Object :< cls) =>\n                     cls -> GodotString -> GodotString -> IO ()\nremove_custom_node cls arg1 arg2\n  = withVariantArray [toVariant arg1, toVariant arg2]\n      (\\ (arrPtr, len) ->\n         godot_method_bind_call bindVisualScriptEditor_remove_custom_node\n           (upcast cls)\n           arrPtr\n           len\n           >>= \\ (err, res) -> throwIfErr err >> fromGodotVariant res)\n\ninstance NodeMethod VisualScriptEditor \"remove_custom_node\"\n           '[GodotString, GodotString]\n           (IO ())\n         where\n        nodeMethod = Godot.Tools.VisualScriptEditor.remove_custom_node"
  },
  {
    "path": "src/Godot.hs",
    "content": "module Godot\n  ( module M\n  )\nwhere\n\nimport           Godot.Api                     as M hiding (NativeScript) -- Has all Godot classes\nimport           Godot.Nativescript            as M\nimport           Godot.Internal.Dispatch       as M\n                                                          ( (:<) -- For generic functions\n                                                          -- Required for creating Godot classes\n                                                          , HasBaseClass(..)\n                                                          -- Needed for up-casting objects\n                                                          , upcast\n                                                          -- \n                                                          , NodeMethod(..)\n                                                          , NodeSignal(..)\n                                                          , NodeProperty(..)\n                                                          )\n\n-- Better to export these now than to inevitably have the user dig through the\n-- whole library in search of them.\nimport           Godot.Gdnative.Internal.Gdnative\n                                               as M\n                                                          ( Object\n                                                          , Aabb\n                                                          , Array\n                                                          , Basis\n                                                          , GodotBool\n                                                          , CharString\n                                                          , CharType\n                                                          , Color\n                                                          , Dictionary\n                                                          , Error(..)\n                                                          , GodotInt\n                                                          , MethodBind\n                                                          , NodePath\n                                                          , Plane\n                                                          , PoolArrayReadAccess\n                                                          , PoolArrayWriteAccess\n                                                          , PoolByteArray\n                                                          , PoolColorArray\n                                                          , PoolIntArray\n                                                          , PoolRealArray\n                                                          , PoolStringArray\n                                                          , PoolVector2Array\n                                                          , PoolVector3Array\n                                                          , Quat\n                                                          , GodotReal\n                                                          , Rect2\n                                                          , Rid\n                                                          , GodotString\n                                                          , StringName\n                                                          , Transform\n                                                          , Transform2d\n                                                          , GodotVariant\n                                                          , VariantCallErrorError(..)\n                                                          , VariantOperator(..)\n                                                          , VariantType(..)\n                                                          , Vector2\n                                                          , Vector3\n                                                          , Vector3Axis(..)\n                                                          )\n\n\n-- These will always be needed when writing Godot class methods\nimport           Godot.Gdnative.Internal.Types          as M\n                                                          ( fromGodotVariant\n                                                          , fromLowLevel\n                                                          , toLowLevel\n                                                          , toVariant\n                                                          )\n\n-- These are needed in order to keep data between callbacks since we don't pass\n-- state back and forth between Haskell and Godot.\nimport           Control.Concurrent.MVar       as M\n\n-- We use Text as the Haskell equivalent of GodotString\nimport           Data.Text                     as M ( Text )\n"
  },
  {
    "path": "src-generate/Generate.hs",
    "content": "{-# LANGUAGE TemplateHaskell, OverloadedStrings, ViewPatterns, DeriveFunctor, TypeApplications #-}\nmodule Generate where\n\nimport Control.Lens\nimport Control.Monad\n\nimport Data.Coerce\nimport qualified Data.HashMap.Lazy as HM\nimport Data.Map (Map)\nimport qualified Data.Map as M\nimport Data.Monoid\n\nimport qualified Data.Vector as V\nimport qualified Data.Text as T\n\nimport Text.Casing\n\nimport Foreign\nimport Foreign.C\n\nimport Language.Haskell.TH\nimport Language.Haskell.TH.Syntax\n\nimport Text.PrettyPrint.ANSI.Leijen ((<+>))\nimport qualified Text.PrettyPrint.ANSI.Leijen as PP\n\nimport qualified Spec as S \n\nimport qualified Types as C\n\n-- a simple type corresponds to a 1:1 haskell type\n-- a c shim type can't be represented by the haskell FFI, so it needs to be shimmed\n-- an opaque type needs to be withForeignPtr'd (modulo newtype)\ndata TypeResult a\n  = SimpleType a\n  | EnumType a\n  | OpaqueType Bool a -- Bool == needs C shim\n  | StorableType Bool a\n  deriving (Show, Eq, Ord, Functor)\n\nisCShimType :: TypeResult a -> Bool\nisCShimType (OpaqueType b _) = b\nisCShimType (StorableType b _) = b\nisCShimType _ = False\n\nmakePrisms ''TypeResult\n\nunTypeResult :: TypeResult a -> a\nunTypeResult (SimpleType a) = a\nunTypeResult (EnumType a) = a\nunTypeResult (OpaqueType _ a) = a\nunTypeResult (StorableType _ a) = a\n\nfromThName :: Name -> Type\nfromThName = ConT\n\n-- from inline-c\nbaseTypesTable :: Map C.TypeSpecifier Type\nbaseTypesTable = M.fromList\n  [ (C.Void, TupleT 0)\n  -- Types from Foreign.C.Types in the order in which they are presented there,\n  -- along with its documentation's section headers.\n  -- Integral types\n  , (C.Char Nothing, fromThName ''CChar)\n  , (C.Char (Just C.Signed), fromThName ''CSChar)\n  , (C.Char (Just C.Unsigned), fromThName ''CUChar)\n  , (C.Short C.Signed, fromThName ''CShort)\n  , (C.Short C.Unsigned, fromThName ''CUShort)\n  , (C.Int C.Signed, fromThName ''CInt)\n  , (C.Int C.Unsigned, fromThName ''CUInt)\n  , (C.Long C.Signed, fromThName ''CLong)\n  , (C.Long C.Unsigned, fromThName ''CULong)\n  , (C.TypeName \"ptrdiff_t\", fromThName ''CPtrdiff)\n  , (C.TypeName \"size_t\", fromThName ''CSize)\n  , (C.TypeName \"wchar_t\", fromThName ''CWchar)\n  , (C.TypeName \"sig_atomic_t\", fromThName ''CSigAtomic)\n  , (C.LLong C.Signed, fromThName ''CLLong)\n  , (C.LLong C.Unsigned, fromThName ''CULLong)\n  , (C.TypeName \"intptr_t\", fromThName ''CIntPtr)\n  , (C.TypeName \"uintptr_t\", fromThName ''CUIntPtr)\n  , (C.TypeName \"intmax_t\", fromThName ''CIntMax)\n  , (C.TypeName \"uintmax_t\", fromThName ''CUIntMax)\n  -- Numeric types\n  , (C.TypeName \"clock_t\", fromThName ''CClock)\n  , (C.TypeName \"time_t\", fromThName ''CTime)\n  , (C.TypeName \"useconds_t\", fromThName ''CUSeconds)\n  , (C.TypeName \"suseconds_t\", fromThName ''CSUSeconds)\n  -- Floating types\n  , (C.Float, fromThName ''CFloat)\n  , (C.Double, fromThName ''CDouble)\n  -- Other types\n  , (C.TypeName \"FILE\", fromThName ''CFile)\n  , (C.TypeName \"fpos_t\", fromThName ''CFpos)\n  , (C.TypeName \"jmp_buf\", fromThName ''CJmpBuf)\n  -- Types from stdint.h that can be statically mapped to their Haskell\n  -- equivalents. Excludes int_fast*_t and int_least*_t and the corresponding\n  -- unsigned types, since their sizes are platform-specific.\n  , (C.TypeName \"int8_t\", fromThName ''Int8)\n  , (C.TypeName \"int16_t\", fromThName ''Int16)\n  , (C.TypeName \"int32_t\", fromThName ''Int32)\n  , (C.TypeName \"int64_t\", fromThName ''Int64)\n  , (C.TypeName \"uint8_t\", fromThName ''Word8)\n  , (C.TypeName \"uint16_t\", fromThName ''Word16)\n  , (C.TypeName \"uint32_t\", fromThName ''Word32)\n  , (C.TypeName \"uint64_t\", fromThName ''Word64)\n  , (C.TypeName \"godot_real\", fromThName ''CFloat)\n  , (C.TypeName \"godot_int\", fromThName ''CInt)\n  , (C.TypeName \"godot_bool\", fromThName ''CBool)\n  , (C.TypeName \"godot_class_constructor\", ConT $ mkName \"ClassConstructor\")\n  , (C.TypeName \"native_call_cb\", ConT $ mkName \"NativeCallCb\")\n  , (C.TypeName \"bool\", fromThName ''CInt)\n  ]\n\ngodotOpaqueStructs :: [C.Identifier]\ngodotOpaqueStructs =\n  [ \"godot_aabb\"\n  , \"godot_array\"\n  , \"godot_basis\"\n  , \"godot_char_string\"\n  , \"godot_color\"\n  , \"godot_dictionary\"\n  , \"godot_method_bind\"\n  , \"godot_node_path\"\n  , \"godot_plane\"\n  , \"godot_pool_array_read_access\"\n  , \"godot_pool_array_write_access\"\n  , \"godot_quat\"\n  , \"godot_rect2\"\n  , \"godot_rid\"\n  , \"godot_string\"\n  , \"godot_string_name\"\n  , \"godot_transform\"\n  , \"godot_transform2d\"\n  , \"godot_variant\"\n  , \"godot_vector2\"\n  , \"godot_vector3\"\n  ] ++ concatMap (\\(C.Identifier str) ->\n                    map (\\suf -> C.Identifier $ str ++ suf) [\"\", \"_read_access\", \"_write_access\"])\n  [  \"godot_pool_byte_array\"\n  , \"godot_pool_color_array\"\n  , \"godot_pool_int_array\"\n  , \"godot_pool_real_array\"\n  , \"godot_pool_string_array\"\n  , \"godot_pool_vector2_array\"\n  , \"godot_pool_vector3_array\"\n  ]\n\n-- structs, but not opaque structs\ngodotStructs :: [C.Identifier]\ngodotStructs =\n  [ \"godot_instance_create_func\"\n  , \"godot_instance_destroy_func\"\n  , \"godot_instance_method\"\n  , \"godot_method_attributes\"\n  , \"godot_property_get_func\"\n  , \"godot_property_set_func\"\n  , \"godot_property_attributes\"\n  , \"godot_signal\"\n  , \"godot_net_stream_peer\"\n  , \"godot_net_packet_peer\"\n  , \"godot_net_multiplayer_peer\"\n  , \"godot_videodecoder_interface_gdnative\"\n  , \"godot_arvr_interface_gdnative\"\n  , \"godot_variant_call_error\"\n  , \"godot_pluginscript_language_desc\"\n  , \"godot_method_arg\"\n  , \"godot_instance_binding_functions\"\n  , \"godot_net_webrtc_library\"\n  , \"godot_net_webrtc_peer_connection\"\n  , \"godot_net_webrtc_data_channel\"\n  ]\n  \ngodotEnums :: [C.Identifier]\ngodotEnums =\n  [ \"godot_error\"\n  , \"godot_variant_type\"\n  , \"godot_variant_call_error_error\"\n  , \"godot_vector3_axis\"\n  , \"godot_variant_operator\" ]\n\n\n-- pipeline:\n-- - shim function, converting a S.GdnativeApiEntry into a foreign decl name, foreign decl, and maybe a piece of C code + updated types\n-- - marshal it\n-- - call it\n\n\ncreateFuncTyIO :: (Functor t, Foldable t) => Type -> t Type -> Type\ncreateFuncTyIO ret args = foldr AppT (AppT (ConT ''IO) ret) $ fmap (AppT ArrowT) args\n\nshimFunction :: S.GdnativeApiEntry -> ( Name -- function name\n                                      , Name -- foreign decl name\n                                      , Dec -- foreign decl\n                                      , Maybe PP.Doc -- shim C code\n                                      , [(TypeResult Type, Bool)] -- foreign argument types + whether to malloc it\n                                      , TypeResult Type ) -- foreign return type \nshimFunction entry =\n  ( fname\n  , foreignName\n  , fdecl\n  , cShim\n  , newArgs\n  , newRetTy )\n\n  where\n    fname = mkName . T.unpack $ S.name entry\n    foreignName = mkName . T.unpack $ S.name entry `T.snoc` '_'\n\n    retTy = resolveType $ S.return_type entry\n    args = (resolveType.fst) <$> S.arguments entry\n    isMallocArg arg = T.isPrefixOf \"r_\" arg \n      || S.name entry == \"godot_variant_new_bool\" && arg == \"p_v\"\n      || S.name entry == \"godot_method_bind_call\" && arg == \"p_call_error\"\n    mallocFlags = V.toList $ (isMallocArg.snd) <$> S.arguments entry\n\n    -- now we need to transform the args post-shim:\n    -- we only need to shim opaque structs, so those are easy\n    -- for the return type we append the old return value with malloc=>True, and set return type ()\n\n    flaggedArgs = zip (V.toList args) mallocFlags\n    (newArgs, newRetTy) | shimRet = (flaggedArgs ++ [(retTy, True)], SimpleType (TupleT 0))\n                        | otherwise = (flaggedArgs, retTy)\n\n    foreignTypeResult (EnumType _) = ConT ''CInt\n    foreignTypeResult ty = unTypeResult ty\n    \n    foreignRetTy = foreignTypeResult newRetTy\n    foreignArgs = (foreignTypeResult.fst) <$> newArgs\n    \n    \n    cName = if needsCShim then \"hs_shim_\" ++ nameBase fname else \"dynamic\"\n    foreignType = createFuncTyIO foreignRetTy foreignArgs\n    --TODO make the FunPtr correctly typed?\n    fdecl = ForeignD $ ImportF CCall Safe cName foreignName $\n                     AppT (AppT ArrowT (AppT (ConT ''FunPtr) foreignType)) foreignType -- FunPtr ty -> ty\n\n    shimArgs = V.toList $ fmap isCShimType args\n    shimRet = isCShimType retTy\n    needsCShim = shimRet || or shimArgs\n    \n    -- construct the C shim. we're lazy here and just indicate whether we want to shim some argument or return type or not\n    -- no direct AST (todo?)\n    -- shimArgs = original function params length!!\n    cShim\n      | needsCShim = Just $ PP.vsep\n        [ newRetDecl <+> PP.text cName <+> PP.tupled newCArgs <+> \"{\" -- new declaration\n        , PP.indent 2 $ retWay <+> \"func\" <+> PP.tupled newInvokeParams <> \";\"\n        , \"}\"]\n      | otherwise = Nothing\n      where\n        nats = [0..] :: [Int]\n        oldRetTy = PP.pretty $ S.return_type entry\n        oldArgTys = map (PP.pretty . fst) $ V.toList $ S.arguments entry\n        \n        newRetDecl = if shimRet then \"void\" else oldRetTy\n        \n        funPtrDecl = oldRetTy <+> \"(*func)\" <> PP.tupled oldArgTys\n\n        shimTy needsShim ty = if needsShim then ty <> \"*\" else ty\n        \n        newCArgs = [funPtrDecl] ++ -- fun ptr is always first\n                  zipWith3 (\\idx needsShim ty -> shimTy needsShim ty <+> \"x\" <> PP.pretty idx)\n                  nats shimArgs oldArgTys ++\n                  [shimTy True oldRetTy <+> \"ret\" | shimRet] -- apppend ret shim if needed\n        \n\n        retWay = if shimRet then \"*ret =\" else \"return\"\n\n        shimParam needsShim = if needsShim then \"*\" else \"\"\n        newInvokeParams = zipWith (\\idx needsShim -> shimParam needsShim <> \"x\" <> PP.pretty idx) nats shimArgs\n\n-- this is the core C type -> Foreign mapping. we also encode the type of marshaller to use\nresolveType :: C.Type -> TypeResult Type\nresolveType (C.TypeSpecifier _ (lookupBase -> Just ty)) = SimpleType $ ty\nresolveType (C.TypeSpecifier _ (C.TypeName ident)) = con $ ConT $ fromCIdent ident\n  where\n    con | isOpaqueStruct ident = OpaqueType True . AppT (ConT ''Ptr) -- we need to shim this so types match\n        | isStruct ident = StorableType True . AppT (ConT ''Ptr)\n        | isEnumType ident = EnumType\n        | otherwise = error $ \"Unknown type \" ++ show ident\nresolveType (C.Ptr _ (C.TypeSpecifier _ (lookupBase -> Just ty)))\n  = SimpleType $ AppT (ConT ''Ptr) ty\nresolveType (C.Ptr _ (C.TypeSpecifier _ (C.TypeName \"godot_object\")))\n  = SimpleType $ ConT $ mkName \"Object\"\nresolveType (C.Ptr _ (C.TypeSpecifier _ (C.TypeName ident)))\n  = con  . AppT (ConT ''Ptr) . ConT $ fromCIdent ident\n  where\n    con | isOpaqueStruct ident = OpaqueType False \n        | isStruct ident = StorableType False\n        | isEnumType ident = EnumType \n        | otherwise = error $ \"Unknown type \" ++ show ident\nresolveType (C.Ptr _ ty) = SimpleType $ AppT (ConT ''Ptr) (unTypeResult $ resolveType ty)\nresolveType x = error $ \"Failed to resolve type \" ++ show x\n\nisStruct, isEnumType, isOpaqueStruct :: C.Identifier -> Bool\nisOpaqueStruct ident = ident `elem` godotOpaqueStructs\nisStruct ident = ident `elem` godotStructs\nisEnumType ident = ident `elem` godotEnums\n\nfromCIdent :: C.Identifier -> Name\nfromCIdent = mkName . pascal . (\\x -> case T.stripPrefix \"godot_\" (T.pack x) of\n                                       Just \"string\" -> \"GodotString\"\n                                       Just \"variant\" -> \"GodotVariant\"\n                                       Just y -> T.unpack y\n                                       Nothing -> x) . C.unIdentifier\n\nlookupBase :: C.TypeSpecifier -> Maybe Type\nlookupBase = flip M.lookup baseTypesTable\n\nunPtrT :: Type -> Type\nunPtrT (AppT (ConT ptr) ty) | ptr == ''Ptr = ty\nunPtrT _ = error \"Used unPtrT on a non-Ptr type\"\n\n-- tuple:\n-- - Either (Name -> Q Exp) (Q Exp) -- left => in marshaller needs argument, right => no argument (e.g. malloc)\n-- - Type => hs type\n-- - Name -> Q Exp => out marshaller\n-- an in argument needs an in marshaller\n-- an out argument needs both\n-- a return value needs an out marshaller\nmarshalArg :: (TypeResult Type, Bool)\n           -> Q ( Either (Name -> Q Exp) (Q Exp)\n                , Type\n                , Name -> Q Exp )\nmarshalArg (SimpleType ty, isOutPtr)\n  | isOutPtr = pure ( Right [|alloca|]\n                    , unPtrT ty\n                    , \\n -> [|peek $(varE n)|])\n  | otherwise = pure ( Left (\\n -> [| ($ $(varE n)) |])\n                       -- this syntax sucks a bit, but it's basically a ($ n) section\n                     , ty\n                     , \\n -> [|return $(varE n)|] )\nmarshalArg (EnumType ty, isOutPtr)\n  | isOutPtr = pure ( Right [|alloca|]\n                    , unPtrT ty\n                    , \\n -> [|fmap (toEnum . fromIntegral) (peek $(varE n))|] )\n  | otherwise = pure ( Left (\\n -> [|($ fromIntegral (fromEnum $(varE n)))|])\n                     , ty\n                     , \\n -> [|return . toEnum $ fromIntegral $(varE n)|] )\n\n\n--TODO: rewrite this to use mallocForeignPtrBytes.\nmarshalArg (OpaqueType _ ty, isOutPtr)\n  | isOutPtr = pure ( Right [| (mallocBytes (opaqueSizeOf @($(pure $ unPtrT ty))) >>=) |]\n              , unPtrT ty\n              , \\n -> [|coerce <$> newForeignPtr finalizerFree $(varE n)|] )\n   | otherwise = pure ( Left (\\n -> [| withForeignPtr (coerce $(varE n)) |])\n                , unPtrT ty\n                , \\n -> [|coerce <$> newForeignPtr_ $(varE n)|] )\n\nmarshalArg (StorableType _ ty, isOutPtr)\n  | isOutPtr = pure ( Right [|alloca|]\n                    , unPtrT ty\n                    , \\n -> [|peek $(varE n)|] )\n  | otherwise = pure ( Left (\\n -> [| with $(varE n) |] )\n                     , unPtrT ty\n                     , \\n -> [|peek $(varE n)|] ) -- not sure about this\n      \n\nmarshalRet :: TypeResult Type -> Q ( Type -- hs ret ty\n                                   , Maybe (Name -> Q Exp) ) -- out marshaller\nmarshalRet (OpaqueType True _) = error \"can't marshal unshimmed opaque structs\"\nmarshalRet (StorableType True _) = error \"can't marshal unshimmed structs\"\nmarshalRet r = marshalArg (r, False) >>=\n  \\(_, hty, outm) -> case hty of\n    TupleT 0 -> pure (hty, Nothing)\n    _ -> pure (hty, Just outm)\n\n\n-- constructs the haskell and C functions out of the API name, index and entry\n-- I was considering doing C via AST, but just going to use PP.Doc.\nconstructFunction :: Bool -> Name -> Int -> S.GdnativeApiEntry -> Q ([Dec], Maybe PP.Doc)\nconstructFunction isCore tyname idx entry = do\n  marshalledArgs <- mapM marshalArg foreignArgs\n  let (hsOuts, hsArgs) = partitionArgs marshalledArgs\n  (retMarshalTy, retOutMarshal) <- marshalRet foreignRetTy\n\n  let hsRets = case retMarshalTy of\n        TupleT 0 -> hsOuts ^.. folded._2\n        _ -> retMarshalTy : (hsOuts ^.. folded._2)\n\n  let foldedRetTy = case hsRets of\n        [hsRet] -> hsRet\n        _ -> foldl AppT (TupleT (length hsRets)) hsRets\n\n  let hsTy = createFuncTyIO foldedRetTy (hsArgs ^.. folded._2)\n\n  sig <- sigD fname (pure hsTy) -- the top-level sig\n\n  (argInMarshallers, argNames, argOutMarshallers) <- getMarshallers marshalledArgs\n\n  nApi <- newName \"api\"\n  nPtr <- newName \"ptr\"\n\n  -- peekElemOff api idx\n  let tyApiName = mkName . camel $ nameBase tyname\n  let apiE = LetE [ValD (ConP tyname [VarP nApi]) (NormalB $ VarE tyApiName) []] (VarE nApi)\n  let peekE = pure $ foldl AppE (VarE 'peekByteOff) [apiE, LitE (IntegerL $ fromIntegral $ sizeOf (undefined :: FunPtr a) * idx + structOffset)]\n\n  let invokeE = appE (varE foreignName) (varE nPtr)\n\n  let callE = generateCall invokeE argInMarshallers argOutMarshallers retOutMarshal\n  fundecl <- funD fname [clause (map varP argNames)\n                          (normalB $ infixE (Just peekE) (varE '(>>=)) (Just $ lamE [varP nPtr] callE)) []]\n  \n  \n  return ([fdecl, sig, fundecl], cShim)\n  -- marshalling\n  where\n    (fname, foreignName, fdecl, cShim, foreignArgs, foreignRetTy) = shimFunction entry\n\n    partitionArgs [] = ([],[])\n    partitionArgs ((inm, ty, outf) : margs)\n      = let (os, as) = partitionArgs margs\n        in case inm of\n             Left argf -> (os, (argf, ty, outf) : as)\n             Right argm -> ((argm, ty, outf) : os, as)\n\n    getMarshallers [] = return ([],[],[])\n    getMarshallers ((inm, _, outm):xs) = do\n      (argInMs, argNs, argOutMs) <- getMarshallers xs\n      case inm of\n        Left argf -> newName \"x\" >>= \\n -> return ((argf n, False) : argInMs, n : argNs, argOutMs)\n        Right argm -> return ( (argm, True) : argInMs, argNs, outm : argOutMs)\n\n    -- TODO: evaluate these properly\n    -- HACK: 64-bit linux only\n    structOffset = if isCore\n      then 40 -- offsetof(godot_gdnative_core_api_struct,godot_color_new_rgba)\n      else 24 -- \n      \n\n    \n-- an in marshaller has form (a -> IO b) -> IO b\ngenerateCall :: Q Exp -- ^ the foreign function to call\n             -> [(Q Exp, Bool)] -- ^ in marshallers (len = arguments)\n             -> [Name -> Q Exp] -- ^ out argument marshallers (len = #outputs)\n             -> Maybe (Name -> Q Exp) -- ^ return value marshaller, if non-void\n             -> Q Exp -- ^ the full callee\ngenerateCall = go []\n  where\n    go ns func [] outm maybeRetm = do\n      case maybeRetm of\n        -- duplication, bleh\n        Just retm -> do\n          r <- newName \"r\" -- return value\n          let bindCall = [ bindS (varP r) func ] -- bind the result of the call to a name\n          \n          os <- replicateM (length outm + 1) (newName \"o\")\n          let bindOuts = zipWith (\\o f -> bindS (varP o) f) os $ zipWith ($) (retm:outm) (r:ns)\n          let retOuts = [noBindS $ appE [|return|] $ maybeTupE (map varE os)]\n          doE $ bindCall ++ bindOuts ++ retOuts\n        Nothing -> do\n          let bindCall = [ noBindS func ]\n          os <- replicateM (length outm) (newName \"o\")\n          let bindOuts = zipWith (\\o f -> bindS (varP o) f) os $ zipWith ($) outm ns\n          let retOuts = [noBindS $ appE [|return|] $ maybeTupE (map varE os)]\n          doE $ bindCall ++ bindOuts ++ retOuts\n\n    go ns func ((inm, isOutArg):inms) outm maybeRetm = do\n      y <- newName \"y\"\n      appE inm . lamE [varP y] $ go (ns ++ [y | isOutArg]) (appE func (varE y)) inms outm maybeRetm\n\n    maybeTupE [x] = x\n    maybeTupE xs = tupE xs\n\napisToHs :: S.GdnativeApis -> Q [Dec]\napisToHs apis = do\n  coreDecs <- apiToHs True (S.core apis)\n  extDecs <- concat <$> mapM (apiToHs False) (V.filter (\\api -> S.apiType api `notElem` excluded) $ S.extensions apis)\n  return $ coreDecs ++ extDecs\n  where\n    excluded = [\"ANDROID\"]\n\n-- bool: is core -> True\napiToHs :: Bool -> S.GdnativeApi -> Q [Dec]\napiToHs isCore api = do\n  nxts <- case S.apiNext api of\n    Just next -> apiToHs isCore next\n    Nothing -> return []\n  (++ nxts) <$> generateApiType\n  where\n    -- generate the\n    -- newtype: newtype Api = Api (Ptr Api)\n    -- functions:\n    -- - simple function: func :: Api -> Blah -> IO Boop, func (Api ptr) blah boop = peekByteOff ptr 0 >>= \\fptr -> createFunc fptr blah boop\n    -- - c shim function: * return value: create C function with extra argument that writes result to it\n    --                    * argument: create C function that dereferences it\n    generateApiType = let apiName = mkApiName\n                          apiEntries = S.apiApi api\n                      in generateFunctions apiName apiEntries\n    maybeExt = if isCore then \"\" else \"Ext\"\n    showVer = let ver = S.apiVersion api in show (S.major ver) ++ show (S.minor ver)\n    maybeVer =\n      if S.apiVersion api == S.Ver 1 0\n         || S.apiType api == \"ARVR\"\n         || S.apiType api == \"VIDEODECODER\"\n         || S.apiType api == \"NET\"\n      then \"\" else showVer\n    mkApiName = mkName $ \"Gdnative\" ++ maybeExt ++ pascal (T.unpack $ S.apiType api) ++ maybeVer ++ \"ApiStruct\"\n\n    generateFunctions name entries = do\n      funcs <- imapM (constructFunction isCore name) entries\n      let hscode = concat $ funcs ^.. folded._1\n      let ccode = PP.vsep $ funcs ^.. folded._2._Just\n      addForeignSource LangC . show $ PP.vsep\n        [ \"#include <gdnative_api_struct.gen.h>\"\n        , ccode ]\n      return hscode\n      \n      \n\n"
  },
  {
    "path": "src-generate/Spec.hs",
    "content": "{-# LANGUAGE TemplateHaskell #-}\n{-# OPTIONS_GHC -Wno-orphans #-}\nmodule Spec where\n\nimport Data.Aeson\nimport Data.Aeson.TH\nimport Data.Char\nimport Data.Monoid\nimport Data.Text (Text)\nimport Data.Vector (Vector)\nimport qualified Data.Vector as V\nimport Data.HashMap.Strict (HashMap)\nimport qualified Data.HashMap.Strict as HM\nimport Data.Set (Set)\nimport qualified Data.Set as S\n\nimport Types\n\n-- this is incredibly ad hoc.\ninstance FromJSON Type where\n  parseJSON = withText \"C type\" $ \\str ->\n    case runCParser (const True) \"\" str parseType of\n      Left err -> fail $ show err\n      Right val -> return val\n\ndata GdnativeApis = GdnativeApis\n  { core :: !GdnativeApi\n  , extensions :: !(Vector GdnativeApi)\n  } deriving (Show, Eq)\n\ndata Ver = Ver { major :: !Int, minor :: !Int}\n  deriving (Show, Eq)\n\ndata GdnativeApi = GdnativeApi\n  { apiType :: !Text\n  , apiVersion :: !Ver\n  , apiNext :: !(Maybe GdnativeApi)\n  , apiApi :: !(Vector GdnativeApiEntry)\n  } deriving (Show, Eq)\n\ndata GdnativeApiEntry = GdnativeApiEntry\n  { name :: !Text\n  , return_type :: !Type\n  , arguments :: !(Vector (Type, Text))\n  } deriving (Show, Eq)\n\nderiveFromJSON defaultOptions ''Ver\nderiveFromJSON defaultOptions ''GdnativeApiEntry\nderiveFromJSON defaultOptions { fieldLabelModifier = map toLower . drop 3 } ''GdnativeApi\nderiveFromJSON defaultOptions ''GdnativeApis\n\n\ncollectTypes :: GdnativeApis -> Set Type\ncollectTypes apis = collectFromApi (core apis) <> mconcat (V.toList $ fmap collectFromApi $ extensions apis)\n  where\n    collectFromApi api = mconcat $ V.toList $ fmap collectFromEntry (apiApi api)\n    collectFromEntry entry = S.singleton (return_type entry) <> (S.fromList $ V.toList $ fmap fst $ arguments entry)\n\ncollectNames :: GdnativeApis -> Set Text\ncollectNames apis = collectFromApi (core apis) <> mconcat (V.toList $ fmap collectFromApi $ extensions apis)\n  where\n    collectFromApi api = mconcat $ V.toList $ fmap collectFromEntry (apiApi api)\n    collectFromEntry entry = S.fromList $ V.toList $ fmap snd $ arguments entry\n"
  },
  {
    "path": "src-generate/Types/Internal.hs",
    "content": "{-# LANGUAGE ConstraintKinds #-}\n{-# LANGUAGE DeriveDataTypeable #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE RankNTypes #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n\n-- | A parser for C99 declarations. Currently, the parser has the following limitations:\n--\n-- * Array sizes can only be @*@, @n@ (where n is a positive integer), @x@\n-- (where @x@ is a C identifier). In C99 they can be arbitrary expressions. See\n-- the @'ArrayType'@ data type.\n--\n-- * @_Bool@, @_Complex@, and @_Imaginary@ are not present.\n--\n-- * Untyped parameter lists (pre-K&R C) are not allowed.\n--\n-- The parser is incremental and generic (see 'CParser').  'PP.Pretty'\n-- and 'QC.Arbitrary' instances are provided for all the data types.\n--\n-- The entry point if you want to parse C declarations is\n-- @'parameter_declaration'@.\n\nmodule Types.Internal\n  ( -- * Parser type\n    CParser\n  , IsTypeName\n  , runCParser\n  , quickCParser\n  , quickCParser_\n\n    -- * Types and parsing\n  , Identifier(..)\n  , identifier\n  , identifier_no_lex\n  , DeclarationSpecifier(..)\n  , declaration_specifiers\n  , StorageClassSpecifier(..)\n  , storage_class_specifier\n  , TypeSpecifier(..)\n  , type_specifier\n  , TypeQualifier(..)\n  , type_qualifier\n  , FunctionSpecifier(..)\n  , function_specifier\n  , Declarator(..)\n  , declarator\n  , DirectDeclarator(..)\n  , direct_declarator\n  , ArrayOrProto(..)\n  , array_or_proto\n  , ArrayType(..)\n  , array_type\n  , Pointer(..)\n  , pointer\n  , ParameterDeclaration(..)\n  , parameter_declaration\n  , parameter_list\n  , AbstractDeclarator(..)\n  , abstract_declarator\n  , DirectAbstractDeclarator(..)\n  , direct_abstract_declarator\n\n    -- * YACC grammar\n    -- $yacc\n  )\nwhere\n\nimport           Control.Applicative\nimport           Control.Monad                            ( msum\n                                                          , void\n                                                          , MonadPlus\n                                                          , unless\n                                                          , when\n                                                          )\nimport           Control.Monad.Reader                     ( MonadReader\n                                                          , ask\n                                                          , runReaderT\n                                                          , ReaderT\n                                                          )\nimport           Control.Monad.Fail                       ( MonadFail )\nimport           Data.Functor.Identity                    ( Identity )\nimport qualified Data.HashSet                  as HashSet\nimport           Data.Monoid                              ( (<>) )\nimport           Data.String                              ( IsString(..) )\nimport           Data.Typeable                            ( Typeable )\nimport qualified Text.Parsec                   as Parsec\nimport           Text.Parser.Char\nimport           Text.Parser.Combinators\nimport           Text.Parser.LookAhead\nimport           Text.Parser.Token\nimport qualified Text.Parser.Token.Highlight   as Highlight\nimport           Text.PrettyPrint.ANSI.Leijen             ( Pretty(..)\n                                                          , (<+>)\n                                                          , Doc\n                                                          , hsep\n                                                          )\nimport qualified Text.PrettyPrint.ANSI.Leijen  as PP\n\n------------------------------------------------------------------------\n-- Parser\n\n-- | Function used to determine whether an 'C.Id' is a type name.\ntype IsTypeName = Identifier -> Bool\n\n-- | All the parsing is done using the type classes provided by the\n-- @parsers@ package. You can use the parsing routines with any of the parsers\n-- that implement the classes, such as @parsec@ or @trifecta@.\n--\n-- The 'MonadReader' with 'IsTypeName' is required for parsing C, see\n-- <http://en.wikipedia.org/wiki/The_lexer_hack>.\ntype CParser m\n  = ( Monad m\n    , Functor m\n    , Applicative m\n    , MonadPlus m\n    , Parsing m\n    , CharParsing m\n    , TokenParsing m\n    , LookAheadParsing m\n    , MonadReader IsTypeName m\n    , MonadFail m\n    )\n\n-- | Runs a @'CParser'@ using @parsec@.\nrunCParser\n  :: Parsec.Stream s Identity Char\n  => IsTypeName\n  -- ^ Function determining if an identifier is a type name.\n  -> String\n  -- ^ Source name.\n  -> s\n  -- ^ String to parse.\n  -> (ReaderT IsTypeName (Parsec.Parsec s ()) a)\n  -- ^ Parser.  Anything with type @forall m. CParser m => m a@ is a\n  -- valid argument.\n  -> Either Parsec.ParseError a\nrunCParser isTypeName fn s p = Parsec.parse (runReaderT p isTypeName) fn s\n\n-- | Useful for quick testing.  Uses @\\\"quickCParser\\\"@ as source name, and throws\n-- an 'error' if parsing fails.\nquickCParser\n  :: IsTypeName\n  -- ^ Function determining if an identifier is a type name.\n  -> String\n  -- ^ String to parse.\n  -> (ReaderT IsTypeName (Parsec.Parsec String ()) a)\n  -- ^ Parser.  Anything with type @forall m. CParser m => m a@ is a\n  -- valid argument.\n  -> a\nquickCParser isTypeName s p = case runCParser isTypeName \"quickCParser\" s p of\n  Left  err -> error $ \"quickCParser: \" ++ show err\n  Right x   -> x\n\n-- | Like 'quickCParser', but uses @'const' 'False'@ as 'IsTypeName'.\nquickCParser_\n  :: String\n  -- ^ String to parse.\n  -> (ReaderT IsTypeName (Parsec.Parsec String ()) a)\n  -- ^ Parser.  Anything with type @forall m. CParser m => m a@ is a\n  -- valid argument.\n  -> a\nquickCParser_ = quickCParser (const False)\n\nnewtype Identifier = Identifier {unIdentifier :: String}\n  deriving (Typeable, Eq, Ord, Show)\n\ninstance IsString Identifier where\n  fromString s =\n    case runCParser (const False) \"fromString\" s (identifier_no_lex <* eof) of\n      Left  _err -> error $ \"Identifier fromString: invalid string \" ++ show s\n      Right x    -> x\n\nidentLetter :: CParser m => m Char\nidentLetter = oneOf $ ['a' .. 'z'] ++ ['A' .. 'Z'] ++ ['_']\n\nreservedWords :: HashSet.HashSet String\nreservedWords = HashSet.fromList\n  [ \"auto\"\n  , \"else\"\n  , \"long\"\n  , \"switch\"\n  , \"break\"\n  , \"enum\"\n  , \"register\"\n  , \"typedef\"\n  , \"case\"\n  , \"extern\"\n  , \"return\"\n  , \"union\"\n  , \"char\"\n  , \"float\"\n  , \"short\"\n  , \"unsigned\"\n  , \"const\"\n  , \"for\"\n  , \"signed\"\n  , \"void\"\n  , \"continue\"\n  , \"goto\"\n  , \"sizeof\"\n  , \"volatile\"\n  , \"default\"\n  , \"if\"\n  , \"static\"\n  , \"while\"\n  , \"do\"\n  , \"int\"\n  , \"struct\"\n  , \"double\"\n  ]\n\nidentStyle :: CParser m => IdentifierStyle m\nidentStyle = IdentifierStyle\n  { _styleName              = \"C identifier\"\n  , _styleStart             = identLetter\n  , _styleLetter            = identLetter <|> digit\n  , _styleReserved          = reservedWords\n  , _styleHighlight         = Highlight.Identifier\n  , _styleReservedHighlight = Highlight.ReservedIdentifier\n  }\n\ndata DeclarationSpecifier\n  = StorageClassSpecifier StorageClassSpecifier\n  | TypeSpecifier TypeSpecifier\n  | TypeQualifier TypeQualifier\n  | FunctionSpecifier FunctionSpecifier\n  deriving (Typeable, Eq, Show, Ord)\n\ndeclaration_specifiers :: forall m . CParser m => m [DeclarationSpecifier]\ndeclaration_specifiers = many1 $ msum\n  [ StorageClassSpecifier <$> storage_class_specifier\n  , TypeSpecifier <$> type_specifier\n  , TypeQualifier <$> type_qualifier\n  , FunctionSpecifier <$> function_specifier\n  ]\n\ndata StorageClassSpecifier\n  = TYPEDEF\n  | EXTERN\n  | STATIC\n  | AUTO\n  | REGISTER\n  deriving (Typeable, Eq, Show, Ord)\n\nstorage_class_specifier :: CParser m => m StorageClassSpecifier\nstorage_class_specifier = msum\n  [ TYPEDEF <$ reserve identStyle \"typedef\"\n  , EXTERN <$ reserve identStyle \"extern\"\n  , STATIC <$ reserve identStyle \"static\"\n  , AUTO <$ reserve identStyle \"auto\"\n  , REGISTER <$ reserve identStyle \"register\"\n  ]\n\ndata TypeSpecifier\n  = VOID\n  | CHAR\n  | SHORT\n  | INT\n  | LONG\n  | FLOAT\n  | DOUBLE\n  | SIGNED\n  | UNSIGNED\n  | Struct Identifier\n  | Enum Identifier\n  | TypeName Identifier\n  deriving (Typeable, Eq, Show, Ord)\n\ntype_specifier :: CParser m => m TypeSpecifier\ntype_specifier = msum\n  [ VOID <$ reserve identStyle \"void\"\n  , CHAR <$ reserve identStyle \"char\"\n  , SHORT <$ reserve identStyle \"short\"\n  , INT <$ reserve identStyle \"int\"\n  , LONG <$ reserve identStyle \"long\"\n  , FLOAT <$ reserve identStyle \"float\"\n  , DOUBLE <$ reserve identStyle \"double\"\n  , SIGNED <$ reserve identStyle \"signed\"\n  , UNSIGNED <$ reserve identStyle \"unsigned\"\n  , Struct <$> (reserve identStyle \"struct\" >> identifier)\n  , Enum <$> (reserve identStyle \"enum\" >> identifier)\n  , TypeName <$> type_name\n  ]\n\nidentifier :: CParser m => m Identifier\nidentifier =\n  try\n      (do\n        s          <- ident identStyle\n        isTypeName <- ask\n        when (isTypeName s) $ fail \"expecting identifier, got type name\"\n        return s\n      )\n    <?> \"identifier\"\n\ntype_name :: CParser m => m Identifier\ntype_name =\n  try\n      (do\n        s          <- ident identStyle\n        isTypeName <- ask\n        unless (isTypeName s) $ fail \"expecting type name, got identifier\"\n        return s\n      )\n    <?> \"type name\"\n\ndata TypeQualifier\n  = CONST\n  | RESTRICT\n  | VOLATILE\n  deriving (Typeable, Eq, Show, Ord)\n\ntype_qualifier :: CParser m => m TypeQualifier\ntype_qualifier = msum\n  [ CONST <$ reserve identStyle \"const\"\n  , RESTRICT <$ reserve identStyle \"restrict\"\n  , VOLATILE <$ reserve identStyle \"volatile\"\n  ]\n\ndata FunctionSpecifier\n  = INLINE\n  deriving (Typeable, Eq, Show, Ord)\n\nfunction_specifier :: CParser m => m FunctionSpecifier\nfunction_specifier = msum [INLINE <$ reserve identStyle \"inline\"]\n\ndata Declarator = Declarator\n  { declaratorPointers :: [Pointer]\n  , declaratorDirect :: DirectDeclarator\n  } deriving (Typeable, Eq, Show, Ord)\n\ndeclarator :: CParser m => m Declarator\ndeclarator =\n  (Declarator <$> many pointer <*> direct_declarator) <?> \"declarator\"\n\ndata DirectDeclarator\n  = DeclaratorRoot Identifier\n  | ArrayOrProto DirectDeclarator ArrayOrProto\n  | DeclaratorParens Declarator\n  deriving (Typeable, Eq, Show, Ord)\n\ndata ArrayOrProto\n  = Array ArrayType\n  | Proto [ParameterDeclaration] -- We don't include old prototypes.\n  deriving (Typeable, Eq, Show, Ord)\n\narray_or_proto :: CParser m => m ArrayOrProto\narray_or_proto =\n  msum [Array <$> brackets array_type, Proto <$> parens parameter_list]\n\n-- TODO handle more stuff in array brackets\ndata ArrayType\n  = VariablySized\n  | Unsized\n  | SizedByInteger Integer\n  | SizedByIdentifier Identifier\n  deriving (Typeable, Eq, Show, Ord)\n\narray_type :: CParser m => m ArrayType\narray_type = msum\n  [ VariablySized <$ symbolic '*'\n  , SizedByInteger <$> natural\n  , SizedByIdentifier <$> identifier\n  , return Unsized\n  ]\n\ndirect_declarator :: CParser m => m DirectDeclarator\ndirect_declarator =\n  (do\n    ddecltor <- msum\n      [DeclaratorRoot <$> identifier, DeclaratorParens <$> parens declarator]\n    aops <- many array_or_proto\n    return $ foldl ArrayOrProto ddecltor aops\n  )\n\ndata Pointer\n  = Pointer [TypeQualifier]\n  deriving (Typeable, Eq, Show, Ord)\n\npointer :: CParser m => m Pointer\npointer = do\n  void $ symbolic '*'\n  Pointer <$> many type_qualifier\n\nparameter_list :: CParser m => m [ParameterDeclaration]\nparameter_list = sepBy parameter_declaration $ symbolic ','\n\ndata ParameterDeclaration = ParameterDeclaration\n  { parameterDeclarationSpecifiers :: [DeclarationSpecifier]\n  , parameterDeclarationDeclarator :: Either Declarator AbstractDeclarator\n  } deriving (Typeable, Eq, Show, Ord)\n\nparameter_declaration :: CParser m => m ParameterDeclaration\nparameter_declaration =\n  ParameterDeclaration <$> declaration_specifiers <*> mbabstract\n where\n  mbabstract =\n    Left <$> try declarator <|> Right <$> try abstract_declarator <|> return\n      (Right (AbstractDeclarator [] Nothing))\n\ndata AbstractDeclarator = AbstractDeclarator\n  { abstractDeclaratorPointers :: [Pointer]\n  , abstractDeclaratorDirect :: Maybe DirectAbstractDeclarator\n  } deriving (Typeable, Eq, Show, Ord)\n\nabstract_declarator :: CParser m => m AbstractDeclarator\nabstract_declarator = do\n  ptrs <- many pointer\n  -- If there are no pointers, there must be an abstract declarator.\n  let p = if null ptrs\n        then Just <$> direct_abstract_declarator\n        else (Just <$> try direct_abstract_declarator) <|> return Nothing\n  AbstractDeclarator ptrs <$> p\n\ndata DirectAbstractDeclarator\n  = ArrayOrProtoHere ArrayOrProto\n  | ArrayOrProtoThere DirectAbstractDeclarator ArrayOrProto\n  | AbstractDeclaratorParens AbstractDeclarator\n  deriving (Typeable, Eq, Show, Ord)\n\ndirect_abstract_declarator :: CParser m => m DirectAbstractDeclarator\ndirect_abstract_declarator =\n  (do\n    ddecltor <-\n      msum\n          [ try (ArrayOrProtoHere <$> array_or_proto)\n          , AbstractDeclaratorParens <$> parens abstract_declarator\n          ]\n        <?> \"array, prototype, or parenthesised abstract declarator\"\n    aops <- many array_or_proto\n    return $ foldl ArrayOrProtoThere ddecltor aops\n  )\n\n-- | This parser parses an 'Id' and nothing else -- it does not consume\n-- trailing spaces and the like.\nidentifier_no_lex :: CParser m => m Identifier\nidentifier_no_lex =\n  try\n      (do\n        s <-\n          Identifier <$> ((:) <$> identLetter <*> many (identLetter <|> digit))\n        isTypeName <- ask\n        when (isTypeName s) $ fail \"expecting identifier, got type name\"\n        return s\n      )\n    <?> \"identifier\"\n\n------------------------------------------------------------------------\n-- Pretty printing\n\ninstance Pretty Identifier where\n  pretty = PP.text . unIdentifier\n\ninstance Pretty DeclarationSpecifier where\n  pretty dspec = case dspec of\n    StorageClassSpecifier x -> pretty x\n    TypeSpecifier         x -> pretty x\n    TypeQualifier         x -> pretty x\n    FunctionSpecifier     x -> pretty x\n\ninstance Pretty StorageClassSpecifier where\n  pretty storage = case storage of\n    TYPEDEF  -> \"typedef\"\n    EXTERN   -> \"extern\"\n    STATIC   -> \"static\"\n    AUTO     -> \"auto\"\n    REGISTER -> \"register\"\n\ninstance Pretty TypeSpecifier where\n  pretty tySpec = case tySpec of\n    VOID       -> \"void\"\n    CHAR       -> \"char\"\n    SHORT      -> \"short\"\n    INT        -> \"int\"\n    LONG       -> \"long\"\n    FLOAT      -> \"float\"\n    DOUBLE     -> \"double\"\n    SIGNED     -> \"signed\"\n    UNSIGNED   -> \"unsigned\"\n    Struct   x -> \"struct\" <+> pretty x\n    Enum     x -> \"enum\" <+> pretty x\n    TypeName x -> pretty x\n\ninstance Pretty TypeQualifier where\n  pretty tyQual = case tyQual of\n    CONST    -> \"const\"\n    RESTRICT -> \"restrict\"\n    VOLATILE -> \"volatile\"\n\ninstance Pretty FunctionSpecifier where\n  pretty funSpec = case funSpec of\n    INLINE -> \"inline\"\n\ninstance Pretty Declarator where\n  pretty (Declarator ptrs ddecltor) = case ptrs of\n    []    -> pretty ddecltor\n    _ : _ -> prettyPointers ptrs <+> pretty ddecltor\n\nprettyPointers :: [Pointer] -> Doc\nprettyPointers []       = \"\"\nprettyPointers (x : xs) = pretty x <> prettyPointers xs\n\ninstance Pretty Pointer where\n  pretty (Pointer tyQual) = \"*\" <> hsep (map pretty tyQual)\n\ninstance Pretty DirectDeclarator where\n  pretty decltor = case decltor of\n    DeclaratorRoot   x         -> pretty x\n    DeclaratorParens x         -> \"(\" <> pretty x <> \")\"\n    ArrayOrProto ddecltor aorp -> pretty ddecltor <> pretty aorp\n\ninstance Pretty ArrayOrProto where\n  pretty aorp = case aorp of\n    Array x -> \"[\" <> pretty x <> \"]\"\n    Proto x -> \"(\" <> prettyParams x <> \")\"\n\nprettyParams :: (Pretty a) => [a] -> Doc\nprettyParams xs = case xs of\n  []              -> \"\"\n  [ x ]           -> pretty x\n  x : xs'@(_ : _) -> pretty x <> \",\" <+> prettyParams xs'\n\ninstance Pretty ArrayType where\n  pretty at = case at of\n    VariablySized       -> \"*\"\n    SizedByInteger    n -> pretty n\n    SizedByIdentifier s -> pretty s\n    Unsized             -> \"\"\n\ninstance Pretty ParameterDeclaration where\n  pretty (ParameterDeclaration declSpecs decltor) = case declSpecs of\n    []    -> decltorDoc\n    _ : _ -> hsep (map pretty declSpecs) <+> decltorDoc\n   where\n    decltorDoc = case decltor of\n      Left  x -> pretty x\n      Right x -> pretty x\n\ninstance Pretty AbstractDeclarator where\n  pretty (AbstractDeclarator ptrs mbDecltor) = case (ptrs, mbDecltor) of\n    (_    , Nothing) -> prettyPointers ptrs\n    ([]   , Just x ) -> pretty x\n    (_ : _, Just x ) -> prettyPointers ptrs <+> pretty x\n\ninstance Pretty DirectAbstractDeclarator where\n  pretty ddecltor = case ddecltor of\n    AbstractDeclaratorParens x      -> \"(\" <> pretty x <> \")\"\n    ArrayOrProtoHere         aop    -> pretty aop\n    ArrayOrProtoThere ddecltor' aop -> pretty ddecltor' <> pretty aop\n\n------------------------------------------------------------------------\n\n------------------------------------------------------------------------\n-- Utils\n\nmany1 :: CParser m => m a -> m [a]\nmany1 p = (:) <$> p <*> many p\n\n------------------------------------------------------------------------\n-- YACC grammar\n\n-- $yacc\n--\n-- The parser above is derived from a modification of the YACC grammar\n-- for C99 found at <http://www.quut.com/c/ANSI-C-grammar-y-1999.html>,\n-- reproduced below.\n--\n-- @\n-- %token IDENTIFIER TYPE_NAME INTEGER\n--\n-- %token TYPEDEF EXTERN STATIC AUTO REGISTER INLINE RESTRICT\n-- %token CHAR SHORT INT LONG SIGNED UNSIGNED FLOAT DOUBLE CONST VOLATILE VOID\n-- %token BOOL COMPLEX IMAGINARY\n-- %token STRUCT UNION ENUM\n--\n-- %start parameter_list\n-- %%\n--\n-- declaration_specifiers\n-- \t: storage_class_specifier\n-- \t| storage_class_specifier declaration_specifiers\n-- \t| type_specifier\n-- \t| type_specifier declaration_specifiers\n-- \t| type_qualifier\n-- \t| type_qualifier declaration_specifiers\n-- \t| function_specifier\n-- \t| function_specifier declaration_specifiers\n-- \t;\n--\n-- storage_class_specifier\n-- \t: TYPEDEF\n-- \t| EXTERN\n-- \t| STATIC\n-- \t| AUTO\n-- \t| REGISTER\n-- \t;\n--\n-- type_specifier\n-- \t: VOID\n-- \t| CHAR\n-- \t| SHORT\n-- \t| INT\n-- \t| LONG\n-- \t| FLOAT\n-- \t| DOUBLE\n-- \t| SIGNED\n-- \t| UNSIGNED\n-- \t| BOOL\n-- \t| COMPLEX\n-- \t| IMAGINARY\n--  \t| STRUCT IDENTIFIER\n-- \t| UNION IDENTIFIER\n-- \t| ENUM IDENTIFIER\n-- \t| TYPE_NAME\n-- \t;\n--\n-- type_qualifier\n-- \t: CONST\n-- \t| RESTRICT\n-- \t| VOLATILE\n-- \t;\n--\n-- function_specifier\n-- \t: INLINE\n-- \t;\n--\n-- declarator\n-- \t: pointer direct_declarator\n-- \t| direct_declarator\n-- \t;\n--\n-- direct_declarator\n-- \t: IDENTIFIER\n-- \t| '(' declarator ')'\n-- \t| direct_declarator '[' type_qualifier_list ']'\n-- \t| direct_declarator '[' type_qualifier_list '*' ']'\n-- \t| direct_declarator '[' '*' ']'\n--  \t| direct_declarator '[' IDENTIFIER ']'\n-- \t| direct_declarator '[' INTEGER ']'\n-- \t| direct_declarator '[' ']'\n-- \t| direct_declarator '(' parameter_list ')'\n-- \t| direct_declarator '(' ')'\n-- \t;\n--\n-- pointer\n-- \t: '*'\n-- \t| '*' type_qualifier_list\n-- \t| '*' pointer\n-- \t| '*' type_qualifier_list pointer\n-- \t;\n--\n-- type_qualifier_list\n-- \t: type_qualifier\n-- \t| type_qualifier_list type_qualifier\n-- \t;\n--\n-- parameter_list\n-- \t: parameter_declaration\n-- \t| parameter_list ',' parameter_declaration\n-- \t;\n--\n-- parameter_declaration\n-- \t: declaration_specifiers declarator\n-- \t| declaration_specifiers abstract_declarator\n-- \t| declaration_specifiers\n-- \t;\n--\n-- abstract_declarator\n-- \t: pointer\n-- \t| direct_abstract_declarator\n-- \t| pointer direct_abstract_declarator\n-- \t;\n--\n-- direct_abstract_declarator\n-- \t: '(' abstract_declarator ')'\n-- \t| '[' ']'\n-- \t| direct_abstract_declarator '[' ']'\n-- \t| '[' '*' ']'\n-- \t| direct_abstract_declarator '[' '*' ']'\n-- \t| '[' IDENTIFIER ']'\n-- \t| direct_abstract_declarator '[' IDENTIFIER ']'\n-- \t| '[' INTEGER ']'\n-- \t| direct_abstract_declarator '[' INTEGER ']'\n-- \t| '(' ')'\n-- \t| '(' parameter_list ')'\n-- \t| direct_abstract_declarator '(' ')'\n-- \t| direct_abstract_declarator '(' parameter_list ')'\n-- \t;\n--\n-- %%\n-- #include \\<stdio.h\\>\n--\n-- extern char yytext[];\n-- extern int column;\n--\n-- void yyerror(char const *s)\n-- {\n-- \tfflush(stdout);\n-- \tprintf(\"\\n%*s\\n%*s\\n\", column, \"^\", column, s);\n-- }\n-- @\n"
  },
  {
    "path": "src-generate/Types.hs",
    "content": "{-# LANGUAGE ConstraintKinds #-}\n{-# LANGUAGE CPP #-}\n{-# LANGUAGE DeriveDataTypeable #-}\n{-# LANGUAGE DeriveFunctor #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE RecordWildCards #-}\n{-# LANGUAGE TupleSections #-}\n{-# LANGUAGE NoMonoLocalBinds #-}\n\n-- | Views of C datatypes. While \"Language.C.Types.Parse\" defines datatypes for\n-- representing the concrete syntax tree of C types, this module provides\n-- friendlier views of C types, by turning them into a data type matching more\n-- closely how we read and think about types, both in Haskell and in C. To\n-- appreciate the difference, look at the difference between\n-- 'P.ParameterDeclaration' and 'ParameterDeclaration'.\n--\n-- As a bonus, routines are provided for describing types in natural language\n-- (English) -- see 'describeParameterDeclaration' and 'describeType'.\n\nmodule Types\n  ( -- * Types\n    P.Identifier(..)\n  , P.StorageClassSpecifier(..)\n  , P.TypeQualifier(..)\n  , P.FunctionSpecifier(..)\n  , P.ArrayType(..)\n  , Specifiers(..)\n  , Type(..)\n  , TypeSpecifier(..)\n  , Sign(..)\n  , ParameterDeclaration(..)\n\n    -- * Parsing\n  , P.IsTypeName\n  , P.CParser\n  , P.runCParser\n  , P.quickCParser\n  , P.quickCParser_\n  , parseParameterDeclaration\n  , parseParameterList\n  , parseIdentifier\n  , parseType\n\n    -- * Convert to and from high-level views\n  , UntangleErr(..)\n  , untangleParameterDeclaration\n  , tangleParameterDeclaration\n\n    -- * To english\n  , describeParameterDeclaration\n  , describeType\n  ) where\n\nimport           Control.Arrow (second)\nimport           Control.Monad (when, unless, forM_)\nimport           Control.Monad.State (execState, modify)\nimport           Data.List (partition)\nimport           Data.Semigroup\nimport           Data.Maybe (fromMaybe)\nimport           Data.Typeable (Typeable)\nimport           Text.PrettyPrint.ANSI.Leijen ((</>), (<+>))\nimport qualified Text.PrettyPrint.ANSI.Leijen as PP\n\n#if __GLASGOW_HASKELL__ < 710\nimport           Data.Functor ((<$>))\nimport           Data.Monoid (Monoid(..))\n#endif\n\nimport qualified Types.Internal as P\n\n------------------------------------------------------------------------\n-- Proper types\n\ndata TypeSpecifier\n  = Void\n  | Char (Maybe Sign)\n  | Short Sign\n  | Int Sign\n  | Long Sign\n  | LLong Sign\n  | Float\n  | Double\n  | LDouble\n  | TypeName P.Identifier\n  | Struct P.Identifier\n  | Enum P.Identifier\n  deriving (Typeable, Show, Eq, Ord)\n\ndata Specifiers = Specifiers\n  { storageClassSpecifiers :: [P.StorageClassSpecifier]\n  , typeQualifiers :: [P.TypeQualifier]\n  , functionSpecifiers :: [P.FunctionSpecifier]\n  } deriving (Typeable, Show, Eq, Ord)\n\ninstance Monoid Specifiers where\n  mempty = Specifiers [] [] []\n  mappend = (<>)\n\ninstance Semigroup Specifiers where\n  (Specifiers x1 y1 z1) <> (Specifiers x2 y2 z2) =\n    Specifiers (x1 ++ x2) (y1 ++ y2) (z1 ++ z2)\n\ndata Type\n  = TypeSpecifier Specifiers TypeSpecifier\n  | Ptr [P.TypeQualifier] Type\n  | Array P.ArrayType Type\n  | Proto Type [ParameterDeclaration]\n  deriving (Typeable, Show, Eq, Ord)\n\ndata Sign\n  = Signed\n  | Unsigned\n  deriving (Typeable, Show, Eq, Ord)\n\ndata ParameterDeclaration = ParameterDeclaration\n  { parameterDeclarationId :: Maybe P.Identifier\n  , parameterDeclarationType :: Type\n  } deriving (Typeable, Show, Eq, Ord)\n\n------------------------------------------------------------------------\n-- Conversion\n\ndata UntangleErr\n  = MultipleDataTypes [P.DeclarationSpecifier]\n  | NoDataTypes [P.DeclarationSpecifier]\n  | IllegalSpecifiers String [P.TypeSpecifier]\n  deriving (Typeable, Show, Eq)\n\nfailConversion :: UntangleErr -> Either UntangleErr a\nfailConversion = Left\n\nuntangleParameterDeclaration\n  :: P.ParameterDeclaration -> Either UntangleErr ParameterDeclaration\nuntangleParameterDeclaration P.ParameterDeclaration{..} = do\n  (specs, tySpec) <- untangleDeclarationSpecifiers parameterDeclarationSpecifiers\n  let baseTy = TypeSpecifier specs tySpec\n  (mbS, ty) <- case parameterDeclarationDeclarator of\n    Left decltor -> do\n      (s, ty) <- untangleDeclarator baseTy decltor\n      return (Just s, ty)\n    Right decltor -> (Nothing, ) <$> untangleAbstractDeclarator baseTy decltor\n  return $ ParameterDeclaration mbS ty\n\nuntangleDeclarationSpecifiers\n  :: [P.DeclarationSpecifier] -> Either UntangleErr (Specifiers, TypeSpecifier)\nuntangleDeclarationSpecifiers declSpecs = do\n  let (pStorage, pTySpecs, pTyQuals, pFunSpecs) = flip execState ([], [], [], []) $ do\n        forM_ (reverse declSpecs) $ \\declSpec -> case declSpec of\n          P.StorageClassSpecifier x -> modify $ \\(a, b, c, d) -> (x:a, b, c, d)\n          P.TypeSpecifier x -> modify $ \\(a, b, c, d) -> (a, x:b, c, d)\n          P.TypeQualifier x -> modify $ \\(a, b, c, d) -> (a, b, x:c, d)\n          P.FunctionSpecifier x -> modify $ \\(a, b, c, d) -> (a, b, c, x:d)\n  -- Split data type and specifiers\n  let (dataTypes, specs) =\n        partition (\\x -> not (x `elem` [P.SIGNED, P.UNSIGNED, P.LONG, P.SHORT])) pTySpecs\n  let illegalSpecifiers s = failConversion $ IllegalSpecifiers s specs\n  -- Find out sign, if present\n  mbSign0 <- case filter (== P.SIGNED) specs of\n    []  -> return Nothing\n    [_] -> return $ Just Signed\n    _:_ -> illegalSpecifiers \"conflicting/duplicate sign information\"\n  mbSign <- case (mbSign0, filter (== P.UNSIGNED) specs) of\n    (Nothing, []) -> return Nothing\n    (Nothing, [_]) -> return $ Just Unsigned\n    (Just b, []) -> return $ Just b\n    _ -> illegalSpecifiers \"conflicting/duplicate sign information\"\n  let sign = fromMaybe Signed mbSign\n  -- Find out length\n  let longs = length $ filter (== P.LONG) specs\n  let shorts = length $ filter (== P.SHORT) specs\n  when (longs > 0 && shorts > 0) $ illegalSpecifiers \"both long and short\"\n  -- Find out data type\n  dataType <- case dataTypes of\n    [x] -> return x\n    [] | longs > 0 || shorts > 0 -> return P.INT\n    [] -> failConversion $ NoDataTypes declSpecs\n    _:_ -> failConversion $ MultipleDataTypes declSpecs\n  -- Check if things are compatible with one another\n  let checkNoSpecs =\n        unless (null specs) $ illegalSpecifiers \"expecting no specifiers\"\n  let checkNoLength =\n        when (longs > 0 || shorts > 0) $ illegalSpecifiers \"unexpected long/short\"\n  tySpec <- case dataType of\n    P.TypeName s -> do\n      checkNoSpecs\n      return $ TypeName s\n    P.Struct s -> do\n      checkNoSpecs\n      return $ Struct s\n    P.Enum s -> do\n      checkNoSpecs\n      return $ Enum s\n    P.VOID -> do\n      checkNoSpecs\n      return Void\n    P.CHAR -> do\n      checkNoLength\n      return $ Char mbSign\n    P.INT | longs == 0 && shorts == 0 -> do\n      return $ Int sign\n    P.INT | longs == 1 -> do\n      return $ Long sign\n    P.INT | longs == 2 -> do\n      return $ LLong sign\n    P.INT | shorts == 1 -> do\n      return $ Short sign\n    P.INT -> do\n      illegalSpecifiers \"too many long/short\"\n    P.FLOAT -> do\n      checkNoLength\n      return Float\n    P.DOUBLE -> do\n      if longs == 1\n        then return LDouble\n        else do\n          checkNoLength\n          return Double\n    _ -> do\n      error $ \"untangleDeclarationSpecifiers impossible: \" ++ show dataType\n  return (Specifiers pStorage pTyQuals pFunSpecs, tySpec)\n\nuntangleDeclarator\n  :: Type -> P.Declarator -> Either UntangleErr (P.Identifier, Type)\nuntangleDeclarator ty0 (P.Declarator ptrs0 directDecltor) = go ty0 ptrs0\n  where\n    go :: Type -> [P.Pointer] -> Either UntangleErr (P.Identifier, Type)\n    go ty [] = goDirect ty directDecltor\n    go ty (P.Pointer quals : ptrs) = go (Ptr quals ty) ptrs\n\n    goDirect :: Type -> P.DirectDeclarator -> Either UntangleErr (P.Identifier, Type)\n    goDirect ty direct0 = case direct0 of\n      P.DeclaratorRoot s -> return (s, ty)\n      P.ArrayOrProto direct (P.Array arrayType) ->\n        goDirect (Array arrayType ty) direct\n      P.ArrayOrProto direct (P.Proto params) -> do\n        params' <- mapM untangleParameterDeclaration params\n        goDirect (Proto ty params') direct\n      P.DeclaratorParens decltor ->\n        untangleDeclarator ty decltor\n\nuntangleAbstractDeclarator\n  :: Type -> P.AbstractDeclarator -> Either UntangleErr Type\nuntangleAbstractDeclarator ty0 (P.AbstractDeclarator ptrs0 mbDirectDecltor) =\n  go ty0 ptrs0\n  where\n    go :: Type -> [P.Pointer] -> Either UntangleErr Type\n    go ty [] = case mbDirectDecltor of\n      Nothing -> return ty\n      Just directDecltor -> goDirect ty directDecltor\n    go ty (P.Pointer quals : ptrs) = go (Ptr quals ty) ptrs\n\n    goDirect :: Type -> P.DirectAbstractDeclarator -> Either UntangleErr Type\n    goDirect ty direct0 = case direct0 of\n      P.ArrayOrProtoThere direct (P.Array arrayType) ->\n        goDirect (Array arrayType ty) direct\n      P.ArrayOrProtoThere direct (P.Proto params) -> do\n        params' <- mapM untangleParameterDeclaration params\n        goDirect (Proto ty params') direct\n      P.ArrayOrProtoHere (P.Array arrayType) ->\n        return $ Array arrayType ty\n      P.ArrayOrProtoHere (P.Proto params) -> do\n        params' <- mapM untangleParameterDeclaration params\n        return $ Proto ty params'\n      P.AbstractDeclaratorParens decltor ->\n        untangleAbstractDeclarator ty decltor\n\n------------------------------------------------------------------------\n-- Tangling\n\ntangleParameterDeclaration :: ParameterDeclaration -> P.ParameterDeclaration\ntangleParameterDeclaration (ParameterDeclaration mbId ty00) =\n    uncurry P.ParameterDeclaration $ case mbId of\n      Nothing -> second Right $ goAbstractDirect ty00 Nothing\n      Just id' -> second Left $ goConcreteDirect ty00 $ P.DeclaratorRoot id'\n  where\n    goAbstractDirect\n      :: Type -> Maybe P.DirectAbstractDeclarator\n      -> ([P.DeclarationSpecifier], P.AbstractDeclarator)\n    goAbstractDirect ty0 mbDirect = case ty0 of\n      TypeSpecifier specifiers tySpec ->\n        let declSpecs = tangleTypeSpecifier specifiers tySpec\n        in (declSpecs, P.AbstractDeclarator [] mbDirect)\n      Ptr tyQuals ty ->\n        goAbstract ty [P.Pointer tyQuals] mbDirect\n      Array arrType ty ->\n        let arr = P.Array arrType\n        in case mbDirect of\n          Nothing ->\n            goAbstractDirect ty $ Just $ P.ArrayOrProtoHere arr\n          Just decltor ->\n            goAbstractDirect ty $ Just $ P.ArrayOrProtoThere decltor arr\n      Proto ty params ->\n        let proto = P.Proto $ map tangleParameterDeclaration params\n        in case mbDirect of\n          Nothing ->\n            goAbstractDirect ty $ Just $ P.ArrayOrProtoHere proto\n          Just decltor ->\n            goAbstractDirect ty $ Just $ P.ArrayOrProtoThere decltor proto\n\n    goAbstract\n      :: Type -> [P.Pointer] -> Maybe P.DirectAbstractDeclarator\n      -> ([P.DeclarationSpecifier], P.AbstractDeclarator)\n    goAbstract ty0 ptrs mbDirect = case ty0 of\n      TypeSpecifier specifiers tySpec ->\n        let declSpecs = tangleTypeSpecifier specifiers tySpec\n        in (declSpecs, P.AbstractDeclarator ptrs mbDirect)\n      Ptr tyQuals ty ->\n        goAbstract ty (P.Pointer tyQuals : ptrs) mbDirect\n      Array{} ->\n        goAbstractDirect ty0 $ Just $ P.AbstractDeclaratorParens $\n          P.AbstractDeclarator ptrs mbDirect\n      Proto{} ->\n        goAbstractDirect ty0 $ Just $ P.AbstractDeclaratorParens $\n          P.AbstractDeclarator ptrs mbDirect\n\n    goConcreteDirect\n      :: Type -> P.DirectDeclarator\n      -> ([P.DeclarationSpecifier], P.Declarator)\n    goConcreteDirect ty0 direct = case ty0 of\n      TypeSpecifier specifiers tySpec ->\n        let declSpecs = tangleTypeSpecifier specifiers tySpec\n        in (declSpecs, P.Declarator [] direct)\n      Ptr tyQuals ty ->\n        goConcrete ty [P.Pointer tyQuals] direct\n      Array arrType ty ->\n        goConcreteDirect ty $ P.ArrayOrProto direct $ P.Array arrType\n      Proto ty params ->\n        goConcreteDirect ty $ P.ArrayOrProto direct $\n          P.Proto $ map tangleParameterDeclaration params\n\n    goConcrete\n      :: Type -> [P.Pointer] -> P.DirectDeclarator\n      -> ([P.DeclarationSpecifier], P.Declarator)\n    goConcrete ty0 ptrs direct = case ty0 of\n      TypeSpecifier specifiers tySpec ->\n        let declSpecs = tangleTypeSpecifier specifiers tySpec\n        in (declSpecs, P.Declarator ptrs direct)\n      Ptr tyQuals ty ->\n        goConcrete ty (P.Pointer tyQuals : ptrs) direct\n      Array{} ->\n        goConcreteDirect ty0 $ P.DeclaratorParens $ P.Declarator ptrs direct\n      Proto{} ->\n        goConcreteDirect ty0 $ P.DeclaratorParens $ P.Declarator ptrs direct\n\ntangleTypeSpecifier :: Specifiers -> TypeSpecifier -> [P.DeclarationSpecifier]\ntangleTypeSpecifier (Specifiers storages tyQuals funSpecs) tySpec =\n  let pTySpecs = case tySpec of\n        Void -> [P.VOID]\n        Char Nothing -> [P.CHAR]\n        Char (Just Signed) -> [P.SIGNED, P.CHAR]\n        Char (Just Unsigned) -> [P.UNSIGNED, P.CHAR]\n        Short Signed -> [P.SHORT]\n        Short Unsigned -> [P.UNSIGNED, P.SHORT]\n        Int Signed -> [P.INT]\n        Int Unsigned -> [P.UNSIGNED]\n        Long Signed -> [P.LONG]\n        Long Unsigned -> [P.UNSIGNED, P.LONG]\n        LLong Signed -> [P.LONG, P.LONG]\n        LLong Unsigned -> [P.UNSIGNED, P.LONG, P.LONG]\n        Float -> [P.FLOAT]\n        Double -> [P.DOUBLE]\n        LDouble -> [P.LONG, P.DOUBLE]\n        TypeName s -> [P.TypeName s]\n        Struct s -> [P.Struct s]\n        Enum s -> [P.Enum s]\n  in map P.StorageClassSpecifier storages ++\n     map P.TypeQualifier tyQuals ++\n     map P.FunctionSpecifier funSpecs ++\n     map P.TypeSpecifier pTySpecs\n\n------------------------------------------------------------------------\n-- To english\n\ndescribeParameterDeclaration :: ParameterDeclaration -> PP.Doc\ndescribeParameterDeclaration (ParameterDeclaration mbId ty) =\n  let idDoc = case mbId of\n        Nothing -> \"\"\n        Just id' -> PP.pretty id' <+> \"is a \"\n  in idDoc <> describeType ty\n\ndescribeType :: Type -> PP.Doc\ndescribeType ty0 = case ty0 of\n  TypeSpecifier specs tySpec -> engSpecs specs <> PP.pretty tySpec\n  Ptr quals ty -> engQuals quals <> \"ptr to\" <+> describeType ty\n  Array arrTy ty -> engArrTy arrTy <> \"of\" <+> describeType ty\n  Proto retTy params ->\n     \"function from\" <+> engParams params <> \"returning\" <+> describeType retTy\n  where\n    engSpecs (Specifiers [] [] []) = \"\"\n    engSpecs (Specifiers x y z) =\n      let xs = map P.StorageClassSpecifier x ++ map P.TypeQualifier y ++\n               map P.FunctionSpecifier z\n      in PP.hsep (map PP.pretty xs) <> \" \"\n\n    engQuals = PP.hsep . map PP.pretty\n\n    engArrTy arrTy = case arrTy of\n      P.VariablySized -> \"variably sized array \"\n      P.SizedByInteger n -> \"array of size\" <+> PP.text (show n) <> \" \"\n      P.SizedByIdentifier s -> \"array of size\" <+> PP.pretty s <> \" \"\n      P.Unsized -> \"array \"\n\n    engParams [] = \"\"\n    engParams params0 = \"(\" <> go params0 <> \") \"\n      where\n        go xs = case xs of\n          [] -> \"\"\n          [x] -> describeParameterDeclaration x\n          (x:xs') -> describeParameterDeclaration x <> \",\" <+> go xs'\n\n------------------------------------------------------------------------\n-- Convenient parsing\n\nuntangleParameterDeclaration'\n  :: P.CParser m => P.ParameterDeclaration -> m ParameterDeclaration\nuntangleParameterDeclaration' pDecl =\n  case untangleParameterDeclaration pDecl of\n    Left err -> fail $ pretty80 $\n      \"Error while parsing declaration:\" </> PP.pretty err </> PP.pretty pDecl\n    Right x -> return x\n\nparseParameterDeclaration :: P.CParser m => m ParameterDeclaration\nparseParameterDeclaration =\n  untangleParameterDeclaration' =<< P.parameter_declaration\n\nparseParameterList :: P.CParser m => m [ParameterDeclaration]\nparseParameterList =\n  mapM untangleParameterDeclaration' =<< P.parameter_list\n\nparseIdentifier :: P.CParser m => m P.Identifier\nparseIdentifier = P.identifier_no_lex\n\nparseType :: P.CParser m => m Type\nparseType = parameterDeclarationType <$> parseParameterDeclaration\n\n------------------------------------------------------------------------\n-- Pretty\n\ninstance PP.Pretty TypeSpecifier where\n  pretty tySpec = case tySpec of\n    Void -> \"void\"\n    Char Nothing -> \"char\"\n    Char (Just Signed) -> \"signed char\"\n    Char (Just Unsigned) -> \"unsigned char\"\n    Short Signed -> \"short\"\n    Short Unsigned -> \"unsigned short\"\n    Int Signed -> \"int\"\n    Int Unsigned -> \"unsigned\"\n    Long Signed -> \"long\"\n    Long Unsigned -> \"unsigned long\"\n    LLong Signed -> \"long long\"\n    LLong Unsigned -> \"unsigned long long\"\n    Float -> \"float\"\n    Double -> \"double\"\n    LDouble -> \"long double\"\n    TypeName s -> PP.pretty s\n    Struct s -> \"struct\" <+> PP.pretty s\n    Enum s -> \"enum\" <+> PP.pretty s\n\ninstance PP.Pretty UntangleErr where\n  pretty err = case err of\n    MultipleDataTypes specs ->\n      \"Multiple data types in\" </> PP.prettyList specs\n    IllegalSpecifiers s specs ->\n      \"Illegal specifiers, \" <+> PP.text s <+> \", in\" </> PP.prettyList specs\n    NoDataTypes specs ->\n      \"No data types in \" </> PP.prettyList specs\n\ninstance PP.Pretty ParameterDeclaration where\n  pretty = PP.pretty . tangleParameterDeclaration\n\ninstance PP.Pretty Type where\n  pretty ty =\n    PP.pretty $ tangleParameterDeclaration $ ParameterDeclaration Nothing ty\n\n------------------------------------------------------------------------\n-- Utils\n\npretty80 :: PP.Doc -> String\npretty80 x = PP.displayS (PP.renderPretty 0.8 80 x) \"\"\n"
  },
  {
    "path": "stack-shell.nix",
    "content": "{ nixpkgs ? import ./pinned-nixpkgs.nix {}\n, ghc }:\n\nwith nixpkgs;\n\nhaskell.lib.buildStackProject {\n  inherit ghc;\n  name = \"godotHaskell\";\n  buildInputs = [];\n}\n"
  },
  {
    "path": "stack.yaml",
    "content": "# This file was automatically generated by 'stack init'\n#\n# Some commonly used options have been documented as comments in this file.\n# For advanced use and comprehensive documentation of the format, please see:\n# https://docs.haskellstack.org/en/stable/yaml_configuration/\n\n# Resolver to choose a 'specific' stackage snapshot or a compiler version.\n# A snapshot resolver dictates the compiler version and the set of packages\n# to be used for project dependencies. For example:\n#\n# resolver: lts-3.5\n# resolver: nightly-2015-09-21\n# resolver: ghc-7.10.2\n# resolver: ghcjs-0.1.0_ghc-7.10.2\n# resolver:\n#  name: custom-snapshot\n#  location: \"./custom-snapshot.yaml\"\nresolver: nightly-2021-02-06\n\n# User packages to be built.\n# Various formats can be used as shown in the example below.\n#\n# packages:\n# - some-directory\n# - https://example.com/foo/bar/baz-0.0.2.tar.gz\n# - location:\n#    git: https://github.com/commercialhaskell/stack.git\n#    commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a\n# - location: https://github.com/commercialhaskell/stack/commit/e7b331f14bcffb8367cd58fbfc8b40ec7642100a\n#   extra-dep: true\n#  subdirs:\n#  - auto-update\n#  - wai\n#\n# A package marked 'extra-dep: true' will only be built if demanded by a\n# non-dependency (i.e. a user package), and its test suites and benchmarks\n# will not be run. This is useful for tweaking upstream packages.\npackages:\n- .\n\n# Dependency packages to be pulled from upstream that are not in the resolver\n# (e.g., acme-missiles-0.3)\nextra-deps: []\n\n# Override default flag values for local packages and extra-deps\n# flags: {}\n\n# Extra package databases containing global packages\n# extra-package-dbs: []\n\n# Control whether we use the GHC we find on the path\n# system-ghc: true\n#\n# Require a specific version of stack, using version ranges\n# require-stack-version: -any # Default\nrequire-stack-version: \">=1.8\"\n#\n# Override the architecture used by stack, especially useful on Windows\n# arch: i386\n# arch: x86_64\n#\n# Extra directories used by stack for building\n# extra-include-dirs: [/path/to/dir]\n# extra-lib-dirs: [/path/to/dir]\n#\n# Allow a newer minor version of GHC than the snapshot specifies\n# compiler-check: newer-minor\nnix:\n  enable: false\n  # false by default. Must be present and set to `true` to enable Nix, except on\n  # NixOS where it is enabled by default (see #3938).  You can set set it in your\n  # `$HOME/.stack/config.yaml` to enable Nix for all your projects without having\n  # to repeat it\n  # enable: true\n\n  # true by default. Tells Nix whether to run in a pure shell or not.\n  pure: true\n\n  # Empty by default. The list of packages you want to be\n  # available in the nix-shell at build time (with `stack\n  # build`) and run time (with `stack exec`).\n  packages: []\n\n  # Unset by default. You cannot set this option if `packages:`\n  # is already present and not empty.\n  shell-file: stack-shell.nix\n\n  # A list of strings, empty by default. Additional options that\n  # will be passed verbatim to the `nix-shell` command.\n  nix-shell-options: []\n\n  # A list of strings, empty by default, such as\n  # `[nixpkgs=/my/local/nixpkgs/clone]` that will be used to override\n  # NIX_PATH.\n  path: []\n\n  # false by default. Whether to add your nix dependencies as nix garbage\n  # collection roots. This way, calling nix-collect-garbage will not remove\n  # those packages from the nix store, saving you some time when running\n  # stack build again with nix support activated.\n  # This creates a `nix-gc-symlinks` directory in the project `.stack-work`.\n  # To revert that, just delete this `nix-gc-symlinks` directory.\n  add-gc-roots: false\n"
  },
  {
    "path": "template/README.md",
    "content": "# Template and project demo\n\n## Updating the demo:\n\n./mkdemo.sh\n\nThis will update the template and recreate the demo. The demo will have all\nreferences to godot-haskell **redirected to the local checkout** so as not to\nrequire another compilation.\n\n## Updating the template file\n\n./update-template.sh\n\nThis script updates the template file with the revision and hash of the latest\ncommit in origin/master or revision supplied as argument.\n\n## Using the template\n\n```\nstack new myproject templatefile\n```\n\n`templatefile` is path to `godot-haskell.hsfiles`, either locally or as a link.\n"
  },
  {
    "path": "template/demo/Makefile",
    "content": "NAME = demo\n\nUNAME_S := $(shell uname -s)\nifeq ($(UNAME_S),Linux)\n    LIBNAME = lib$(NAME).so\nendif\nifeq ($(UNAME_S),Darwin)\n    LIBNAME = lib$(NAME).dylib\nendif\n\nSTACKLIBFILE = $(shell stack path --local-install-root)/lib/$(LIBNAME)\nGODOTPROJECT = $(shell stack path --project-root)/game\nall: stack\nnix:\n\tnix-build shell.nix\n\tcp result/lib/ghc-*/$(LIBNAME) $(GODOTPROJECT)/lib\nstack:\n\tstack build --fast\n\tcp $(STACKLIBFILE) $(GODOTPROJECT)/lib\nstack-nix:\n\tstack --nix clean $(NAME)\n\tstack --nix build\n\tcp $(shell stack --nix path --local-install-root)/lib/$(LIBNAME) $(GODOTPROJECT)/lib\nstack-run:\n\tnix-build shell.nix\n\tcp $(STACKLIBFILE) $(GODOTPROJECT)/lib\n\tgodot --path ./game\nstack-watch:\n\tstack build --file-watch --exec \"cp $(STACKLIBFILE) $(GODOTPROJECT)/lib\"\n"
  },
  {
    "path": "template/demo/ffi/cbits/flib.c",
    "content": "#include \"HsFFI.h\"\n\nstatic void flib_init() __attribute__((constructor));\nstatic void flib_init() {\n  static char *argv[] = { \"libdemo\", 0 }, **argv_ = argv;\n  static int argc = 1;\n  hs_init(&argc, &argv_);\n}\n\nstatic void flib_fini() __attribute__((destructor));\nstatic void flib_fini() {\n  hs_exit();\n}\n\n\n"
  },
  {
    "path": "template/demo/game/Main.gdns",
    "content": "[gd_resource type=\"NativeScript\" load_steps=2 format=2]\n\n[ext_resource path=\"res://lib/libdemo.gdnlib\" type=\"GDNativeLibrary\" id=1]\n\n[resource]\n\nclass_name = \"Main\"\nlibrary = ExtResource( 1 )\nscript_class_name = \"Main\"\n\n"
  },
  {
    "path": "template/demo/game/lib/libdemo.gdnlib",
    "content": "[general]\n\nsingleton=false\nload_once=true\nsymbol_prefix=\"godot_\"\nreloadable=false\n\n[entry]\n\nX11.64=\"res://lib/libdemo.so\"\nOSX.64=\"res://lib/libdemo.dylib\"\n\n"
  },
  {
    "path": "template/demo/game/project.godot",
    "content": "; Engine configuration file.\n; It's best edited using the editor UI and not directly,\n; since the parameters that go here are not all obvious.\n;\n; Format:\n;   [section] ; section goes between []\n;   param=value ; assign values to parameters\n\nconfig_version=4\n\n_global_script_classes=[ {\n\"base\": \"Node\",\n\"class\": \"Main\",\n\"language\": \"NativeScript\",\n\"path\": \"res://Main.gdns\"\n} ]\n_global_script_class_icons={\n\"Main\": \"\"\n}\n\n[application]\n\nconfig/name=\"demo\"\nrun/main_scene=\"res://Main.tscn\"\n\n[gdnative]\n\nsingletons=[  ]\n"
  },
  {
    "path": "template/godot-haskell.hsfiles",
    "content": "{-# START_FILE .gitignore #-}\ndist*\n*.hi\n*.o\n.stack-work/\n.stack-work-devel/\n*~\n\\#*\n*.import\nresult\n\n\n\n{-# START_FILE README.md #-}\n# {{name}}\n\n\n\n{-# START_FILE ChangeLog.md #-}\n# Empty\n\n\n\n{-# START_FILE stack.yaml #-}\nresolver: nightly-2019-04-09\n\npackages:\n- .\n\nextra-deps:\n- git: https://github.com/SimulaVR/godot-haskell\n  commit: 32dae6bc26b88c5e6e16727a9ea9682a195df96e # godot-haskell rev\n\nrequire-stack-version: \">=1.8\"\n\nnix:\n  enable: false\n  pure: true\n  packages: []\n  shell-file: stack-shell.nix\n  nix-shell-options: []\n  path: []\n  add-gc-roots: false\n\n\n\n{-# START_FILE {{name}}.cabal #-}\ncabal-version: 1.12\n\nname:           {{name}}\nversion:        0.0.0.0\ndescription:    Please see the README on Github at <https://github.com/{{github-username}}/{{name}}#readme>\nhomepage:       https://github.com/{{github-username}}/{{name}}#readme\nbug-reports:    https://github.com/{{github-username}}/{{name}}/issues\nauthor:         {{author-name}}\nmaintainer:     {{author-email}}\ncopyright:      {{copyright}}\nlicense:        BSD3\nlicense-file:   LICENSE\nbuild-type:     Simple\nextra-source-files:\n    ChangeLog.md\n    README.md\n\nsource-repository head\n  type: git\n  location: https://github.com/{{github-username}}/{{name}}\n\nlibrary\n  exposed-modules: Lib\n  hs-source-dirs: src\n  ghc-options:\n    -Wall\n    -fwarn-unused-do-bind\n    -fwarn-tabs\n    -fwarn-incomplete-uni-patterns\n    -fwarn-incomplete-record-updates\n    -O2\n  build-depends:\n      base >=4.12 && <5\n    , godot-haskell\n    , linear\n    , stm\n    , text\n    , vector\n  default-language: Haskell2010\n\nforeign-library {{name}}\n  type: native-shared\n  other-modules: FLib\n  hs-source-dirs: ffi/flib\n  c-sources: ffi/cbits/flib.c\n  build-depends:\n      base >= 4.12 && <5\n    , godot-haskell\n    , {{name}}\n  default-language: Haskell2010\n\n\n\n{-# START_FILE godot-haskell.nix #-}\n{ fetchFromGitHub, mkDerivation, aeson, ansi-wl-pprint, base, bytestring, c2hs\n, casing, colour, containers, hpack, lens, linear, mtl, parsec\n, parsers, stdenv, stm, template-haskell, text\n, unordered-containers, vector\n}:\nmkDerivation {\n  pname = \"godot-haskell\";\n  version = \"3.1.0.0\";\n  src = fetchFromGitHub {\n    owner = \"SimulaVR\";\n    repo = \"godot-haskell\";\n    rev = \"32dae6bc26b88c5e6e16727a9ea9682a195df96e\"; # godot-haskell rev\n    # Use nix-prefetch-git to get the hash\n    sha256 = \"\";\n    fetchSubmodules = true;\n  };\n  libraryHaskellDepends = [\n    aeson ansi-wl-pprint base bytestring casing colour containers lens\n    linear mtl parsec parsers stm template-haskell text\n    unordered-containers vector\n  ];\n  libraryToolDepends = [ c2hs hpack ];\n  doHaddock = false;\n  preConfigure = \"hpack\";\n  homepage = \"https://github.com/KaneTW/godot-haskell#readme\";\n  description = \"Haskell bindings for the Godot game engine API\";\n  license = stdenv.lib.licenses.bsd3;\n}\n\n\n\n{-# START_FILE pinned-nixpkgs.nix #-}\n{}:\n\nlet\n  # 19.03-beta (25 feb)\n  rev = \"0c0954781e257b8b0dc49341795a2fe7d96945a3\"; # pinned-nixpkgs rev\n  pkgs = import (builtins.fetchTarball {\n      url = \"https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz\";\n    }) {};\nin\n  pkgs\n\n\n\n{-# START_FILE shell.nix #-}\n{ nixpkgs ? import ./pinned-nixpkgs.nix {}\n, compiler ? \"default\"\n, doBenchmark ? false }:\n\n\nlet\n\n  inherit (nixpkgs) pkgs;\n\n  haskellPackages = if compiler == \"default\"\n                       then pkgs.haskellPackages\n                       else pkgs.haskell.packages.${compiler};\n\n  f = { mkDerivation, stdenv, base, godot-haskell, linear, text , vector, stm }:\n    mkDerivation {\n      pname = \"{{name}}\";\n      version = \"3.1.0.0\";\n      src = ./.;\n      libraryHaskellDepends = [\n        base godot-haskell linear text vector stm\n      ];\n      libraryToolDepends = [];\n      homepage = \"https://github.com/{{github-username}}/{{name}}#readme\";\n      license = stdenv.lib.licenses.bsd3;\n    };\n\n  variant = if doBenchmark then pkgs.haskell.lib.doBenchmark else pkgs.lib.id;\n\n  drv = variant (haskellPackages.callPackage f {\n      godot-haskell = haskellPackages.callPackage ./godot-haskell.nix {fetchFromGitHub = pkgs.fetchFromGitHub;};\n    });\n\nin\n\n  if pkgs.lib.inNixShell then drv.env else drv\n\n\n\n{-# START_FILE stack-shell.nix #-}\n{ nixpkgs ? import ./pinned-nixpkgs.nix {}\n, ghc\n}:\n\nwith nixpkgs;\n\nhaskell.lib.buildStackProject {\n  inherit ghc;\n  name = \"{{name}}\";\n  buildInputs = [];\n}\n\n\n\n{-# START_FILE src/Lib.hs #-}\n{-# LANGUAGE OverloadedStrings, TemplateHaskell, MultiParamTypeClasses #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeFamilies #-}\nmodule Lib\n  ( exports\n  )\nwhere\n\nimport           Godot\nimport qualified Godot.Gdnative.Internal.Api   as Api\nimport qualified Data.Text                     as T\nimport           Control.Monad\nimport           Data.Function                            ( (&) )\n\nexports :: GdnativeHandle -> IO ()\nexports desc = do\n  registerClass $ RegClass desc $ classInit @Main\n\ndata Main = Main\n  { _mBase :: Node\n  , _mTime :: MVar Float\n  }\n\ninstance HasBaseClass Main where\n  type BaseClass Main = Node\n  super = _mBase\ninstance NativeScript Main where\n  classInit base = Main base <$> newMVar 0\n  classMethods =\n    [ method1 \"_process\" $ main_process\n    ]\n\nmain_process :: Main -> GodotVariant -> IO ()\nmain_process self deltaVt = do\n  delta <- fromGodotVariant deltaVt\n  (sec, sec') <- do\n    t <- readMVar (_mTime self)\n    let t' = t + delta\n    _ <- swapMVar (_mTime self) t'\n    return (floor t, floor t')\n  when (sec < sec') $\n    \"Seconds passed: \" ++ Prelude.show sec'\n    & T.pack\n    & (toLowLevel :: Text -> IO GodotString)\n    >>= Api.godot_print\n\nderiveBase ''Main\n\n\n\n{-# START_FILE ffi/flib/FLib.hs #-}\n{-# LANGUAGE ForeignFunctionInterface #-}\nmodule FLib where\n\nimport qualified Foreign\nimport qualified Godot.Gdnative.Internal       as FFI\nimport           Godot.Gdnative\nimport           Godot.Nativescript\nimport           Lib\n\n\n\ngodot_nativescript_init :: GdnativeHandle -> IO ()\ngodot_nativescript_init desc = do\n  defaultExports desc\n  exports desc\n  putStrLn \"Haskell NativeScript lib initialized\"\n\nforeign export ccall godot_nativescript_init :: GdnativeHandle -> IO ()\n\n\ngodot_gdnative_init :: FFI.GdnativeInitOptionsPtr -> IO ()\ngodot_gdnative_init opts = Foreign.peek opts >>= FFI.initApiStructs\n\nforeign export ccall godot_gdnative_init :: FFI.GdnativeInitOptionsPtr -> IO ()\n\n\ngodot_gdnative_terminate :: FFI.GdnativeTerminateOptionsPtr -> IO ()\ngodot_gdnative_terminate _ = return ()\n\nforeign export ccall godot_gdnative_terminate :: FFI.GdnativeTerminateOptionsPtr -> IO ()\n\n\n\n{-# START_FILE ffi/cbits/flib.c #-}\n#include \"HsFFI.h\"\n\nstatic void flib_init() __attribute__((constructor));\nstatic void flib_init() {\n  static char *argv[] = { \"lib{{name}}\", 0 }, **argv_ = argv;\n  static int argc = 1;\n  hs_init(&argc, &argv_);\n}\n\nstatic void flib_fini() __attribute__((destructor));\nstatic void flib_fini() {\n  hs_exit();\n}\n\n\n\n{-# START_FILE LICENSE #-}\nBSD 3-Clause License\n\nCopyright (c) {{copyright}}\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\n{-# START_FILE game/project.godot #-}\n; Engine configuration file.\n; It's best edited using the editor UI and not directly,\n; since the parameters that go here are not all obvious.\n;\n; Format:\n;   [section] ; section goes between []\n;   param=value ; assign values to parameters\n\nconfig_version=4\n\n_global_script_classes=[ {\n\"base\": \"Node\",\n\"class\": \"Main\",\n\"language\": \"NativeScript\",\n\"path\": \"res://Main.gdns\"\n} ]\n_global_script_class_icons={\n\"Main\": \"\"\n}\n\n[application]\n\nconfig/name=\"{{name}}\"\nrun/main_scene=\"res://Main.tscn\"\n\n[gdnative]\n\nsingletons=[  ]\n\n\n{-# START_FILE game/Main.tscn #-}\n[gd_scene load_steps=2 format=2]\n\n[ext_resource path=\"res://Main.gdns\" type=\"Script\" id=1]\n\n[node name=\"Main\" type=\"Node\"]\nscript = ExtResource( 1 )\n\n\n\n{-# START_FILE game/Main.gdns #-}\n[gd_resource type=\"NativeScript\" load_steps=2 format=2]\n\n[ext_resource path=\"res://lib/lib{{name}}.gdnlib\" type=\"GDNativeLibrary\" id=1]\n\n[resource]\n\nclass_name = \"Main\"\nlibrary = ExtResource( 1 )\nscript_class_name = \"Main\"\n\n\n{-# START_FILE game/lib/lib{{name}}.gdnlib #-}\n[general]\n\nsingleton=false\nload_once=true\nsymbol_prefix=\"godot_\"\nreloadable=false\n\n[entry]\n\nX11.64=\"res://lib/lib{{name}}.so\"\nOSX.64=\"res://lib/lib{{name}}.dylib\"\n\n\n{-# START_FILE Makefile #-}\nNAME = {{name}}\n\nUNAME_S := $(shell uname -s)\nifeq ($(UNAME_S),Linux)\n    LIBNAME = lib$(NAME).so\nendif\nifeq ($(UNAME_S),Darwin)\n    LIBNAME = lib$(NAME).dylib\nendif\n\nSTACKLIBFILE = $(shell stack path --local-install-root)/lib/$(LIBNAME)\nGODOTPROJECT = $(shell stack path --project-root)/game\nall: stack\nnix:\n\tnix-build shell.nix\n\tcp result/lib/ghc-*/$(LIBNAME) $(GODOTPROJECT)/lib\nstack:\n\tstack clean $(NAME)\n\tstack build\n\tcp $(STACKLIBFILE) $(GODOTPROJECT)/lib\nstack-nix:\n\tstack --nix clean $(NAME)\n\tstack --nix build\n\tcp $(shell stack --nix path --local-install-root)/lib/$(LIBNAME) $(GODOTPROJECT)/lib\nstack-run:\n\tnix-build shell.nix\n\tcp $(STACKLIBFILE) $(GODOTPROJECT)/lib\n\tgodot --path ./game\nstack-watch:\n\tstack build --file-watch --exec \"cp $(STACKLIBFILE) $(GODOTPROJECT)/lib\"\n"
  },
  {
    "path": "template/mkdemo.sh",
    "content": "# This script generates a minimal demo using the stack template after updating it.\n\nrm -rf demo\n./update-template.sh\nstack new demo ./godot-haskell.hsfiles\n\n# Make template point to this local checkout of godot-haskell\n# stack.yaml:\nsed -i 's/git: .*/..\\/..\\//' demo/stack.yaml\nsed -i '/  commit: .*/d' demo/stack.yaml\n# shell.nix:\nsed -i 's/.\\/godot-haskell.nix {fetchFromGitHub = pkgs.fetchFromGitHub;};/..\\/..\\/. {};/' demo/shell.nix\n"
  },
  {
    "path": "template/update-template.sh",
    "content": "# This script updates the template file with the revision and hash of the latest\n# commit in origin/master or revision supplied as argument.\n\nREV=$1\nif [ -z $REV ]; then\n    REV=$(git show origin/master | grep commit | head -n 1 | cut -d ' ' -f 2)\nfi\n\nSHA256=$(nix-prefetch-git https://github.com/SimulaVR/godot-haskell $REV --fetch-submodules | grep sha256 | cut -d '\"' -f 4)\n\nsed -i \"s/commit: .* # godot-haskell rev/commit: ${REV} # godot-haskell rev/\" godot-haskell.hsfiles\nsed -i \"s/rev = .*; # godot-haskell rev/rev = \\\"${REV}\\\"; # godot-haskell rev/\" godot-haskell.hsfiles\nsed -i \"s/sha256 = .*;/sha256 = \\\"${SHA256}\\\";/\" godot-haskell.hsfiles\n"
  },
  {
    "path": "update-nixpkgs.sh",
    "content": "if (( $# != 1 )); then\n    echo \"Usage: ./update-nixpkgs.sh <channel name>\"\n    echo \"Examples:\"\n    echo \"  ./update-nixpkgs.sh nixos-19.09\"\n    echo \"  ./update-nixpkgs.sh nixpkgs-unstable\"\n    exit\nfi\nCHANNEL=$1\necho \"Updating pinned nixpkgs to most recent ${CHANNEL}\"\n\nSHA256=$(sha256sum ./nixpkgs-version.json)\nnix-prefetch-git https://github.com/nixos/nixpkgs-channels.git refs/heads/$CHANNEL \\\n    2>/dev/null > ./nixpkgs-version.json\nNEWSHA256=$(sha256sum ./nixpkgs-version.json)\n\nif [ \"$SHA256\" = \"$NEWSHA256\" ]\nthen\n    echo \"Done, but the contents of nixpkgs-version.json is the same.\"\nelse\n    echo \"Done. File nixpkgs-version.json was updated.\"\nfi\n"
  }
]